ptype can be used when you know your structure name, but is there anyway to list all structure definition rather than looking at source code?
print sizeof() can be used to print the structure size, but can we print all the structure size without knowing their name in advance?
EDITED:
gdb uses the struct 'tag' name for displaying details about the struct (field definitions, field values, sizeof, etc) (and a named struct definition is depreciated for defining structs)
so define the struct as
struct struct_t
{
int field1;
...
};
then gdb can find/display all the details of the struct within the code
here is an example
#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
Lets say the resulting executable is named untitled
Then run gdb
as in:
gdb untitled
br main
r
then show the contents of the struct:
p structInstance
which will output the following
$1 = {alpha = -8352, brovo = 32767}
Note that the p
command was before the struct was initialized.
s
s
p structInstance
which will output:
$2 = {alpha = 1, brovo = 2}