在使用GDB调试程序时,有时遇到看到数据不知所云,必须对照定义才能看懂, 有时还要做些运算才能看出来,这样效率显然不高. 如果需要查看一个变量类的当前值,简单的数据类型还好说,如果遇到一些枚举型的变量或特殊条件,想要看到清晰的数据输出,就会比较繁琐. 好在GDB提供了一个调试时执行某个函数的功能:call, 在需要时能帮你解决大问题.
举个简单的例子,如果有一个类定义了一个dump方法, 在调用时或者在类的内部,都可以在你想要看看数据时,使用call执行一下:
a. dump函数代码:
void myTestingClass::dump()
{
std::cout<<"=== dump info about the class ==="<<std::endl;
std::cout<<"my name is "<<m_name<<std::endl;
std::cout<<"Age:"<<m_age<<std::endl;
}
b. GDB停在调用位置:
c. 在GDB控制台输入call指令,执行实例的dump方法:
如果执行到类的方法中,可以执行this->xxx来调用方法:
这是一个简单的示例. 除了输出信息外,还可以做一些动态插入代的功能. 活学活用,这个call指令绝对的牛气! 最新的XCode默认的Debugger是LLDB, 可惜在有些方面相比GDB还差距不小,这个功能也没有提供.
参考:
调试程序时在不中断程序的情况下输出函数调用信息
GDB使用介绍
开发工作中使用的软件列表
使用脚本简化工作
程序员要学会偷懒---正确运用自动化技术
如何使用搜索技巧来成为一名高效的程序员
转载请注明出处:http://blog.csdn.net/horkychen
分享到:
相关推荐
gdb调试.pdf,快速GDB调试入门..........
qtcreator-gdb-7.4-MINGW32_NT-6.1-i686 QtCreator 的调试器
GDB调试--以汇编语言为例
qtcreator-gdb-7.4-MINGW32_NT-6.1-i686版本调试器主要用于调试QT程序,与QT4.8.5桌面版配套,在本博客内也有相关资源可以下载。
GDB是GNU开源组织发布的一个强大的UNIX(不仅限于UNIX)下的C/C++程序调试工具。它搭配MINGW使用,可以使用户完成整个C/C+程序的编译和运行工作。有了GDB,用户可以在调试本地的C程序时不需要第三方C/C++工具。
建立gdb-gdbserver交叉调试环境的文档和gdb源码包
使用VS2015开发Linux程序,在Linux端资源安装资源 CentOS7安装命令为:rpm -ivh gdb-gdbserver-7.6.1-120.el7.x86_64.rpm
陈浩-用GDB调试程序(整理有书签).pdf+守望的个人博客-GDB调试指南(整理有书签).pdf
gdb-6.3-2 调试工具,就不多介绍了。
内含有mingw-get-setup.exe以及gdb-7.6.1-1-mingw32-bin.tar,容易被墙,都下好了,换点积分
mingw32下载gdb失败可离线安装,GDB是GNU开源组织发布的一个强大的UNIX(不仅限于UNIX)下的C/C++程序调试工具。它搭配MINGW使用,可以使用户完成整个C/C+...有了GDB,用户可以在调试本地的C程序时不需要第三方C/C++工具
GDB完全手册,Linux调试工具GDB,入门级使用例子
离线安装包,亲测可用
安装MinGw报错无法下载gdb-7.6.1-1-mingw32-bin.tar.lzma 。可以下载这个文件,把其中解压出来的gdb.exe放在MinGw/bin目录下即可。注意解压lzma文件需要使用特殊软件,如:“7-zip”。
gdb-linaro-7.6-2013.05.tar.bz2, opensource, openwrt
QtCreator 的调试器 适合 qt版本4.8.5 qtcreator版本2.8.0
可以打印map,vector等 只要 source stl-views-1.0.3.gdb
GDB调试GDB调试GDB调试GDB调试GDB调试 GDB调试GDB调试GDB调试GDB调试GDB调试
GDB提供了很多调试功能,包括设置断点、单步执行、查看变量、回溯函数调用堆栈等。通过这些功能,程序员可以有效地诊断和修复程序中的错误。 在使用GDB时,您需要在终端或控制台中启动您的程序,并使用以下命令之一...
gdb-6.0 linux 下的调试工具