mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 21:53:12 +08:00
[LLDB] Use native PDB reader by default (#165363)
All PDB tests now pass when compiled without DIA on Windows, so they pass with the native reader. With this PR, the default reader changes to the native reader. The plan is to eventually remove the DIA reader (see https://discourse.llvm.org/t/rfc-removing-the-dia-pdb-plugin-from-lldb/87827 and #114906). For now, DIA can be used by setting `plugin.symbol-file.pdb.reader` to `dia` or by setting `LLDB_USE_NATIVE_PDB_READER=0` (mostly undocumented, but used in tests).
This commit is contained in:
@@ -83,8 +83,8 @@ constexpr OptionEnumValueElement g_pdb_reader_enums[] = {
|
||||
{
|
||||
ePDBReaderDefault,
|
||||
"default",
|
||||
"Use DIA PDB reader unless LLDB_USE_NATIVE_PDB_READER environment "
|
||||
"variable is set",
|
||||
"Use native PDB reader unless LLDB_USE_NATIVE_PDB_READER environment "
|
||||
"is set to 0",
|
||||
},
|
||||
{
|
||||
ePDBReaderDIA,
|
||||
@@ -109,16 +109,10 @@ enum {
|
||||
static const bool g_should_use_native_reader_by_default = [] {
|
||||
llvm::StringRef env_value = ::getenv("LLDB_USE_NATIVE_PDB_READER");
|
||||
|
||||
#if !LLVM_ENABLE_DIA_SDK || !defined(_WIN32)
|
||||
// if the environment value is unset, the native reader is requested
|
||||
if (env_value.empty())
|
||||
return true;
|
||||
#endif
|
||||
|
||||
return env_value.equals_insensitive("on") ||
|
||||
env_value.equals_insensitive("yes") ||
|
||||
env_value.equals_insensitive("1") ||
|
||||
env_value.equals_insensitive("true");
|
||||
return !env_value.equals_insensitive("off") &&
|
||||
!env_value.equals_insensitive("no") &&
|
||||
!env_value.equals_insensitive("0") &&
|
||||
!env_value.equals_insensitive("false");
|
||||
}();
|
||||
|
||||
class PluginProperties : public Properties {
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=0 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=foo %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=42 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=-1 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=foo %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=42 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=-1 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=0 %lldb \
|
||||
// RUN: -o 'settings set plugin.symbol-file.pdb.reader dia' \
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=0 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=foo %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=42 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=-1 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV0 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=foo %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=42 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=-1 %lldb %t.exe -o 'target modules dump symfile' 2>&1 | FileCheck --check-prefix=ENV1 %s
|
||||
|
||||
// RUN: env LLDB_USE_NATIVE_PDB_READER=0 %lldb \
|
||||
// RUN: -o 'settings set plugin.symbol-file.pdb.reader dia' \
|
||||
@@ -36,7 +36,7 @@
|
||||
// NO-ENV-NOT: warning:
|
||||
// NO-ENV: (lldb) target modules dump symfile
|
||||
// NO-ENV: Dumping debug symbols for 1 modules.
|
||||
// NO-ENV: SymbolFile pdb
|
||||
// NO-ENV: SymbolFile native-pdb
|
||||
|
||||
// ENV0-NOT: warning:
|
||||
// ENV0: (lldb) target modules dump symfile
|
||||
|
||||
@@ -191,6 +191,10 @@ Changes to LLDB
|
||||
* The `show-progress` setting, which became a NOOP with the introduction of the
|
||||
statusline, now defaults to off and controls using OSC escape codes to show a
|
||||
native progress bar in supporting terminals like Ghostty and ConEmu.
|
||||
* The default PDB reader on Windows was changed from DIA to native, which uses
|
||||
LLVM's PDB and CodeView support. You can switch back to the DIA reader with
|
||||
`settings set plugin.symbol-file.pdb.reader dia`. Note that support for the
|
||||
DIA reader will be removed in a future version of LLDB.
|
||||
|
||||
Changes to BOLT
|
||||
---------------------------------
|
||||
|
||||
Reference in New Issue
Block a user