Revert "[lldb] Make CommandInterpreter's execution context the same as debugger's one."
This reverts commit a01b26fb51, because it
breaks the "finish" command in some way -- the command does not
terminate after it steps out, but continues running the target. The
exact blast radius is not clear, but it at least affects the usage of
the "finish" command in TestGuiBasicDebug.py. The error is *not*
gui-related, as the same issue can be reproduced by running the same
steps outside of the gui.
There is some kind of a race going on, as the test fails only 20% of the
time on the buildbot.
This commit is contained in:
@@ -43,54 +43,3 @@ class DebuggerAPITestCase(TestBase):
|
||||
target = lldb.SBTarget()
|
||||
self.assertFalse(target.IsValid())
|
||||
self.dbg.DeleteTarget(target)
|
||||
|
||||
def test_debugger_internal_variable(self):
|
||||
"""Ensure that SBDebugger reachs the same instance of properties
|
||||
regardless CommandInterpreter's context initialization"""
|
||||
self.build()
|
||||
exe = self.getBuildArtifact("a.out")
|
||||
|
||||
# Create a target by the debugger.
|
||||
target = self.dbg.CreateTarget(exe)
|
||||
self.assertTrue(target, VALID_TARGET)
|
||||
|
||||
property_name = "target.process.memory-cache-line-size"
|
||||
|
||||
def get_cache_line_size():
|
||||
value_list = lldb.SBStringList()
|
||||
value_list = self.dbg.GetInternalVariableValue(property_name,
|
||||
self.dbg.GetInstanceName())
|
||||
|
||||
self.assertEqual(value_list.GetSize(), 1)
|
||||
try:
|
||||
return int(value_list.GetStringAtIndex(0))
|
||||
except ValueError as error:
|
||||
self.fail("Value is not a number: " + error)
|
||||
|
||||
# Get global property value while there are no processes.
|
||||
global_cache_line_size = get_cache_line_size()
|
||||
|
||||
# Run a process via SB interface. CommandInterpreter's execution context
|
||||
# remains empty.
|
||||
error = lldb.SBError()
|
||||
launch_info = lldb.SBLaunchInfo(None)
|
||||
launch_info.SetLaunchFlags(lldb.eLaunchFlagStopAtEntry)
|
||||
process = target.Launch(launch_info, error)
|
||||
self.assertTrue(process, PROCESS_IS_VALID)
|
||||
|
||||
# This should change the value of a process's local property.
|
||||
new_cache_line_size = global_cache_line_size + 512
|
||||
error = self.dbg.SetInternalVariable(property_name,
|
||||
str(new_cache_line_size),
|
||||
self.dbg.GetInstanceName())
|
||||
self.assertTrue(error.Success(),
|
||||
property_name + " value was changed successfully")
|
||||
|
||||
# Check that it was set actually.
|
||||
self.assertEqual(get_cache_line_size(), new_cache_line_size)
|
||||
|
||||
# Run any command to initialize CommandInterpreter's execution context.
|
||||
self.runCmd("target list")
|
||||
|
||||
# Test the local property again, is it set to new_cache_line_size?
|
||||
self.assertEqual(get_cache_line_size(), new_cache_line_size)
|
||||
|
||||
Reference in New Issue
Block a user