2012-07-23 9 views
24

Tôi đã cài đặt trình kiểm tra nút chỉ để tìm ra rằng nó không hỗ trợ các điểm ngắt: | là những gì các điểm trong đó ở tất cả, ghi nhớ rằng trên phần lớn đang nút là không đồng bộ và bạn chỉ đơn giản là không thể làm theo từng bước? ..Làm thế nào để gỡ lỗi ứng dụng js nút với điểm ngắt và mọi thứ?

Tôi chắc chắn bỏ lỡ một điểm ở đây ...

Dù sao để gỡ lỗi mã nút với breakpoint và tất cả mọi thứ?

+0

Có thể trùng lặp: http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications – beny23

+0

Tôi đến đây từ đó - điểm ngắt không hoạt động trong thanh tra nút và không có câu trả lời cho câu hỏi của tôi. Lanhung? – jayarjo

+1

Nó hỗ trợ các điểm ngắt. Tôi chỉ không 'nhớ' chúng khi bạn giới thiệu trang thanh tra. –

Trả lời

16

yupp, tôi đã sử dụng thành công trình kiểm tra nút. Nếu bạn muốn vĩnh viễn điểm ngắt, chỉ cần chèn debugger; vào mã của bạn. Xem http://nodejs.org/api/debugger.html.

Làm cho nút đợi cho đến khi trình gỡ lỗi được đính kèm, sử dụng node --debug-brk script.js, cũng có thể rất hữu ích.

+0

với trình gỡ lỗi; nó bị lỗi: nút (31848,0x7fff70e12cc0) malloc: *** lỗi cho đối tượng 0x10010f690: con trỏ được giải phóng không được phân bổ *** đặt điểm ngắt trong malloc_error_break để gỡ lỗi Hủy bỏ bẫy – jayarjo

+0

Tôi chưa bao giờ thấy lỗi đó, xin lỗi. Quy trình của ứng dụng của bạn có bị lỗi hay là trình kiểm tra nút? Bạn đang chạy phiên bản nào? Bạn có đang sử dụng bất kỳ mô-đun nút gốc nào có thể gặp sự cố không? – rdrey

1

Tôi nghĩ Bạn có thể nhận được câu trả lời của bạn từ Link

Và một điều nữa là bạn có thể đẩy những thay đổi động cơ V8 Debugger quá.

+1

Tôi không sử dụng nhật thực. Có giao diện nào khác với V8 Debugger không? Tôi biết về dòng lệnh, nhưng có vẻ như vô dụng đối với các tập lệnh lớn. – jayarjo

1

Chỉ cần để xây dựng một chút ở đây:

Đặt một trình gỡ lỗi bất cứ nơi nào bạn muốn breakpoint được và sau đó chạy mã của bạn với script.js nút debug/index.js

Khi debugger dừng lại ở bạn breakpoint, bạn sẽ cần phải repl để kiểm tra các biến.

+0

cảm ơn vì điều đó, không biết về lệnh repl –

+0

tôi muốn một breakpoint bất cứ nơi nào một ngoại lệ xảy ra (hãy nói rằng tôi không biết trước thời điểm đó sẽ được). Làm thế nào để làm điều đó? – Michael

+0

bạn có thể thay vì sử dụng lệnh REPL thêm người theo dõi thời gian chạy, chỉ cần nhập cho ví dụ. 'watch ('count')' watchers api sẽ in giá trị khi trình gỡ lỗi dừng lại trong hàm đó. –