我写改变我的GDB提示的颜色set prompt \033[1;33m(gdb) \033[0m到.gdbinit文件中。我成功地改变了我的 gdb 提示的颜色。
但是我发现在我输入长命令而不换行后,我的带参数的长命令会覆盖我的提示。为什么?
编辑:如果您的 gdb 启用了 python 脚本,请查看@matt 的答案以了解如何使用该set extended-prompt命令执行此操作- 这是一个更好的解决方案。
Gdb 使用readline包管理命令输入。告诉 readline 提示字符串中的字符序列在输出到屏幕时实际上不会移动光标的方法是用标记RL_PROMPT_START_IGNORE(当前'\001'在 readline 的 C 头文件中)和RL_PROMPT_END_IGNORE(当前'\002')围绕它。
Bash 有一种可移植的表达方式:当它在 prompt 变量中看到"\["and"\]"时,它会将它们转换为RL_PROMPT_START_IGNOREand RL_PROMPT_END_IGNORE。Bash 在处理各种其他转义序列时执行此操作,例如\w包含当前工作目录。
Gdb 的set prompt命令不支持"\["and "\]",但是您可以将八进制转义符\001和\002放在您的set prompt字符串中(如果 readline 的作者曾经选择使用一组不同的标记,则可能会发生变化)。
set prompt \001\033[1;33m\002(gdb) \001\033[0m\002
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
654 次 |
| 最近记录: |