• Stars
    star
    176
  • Rank 216,987 (Top 5 %)
  • Language
    Perl
  • License
    GNU Lesser Genera...
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Dump ABI of an ELF object containing DWARF debug info

ABI Dumper 1.3

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 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

More Repositories

1

abi-compliance-checker

A tool for checking backward API/ABI compatibility of a C/C++ library
Perl
619
star
2

japi-compliance-checker

A tool for checking backward API/ABI compatibility of a Java library
Perl
365
star
3

pkgdiff

A tool for visualizing changes in Linux software packages
Perl
209
star
4

abi-tracker

A tool to visualize ABI changes timeline of a C/C++ software library
Perl
189
star
5

vtable-dumper

A tool to list content of virtual tables in a shared library
C
117
star
6

api-sanity-checker

An automatic generator of basic unit tests for a C/C++ library
Perl
85
star
7

japi-tracker

A tool to visualize API changes timeline of a Java library
Perl
53
star
8

abi-monitor

A tool to monitor and build new versions of a software library
Perl
27
star
9

pkg-abidiff

Verify backward compatibility of Linux packages (RPM or DEB)
Python
21
star
10

upstream-tracker

A project to monitor and verify compatibility of upstream ABI changes in C/C++ libraries
Shell
15
star
11

abi-reports

JSON-format reports of the ABI Tracker project
Python
11
star
12

kernel-abi-tracker

A tool to monitor and analyze ABI changes in new versions of the Linux kernel
Shell
10
star
13

installer

Install/remove tools and their dependencies
Perl
9
star
14

japi-monitor

A tool to monitor new versions of a Java library
Perl
8
star
15

distdiff

A tool for visualizing changes in Linux distributions
Perl
7
star
16

upstream-tracker-4j

A project to monitor and verify compatibility of upstream API changes in Java libraries
Perl
7
star
17

installer-4j

Install/remove Java tools and their dependencies
Perl
4
star
18

api-reports-4j

JSON-format reports of the Java API Tracker project
4
star
19

articles

Related articles
1
star