[LLVMdev] DWARF unmangled subprog name (DW_AT_name)

Isaiah Norton isaiah.norton at gmail.com
Wed May 7 11:28:19 PDT 2014


The use case is getting the short name for backtraces. There are other
options, but I figured it was worth a shot trying to access from the DWARF
structure because what we need is already stored there anyway.

Thanks,
Isaiah


On Wed, May 7, 2014 at 12:24 PM, Alexey Samsonov <samsonov at google.com>wrote:

> Yeah, public API of DebugInfo library is quite minimalistic. But I agree
> with Eric - what is the use case for getting unmangled name from DIE?
>
>
> On Tue, May 6, 2014 at 11:21 PM, Keno Fischer <
> kfischer at college.harvard.edu> wrote:
>
>> That doesn't seem possible with the public API or am I mistaking?
>>
>>
>> On Wed, May 7, 2014 at 12:13 AM, Eric Christopher <echristo at gmail.com>wrote:
>>
>>> On Tue, May 6, 2014 at 8:09 PM, Isaiah Norton <isaiah.norton at gmail.com>
>>> wrote:
>>> > Hi,
>>> >
>>> > I am looking for a way to get unmangled subprogram names from a
>>> > DWARFContext. The name I want is available in the attribute
>>> `DW_AT_name`
>>> > [1], but as far as I can tell this is only returned as a fallback in
>>> > `DWARFDebugInfoEntryMinimal::getSubroutineName` when the linkage name
>>> is not
>>> > available [2].
>>> >
>>> > If this is not currently possible, is there any interest in adding such
>>> > access to the public DebugInfo API? Perhaps with an additional
>>> > "UnmangledName" option in `DILineInfoSpecifier`.
>>> >
>>> > Thanks,
>>> > Isaiah
>>> >
>>> > [1]: for example:
>>> >
>>> > 0x0001bb00:   DW_TAG_subprogram [2]
>>> >                 DW_AT_MIPS_linkage_name [DW_FORM_strp]  (
>>> > .debug_str[0x00007934] = "julia_vcat4473")
>>> >                 DW_AT_name [DW_FORM_strp]       (
>>> .debug_str[0x00000913] =
>>> > "vcat")
>>> >
>>> >
>>> > [2]
>>> >
>>> https://github.com/llvm-mirror/llvm/blob/master/lib/DebugInfo/DWARFDebugInfoEntry.cpp#L279-L286
>>> >
>>> >
>>>
>>> If you just want the DW_AT_name you should be able to iterate over the
>>> DIEs and pull out the DW_AT_name attribute from all of the subprogram
>>> DIEs. Is there some other use that you're looking for? I'm not quite
>>> sure what you're trying to accomplish.
>>>
>>> -eric
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
>
> --
> Alexey Samsonov, Mountain View, CA
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140507/1bdf9ff1/attachment.html>


More information about the llvm-dev mailing list