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


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

#Quick usage

See examples/tutorial.c.


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:


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.


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


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


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


#Build system

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


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.


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.