在OpenEuler中安装轻量化调试工具CGDB
前言
调试工具在开发过程中是必不可少的,linux系统下可以使用cgdb
,ddd
这样轻量化的调试工具,也可以安装vscode
这样的IDE,但上述调试工具在 OpenEuler 系统中,都没有集成到软件源中,我们只能使用linux系统下的传统调试工具GDB
,这就给我们带来诸多不便。
CGDB简介
CGDB is a very lightweight console frontend to the GNU debugger.
It provides a split screen interface showing the GDB session below and the program's source code above.
The interface is modelled after vim's, so vim users should feel right at home using it.
cgdb可以看作gdb的界面增强版,用来替代gdb的 gdb -tui。cgdb主要功能是在调试时进行代码的同步显示,这无疑增加了调试的方便性,提高了调试效率。界面类似vi,符合unix/Linux下开发人员习惯,所以如果熟悉gdb和vi,几乎可以立即使用cgdb。
CGDB功能
主要功能介绍:
- 相比GDB,增加了语法加亮的代码窗口,显示在GDB窗口的上部,随GDB的调试位置代码同步显示。
- 断点设置可视化 。
- 在代码窗口中可使用GDB常用命令 。
- 在代码窗口可进行代码查找,支持正则表达式 。
CGDB在OpenEuler系统中安装
CGDB依赖
CGDB依赖于以下软件或环境
Dependencies
- sh
- autoconf
- automake
- aclocal
- autoheader
- libtool
- flex
- bison
- gcc/g++ (c11/c++11 support)
若为OpenEuler20.03LTS 则需要安装 flex
bison
通过yum install “”来安装
通过git安装
git clone https://gitee.com/mirrors/CGDB.git
./configure --prefix=/usr/local
由于依赖可能会出现各种报错
出现错误:
configure: error: CGDB requires curses.h or ncurses/curses.h to build.
解决方案:
yum install ncurses-devel
出现错误:
configure: error: Please install makeinfo before installing
示例:
解决方案:
示例:
yum install texinfo
如果是 CentOS 8.0 及以上系统,需要先执行:
yum config-manager --set-enabled PowerTools
出现错误:
configure: error: Please install help2man
解决方案:
yum install help2man
出现错误:
configure: error: CGDB requires GNU readline 5.1 or greater to link.
If you used --with-readline instead of using the system readline library,
make sure to set the correct readline library on the linker search path
via LD_LIBRARY_PATH or some other facility.
解决方案:
yum install readline-devel
出现错误:
configure: error: Please install flex before installing
解决方案:
yum install flex
在报错后执行
make
sudo make install
通过wget安装
wget http://cgdb.me/files/cgdb-0.7.0.tar.gz
tar -zvxf cgdb-0.7.0.tar.gz
cd cgdb-0.7.0
./configure –prefix=/usr/local
make && make install
同样安装过程中出现各种依赖错误
解决方案同上
安装成功与使用
输入 cgdb
+ 要调试的程序名
即可以进行调试
CGDB 大部分命令 与 GDB 一致
其他详情可参考 《CGDB中文手册》
少量补充
-
调整代码窗口的大小
先按esc退出输入gdb命令, 按 '-'或'='号会上下移动窗口分隔栏 -
打开TTY窗口
tty窗口可以显示程序输出,也可以在这里输入参数
按shift+t会打开TTY窗口,再按shift+t关闭TTY窗口
按esc后,再按 I 可以把焦点切到tty窗口上
按esc后,再按 i 可以把焦点切到gdb窗口上 -
调整TTY窗口大小
shift+-或shift+=会放大或缩小TTY窗口 -
按o打开浏览文件
-
F5: 发送一个run命令至GDB
-
F6: 发送一个continue命令至GDB
-
F7: 发送一个finish命令至GDB
-
F8: 发送一个next命令至GDB
-
F10: 发送一个step命令至GDB
PS:软件源里没有的程序装起来是真的麻烦
还是希望OpenEuler能够将更多应用进行适配和打包。
20191331lyx
2021/9/19