关于gdb查看结构体出现的问题
#include <stdio.h>
struct NewStruct
{
unsigned char a;
unsigned char b;
};
int main()
{
char tmp[2];
char *tmp_p = tmp;
((struct NewStruct *)tmp_p)->a = 1;
printf("a = %d\n", ((struct NewStruct *)tmp_p)->a);
return 1;
}
运行到 printf("a = %d\n", ((struct NewStruct *)tmp_p)->a); 这一行时
用 p ((struct NewStruct *)tmp_p)->a
出来的错误是
no struct type named NewStruct
请注意程序是运行成功的,只是在gdb进行调试的时候看不到具体的值。
如果是以字节一个一个来看的话是可以看到,
例如
p *tmp
p *(tmp + 1)
这样两个值都能看到而且还可以更改,
但是如果结构体里面是bit的话,就没办法了
有没有高手帮忙啊
struct NewStruct
{
unsigned char a;
unsigned char b;
};
int main()
{
char tmp[2];
char *tmp_p = tmp;
((struct NewStruct *)tmp_p)->a = 1;
printf("a = %d\n", ((struct NewStruct *)tmp_p)->a);
return 1;
}
运行到 printf("a = %d\n", ((struct NewStruct *)tmp_p)->a); 这一行时
用 p ((struct NewStruct *)tmp_p)->a
出来的错误是
no struct type named NewStruct
请注意程序是运行成功的,只是在gdb进行调试的时候看不到具体的值。
如果是以字节一个一个来看的话是可以看到,
例如
p *tmp
p *(tmp + 1)
这样两个值都能看到而且还可以更改,
但是如果结构体里面是bit的话,就没办法了
有没有高手帮忙啊
...全文
相关推荐
gdb调试工具
GDB还支持条件断点,只有当指定条件满足时才会触发。4. **数据查看**:GDB可以查看全局变量、局部变量、数组和结构体的值,甚至可以观察内存块的内容。此外,可以使用watch命令监控变量的变化。
gdb常用命令gdb常用命令
用途**: 分别查看变量的类型和结构体的定义。
gdb用户手册英文原版
**数据查看**:gdb提供了查看和修改程序运行时内存和变量值的能力,包括查看局部变量、全局变量、静态变量以及结构体和数组的内容。6.
gdb培训资料
- **数据结构查看**:利用`ptype`查看类型定义,`display`查看复杂结构体变量。
GDB完全中文手册.rar_gdb_gdb 手册
**数据查看**:介绍如何查看和修改内存、变量、结构体、数组等内容,以及如何使用表达式计算和显示值。5.


