2009-03-16 37 views
38

Tôi đang thiết lập các điểm ngắt trong tệp JS bên ngoài và tôi đã không thể nhận được Firebug nhấn điểm ngắt theo cách nhất quán. Nó hoạt động đôi khi nhưng hầu hết các lần nó không. Cách duy nhất tôi có thể làm cho nó hoạt động là bằng cách bật "Break on all errors"Firebug - Breakpoint không trúng

Tôi đã sử dụng trình gỡ lỗi; tuyên bố là không có may mắn.

+0

Tính năng này có hoạt động trong trình gỡ lỗi tích hợp của Firefox không? – NoBugs

Trả lời

6

Firebug có hiển thị mã trong tab Tập lệnh có số dòng màu xanh lục không? Điều này cho thấy các dòng mã có thể gỡ lỗi.

Tôi đã trải qua triệu chứng này khi không có số dòng nào màu xanh lá cây ở lần. Tôi làm mới trang và kỳ diệu, chúng lại xanh.

+0

Không, làm mới trang không giúp được gì. Họ cũng không có số dòng màu xanh lá cây. – DotnetDude

15

Nếu số dòng không phải là màu xanh lá cây, có vẻ như Firebug không thể gỡ lỗi phần mã đó vì nó nằm ngoài phạm vi. Vì vậy, nếu bạn đang sử dụng một cái gì đó như $ (function() {...}); Firebug sẽ không thể truy cập các hàm và biến.

Điều đó có hợp lý không?

Ngoài ra, có thể là một số chức năng khác hoặc chức năng nào đó đang ghi đè đối tượng bạn đang cố gỡ lỗi. Nó thậm chí có thể nếu bạn đang bao gồm cùng một tệp JS hai lần.

Hy vọng điều đó sẽ hữu ích.

+0

Firebug cũng dường như thường xuyên không nhận ra rằng mã là hợp lệ. Điều này dường như xảy ra thường xuyên nhất trong khi vòng lặp: Firebug từ chối màu xanh lá cây số dòng, mặc dù nó phải. – Michael

6

Tôi đang gặp sự cố này rất thường xuyên. Tôi đã phát hiện ra rằng mở lại tab có vẻ như giúp đỡ (các điểm ngắt không bị mất). Nhưng "Break on all errors" có vẻ là cách đáng tin cậy nhất để phá vỡ.

Tôi hiếm khi có thứ gì đó tốt về IE, nhưng trong trường hợp này, điều đó đúng. Gỡ lỗi JavaScript trong VS chỉ hoạt động. Nó truy cập các điểm ngắt ("trình gỡ lỗi") mà không có sự cố và dừng tất cả các mã JavaScript khác trên trang thực thi. Vì vậy, tôi sử dụng nó như một bản sao lưu khá thường xuyên.

6

Tôi đã gặp phải sự cố này khi cố gắng gỡ lỗi các trang trong khung bằng Firebug 1.4. Chọn "Chỉ hiển thị khung này" hoặc "Mở khung trong tab mới" từ menu ngữ cảnh "Khung này", sau đó làm mới trang dường như làm cho các tập lệnh có thể gỡ lỗi được.

+0

Cảm ơn nhiều. Điều này giải quyết nó cho tôi. –

+0

Điều này đã giải quyết được vấn đề của tôi! – emurano

3

Tab 'Bảng điều khiển' trên Firebug có hiển thị lỗi cho bất kỳ mã JavaScript nào khác của bạn không? Tôi thấy rằng nếu các lỗi JavaScript tồn tại đối với mã trước một điểm ngắt lỗi thì nó sẽ không bao giờ tới được dòng mã đó cho đến khi một (các) mã bị hỏng trước đó được sửa.

0

Chỉ cần thêm một khả năng khác cho những người được đề cập.

Điều này xảy ra khi tôi chịu áp lực phải sửa một thứ gì đó trong sản xuất, một cách tự nhiên.

tôi đã inadvertantely giới thiệu một lỗi cú pháp:

function: myFunc(){} 

// function body 

} 

Chỉ cần như thế. Vào đầu của bảng điều khiển đăng nhập đã có một lỗi, nhưng tôi đã không nhận thấy nó. Tôi tiếp tục cố gắng để gỡ lỗi tập tin đó, nhưng Firebug sẽ không bước vào nó.

Vì vậy, nếu điều này xảy ra với bạn: hãy kiểm tra bảng điều khiển, có thể có lỗi cú pháp làm ngắn mạch việc tải tệp.

2

Tôi đã dành 1 giờ cho việc này.

Tôi đã có một thẻ <script> như thế này:

<!-- jQuery Validate --> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript"> 

Bạn có thể phát hiện các vấn đề?

Cũng phải mất tất cả thời gian để phát hiện ra nó. Thiếu / để đóng thẻ <script>.

<!-- jQuery Validate --> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" /> 

Điều này là chắc chắn do một số bản sao/dán và sau đó cố gắng thay đổi mã ... Tôi vừa mới đánh lừa trong trường hợp này! :)

Sau khi thêm / Tôi đã có thể nhận được điểm ngắt hoạt động trong Firebug. Nó có ý nghĩa.

Cuối cùng tôi có thể thấy những con số màu xanh lá cây may mắn.

2

Tôi đã gặp sự cố này không liên tục. Tôi đã chọn "vô hiệu hóa tất cả các điểm ngắt" và "bật tất cả các điểm ngắt" từ các điểm ngắt thả xuống và nó bắt đầu hoạt động.

+0

Đã lưu ngày của tôi. Cảm ơn. –

0

Đối với tôi, nó hoạt động sau khi tôi xóa mọi cuộc gọi document.write().

0

Vấn đề tương tự với FF 36 và FB 2.0.8: không có lỗi trong bảng điều khiển, mã hoạt động tốt, nhưng FB hiển thị HTML thay vì JS, dừng tại điểm dừng debugger nhưng hiển thị nó ở một số dòng HTML ngẫu nhiên, không dừng tại các điểm ngắt thông thường.

I resolved it by extracting JS from the page and moving it into its own JS file.

Nhưng có một nhược điểm: khi kịch bản cư trú trong tập tin JS riêng của mình, tôi không thể có được các biến "toàn cầu" để làm việc trong FF (làm việc tốt trong IE không phân biệt nơi mã được), thậm chí sử dụng cú pháp window.varName. Vì vậy, cuối cùng debugging trong FB từ một tập tin riêng biệt, nhưng trở lại nội tuyến cho sản xuất.

0

Tôi cũng gặp sự cố này. Có lẽ liên quan đến câu trả lời của KIT-Inwi ... Nhưng tôi đã tạo ra những dòng ngẫu nhiên bằng cách sử dụng PHP với mỗi lần tải trang.

Firebug dường như nhớ số dòng của toàn bộ trang HTML để đặt điểm ngắt tại, không nhất thiết phải là dòng của Javascript, có nghĩa là số dòng bạn đặt điểm ngắt tại thời điểm tải trang này sẽ không nhất thiết phải là cùng một dòng mã sau khi bạn tải nó, do đó, điểm ngắt sẽ xuất hiện để "nhảy".

Tôi không chắc chắn cách bạn giải quyết nó bằng nội dung động thay đổi mỗi lần, nhưng tôi đã sửa nó bằng cách xóa các dòng ngẫu nhiên để đường với điểm ngắt giống nhau trên mỗi lần tải trang.

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