您的位置:首页 > 运维架构 > Linux

Linux下C++可视化调试神器vgdb

2017-02-08 15:12 1441 查看

Linux下C++可视化调试神器vgdb  

2014-09-29 00:20:16|  分类:

技术研究 |  标签:linux  调试  可视化  c/c++  vgdb  
|举报
|字号 订阅

 

 
 
 





  下载LOFTER

我的照片书  |

在Linux下怎样调试C/C++程序?做过Linux开发的人都知道用gdb。我见过很多Linux开发人员,包括很多有多年工作经验的老鸟,都还是在gdb命令行下兢兢业业的敲着命令,用list来看代码或是在Windows上开一个Source insight来看代码。
这里我分享一些Linux下如何使用可视化调试来提高效率的经验,希望能对大家有所帮助。
1. gdb的TUI模式。进gdb后,按Ctrl-X A,看到什么了?是的,有窗口了,里面还能显示代码呢。(在Linux下大多可用,在Windows上的gdb一般没这功能。)这回看代码舒服多了是不是,去google搜搜看文档吧。
2. emacs+gdb。搜搜看emacs和gdb的作者你就知道这两个软件关系非同一般了。只要会用emacs会用gdb,剩下就不是问题了。关键是emacs可不是容易用的惯的。
3. vi+gdb。段子里一直流传着,Linux下的编辑器,分为emacs, vi和其它三类。虽然vi本身没提供直接集成gdb的功能,但有不少vi插件试图做到易用的集成,听过的有vgdb,pyclewn,VimDebug等。
 
这回主要介绍下vgdb。它的特点是以微软Visutal Studio中的Visual C++作为榜样,非常方便有VC调试经验的人上手。不仅缺省的快捷键是VC风格的(比如F9断点,F5运行,F10单步等),而且引入了不少VC中的概念和操作方便用户操作,比如Run To Cursor (Ctrl-F10) - 运行到光标所在行(用gdb要设置临时断点再运行过去);开始调试(F5)(如果用gdb,一开始用run命令开始调试,中间要用cont命令继续执行,vgdb把这些细节都在后台帮助你处理掉啦);Set
Next Statement - 把当前执行位置拖到另一行上,甚至允许跨函数拖执行点而程序不崩溃;再比如VC中查看复杂对象,允许用户自定义查看规则的AutoExpand机制也被vgdb引入进来,这尤其适合大项目中查看复杂的数据类型。
 
在vim的script列表里可以找到vgdb: http://www.vim.org/scripts/script.php?script_id=4456 对于没有Linux下调试经验的人来说,使用vgdb,即使不会gdb和vi的操作,也能很快上手调试起来。下载的包里带有视频演示,这里先给个截图看看:



 
 
 
vgdb的另一个亮点是对变量指针的分析(Drill down)。比如你用print查看一个变量,发现原来是个指针,一般地你会再输入print *v来查看它的结构,而在vgdb窗口里,你直接在显示指针值的那行上回车,就能跟踪打印里结构的内容。如果结构中还有指针,仍可以方便的在这行上回车查看一个指针成员的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: