diff options
author | Jim Ingham <jingham@apple.com> | 2014-07-08 01:07:32 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2014-07-08 01:07:32 +0000 |
commit | 30fadafefe67e531c809496c0f4e40593f6964db (patch) | |
tree | ff00cddd2a8dabab018500c17fbeb45fb9eb745f /lldb/source/Core/Debugger.cpp | |
parent | c94285a1a02f8432f74d6c63ab7357a96497f177 (diff) | |
download | bcm5719-llvm-30fadafefe67e531c809496c0f4e40593f6964db.tar.gz bcm5719-llvm-30fadafefe67e531c809496c0f4e40593f6964db.zip |
If a hand-called function is interrupted by hitting a breakpoint, then
when you continue to finish off the function call, the expression result
will be included as part of the thread stop info.
llvm-svn: 212506
Diffstat (limited to 'lldb/source/Core/Debugger.cpp')
-rw-r--r-- | lldb/source/Core/Debugger.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index 0def3680a62..5ce2eae0735 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -111,6 +111,7 @@ g_language_enumerators[] = "{, ${thread.info.trace_messages} messages}" \ "{, stop reason = ${thread.stop-reason}}"\ "{\\nReturn value: ${thread.return-value}}"\ + "{\\nCompleted expression: ${thread.completed-expression}}"\ "\\n" #define DEFAULT_FRAME_FORMAT "frame #${frame.index}: ${frame.pc}"\ @@ -2075,6 +2076,19 @@ FormatPromptRecurse } } } + else if (IsToken (var_name_begin, "completed-expression}")) + { + StopInfoSP stop_info_sp = thread->GetStopInfo (); + if (stop_info_sp && stop_info_sp->IsValid()) + { + ClangExpressionVariableSP expression_var_sp = StopInfo::GetExpressionVariable (stop_info_sp); + if (expression_var_sp && expression_var_sp->GetValueObject()) + { + expression_var_sp->GetValueObject()->Dump(s); + var_success = true; + } + } + } else if (IsToken (var_name_begin, "script:")) { var_name_begin += ::strlen("script:"); |