attach to a process precisely after a successful execve() / execveat()
Project description
gdb-pounce
Wait until a process with a certain name starts and attach to it with gdb. While for many use cases
while ! pidof "$NAME"; do :; done; gdb -p "$(pidof "$NAME")"
is sufficient, gdb-pounce will stop right at the loader entry point, as if the process was started under gdb in the first place.
Usage
python3 -m pip install --upgrade --user gdb-pounce
sudo env "PATH=$PATH" gdb-pounce [GDB OPTION]... [NAME]
When is this useful?
When an interesting process (usually a part of some complex software) starts in a non-trivial environment, for example:
As a specific user.
In a specific namespace.
With additional environment variables.
With additional file descriptors.
While another process is in a specific state.
and we need to debug its initialization.
Prerequisites
bcc >= 0.15.0
linux kernel >= 5.3 (>= 5.5 for the container support)
nsenter (for the container support, optional)
python3 >= 3.7
pounce?
gdb-pounce lies in wait for its victim process. The very moment the process appears, gdb-pounce pounces at it and seizes it, leaving it no chance to react.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for gdb_pounce-0.0.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2f3b08c6746ee60f9e978057a69daa8f6e70c26a301f9d3c0ade17f3ad6be45 |
|
MD5 | 1da85edb94b61ec532a7e9609eebd794 |
|
BLAKE2b-256 | ee92186b3382f2eace0ebb7e68484e006d853e90cf89c8b91452bffc26156530 |