【问题标题】:Pausing/Breaking execution in javascript for debugging, but only for certain javascript files在javascript中暂停/中断执行以进行调试,但仅适用于某些javascript文件
【发布时间】:2011-08-16 11:14:42
【问题描述】:

是否有任何浏览器支持暂停执行/单步执行代码,但仅适用于某些文件或区域?我正在使用 jQuery 和其他几个库,并且在 99% 的情况下我对单步执行他们的代码不感兴趣,因为我的代码是错误的。我所有的代码都在我的脚本文件中,其他库单独包含。

如果我使用暂停按钮,我往往会发现我很快就会被带到 jquery 的某些部分,其中包含我不理解或需要理解的代码。如果我经常单击单步执行按钮,有时会被带到脚本中的某个点,有时不会。

我可以手动单击代码的每一行来添加断点,但这会非常繁琐,而且我无法轻松取消暂停执行。如果有一个浏览器可以让您一键选择多行并为所有行添加断点,那将是一个不错的选择。

【问题讨论】:

    标签: javascript debugging google-chrome firebug ie-developer-tools


    【解决方案1】:

    Chrome developer tools 中有一些新功能可以帮助您获得进入新代码库的良好入口点。事件侦听器断点将让您在给定的事件处理程序处暂停执行:

    【讨论】:

      【解决方案2】:

      自从我 5 年前提出这个问题以来,情况发生了变化。 Chrome(可能还有其他浏览器)有一个选项“黑盒脚本”。如果您发现自己在图书馆内停了下来,例如jQuery,右键单击,选择“黑盒脚本”,当您以后单步执行代码时,您将自动跳过该文件中的所有行。

      【讨论】:

        【解决方案3】:

        这就是 step in/over/out 的用途。如果程序停止调试,并且您正在单步执行并看到您即将进入 jQuery 函数(或您想要跳过的任何其他内容),则单击“跳过”。如果您陷入了想要立即摆脱的事情,请单击“退出”。

        只需在您要开始调试的位置设置断点,然后从那里使用步进函数来控制您要停止查看的内容。

        【讨论】:

        • 我不知道我想从哪里开始调试。问题是我想直接或通过 jQuery 或其他第三方库查找特定事件正在调用我的哪些函数。另外,我希望能够单击下一步,而不必考虑“我要跨入还是越过这条线”。如果一行是a = my_function() ? my_other_function() : third_party_function();,我怎么知道我是想介入还是超过?
        • “优雅”的语法和可维护的代码之间有一条细线。寻求平衡。
        • 我只是在想一个例子,它不可能知道是按 step in 还是 step over 来表明这并不总是一个容易弄清楚的选择。将调试器设置为仅在此文件中暂停会很容易。
        • 调试器怎么会知道“你的”代码和“第三方的”代码之间的区别?到底什么是第三方?是不是你以外的人?是不是你团队中的其他人?另外,我真的很困惑你怎么不知道你想从哪里开始调试。我认为你有一个比使用调试器更根本的问题。
        【解决方案4】:

        将断点放在所需的 javascript 文件和您要检查代码的位置! 按这将让您跳过跳转到其他文件,您将能够在同一个JS文件中继续

        【讨论】:

        • 正如我在问题的最后一段中所说的那样,我可以这样做,但是在调试器中单击数百次设置断点会非常繁琐。在我目前的项目中,600 次。而且我无法解冻执行,只能从断点跳到断点。
        • 然后你可以把断点放在想要的地方,然后你想先跳的地方,然后按下step over按钮之前的按钮,这将带你到你设置的下一个断点...当您在调试其 play 符号时未调试时,putton 位于 pause
        • 想要什么地方?我不知道我的代码的哪一部分(好吧,我的同事代码)正在运行。这就是整个问题。
        • 啊...告诉你什么 rjmunro...检查其他代码!!!...这本身就是一个乏味的过程....别管调试它...。想要地点 = 您认为代码有可能错误的地方,您可能需要检查它....
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-01
        • 1970-01-01
        • 2016-10-30
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        相关资源
        最近更新 更多