by pinterest

pinterest / ptracer

A library for ptrace-based tracing of Python programs

132 Stars 15 Forks Last release: almost 3 years ago (v0.5) Apache License 2.0 13 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

ptracer -- a library for ptrace-based tracing of Python programs

.. image:: :target:

Ptracer is a library providing on-demand system call tracing in Python programs.

Basic Usage

.. code-block:: python

import traceback
import ptracer

def callback(syscall): print('{}({}) -> {}'.format(, ', '.join(repr(arg.value) for arg in syscall.args), syscall.result.text)) print('Traceback: ') print(''.join(traceback.format_list(syscall.traceback)))

with ptracer.context(callback): open('/dev/null', 'wb')


Ptracer allows elaborate syscall filtering via the filter argument:

.. code-block:: python

flt = [
            lambda arg: arg.value & os.O_WRONLY
        result=lambda res: res.value > 0

with ptracer.context(callback, filter=flt): # traced code ...

In the above example, ptracer will invoke the callback only for successful attempts to open files in the "/tmp" directory for writing.


The documentation is available on 

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.