[Lldb-commits] [PATCH] D66638: Unwind: Add a stack scanning mechanism to support win32 unwinding
Adrian McCarthy via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Sep 5 14:46:30 PDT 2019
amccarth added a comment.
I don't have any specific code comments, but I do have a couple general questions and points to consider.
1. `isFoundHeuristically` is very generic. It's true that it's a heuristic approach, but it's a very specific heuristic. Might there be other heuristic approaches in the future? Should we name it something more specific like `isRaSearch`?
2. `max_iterations` means how many stack positions the heuristic will scan before giving up, right? Are there any alignment issues here? Should we assert that the return address hint is a multiple of the stack alignment?
3. The 100 for `max_iterations` is probably fine, but I wonder if there's a way to determine a more specific limit without just guessing. What things could be on the stack between the hint and the actual return address? It seems like only arguments for a call that the current function is preparing to make. The standard says that the actual number of parameters is implementation-defined, but that it suggests a minimum of 256. Should `max_iterations` be 256? Is there much risk in making it bigger than it needs to be?
4. Is checking for executable permission slow? Would it be worth doing some culling or caching? I imagine a lot of non-return address values on the stack will be simple small numbers, like 0 or 1, which, for Windows, would never be a valid executable address.
================
Comment at: include/lldb/Symbol/SymbolFile.h:254
+ /// variables and spilled registers, but it should not include paramenters, as
+ /// they are considered to be a part of the callers frame.
+ virtual llvm::Expected<lldb::addr_t> GetOwnFrameSize(Symbol &symbol) {
----------------
Typos:
paramenters -> parameters
callers -> caller's
Repository:
rLLDB LLDB
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66638/new/
https://reviews.llvm.org/D66638
More information about the lldb-commits
mailing list