每次调用gdb时我都需要调试一组命令 - 所以我决定把它们放在我的.gdbinit中。一切都很好,直到我决定使用commands
(每次击中某个brkpt时执行一组gdb命令)。我的脚本看起来如下:
define setup
handle SIGTRAP noprint nostop
br 'Class1::Fun1(void)'
run
br 'Class2::Run(void)'
c
br Function2
commands 3
return 0
c
end
end
define setup
handle SIGTRAP noprint nostop
br 'Class1::Fun1(void)'
run
br 'Class2::Run(void)'
c
br Function2
commands 3
return 0
c
end
end
(不做以前的工作)。
有人可以帮忙吗?
答案 0 :(得分:1)
您可能没有将命令放在您认为的断点上。
如果我是你,我会将脚本修改为以下内容:
define setup
handle SIGTRAP noprint nostop
br 'Class1::Fun1(void)'
run
br 'Class2::Run(void)'
c
br Function2
commands
return 0
c
end
end
如果没有给出断点目标,commands
将与最近的断点关联。这样,无论您在gdb会话中有什么其他断点,您的命令都将与Function2上的断点相关联。