#PythonコンソールデバッグモードIPDB

5068 ワード

IPDB
この間これに触れたばかりで、DEBUGIDEのレベルにとどまっていました...こんな風に遊ぶことができたのか...IPDBとは何ですか.IPDB(Ipython Debugger)は、GDBと同様に、Ipythonを統合したPythonコードコマンドラインデバッグツールであり、PDBのアップグレード版と見なすことができるPDBとは何ですか?Python Debugger
推荐直接使用:IPDB结局は强化版です:Tab补完を支持します;文法のハイライトをサポートします.サポートiPython基本的な使い方pdbを有効にするには、2つの方法があります.1つは、コードにpdbモジュールをインポートすることです.1つはコマンドラインの有効化です.
怠け者はもちろん2つ目(コードを変更する必要はありません):python3 -m ipdb myscript.pyデフォルトは行単位で実行され、次の行は またはnで実行されます.
一般的なコマンド:
  • hクイックヘルプ文書
  • lより多くのソースコード
  • を示す
  • b 10第10行にブレークポイント
  • を設ける.
  • cは、次の設定のブレークポイント
  • に入る.
  • p印刷変数値
  • s関数
  • に入る
  • rジャンプ関数
  • q脱退
  • ipdb> h
    
    Documented commands (type help ):
    ========================================
    EOF    cl         disable  interact  next    psource  rv         unt
    a      clear      display  j         p       q        s          until
    alias  commands   down     jump      pdef    quit     source     up
    args   condition  enable   l         pdoc    r        step       w
    b      cont       exit     list      pfile   restart  tbreak     whatis
    break  continue   h        ll        pinfo   return   u          where
    bt     d          help     longlist  pinfo2  retval   unalias
    c      debug      ignore   n         pp      run      undisplay
    
    Miscellaneous help topics:
    ==========================
    exec  pdb
    
    ipdb> h c
    c(ont(inue))
            Continue execution, only stop when a breakpoint is encountered.
    
    

    PDBコマンドテーブル
    一般的に使われるコマンドはアルファベットの略語で、完成したコマンドを使ってもいいです.
    整理されたコマンドテーブル(Python 3):参考:pdb-document
  • h(elp)-デフォルトではすべてのコマンドリストが表示されます!!!h bブレークポイントを設定するドキュメント!!!これができて、その他のは簡単です
  • w(here)-印刷スタック情報
  • .
  • d(own) - Move the current frame count (default one) levels down in the stack trace (to a newer frame)
  • u(p) - Move the current frame count (default one) levels up in the stack trace (to an older frame)
  • b(reak) [([filename:]lineno | function) [, condition]]-ブレークポイント
  • パラメータなしですべてのブレークポイント情報をリストする
  • 行番号-指定した行にブレークポイント
  • を設定します.
  • 関数名-指定した関数にブレークポイント
  • を設定します.
  • ファイル名:行番号-指定したファイル名の行にブレークポイントを設定します(このファイルはまだ人を引き付けていない可能性があります)
  • 2 2 2番目のパラメータがある場合、条件結果がTrueの場合、ブレークポイント
  • が設定.
  • tbreak [([filename:]lineno | function) [, condition]]-一時ブレークポイント
  • パラメータはbreakと同じです.1回目のブレークポイントヒット後に
  • を自動的に削除
  • cl(ear) [filename:lineno | bpnumber [bpnumber ...]]-ブレークポイントのクリア
  • パラメータを持たない場合は、すべてのブレークポイント(事前確認を求める)
  • をクリアします.
  • ファイル:行番号-指定されたファイルに対応する行番号のブレークポイント
  • をクリーンアップします.
  • ブレークポイント1ブレークポイント2...-指定した番号のブレークポイントをクリーンアップします.ブレークポイント番号リストは、bを使用して
  • を表示できます.
  • disable [bpnumber [bpnumber ...]]-削除ではなく、ブレークポイントを無効にします.後で
  • を再開できます
  • enable [bpnumber [bpnumber ...]]-無効なブレークポイント
  • を有効にします.
  • ignore bpnumber [count]-ブレークポイントはブレークポイントの回数を無視し、回数が0になるまでブレークポイントが有効になります.効果は何回かのdisable後のenableと同じ
  • であるべきである.
  • condition bpnumber [condition]-指定番号へのブレークポイント設定条件
  • .
    *           -            
    *          -       ,       `True`  ,       
    
  • commands [bpnumber]-ブレークポイント設定コマンドリスト
  • *           ,       `commands`       `end`   
    *              ,          
    
  • s(tep)-現在の行に対応する関数に入る
  • n(ext)-次の
  • unt(il) [lineno]-ある行まで正常に実行されます.一時的なブレークポイントに似ていますが、何か違いがありますか?
  • r(eturn)-現在のメソッド関数
  • からジャンプ
  • c(ont(inue))-ブレークポイント
  • に遭遇したことを知って実行を続行します.
  • j(ump) lineno-ある行に直接ジャンプして実行し、途中でスキップしたコードは実行しません!!!
  • l(ist) [first[, last]]-現在の行に隣接するソースコードを示す.l 10,20は、10行目から20行目のコード
  • を示す.
  • ll | longlist-このファイルのすべてのコード
  • を示します.
  • a(rgs)-現在の関数のパラメータのリストを印刷し、パラメータの値
  • を印刷します.
  • p expression-現在の式の値を印刷します.例えば変数等
  • pp expression-フォーマット付き印刷式の値
  • whatis expression-印刷式のタイプ
  • source expression-式のソースコード
  • の取得を試みる.
  • display [expression]-式の値を表示します.式の値が変動すると、結果がリアルタイムで印刷され、動的追跡
  • が実行される.
  • undisplay [expression]-キャンセル式の表示
  • interact-インタラクティブな解釈器
  • を起動する
  • alias [name [command]]-命令に別名をつけて、具体的にはやはりドキュメントを見ましょう
  • unalias name-別名を削除
  • run | restart [args ...]-起動デバッグ
  • を再起動
    *        ,   ,         
    *   `restart`   `run`    ;
    
  • q(uit)-デバッグモード
  • を終了
    不完全な場合は、h pinfo形式を直接参照してください.