web-dev-qa-db-ja.com

python PDBに現在の行を一覧表示するにはどうすればよいですか?

Perlデバッガーで、現在の行から離れるコードのセグメントを繰り返しリストする場合は、コマンド.(ドット)を入力して現在の行に戻ることができます。

python PDBモジュールを使用して同等のものを見つけることができませんでした。現在の行から離れてlist自分でそれをもう一度表示したい場合は、現在実行されていた行番号を覚えておくか(私にとってはありそうもない)、ステートメントを実行する必要があります(多くの場合望ましくありません)。

私は何かが足りないのですか?

41
zenzic

遅くなりましたが、うまくいけばまだ役に立ちます。次のエイリアスを作成します。

alias ll u;;d;;l

次に、llと入力するたびに、pdbは現在の位置から一覧表示します。これは、スタックを上に移動してからスタックを下に移動することで機能します。これにより、「l」がリセットされ、現在の位置から表示されます。 (スタックトレースの最上位にいる場合、これは機能しません。)

ヒント:永続的なエイリアス

エイリアスを永続的にするには、ユーザーのホームディレクトリ(.pdbrc)の~/.pdbrc-ファイルに行を追加します。これは、pdbとipdbの両方で機能します。

39
Ghopper21

Python 3.2以降では、list .を使用してリストの場所をリセットできます。

出典:Pythonバグトラッカー#4179

25
CoupleWavyLines

ええと、Perlデバッガーには.に似たコマンドはないと思いますが、where/wコマンドを使用して常に現在の行を見つけることができます。これにより、現在の(コンテキスト)フレームと最新のフレームの両方が表示されます。これは、デバッガーがトリガーされた場所であると私は信じています。

19
kojiro

この質問は7歳になりました。

この問題に興味がある人がいる場合は、ドットを使用してください

(pdb) l .

これで動作します。

14
plhn

たぶん、ipythonのラッパーである ipdb または pdb を試してみてください。

ipdbは、番号付きの行、色付きの構文、タブ補完などを提供します。

8
hobbes3