如何列出所有结构定义并获取GDB中的结构大小?

问题描述 投票:0回答:2
当您知道结构名称时,可以使用Patpe,但是无论如何是否可以列出所有结构定义而不是查看源代码?

PRINTSIZEOF()可用于打印结构大小,但是我们可以打印所有结构大小而不提前知道它们的名称吗?

c gdb structure sizeof
2个回答
0
投票
这正是我想要的。

我想要一种在结构大小变化时登录的方法,尤其是在体系结构之间。 我想从GCC构建时从GCC中输出它,因此它与正在构建的内容完全相对应。

已编辑:

GDB使用struct'tag'名称以显示有关结构的详细信息 (字段定义,字段值,大小等) (并且命名的结构定义因定义结构而被贬低)

-1
投票

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}


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.