summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/StackFrame.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2016-03-15 21:50:51 +0000
committerEnrico Granata <egranata@apple.com>2016-03-15 21:50:51 +0000
commit592afe73ada21856f908a42486378b2860037ebd (patch)
tree78ac6d4497414e805da1090ed2014455d8659266 /lldb/source/Target/StackFrame.cpp
parent298516ffa97e5cc292fc3a0bfd21054fd677a354 (diff)
downloadbcm5719-llvm-592afe73ada21856f908a42486378b2860037ebd.tar.gz
bcm5719-llvm-592afe73ada21856f908a42486378b2860037ebd.zip
Improve the 'type lookup' command such that it guesses to use the current's frame language as the one to start searching from.
llvm-svn: 263592
Diffstat (limited to 'lldb/source/Target/StackFrame.cpp')
-rw-r--r--lldb/source/Target/StackFrame.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp
index 1d1a68fd334..37dc67bed0c 100644
--- a/lldb/source/Target/StackFrame.cpp
+++ b/lldb/source/Target/StackFrame.cpp
@@ -12,10 +12,11 @@
// Other libraries and framework includes
// Project includes
#include "lldb/Target/StackFrame.h"
-#include "lldb/Core/Module.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/Disassembler.h"
#include "lldb/Core/FormatEntity.h"
+#include "lldb/Core/Mangled.h"
+#include "lldb/Core/Module.h"
#include "lldb/Core/Value.h"
#include "lldb/Core/ValueObjectVariable.h"
#include "lldb/Core/ValueObjectConstResult.h"
@@ -1356,6 +1357,23 @@ StackFrame::GetLanguage ()
return lldb::eLanguageTypeUnknown;
}
+lldb::LanguageType
+StackFrame::GuessLanguage ()
+{
+ LanguageType lang_type = GetLanguage();
+
+ if (lang_type == eLanguageTypeUnknown)
+ {
+ Function *f = GetSymbolContext(eSymbolContextFunction).function;
+ if (f)
+ {
+ lang_type = f->GetMangled().GuessLanguage();
+ }
+ }
+
+ return lang_type;
+}
+
TargetSP
StackFrame::CalculateTarget ()
{
OpenPOWER on IntegriCloud