ODB 调试功能很强大,它更侧重于逻辑上的调试,与VC 调试相比,不足的是,即使是在fulltrace 下也只能显示函数的调用情况和代码的返回值,而一些有关赋值、比较等代码却显示不出来,此外ODB 只显示函数的原型和参数的结果。所以ODB 调试一般用于全局错误定位,VC 一般用于局部精细地跟踪程序,查看变量的变化,或进入函数查看细节。VC 提供一个非常直观、功能强大的调试环境,可以支持设置断点、观察变量、单步跟踪。追踪子程序等操作。本节主要介绍OPNETVisual C++联合调试需要进行一些参数配置。OPNET VC 联调大致来说可以分为以下几个步骤:设定环境变量;设定OPNET 参数;首次联调选择OPNET 强制编译(force compile);绑定(attachOPNET 仿真进程;观察变量。

 

    1)在项目编辑器中单击Edit选项,从弹出的菜单中选择Preferences,如图所示修改以下属性值。

1)在bind_shobj_flags(动态连接)和bind_static_flags(静态连接),comp_flagscomp_flags_cpp的值后面加上/DEBUG,这一步的作用是连接时将所有的目标(*.obj)文件集成为一个动态连接库(*.dll)文件,同时加入调试信息。中间要加空格。

2)在comp_flags comp_flags_cpp 后面加上/Zi  /Od,这一步的作用是在编译时产生调试信息,并且在调试时关闭编译器的优化功能。

     2)首先,设置仿真属性。在Simulation 菜单中选择Configure Simulation (Advanced),设置然后选择Envirement files,将其中debug 的属性值变为included,这使仿真处于编译模式,运行仿真将弹出ODB 窗口;并且视情况将force_compile 的属性值改变为included,这将强制编译所有的进程模型。

接下来需要选择用VC 来调试OPNET 进程,一般的方法是打开VC,在Debug 菜单下单击attach to process,然后选择op_runsim_dev.exe(或者op_runsim_opt.exe),这样就可以利用VC 提供的调试功能进行OPNET 程序调试。有时attach to process 选项框为空,这可能不是VC OPNET 程序本身的问题,因为有些应用软件的进程和op_runsim_dev.exe(或者op_runsim_opt.exe)进程冲突,如一些杀毒软件,acrobat 等,或者是其他进程开得过多,这时可以通过以下方法解决这个问题:按住键盘的Ctrl+Del+Alt 按键,选择任务管理器,找到op_runsim_dev.exe 进程,在它上面单击鼠标右键,从弹出的菜单中选择“调试”,这时就会启动VC 并且自动attach OPNET。用VC 观察变量时,进程的状态变量不能直接观察到,必须通过引用指针op_sv_ptr 来看,它指向了所有的状态变量。例如要观察状态变量A,可以在查看变量窗口输入(*op_sv_ptr.A

(注,以上叙述是在11.5以前的版本中,在14.5及以后的版本中,没有如上设置那么麻烦,设置好OPNE后,选择调试模式,运行,并在任务管理器中选择调试及可调用VC