我想用gdb調試一個C++程序。我使用pi
和py
命令來評估gdb中的python命令,當我從命令行調用gdb時,它可以正常工作。然而,當從使用M-x gdb
然後gdb -i=mi file_name
emacs的內調用GDB,會發生以下錯誤:gdb在emacs:python命令(py和pi)
- 的
pi
命令正確地打開一個交互式蟒殼,但是任何輸入到該外殼產生這樣的錯誤:
File "stdin", line 1
-interpreter-exec console "2"
SyntaxError: invalid syntax
- 的
py
命令可以正確處理一個命令(如py print 2+2
),但不適用於多個命令
我可以通過啓動gdb gud-gdb
來解決這些問題,但後來我沒有gdb-many-windows
的支持。也許這個問題是由於輸入pi
之後提示引起的,不再是(gdb)
,而是>>>
而不是?
是你想,當你得到這個錯誤運行什麼命令? 看起來問題在於emacs嘗試使用機器解釋器命令來運行「2」,就好像它是給予普通GDB命令行界面的命令一樣。但是Python解析輸入而不是GDB,它不理解GDB機器接口。你可以在沒有「-i = mi」命令的情況下運行gdb(使用常規的人機界面)嗎? – Matt