vxworks任务+系统调试详解

本文详细介绍了VxWorks调试过程中的两种模式:任务模式与系统模式,包括各自的特点、使用场景及操作方法。重点阐述了如何在任务模式下设置断点并调试单个任务,以及在系统模式下调试整个系统及其内部任务和中断服务代码(ISR),并解释了模式间的转换机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在调多任务的时候,老是被抢占所困扰,所有人在调试时也要注重,假如其他任务将调试任务抢占 ,你设的断点就会没响应一直running下去。下面是调试办法:
VxWorks具有两种调试模式 开发工具对目标机运用代 码的调试办法有两种模式。一种是系统模式。对整个运用系统进行调试,可在系统中设置断点等。调试中运用系统必须停下来;另一种是任务模式(即动态调试)。调试是针对系统中某一任务模块进行的,整个系统仍可保留在工作状态。同样在对整个系统调试时,也可一个模块一个模块进行,调好一个运行一个,这样对加速调试速度,方便系统调试提供了很大方便。

任务模式调试
                
在任务调试模式下,在一个集成环境中,在一个任务中调试,在另一个任务中设置断点,设置的断点不起作用。这是由 于一个调试器只能处理一个TCB(任务控制块),每个任务都有一个TCB,因此一个调试器只能调试一个任务,要调试几个任务就要启动几个调试器。一个集成环境只能启动一个调试器,所以要调试几个任务就要启动几个集成环境。另外,需要在被调试的任务的待调试的第一条语句前加入taskSuspend(0)语句,挂起该任务,否则任务就可能会在调试前被执行。 
在任务调试模式下,在一个任务中调试,当任务运行到此断点时,只有此任务停止,而不是整个系统。
特点:  只能调试任务,不可以调试ISR; 
  缺省情况下,断点只影响 attached Task; 
  当 attached 任务停止时,系统中的其它任务+ISRs继续运行; 
  +WDB代理的通讯方式是中断驱动方式。

系统模式调试
                
系统模式有时也称为外部模式(External Mode),在此模式下,target server 运行在VxWorks系统之外。 
系统调试模式下,答应开发者挂起整个VxWorks操作系统。系统调试模式下一个值得注重的运用是调试ISRS,由 于ISR运行在任务上下文之外,并且对缺省任务模式的调试工具不可见。 
在系统调试模式下,可以同时调试多个任务、中断服务代 码(ISR),调试影响整个系统。 
Tornado1.0集成环境下,在系统模式下进行代 码调试,主机+目标机之间必须运用运用串口通信。Tornado2.0集成环境提供了通过网口进行系统模式调试的功能(END 功能)。系统缺省运用运用网口通信,假如需要运用运用串口通信,需要修改文件C: \ Tornado \ target\config 
系统调试模式下,run命令不可用,可以运用运用WindSh调试。 
特点: 可以调试任务、ISRs 以+核前(pre-kernel)的VxWorks执行; 
断点使整个系统停止; 
当系统停止时,外部WDB代理运行在中断锁定方式,在此期间,+WDB代 
理的通讯方式为 Polled 模式; 
通过以太网调试时,为了支持Polled模式通讯 需运用运用END网卡。(注:Tornado 
串行驱动也支持Polled模式+系统级调试。 
注:系统模式+任务模式的互换: 
点击debug->attach, 从任务模式到系统模式; 
点击debug->detach, 从系统模式到任务模式 
在debug-command-line下,模式转换的命令为(gdb)attach system (gdb)detach 
1 TORNADO的调试工具 4 1.1 WINDSHELL 4 1.1.1 简介 4 1.1.2 功能键 5 1.1.3 特殊控制符 6 1.1.4 计算功能 6 1.1.5 环境变量 6 1.1.6 内置指令 6 1.2 BROWSE 17 1.2.1 内存查看 17 1.2.2 模块信息 17 1.2.3 堆栈使用率 18 1.2.4 CPU占有率 18 1.2.5 任务信息 19 1.2.6 中断向量表 19 1.2.7 实体查看 20 1.3 DEBUGGER 21 1.3.1 条件断点 21 1.3.2 代码显示 21 1.4 TARGET SERVER 21 1.4.1 使用串口调试 21 1.4.2 重定向 21 1.5 WINDVIEW 22 1.5.1 记录层次 22 1.5.2 记录数据存储方式 22 1.5.3 传送方式 22 1.5.4 数据分析 23 1.6 TRIGGER 23 1.7 TELNET 24 1.8 调试模式 24 1.8.1 任务调试模式下的多任务调试 26 1.8.2 系统调试模式下多任务调试: 27 1.8.3 中断服务程序的调试 28 2 V2支撑的调试手段 28 2.1 各模块提供的函数 28 2.2 如何查看ERROR.LOG文件 29 2.2.1 定位到具体的出错行 31 3 V3支撑的调试手段 31 1.1. 进程调试 31 1.2. 查看所有进程信息:OSS_DBGGETALLUSEPCBINFO 31 1.3. 查看当前运行的进程信息 31 1.3.1. 进程断点设置:b 31 1.3.2. 当前进程运行信息:OSS_DbgGetCurPCBInfo 32 1.3.3. 当前进程的消息信息:OSS_DbgGetCurMsgInfo 32 1.3.4. 进程断点取消:bd 32 1.3.5. 恢复进程运行:tr 32 1.4. 内存观察 32 1.4.1. 消息队列堆积、阻塞观察:tw 32 1.4.2. 任务消息队列观察:OSS_DbgShowQueueCtl 33 1.4.3. 任务UB使用观察:OSS_DbgShowTaskUB 33 1.4.4. 进程使用UB情况:OSS_DbgShowProcUBInfo 34 1.4.5. UB的配置和当前状态:OSS_DbgMemUbUsePrn/ OSS_DbgShowUbPool 34 1.5. 通信和定时器状态观察 35 1.5.1. 通信状态显示OSS_DbgShowComm 35 1.5.2. 测试板间通信是否正常:OSS_DbgRudpPing 35 1.5.3. 单板上定时器的使用信息:OSS_DbgGetTimerInfo 36 1.5.4. 单板进程使用定时器的信息:OSS_DbgGetTimerInfoOfProc 36 1.6. 杂项观察 36 1.6.1. 异常发生后信息观察:OSS_DbgShowExcInfo 36 1.6.2. 堆栈使用率/运行时间统计:zte 36 1.6.3. 进程最近打印内容观察:ztecall/ ztemsg 36 1.6.4. 进程最近打印的1K内容和打印时间:zteprint 37
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值