1、在调试代码时候,一直没有弄明白NS_LOG中的各种函数是如何使用的,甚至现在运行程序只知道,./waf –run,至于输出调试信息,现在真的是没有弄明白,不利于代码的理解和调试。
2、通过命令行,改变实验变量,观察实验结果,./waf --run "sb" --command-template="%s --help"
会出现程序参数和一般参数
比如修改distance(default=50),./waf --run "sb" --command-template="%s --distance=200",会明显实验结果在distance=200时,收发数据包为0,distance距离导致收发双方不能正常通信。
这种通过命令行的方法,只会改变一次运行结果,不会改变文件中的值,下次运行时,distance仍然=50,对于观察实验结果来说,很方便,尤其是把每次改变结果值,写成脚本,运行很方便
3、gdb调试,个人认为比较笨拙,不过在eclipse没安装成功,这也是一个小调试的方法。
./waf --run "sb" --command-template="gdb %s",进入到gdb调试环境中,l,break,r,finish,next,进行调试。
4、NS3中的logging系统,功能也很强大,只是现在使用很少,记录各模块中的输出信息,对调试的执行有帮助。
在程序中”wifi-example-sim.cc”发现,使用了”NS_LOG_COMPONENT_DEFINE”和”NS_LOG_INFO”以及”NS_LOG_ERROR”这3种形式的函数;
比如,我想在运行程序”wifi-example-sim.cc”时,输出NS_LOG_INFO函数中的信息,首先找到NS_LOG_COMPONENT_DEFINE("WiFiDistanceExperiment"),之后通过命令行
$ export NS_LOG=WiFiDistanceExperiment=info
$ ./wa


1157

被折叠的 条评论
为什么被折叠?



