jasonmolenda added a comment.

This is obviously building on Pavel's work of https://reviews.llvm.org/D66638 
for Win32 systems.  What problem with that existing patchset is this 
addressing?  Pavel's original patch assumes that we can retrieve a function's 
expected stack frame size, and the size of the caller's arguments on the stack, 
plus a bit of searching around that location, as he describes.  It seems like 
in ABIWindows_x86_64::CreateStackWalkingUnwindPlan you're adding a scheme that 
tries to look at the area directly around $sp for a return pc?  This seems 
quite fragile by itself.

The idea of a stack walk based purely on looking at stack contents, outside of 
the Windows ABI, is interesting, but as Pavel mentions in his descriptions, you 
have to be careful to not get tricked by function pointers on the stack (for 
return-pc's) and pointers to stack memory (for spilled fp or sp values).  If we 
have an ABI that always writes fp+return-pc to stack at the start of the stack 
frame for non-leaf frames, we could maybe do something as a last resort, I 
haven't thought about it.

Greg's feedback is all solid.  I'm more curious about what higher level fix is 
being pursued with this patch.  Pavel is clearly the person who knows the most 
about this part of the unwinder.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124198/new/

https://reviews.llvm.org/D124198

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to