[RFC] DWARF Version 6 Proposal For Heterogeneous Debugging

Hi llvm-dev,

I'm writing on behalf of a team at AMD working on upstreaming support
for AMD GPUs into GDB. We have drafted a proposal of backwards
compatible extensions to DWARF for heterogeneous debugging which is
rendered at
https://llvm.org/docs/AMDGPUDwarfProposalForHeterogeneousDebugging.html.

The proposal includes a thorough introduction with justification, so I
won't belabor that here, but I do want to reiterate that the extensions
are designed to be vendor and architecture neutral, and completely
backwards compatible with DWARF 5.

I am beginning to work on a reference implementation of the proposal in
LLVM, with some very preliminary support appearing in some patches
starting at https://reviews.llvm.org/D76877. Note that most of these
initial patches are AMDGPU-specific CFI changes, and more general
support for the extensions are still a WIP.

I intended to also include the proposal inline, but it appears to be too
large for the list. Instead I will just mention that the source is
available in the llvm-project repo as
llvm/docs/AMDGPUDwarfProposalForHeterogeneousDebugging.rst

Regards,
Scott

I don't know what an acceptable ping rate on an RFC is, but I also wanted to add that if anyone prefers to review this on Phabricator the latest diff of https://reviews.llvm.org/D70523 essentially includes the entire contents of the proposal, because it was moved to another file.

Thanks,
Scott

Hi Scott,

It’s possible they’ve missed it, so I’ve explicitly CC’ed a number of the usual DWARF suspects, at least some of whom are on the standards committee. I don’t have anything specific to add myself.

James

Been meaning to get to this… I have to say, it’s a big lump of text to take in. Two general questions: Did you still want comments posted on the review (D70523) or in some other fashion? And, would it be possible to more clearly identify the new/changed bits of the sections that you are quoting from the spec? When I see a bunch of familiar text I’m inclined to skim over it, which means I’m likely to miss something that just has that subtle “New” on it. Maybe you could put a Note at those points just to be a more obvious call-out.

Thanks,

–paulr

[AMD Public Use]

Hi Paul,

Almost all the text in the proposal is different to some extent to what is in the DWARF 5 spec. Some passages are clearly brought forward from the DWARF 5 spec, but generally needed changing to some extent to fit in with the new text. I did add “Notes” to tie each section back to the DWARF 5 spec that it modifies. Since the proposal is largely concerned with DWARF location descriptions and addresses it ended up touching a lot of places in the DWARF expression sections and the attributes that use them. Despite the size of the proposed changes, the intent is that it is fully backward compatible with DWARF 5.

Making comments in the review would likely be the easiest to track.

Thanks,

-Tony