正如标题所说,我正在寻找一种方法来从 ac/c++ 应用程序中的其他进程上设置断点,最好是通过一些现有的库,并在触发这些断点时做出反应(不中断主机进程)。
最终目标是一个小型且非常通用的脚本引擎,可跨单元移植,用于用户域进程。
那么,是否有人对如何实现这一点有想法,或者听说过类似的项目或功能?如果我的一般方法不可行,我很乐意就如何以另一种方式实现这一目标提出反馈。
编辑:按照 SO 标准,具体问题是断点/进程交互是否可以通过库或 c/c++ 中的 unix 系统调用获得。
具体问题是断点/进程交互是否可以通过库或 c/c++ 中的 unix 系统调用获得。
是的:ptrace
是唯一可移植的 Unix 系统调用。
您会很快发现,要使用它做任何有用的事情,您必须编写大量代码。
我希望您必须先实现约 50% 的 GDB,然后才能拥有任何可编写脚本且通常有用的东西,因此更好的方法可能是从 GDB开始,并改用其内置的 python 脚本。
在 , 上也有特定于平台的改进ptrace
(Solarisptrace
在/procfs
; Linux 方面实现了utrace
,尽管它似乎是死胎)。
您还可以查看特定于 Linux 的frysk
想法。