[LLVMdev] DWARF unmangled subprog name (DW_AT_name)

Alexey Samsonov samsonov at google.com
Wed May 7 11:36:06 PDT 2014


On Wed, May 7, 2014 at 11:33 AM, Eric Christopher <echristo at gmail.com>wrote:

> Have you checked out llvm-symbolize? It's what the asan folk
> (including Alexey) have created for backtrace symbolication.
>

Yeah, we potentially can add some kind of option: "llvm-symbolizer
-print-short-function-names", I don't yet see why this would be valuable.
What's wrong with printing full function names?


>
> -eric
>
> On Wed, May 7, 2014 at 11:28 AM, Isaiah Norton <isaiah.norton at gmail.com>
> wrote:
> > 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
> >>
> >
> >
> > _______________________________________________
> > 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140507/b0e0fb50/attachment.html>


More information about the llvm-dev mailing list