3

emacs (コードのテキスト表示のマーカーで現在の行を追跡する) を介して pdb を実行するのではなく、生の pdb プログラムから python をデバッグして実験しています。pdb のリスト コマンド l が数行のコードしか表示しないのは少し面倒です。むしろ、現在の関数の現在の行までのすべてのコードを端末に入力したいと思います。

行番号が l 50,100 (100 は現在の行) と入力されていることを確認することで、これを手動で実行できることはわかっていますが、これには時間がかかるため、これを自動的に機能するように設定したいと考えています。

これを行うためにpdbコマンドを定義する方法があるのだろうか? (1)現在の行の番号Nにアクセスする必要があると思います。(2) "l N-50, N" を実行します。私はたくさん検索しましたが、以前にこれを行った人を見つけることができません。おそらく、pdb モジュール自体の内部にアクセスして行番号を取得する方法はありますか?

(または、list を 1 回呼び出し、出力を解析して現在の行を抽出し、新しい list コマンドを実行する何かを書くのが回り道になるでしょう。誰かが既にこれを行っているのだろうか? これは、IDE が現在の行を取得する方法ですか? pdb からの情報ですか、それともその内部を使用しているのだろうか?)

4

1 に答える 1

1

おそらく PDB クラスを拡張できますが、拡張インターフェースはあまり詳しく文書化されていません。

ユースケースを正しく理解していれば、代わりにpdb++とそのスティッキー機能を使用することをお勧めします。

于 2012-08-23T10:20:37.687 に答える