2011-01-31 13 views
5

Recopilé un programa java muy simple con las opciones gcj-4.4 y -o. Lo cargué en gdb-7.2 e intenté depurarlo. Noté que podía imprimir las variables en tipo int pero no podía imprimir una matriz de int. Recibí este mensaje de error:¿Cómo imprimo una matriz Java en 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[] 

Así que mi pregunta es ¿cómo puedo imprimir una matriz de Java en gdb? Mi sistema operativo es openSUSE-11.1 x64-86bit. ¡Gracias!

Respuesta

0

Ha pasado un tiempo desde que usé GDB pero p * array-variable @ length debería funcionar.

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

+0

Esto no funciona para mí. ¿Lo has probado realmente? –

+0

Funciona bien para mí, esto está directamente del doco "p * array-variable @ length \t Imprime los primeros # valores de la matriz especificada por la longitud. Bueno para los punteros a la memoria asignada dinámicamente." Es posible que deba configurar la matriz de impresión antes de que esto funcione. – Dimitar

+0

Parece que en mi caso faltaban los debuginfos como culpables. Después de instalarlos, parece funcionar. –

Cuestiones relacionadas