私は Ruby C 拡張機能を作成しており、バグを見つけるために GDB または Valgrind を頻繁に実行する必要があります。私の仕様をデバッグするために、私はこれを使用します:
namespace :spec do
RSPEC_CMD = [ 'ruby', '-S', 'rspec', '-Ilib:ext', SPECDIR ]
desc "Run specs under GDB."
task :gdb => [ :compile ] do |task|
cmd = [ 'gdb' ] + GDB_OPTIONS
cmd += [ '--args' ]
cmd += RSPEC_CMD
run( *cmd )
end
desc "Run specs under Valgrind."
task :valgrind => [ :compile ] do |task|
cmd = [ 'valgrind' ] + VALGRIND_OPTIONS
cmd += RSPEC_CMD
run( *cmd )
end
end
残念ながら、これは IRB では機能しません。IRB は Ruby スクリプトであり、実行可能ファイルではないためです。
答えは非常に些細なことだと思いますが、自分でそれを理解するのに十分なシェルマジックを知りません.
IRB を実行するだけでなく、IRB (コマンドを入力)を使用できるようにする必要があることに注意してください。
では、GDB (または Valgrind) 内で IRB を実行するコマンドは何ですか?