Files
compiler-explorer/etc/config/objc.defaults.properties
David Spickett e15619abfe Add llvm-dwarfdump tool for C/C++ languages (#5726)
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.
2023-11-12 14:21:52 -06:00

48 lines
1.6 KiB
Properties

# Default settings for Objective-C
compilers=&gcc
defaultCompiler=objcgdefault
objdumper=objdump
postProcess=
supportsBinary=true
supportsBinaryObject=true
binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_start|frame_dummy|\.plt.*)$
stubRe=\bmain\b
stubText=int main(void){return 0;/*stub provided by Compiler Explorer*/}
supportsLibraryCodeFilter=true
group.gcc.compilers=objcg44:objcg45:objcg46:objcg47:objcg48:objcg5:objcg6:objcg7:objcg8:objcg9:objcg10:objcg11:objcgdefault
compiler.objcg44.exe=/usr/bin/gcc-4.4
compiler.objcg44.name=gcc 4.4
compiler.objcg45.exe=/usr/bin/gcc-4.5
compiler.objcg45.name=gcc 4.5
compiler.objcg46.exe=/usr/bin/gcc-4.6
compiler.objcg46.name=gcc 4.6
compiler.objcg47.exe=/usr/bin/gcc-4.7
compiler.objcg47.name=gcc 4.7
compiler.objcg48.exe=/usr/bin/gcc-4.8
compiler.objcg48.name=gcc 4.8
compiler.objcg5.exe=/usr/bin/gcc-5
compiler.objcg5.name=gcc 5.x
compiler.objcg6.exe=/usr/bin/gcc-6
compiler.objcg6.name=gcc 6.x
compiler.objcg7.exe=/usr/bin/gcc-7
compiler.objcg7.name=gcc 7.x
compiler.objcg8.exe=/usr/bin/gcc-8
compiler.objcg8.name=gcc 8.x
compiler.objcg9.exe=/usr/bin/gcc-9
compiler.objcg9.name=gcc 9.x
compiler.objcg10.exe=/usr/bin/gcc-10
compiler.objcg10.name=gcc 10.x
compiler.objcg11.exe=/usr/bin/gcc-11
compiler.objcg11.name=gcc 11.x
compiler.objcgdefault.exe=/usr/bin/gcc
compiler.objcgdefault.name=gcc default
tools=llvmdwarfdumpdefault
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