gdb开启代码语法高亮

最终效果如图

image-20200804163636576

其实gdb自从8.3版本之后就已经默认支持了彩色显示,并且默认已经启用了,所以查看地址、文件名等符号时都是彩色的。但是!Ubuntu仓库中编译的gdb并没有启用代码高亮功能,运行help set style sources他会告诉你it was not linked against GNU Source Highlight,只有半吊子功能。

image-20200804161721358

想要真正的高亮,还得自己编译。

  1. 下载g++、make、autoconf等编译工具,不需多言。

  2. 安装高亮支持库

    sudo apt install libsource-highlight-dev
  3. 下载最新版的gdb .tar.xz源码http://ftp.gnu.org/gnu/gdb/并解压。

  4. 默认的esc高亮对黑色背景终端界面非常不友好,最好改成esc256,具体做法是修改源码中的gdb/source-cache.c文件,修改如下位置

     	      if (highlighter == nullptr)
    {
    - highlighter = new srchilite::SourceHighlight ("esc.outlang");
    - highlighter->setStyleFile ("esc.style");
    + highlighter = new srchilite::SourceHighlight ("esc256.outlang");
    + highlighter->setStyleFile ("esc256.style");
    }

    std::istringstream input (contents);
  5. 编译gdb并安装(假设安装到/opt/gdb/目录)

       cd <gdb源码目录>
    mkdir build
    cd build
    ../configure --prefix=/opt/gdb
    make -j $(nproc)
    sudo make install
  6. 最终在/opt/gdb/bin/目录会输出gdbgdbserver等可执行文件,运行这里的gdb,代码高亮便默认启用了。方便起见,可以将该目录添加到PATH环境变量。