跳转到主要内容

为Python程序提供按需系统调用跟踪。

项目描述

Ptracer是一个提供Python程序按需系统调用跟踪的库。

基本用法

import traceback
import ptracer

def callback(syscall):
    print('{}({}) -> {}'.format(
        syscall.name,
        ', '.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允许通过filter参数进行复杂的系统调用过滤。

flt = [
    ptracer.SysCallPattern(
        name='open',
        args=[
            re.compile(b'/tmp/.*'),
            lambda arg: arg.value & os.O_WRONLY
        ],
        result=lambda res: res.value > 0
    )
]

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

在上面的示例中,ptracer只为尝试在“/tmp”目录中写入文件的成功尝试调用回调。

文档

文档可在ptracer.readthedocs.io上找到。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

ptracer-0.6.1.tar.gz (33.5 kB 查看哈希值)

上传时间 源代码

构建分发

ptracer-0.6.1-cp39-cp39-macosx_12_0_arm64.whl (39.0 kB 查看哈希值)

上传时间 CPython 3.9 macOS 12.0+ ARM64

由以下支持