ruby ではプログラムのデバッグにあたって、 binding.pry (+ pry-byebug) が利用できます。これは、 Java/C++ でいうところのデバッガにその他便利機能を追加したようなものです。

機能としては:

  • binding.pry を記述した行にてプログラムを一時停止して、デバッグ実行ができる。
    • ステップ実行 (1文実行してまた一時停止) 、ステップイン (メソッドの中に入って一時停止)、ステップアウト (ステップインの逆)
    • 式を評価することで、もろもろの値確認
  • 今実行している (一時停止している) 実行コードを表示
  • 今現在実行中のフレーム (メソッド呼び出しスタック) を上に登ったり下に降りたり
  • オブジェクトに cd できる。
    • ruby の言葉でいうと、 self を指定されたオブジェクトに指定しながら REPL する
    • ls で今見ているオブジェクトのメンバーたちを表示できる
  • その他便利機能

質問:

  • python において、 ruby での binding.pry のような、デバッグ実行ツールはありますか?
    • (なるべく、上記のようなことがより多くできる方が望ましい)