【发布时间】:2015-02-16 14:06:49
【问题描述】:
当我在 GDB 中设置断点并为其附加命令列表时,如果我在此命令列表中执行“next”,则会忽略以下命令,这是正常的(参见 https://sourceware.org/gdb/current/onlinedocs/gdb/Break-Commands.html#Break-Commands)。
但是,覆盖此限制对我来说可能非常有用...那么,是否可以在命令块中执行“下一步”以及以下命令?
例如:
break 8
commands
next
set i = i+1
continue
end
【问题讨论】:
-
如果你只是在断点命中后无条件地执行“下一步”,你也可以在第 9 行设置断点,对吧?您能否展示一个更好地展示您的约束的用例?
-
是的,我想过,但在某些情况下,它不起作用。例如:
if(i > 0) { i++; } else { i--; }在这种情况下,如果我想在 i++ 指令之后中断,并且我在这一行设置断点,“真正的”断点将放在“i-- 行”(在else 块)。然后,如果条件满足,“i--line”将永远不会到达,所以我的断点永远不会被命中。
标签: gdb breakpoints