[PATCH] D81844: [DebugInfo] Support parsing and dumping of DWARF64 macro units.

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 16 16:00:54 PDT 2020


dblaikie accepted this revision.
dblaikie added inline comments.


================
Comment at: llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp:31-32
+  OS << format("macro header: version = 0x%04" PRIx16, Version)
+     << format(", flags = 0x%02" PRIx8, Flags)
+     << ", format = " << FormatString(getDwarfFormat());
   if (Flags & MACRO_DEBUG_LINE_OFFSET)
----------------
ikudrin wrote:
> dblaikie wrote:
> > This is a bit redundant and possibly confusing - the format is given by the flags. Perhaps the flags should be decomposed into their semantic values and rendered that way (& render the raw flag value if it contains other bits set that aren't described by the spec)?
> > 
> > Though I guess it's not entirely inconsistent with the way we print the format and the length in other sections, when the format is sort of described by the length..
> Sorry, but I do not fully understand what you are suggesting to change exactly.
> 
> I guess that reporting `Flags` in some cases while omitting it in others might not be a good practice. We discussed something similar for a patch that added reporting the format and the common consensus was that it is better to print the format for both variants rather than only for `DWARF64`.
> 
> We could decode the value of `Flags` in each case, but that is already done even if in a bit indirect way. We dump `debug_line_offset` only if the corresponding flag is set and, with this patch, we explicitly dump the format. The only remaining flag, `opcode_operands_table`, is not supported yet. But even if we decide to explicitly explain `Flags`, that should be a separate patch.
Fair enough - thanks for the explanation.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D81844





More information about the llvm-commits mailing list