Tôi muốn buộc trình gỡ lỗi Chrome phá vỡ một dòng thông qua mã hoặc nếu không bằng cách sử dụng một số loại thẻ nhận xét, chẳng hạn như một cái gì đó như console.break()
.
Tôi muốn buộc trình gỡ lỗi Chrome phá vỡ một dòng thông qua mã hoặc nếu không bằng cách sử dụng một số loại thẻ nhận xét, chẳng hạn như một cái gì đó như console.break()
.
Câu trả lời:
Bạn có thể sử dụng debugger;
trong mã của bạn. Nếu bảng điều khiển dành cho nhà phát triển mở, thực thi sẽ bị hỏng. Nó hoạt động trong firebird là tốt.
setTimeout(function(){debugger;}, 3000);
debugger;
được hỗ trợ trong tất cả các trình duyệt chính. Để biết thêm thông tin: w3schools.com/jsref/jsref_debugger.asp
Thiết lập một nút bấm nghe và gọi debugger;
Thí dụ
$("#myBtn").click(function() {
debugger;
});
Bản giới thiệu
Tài nguyên về gỡ lỗi trong JavaScript
Bạn cũng có thể sử dụng debug(function)
, để phá vỡ khifunction
được gọi.
Như những người khác đã nói, debugger;
là con đường để đi. Tôi đã viết một tập lệnh nhỏ mà bạn có thể sử dụng từ dòng lệnh trong trình duyệt để đặt và xóa điểm dừng ngay trước khi gọi hàm:
http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
Trên tab "Tập lệnh", đi đến nơi mã của bạn. Ở bên trái của số dòng, bấm vào. Điều này sẽ đặt một điểm dừng.
Ảnh chụp màn hình:
Sau đó, bạn sẽ có thể theo dõi các điểm dừng của mình trong tab bên phải (như được hiển thị trong ảnh chụp màn hình).
debugger
là một từ khóa dành riêng của EcmaScript và được cung cấp ngữ nghĩa tùy chọn kể từ ES5
Kết quả là, nó không chỉ được sử dụng trong Chrome mà cả Firefox và Node.js thông quanode debug myscript.js
.
Các tiêu chuẩn nói :
Cú pháp
DebuggerStatement : debugger ;
Ngữ nghĩa
Đánh giá việc sản xuất DebuggerStatement có thể cho phép việc triển khai gây ra điểm dừng khi chạy dưới trình gỡ lỗi. Nếu trình gỡ lỗi không có mặt hoặc hoạt động thì câu lệnh này không có hiệu lực quan sát được.
Trình gỡ lỗi sản xuấtStatement: trình gỡ lỗi; được đánh giá như sau:
- Nếu một cơ sở gỡ lỗi được xác định thực hiện có sẵn và được kích hoạt, thì
- Thực hiện một hành động gỡ lỗi được xác định.
- Đặt kết quả là một giá trị hoàn thành được xác định.
- Khác
- Đặt kết quả là (bình thường, trống rỗng, trống rỗng).
- Kết quả trả về.
Không có thay đổi trong ES6.
Có thể và có nhiều lý do bạn có thể muốn làm điều này. Ví dụ: gỡ lỗi một vòng lặp vô hạn javascript gần khi bắt đầu tải trang, điều đó ngăn không cho bộ công cụ dành cho nhà phát triển chrome (hoặc fireorms) tải chính xác.
Xem phần 2 của
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoint-in-javascript/
hoặc chỉ cần thêm một dòng chứa trình gỡ lỗi từ vào mã của bạn tại điểm kiểm tra bắt buộc.
Điểm dừng: -
điểm dừng sẽ dừng thực thi và cho phép bạn kiểm tra các giá trị JavaScript.
Sau khi kiểm tra các giá trị, bạn có thể tiếp tục thực thi mã (thường bằng nút phát).
Trình gỡ lỗi: -
Trình gỡ lỗi; dừng việc thực thi JavaScript và gọi chức năng gỡ lỗi.
Câu lệnh gỡ lỗi tạm dừng thực thi, nhưng nó không đóng bất kỳ tệp nào hoặc xóa bất kỳ biến nào.
Example:-
function checkBuggyStuff() {
debugger; // do buggy stuff to examine.
};
Bạn cũng có thể thiết lập debug(functionName)
chức năng gỡ lỗi.
https://developers.google.com/web/tools/chrom-devtools/javascript/breakpoint#feft
Có nhiều cách để gỡ lỗi mã JavaScript. Theo hai cách tiếp cận được sử dụng rộng rãi để gỡ lỗi JavaScript thông qua mã
Sử dụng console.log()
để in ra các giá trị trong bảng điều khiển trình duyệt. (Điều này sẽ giúp bạn hiểu các giá trị tại một số điểm nhất định trong mã của bạn)
Từ khóa gỡ lỗi. Thêm debugger;
vào các vị trí bạn muốn gỡ lỗi và mở bảng điều khiển dành cho nhà phát triển của trình duyệt và điều hướng đến tab nguồn.
Để biết thêm các công cụ và cách mà bạn gỡ lỗi Mã JavaScript, được đưa ra trong liên kết này bởi W3School .
Tôi không khuyến nghị debugger;
nếu bạn chỉ muốn giết và dừng mã javascript, vì debugger;
sẽ tạm thời đóng băng mã javascript của bạn và không dừng mã vĩnh viễn.
Nếu bạn muốn giết đúng cách và dừng mã javascript theo lệnh của bạn, hãy sử dụng như sau:
throw new Error("This error message appears because I placed it");
debugger;
hay chỉ sử dụng các điểm dừng thông thường trong thanh công cụ dành cho nhà phát triển?