GDB调试及其调试脚本的使用返回脚本百事通一、GDB调试1.1. GDB 概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX/Linux平台下做软件,你会发现GDB这个调试工具有比VC、BCB的...
分类:
数据库 时间:
2015-05-03 22:01:51
阅读次数:
260
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如:> cc -g hello.c -o hello> g++ -g hello.cpp -o hello如果没有...
分类:
数据库 时间:
2015-04-28 13:51:24
阅读次数:
164
一、GDB改变程序的执行
一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。
修改变量值
修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:
(gdb) print...
分类:
数据库 时间:
2015-04-27 20:11:06
阅读次数:
194
UNIX环境下的命令行调试工具:gdb 如果需要使用gdb调试程序,请在gcc时加上-g选项。 下面的命令部分是简化版,比如使用l代替list等等。1.基本命令1)进入GDB #gdb test test是要调试的程序,由gcc test.c -g -o test生成。进入后提示符变为(gd...
分类:
数据库 时间:
2015-04-27 19:42:16
阅读次数:
164
当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。
下面是一些查看函数调用栈信息的GDB命令:
backtrace
bt
打印当前的函数调用栈的所有信息。如:
(gdb) bt
#0 func (n=250) at tst.c:6
#1 0x080485...
分类:
数据库 时间:
2015-04-25 18:27:15
阅读次数:
212
以前通过C-x o来切换emacs中的窗口,当gdb调试时会感觉实在是难用,今日在看一年成为Emacs高手(像神一样使用编辑器)时,发现有window-numbering利器,可以通过window-numbering在github上的内容查看安装方法。
分类:
Windows程序 时间:
2015-04-25 17:59:53
阅读次数:
1078
声明:博客内容引用的是陈先生的博文,原文链接http://blog.csdn.net/haoel/article/details/2879。由于原博文没有目录,不方便查询,所以特此把原博文整理成带目录版的。
一、设置断点(BreakPoint)
我们用break命令来设置断点。正面有几点设置断点的方法:
break
在进入指定...
分类:
数据库 时间:
2015-04-25 16:42:18
阅读次数:
170
第10章作业
缓冲区的起始地址,即变量buffer的起始地址是:0xbfffefd0
函数foo返回地址是:0xbfffeffc
因此缓冲区起始地址与函数foo返回地址的距离是:
0xbfffeffc -0xbfffefd0 =1c =28字节
下面是完整的调试过程:...
分类:
数据库 时间:
2015-04-24 12:39:32
阅读次数:
291
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。
一般来说,GDB主要帮忙你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时...
分类:
数据库 时间:
2015-04-24 10:34:53
阅读次数:
224
前提条件:已经安装了JDK 6.0、android SDK、NDK r9和eclipsele4.2开发环境.
推荐下载Android开发的综合套件adt-bundle-windows-x86,再下载Android NDK既可以开始Android NDK程序的编程了。
1. 首先在eclipsele4.2上创建一个空的Android工程,无所谓,只要是一个Android工程就OK了。
...
分类:
移动开发 时间:
2015-04-24 09:15:41
阅读次数:
234