mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 10:33:59 -05:00
https://llvm.org/docs/CommandGuide/llvm-dwarfdump.html This dumps the DWARF debugging information in a human readable form: ``` <source>: file format ELF64-x86-64 .debug_info contents: 0x00000000: Compile Unit: length = 0x00000063 version = 0x0004 abbr_offset = ... 0x0000000b: DW_TAG_compile_unit DW_AT_producer ("GNU C17 9.4.0 ...) ``` This tool would be useful to have when comparing the debug output of two compiler versions or compiler targets. For instance I wanted to find out recently how AArch64 and X86 targets represent TLS variables. The tool runs on the compiled binary, so is post compilation. If the binary has no debug information the tool does not crash, it just tells you that there is no information. To fit the other llvm/clang tools, I've just added an "llvm-dwarfdump (trunk)" like llvm-mca has done. Added it to c/c++/objc/objc++ (open CL can't compile to binary so skipped those). MSVC is excluded because it produces PDB files instead. The tool works for at least ELF and XCOFF files, I haven't been able to test any others.
75 lines
2.4 KiB
Properties
75 lines
2.4 KiB
Properties
# Default settings for Objective-C++
|
|
defaultCompiler=objcxxgdefault
|
|
postProcess=
|
|
demangler=c++filt
|
|
demanglerType=cpp
|
|
objdumper=objdump
|
|
#androidNdk=/opt/google/android-ndk-r9c
|
|
options=
|
|
supportsBinary=true
|
|
supportsBinaryObject=true
|
|
binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_start|frame_dummy|\.plt.*|_dl_relocate_static_pie)$
|
|
needsMulti=false
|
|
stubRe=\bmain\b
|
|
stubText=int main(void){return 0;/*stub provided by Compiler Explorer*/}
|
|
supportsLibraryCodeFilter=true
|
|
|
|
|
|
compilers=&gcc
|
|
|
|
group.gcc.compilers=objcxxg44:objcxxg45:objcxxg46:objcxxg47:objcxxg48:objcxxg5:objcxxg6x:objcxxg7:objcxxg8:objcxxg9:objcxxg10:objcxxg11:objcxxgdefault
|
|
compiler.objcxxg44.exe=/usr/bin/g++-4.4
|
|
compiler.objcxxg44.name=g++ 4.4
|
|
compiler.objcxxg45.exe=/usr/bin/g++-4.5
|
|
compiler.objcxxg45.name=g++ 4.5
|
|
compiler.objcxxg46.exe=/usr/bin/g++-4.6
|
|
compiler.objcxxg46.name=g++ 4.6
|
|
compiler.objcxxg47.exe=/usr/bin/g++-4.7
|
|
compiler.objcxxg47.name=g++ 4.7
|
|
compiler.objcxxg48.exe=/usr/bin/g++-4.8
|
|
compiler.objcxxg48.name=g++ 4.8
|
|
compiler.objcxxg5.exe=/usr/bin/g++-5
|
|
compiler.objcxxg5.name=g++ 5.x
|
|
compiler.objcxxg6x.exe=/usr/bin/g++-6
|
|
compiler.objcxxg6x.name=g++ 6.x
|
|
compiler.objcxxg6x.alias=g6
|
|
compiler.objcxxg7.exe=/usr/bin/g++-7
|
|
compiler.objcxxg7.name=g++ 7.x
|
|
compiler.objcxxg8.exe=/usr/bin/g++-8
|
|
compiler.objcxxg8.name=g++ 8.x
|
|
compiler.objcxxg9.exe=/usr/bin/g++-9
|
|
compiler.objcxxg9.name=g++ 9.x
|
|
compiler.objcxxg10.exe=/usr/bin/g++-10
|
|
compiler.objcxxg10.name=g++ 10.x
|
|
compiler.objcxxg11.exe=/usr/bin/g++-11
|
|
compiler.objcxxg11.name=g++ 11.x
|
|
compiler.objcxxgdefault.exe=/usr/bin/g++
|
|
compiler.objcxxgdefault.name=g++ default
|
|
|
|
tools=strings:ldd:llvmdwarfdumpdefault
|
|
|
|
tools.ldd.name=ldd
|
|
tools.ldd.exe=/usr/bin/ldd
|
|
tools.ldd.type=postcompilation
|
|
tools.ldd.class=readelf-tool
|
|
tools.ldd.exclude=djggp
|
|
tools.ldd.stdinHint=disabled
|
|
|
|
tools.strings.exe=/usr/bin/strings
|
|
tools.strings.name=strings
|
|
tools.strings.type=postcompilation
|
|
tools.strings.class=strings-tool
|
|
tools.strings.exclude=djggp
|
|
tools.strings.stdinHint=disabled
|
|
|
|
tools.llvmdwarfdumpdefault.exe=/usr/bin/llvm-dwarfdump
|
|
tools.llvmdwarfdumpdefault.name=llvm-dwarfdump (default)
|
|
tools.llvmdwarfdumpdefault.type=postcompilation
|
|
tools.llvmdwarfdumpdefault.class=llvm-dwarfdump-tool
|
|
tools.llvmdwarfdumpdefault.stdinHint=disabled
|
|
|
|
#################################
|
|
#################################
|
|
# Installed libs (See c++.amazon.properties for a scheme of libs group)
|
|
libs=
|