Chrome调试器不会停止
问题描述:
我在第44行debugger;
中添加了以下代码的断点。我预计Chrome会在执行console.log("...")
之前每次都停在那里。但令我惊讶的是,它只停留一次。Chrome调试器不会停止
要测试的例子:
- 下方运行在Chrome
- 打开Chrome开发者工具的片段
- 拖动从拖放区域
另一网站上的图像。在这点上铬停在断点处。但是如果你看看控制台,你应该看到console.log
语句被执行了两次。
我想知道为什么会发生这种情况。 (线程问题??)
如果我想在这一行调试代码,我该如何解决这个问题。
$(document).ready(function() {
$('#drop-area').on("dragover", function(event) {
event.preventDefault();
event.stopPropagation();
$(this).addClass('dragging');
});
$('#drop-area').on("dragleave", function(event) {
event.preventDefault();
event.stopPropagation();
$(this).removeClass('dragging');
});
$('#drop-area').on("drop", function(event) {
event.preventDefault();
event.stopPropagation();
var count = 1;
var dropObj = event.originalEvent.dataTransfer;
for (var i = 0; i < dropObj.items.length; i++) {
var aDropItm = dropObj.items[i];
if (aDropItm.kind == "file") {
//ignore
} else {
aDropItm.getAsString(function(_str) {
debugger; //The debugger should stop here every time before the string is printed to the console
console.log("This was called [" + count++ + "] times");
});
}
}
});
});
#drop-area {
background-color: red;
width: 400px;
height: 400px;
}
<div id="drop-area">Drop files here...</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
编辑
我报这个如下错误: https://bugs.chromium.org/p/chromium/issues/detail?id=748923
答
的问题不会再发生。这似乎是一个铬的错误。
对[Chromium buglist](https://bugs.chromium.org/p/chromium/issues/list)的快速搜索出现的唯一bug与源地图有关([ex](https:// bugs .chromium.org/p/chromium/issues/detail?id = 459499)),这些不在这里玩。如果没有人指出我们错过的东西,那么可能值得在那里报告。如果它是优化的结果,我不会感到惊讶,但看到使用“调试器”语句优化代码是令人惊讶的。 –
我不确定这是我的错误还是错误。如果我没有找到解决方案,我会将它发布到buglist中。 – Lars
在这里添加一个链接到铬错误,让其他人可以找到它:) 它甚至可以被认为是“答案” – styfle