Vxworks6.9的在线gdb调试(仿真内核和板载内核)

创作目的:归纳总结常用的技巧和方法,方便自己后续查阅重点节省时间。

一、仿真内核的gdb调试

1、新建DKM工程,选择sim的BSP包
2、DKM工程中添加c文件并编辑入口函数
3、新建vxworks远端系统
4、显示系统起来之后进行加载.out
5、选择Debug模式
6、选择自己写好的入口函数
7、设置相应断点后,点击下一步,遇到函数可以选择进入函数(stepover在函数内部断点调试),也可以退出函数(stepreturn),可以看到在shell界面出现了相应的打印。
8、attach调试相关任务

至此仿真内核的gdb调试完成基础搭建,后续可以自行结合vxworks中shell调试和gdb调试定位问题,gdb调试大幅度优化了解决问题的方法和手段,自己在项目开发阶段还是会使用sim核进行逻辑验证,本质上跑的应用程序没有什么区别,与硬件资源挂钩的部分,可能不便验证。

任务stop可以直接sp激活,接着调试,结合shell调试指令一起。

二、板载内核的gdb调试

与sim仿真内核极为相似,需要注意的是新建连接为Target server,

记得配置网卡ip(.50)和选择vxworks内核所在目录

此时并不需要在板卡的文件系统内部进行.out文件的下载,和启动文件的编辑,只需要在workbench集成环境下去加载.out到remote target即可,其余的与sim仿真核一样Debug方式也无明显的区别。

三、板级调试总结和注意事项:

1、任务挂掉或者触发异常记得设置开关量,用于查看和定位程序中的异常,来进行调试,删除or重启任务以及其他的调试指令。

2、可以在写应用程序的时候添加异常处理功能,重启任务or加入WTD,避免多次的重启板卡,使用d的功能级二行lookup查找验证。

3、任务调度验证条件可以固定,设置手动触发或者定时触发任务,不让任务一直pend,这样验证不了交互逻辑。

4、实际项目开发中除了DKM、RTP工程外额外搭建Sim的DKM工程,进行逻辑验证,使用close project功能可以避免多个c文件的干扰。也可以直接工程界面修改生成的.out名称,避免文件系统中启动文件的不固定。

5、实际中diab编译器和gnu编译器的配置也需要留意

6、如遇问题优先help手册

相关推荐
手可摘星辰的少年8 分钟前
二级指针到底在改什么?——从C语言基础到Linux内核文件系统注册机制
linux
wanQQ17 分钟前
在 KDE 中将 Nemo 设为默认文件管理器后,浏览器仍调用 Dolphin 的解决方案
linux
认真的薛薛23 分钟前
Linux基础:GitOps发布流程
java·linux·运维
dislike_shuati42 分钟前
Ubuntu18多用户情况一用户桌面卡死,鼠标能动但点击没用——解决办法
linux·运维·服务器
Yeats_Liao1 小时前
物联网接入层技术剖析(四):当epoll遇见MQTT
java·linux·服务器·网络·物联网·架构
zzzyyy5381 小时前
利用AI整理进程池创建的思路和细节
linux
zandy10112 小时前
2026 主流技术栈:hermes agent多环境安装配置:Windows/Mac/Linux
linux·windows·macos
s_w.h2 小时前
【 linux 】理解进程状态
linux·运维·服务器
Fcy6482 小时前
Linux下 动、静态库的制作、使用与原理和ELF文件解析
linux·elf·动、静态库
身如柳絮随风扬3 小时前
CentOS 7 搭建 MySQL 主从复制集群:从零到生产级高可用
linux·mysql·centos