最近几天在做仿真的过程中,程序执行了一点点就出错了,想分析一下trace文件发现还没有内容,这是为什么呢?不是MAC层的downtarget就是trace吗?明明已经从MAC层几进几出了为什么还是没有内容呢?带着这个疑问我查看了一下cmu-trace.cc文件,发现了这个:
原来trace文件的内容是先输入到pt_->buffer()这个缓冲区中,当缓冲区满后再输入到文件中,那么此时的缓冲区的长度是多少呢?在此,我继续在trace.h文件中找到pt_的定义
我们再看一下BaseTrace这个类中buffer()函数是怎么定义的
好了,我们知道了,储存trace的缓冲区原来就是一个char类型的wrk_指针,这个指针指向的连续空间有多长呢?,我们去这个类的构造函数中看一下
我们只需要修改一下new的时候给它分配的空间大小就好了,比如说改成这样
然后就有trace数据了。。。