如何在.cc源码中通过变量向trace文件输入调试信息
2010-06-25 14:01
513 查看
step1:添加trace函数,实现smac类函数的trace输出功能
---------------------------------------------------
以smac为例,首先在smac.h中设立trace*型变量tracetarget_,在smac.cc的command()中,与log-target方法建立连接,赋值为其第二参数,实质是与tcl脚本中指定的.tr脚本建关联,这需要自己的tcl脚本支持,具体做法是在建立node节点时,添加如下代码段:
set mb_node($i) [new Node/MobileNode]
$mb_node($i) nodetrace $tracefd
方法modetrace在文件ns-mobilenode.tcl中,实质就是log-target方法,与smac.cc中的command()对应。
step2:设立全局变量smac_global_instance,使得可在其它类函数中调用trace输出功能。
------------------------------------------------------------------------------
封装成宏MYTRACE,定义于smac.cc首部。关键之处在于全局变量指针需要初始化,若在构造函数中直接赋值为this则因为实例太多(按节点数)而重复定义,可在构造函数中按index_号进行选择性赋值(缺省选择节点0)
step3:其它类函数调用,如wireless-phy
------------------------------------
存在一个构造函数中无法trace的问题,是否跟建立先后顺序有关?此时trace函数还未建立起来?
---------------------------------------------------
以smac为例,首先在smac.h中设立trace*型变量tracetarget_,在smac.cc的command()中,与log-target方法建立连接,赋值为其第二参数,实质是与tcl脚本中指定的.tr脚本建关联,这需要自己的tcl脚本支持,具体做法是在建立node节点时,添加如下代码段:
set mb_node($i) [new Node/MobileNode]
$mb_node($i) nodetrace $tracefd
方法modetrace在文件ns-mobilenode.tcl中,实质就是log-target方法,与smac.cc中的command()对应。
step2:设立全局变量smac_global_instance,使得可在其它类函数中调用trace输出功能。
------------------------------------------------------------------------------
封装成宏MYTRACE,定义于smac.cc首部。关键之处在于全局变量指针需要初始化,若在构造函数中直接赋值为this则因为实例太多(按节点数)而重复定义,可在构造函数中按index_号进行选择性赋值(缺省选择节点0)
step3:其它类函数调用,如wireless-phy
------------------------------------
存在一个构造函数中无法trace的问题,是否跟建立先后顺序有关?此时trace函数还未建立起来?
相关文章推荐
- android底层驱动学习之如何通过debugfs创建文件的方式来调试内核信息
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)
- eclipse如何debug调试jdk源码,并显示局部变量
- 在Linux上,如何知道一个可执行文件是否包含调试信息呢?
- 如何通过反编译工具与插件 查看java *.class 文件源码
- ThinkPHP 控制器调试与Trace信息 模版替换变量的修改 开启了日志记录
- 如何解决在UBOOT中通过串口输入长度较大的环境变量的问题
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 终于ok了!ecplise中如何调试jdk源码,并能够看见变量的值!
- 如何通过反编译工具与插件 查看java *.class 文件源码
- C#调试过程中如何将堆栈信息写入文件
- 如何在macosx上通过源码安装bochs2.4.6并使用peter-bochs进行调试
- Eclipse调试进入JRE系统库源码并且显示源码中变量信息
- 如何调试JDK1.8源码(查看变量值、对.class文件打断点调试)
- gdb使用: 标准输入,查看变量,加入调试信息
- [性能调优]如何通过读PeopleSoft Trace文件来调优
- 如何在vs (visual studio)调试环境下查看lua的调用栈、变量信息
- eclipse 调试jdk源码class文件,变量无法显示问题
- 如何通过键盘输入整型数给枚举变量赋值