2016-07-05 72 views
0

設在https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Support-Commands.html的GDB/MI文件上,我碰到這個爲什麼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

什麼是您的操作系統和CPU?你在哪裏找到你的gdb,在os包管理器中編譯它呢? – osgx

回答

3

-list-target-features有點有趣。爲了看到async那裏,你必須做兩兩件事:

  1. 開始下,-gdb-set mi-async on之前。 (爲了與舊版本兼容,還有一個不推薦使用的別名;請參閱手冊。)

  2. 只有在低位啓動後才檢查-list-target-features

有了這些,我得到:

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

這一切似乎晦澀不是有用的地步;但是我認爲這是通過這種方式來實現兼容性,因爲async在內部是默認的。