1、安装准备 cygwin下面安装(注意我测试的gdb-20020411-1和gdb-20010428-3都是图形界面,而版本gdb-20041228-3我发现是命令行的,所以推荐前两个版本,毕竟图形界面方便很多)。下面以ns-allinone-2.29为例说明 将gdb-20010428-3.tar.bz2,gdb-20010428-3-src.tar.bz2或gdb-20020411-1.tar.bz2,gdb-20020411-1-src.tar.bz2下载下来后放在cygwin的安装文件的目录下(\...\CD\ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin\release\gdb,在release中新建的一个gdb文件夹,为了稳妥,我将四个文件全拷进去了。。),同时修改setup.ini 文件才能使setup.exe文件包括置换的gdb,把1776行(各个版本的cygwin不一样)开始的gdb说明注释悼,把下面的gdb说明copy进去。 gdb说明如下: @ gdb sdesc: "The GNU Debugger" category: Devel requires: cygwin termcap version: 20010428-3 install: release/gdb/gdb-20010428-3.tar.bz2 3137406 e5a88228537c46b1330571eef1af1b1d source: release/gdb/gdb-20010428-3-src.tar.bz2 13445406 dcf71c3c99ff5b7ead7b5cb2c4fb8858 [test] version: 20020411-1 install: release/gdb/gdb-20020411-1.tar.bz2 4251881 4f5d584bc76f4ad3bbc3270ccc5bc6fc source: release/gdb/gdb-20020411-1-src.tar.bz2 15680236 9eb6019f0ec424c9a332b5c78e8234ea 后面install的“3137406”表示字节数,“e5a88228537c46b1330571eef1af1b1d”表示MD5码;source的“gdb-20010428-3-src.tar.bz2 ”不知道是指什么。 2、安装 启动cygwin的安装程序,利用它安装gdb,注意你只需要安装gdb这一个就行了,其他的所有都选择为keep(已经安装的)或者skip(未安装的),否则会出现问题的,一定要切记这点儿。 3、在代码里面添加调试信息:修改Makefile(没有任何后缀的)将里面 方法一: CCOPT = -Wall STATIC = LDFLAGS = $(STATIC) LDOUT = -o $(BLANK) 改变为: CCOPT = -Wall -g STATIC = LDFLAGS = $(STATIC) LDOUT = -o $(BLANK) 修改的东西是粉红色字体所示 方法二: 或者做如下修改: 需要修改makefile.in:加上-g3选项 .cc.o: @rm -f $@ $(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.c 4、然后重新编译
可以先执行:./configure Make clean Make depend Make 5、进入工作目录:cd ns-allinone-2.29/ns-2.29, 输入gdb ns能进入gdb工作界面则安装成功。 调试方法如下: 在左上方的框框里输入要调试的源文件名字,设置好断点,然后按ctrl+n进入控制台,cd到tcl所在目录,输入r XXX.tcl,运行脚本,即会在断点处停下来 s是step,进入过程,进入函数,n是next,执行下一句,c是continue,执行到下一个断点。注意跟踪时左上方显示的文件名以及函数名以记录跟踪轨迹。还可以查看内存、堆栈、寄存器等。另外控制台里面也会在哪个函数进入了断点,断点执行到了哪个文件的哪一行~就是信息不能复制下来,只能截屏~
|