abi-dumper - Man Page

ABI Dumper (abi-dumper.pl) Dump ABI of an ELF object containing DWARF debug info

Description

ABI Dumper is a tool for dumping ABI information of an ELF object containing DWARF debug info.

The tool is intended to be used with ABI Compliance Checker tool for tracking ABI changes of a C/C++ library or kernel module.

This tool is free software: you can redistribute it and/or modify it under the terms of the GNU LGPL 2.1.

Usage

abi-dumper.pl [options] [object]

Examples

abi-dumper.pl libTest.so -o ABI.dump abi-dumper.pl Module.ko.debug -o ABI.dump

Information Options

-h|-help
Print this help.
-v|-version
Print version information.
-dumpversion
Print the tool version (1.2) and don't do anything else.

General Options

-o|-output
PATH Path to the output ABI dump file. Default: ./ABI.dump
-sort
Sort data in ABI dump.
-stdout
Print ABI dump to stdout.
-loud
Print all warnings.
-vnum
NUM Set version of the library to NUM.
-extra-info
DIR Dump extra analysis info to DIR.
-bin-only
Do not dump information about inline functions, pure virtual functions and non-exported global data.
-all-types
Dump unused data types.
-all-symbols
Dump symbols not exported by the object.
-symbols-list
PATH Specify a file with a list of symbols that should be dumped.
-skip-cxx
Do not dump stdc++ and gnu c++ symbols.
-all
Equal to: -all-types -all-symbols.
-dump-static
Dump static (local) symbols.
-compare
OLD.dump NEW.dump Show added/removed symbols between two ABI dumps.
-alt
PATH Path to the alternate debug info (Fedora). It is detected automatically from gnu_debugaltlink section of the input object if not specified.
-dir
Show full paths of source files.
-vt-dumper
PATH Path to the vtable-dumper executable if it is installed to non-default location (not in PATH).
-public-headers
PATH Path to directory with public header files or to file with the list of header files. This option allows to filter out private symbols from the ABI dump.
-ignore-tags
PATH Path to ignore.tags file to help ctags tool to read symbols in header files.
-ctags-def
DEF Add -D DEF option to the ctags call. This option may be specified multiple times.
-reimplement-std
Do nothing.
-mixed-headers
This option should be specified if you are using -public-headers option and the names of public headers intersect with the internal headers.
-kernel-export
Dump symbols exported by the Linux kernel and modules, i.e. symbols declared in the ksymtab section of the object and system calls.
-search-debuginfo
DIR Search for debug-info files referenced from gnu_debuglink section of the object in DIR.
-keep-registers-and-offsets
Dump used registers and stack offsets even if incompatible build options detected.
-all-units
Extract ABI info after reading all compilation units from the debug info. This may require a lot of extra RAM memory. By default all compilation units are processed separately.
-quiet
Do not warn about incompatible build options.
-debug
Enable debug messages.

Extra Options

-use-tu-dump
Use g++ -fdump-translation-unit instead of ctags to list symbols in headers. This may be useful if all functions are declared via macros in headers and ctags can't recognize them.
-include-preamble
PATHS Specify header files (separated by semicolon) that should be included before others to compile without errors.
-include-paths
DIRS Specify include directories (separated by semicolon) that should be passed to the compiler by -I option in order to compile headers without errors. If this option is not set then the tool will try to generate include paths automatically.
-cache-headers
DIR Cache headers analysis results to reuse later.
-lambda
Enable support for lambda and checking of lexical blocks. Define it if your C++ library API functions use lambda expressions.
-ld-library-path PATHS Specify paths to add to LD_LIBRARY_PATH variable before executing vtable-dumper (separated by colon).

By default lexical blocks are not analyzed to improve performance.

Info

17 July 2024 ABI Dumper 1.2