谢谢!
答案 0 :(得分:1)
用ps或其他方法检查进程ID。然后运行“strace -p pidnumber”。
您可以查看strace是如何做到的,源代码可用,或者您可以从程序中调用strace ...
答案 1 :(得分:0)
如果它只是一个特定的系统调用(不是全部),您可以重新编写C stub函数并将其放在共享库中,并在执行目标应用程序之前预先加载库,方法是设置LD_PRELOAD。
当动态链接器解析函数调用时,这会使您的函数优先于C库提供的函数。
这仅适用于动态链接的应用程序(几乎所有),并且您需要与所使用的C库二进制兼容。由于几乎所有linux都使用glibc和不同的glibc版本是二进制兼容的,这应该不是问题。
你可以看看fakeroot(作为例子)如何做到这一点。
添加: 您也可以将调用转发到C库中的实际实现,而不是重新实现整个系统调用包装器。我假设你需要手动加载库并解析地址(不确定,但你最终可能会自己调用)。