llvm-project/llvm/tools
Reid Kleckner a058736c9c [dwarfdump] Pretty print location expressions and location lists
Summary:
Based on Fred's patch here: https://reviews.llvm.org/D6771

I can't seem to commandeer the old review, so I'm creating a new one.

With that change the locations exrpessions are pretty printed inline in the
DIE tree. The output looks like this for debug_loc entries:

    DW_AT_location [DW_FORM_data4]        (0x00000000
       0x0000000000000001 - 0x000000000000000b: DW_OP_consts +3
       0x000000000000000b - 0x0000000000000012: DW_OP_consts +7
       0x0000000000000012 - 0x000000000000001b: DW_OP_reg0 RAX, DW_OP_piece 0x4
       0x000000000000001b - 0x0000000000000024: DW_OP_breg5 RDI+0)

And like this for debug_loc.dwo entries:
    DW_AT_location [DW_FORM_sec_offset]   (0x00000000
      Addr idx 2 (w/ length 190): DW_OP_consts +0, DW_OP_stack_value
      Addr idx 3 (w/ length 23): DW_OP_reg0 RAX, DW_OP_piece 0x4)

Simple locations without ranges are printed inline:

   DW_AT_location [DW_FORM_block1]       (DW_OP_reg4 RSI, DW_OP_piece 0x4, DW_OP_bit_piece 0x20 0x0)

The debug_loc(.dwo) dumping in changed accordingly to factor the code.

Reviewers: dblaikie, aprantl, friss

Subscribers: mgorny, javed.absar, hiraditya, llvm-commits, JDevlieghere

Differential Revision: https://reviews.llvm.org/D37123

llvm-svn: 312042
2017-08-29 21:41:21 +00:00
..
bugpoint [NFC] Remove multiple semicolons 2017-06-28 23:15:16 +00:00
bugpoint-passes [CMake] bugpoint-passes depends on intrinsics_gen 2016-11-19 02:20:59 +00:00
dsymutil dsymutil: don't copy compile units without children from PCM files 2017-08-22 01:10:48 +00:00
gold [gold-plugin] Use more StringRef. No functionality change intended. 2017-08-10 19:28:00 +00:00
llc Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
lli Untabify. 2017-08-28 06:47:47 +00:00
llvm-ar llvm: add llvm-dlltool support to the archiver 2017-07-18 21:26:38 +00:00
llvm-as [CMake] llvm-as depends on intrinsics_gen 2016-11-19 02:15:04 +00:00
llvm-as-fuzzer Update LLVM fuzzers to use the libFuzzer bundled with the compiler toolchain 2017-08-23 00:40:58 +00:00
llvm-bcanalyzer Bitcode: Include any strings added to the string table in the module hash. 2017-07-06 17:56:01 +00:00
llvm-c-test fix typos in comments and error messges; NFC 2017-07-13 06:48:39 +00:00
llvm-cat Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-config [GlobalISel] Make GlobalISel a non-optional library. 2017-08-03 21:52:25 +00:00
llvm-cov [llvm-cov] Add an option which maps the location of source directories on another machine to your local copies 2017-08-14 10:20:12 +00:00
llvm-cvtres Revert "Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library."""" 2017-07-08 03:06:10 +00:00
llvm-cxxdump Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
llvm-cxxfilt c++filt: support COFF import thunks 2017-03-22 21:15:19 +00:00
llvm-diff [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
llvm-dis [ThinLTO] Fix ThinLTO crash while destroying context 2017-08-15 22:23:44 +00:00
llvm-dwarfdump [dwarfdump] Pretty print location expressions and location lists 2017-08-29 21:41:21 +00:00
llvm-dwp Don't pass the code model to MC 2017-08-02 20:32:26 +00:00
llvm-extract [llvm-extract] Add option for recursive extraction 2017-04-06 20:51:40 +00:00
llvm-go [llvm-go] parameterize $GOPATH construction 2016-07-27 03:21:51 +00:00
llvm-isel-fuzzer Implement llvm-isel-fuzzer for fuzzing instruction selection 2017-08-29 00:22:08 +00:00
llvm-jitlistener Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-link Re-apply r302108, "IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI." 2017-05-04 18:03:25 +00:00
llvm-lto Fix dangling StringRefs found by clang-tidy misc-dangling-handle check. 2017-07-04 15:13:02 +00:00
llvm-lto2 Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
llvm-mc Don't pass the code model to MC 2017-08-02 20:32:26 +00:00
llvm-mc-assemble-fuzzer Fix build of llvm-mc-assemble/disassemble-fuzzer 2017-08-29 17:08:44 +00:00
llvm-mc-disassemble-fuzzer Fix build of llvm-mc-assemble/disassemble-fuzzer 2017-08-29 17:08:44 +00:00
llvm-mcmarkup Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-modextract Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-mt llvm-mt: Merge manifest namespaces. 2017-08-19 00:37:41 +00:00
llvm-nm [llvm] Update MachOObjectFile::exports interface 2017-07-29 00:30:45 +00:00
llvm-objcopy Reland "[llvm] Add symbol table support to llvm-objcopy" 2017-08-29 02:12:03 +00:00
llvm-objdump Untabify. 2017-08-28 06:47:47 +00:00
llvm-opt-report [llvm-opt-report] Fix context-sensitive lines where nothing happened 2017-01-07 20:21:17 +00:00
llvm-pdbutil Remove llvm-pdbutil/fuzzer. 2017-08-23 00:02:10 +00:00
llvm-profdata [ProfileData] Add new option to dump topn hottest functions 2017-07-11 20:30:43 +00:00
llvm-rc [llvm-rc] Fix DIALOG(EX) parsing ability (parser, pt 5/8). 2017-08-29 20:03:18 +00:00
llvm-readobj Follow up for r307085: a better fix for a dangling StringRef. 2017-07-26 10:14:55 +00:00
llvm-rtdyld Use delegation instead of inheritance. 2017-07-19 22:27:28 +00:00
llvm-shlib [Solaris] enable --whole-archive for shared-library build, disable --version-script for Solaris-ld 2017-07-19 16:07:51 +00:00
llvm-size llvm-size: remove leading dash in '-radix' option 2016-12-23 23:55:08 +00:00
llvm-split [CMake] llvm-split depends on intrinsics_gen 2016-11-18 23:20:38 +00:00
llvm-stress [IR] Make use of Type::isPtrOrPtrVectorTy/isIntOrIntVectorTy/isFPOrFPVectorTy to shorten code. NFC 2017-07-09 07:04:00 +00:00
llvm-strings llvm-strings: remove default for -Wcovered-switch-default 2017-01-21 02:52:29 +00:00
llvm-symbolizer DebugInfo: Provide option for explicitly specifying the name of the DWP file 2017-07-30 01:34:08 +00:00
llvm-xray Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
lto Spelling mistakes in comments. NFCI. 2017-03-30 12:59:53 +00:00
msbuild Create msbuild only when using MSVC 2017-03-16 20:24:14 +00:00
obj2yaml Use delegation instead of inheritance. 2017-07-19 22:27:28 +00:00
opt Keep Optimization Remark Yaml in NewPM 2017-08-20 01:30:45 +00:00
opt-viewer [opt-viewer] Listify `dict_items` for Py3 indexing 2017-08-14 04:16:43 +00:00
sancov [sancov] Fix broken links and displaced coloring in coverage-report-server.py 2017-03-20 14:06:04 +00:00
sanstats [sanstats] Print the correct line information. 2017-07-13 00:49:03 +00:00
verify-uselistorder [CMake] verify-uselistorder depends on intrinsics_gen 2016-11-18 23:30:58 +00:00
xcode-toolchain [CMake] Minor fix to regex in r279152 2016-08-18 21:36:36 +00:00
yaml2obj [yaml2obj][ELF] Add support for program headers 2017-07-19 20:38:46 +00:00
CMakeLists.txt Fixup r271533, or check-clang didn't find llvm-lto as the target. 2016-06-02 20:39:24 +00:00
LLVMBuild.txt Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-08-01 00:33:58 +00:00