张店做网站,广告发布费和广告服务费的区别,网站建设的财务分险,网站建设开发方式包括购买在使用ns2过程中#xff0c;避免不了要修改或者添加一些模块#xff0c;对C代码进行改动。编写好自己的功能模块以后#xff0c;进行编译执行。但通常不会这么容易通过#xff0c;经常会出现编译可以通过#xff0c;但执行是会出错。比较常见的是“段错误”#xff0c;因… 在使用ns2过程中避免不了要修改或者添加一些模块对C代码进行改动。编写好自己的功能模块以后进行编译执行。但通常不会这么容易通过经常会出现编译可以通过但执行是会出错。比较常见的是“段错误”因指针内容为空。这个时候需要用调试器对源代码进行调试来精确定位错误发生在哪里。下面记录一些我比较常用的调试功能GDB在linux中常用的调试器功能比较全我用到的也不多。以后会继续更新。 首先要让我们的ns2支持gdb的调试需要对makefile进行修改。以ns2.29为例加上-g3选项。 .cc.o:rm -f $$(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $ $*.cc
.c.o:rm -f $$(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $ $*.c 修改完上面的内容后重新编译。然后可以在任意目录下执行gdb ns。此时就可以进行调试了介绍几个我常用的命令。 (gdb) r test.tcl //执行指定的test.tcl文件 (gdb) b udp.cc:55 //在udp.cc文件的第55行打断点 (gdb) c //执行到断点处继续往下执行 (gdb) bt //查看调用栈。觉得这个挺有用可以查看整个仿真过程的调用过程对理解仿真步骤和执行过程很有帮助 (gdb) p node //查看变量node的值当执行到断点时可以查看变量的值是否是自己需要的值 我在使用过程中这几个命令结合着使用就基本能定位自己的代码哪里有问题了。但这并没有结束因为偶尔会出现一些错误提示会告诉你跟系统中的某些头文件有关这个时候就比较困难了。暂时这些问题只能解决到此相信随着学习的进一步深入能解决的问题也会越来越多。关于gdb的调试也会继续更新。虽然博客更新的频率比较低 版权声明本文为博主原创文章未经博主允许不得转载。 转载于:https://www.cnblogs.com/gxwang/archive/2013/06/01/4940873.html