[PATCH] D65035: [DebugInfo] Don't emit incorrect descriptions of thunk params (PR42627)

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 5 16:08:49 PDT 2019


vsk added a comment.

In D65035#1615888 <https://reviews.llvm.org/D65035#1615888>, @dblaikie wrote:

> In D65035#1615833 <https://reviews.llvm.org/D65035#1615833>, @aprantl wrote:
>
> > In D65035#1615819 <https://reviews.llvm.org/D65035#1615819>, @dblaikie wrote:
> >
> > > In D65035#1615787 <https://reviews.llvm.org/D65035#1615787>, @aprantl wrote:
> > >
> > > > It's likely better for the tools to know where each function starts *and ends*.
> > >
> > >
> > > __attribute__((nodebug)) breaks that invariant (& I think there's other functions we emit without debug info too - maybe some things to do with global ctors?)
> >
> >
> > Correct, and the tools need to fall back to heuristics in these cases. I don't know whether this causes any problems in practice.
> >
> > >> More importantly though, if we don't generate debug info for the thunk, can we describe the function itself after it became inlined into the thunk?
> > > 
> > > Not really, no - and GCC doesn't describe the inlining either. A backtrace would demangle the name of the thunk & that's about all it could show there.
> >
> > *That* sounds like a good reason to keep the debug info for the thunks around.
>
>
> Not sure I follow why demangling the symbol would result in a worse user experience than the debug info? About the only thing in the debug info is the mangled name that's in the symbol table too.


Oh, wouldn't the debugger lose the ability to synthesize an [inlined] frame for whatever is inlined into the thunk?


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65035/new/

https://reviews.llvm.org/D65035





More information about the llvm-commits mailing list