4. 调试应用程序
任务目标
在VxWorks Workbench中启动调试会话,为应用程序源码设置断点,通过单步执行(Step Over / Step Into)观察局部变量在每条语句执行后的值变化,验证程序控制流与变量更新逻辑。
环境与前置条件
- VxWorks Workbench 3.x/4.x(含Wind River Debugger)
- 已创建可调试的VxWorks应用工程(如
app_debug),编译选项需包含-g调试信息 - 已连接目标机(模拟器或真实板卡),且目标机已启动VxWorks镜像
示例程序
创建文件debug_demo.c并加入当前工程:
调试操作步骤
- 启动调试会话:在Workbench中右键点击工程 →
Debug As→VxWorks Debug,选择目标机连接后启动。 - 设置断点:在源码编辑器中,双击第8行(
sum += base + i;)左侧灰色区域,或右键 →Toggle Breakpoint。同样在第16行(result = compute(a, b);)设置第二个断点。 - 运行到第一个断点:点击调试工具栏的
Resume(F8)。程序停在main函数第16行,此时a=3、b=4已赋值。 - 单步进入函数:点击
Step Into(F5),进入compute函数,停在sum = 0行。 - 单步跳过循环体:连续点击
Step Over(F6),观察i从0递增至3,sum依次变为3、7、12、18(当i=3时循环结束)。 - 观察变量:在
Variables视图中实时查看sum、i、base、step的值;也可选中变量名右键 →Watch添加到表达式视图。 - 结束调试:点击
Resume让程序运行完,控制台输出result = 18,然后点击Terminate停止调试会话。
验证方法与判定标准
- 程序能停在两个断点处,且调用栈显示当前位于
main或compute对应行。 - 单步执行时,
Variables视图中i从0逐步变为1、2、3,sum按sum += base + i正确累加。 - 循环结束后
sum的最终值为18(即3+4+5+6),与代码逻辑一致。 - 最终控制台输出
result = 18,程序正常退出无异常。
常见问题:若断点无效,检查工程编译属性中是否启用
-g调试符号;若单步时源码与汇编不对应,确认下载到目标机的镜像与当前工程为同一构建版本。