繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM