Fixed a case where a stack frame could lose track
authorSean Callanan <scallanan@apple.com>
Thu, 21 Feb 2013 20:54:33 +0000 (20:54 +0000)
committerSean Callanan <scallanan@apple.com>
Thu, 21 Feb 2013 20:54:33 +0000 (20:54 +0000)
of its own target.

<rdar://problem/13121412>

llvm-svn: 175794

lldb/source/Target/StackFrame.cpp

index fd95882..2cc46ef 100644 (file)
@@ -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