[Lldb-commits] [PATCH] D53753: [Windows] Define generic arguments registers for Windows x64

Aleksandr Urakov via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu May 16 04:53:43 PDT 2019

aleksandr.urakov added a comment.

In D53753#1504361 <https://reviews.llvm.org/D53753#1504361>, @labath wrote:

> I'm not sure what exactly are the consequences of not using the correct ABI definition here. I think the case where the difference may start to become obvious is if you try to get argument values of a function for which you don't have debug info for.

It sounds strange to me... If we don't have symbols for a function, then we can't even know amount of its arguments, so how can we retrieve them? Also e.g. on Windows x86 both stdcall, ccall, thiscall and fastcall are commonly used, so it would be strange to use some "default" ABI...

But I don't know why the SysV ABI is used on Windows now (it was already used before my commit). It looks like nothing bad should happen if we will use it for expressions evaluation (and even with six arguments - r10 and r11 are volatile on Windows x64), but I have no objections to creating a separate ABI plugin.

> (Also, we use the abi plugin to call mmap, and mmap takes 6 arguments).

Can you explain me, please, when does such mmap being called? Just for the purpose of general education :)




More information about the lldb-commits mailing list