lvc/abi-dumper

Dump ABI of an ELF object containing DWARF debug info

205

stars

65

commits

Perl

primary language

Jan 11, 2025

updated

README

ABI Dumper 1.4

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

Contents

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

About

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.

Install

sudo make install prefix=/usr
Requires

Usage

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

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

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

Contributors

lvc

58 commits

linuxhw

3 commits

devjgm

1 commits

ebraminio

1 commits

lvc/abi-dumper

Dump ABI of an ELF object containing DWARF debug info

205

stars

65

commits

Perl

primary language

Jan 11, 2025

updated

README

ABI Dumper 1.4

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

Contents

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

About

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.

Install

sudo make install prefix=/usr
Requires

Usage

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

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

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

Contributors

lvc

58 commits

linuxhw

3 commits

devjgm

1 commits

ebraminio

1 commits

Languages

Perl

99.6%