概述
在之前的文章小编就讲过,在小编的字典中,调试能力的重要性是要强过开发设计能力的。关于调试为何如此重要等等,这里就不再过多的赘述了。
注意
★环境:vxWorks<6.9.4> workbench<3.3.5>
操作
创建应用工程
1. 新建工程文件夹。
![]()
2. 启动workbench,选择工程目录,然后点击OK。
![]()
3. 在Project Explorer窗口空白处右键,选择New->VxWorks Downloadable Kernel Module Project。
![]()
4. 输入Project name,选择Create project in workspace,然后点击Next。
![]()
5. 一路点击Next,直到出现如下界面,选择Active build spec为SIMNT diab,然后点击Finish。
![]()
6. 在工程名右键,依次点击New->File。
![]()
7. 输入文件名,然后点击Finish。
![]()
8. 输入以下代码。
#include <vxWorks.h> #include "stdioLib.h" int main(void) { int a=1, b=3, c; c = a+b; printf("hello vxWorks...\n"); printf("c = %d\n", c); return 0; }
![]()
9. 右键工程,选择Rebuild Project,开始编译工程。
![]()
10. 在弹出窗口中点击Continue。
![]()
11. 等待编译完成,终端会提示工程是否有错。
![]()
建立调试环境
1. 启动vxWorks。
![]()
2. 键入ifconfig命令,我们可以查看到目标机的ip地址为192.168.10.200。
![]()
3. 回到workbench,点击按钮,新建连接。
![]()
4. 在弹出窗口选择Wind River VxWorks 6.x Target Server Connection,然后点击Next。
![]()
5. 在Target name or address处输入目标机ip地址,并在Kernel image处选择目标机镜像,注意,这里的目标机镜像要与实际目标机运行的镜像一致,否则会报错。最后点击Finish。
![]()
6. 回到workbench主窗口,此时我们可以看到新建的远程终端系统已经自动连接成功。
![]()
7. 在工程名上右键,依次点击Debug As->VxWorks Kernel Task。
![]()
8. 选择目标机,并在Entry Point处点击Browse,指定主函数入口。
![]()
9. 在弹窗中选择main,也就是我们的主函数入口,然后点击OK
![]()
10. 点击Debug开始调试。
![]()
开始调试
1. 执行完上面的步骤,工程进入调试模式,下图红框出按钮用于执行调试命令,包括单步运行,终止,运行等,这点与其他调试工具命令基本一致。
![]()
2. 如果我们想要增加断点,只需要在对应的语句前双击即可,取消断电也只需要再次双击。
![]()
3. 点击运行按钮,程序将会直接运行到断点,同时我们可以在Variable窗口观测到相关变量的值。
![]()
4. 另外分析程序,在断点前一句,目标机应该会有hello VxWorks的输出信息,此时回到目标机,可以看到屏幕上会有相应的信息输出。
![]()
5. 最后,若想退出调试模式,只需要点击终止按钮即可。
往期 · 推荐
浅谈linux - 字符设备框架
帮你自动化办公的python-自动提取pdf指定页(项目概述)
也没想象中那么神秘的数据结构-一种通用化的双向链表设计(底层源码)
也没想象中那么神秘的数据结构-一环扣一环的“链表”(双向链表)
我用C语言玩对象,偷偷关注着你的观察者模式(基类设计)
关注
更多精彩内容,请关注微信公众号:不只会拍照的程序猿,本人致力分享linux、设计模式、C语言、嵌入式、编程相关知识,也会抽空分享些摄影相关内容,同样也分享大量摄影、编程相关视频和源码,另外你若想要获得更多内容教程请关注公众号:不只会拍照的程序猿。