如何在VxWorks下为TAU G2的程序设置断点
2008-10-13 23:15
357 查看
TAU G2程序本身的仿真功能很强,如果程序在目标机上运行时出现逻辑错误,你总是可以在TAU G2的仿真环境下模拟出这个错误并找到出错的原因,一般不需要借助操作系统的C代码调试工具。但是如果是在TAU G2中调用了C语言的函数,或者在环境函数中出现错误,问题就复杂了,因为TAU G2的仿真环境无法跟踪这些C语言的代码,你只能借助操作系统自身的调试功能了。
TAU G2生成的程序至少是2个线程:一个是主线程,就是main函数所在的线程,象环境函数中的xInitEnv和xInEnv都是在主线程中的,主线程设置断点很容易,只要在启动调试器后,使用Debug菜单中的Toggle Breakpoint(F9)就可以了,因为调试器默认就是把主线程当作当前线程的;另一个线程是UML代码所在的线程,通常你不需要在生成的UML代码中设置断点,但是xOutEnv在这个线程中,而且如果在UML代码中调用了C语言的函数,那么这些C语言的函数也在这个线程中,而在这个线程中如果还是用F9直接设置断点就往往不会成功了,程序往往不会停下来而是继续执行。
要想在xOutEnv或者自己编写的C语言函数中设置断点进行调试,可以使用Debug菜单中的Toggle Global Breakpoint(Shift F9)设置全局断点。设置全局断点后,当UML代码所在的线程执行到断点处,这个线程就会停下来,此时可以使用Debug菜单中的Attach功能,将当前线程由主线程变为UML线程,这样就可以单步跟踪调试了。UML线程在Attach对话框中通常是最后一个线程,默认情况下其名字应该为t1,但是有的时候线程名会显示为乱码。
TAU G2生成的程序至少是2个线程:一个是主线程,就是main函数所在的线程,象环境函数中的xInitEnv和xInEnv都是在主线程中的,主线程设置断点很容易,只要在启动调试器后,使用Debug菜单中的Toggle Breakpoint(F9)就可以了,因为调试器默认就是把主线程当作当前线程的;另一个线程是UML代码所在的线程,通常你不需要在生成的UML代码中设置断点,但是xOutEnv在这个线程中,而且如果在UML代码中调用了C语言的函数,那么这些C语言的函数也在这个线程中,而在这个线程中如果还是用F9直接设置断点就往往不会成功了,程序往往不会停下来而是继续执行。
要想在xOutEnv或者自己编写的C语言函数中设置断点进行调试,可以使用Debug菜单中的Toggle Global Breakpoint(Shift F9)设置全局断点。设置全局断点后,当UML代码所在的线程执行到断点处,这个线程就会停下来,此时可以使用Debug菜单中的Attach功能,将当前线程由主线程变为UML线程,这样就可以单步跟踪调试了。UML线程在Attach对话框中通常是最后一个线程,默认情况下其名字应该为t1,但是有的时候线程名会显示为乱码。
相关文章推荐
- 图解如何在VC6,VS2008中设置程序条件断点
- 图解如何在VC6,VS2008中设置程序条件断点
- 【调试技巧】图解如何在VC6,VS2008中设置程序条件断点
- 程序由多个原文件组成,gdb时如何在指定的某个文件中设置断点?
- C#.NET常见问题(FAQ)-程序如何单步调试和设置断点
- matlab中的如何终止执行程序,如何设置断点,断点后继续运行
- 图解如何在VC,VS2008中设置程序条件断点
- 图解如何在VC6,VS2008中设置程序条件断点
- C#.NET常见问题(FAQ)-程序如何单步调试和设置断点
- 程序中如何给自己设置硬件断点(通过程序代码设置数据断点而不使用JTAG)
- vs如何设置断点调试程序
- 图解如何在VC,VS2008中设置程序条件断点
- 12.04如何设置Synergy鼠标共享程序的自动启动
- fiddler功能(一)如何使用fiddler设置断点
- 电脑双屏下如何设置程序在第二屏幕运行
- ?如何用vb程序设置文件夹权限
- VC如何设置默认的调试程序
- Delphi-- 如何设置程序开机运行(写注册表)
- 如何设置Java虚拟机内存以适应大程序的装载
- 如何设置BCB编译选项才能让编译好的程序在未安装BCB的机器