I know you can print an array in gdb , e.g.
(gdb) p *array@10
Is there a gdb command that can tell you its length, e.g. a handy shortcut to typing something like:
(gdb) p sizeof(array)/sizeof(int)
In the case where the array has been defined at compile time and you want to check it
You may use ptype
to know the type of a symbol.
For int array[5]
,
(gdb) ptype array
type = int [5]
If it's actually defined as an array, e.g.
int array[5];
Then yes, you can use what you wrote, although a better and more general way is:
(gdb) p sizeof(array)/sizeof(*array)
This doesn't assume the type of the array.
If the variable is defined as a pointer, then no.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With