summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Debugger.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2014-07-08 01:07:32 +0000
committerJim Ingham <jingham@apple.com>2014-07-08 01:07:32 +0000
commit30fadafefe67e531c809496c0f4e40593f6964db (patch)
treeff00cddd2a8dabab018500c17fbeb45fb9eb745f /lldb/source/Core/Debugger.cpp
parentc94285a1a02f8432f74d6c63ab7357a96497f177 (diff)
downloadbcm5719-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.cpp14
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:");
OpenPOWER on IntegriCloud