如何在每次特定brkpt命中时执行的GDB脚本中编写命令?

时间:2010-02-09 05:41:32

标签: gdb

每次调用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

(不做以前的工作)。

有人可以帮忙吗?

1 个答案:

答案 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上的断点​​相关联。