gdb的字符界面前端----CGDB(一)

    在使用gdb调试的时候,通过list命令看代码总是感觉不方便.所以决定找一个比较好用的gdb前端.由于我是通过ssh远程登陆到服务器上开发的,所以只能使用字符界面的前端,这就不太好找了,大部分有名的前端都是图形界面的.我首先发现的是gdb内置的tui模式,但它不是很完善,最常见的毛病就是会花屏.后来发现了CGDB这个项目.


CGDB概要:

     CGDB是一个基于字符界面的gdb前端.他的目标是成为一个轻量的,不包含不必要功能的调试工具.

          其界面分为两部分,一部分和gdb的文本调试界面相似,一部分跟随调试显示对应的源码.tgdb库负责和gdb进行通讯,这样会使显示代码相对独立,极大的简化了实现.

    CGDB特点:

  • 源代码语法高亮
  • 可视化的调试断点
  • 对常用功能有快捷键
  • 支持依正则表达式语法搜索代码

CGDB的启动和关闭

  • 在终端里输入cgdb启动CGDB
  • 在GDB窗口里输入quit或ctrl+d退出
  • 在源代码窗口输入:quit退出.在gdb挂起或运行一个很耗时的命令时依然可以正常退出

理解GDB的核心概念

    当前版本的CGDB用户界面由两个窗口和一个状态条组成.源代码窗口位于顶部,gdb窗口位于底部,两个窗口通过状态条进行分割.

    CGDB有几种工作模式.当源代码窗口位于焦点时是CGDB模式,当GDB窗口位于焦点时是GDB模式.当TTY窗口(什么东东,前面没有提过)处于焦点时是TTY模式.

    1)源代码窗口

     可以通过源代码窗口浏览代码,他一次只能显示一个文件的代码.当通过GDB窗口调试代码时,系统会同步更新源代码窗口,这可以使你清楚的知道当前调试位于什么位置.

    CGDB有很多特性来使调试过程变的简单.一个特性就是当你调试C C++ ADA代码时会有代码语法高亮.

在显示代码时,系统也会同时显示当前执行到哪一行.当前执行的行号会被绿色高亮显示,同时也会有一个箭头指向当前行,箭头的类型可以自己配置.当你浏览代码时,光标所在的行会被反白显示,这方便你在文件中跟踪浏览的位置.

   在源代码窗口中,你也可以设置和删除断点.将光标定位到想要设置或删除断点的行,按空格键即可.如果当前行没有断点,则设置断点,同时行号颜色变为红色.如果当前行有断点,则删除断点.另外,对于不使能的断点,行号为黄色.

  在源代码中你可以通过正则表达式进行代码搜索,和vim的用法一样.(但是只是vim的一个很小的子集,希望可以逐渐完善,我希望的是vim+gdb)

   2)GDB窗口

   通过GDB窗口我们可以和gdb调试器进行交互.这个界面和gdb的命令行界面完全一样.不会GDB调试的也就没必要看这篇文章了.当然,有一些特殊的按键会由CGDB解释,而不是传送给GDB调试器处理.

  3)文件浏览窗口

    源代码窗口一次只能显示一个文件的代码,所以我们需要这个窗口来选择文件.如果没有可以调试的程序,或则被调试的程序没有符号表,那就不能选择文件了.在源代码窗口中摁o键打开文件窗口,在文件窗口中你可以摁q离开.在文件窗口中,你可通过方向键来选择文件,当文件很多时这不是一个好主意,所以我们支持通过正则表达式搜索文件.

  4)TTY窗口

    程序有时需要和终端进行交互,比如读取数据.TTY窗口就是干这个工作的.他和GDB窗口很像,不同之处是GDB窗口中的输入数据被传送给GDB调试器处理.TTY窗口中的输入数据是传递给被调试的程序处理.这个在后面有更详细的介绍

 5)状态条

   当你在系统中输入命令或其他操作时,如果发现系统好像无动于衷,那是多么无聊的一件事情啊.你甚至都不能确定命令有没有被执行.状态条就是用来显示系统的反馈信息.比如你在源代码窗口下,想配置下系统时,你输入: 然后输入配置命令,你的输入都会显示在状态条上.

 6)在各个窗口之间切换

    当刚进入CGDB时,当前激活的窗口为GDB窗口,也就是说你处在GDB模式,你所有的输入都会传递给GDB调试器(当然有一些特殊按键由CGDB解释),此时状态条最右侧有一个'*'表示你在GDB模式. 如果你想切换到源代码窗口,你可以恩ESC按键,如果想再切换到GDB窗口,你可以摁'i'.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值