我启动了一个 Centos 进程,现在已经运行了几个小时。我使用 gcc -g
构建共享库和可执行文件。我通过输入 gdb ./MatchUpAccurate
启动了 gdb 进程。 gdb 启动后,我输入 run -input XXXXXXX -fileloc YYYYY -version 5
。
当我输入 ps -ef
时,我看到两个进程 ID 号,一个用于 gdb ./MatchUpAccurate.exe
,另一个用于 ./MatchUpAccurate。 exe -input XXXXXXX -fileloc YYYYY -version 5
.
由于子进程现在已经运行了几个小时,我想附加到它,这样我就可以检查它的变量值并查看它当前正在运行的指令。
我阅读了一些文档,了解如何使用 gdb 附加一个已经运行的进程。但是,所有示例都没有命令行参数。我想知道如何使用 gdb 附加带有命令行参数的进程。我将能够设置断点、检查变量、查看调用堆栈并在不终止原始进程的情况下单步执行执行路径。谢谢。
最佳答案
您需要附加到 pid:
gdb binary_name pid
或者,启动 gdb 并附加
user@host ~> gdb binary_name
(gdb) attach 1234
关于c++ - 如何附加到带有命令行参数的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900244/