mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-09 09:32:20 +00:00
Fix a crash in expressions with fixits in the dummy target.
In the expression command, if the target is NULL, you have to use the dummy target. <rdar://problem/28811687> llvm-svn: 284439
This commit is contained in:
parent
0d31d9c012
commit
981da8d37b
@ -23,11 +23,18 @@ class ExprCommandWithFixits(TestBase):
|
||||
self.main_source_spec = lldb.SBFileSpec(self.main_source)
|
||||
|
||||
@skipUnlessDarwin
|
||||
def test(self):
|
||||
"""Test calling a function that throws and ObjC exception."""
|
||||
def test_with_target(self):
|
||||
"""Test calling expressions with errors that can be fixed by the FixIts."""
|
||||
self.build()
|
||||
self.try_expressions()
|
||||
|
||||
def test_with_dummy_target(self):
|
||||
"""Test calling expressions in the dummy target with errors that can be fixed by the FixIts."""
|
||||
ret_val = lldb.SBCommandReturnObject()
|
||||
result = self.dbg.GetCommandInterpreter().HandleCommand("expression ((1 << 16) - 1))", ret_val)
|
||||
self.assertEqual(result, lldb.eReturnStatusSuccessFinishResult, "The expression was successful.")
|
||||
self.assertTrue("Fix-it applied" in ret_val.GetError(), "Found the applied FixIt.")
|
||||
|
||||
def try_expressions(self):
|
||||
"""Test calling expressions with errors that can be fixed by the FixIts."""
|
||||
exe_name = "a.out"
|
||||
|
@ -614,6 +614,9 @@ bool CommandObjectExpression::DoExecute(const char *command,
|
||||
if (EvaluateExpression(expr, &(result.GetOutputStream()),
|
||||
&(result.GetErrorStream()), &result)) {
|
||||
Target *target = m_interpreter.GetExecutionContext().GetTargetPtr();
|
||||
if (!target)
|
||||
target = GetDummyTarget();
|
||||
|
||||
if (!m_fixed_expression.empty() && target->GetEnableNotifyAboutFixIts()) {
|
||||
CommandHistory &history = m_interpreter.GetCommandHistory();
|
||||
// FIXME: Can we figure out what the user actually typed (e.g. some alias
|
||||
|
Loading…
Reference in New Issue
Block a user