2011-01-31 5 views
5

Ho compilato un semplice programma java con l'opzione gcj-4.4 e -o. L'ho caricato in gdb-7.2 e ho provato a fare un po 'di debug. Ho notato che potevo stampare le variabili nel tipo int ma non potevo stampare un array di int. Ho ricevuto questo messaggio di errore:Come si stampa un array Java in 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[] 

Quindi la mia domanda è come posso stampare un array Java in gdb? Il mio sistema operativo è openSUSE-11.1 x64-86bit. Grazie!

risposta

0

È passato un po 'di tempo da quando ho usato GDB ma p * array-variable @ length dovrebbe funzionare.

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

+0

Questo non funziona per me. Lo hai effettivamente testato? –

+0

Funziona bene per me, questo è uscito dalla doco "p * array-variable @ length \t Stampa i primi # valori dell'array specificato dalla lunghezza.Facile per i puntatori alla memoria allocata dinamicamente." Potrebbe essere necessario impostare la matrice di stampa prima che questo funzioni. – Dimitar

+0

Sembra che nel mio caso mancano i debuginfos. Dopo averli installati, sembra funzionare. –