2013-03-01 2 views
20

これはどういう意味ですか?Pythonデバッガはナンプイ配列の値が "***最新のフレーム"であると伝えます

私の関数は、python/cライブラリから2つのnumpy配列を取得します。その関数呼び出しの後、私はバグを見つけるためにデバッガをオンにするので、2行目の配列を見るために行を追加します。

import pdb; pdb.set_trace() 

しかしarrayspdbの1の値に対してのみメッセージ*** Newest frame

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 

答えて

29

コマンドdは、スタックを下るために使用されるcommand for the debuggerです'新しいフレーム'。解析によってこの曖昧性を処理できないようです。

変数dの名前を変更してください。

+4

'p d [0] .shape'または' print d [0] .shape' –

+3

また、デバッガでPythonコードを使用する場合は、感嘆符を使用してください: '!d [0]'。通常、デバッガのcmdlineに入力するものは、Pythonではなく*デバッガ*コマンドです(しかし、デバッガは非常に柔軟です)。 [documentation](http://docs.python.org/2/library/pdb.html)の最後を参照してください。 – Evert

関連する問題