在 unix 上从 c/c++ 断点/调试其他用户进程



正如标题所说,我正在寻找一种方法来从c/c ++应用程序中在其他进程上设置断点,最好是通过一些现有的库,并在触发这些断点时做出反应(不中断主机进程)。

最终目标是为用户陆地进程建立一个小型且非常通用的脚本引擎,跨 unice 移植。

那么,有

没有人对如何实现这一目标有想法,或者听说过类似的项目或功能?如果我的一般方法不对,我很乐意就如何以另一种方式实现这一目标提供反馈。

编辑:为了与SO标准保持一致,具体问题是断点/进程交互是否可以通过C/C ++中的库或Unix系统调用获得。

具体问题是断点/进程交互是否可以通过库或 C/C++ 中的 UNIX 系统调用获得。

是的:ptrace是唯一的可移植Unix系统调用。

你很快就会发现,要用它做任何有用的事情,你必须编写大量的代码。

我希望你必须实现~50%的GDB,然后你才能获得任何可编写脚本和通常有用的东西,所以更好的方法可能是从GDB开始,然后使用其内置的python脚本。

ptrace上也有特定于平台的改进(Solaris 在/procfs方面实现了ptrace;Linux有utrace,尽管它似乎是胎死腹中)。

您还可以查看特定于 Linux 的frysk以获取想法。

相关内容

最新更新