【问题标题】:Javascript debuggers (Chrome and Webstorm) always break at non-existent breakpointJavascript 调试器(Chrome 和 Webstorm)总是在不存在的断点处中断
【发布时间】:2018-12-18 18:39:17
【问题描述】:

Chrome 开发工具和 Webstorm javascript 调试器总是会中断:

if(typeof qmLog !== "undefined"){

在下面的 javascript 文件中,即使那里没有断点。

你知道如何避免这种破坏

String.prototype.toCamelCase = function() {
  return this.replace(/(\_[a-z])/g, function($1) {
    return $1.toUpperCase().replace('_', '');
  });
};
var qm = {
  /// lots of stuff here... 
};
if (typeof qmLog !== "undefined") {
  qm.qmLog = qmLog;
  qmLog.qm = qm;
}
//if(typeof window !== "undefined" && typeof window.qmLog === "undefined"){window.qmLog = qm.qmLog;}  // Need to use qm.qmLog so it's available in node.js modules
if (typeof nlp !== "undefined") {
  qm.nlp = nlp;
}
if (typeof Quantimodo !== "undefined") {
  qm.Quantimodo = Quantimodo;
}
if (typeof window !== "undefined") {
  window.qm = qm;
  qm.urlHelper.redirectToHttpsIfNecessary();
} else {
  module.exports = qm;
}

【问题讨论】:

  • 在 DevTools 调试器中真的说“在断点处停止”吗?
  • 我无法重现该问题。它只停在qm.urlHelper.redirectToHttpsIfNecessary();,因为sn-p 中没有qm.urlHelper
  • 感谢您的尝试,@Barmar!确实,它确实说它已停止,我可以单击继续,但是每次尝试调试时都必须单击继续,这很不方便。这是很多,因为我制造了很多错误。
  • 我猜这可以归类为黑森虫。
  • 我怀疑您在以前版本的代码中设置了断点。断点是持久的,并且与行号相关联。如果你修改代码,断点仍然会在相同的行号触发,即使那里的代码已经改变。您应该会看到侧栏中列出的断点,如下面的答案所示。

标签: javascript debugging breakpoints


【解决方案1】:

在 JavaScript 控制台的 Source 选项卡中,在右侧查找设置断点。如果有的话,Ctrl + Click 在其中一个上并选择Remove all breakpoints

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 1970-01-01
    • 2018-05-23
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多