OPNET仿真常见错误

 1<<<Program Abort>>>

Invalid Memory Access

内存无效访问是调试程序中最常碰到的错误,一般是程序中的指针出了问题,可以尝试用以下办法来解决:

1)在edit->preference 中给comp_flags /Od /Zi 字段,给bind_shobj_flags /DEBUG 字段;

2)在edit->preference 中找到handle_exception,将TRUE 改为FALSE,这样程序中的异常就可以由VC 来调试;

3)运行仿真,如提示出现异常,点击cancel,则自动打开VC,并且debug 会停留在发生异常的指针处。但是有时候VC debug 有可能停留在让人看不懂的汇编语言处,此时可以观察发生错误的事件event_id 值,在ODB 调试的时候使用evstop 指令设置断点,让程序中断在出错的事件前,接下来可以采取下列两种方法之一:

1)采用OPNET VC 联合调试,在VC 中通过单步执行查看;

2)用ODB next 指令一个一个时间看,往往配合ltrace fulltrace 指令查看程序运行状况。碰到这个问题我们也可以缩短仿真时间,在确保仿真能够完成前提下,在仿真属性中选择Advanced->Profiling->Collect detailed profiling for function,之后出现每一个内存使用的统计。

2<<< Recoverable Error >>>

Object repository construction failed

due to errors encountered by the binder program (bind_so_msvc)

-----

<<< Program Abort >>>

Error encountered rebuilding repository -- unable to proceed

出现这个错误一般是编译连接出错unresolved external symbol,常见的有以下可能性:

1Pipeline Stage (C code)文件名与函数名不一样,这时改为同名就行了。

2)进程模型用到一个无法定位的外部函数,这时在进程模型编辑器中选择

File->Declare External Files…,然后选中含有该外部函数的外部文件。

3)外部文件用到一个无法定位的函数,这时查看是否漏掉include 需要用到的头文件。

3<<<Program Abort>>>

No true transitions from state ()

T(), EV(), MOD(), PROC (sim_pro_err_transit)

状态程序执行完毕找不到出口,有限状态机要能够正常运行要求在任意条件下,每个

状态执行完毕之后都必须发生转移,出错的情况有以下两种:

a)根本没有转移条件及相应的状态。

b)没有满足条件的转移。

4) Unable to write file (*.pr.m) compilation failed

Source code file couldn't be generated

查看模型文件属性是否设置为只读,编译模型文件需要刷新其内容,去掉只读属性。

5<<<Program Abort>>> Standard function stack imbalance

FIN FOUT/FRET配对。

 

你可能感兴趣的:(职场,休闲,OPNET)