[Lldb-commits] [PATCH] D62213: [ABI] Implement Windows ABI for x86_64

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue May 21 19:33:35 PDT 2019


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





More information about the lldb-commits mailing list