python程序的按需系统调用跟踪。
ptracer的Python项目详细描述
ptracer是一个在python中提供按需系统调用跟踪的库 程序。
基本用法
importtracebackimportptracerdefcallback(syscall):print('{}({}) -> {}'.format(syscall.name,', '.join(repr(arg.value)forarginsyscall.args),syscall.result.text))print('Traceback: ')print(''.join(traceback.format_list(syscall.traceback)))withptracer.context(callback):open('/dev/null','wb')
过滤
ptracer允许通过filter参数进行详细的系统调用过滤:
flt=[ptracer.SysCallPattern(name='open',args=[re.compile(b'/tmp/.*'),lambdaarg:arg.value&os.O_WRONLY],result=lambdares:res.value>0)]withptracer.context(callback,filter=flt):# traced code...
在上面的例子中,ptracer将只调用成功的回调 尝试打开“/tmp”目录中的文件进行写入。
文件
文件可在 ptracer.readthedocs.io。