~old/libpatch

Dynamic binary patcher

#27 Replace libunwind with libdwfl

~old commented on Libpatch todo

26 days ago

a882a34 tests/manpages: Add patch_attr* manpages

~old pushed to ~old/libpatch git

3 months ago

Guix: builds.sr.ht status Debian: builds.sr.ht status Ubuntu: builds.sr.ht status Arch Linux: builds.sr.ht status Fedora Linux: builds.sr.ht status

#libpatch

Lightweight dynamic binary probe inserter. Can be used for dynamic binary instrumentation and other usages.

#Quick usage

See examples/tutorial.c.

#Dependencies

If you're not using Guix, then here's the list of dependencies depending on your usage. However, if you are using Guix, simply do:

./dev-env

to have a shell setup for development.

For other distros, check under .builds to see if there is a list of package to install for it.

#Runtime

  • capstone
  • liburcu
  • libdw (elfutils >= 0.158)

#Compilation

  • gcc >= 8 || clang >= 8
  • Guile 3
  • GNU Make
  • pkg-config

#Developments

  • dyninst
  • gdb
  • git
  • guix
  • lcov
  • lttng-ust
  • perf

#Workflow

#Build system

Custom build system written in Guile. The build system mimics GNU auto-tools with the classic configure, make, make install.

#Emacs

The project can be compiled and tested from Emacs. If you're using the package projectile, then you're good to go. If not, look at what .dir-locals.el does and tweak it to your needs.

#Other

If you're not using Emacs, then you can still use the scripts under scripts/. Some of these scripts assume that you're using Guix. Others don't. However, they all require Guile 3.0.8.