[英]Breakpointing/debugging other user processes from c/c++ on unix
正如标题所说,我正在寻找一种方法,最好是通过一些现有的库在ac / c ++应用程序中在其他进程上设置断点,并在触发这些断点时做出反应(不中断宿主进程)。
最终目标是为用户登陆流程提供一个小型且非常通用的脚本引擎,可跨unice移植。
那么,是否有人对如何实现这一目标有任何想法,或者是否听说过类似的项目或功能? 如果我的一般方法不可行,我很乐意接受有关如何以其他方式实现此目标的反馈。
编辑:与SO标准保持一致,特定的问题是是否可以通过库或c / c ++中的unix syscalls获得断点/进程交互。
具体的问题是断点/进程交互是否可以通过c / c ++中的库或unix syscalls获得。
是的: ptrace
是对此的唯一便携式Unix系统调用。
您将很快发现,要对其执行任何有用的操作,您将不得不编写大量代码。
我希望您必须先实现〜50%的GDB,然后才能编写任何可编写脚本且通常有用的文件,因此更好的方法可能是从 GDB 开始 ,并改用其内置的python脚本。
在ptrace
,还具有特定于平台的改进(Solaris以/procfs
实现了ptrace
; Linux有了utrace
,尽管看上去已经死了)。
您也可以在Linux专用的frysk
找到想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.