2013-03-04 18 views
29

Tôi biết đá quý của trình gỡ lỗi không và sẽ không bao giờ tương thích với ruby ​​2.0 cho mỗi "officially support ruby 2.X".Làm thế nào để sử dụng trình gỡ lỗi với Ruby 2.0?

Trong changelog của Ruby 2.0 là:

Hỗ trợ Debug

DTrace hỗ trợ, cho phép chẩn đoán thời gian chạy trong

sản xuất TracePoint, mà là một cải tiến API truy tìm

Có điều gì đó trong hộp để gỡ lỗi với Ruby 2.0 không? Ai đó có thể giải thích điều này cho tôi?

Trả lời

55

Các đá quý debugger có thể được sử dụng nhưng nó vẫn có vấn đề.

Cài đặt byebug được viết để gỡ lỗi Ruby 2.0.

Để biết các điểm ngắt, hãy sử dụng lệnh byebug trong mã của bạn thay vì debugger.

+0

Không thực sự xuất hiện để làm việc với Ruby 2.0.0 (http://stackoverflow.com/q/17044127/388916) – Hubro

+0

Nó hoạt động, tôi sử dụng byebug mỗi ngày: Rails 3.2.13, rvm 1.20.10, ruby ​​2.0 .0p195 và đá quý byebug 1.4.0. –

+2

@Codemonkey, byebug không (và sẽ không) làm việc với Ruby 1.9.x nhưng nó _must_ làm việc cho Ruby 2.0.0 vì đó là mục đích duy nhất của nó. Tôi vừa trả lời câu hỏi của bạn, nếu byebug vẫn không làm việc cho bạn, hãy cho tôi biết. – deivid

7

Phiên bản 1.4.0 của gem trình gỡ lỗi hiện được cài đặt mà không gặp sự cố. Vẫn còn một số vấn đề nhưng điều này sẽ sớm được khắc phục.

Các debugger đá quý không chơi tốt với Ruby 2. Thay vào đó, cài đặt các viên ngọc Byebug đó là hoàn toàn tương thích với Ruby 2.

+9

bất kỳ chi tiết nào về sự cố? Tôi đang gặp rắc rối với "tiếp theo" hành động như "bước", mà làm cho nó không thể sử dụng. –

+4

Xin chào @StevenSoroka, tôi đã tạo ra đá quý này để khắc phục các sự cố của trình gỡ lỗi với Ruby 2.0: [byebug] (https://github.com/deivid-rodriguez/byebug). Nếu bạn thử nó và có bất kỳ vấn đề, xin vui lòng cho tôi biết. – deivid

+0

Cảm ơn @devid! Điều này đã giết chết tôi. –

0

Sử dụng pry:

gem install pry 
gem install pry-debugger 

Xem "Debugging Ruby With Pry".

+3

Pry là tuyệt vời nếu tôi muốn in ra nhà nước hoặc kiểm tra mọi thứ và có thể biết nơi để đạt điểm nâng lên. Nó không cho phép tôi bước hoặc tiếp theo hoặc thiết lập các điểm ngắt trước và do đó không thực sự là một sự thay thế thích hợp cho các trình gỡ rối khi các trình gỡ rối có sẵn. –