关于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的话,就没办法了
有没有高手帮忙啊