GDB如何确定它是附加还是实际运行进程?

时间:2014-11-03 22:11:13

标签: gdb

有时我使用" - pid"运行GDB。命令参数,有时我使用gdb来运行"运行"一个程序。如果我想在两个场景中使用1 gdb命令文件,我会遇到问题,因为您无法继续未运行的进程,并且您无法键入"运行"当进程正在运行时。

即。这是一个简单的命令文件:

br main.c:30
commands
p foo
c
end
# what can i put here, so that the command file will work in both situations?

如果我把"运行"在命令文件中,当我附加到进程时,它实际上将停止当前进程并运行一个新进程(我绝对不想要这个)。 如果我把" c"在命令文件中,当我尝试使用" gdb --command = commandfile --args process arg1 arg2"时,它会说"没有进程正在运行"

这很有用,因为如果我想要使用一组复杂的命令,那么可以灵活地在它们启动之前和已经运行的进程上加载它们,而无需维护2最后一行不同的精确副本。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以从Python访问此信息。具体来说,您希望获取Inferior对象,然后检查其was_attached属性。例如,您可以使用它来编写“运行或继续”命令(在Python中),然后只使用CLI中的命令。

相关问题