summaryrefslogtreecommitdiffstats
path: root/lldb
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2013-02-21 20:54:33 +0000
committerSean Callanan <scallanan@apple.com>2013-02-21 20:54:33 +0000
commitf4be227dc66c412dc54342848b666ef0c376bd8d (patch)
tree58f0d67aa68e260dcf1c3eecf5e8bd6376124362 /lldb
parent65f1fa1bb23b5af7dadf971a5564ae071d027160 (diff)
downloadbcm5719-llvm-f4be227dc66c412dc54342848b666ef0c376bd8d.tar.gz
bcm5719-llvm-f4be227dc66c412dc54342848b666ef0c376bd8d.zip
Fixed a case where a stack frame could lose track
of its own target. <rdar://problem/13121412> llvm-svn: 175794
Diffstat (limited to 'lldb')
-rw-r--r--lldb/source/Target/StackFrame.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp
index fd95882d15a..2cc46ef9b31 100644
--- a/lldb/source/Target/StackFrame.cpp
+++ b/lldb/source/Target/StackFrame.cpp
@@ -452,7 +452,12 @@ StackFrame::GetSymbolContext (uint32_t resolve_scope)
// function, block, line entry or symbol, so we can safely call
// ResolveSymbolContextForAddress with our symbol context member m_sc.
if (m_sc.target_sp)
+ {
+ // FIXME This call erases m_sc.target_sp and will never restore it. Back it up.
+ TargetSP target_sp = m_sc.target_sp;
resolved |= m_sc.target_sp->GetImages().ResolveSymbolContextForAddress (lookup_addr, resolve_scope, m_sc);
+ m_sc.target_sp = target_sp;
+ }
}
// Update our internal flags so we remember what we have tried to locate so
OpenPOWER on IntegriCloud