Revert "[lldb] Use current execution context in SBDebugger"
authorRaphael Isemann <teemperor@gmail.com>
Tue, 2 Feb 2021 13:41:41 +0000 (14:41 +0100)
committerRaphael Isemann <teemperor@gmail.com>
Tue, 2 Feb 2021 13:41:48 +0000 (14:41 +0100)
This reverts commit 754ab803b8dc659e3645d369d1b5d6d2f97be29e.

As pointed out in https://reviews.llvm.org/D95761, this patch could lead to
having the wrong execution context in some situations (thanks Jim!).

D92164 is addressing the same issue and will replace this patch, so I'll
revert this one.

lldb/source/API/SBDebugger.cpp
lldb/test/API/python_api/debugger/TestDebuggerAPI.py

index e3d2e47..6245b3a 100644 (file)
@@ -1278,7 +1278,8 @@ SBError SBDebugger::SetInternalVariable(const char *var_name, const char *value,
       ConstString(debugger_instance_name)));
   Status error;
   if (debugger_sp) {
-    ExecutionContext exe_ctx(debugger_sp->GetSelectedExecutionContext());
+    ExecutionContext exe_ctx(
+        debugger_sp->GetCommandInterpreter().GetExecutionContext());
     error = debugger_sp->SetPropertyValue(&exe_ctx, eVarSetOperationAssign,
                                           var_name, value);
   } else {
@@ -1302,7 +1303,8 @@ SBDebugger::GetInternalVariableValue(const char *var_name,
       ConstString(debugger_instance_name)));
   Status error;
   if (debugger_sp) {
-    ExecutionContext exe_ctx(debugger_sp->GetSelectedExecutionContext());
+    ExecutionContext exe_ctx(
+        debugger_sp->GetCommandInterpreter().GetExecutionContext());
     lldb::OptionValueSP value_sp(
         debugger_sp->GetPropertyValue(&exe_ctx, var_name, false, error));
     if (value_sp) {
index 5d0311e..32202ac 100644 (file)
@@ -43,35 +43,3 @@ class DebuggerAPITestCase(TestBase):
         target = lldb.SBTarget()
         self.assertFalse(target.IsValid())
         self.dbg.DeleteTarget(target)
-
-    @add_test_categories(['pyapi'])
-    def test_debugger_internal_variables(self):
-        debugger_name = self.dbg.GetInstanceName()
-
-        # Set a variable and check it was written successfully.
-        error = lldb.SBDebugger.SetInternalVariable(
-            'target.prefer-dynamic-value', 'no-dynamic-values', debugger_name)
-        self.assertTrue(error.Success())
-        ret = lldb.SBDebugger.GetInternalVariableValue(
-            'target.prefer-dynamic-value', debugger_name)
-        self.assertEqual(ret.GetSize(), 1)
-        self.assertEqual(ret.GetStringAtIndex(0), 'no-dynamic-values')
-
-        # Set a variable with a different value.
-        error = lldb.SBDebugger.SetInternalVariable(
-            'target.prefer-dynamic-value', 'no-run-target', debugger_name)
-        self.assertTrue(error.Success())
-        ret = lldb.SBDebugger.GetInternalVariableValue(
-            'target.prefer-dynamic-value', debugger_name)
-        self.assertEqual(ret.GetSize(), 1)
-        self.assertEqual(ret.GetStringAtIndex(0), 'no-run-target')
-
-        # Try setting invalid value, check for error.
-        error = lldb.SBDebugger.SetInternalVariable(
-            'target.prefer-dynamic-value', 'dummy-value', debugger_name)
-        self.assertTrue(error.Fail())
-        # Check that the value didn't change.
-        ret = lldb.SBDebugger.GetInternalVariableValue(
-            'target.prefer-dynamic-value', debugger_name)
-        self.assertEqual(ret.GetSize(), 1)
-        self.assertEqual(ret.GetStringAtIndex(0), 'no-run-target')