[LLVMdev] No location info for artificial arguments: cannot step into class methods

David Blaikie dblaikie at gmail.com
Wed Jun 24 14:41:33 PDT 2015


On Wed, Jun 24, 2015 at 2:28 PM, Oleg Ranevskyy <llvm.mail.list at gmail.com>
wrote:

>  Hi David,
>
> I got a problem related to the change made in r188651 - not including
> file/line info for artificial arguments like "this" and "self".
> Would you be able to take a look at it, please?
>

Could you provide a simple test case? (& ideally: does this reproduce on
X86, a platform I've easy access to (& if it doesn't, I'd be curious to
understand why not...))


> I am compiling the code for ARM linux with fast ISel disabled: -mllvm
> -fast-isel=0. The problem is that it's not possible to step into the
> constructor, destructor or a method of a class while debugging. Clang
> generates correct .loc in function prologues, but then,  due to r188651,
> inserts a debug info location with zeroed line number (.loc 1 0 0) for
> "this", which misleads the debugger.
>
> Could you explain the reasoning behind this change, please?
>

The reason for the change, if I recall correctly (perhaps I mentioned in
the commit message, I'm not sure) was to reduce debug info size for the
debug_info section - I don't believe the intent was to have any impact on
the line table.

(artificial variables, like "this" don't have a location they are declared
on, so there was/is no need to have a DW_AT_decl_file/line in the
debug_info describing their declaration location)


>
> This hasn't been noticed before due to the fast ISel omitting location
> info for arguments, so the correct location from the prologue is used. It
> is probably yet another problem to handle.
>
> Thanks in advance for any help.
> Kind regards,
> Oleg
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150624/790d1725/attachment.html>


More information about the llvm-dev mailing list