~old/libpatch

a9cb1303 — Olivier Dion a month ago
API: Add static assertion fallback
1006809d — Olivier Dion 2 months ago
Refactor build system
43153510 — Olivier Dion 2 months ago
Refactor project layout

clone

read-only
https://git.sr.ht/~old/libpatch
read/write
git@git.sr.ht:~old/libpatch

You can also use your local clone with git send-email.

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.