私はRuby Cエクステンションを書いていますが、バグを見つけるためにGDBやValgrindを頻繁に実行する必要があります。 IRBはRubyスクリプトではなく、実行可能であることから、IRBのために動作しないことに、残念ながらirbプロセスで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(コマンドを入力してください)、のことができるようにする必要があるということです。
GDB(またはValgrind)内でIRBを実行するコマンドは何ですか?