Displaying struct values in GDB

rwallace picture rwallace · Sep 27, 2012 · Viewed 44.4k times · Source

In GDB, given a variable that points to a struct, print will display the raw pointer value and x will display the raw bytes pointed to. Is there any way to display the data pointed to as that struct, i.e. a list of fields and their values?

Answer

Yarneo picture Yarneo · Sep 27, 2012
print *variable

If you do that it will display the value of that variable in GDB.
You also have an option to display the struct in an indentation and new line:

$1 = {
next = 0x0,
flags = {
sweet = 1,
sour = 1
},
meat = 0x54 "Pork"
}

For that you need to set the pretty print:

set print pretty on

If you want to print an array of values you do like so:

print *array@len