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?
-
May be this helps stackoverflow.com/questions/7466511/…fkl– fkl2012-09-27 09:40:13 +00:00Commented Sep 27, 2012 at 9:40
Add a comment
|
1 Answer
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 with indentation and new lines:
$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:
print *array@len
4 Comments
fkl
Yeah it prints the raw data but that still does not recognize the values as a struct. If i got it right, the question was about recognizing as a struct (i.e. recognize fields in the struct) which i don't think is possible
fkl
Your initial post (before edit) was only about print *array@len which can only print members of an array of same type. chemie.fu-berlin.de/chemnet/use/info/gdb/gdb_9.html. However, the latter edit to the answer might be a solution. Thanks for adding that to my knowledge
Ð..
Is it possible to print the struct with the typenames of each member as well?
Łukasz Szymankiewicz
So many years without knowing that cool feature