jankratochvil created this revision.
jankratochvil added reviewers: labath, clayborg.
jankratochvil added a project: LLDB.
Herald added subscribers: abidh, aprantl, ki.stfu.

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.


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D63339

Files:
  lldb/include/lldb/Core/ModuleList.h
  lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test
  lldb/lit/tools/lldb-mi/breakpoint/break-insert.test
  lldb/lit/tools/lldb-mi/data/data-info-line.test
  lldb/lit/tools/lldb-mi/exec/exec-continue.test
  lldb/lit/tools/lldb-mi/exec/exec-finish.test
  lldb/lit/tools/lldb-mi/exec/exec-interrupt.test
  lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test
  lldb/lit/tools/lldb-mi/exec/exec-next.test
  lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test
  lldb/lit/tools/lldb-mi/exec/exec-step.test
  lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template
  lldb/packages/Python/lldbsuite/test/lldbtest.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/source/Core/ModuleList.cpp
  lldb/tools/lldb-test/lldb-test.cpp

Index: lldb/tools/lldb-test/lldb-test.cpp
===================================================================
--- lldb/tools/lldb-test/lldb-test.cpp
+++ lldb/tools/lldb-test/lldb-test.cpp
@@ -975,6 +975,7 @@
   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());
Index: lldb/source/Core/ModuleList.cpp
===================================================================
--- lldb/source/Core/ModuleList.cpp
+++ lldb/source/Core/ModuleList.cpp
@@ -102,6 +102,11 @@
       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,
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -447,8 +447,10 @@
             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 @@
             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:
Index: lldb/packages/Python/lldbsuite/test/lldbtest.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -729,12 +729,12 @@
         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 "NO_LLDBINIT" not in os.environ or "NO" != os.environ["NO_LLDBINIT"]:
+            self.lldbOption += " --no-lldbinit"
 
         # Assign the test method name to self.testMethodName.
         #
Index: lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template
===================================================================
--- lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template
+++ lldb/packages/Python/lldbsuite/test/api/multithreaded/driver.cpp.template
@@ -31,6 +31,7 @@
 
   SBDebugger::Initialize();
   SBDebugger dbg = SBDebugger::Create();
+  dbg.HandleCommand("settings set symbols.enable-external-lookup false");
 
   try {
     if (!dbg.IsValid())
Index: lldb/lit/tools/lldb-mi/exec/exec-step.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-step.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-step-instruction.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/exec/exec-next.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-next.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-next-instruction.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/exec/exec-interrupt.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-interrupt.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/exec/exec-finish.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-finish.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/exec/exec-continue.test
===================================================================
--- lldb/lit/tools/lldb-mi/exec/exec-continue.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/data/data-info-line.test
===================================================================
--- lldb/lit/tools/lldb-mi/data/data-info-line.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/breakpoint/break-insert.test
===================================================================
--- lldb/lit/tools/lldb-mi/breakpoint/break-insert.test
+++ 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"
 
Index: lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test
===================================================================
--- lldb/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.test
+++ 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
 
Index: lldb/include/lldb/Core/ModuleList.h
===================================================================
--- lldb/include/lldb/Core/ModuleList.h
+++ lldb/include/lldb/Core/ModuleList.h
@@ -52,6 +52,7 @@
   FileSpec GetClangModulesCachePath() const;
   bool SetClangModulesCachePath(llvm::StringRef path);
   bool GetEnableExternalLookup() const;
+  bool SetEnableExternalLookup(bool new_value);
 }; 
 
 /// \class ModuleList ModuleList.h "lldb/Core/ModuleList.h"
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to