我可以找到三种方法,但我对细节知之甚少,如果任何人能够更深入地阐述它,我将不胜感激.
1)我们可以通过指定进程ID来使用GDB
gdb -p PID
在这种情况下,这个和附加PID有什么区别?
2)我们可以使用pstat,但是,我使用的是Ubuntu,没有pstat,只有mpstat
似乎mpstat没有提供太多的信息,也没有太多的选择.
3)检查目录./proc下的详细信息
在这种情况下,只需转到带有PID的目录.但是,这应该是手动完成吗?
解决方法 我在gdb man或他们的文档中找不到-p选项,但它确实有效!我在RedHat和Debian上的7.0.1上使用旧版本尝试了很多次.我不确定它是如何通过PID找到exe(也许是/ proc /< PID> / exe),但它确实如此.由于它没有在他们的文档中描述,也许它不是最推荐的方式,但我没有遇到任何问题.
gdb -p< PID>之间没有明显的区别.并运行gdb并在其shell中键入attach< PID>.
我个人更喜欢ps xa |获取PID的grep myprogram
总结以上是内存溢出为你收集整理的如何在Linux中调试正在运行的C程序?全部内容,希望文章能够帮你解决如何在Linux中调试正在运行的C程序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)