调试是在计算机程序中查找和修复错误的有条不紊的过程。 **重要说明:**此标记仅用于调试技术或调试过程的问题,而不是请求帮助调试代码。
chrome:如何中止在“debugger”语句处停止的脚本?愚蠢的片段
考虑下面这个愚蠢的例子: 愚蠢的片段 变量我 = 0; 同时(我< 100) { console.log(i); ...</desc> <question vote="2"> <p>考虑以下愚蠢的例子:</p> <pre><code><!doctype html> <meta charset="utf-8"> <title>dumb snippet</title> <script> var i = 0; while (i < 100) { console.log(i); debugger; i += 1; } </script> </code></pre> <p>如果我使用 Google Chrome 的 DevTools 运行此代码,调试器会尽职尽责地在 <pre><code>debugger</code></pre> 语句处停止执行,但我还没有找到任何方法来立即中止(并重新启动)脚本。 AFAICT,按 <pre><code>Ctrl-R</code></pre> 甚至 <pre><code>Shift-Ctrl-R</code></pre>,而不是重新加载页面,只会导致执行继续。</p> <p>我发现的唯一办法是显而易见的,但不必要地不方便:完全杀死选项卡/窗口,然后打开一个新的。</p> <p>Google Chrome DevTools 是否提供某种方法来<em>立即</em>中止在<pre><code>debugger</code></pre>语句处停止的脚本?</p> <p>(如果答案恰好是“否”,请不要发布解决方法。我可以想到很多解决方法,例如按住 F-8 直到循环退出,当然,这不会起作用,如果无论如何,循环结果是一个无限循环,这里我只感兴趣是否有一个“官方”方法来中止和重新启动这样的脚本。)</p> </question> <answer tick="false" vote="1"> <p>你可以这样做,但你必须先准备好你的代码。</p> <p><strong>在 Google Chrome 开发工具中停止脚本执行的说明:</strong></p> <p>(1) 创建一个<em><strong>全局</strong></em>变量:</p> <pre><code>var devquit=0; $(document).ready({ //the rest of your code </code></pre> <p>(2) 在您可能希望退出的任何地方,插入此变量的测试:</p> <pre><code>//Lotsa code if (devquit > 0) return false; </code></pre> <p>(3) 在上述测试行或之前暂停执行脚本</p> <p>(4)切换到控制台</p> <p>(5) 类型:</p> <pre><code>> devquit 0 > devquit=1 <=== only this line is necessary > devquit 1 </code></pre> <p>(6) 继续执行脚本。当脚本执行上面步骤 (2) 中的测试时,将会 <pre><code>return false</code></pre> </p> <hr/> <p>备注:</p> <p>(A) 这个技巧适用于全局变量和对象,但不适用于局部变量。</p> <p>(B) 因此,您仍然可以对已经运行的代码使用此技巧 <em><strong>IF</strong></em> 您有一个全局变量或一个对象,如果它具有给定值,则该对象将返回 false。</p> <p>(C) 在紧要关头,您还可以从 DOM 中(在“元素”选项卡上)删除一个元素,这将导致 JavaScript 错误。例如,假设你有代码 <pre><code>var cartype = $('#cartype').val();</code></pre> 如果你删除该行代码之前 ID=<pre><code>cartype</code></pre> 的元素,那么 js 将在该行中断。 <em><strong>但是,当您尝试重新运行代码时,该元素仍然会丢失。</strong></em>上述技巧允许您无限地运行和重新运行代码。<em></em> </p> <hr/>更多注意事项:<p> </p>(a) 在代码中插入断点:只需在一行中单独键入 <p><code>debugger;</code><pre> 即可。如果 DevTools 打开,脚本将在此时跳转到调试器。如果 DevTools 未打开,代码将忽略语句。</pre> </p>(b) 想要在调试代码时避免跳入 jQuery 库?将其黑盒化。请参阅适用于 Chrome 的<p>黑盒说明<a href="https://developer.chrome.com/devtools/docs/blackboxing" rel="nofollow noreferrer"> - 或 - </a>适用于 Firefox<a href="https://hacks.mozilla.org/2013/08/new-features-of-firefox-developer-tools-episode-25/" rel="nofollow noreferrer"></a> </p> <hr/>参考资料:<p> </p><p>使用 Google Chrome 逐行调试 Javascript<a href="https://stackoverflow.com/questions/10638059/javascript-debugging-line-by-line-using-google-chrome?rq=1"></a> </p><p>在 Google Chrome 中调试时是否可以更改 javascript 变量值?<a href="https://stackoverflow.com/questions/4603021/is-it-possible-to-change-javascript-variable-values-while-debugging-in-google-ch"></a> </p> </answer></body>
React Native DEbugger 支持 React Native 0.74.0
嗨,由于 React Native 0.74.0 中引入了最新的实验性调试器,我们无法再使用 React Native 调试器,并且无法调试网络和 Redux。 任何人都可以帮助我设置 React Native
使用 Redux 使用 Expo 50 来调试 React Native 选项
如果可能的话,只是寻求意见,我一直在 Expo 中使用 React Native 和 Redux。 Expo 50 已发布,其中已弃用 React Native 调试器。 React Native 调试器很棒,因为...
我的应用程序与 Gmail API 集成。 我想查看(记录)我从 Gmail API 获得的完整原始响应 创建 Gmail 存根。 我使用 Java 和 Spring Boot。 例如,我想看到回复......
调试 GAS Web App doPost 以查看执行错误的输出
网络应用程序: 函数 doPost(e) { var data = JSON.parse(e.postData.contents).somethingtobreakthecode() 返回“好的” } 当收到 POST 请求时会失败。 任何人,甚至 Anony...
我正在尝试计算一个大数的阶乘,但遇到内存错误。我怎样才能优化我的代码?? 定义阶乘(n): “”“计算数字的阶乘...
当尝试获取某个进程的线程的调用堆栈时,我总是得到一个相同的帧,尽管它肯定有更多(至少 5 帧)。 StackWalk64() 总是在第一次成功...
我正在尝试在 VS2015 中的 C# 方法中添加条件断点。方法签名是: Core(类型类型,对象值,bool noAutoCreate) 断点的条件表达式为 type.Name.Con...
如果我尝试使用 C++ 在 Visual Studio Code 上运行调试会话,我会收到此错误 无法开始调试。 miDebuggerPath 的值无效 打开“launch.json” 这是我的配置,我想要...
当AddressSanitizer打印错误,但没有回溯,并且程序退出代码仍然是0时,这意味着什么?
我在 macOS 上使用 ASAN 通常会成功,但目前我遇到的问题是我的程序有时会终止并打印 ASAN 错误,但其他情况正常。我没有发现任何痕迹...
我有一个简单的 Kivy 界面,也使用终端。 示例代码: 进口猕猴桃 kivy.require('1.0.6') 从 kivy.app 导入 App 从 kivy.uix.label 导入标签 类我的应用程序(应用程序): 定义
当我调试循环内出错的东西时,比如在第 600 次迭代时,必须对每个循环进行中断可能会很痛苦。所以我尝试设置一个条件断点,只中断...
Blazor 服务器端 - 为什么在任务中不抛出异常?如何避免这种情况?它只是冻结了调试中的应用程序
在我的 Blazor 服务器应用程序中,我有著名的“计数器”页面/按钮 私有无效 IncrementCount() { 当前计数++; 抛出新的异常(“测试”); } 这没关系 - 抛出异常...
我正在学习使用 Godot 和 GDscript 制作三消游戏的教程。 (https://www.youtube.com/watch?v=YhykrMFHOV4&list=PL4vbr3u7UKWqwQlvwvgNcgDL1p_3hcNn2&index=1) 我遇到了一些
使用 launch.json 在 VS Code 中调试 Mocha 测试不起作用
我正在尝试使用 launch.json 在 VS Code 中调试我的摩卡测试,但出现此错误: ReferenceError:之前未定义 我还发现当我四处走动和发表评论时会遇到这些错误...
在 VS Code 中使用 launch.json 调试 Mocha 不起作用
我正在尝试使用 launch.json 在 VS Code 中调试我的摩卡测试,但出现此错误: ReferenceError:之前未定义 我还发现当我四处走动和发表评论时会遇到这些错误...
我添加了一些可以干净编译的代码,并且刚刚收到此 Windows 错误: ---------------------------- (MonTel 管理员)2.12.7:MtAdmin.exe - 应用程序错误 ----------------...
是否可以重写 JavaScript 的 toString() 函数来为调试提供有意义的输出?
当我在 JavaScript 程序中 console.log() 一个对象时,我只看到输出 [object Object],这对于弄清楚它是什么对象(甚至是什么类型的对象)没有太大帮助。 在 C# 中我...
如何确保 Flask 应用管理面板中的项目具有单击删除功能?
我有一个 Flask 应用程序,我正在其中实现管理面板功能。在此面板中,我显示从数据库检索的项目列表(在本例中为医生),每个项目都有一个删除按钮...
调试Python版本< 3.5 with vscode new debugger
在最近的 vscode 版本中,Python 扩展现在使用 debugpy 作为默认的 python 调试器,取代了旧的 ptvsd。 我需要在与 pytho 配合使用的软件程序中调试 python 脚本...