基于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
上。
答案 0 :(得分:3)
-list-target-features
有点好笑。要在那里看到async
,您必须做两件事:
在开始下级之前,-gdb-set mi-async on
。 (这也是与旧版本兼容的弃用别名;请参阅手册。)
仅在下级开始后检查-list-target-features
。
有了这些,我得到了:
-list-target-features
^done,features=["async"]
这一切似乎都模糊不清,无法使用;但是我认为当异步在内部作为默认值时,它就是以这种方式实现兼容性的。