我该如何在gdb中打印Java数组?

6

我用gcj-4.4和-o选项编译了一个非常简单的Java程序。我在gdb-7.2中加载它并尝试进行一些调试。我注意到我可以打印int类型的变量,但无法打印int数组。我收到了这个错误消息:

(gdb) p orderFinish[0]
cannot find java.lang.Object
(gdb) p (int)orderFinish
$8 = -136261440
(gdb) p orderFinish[3]
cannot find java.lang.Object
(gdb) p in
$9 = 1
(gdb) whatis orderFinish 
type = int[]

所以我的问题是如何在gdb中打印Java数组?我的操作系统是openSUSE-11.1 x64-86位。谢谢!
1个回答

1

对我来说工作得很好,这直接来自文档:“p *array-variable@length 打印长度为 length 指定的数组的前 # 个值。对于指向动态分配内存的指针非常有用。” 在此之前,您可能需要开启打印数组选项才能正常工作。 - Dimitar
看起来在我的情况下,缺少调试信息是罪魁祸首。安装它们后,似乎可以正常工作了。 - Tim Landscheidt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接