ns2中程序未执行完无trace文件探究

最近几天在做仿真的过程中,程序执行了一点点就出错了,想分析一下trace文件发现还没有内容,这是为什么呢?不是MAC层的downtarget就是trace吗?明明已经从MAC层几进几出了为什么还是没有内容呢?带着这个疑问我查看了一下cmu-trace.cc文件,发现了这个:

原来trace文件的内容是先输入到pt_->buffer()这个缓冲区中,当缓冲区满后再输入到文件中,那么此时的缓冲区的长度是多少呢?在此,我继续在trace.h文件中找到pt_的定义

我们再看一下BaseTrace这个类中buffer()函数是怎么定义的

好了,我们知道了,储存trace的缓冲区原来就是一个char类型的wrk_指针,这个指针指向的连续空间有多长呢?,我们去这个类的构造函数中看一下

我们只需要修改一下new的时候给它分配的空间大小就好了,比如说改成这样

然后就有trace数据了。。。

时间: 2024-10-08 07:58:27

ns2中程序未执行完无trace文件探究的相关文章

如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数

1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了. 在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程序崩溃并不可怕,反而是测试的成功.作为开发的我们更需要关心的是程序中的哪个函数或哪一行导致了系统崩溃,这样才能有针对性的进行改正. 本文描述了自己总结的几种定位崩溃的办法.

java中程序的执行的原理如怎么创建空间,创建对象等

这里举一个简单的例子: public class Test{ public static void main(String[] args){ String s; s = "hello world"; Student s1 ; s1 = new Student();//这里Student是引用类型 System.out.println(s); } } 就这个简单的程序我来说一下其工作的原理,希望能有助于跟我一样的菜鸟: 编译器通过主类找到编译入口编译成class文件,通过加载类到内存中(

python 中如何去执行批量的.py文件

因为有一次系统大重构,开发任务繁重,身为测试的我接下数据迁移的重担,原来是sqlsever的数据库,重构后的系统为mysql,所以用上了python 去做这个数据迁移 先写了一大堆脚本文件,一个表写了一个脚本文件,写的时候挺开心的,写一个调试一个,最后写完后发现,我要执行怎么办,不能一个一个去点击执行吧 看着一大堆文件,我要怎么去批量执行他们呢, 首先我用的编辑器是pycharm,那就介绍下它自带的一个功能, 打开pycharm ,在上方一栏中找到run 然后再run里面找到 Edit Conf

shell脚本中怎样同时执行多个.sql文件,并把结束写入文件中(转)

第一版: #!/bin/bash USER="root" DATABASE="test" TABLE="user" mysql -u $USER $DATABASE --html --default-character-set=utf8 < one.sql > /tmp/check.html mysql -u $USER $DATABASE --html --default-character-set=utf8 < two.sq

Cts框架解析(15)-任务执行完

case执行完毕后,会回到CtsTest的run方法中: 这个时候会先将mRemainingTestPkgs列表的第一项移除,以便下一次取第一个的时候,取的是新的TestPackage对象,然后根据case的类别来做相应的重启操作,最后返回到主界面.最后,截图留下犯罪现场,下载之前安装的jar包.在finally语句块中report未执行的case.为执行的case是通过执行其testStarted方法,但是不执行testEnded方法,让监听器识别出这条case未执行. 当CtsTest的ru

函数中setTimeout的执行顺序

这里先给出一段代码: function a(){ setTimeout(function(){ console.log("setTimeout") },2000); function oneSecond(){ var now = new Date(); var exitTime = now.getTime() + 1000; while (true) { now = new Date(); if (now.getTime() >= exitTime){ console.log(&

SQL Server 2005无日志文件附加数据库

公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件).结果造成数据库怎么都附加不上.出现错误. 解决办法: 1.新建一个同名数据库. 2.停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间.) 3.启动数据库服务,数据库变为置疑或可疑状态.然后在查询分析器中运行: alter databa

ASIHTTPRequest 未下载完时,离开下载页面后,程序会崩掉

最近使用ASIHTTPRequest下载图片时,在未下载完时跳出下载页面会让程序奔溃. 1 BOOL dataWillBeHandledExternally = NO; 2 3 if ([[self delegate] respondsToSelector:[self didReceiveDataSelector]]) { 4 5 //= YES会导致未下载完后离开下载页面后,程序会崩掉 6 7 dataWillBeHandledExternally = NO; 8 9 } 10 11 #if

Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。

Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnb