2011-12-12 37 views
8

Tôi đang gỡ lỗi mới trong R bằng cách sử dụng traceback()option(error=recover)debug(function) để cố gắng tìm ra nguyên nhân của lỗi tôi có trong gói R.cách bỏ qua vòng lặp khi gỡ lỗi mã R

Tôi đang gỡ lỗi một hàm có vòng lặp lớn và tôi muốn 'thoát ra' vòng lặp vào khối tiếp theo. Làm thế nào tôi có thể làm điều đó? Tôi biết rằng bạn có thể đặt breakpoint, nhưng tôi không biết nơi vòng lặp cũng không phải là bước tiếp theo. Tôi đang ở trong môi trường văn bản duy nhất để trợ giúp đồ họa của gói gỡ lỗi có thể không giúp ích gì.

Tóm lại, làm cách nào để thoát khỏi vòng lặp khi gỡ lỗi và cách bước vào một hàm để gỡ lỗi khi bạn đã gỡ lỗi?

Có thể điều này đã được trả lời và tôi đã bỏ lỡ nó. Tôi đã thấy một số câu hỏi gỡ lỗi SO R nhưng không ai trả lời phần này mà tôi biết.

Trả lời

9

Tôi khá chắc rằng hệ thống trợ giúp của R hoạt động ngay cả khi bạn không sử dụng GUI. Hãy thử nhập ?debug và xem điều gì sẽ xảy ra. Bạn phải được thông báo rằng nhập c hoặc cont sẽ

tiếp tục đến cuối ngữ cảnh hiện tại: ví dụ: đến cuối vòng lặp nếu trong vòng lặp hoặc đến cuối hàm.

+1

'browser()' cũng có thể hữu ích để cho bạn biết giá trị của biến số của bạn ở bất kỳ điểm nào trong vòng lặp, xem '? Browser'. – Gregor

+3

Tôi vừa nhận ra rằng 'c' đi đến cuối của bối cảnh hiện tại khi tôi nhấn' c' để đi đến cuối kịch bản và chỉ đi đến cuối vòng lặp. Tôi đã có từ một khóa học tay "c hoặc tiếp tục (Tiếp tục thực hiện mà không có bước đơn.)" Và điều này đã gây hiểu nhầm cho tôi. Cảm ơn –

Các vấn đề liên quan