[Lldb-commits] [PATCH] D58347: Reinitialize UnwindTable when the SymbolFile changes

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 20 01:46:12 PST 2019

labath marked 2 inline comments as done.
labath added inline comments.

Comment at: source/Core/Module.cpp:1451-1454
+        // Clear the unwind table too, as that may also be affected by the
+        // symbol file information.
+        m_unwind_table.reset();
jasonmolenda wrote:
> clayborg wrote:
> > Are we sure no one is holding onto info that was given out from an existing UnwindTable? What if we do a backtrace, then load symbol files and then do another backtrace? Seems like we will want to keep our existing info and just call m_unwind_table->Clear()?
> I THINK it will be OK.  RegisterContextLLDB holds shared pointers to the UnwindPlans that it got from the UnwindTable, so those will stay alive.  An UnwindPlan doesn't refer back to the UnwindTable it came from.
I agree with Jason. Nobody should store any pointers to the unwind table, and the FuncUnwinders and UnwindPlan objects are already handed out as shared pointers (but those shouldn't persist for long either, or otherwise our new unwind info wouldn't be effective).  If we find a good reason to store the old unwind table, we can always do the thing like we do for SymbolFiles (where the Module keeps a list of all SymbolFile objects it ever had), but I hope that will not be necessary.



More information about the lldb-commits mailing list