如何中断当前运行的JavaScript

如何中断当前运行的JavaScript,javascript,debugging,google-chrome-devtools,firefox-developer-tools,Javascript,Debugging,Google Chrome Devtools,Firefox Developer Tools,我有一个HTML页面,其中包含一些被黑客攻击的脚本,其中包含如下内容: setTimeout(function () { window.location = window.location; }, 3000); 但是假设这个页面使用了大量缩小的JS并跨越多个文件,使用Chrome/Firefox开发工具,如何从多个文件中发现上面的代码部分?i、 e.在当前运行的行上停止执行和中断?发现上述代码段和在当前运行的行上停止执行和中断是完全不同的事情 识别代码的上面部分 要在各种源文件中的任何

我有一个HTML页面,其中包含一些被黑客攻击的脚本,其中包含如下内容:

setTimeout(function () {
    window.location = window.location;
}, 3000);

但是假设这个页面使用了大量缩小的JS并跨越多个文件,使用Chrome/Firefox开发工具,如何从多个文件中发现上面的代码部分?i、 e.在当前运行的行上停止执行和中断?

发现上述代码段和在当前运行的行上停止执行和中断是完全不同的事情


识别代码的上面部分 要在各种源文件中的任何位置查找代码,您可以使用Chrome的开发工具的全局搜索功能:

打开开发工具F12、Ctrl+Shift+I或通过菜单

切换到“源”窗格

在Mac上按Ctrl+Shift+F可能是Cmd+Shift+F

键入要查找的内容

正在停止执行并中断当前正在运行的行 打开开发工具F12、Ctrl+Shift+I或通过菜单

切换到“源”窗格

单击“暂停”按钮,它看起来像两条竖线


开发工具应该在尝试根据运行的下一位JavaScript上中断。

如果代码太大并且您不知道,一个选项是使用探查器

Chrome开发工具中有一个Profiles选项卡,Firefox开发工具中有一个Performance选项卡。 这些工具中的每一个都表现得非常相似,即开始录制,然后等待或在页面上执行导致脚本运行的任何操作,然后停止录制

中间的面板将显示一段时间内所有脚本的调用树,这些列应该希望能告诉您更多的时间。 使用该调用树,您可以向下钻取以发现执行了什么,然后从那里跳转到脚本中的实际行

这是,这是

使用firefox devtools的另一个选项是tracer。跟踪器是一种记录javascript级别发生的一切的工具:调用了什么函数、传递了什么参数、返回了什么值、调用了什么函数等等

要查看它,请执行以下操作:

在firefox中打开about:config,然后将pref devtools.debugger.tracer切换为true。 然后打开devtools并切换到调试器面板。 然后单击“暂停/跨过/跨入/退出”按钮旁边的双箭头图标。 这将启动跟踪,并将侧栏切换到跟踪面板。 再次单击以结束录制。
你应该看到执行的痕迹。如果单击跟踪中的任何条目,您将看到相关的脚本以及侧栏中的参数和返回值。

发现上述代码段并停止执行并在当前运行的行上中断是完全不同的事情。你想要哪一个?