セットプチフォッカ

勉強したアウトプット、ときどきフォッカチオ作っていました

【RubyMine】デバッグ時、requireで怒られたときの対処法(小ネタ)

RubyMine小ネタです。

Byebugを無視した罰当たり

本日チェリー本でByebugを覚えました。

「覚えたからって関係ねえ、Byebugを使用せずに私はRubyMineでデバッグをやるんだ」とデバッグを試みたところ、デバッガが異常終了してしまいました。これは罰当たりか...?

Uncaught exception: cannot load such file -- ./lib/effects
    /Users/username/RubymineProjects/ruby-book/lib/word_synth.rb:1:in `require'
    /Users/username/RubymineProjects/ruby-book/lib/word_synth.rb:1:in `<top (required)>'

原因はデバッグの構成

コマンドラインから通常通り実行していた際は、以下のrequireで問題なく動いていました。

require './lib/effects'

これを以下のように書き換えてあげるとうまく実行できるようになります。つまりシェルからの実行時と、Rubymineのデバッガでは相対パスの基準点がずれているわけです。

require './effects'

ではカレントディレクトリがどこで決まっているかというと、画面右上のプルダウンをクリックすると展開されるので... f:id:ikmbear:20200815154953p:plain その中のEdit Configrationsを押すと、各ファイルごとの設定をみることができます。 f:id:ikmbear:20200815154609p:plain

上図内赤枠の「Working Directory」が相対パスの基準点になるので、

  • このパスを書き換える

もしくは

  • 実行ファイルのrequireのパスを書き換える

ことで、デバッグ実行が正しくできるようになりました。

上小ネタでした〜。