Dump ABI of an ELF object containing DWARF debug info
Perl Makefile
Clone or download


ABI Dumper 1.1

ABI Dumper — a tool to dump ABI of an ELF object containing DWARF debug info.


  1. About
  2. Install
  3. Usage
  4. Filter public ABI
  5. Check for ABI changes


The tool is intended to be used with ABI Compliance Checker tool for tracking ABI changes of a C/C++ library or kernel module: https://github.com/lvc/abi-compliance-checker

The tool is developed by Andrey Ponomarenko.


sudo make install prefix=/usr


Input objects should be compiled with -g -Og additional options to contain DWARF debug info.

abi-dumper libTest.so -o ABI.dump
abi-dumper Module.ko.debug
abi-dumper lib/libssh.so.3
abi-dumper drm/nouveau/nouveau.ko.debug

You can try Docker image if the tool is not packaged for your Linux distribution (example for Harfbuzz):

FROM ebraminio/abi-dumper
RUN apt update && \
    apt install -y ragel cpanminus && \
    git clone https://github.com/harfbuzz/harfbuzz && cd harfbuzz && \
        CFLAGS="-Og -g" CXXFLAGS="-Og -g" ./autogen.sh && make && cd .. && \
    abi-dumper `find . -name 'libharfbuzz.so.0.*'` && \
    cpanm JSON && \
    perl -le 'use JSON; print to_json(do shift, {canonical => 1, pretty => 1});' ./ABI.dump > ABI.json
Adv. usage

For advanced usage, see output of --help option.

Filter public ABI

abi-dumper libTest.so -public-headers PATH

PATH — path to the install tree of a library.

Check for ABI changes

abi-dumper libTest.so.0 -o ABIv0.dump
abi-dumper libTest.so.1 -o ABIv1.dump
abi-compliance-checker -l libTest -old ABIv0.dump -new ABIv1.dump