簡體   English   中英

Chrome 斷點停止工作 - 查看具有 VM 前綴的不同文件

[英]Chrome breakpoints stopped working - looking at different file with a VM prefix

突然之間,我在 Chrome 中的斷點完全停止工作。 奇怪的是,如果我在代碼中遇到錯誤並以這種方式中斷,或者我添加了調試器; 在我的代碼中的任何地方,它都會停止,但它會打開一個不同的文件,其前綴類似於 VM[number]。

在開發控制台中自然顯示斷點不起作用的文件名為 main.js,但是當我遇到錯誤或通過調試器命令停止時,它會打開一個名為“VM113 main.js”的新文件。 更奇怪的是,如果我按照代碼進入一個不同的文件,比如 jquery.js,它也不會進入 jquery.js 文件,而是進入一個名為“VM97 jquery.js”或“VM98 jquery-ui”的文件。 js”。

發生了什么以及如何讓 Chrome 查看實際文件而不是 VM 文件?

在我個人的研究中,這是由於我試圖在其中放置斷點的文件的文件路徑中有重音字符引起的。

假設您有兩個文件, HäagenDazs/main.jsHaagenDazs/main.js (為了示例而命名)並且它們都包含(大致)相同的內容:

var x = function () {}; var y = function () {};

如果您在HäagenDazs/main.js放置斷點,Chrome 將刪除它並將其設置在VM-### main.js中的同一位置。 如果您在HaagenDazs/main.js放置斷點,Chrome 會將其保留在原始文件中。

它似乎是路徑中任何地方的重音字符和該文件中存在關鍵字function的組合。 我在 OS X 10.10 中使用 Chrome 版本 38.0.2125.122 對此進行了測試。

我完全卸載了 Chrome 並重新安裝了它,這似乎解決了這個問題。 我不知道是什么原因導致它開始這種行為,但重新安裝解決了它。

我剛剛遇到了同樣的問題並得到了解決方案,所以我將它留在這里僅供記錄。

就我而言,這是因為該特定網站使用了服務工作者,並且他們在我放置斷點的本地覆蓋“之前”提供了額外的 JS 緩存級別。

因此,執行總是在 [VM] 選項卡中停止,該選項卡不包含我在這些覆蓋中所做的任何更改。

解決方案是進入應用程序菜單。 在那里,在 Service Workers 部分,我選中了“離線”和“繞過網絡”選項,然后單擊最右側的“取消注冊”。

Chrome 開發控制台屏幕截圖:應用程序菜單

暫無
暫無

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

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