簡體   English   中英

Chrome 開發者工具在沒有設置斷點的地方不斷中斷

[英]Chrome Developer Tools keeps breaking where no breakpoints are set

使用 Chrome 開發人員工具調試 JavaScript 代碼時,調試器會在未設置斷點的代碼處暫停。 我沒有啟用Pause on exceptions功能,而且肯定沒有設置斷點(見附圖)。

我之前問過一個類似的問題,這個問題很有幫助,但並沒有完全解決這個問題(之前我啟用了Pause on exceptions )。 在下面的示例中,我將kendo.all.min.js的縮小版本替換為未縮小版本,這使我可以看到腳本執行暫停的位置,但我不知道為什么會暫停。 jquery.min.js也經常發生這種情況。

在此處輸入圖像描述

我通過單擊“設置”部分中的“恢復默認值並重新加載”按鈕修復了斷點問題。 找到按鈕:在開發者工具中,點擊右上角三個垂直點旁邊的齒輪。 (注意:如果使用舊版本的谷歌瀏覽器,點擊右上角的三個垂直圓點,然后選擇“設置F1”)。 “恢復默認值並重新加載”按鈕位於右下角。

另請注意,它確實會恢復默認值 - 您會丟失所有以前保存的斷點,並且您在開發人員工具中打開的任何文件都將被關閉。

我的解決方案來自: Chrome javascript debugger breakpoints don't do any?

F8 有兩個功能。 1. 跳過下一個斷點, 2. 在瀏覽器執行代碼的地方停止。 即使您沒有設置斷點,這也有效。 例如,當您忘記停用斷點時發送垃圾郵件 F8 可能會導致瀏覽器在任何地方停止。

當您轉到調試器快捷方式時,您可以看到 F8 具有暫停/繼續的功能。 但遺憾的是,您似乎無法將它們拆分為兩個不同的鍵綁定。

因為我知道這個功能,所以我再也沒有遇到過這個“錯誤”。

只需禁用緩存並重新加載頁面,斷點將再次顯示

已接受的導入/導出 Chrome devtools 斷點和計算機之間設置的答案提醒我檢查“devtools-on-devtools”,並在DevTools 的內部應用程序本地存儲中刪除關鍵breakpoints的 JSON 列表值的錯誤元素以修復我同樣的問題沒有重置一切

我可以通過更新 Chrome 來解決這個問題。 我認為版本無關緊要,只是更新過程會重置所有已存儲在緩存中的斷點。

我發布這個答案是為了幫助像我這樣錯過了關於幻像斷點行為原因的重要線索的人。 就我而言,這是“用戶錯誤”——我的。 根本原因是一個被遺忘的“調試器”; JavaScript 文件中的語句,該文件本身是從 TypeScript 生成的。我已經刪除了調試器; 來自本地 TypeScript 的語句,在本地主機上運行和測試沒有問題。 但是我已經將帶有聲明的版本推送到遠程,並且它在存在聲明的情況下構建並發布到我們的開發站點。 開發站點構建不包括 TypeScript 源文件。 當調試器語句被命中時,Chrome 嘗試加載 .ts 源並顯示“無法加載內容...”我只是假設它處於斷點(我在測試期間設置了很多)。 當我看到“無斷點”時,我認為 Chrome 遇到了該線程中解決的問題。 如果我費心查看調用堆棧跟蹤,我會看到 .ts 文件中的源代碼行並很快弄清楚。 這是一個截圖:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM