[LLVMdev] debug metadata incomplete for array arguments to functions?

Eli Bendersky eliben at gmail.com
Thu Jul 14 21:35:16 PDT 2011


> > This reflects the compiler's view of things correctly, but is problematic
> for a debugger. The debugger should know that arg_arr refers to a 42-element
> array and isn't just a pointer into a buffer of unspecified length. This is
> something the user would expect.
> > On the other hand, the debugger should also get the information that
> arg_arr is actually a pointer, to be able to get to its values correctly.
> >
> > Is there a way out?
>
> The only way out is to figure out how to distinguish between these two in
> front-end AST nodes while emitting LLVM IR. The part of front end that emits
> debug info for an argument is seeing arg_arr as a pointer to int.
>
> If you manually patch metadata in llvm IR then you'll get debug info as you
> expect.
> -
>

Suppose one would start writing a patch to Clang to rectify this, how would
this information be encoded in the debug metadata, given the dual nature of
the arg_arr argument? Is there a mechanism to support it, or is an extension
required?

Thanks in advance
Eli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110715/be4db3d8/attachment.html>


More information about the llvm-dev mailing list