[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