2013-03-01 11 views
20

Che cosa significa?Il debugger Python mi dice che il valore di Numpy array è "*** Fotogramma più recente"

La mia funzione ottiene due array numpy da una libreria python/c. Dopo quella chiamata di funzione accendo il debugger per trovare un bug, quindi aggiungo la linea per guardare i due array numpy.

import pdb; pdb.set_trace() 

Ma per i valori di uno dei arrayspdb restituisce solo il messaggio *** Newest frame

uscita PDB:

(Pdb) type(d) 
<type 'numpy.ndarray'> 
(Pdb) type(f) 
<type 'numpy.ndarray'> 
(Pdb) f.shape 
(3, 3, 17856) 
(Pdb) d[0].shape 
*** Newest frame 
(Pdb) d[0] 
*** Newest frame 

risposta

29

Il comando d è la command for the debugger usato per andare in fondo alla pila ad una 'frame più recente'. Sembra che l'analisi non possa gestire questa disambiglianza.

Provare a rinominare la variabile d.

+4

oppure fare 'p d [0] .shape' o' print d [0] .shape' –

+3

Oppure utilizzare un punto esclamativo se si desidera utilizzare il codice Python nel debugger: '! D [0]'. Normalmente, tutto ciò che inserisci nella cmdline del debugger è considerato un comando * debugger *, non Python (ma il debugger è abbastanza flessibile). Vedi vicino alla fine della [documentazione] (http://docs.python.org/2/library/pdb.html). – Evert

Problemi correlati