diff options
author | Greg Clayton <gclayton@apple.com> | 2011-10-01 00:45:15 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-10-01 00:45:15 +0000 |
commit | 1ed54f50c54400c5968396b4aaa0704c0f1e3a72 (patch) | |
tree | d66070ab60d61fde3db66aedb0eb847c6ff653a7 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | |
parent | 94bcd38d1056f76e21e09e71e004f5d0f77eb063 (diff) | |
download | bcm5719-llvm-1ed54f50c54400c5968396b4aaa0704c0f1e3a72.tar.gz bcm5719-llvm-1ed54f50c54400c5968396b4aaa0704c0f1e3a72.zip |
Cleaned up the the code that figures out the inlined stack frames given a
symbol context that represents an inlined function. This function has been
renamed internally to:
bool
SymbolContext::GetParentOfInlinedScope (const Address &curr_frame_pc,
SymbolContext &next_frame_sc,
Address &next_frame_pc) const;
And externally to:
SBSymbolContext
SBSymbolContext::GetParentOfInlinedScope (const SBAddress &curr_frame_pc,
SBAddress &parent_frame_addr) const;
The correct blocks are now correctly calculated.
Switched the stack backtracing engine (in StackFrameList) and the address
context printing over to using the internal SymbolContext::GetParentOfInlinedScope(...)
so all inlined callstacks will match exactly.
llvm-svn: 140910
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index 3d263838d28..d39fbe4d622 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -152,6 +152,11 @@ ProcessGDBRemote::~ProcessGDBRemote() } // m_mach_process.UnregisterNotificationCallbacks (this); Clear(); + // We need to call finalize on the process before destroying ourselves + // to make sure all of the broadcaster cleanup goes as planned. If we + // destruct this class, then Process::~Process() might have problems + // trying to fully destroy the broadcaster. + Finalize(); } //---------------------------------------------------------------------- |