[PATCH] D99250: [DebugInfo] Fix the mismatching of C++ language tags and Dwarf versions.

Paul Robinson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 25 15:37:04 PDT 2021


probinson added a comment.

In D99250#2651394 <https://reviews.llvm.org/D99250#2651394>, @jsji wrote:

> The list is growing,  but sure,  we will post a thread in llvm-dev about what we met so far.
> Two big one would be that DBX not supporting string section(DW_FORM_strp) and  column-info  in line no table.

Our practice has been for a "tuning" option to, effectively, expand into other options to control various bits of behavior.  Basically, there should never be behavior that can be controlled _only_ via the tuning option.  This is a design decision that was debated at length when we introduced tuning.

There is already an option to turn off column-info in the line table, so a new tuning option could easily imply that.  I'm not sure we support suppressing .debug_str, but if we do (or add it), that would be another option, and the new tuning would imply that. And so on.

If we want to emit different sets of language codes based on something other than the DWARF version, we'd need to invent a new option to control that, and then tuning could control whether that's on or off.

In D99250#2651204 <https://reviews.llvm.org/D99250#2651204>, @dblaikie wrote:

> Does anyone else have a DWARFv3 consumer they care about? (@aprantl and @probinson)
>
> Does anyone have a DWARF consumer that changes significantly based on the language version (I guess lldb (@aprantl can you confirm?)? I doubt gdb does (yeah, it just treats all C++ versions the same <https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdb/dwarf2/read.c;h=ee6f3f7f7e14f722ec9bb6780563fa0bbbe268cc;hb=refs/heads/master#l21006>)? how about Sony?)

I believe Sony is only using v4/v5 at this point.  Regarding dialect controlling debugger behavior, I think it's unlikely, as distinguishing C++ dialects is new in v5, its adoption is pretty recent (at least for us), and we'd want behavior to be consistent across v4/v5 as much as possible.  I'll verify that with our debugger guys.

If LLDB actually does _not_ have behavior change based on dialect, then we might as well control language codes based on DWARF version, and the patch should proceed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99250



More information about the cfe-commits mailing list