VxWorks调试手段和方法
### VxWorks调试手段和方法详解 #### 一、引言 VxWorks是由美国WRS(风河)公司开发的一款高性能、可裁剪的嵌入式实时操作系统(RTOS)。由于其卓越的性能和灵活性,VxWorks广泛应用于航空航天、国防、汽车电子等领域。本文将详细介绍VxWorks下的调试手段和方法,特别是在Tornado集成开发环境下的调试流程。 #### 二、启动和终止调试 ##### 1. 启动Debugger 启动Debugger是调试过程的第一步。在配置好目标机和目标服务器之后,有两种方法可以启动Debugger: - 在TornadoLaunch工具栏中点击启动按钮,即可为当前选定的目标服务器启动一个调试器。 - 从Tools菜单中选择Debugger,在随后弹出的LaunchDebugger窗口中,从Targets下拉菜单中选择一个目标服务器来为其启动一个调试器。 如果调试器启动成功,主窗体左下角的状态栏将显示“Debugger started successfully.”的提示信息。此时,对应的Debugger菜单的下拉选项和CrossWind工具栏中的快捷图标会变为高亮状态,表示调试器已准备好使用。 ##### 2. 终止调试 终止调试(Stop Debugging)可以通过以下两种方式实现: - 在CrossWind工具栏中点击停止按钮。 - 在Debug下拉菜单中选择Stop Debugging选项。 终止调试后,调试器会被关闭,相关的调试工具选项将变为灰色,若需要再次进行调试,则需要重新启动调试器。 ##### 3. 中断Debugger 在程序运行过程中,有时可能需要暂停执行以便进行检查或修改。这可以通过以下两种方式实现: - 单击CrossWind工具栏中的中断按钮。 - 选择Debug下拉菜单中的Interrupt Debugger选项。 如果当前调试的任务正处于全速运行状态,可以通过这种方式中断其执行。 #### 三、运行程序 在调试过程中,通常需要运行程序来观察其行为。可以通过以下步骤来运行程序: - 单击CrossWind工具栏中的运行按钮或选择Debug下拉菜单中的Run选项,会出现Run Task窗口。 - 在Run Task窗口中指定需要运行的函数及其参数。函数参数之间需要用空格分隔。需要注意的是,参数列表必须是整数或地址,不能是浮点或双精度值、函数调用。 - 选中Break at Entrypoint复选框可以在函数的第一条语句处设置一个临时断点,这样程序一运行就会停在第一条语句处,用户可以执行单步操作,跳过子函数调用或恢复执行。 #### 四、Attach和Detach一个任务 ##### 1. Attach Attach选项可以让一个已经运行的任务处于调试状态。如果之前正在调试另一个任务,那么先前的任务会被释放,脱离调试器的控制,并保持其当前状态(运行或中止)。在Attach窗口中,会显示出运行于目标板上的所有任务的滚动列表。可以选择一个任务进行调试,也可以通过在Attach to框中输入任务名称(或任务ID)来选择一个任务。Attach一个任务后,调试器会立即挂起该任务。Attach窗口的第一项为System。选择此项可以进入系统调试模式,如果BSP配置不支持系统模式,将会显示错误信息。 ##### 2. Detach Detach选项让当前任务脱离调试器的控制,并将任务挂起。这意味着在以后需要的时候仍可以通过选择Attach使该任务处于调试状态。 ##### 3. Detach and Resume 单击Detach and Resume选项可以使当前任务脱离调试器的控制,并使任务继续执行。 #### 五、断点 断点是调试过程中非常重要的功能之一,可以帮助开发者精确地定位问题所在。VxWorks提供了多种类型的断点,包括任务级断点、全局断点、临时断点以及条件断点。 ##### 1. 断点类型 - **任务级断点**:仅对当前调试任务有效。设置时可以通过单击菜单命令Debug | Toggle BreakPoint或者将光标放在源文件处点击相应图标。 - **全局断点**:对所有任务都有效。设置全局断点时,采用菜单命令Debug | Toggle Global Breakpoint。在任务模式下,断点只对当前被调试的任务有效。当想查看当前被调试任务的动作是否会影响另一个任务时,就需要使用全局断点。 - **临时断点**:设置时选择菜单命令Debug | Toggle Temp BreakPoint。临时断点仅中止程序一次,一旦程序在此处中止,Debugger会自动删除它。临时断点的图标是一个中空的倒三角形,与其它断点相区别。 - **条件断点**:只有当条件满足时,断点才起作用。 ##### 2. 设置断点 在Debug下拉菜单中选择Breakpoints就可以设置多个不同类型的断点。在Location框中输入文件名和行数,选择断点类型(任务级断点或全局断点),点击Add,新的断点就会出现在断点列表中。如果选中了Externally managed框,则表示该断点是通过其他(非调试器)途径设置的,例如TornadoShell。 通过以上介绍可以看出,VxWorks提供了丰富的调试手段和方法,帮助开发者有效地定位和解决问题。熟练掌握这些调试技巧对于提高开发效率至关重要。
剩余11页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 阿里云OSS Java版SDK.zip
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- yolo5实战-yolo资源
- english-chinese-dictionary-数据结构课程设计
- mp-mysql-injector-spring-boot-starter-sql注入