問題タブ [ipdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pdb / ipdb でブレークポイントをスキップすることはできますか?
将来のすべてのブレークポイントをスキップして、そこにないかのように実行を終了するように pdb または ipdb に指示する方法はありますか?
python-3.x - Pythonデバッガーがコルーチンにステップインしていませんか?
以下の例では:
に足を踏み入れようとしている
loop.create_datagram_endpoint( EchoServerProtocol, local_addr=('127.0.0.1', 9999))
内部でどのように動作するかを理解する。ただし、コルーチンにステップインしようとすると、デバッガーn
はs
.
この動作は PyCharm (2016 2.3 Community) IDE で発生します。
ここで終了し、コードをさらにステップ実行できると思います。
python - 「import ipdb」によるデバッグセッションの準備中に「名前エラー: 名前 'get_ipython' が定義されていません」
PIP 8.1.2 を使用して、Win10 の Python 3.3.5 32 ビットに ipdb (IPython 対応の pdb) をインストールして使用しようとしています。エラーなしでWindows cmdにPIP経由でインストールしました(個別にインストールする必要がありました):
「テスト」文字列ipdb_test.pyを出力する前にデバッガーで停止することを期待して、簡単なテスト スクリプトを作成しました。
IDLE エディターから実行すると、次の例外が表示されます。
python - 変数によって隠された ipdb コマンド
このサンプル スクリプトを ipdb でデバッグしようとすると、次のようになります。
Python 変数が pdb コマンドを覆い隠しているため、3 行目を実行できません。
両方のコマンド (n/next) が認識されなくなった場合、コードの実行をさらに進めるにはどうすればよいですか? (s/step も変数によって隠されていると仮定しましょう)。
私がこれまでに試したこと:
- ipdb の代わりに ipdb3 を使用 - 同じ問題 (私の場合、ipdb が ipdb3 にリンクされているためかもしれません:))
- pdb を使用 - 動作します! n/next コマンドは、python 変数を表示する代わりに次の行に移動します。ipdb の何が問題になっていますか?
!!n
問題を軽減します - の ipdb バージョンを実行しnext
ます。私がalias n !!n
それを実行するために繰り返し使用することができればEnter
、問題は解決するでしょう. ただし、エイリアスを実行する代わりにEnter
変数を表示するだけです(これはに解決されるはずです)n
n
!!n
私は使用しています
- マンジャロ Linux 16.10
- Python 3.5.2 :: アナコンダ 4.2.0 (64 ビット)
- ipdb (0.10.1)
- ipython (5.1.0)
- ipython-genutils (0.1.0)
- ~/.pdbrc ファイルがありません
編集
この問題は次の方法で修正されました: https://github.com/ipython/ipython/pull/10050
python - IPython (Jupyter) ノートブックでの対話型デバッグ
Python コードをデバッグするために、ipdb
ライブラリを使用し、set_trace()
コマンドを使用してブレーク ポイントを配置します。コードがそこに到達すると、ipdb>
プロンプト付きの対話型シェルが表示され、タブのオートコンプリートでローカル変数を調べることができます。
ただし、IPython (Jupyter) ノートブックではipdb.set_trace()
機能しません。この投稿で示唆されているように:
ipdb を使用して 1 つのセル (jupyter または Ipython) で Python コードをデバッグする
インタラクティブなデバッグには、次の代替手段を使用します。
これによりipdb>
プロンプトが表示されますが、タブのオートコンプリートは利用できません。ipythonノートブックを使用して対話型デバッグのオートコンプリートを有効にする方法はありますか? これは、長い名前の変数がたくさんある場合に特に便利です。
python - Dockerコンテナでipdbコンソールに入力できません
docker-compose を使用して docker コンテナーをビルドし、次の--service-ports
ようにフラグを付けてコンテナーを実行しています。
ipdb を使用してコンテナー内の python スクリプト内で ipdb を呼び出そうとすると、import ipdb; ipdb.set_trace()
初期化されますが、コンソールに何も入力できません。また、端末セッションを停止するには、端末セッションを手動で再起動する必要があります (CTRL+C
などCTRL+D
は何もしません)。スクロールバックしてフォーカス/フォーカスを外すと、カーソルの外観も変わるため、端末がフリーズしたわけではありません。
これは私の用語がどのように見えるかです(私は使用しますiTerm
):
これを修正する方法はありますか?