From cc5fdcb728c8a954a6f8e1d5f611bdf52b88b8bc Mon Sep 17 00:00:00 2001 From: Nerixyz Date: Tue, 28 Oct 2025 10:42:25 +0100 Subject: [PATCH 1/2] [LLDB] Use native PDB reader by default --- .../Plugins/SymbolFile/PDB/SymbolFilePDB.cpp | 18 ++++++------------ .../SymbolFile/NativePDB/native-setting.cpp | 6 +++--- .../Shell/SymbolFile/PDB/native-setting.cpp | 8 ++++---- llvm/docs/ReleaseNotes.md | 4 ++++ 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp index 3b936c06b1072..0ccb1804bb13a 100644 --- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp +++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp @@ -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 { diff --git a/lldb/test/Shell/SymbolFile/NativePDB/native-setting.cpp b/lldb/test/Shell/SymbolFile/NativePDB/native-setting.cpp index dc26ec8d30cb4..91f451fd0dadc 100644 --- a/lldb/test/Shell/SymbolFile/NativePDB/native-setting.cpp +++ b/lldb/test/Shell/SymbolFile/NativePDB/native-setting.cpp @@ -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' \ diff --git a/lldb/test/Shell/SymbolFile/PDB/native-setting.cpp b/lldb/test/Shell/SymbolFile/PDB/native-setting.cpp index f5e54592b0b31..54b7f28a71259 100644 --- a/lldb/test/Shell/SymbolFile/PDB/native-setting.cpp +++ b/lldb/test/Shell/SymbolFile/PDB/native-setting.cpp @@ -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 diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md index 36383b12788f9..fa99fc0338c56 100644 --- a/llvm/docs/ReleaseNotes.md +++ b/llvm/docs/ReleaseNotes.md @@ -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 future versions of LLDB. Changes to BOLT --------------------------------- From 34fa060e2e93e5be935b072921c076e95bdea258 Mon Sep 17 00:00:00 2001 From: Nerixyz Date: Tue, 28 Oct 2025 17:53:51 +0100 Subject: [PATCH 2/2] fix: use "in a future version" --- llvm/docs/ReleaseNotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md index fa99fc0338c56..49158fb4217b6 100644 --- a/llvm/docs/ReleaseNotes.md +++ b/llvm/docs/ReleaseNotes.md @@ -194,7 +194,7 @@ Changes to LLDB * 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 future versions of LLDB. + DIA reader will be removed in a future version of LLDB. Changes to BOLT ---------------------------------