2011-01-31 6 views
5

Я скомпилировал очень простую java-программу с опцией gcj-4.4 и -o. Я загрузил его в gdb-7.2 и попытался выполнить некоторую отладку. Я заметил, что могу печатать переменные в типе int, но я не мог напечатать массив int. Я получил это сообщение об ошибке:Как распечатать массив Java в gdb?

(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[] 

Итак, мой вопрос в том, как я могу напечатать массив Java в gdb? Моя ОС - openSUSE-11.1 x64-86bit. Благодаря!

ответ

0

Его было некоторое время, так как я использовал GDB, но p * array-variable @ length должен работать.

http://www.yolinux.com/TUTORIALS/GDB-Commands.html

+0

Это не работает для меня. Вы действительно протестировали его? –

+0

Работает отлично для меня, это прямо из doco «p * array-variable @ length \t Печать первых # значений массива, заданных длиной. Хорошо для указателей на динамическую выделенную память». Возможно, вам понадобится установить массив печати, прежде чем это сработает. – Dimitar

+0

Похоже, что в моем случае недостатком debuginfos был преступник. После их установки он работает. –