[PATCH] D32779: DWARF: Implementation of v5 string offsets table (.debug_str_offsets[.dwo] section)/consumer

Wolfgang Pieb via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 2 11:14:31 PDT 2017


wolfgangp updated this revision to Diff 101241.
wolfgangp marked an inline comment as done.
wolfgangp added a comment.

The patch has been accepted but in order to address the last review comments some non-trivial changes were necessary, so it probably needs another look.

1. error messages will now be emitted when we find invalid contributions to the string offsets table. One test has been added to address the case where we encounter a degenerate .debug_str_offsets section (without a v5 unit present).

2. Per Dave's suggestion the routines dumping the string offsets table have been reorganized a bit, so now the main dump routine for DWARFContext looks cleaner. Dumping a DWARF v5 string offsets table keys off whether we find a unit with version 5 or greater. Otherwise we dump a monolithic table. That means that the *invalid* tests had to be enhanced a bit to contain at least a rudimentary v5 compile unit.

3. Dumping the string offsets table now also displays the strings, so the respective test has been updated.


https://reviews.llvm.org/D32779

Files:
  include/llvm/DebugInfo/DIContext.h
  include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
  include/llvm/DebugInfo/DWARF/DWARFContext.h
  include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
  include/llvm/DebugInfo/DWARF/DWARFUnit.h
  include/llvm/MC/MCObjectFileInfo.h
  include/llvm/Object/MachO.h
  include/llvm/Object/ObjectFile.h
  lib/DebugInfo/DWARF/DWARFContext.cpp
  lib/DebugInfo/DWARF/DWARFFormValue.cpp
  lib/DebugInfo/DWARF/DWARFUnit.cpp
  lib/MC/MCObjectFileInfo.cpp
  lib/Object/MachOObjectFile.cpp
  test/DebugInfo/Inputs/dwarfdump-str-offsets-dwp.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets-dwp.x86_64.o
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-1.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-1.x86_64.o
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-2.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-2.x86_64.o
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-3.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-3.x86_64.o
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-4.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-4.x86_64.o
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-5.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets-invalid-5.x86_64.o
  test/DebugInfo/Inputs/dwarfdump-str-offsets.s
  test/DebugInfo/Inputs/dwarfdump-str-offsets.x86_64.o
  test/DebugInfo/dwarfdump-str-offsets-invalid.test
  test/DebugInfo/dwarfdump-str-offsets.test
  tools/llvm-dwarfdump/llvm-dwarfdump.cpp
  tools/obj2yaml/dwarf2yaml.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32779.101241.patch
Type: text/x-patch
Size: 64826 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170602/e4295b19/attachment-0001.bin>


More information about the llvm-commits mailing list