文章目录
- Trace32 查看变量值
- Var.view 查看变量值
- Var.view 查看数据类型的大小
- Var.view 根据变量地址查看变量值
- 地址类型判断
Trace32 查看变量值
- 步骤1
- 步骤2
- 步骤3:
- 步骤4:
查看结构体变量 str_t32 的值
struct t32_str {
uint32_t t32_val;
uint32_t t32_id;
char* t32_name;
};
static struct t32_str str_t32;
Var.view 查看变量值
如果知道变量地址的话也可以直接在命令行读取变量值,变量的地址可以在map 文件中找到:
Var.view 查看数据类型的大小
struct t32_str {
uint32_t t32_val;
uint32_t t32_id;
char* t32_name;
};
static struct t32_str str_t32;
static uint32_t g_t32;
命令:Var.view sizeof(struct t32_str)
或者命令:Var.view sizeof(tstr_t32)
Var.view 根据变量地址查看变量值
从符号表中找到变量的地址:
128 00000000 trace32.c
129 20038754 str_t32
130 20038760 g_t32
查看结构图变量 str_t32
中各个成员的值:
查看结构图变量 g_t32
中各个成员的值:
地址类型判断
例如我们已经知道一个符号(可能是变量或者函数)的地址,怎么确定这个地址是一个变量还是一个函数呢?如果是变量的话,变量名是啥?变量定义的位置在哪?如果是函数,函数名是啥?函数定义的位置又在哪呢?
例如我们已经知道了一个符号的地址为 0x20038760
如下,通过 View -> Dump查看这个地址的内存信息,在地址的内容上右键 -> View Info:
函数地址类型判断:
已知函数drv_t32_init
在map文件中的地址为0x20010c80
,我们在trace32 中看看该地址的类型内容:
20010c80 drv_t32_init