我怎么告诉gdb我的零长度数组有多长?

时间:2011-02-13 00:36:28

标签: c xcode debugging gcc gdb

略带反复的标题! Xcode答案的奖励积分,但这是一个gdb问题。

如果我有一个标准的,静态大小的数组gdb将打印其所有元素[和Xcode将让我浏览它]但如果我有zero length array,它不会,因为它不知道。显然我可以逐个打印数组索引,但我想要整个转储。

如何告诉gdb我为数组分配了多少空间以允许它打印数组(或允许Xcode查看数组)。它甚至可能吗?

3 个答案:

答案 0 :(得分:7)

http://www.chemie.fu-berlin.de/chemnet/use/info/gdb/gdb_9.html#SEC54

讨论“人工阵列”

  

在内存中打印出几个相同类型的连续对象通常很有用; ...

答案 1 :(得分:2)

如果s->a的类型为char [0](这是gcc扩展名),但您知道它实际上是100的数组,则可以使用gdb中的强制转换来打印它:< / p>

(gdb) print *(char (*)[100])&s->a

答案 2 :(得分:2)

请参阅10.4 Artificial Arrays

(gdb) p *argv@argc