PRINTSIZEOF()可用于打印结构大小,但是我们可以打印所有结构大小而不提前知道它们的名称吗?
我想要一种在结构大小变化时登录的方法,尤其是在体系结构之间。 我想从GCC构建时从GCC中输出它,因此它与正在构建的内容完全相对应。
已编辑:
GDB使用struct'tag'名称以显示有关结构的详细信息 (字段定义,字段值,大小等) (并且命名的结构定义因定义结构而被贬低)
struct struct_t
{
int field1;
...
};
然后GDB可以在代码
中找到/显示结构的所有详细信息这里是一个例子
#include <stdio.h>
struct myStruct
{
int alpha;
int brovo;
};
int main ( void )
{
struct myStruct structInstance;
structInstance.alpha = 1;
structInstance.brovo = 2;
printf( "%d %d\n", structInstance.alpha, structInstance.brovo );
} // end function: main
LLET说,由此产生的可执行文件命名为
untitled
然后运行
gdb
如下:
gdb untitled
br main
r
然后显示结构的内容:
p structInstance
将输出以下
$1 = {alpha = -8352, brovo = 32767}
注意
p
命令是在结构初始化之前的。
s
s
p structInstance
将输出:
$2 = {alpha = 1, brovo = 2}