ndnSIM开启调试模式
./waf configure --enable-examples -d debug
将optimized改为debug即可。
为什么要开启调试模式
在ndnSIM中(Getting Started — ndnSIM documentation),通常我们使用优化模式(optimized mode)来运行更真实的仿真。在编译配置中,我们使用optimized属性编译NS-3:
./waf configure -d optimized
由于日志等帮助调试的功能,会增加 overhead。所以测数据时,得把 ns-3以优化模式编译。如果我们希望看到调试日志,就需要以调试模式编译(debug mode)。Examples — ndnSIM documentation
在优化模式下,我们运行仿真不会有任何输出:
NS_LOG=ndn.Consumer:ndn.Producer ./waf --run=ndn-simple
NS_LOG=ndn.Consumer:ndn.Producer ./waf --run=ndn-simple --vis
开启调试模式
重新配置ndnSIM并进行编译,将模式设置为debug mode,在命令行加入 -d debug 命令(加不加 --enable-examples 都可以,不影响)
cd ~/ndnSIM2.7/ns-3/ #需要改为自己的NS-3安装目录
./waf configure --enable-examples -d debug
./waf
如果使用了 scenario (ndnSIM 如何使用 scenario 模板 进行 真实场景仿真-CSDN博客)还需要重新安装:
sudo ./waf install
cd ../scenario
./waf configure
此时,在scenario模板中也能使用debug mode。
注意:在scenario模板中对自己的代码使用debug模式,前提条件——必须要在ns-3文件夹下编译为debug mode,重新安装后即可。否则会出现 ‘ Can not find 'ns3-core' ’找不到ns3-core的报错(大坑,ndnSIM 使用 scenario 模板时 编译报错 Can not find ‘ns3-core‘_ask in 'ns3-core' failed with-CSDN博客)。【即:install了是什么模式,在scenario模板中才可以使用什么模式】
进入调试模式后可成功打印log
NS_LOG=ndn.Consumer:ndn.Producer ./waf --run=ndn-simple
可以看到已经成功获取到了日志信息,包括Consumer和Producer产生的消息,说明调试模式(debug mode)设置成功。
同样也可以使用可视化工具加上日志信息:
NS_LOG=ndn.Consumer:ndn.Producer ./waf --run=ndn-simple --vis
此时仿真不是自动开始运行的,需要点击Simulate按钮才能开始仿真。按照代码规定的时间,仿真结束后会自动停止。
关于日志打印出哪些信息,怎样打印,以及如何利用这些信息分析实验结果将在后续的分享中介绍。
NDN科研工作者,长期研究,欢迎讨论交流与合作!