Khắc phục lỗi không dừng lại ở breakpoint khi debug Rails 5 trên IDE


Vấn đề / Problem

Như các bạn đã biết việc debug là 1 công việc thường xuyên của 1 lập trình viên. Nó giúp các bạn dễ dàng tìm lỗi và gỡ lỗi trong quá trình lập trình. Khi mình thực hiện debug 1 web app viết trên 1 framewok của Ruby là Ruby On Rails version 5.2. Mình đã gặp 1 vấn đề là dù đặt các điểm breakpoint nhưng IDE lại không dừng lại trên Rails 5. (Rail 4 thì có)

Môi trường của mình như sau:

Nguyên nhân / Cause

Nguyên nhân của vấn đề là từ Rails 5.2.0 đến 5.2.1, Rails sử dụng bootsnap để tăng tốc cho framework của mình bằng cách sử dụng caching. Nhưng vô tính nó làm vô hiệu quá các điểm breakpoint trên IDE.

Giải pháp / Khắc phục

Nếu bạn vẫn đang sử dụng Rails version 5.2.0 và 5.2.1 thì bạn hãy comment dòng sau ở file [app root]/config/boot.rb

require 'bootsnap/setup' # Speed up boot time by caching expensive operations.

Chú ý: thật may mắn là Rails đã xử lý vấn đề này ở phiên bản mới nhất 5.2.2.( ruby/ruby@b85b10c).

Vì vậy chúng ta có 1 giải pháp khắc phục nữa là, chỉ thay đoạn code trên bằng:

unless ( (('2.5.0'..'2.5.1').include? RUBY_VERSION) && defined?(Debugger) )
    require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
end

Nó sẽ chỉ require bootsnap khi ở các version bị lỗi.

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web