diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2019-06-17 14:46:17 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2019-06-17 14:46:17 +0000 |
commit | 8c82c41262fad55de7ed921b9e0df0da6c0e896b (patch) | |
tree | 0cf18d293fff5476ad7cb87743367e85a3ea8263 | |
parent | 15b7f5b72d2ae3dae37a42caa8d3259cfafc70c6 (diff) | |
download | bcm5719-llvm-8c82c41262fad55de7ed921b9e0df0da6c0e896b.tar.gz bcm5719-llvm-8c82c41262fad55de7ed921b9e0df0da6c0e896b.zip |
[lldb] [test] Extend D55859 symbols.enable-external-lookup=false for more testcases
D55859 <https://reviews.llvm.org/D55859> has no effect for some of the
testcases so this patch extends it even for (all?) other testcases known to me.
LLDB was failing when LLDB prints errors reading system debug infos
(`*-debuginfo.rpm`, DWZ-optimized) which should never happen as LLDB testcases
should not be affected by system debug infos.
`lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template` is
using only SB API which does not expose `ModuleList` so I had to call
`HandleCommand()` there.
`lldb-test.cpp` could also use `HandleCommand` and then there would be no need
for `ModuleListProperties::SetEnableExternalLookup()` but I think it is cleaner
with API and not on based on text commands.
Differential Revision: https://reviews.llvm.org/D63339
llvm-svn: 363567
16 files changed, 48 insertions, 6 deletions
diff --git a/lldb/include/lldb/Core/ModuleList.h b/lldb/include/lldb/Core/ModuleList.h index 57ed3c8cf1f..1e26c35e4c1 100644 --- a/lldb/include/lldb/Core/ModuleList.h +++ b/lldb/include/lldb/Core/ModuleList.h @@ -52,6 +52,7 @@ public: FileSpec GetClangModulesCachePath() const; bool SetClangModulesCachePath(llvm::StringRef path); bool GetEnableExternalLookup() const; + bool SetEnableExternalLookup(bool new_value); }; /// \class ModuleList ModuleList.h "lldb/Core/ModuleList.h" diff --git a/lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test b/lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test index 1c9e5467089..55daf919a68 100644 --- a/lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test +++ b/lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test @@ -7,6 +7,9 @@ # Test for enabling pending breakpoints globally +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert printf # CHECK: ^error,msg="Command 'break-insert'. Breakpoint location 'printf' not found diff --git a/lldb/lit/tools/lldb-mi/breakpoint/break-insert.test b/lldb/lit/tools/lldb-mi/breakpoint/break-insert.test index bf975671389..d8039156b72 100644 --- a/lldb/lit/tools/lldb-mi/breakpoint/break-insert.test +++ b/lldb/lit/tools/lldb-mi/breakpoint/break-insert.test @@ -6,6 +6,9 @@ # Test that a breakpoint can be inserted before creating a target. +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert breakpoint # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/data/data-info-line.test b/lldb/lit/tools/lldb-mi/data/data-info-line.test index 9f9a052bd69..11ea3659625 100644 --- a/lldb/lit/tools/lldb-mi/data/data-info-line.test +++ b/lldb/lit/tools/lldb-mi/data/data-info-line.test @@ -8,6 +8,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-continue.test b/lldb/lit/tools/lldb-mi/exec/exec-continue.test index 3ec6d690772..c27bc44484d 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-continue.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-continue.test @@ -8,6 +8,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-finish.test b/lldb/lit/tools/lldb-mi/exec/exec-finish.test index b2a50c5267f..19947f93897 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-finish.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-finish.test @@ -6,6 +6,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-interrupt.test b/lldb/lit/tools/lldb-mi/exec/exec-interrupt.test index 7f8c5515018..20791257b41 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-interrupt.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-interrupt.test @@ -8,6 +8,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test b/lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test index f8d8ba47b90..ca3c9e9b005 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test @@ -8,6 +8,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-next.test b/lldb/lit/tools/lldb-mi/exec/exec-next.test index d2a4b76815e..0dd22746390 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-next.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-next.test @@ -9,6 +9,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test b/lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test index 94c6b39f354..3301b3e10ac 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test @@ -8,6 +8,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/lit/tools/lldb-mi/exec/exec-step.test b/lldb/lit/tools/lldb-mi/exec/exec-step.test index b946a7b1790..a14dd42f2b4 100644 --- a/lldb/lit/tools/lldb-mi/exec/exec-step.test +++ b/lldb/lit/tools/lldb-mi/exec/exec-step.test @@ -8,6 +8,9 @@ # Check that we have a valid target created via '%lldbmi %t'. # CHECK: ^done +settings set symbols.enable-external-lookup false +# CHECK: ^done + -break-insert main # CHECK: ^done,bkpt={number="1" diff --git a/lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template b/lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template index f4bd021632c..ebe7b8c8e17 100644 --- a/lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template +++ b/lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template @@ -31,6 +31,7 @@ int main(int argc, char** argv) { SBDebugger::Initialize(); SBDebugger dbg = SBDebugger::Create(); + dbg.HandleCommand("settings set symbols.enable-external-lookup false"); try { if (!dbg.IsValid()) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 90588a6e6b7..3064a6c2d85 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -729,12 +729,12 @@ class Base(unittest2.TestCase): else: self.lldbVSCodeExec = None + self.lldbOption = "-o 'settings set symbols.enable-external-lookup false'" + # If we spawn an lldb process for test (via pexpect), do not load the # init file unless told otherwise. - if "NO_LLDBINIT" in os.environ and "NO" == os.environ["NO_LLDBINIT"]: - self.lldbOption = "" - else: - self.lldbOption = "--no-lldbinit" + if os.environ.get("NO_LLDBINIT") != "NO": + self.lldbOption += " --no-lldbinit" # Assign the test method name to self.testMethodName. # diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py index 4e09e6a43a4..74ee4a6c44c 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py @@ -447,8 +447,10 @@ class DebugCommunication(object): args_dict['waitFor'] = waitFor if trace: args_dict['trace'] = trace + args_dict['initCommands'] = [ + 'settings set symbols.enable-external-lookup false'] if initCommands: - args_dict['initCommands'] = initCommands + args_dict['initCommands'].extend(initCommands) if preRunCommands: args_dict['preRunCommands'] = preRunCommands if stopCommands: @@ -582,8 +584,10 @@ class DebugCommunication(object): args_dict['shellExpandArguments'] = shellExpandArguments if trace: args_dict['trace'] = trace + args_dict['initCommands'] = [ + 'settings set symbols.enable-external-lookup false'] if initCommands: - args_dict['initCommands'] = initCommands + args_dict['initCommands'].extend(initCommands) if preRunCommands: args_dict['preRunCommands'] = preRunCommands if stopCommands: diff --git a/lldb/source/Core/ModuleList.cpp b/lldb/source/Core/ModuleList.cpp index fd943d7fc1d..9d795f9e558 100644 --- a/lldb/source/Core/ModuleList.cpp +++ b/lldb/source/Core/ModuleList.cpp @@ -102,6 +102,11 @@ bool ModuleListProperties::GetEnableExternalLookup() const { nullptr, idx, g_properties[idx].default_uint_value != 0); } +bool ModuleListProperties::SetEnableExternalLookup(bool new_value) { + return m_collection_sp->SetPropertyAtIndexAsBoolean( + nullptr, ePropertyEnableExternalLookup, new_value); +} + FileSpec ModuleListProperties::GetClangModulesCachePath() const { return m_collection_sp ->GetPropertyAtIndexAsOptionValueFileSpec(nullptr, false, diff --git a/lldb/tools/lldb-test/lldb-test.cpp b/lldb/tools/lldb-test/lldb-test.cpp index e5e23fb7695..471a9988287 100644 --- a/lldb/tools/lldb-test/lldb-test.cpp +++ b/lldb/tools/lldb-test/lldb-test.cpp @@ -975,6 +975,7 @@ int main(int argc, const char *argv[]) { CleanUp TerminateDebugger([&] { DebuggerLifetime.Terminate(); }); auto Dbg = lldb_private::Debugger::CreateInstance(); + ModuleList::GetGlobalModuleListProperties().SetEnableExternalLookup(false); if (!opts::Log.empty()) Dbg->EnableLog("lldb", {"all"}, opts::Log, 0, errs()); |