【问题标题】:Use gdb conditionals (if, while) to test (gdb) command success使用 gdb 条件 (if, while) 测试 (gdb) 命令是否成功
【发布时间】:2016-01-05 05:41:07
【问题描述】:

是否可以使用 gdb 的 if 或 while 条件来测试 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

【问题讨论】:

标签: gdb


【解决方案1】:

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

但是,使用 gdb 的 Python 脚本功能从 Python 中执行此操作相对容易。一种方法是扩展ignore-errors 命令,同时设置一些方便的变量,然后您可以对其进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多