1. RealView Debugger命令体系概述
RealView Debugger作为ARM架构下的专业调试工具,其命令集设计体现了嵌入式开发的特殊需求。与通用调试器不同,它需要同时处理软件逻辑和硬件交互,这种双重特性在其命令设计中表现得尤为明显。
调试命令主要分为以下几类:
- 内存操作类(如COPY、COMPARE)
- 断点管理类(如BREAKEXECUTION、DISABLEBREAK)
- 程序控制类(如RUN、HALT)
- 符号查看类(如BROWSE、PRINTSYMBOLS)
- 系统控制类(如CONNECT、CANCEL)
在嵌入式调试场景中,这些命令往往需要配合使用。比如调试一个硬件初始化函数时,可能需要先用BREAKEXECUTION设置断点,通过CANCEL中断长时间运行的操作,再用BROWSE查看相关硬件寄存器结构体的继承关系。
提示:RealView Debugger命令对大小写不敏感,但建议保持统一风格以提高可读性。命令参数中的十六进制数通常以0x前缀表示。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. BROWSE命令详解
2.1 命令语法与基本功能
BROWSE命令是RealView Debugger中用于C++类结构分析的核心命令,其完整语法为:
code复制BROWSE [symbol]
其中symbol参数可以接受两种形式的输入:
- 已定义的类/结构体变量名
- 类/结构体的类型名称
该命令会输出指定类的继承关系图,包含三个关键信息:
- 父类列表(parents)
- 当前类名(居中显示)
- 子类列表(children)
2.2 典型应用场景
场景1:查看未知对象的类继承关系
当调试过程中遇到基类指针指向派生类对象时,可以先用PRINT命令获取对象地址,再使用BROWSE分析其类结构:
code复制print pObj
browse *(MyNamespace::MyClass*)0x20001000
场景2:验证模板实例化结果
在调试模板代码时,BROWSE可以直观显示模板实例化后的实际类型:
code复制template <typename T> class Buffer {...};
Buffer<int> intBuf;
browse intBuf // 将显示B
