为什么gdb-mi不支持异步目标功能?

时间:2016-07-05 21:36:23

标签: gdb

基于https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Support-Commands.html的gdb / mi文档,我已经运行了

$ gdb --quiet -i=mi $(readlink -f $(which ls))
=thread-group-added,id="i1"
=cmd-param-changed,param="pagination",value="off"
=cmd-param-changed,param="confirm",value="off"
~"Reading symbols from /nix/store/6m648r8w4qhqv8c33n09blp389bsvvx4-coreutils-8.25/bin/ls..."
~"(no debugging symbols found)...done.\n"
(gdb) 
-list-target-features
^done,features=[]

如何找出目标功能列表中没有async的原因?鉴于emacs在gdb集成中默认尝试使用async功能,我希望这个功能非常标准。

我在gdb版本7.11.1上。

1 个答案:

答案 0 :(得分:3)

-list-target-features有点好笑。要在那里看到async,您必须做两件事:

  1. 在开始下级之前,-gdb-set mi-async on。 (这也是与旧版本兼容的弃用别名;请参阅手册。)

  2. 仅在下级开始后检查-list-target-features

  3. 有了这些,我得到了:

    -list-target-features
    ^done,features=["async"]
    

    这一切似乎都模糊不清,无法使用;但是我认为当异步在内部作为默认值时,它就是以这种方式实现兼容性的。