Apa yang kalian gunakan untuk debugging di ruby 1.9? rdebug tampaknya tidak kompatibel .. apakah ada sesuatu di luar sana?
Jawaban:
Catatan: jawaban ini benar tetapi sekarang sudah ketinggalan zaman. Lihat jawaban yang benar di bawah ini. TL; DR: gunakan 'debugger' sekarang.
ruby-debug sekarang tersedia dengan Ruby 1.9.x. Lihat http://www.github.com/mark-moseley
Untuk menginstal (menggunakan gem pada instalasi 1.9 Ruby):
gem install ruby-debug19
(mungkin dengan 'sudo' di depannya).
ruby-debug19
tidak dipertahankan lagi. Semua jawaban lainnya sudah ketinggalan zaman.
Tapi ada alternatif lain:
debugger
untuk menyelamatkan!
Taruh ini di Gemfile
:
gem 'debugger', group: [:development, :test]
Ini berhasil. - Dan itu termasuk dalam Gemfile rel sejak 3.2 ruby-debug19
. Sesuatu untuk diganti . Ini memiliki fungsi yang sama persis dan secara aktif dipertahankan.
group :development do ... end
atau sejenisnya), karena sudah berisi grup.
UPDATE UNTUK RUBY 2.0+ dan MENGIKUTI
byebug adalah debugger yang saat ini direkomendasikan untuk Ruby 2.0+
Masalah ini telah didokumentasikan di sini , dan cldwalker, penulis debugger, mencatat bahwa debugger akan mencakup Ruby 1.9.2 dan 1.9.3.
UPDATE 2
Memang benar bahwa ruby-debug tidak aktif dipertahankan bahkan jika saya tidak dapat menemukan tempat yang tidak dipertahankan lagi.
Anda dapat menggunakan permata debugger baru jika Anda membutuhkan bantuan untuk memulai dengan permata baru, Anda dapat melihat cast rel Ryan Bates .
Di dalam Gemfile Anda:
gem 'debugger', group: [:development, :test]
Anda kemudian dapat menambahkan breakpoint di mana saja dalam kode Anda menggunakan debugger
kata kunci.
ANDA MASIH BISA MENGGUNAKAN
linecache19 dan ruby-debug-base19 dengan:
pesta <<(curl -L https://raw.github.com/gist/1333785 )
JAWABAN LAMA
Hanya menambahkan tentang ini dengan rvm, ruby 1.9.1-p378. Kisah sebenarnya adalah bahwa meskipun ruby-debug 1.9.x siap, linecache-0.43 tidak. Solusinya adalah dengan menginstal:
gem install ruby-debug19
Ini memecahkan masalah saya.
UPDATE LAMA
Jika Anda mengalami masalah dengan ruby 1.9.2 dan Rails 3 debugging:
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
Di Gemfile Anda dan melakukan a
bundle install
Akan membuat Anda menjadi debugger yang bahagia lagi.
Beberapa hal yang bisa Anda coba
1) jalankan dengan debugger -rdebug [1] biasa Ruby agak lambat
2) jalankan dengan permata unroller [jenis bau, sangat lambat]
3) gunakan banyak pernyataan cetak dengan cepat, jenis introspeksi yang kurang mungkin
4) buka prompt irb dan jalankan beberapa kode dari sana.
Anda dapat membuat daftar kode dengan membuat "drop to irb prompt" Anda sendiri yang mencantumkan kode di sekelilingnya [gunakan pemanggil untuk menemukan di mana Anda berada] kemudian turun ke prompt irb normal.
5) mungkin jruby dalam mode 1.9 compat memiliki debugger?
Jika Anda masih mengalami masalah setelah menginstal ruby-debug19 coba perbarui ruby-debug-base19. Saya mengalami kesalahan dan tidak dapat menjalankan WEBrick dalam mode debug sampai saya melakukannya.
gem update ruby-debug-base19
Oh, dan terima kasih Pak Moseley atas semua kerja keras Anda!
Lihat jawaban saya di sini: Ruby-debug tidak berfungsi - Stack Overflow
Ini tentang mendapatkan Ruby debugging untuk bekerja dengan pengaturan berikut
Menggunakan rvm, di direktori kerja proyek saya, saya memiliki .rvmrc yang menyatakan:
rvm use ruby-1.9.3-p0@mygemset
Saya harap ini membantu!
- Freddy
Saya menggunakan mengikuti dan itu bekerja sangat baik untuk saya:
permata 'debugger', grup: [: pengembangan,: tes]
ruby 1.9.3p194 (revisi 2012-04-20 35410) [x86_64-linux] rails 3.2.8
Netbeans adalah IDE yang bagus untuk RoR. Debugger yang bagus juga.
Versi ruby 1.9.1-p243 sudah keluar dan ruby-debug-ide juga berfungsi dengan baik. Instal ruby-debug-ide menggunakan perintah berikut:
pasang permata ruby-debug-ide
Ini akan menginstal permata ruby-debug-base19 dan ruby-debug-ide. Namun sebelum ini pastikan Anda berhasil menginstal mingw dengan mengikuti dokumen Kit pengembangan yang tersedia dari RubyForge .
Fitur terbaru tersedia dalam permata ruby-debug-ide19.
Ada banyak pilihan, tergantung kebutuhan Anda.
Saya menggunakan pry-move karena saya dapat "melihat kembali" apa yang terjadi di dalam perintah sebelumnya dengan menjalankannya kembali dalam mode debug langsung dari tempatnya.
tidak ada yang menggunakan: ruby -rdebug script.rb
maka Anda dapat menggunakan: b script.rb: ## (di mana ## adalah nomor baris dari perintah ruby yang valid) jika tidak, Anda mungkin akan berada di tengah-tengah rubygems atau salah satu potongan kode yang Anda perlukan.
Kemudian Anda dapat mengatur breakpoint berikutnya sebagai b: ##
ruby-debug19
sudah ketinggalan zaman sekarang.