NAME

abi-dumper - a tool to dump ABI of an ELF object containing DWARF debug info

DESCRIPTION

NAME:

ABI Dumper (abi-dumper) 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 [options] [object]

EXAMPLES:

abi-dumper libTest.so -o ABI.dump
abi-dumper 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 one 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.

AUTHOR

This manual page was written by Mathieu Malaterre <[email protected]> for the Debian GNU/Linux system (but may be used by others).
Written by Andrey Ponomarenko. Copyright © 2019 Andrey Ponomarenko's ABI Laboratory License: GNU LGPL 2.1 <http://www.gnu.org/licenses/> This program is free software: you can redistribute it and/or modify it.