为了使一个用户定义的函数被执行,该函数必须与一个特殊的堆栈跟踪代码相连。堆栈跟踪技术靠在函数的入口点和出口点插入预处理器宏指令完成
(一个函数只有一个入口点,但可以有多个出口点(由C语言的return声明决定))
这些宏指令为:FIN、FOUT和FRET。FIN被插入到函数的入口点,FOUT被插入到函数的出口点,但却不返回任何值,FRET被插入到函数的出口点,返回一个值。
注意这些宏指令不需要以分号结束(它们自我包含),FIN的参数中也不需要双引号。
opnet提供的所有示例模型都包含了这些宏指令,并且建议用户定义的函数也包含这些宏指令。如果FIN、FOUT和FRET被正确插入了用户代码中,我们就可以使用op_vuerr来找出程序错误的位置,哪怕是在一个嵌套的模型函数调用中。
摘录:@https://www.cnblogs.com/lic02891/archive/2012/09/19/2693907.html