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,常见的有以下可能性:
(1)Pipeline 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未配对。