jasonmolenda added inline comments.

================
Comment at: lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h:63
+      return false; // Zero is not a valid stack address
+    return true;
+  }
----------------
kusmour wrote:
> compnerd wrote:
> > Can we add an additional test please?  In particular, leaf frames are 
> > permitted to have unaligned stacks.
> can you provide more information about this? On windows a leaf function 
> doesn't require a stack frame. But a frame function that doesn't call other 
> function is not required to align the stack
I'm not sure if the Phabracator comments are pointing to the correct bits of 
sourcecode - you're talking about CallFrameAddressIsValid right?  This is 
checking the stack frame's Canonical Frame Address -- it is a check that the 
caller's $rsp was 16-byte aligned before it CALLed a (possibly leaf).  It isn't 
a check of the $rsp value in the callee.  The unwinder uses this as a sanity 
check to detect when the backtrace has bogus values as it walks up the stack.  

Also, not sure where this comment thread is :) but re. CodeAddressIsValid - 
return true because this is the x86 ISA where there is no instruction alignment 
restrictions.  This method is for architectures with fixed width instructions 
(okay, where"fixed width" is greater than 1 :) to help detect backtrace 
mistakes (again).  e.g. aarch64/arm64 instructions are always 4-byte aligned.


Repository:
  rLLDB LLDB

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

https://reviews.llvm.org/D62213



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

Reply via email to