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.
Metadata
Release files for gdb-pounce 0.0.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gdb_pounce-0.0.16-py3-none-any.whl | Python 3 | none | any | Details |
Release files / gdb_pounce-0.0.16-py3-none-any.whl
| Download URL | gdb_pounce-0.0.16-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f319ce07fc4e6722145b034d9b4e96ccb8177676243cce138ea90992bc5bf009
|
|
BLAKE2b-256 checksum How to use checksums |
11efeb89e5dd7955852cf720fc5ddbdac6983cda33fd084eddf5a06251d9e1ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.4
|