2015-06-23 24 views
2

我通過將set prompt \033[1;33m(gdb) \033[0m寫入.gdbinit文件來更改我的gdb提示符的顏色。我成功改變了我的gdb提示符的顏色。爲什麼我的gdb提示在改變顏色後顯示錯誤

但我發現我的長命令與我的參數將覆蓋我的提示後,我不輸入換行輸入一個長命令。爲什麼?

回答

3

編輯:如果您的gdb啓用了python腳本,請查看@matt's answer以瞭解如何使用set extended-prompt命令執行此操作 - 這是一個更好的解決方案。

Gdb使用readline包管理命令輸入。告訴readline,當輸出到屏幕時,提示字符串中的字符序列實際上並未移動光標的方式是用標記RL_PROMPT_START_IGNORE(當前在readline的C頭文件中爲'\001')和RL_PROMPT_END_IGNORE(當前爲'\002')將其包圍。

Bash有此表現的可移植的方式:當它看到"\[""\]"在提示變量,將其轉換爲RL_PROMPT_START_IGNORERL_PROMPT_END_IGNORE。 Bash在處理各種其他轉義序列時執行此操作,例如\w以包含當前工作目錄。

GDB的set prompt命令不支持"\[""\]",但你可以把八進制轉義\001\002set prompt字符串(如有變動,如果的ReadLine的作者曾經選擇使用一組不同的標記)。

set prompt \001\033[1;33m\002(gdb) \001\033[0m\002 
+0

謝謝,它確實有效 – Asuka

相關問題