C数组大小通过gdb

时间:2012-01-10 18:25:45

标签: c gdb

我知道你可以在gdb中打印一个数组,例如

(gdb) p *array@10

是否有gdb命令可以告诉你它的长度,例如键入以下内容的便捷快捷方式:

(gdb) p sizeof(array)/sizeof(int)

如果已在编译时定义了数组,并且您想要检查它

2 个答案:

答案 0 :(得分:17)

您可以使用ptype来了解符号的类型。

int array[5]

(gdb) ptype array
type = int [5]

答案 1 :(得分:12)

如果它实际上被定义为数组,例如

int array[5];

然后是的,您可以使用您所写的内容,但更好更通用的方法是:

(gdb) p sizeof(array)/sizeof(*array)

这不假设数组的类型。

如果变量被定义为指针,则为。