clayborg added a comment.

If we do find what looks like a return address, is there any validation done on 
the instruction before the return address to see if it is a function call 
instruction? That would be the best way to validate that something on the stack 
just doesn't look like a return address and is actually just a random function 
pointer. I would like to see validation on anything that looks like a return 
address like:

- make sure it doesn't point to the first address of a function since if it 
actually is a return address is should be in the middle of a function
- make sure the previous instruction was a function call to the function the 
current function from which we are unwinding if we have function bounds for the 
current frame
- if we don't have function bounds for the current function, we can benefit 
from knowing the function start address in the current frame if we can find the 
call instruction since that will help us parse the correct function prologue


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