使用gdb条件(if,while)来测试(gdb)命令成功

时间:2016-01-05 05:41:08

标签: gdb

是否可以使用gdb的ifwhile条件来测试gdb命令成功(而不是查询程序值或变量)?

现在为了清楚起见我正在谈论gdb内置命令(即在gdb中键入help时出现的事情 - 而不是测试中的命令。

特别是我有一个带有大量时序问题的远程目标,当系统处于高负载状态时gdbserver有时无法启动,我想重复命令直到成功。类似的东西:

while ! target extended-remote | ssh -T target gdbserver --once  - ./binary args
   print "Again"
end

或者有一种方法可以将gdb命令成功转换为可用作条件的变量 - 例如在bash中它将是$?。类似的东西:

target extended-remote | ssh -T target gdbserver --once  - ./binary args
if <last command failed> 
      # handle failure
end

1 个答案:

答案 0 :(得分:1)

使用gdb CLI无法做到这一点。这是CLI作为一种语言的众多缺陷之一。

然而,使用gdb的Python脚本功能从Python相对容易。一种方法是扩展ignore-errors命令以设置一些便于你测试的便利变量。