C++ 从c/c+中断/调试其他用户进程+;在unix上
正如标题所说,我正在寻找一种方法,从c/c++应用程序中设置其他进程的断点,最好是通过一些现有的库,并在触发这些断点时做出反应(而不中断主机进程) 最终目标是一个小型且非常通用的脚本引擎,可跨unices移植,用于用户陆地进程 那么,有没有人对如何实现这一点有想法,或者听说过类似的项目或功能?如果我的一般方法不可行,我很乐意接受关于如何以另一种方式实现这一点的反馈 编辑:根据SO标准,具体问题是断点/进程交互是否可以通过库或c/c++中的unix系统调用使用 具体的问题是断点/进程交互是否可以通过库或unix系统调用在c/c++中使用 是:C++ 从c/c+中断/调试其他用户进程+;在unix上,c++,c,macos,unix,gdb,C++,C,Macos,Unix,Gdb,正如标题所说,我正在寻找一种方法,从c/c++应用程序中设置其他进程的断点,最好是通过一些现有的库,并在触发这些断点时做出反应(而不中断主机进程) 最终目标是一个小型且非常通用的脚本引擎,可跨unices移植,用于用户陆地进程 那么,有没有人对如何实现这一点有想法,或者听说过类似的项目或功能?如果我的一般方法不可行,我很乐意接受关于如何以另一种方式实现这一点的反馈 编辑:根据SO标准,具体问题是断点/进程交互是否可以通过库或c/c++中的unix系统调用使用 具体的问题是断点/进程交互是否可以通
ptrace
是唯一的可移植Unix系统调用
您将很快发现,要使用它做任何有用的事情,您必须编写大量代码
我希望在实现任何可编写脚本且通常有用的东西之前,您必须实现大约50%的GDB,因此更好的方法可能是从GDB开始,并使用其内置的python脚本
与ptrace
相比,还有一些特定于平台的改进(Solaris在/procfs
方面实现了ptrace
;Linux有utrace
,尽管它似乎是死胎)
您还可以查看Linux特有的frysk
,了解一些想法
具体的问题是断点/进程交互是否可以通过库或unix系统调用在c/c++中使用
是:ptrace
是唯一的可移植Unix系统调用
您将很快发现,要使用它做任何有用的事情,您必须编写大量代码
我希望在实现任何可编写脚本且通常有用的东西之前,您必须实现大约50%的GDB,因此更好的方法可能是从GDB开始,并使用其内置的python脚本
与ptrace
相比,还有一些特定于平台的改进(Solaris在/procfs
方面实现了ptrace
;Linux有utrace
,尽管它似乎是死胎)
您还可以查看Linux特有的
frysk
,了解一些想法。您可以使用gdb。它可以集成,这是大多数IDE所做的。谢谢你的帮助!对于感兴趣的用户,我也在寻找类似的功能。您可以使用gdb。它可以集成,这是大多数IDE所做的。谢谢你的帮助!对于感兴趣的用户,我也在寻找类似的功能。frysk
上的提示非常棒!frysk上的提示非常棒!