42987


binding.pry をコードに挿入すると、その時点で ruby プロセスの実行が止まり、 pry を起動、デバッグ実行のようなことができます。

利用している library が何かおかしい場合、その中の特定の行で binding.pry したくなることがあります。
このとき、このライブラリがグローバルにインストールされた gem であるような環境である場合においては、ライブラリのソースを編集することなく
binding.pry したくなります。

### 質問

ソースコードを改変せずに、ライブラリコードの特定の行において binding.pry 相当のことはできますでしょうか。


CC BY-SA 3.0
2018-04-06T01:37:30.500
42976
2021-01-21T04:43:02.470
754
question
ruby pry
binding.pry せずに、指定された行で pry したい


byebug が便利だと思います。

[printデバッグにさようなら！Ruby初心者のためのByebugチュートリアル -
Qiita](https://qiita.com/jnchito/items/5aaf323ab4f24b526a61)

[code]

    % cat hoge.rb       
    require_relative 'fuga'
    
    Fuga.new.fuga
    
    % cat fuga.rb       
    class Fuga
      def fuga
        @fuga = 123
        puts "fuga=#{@fuga}"
      end
    end
    
    % ruby hoge.rb
    fuga=123
    
    % byebug hoge.rb
    
    [1, 3] in /tmp/hoge.rb
    => 1: require_relative 'fuga'
       2: 
       3: Fuga.new.fuga
    (byebug) break fuga.rb:4
    Created breakpoint 1 at /tmp/fuga.rb:4
    (byebug) cont
    Stopped by breakpoint 1 at /tmp/fuga.rb:4
    
    [1, 6] in /tmp/fuga.rb
       1: class Fuga
       2:   def fuga
       3:     @fuga = 123
    => 4:     puts "fuga=#{@fuga}"
       5:   end
       6: end
    (byebug) @fuga
    123
    (byebug) @fuga = 456
    456
    (byebug) cont
    fuga=456
    
[/code]


CC BY-SA 4.0
2018-04-06T04:14:11.430
42987
2021-01-21T04:43:02.470
2021-01-21T04:43:02.470
3060
3249
42976
answer