gpt4 book ai didi

c++ - 如何在 Linux 中调试正在运行的 C++ 程序?

转载 作者:可可西里 更新时间:2023-11-01 18:38:10 28 4
gpt4 key购买 nike

我有一个关于在 Linux 中调试正在运行的 C++ 程序的问题。如果一个程序已经在运行并且不能被中断,那该怎么做。

我可以找到三种方法,但我不太了解细节,如果有人能更深入地阐述,我将不胜感激。

1) 我们可以通过指定进程ID来使用GDB

gdb -p PID

在这种情况下,这和attach PID有什么区别?

2) 我们可以使用 pstat,但是,我使用的是 Ubuntu,没有 pstat,只有 mpstat

mpstat好像没有提供太多信息,也没有那么多选项。

3) 查看./proc目录下的详细信息

在这种情况下,只需转到具有 PID 的目录即可。但是,这应该手动完成吗?

最佳答案

我找不到 -p gdb man 或其文档中的选项,但它确实有效!我已经在 RedHat 上的旧版本和 Debian 上的 7.0.1 上尝试了很多次。

我不确定它是如何通过 PID(可能是 /proc/<PID>/exe )找到 exe 的,但确实如此。由于他们的文档中没有描述,也许这不是最推荐的方式,但我没有遇到任何问题。

gdb -p <PID> 之间没有明显区别并运行 gdb 并在他们的 shell 中输入 attach <PID> .

我个人更喜欢ps xa| grep myprogram获取PID

关于c++ - 如何在 Linux 中调试正在运行的 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2467332/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com