我在遠端伺服器上使用 GDB 7.6。
當我啟動時gdb
,一切都很好,只要要調試的程式沒有運行。我可以使用向上和向下箭頭來瀏覽 GDB 歷史記錄等。
當我在程式中的某個位置創建斷點,然後run
在要偵錯的程式中創建斷點時,顯示有許多工件(字元顯示在錯誤的位置),直到我運行refresh
.從那時起,next
、stepi
、nexti
、 向上和向下箭頭等就可以工作了但顯示器繼續在錯誤的位置繪製字元。如果我沒有refresh
每一步都運行,那麼顯示的結果就不是它應該的樣子。此外,當我按下向上或向下箭頭鍵時,會顯示原始字元代碼^[[A
或^[[B
,不允許知道將執行哪個歷史命令。
我嘗試定義像這樣的鉤子
define hook-nexti
refresh
end
這實際上刷新了螢幕,但有時仍然會出現不需要的工件(特別是在執行程式碼的突出顯示行上),並且不是可接受的解決方案,因為我不需要在本機電腦上掛鉤(GDB 7.11, zsh 5.0.2) 。
我的機器上剛好還有 GDB 7.7,可以重現問題。這是 GDB 7.7 和 GDB 7.11 之間修復的錯誤嗎?如果是,我將只binutils-gdb
從原始程式碼進行編譯,因為我在遠端伺服器上沒有根存取權限。