DWARF utilities for static code analysis
dwarves is a set of tools that use the DWARF debugging information inserted in
ELF binaries by compilers such as GCC, used by well known debuggers such as
GDB, and more recent ones such as systemtap.
Utilities in the dwarves suite include pahole, that can be used to find
alignment holes in structs and classes in languages such as C, C++, but not
limited to these.
It also extracts other information such as CPU cacheline alignment, helping
pack those structures to achieve more cache hits.
A diff like tool, codiff can be used to compare the effects changes in source
code generate on the resulting binaries.
Another tool is pfunct, that can be used to find all sorts of information about
functions, inlines, decisions made by the compiler about inlining, etc.
-
1
derived packages
- Links to devel:tools / dwarves
- Has a link diff
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout home:dsterba:kernel:stable/dwarves && cd $_
- Create Badge
Source Files (show merged sources derived from linked package)
Filename | Size | Changed |
---|---|---|
_link | 0000000156 156 Bytes | |
project.diff | 0000000429 429 Bytes |
Latest Revision
- Add 0001-pahole-Support-lang-lang_exclude-asm.patch, 0002-btf_encoder-Add-extra-debug-info-for-unsupported-DWA.patch, 0003-btf_encoder-Store-the-CU-being-processed-to-avoid-ch.patch, 0004-core-Add-DW_TAG_unspecified_type-to-tag__is_tag_type.patch, 0005-core-Record-if-a-CU-has-a-DW_TAG_unspecified_type.patch, 0006-btf_encoder-Encode-DW_TAG_unspecified_type-returning.patch, 0007-dwarves-Zero-initialize-struct-cu-in-cu__new-to-prev.patch as in order to support DW_TAG_unspecified_type that is newly emitted by binutils 2.40+. - update to 1.24: * Add support to BTF_KIND_ENUM64 to represent enumeration entries with more than 32 bits. * Support multithreaded encoding, in addition to DWARF multithreaded loading, speeding up the process. Selected just like DWARF multithreaded loading, using the 'pahole -j' option. * Encode 'char' type as signed. * Add support to BTF_KIND_ENUM64. * Introduce --lang and --lang_exclude to specify the language the DWARF compile units were originated from to use or filter. * Introduce --compile to generate compilable code in a similar fashion to: bpftool btf dump file vmlinux format c > vmlinux.h As with 'bpftool', this will notice type shadowing, i.e. multiple types with the same name and will disambiguate by adding a suffix. * Don't segfault when processing bogus files. - add dwarves.keyring for source validation
Comments 0