debugging 相关问题

调试是在计算机程序中查找和修复错误的有条不紊的过程。 **重要说明:**此标记仅用于调试技术或调试过程的问题,而不是请求帮助调试代码。

chrome:如何中止在“debugger”语句处停止的脚本?愚蠢的片段

考虑下面这个愚蠢的例子: 愚蠢的片段 变量我 = 0; 同时(我< 100) { console.log(i); ...</desc> <question vote="2"> <p>考虑以下愚蠢的例子:</p> <pre><code>&lt;!doctype html&gt; &lt;meta charset=&#34;utf-8&#34;&gt; &lt;title&gt;dumb snippet&lt;/title&gt; &lt;script&gt; var i = 0; while (i &lt; 100) { console.log(i); debugger; i += 1; } &lt;/script&gt; </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 &gt; 0) return false; </code></pre> <p>(3) 在上述测试行或之前暂停执行脚本</p> <p>(4)切换到控制台</p> <p>(5) 类型:</p> <pre><code>&gt; devquit 0 &gt; devquit=1 &lt;=== only this line is necessary &gt; 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 = $(&#39;#cartype&#39;).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>

回答 0 投票 0

React Native DEbugger 支持 React Native 0.74.0

嗨,由于 React Native 0.74.0 中引入了最新的实验性调试器,我们无法再使用 React Native 调试器,并且无法调试网络和 Redux。 任何人都可以帮助我设置 React Native

回答 1 投票 0

使用 Redux 使用 Expo 50 来调试 React Native 选项

如果可能的话,只是寻求意见,我一直在 Expo 中使用 React Native 和 Redux。 Expo 50 已发布,其中已弃用 React Native 调试器。 React Native 调试器很棒,因为...

回答 1 投票 0

如何记录 Gmail API 的响应?

我的应用程序与 Gmail API 集成。 我想查看(记录)我从 Gmail API 获得的完整原始响应 创建 Gmail 存根。 我使用 Java 和 Spring Boot。 例如,我想看到回复......

回答 1 投票 0

调试 GAS Web App doPost 以查看执行错误的输出

网络应用程序: 函数 doPost(e) { var data = JSON.parse(e.postData.contents).somethingtobreakthecode() 返回“好的” } 当收到 POST 请求时会失败。 任何人,甚至 Anony...

回答 1 投票 0

内存错误(无基本情况的递归)

我正在尝试计算一个大数的阶乘,但遇到内存错误。我怎样才能优化我的代码?? 定义阶乘(n): “”“计算数字的阶乘...

回答 1 投票 0

StackWalk64() 返回单个帧

当尝试获取某个进程的线程的调用堆栈时,我总是得到一个相同的帧,尽管它肯定有更多(至少 5 帧)。 StackWalk64() 总是在第一次成功...

回答 4 投票 0

VisualStudio 中类型名称上的条件断点

我正在尝试在 VS2015 中的 C# 方法中添加条件断点。方法签名是: Core(类型类型,对象值,bool noAutoCreate) 断点的条件表达式为 type.Name.Con...

回答 2 投票 0

尽管配置正确,C/C++ 调试器仍无法在 VSC 中工作

如果我尝试使用 C++ 在 Visual Studio Code 上运行调试会话,我会收到此错误 无法开始调试。 miDebuggerPath 的值无效 打开“launch.json” 这是我的配置,我想要...

回答 3 投票 0

当AddressSanitizer打印错误,但没有回溯,并且程序退出代码仍然是0时,这意味着什么?

我在 macOS 上使用 ASAN 通常会成功,但目前我遇到的问题是我的程序有时会终止并打印 ASAN 错误,但其他情况正常。我没有发现任何痕迹...

回答 1 投票 0

防止 Kivy 留下调试消息

我有一个简单的 Kivy 界面,也使用终端。 示例代码: 进口猕猴桃 kivy.require('1.0.6') 从 kivy.app 导入 App 从 kivy.uix.label 导入标签 类我的应用程序(应用程序): 定义

回答 3 投票 0

为什么条件断点会使我的程序运行速度如此之慢?

当我调试循环内出错的东西时,比如在第 600 次迭代时,必须对每个循环进行中断可能会很痛苦。所以我尝试设置一个条件断点,只中断...

回答 7 投票 0

Blazor 服务器端 - 为什么在任务中不抛出异常?如何避免这种情况?它只是冻结了调试中的应用程序

在我的 Blazor 服务器应用程序中,我有著名的“计数器”页面/按钮 私有无效 IncrementCount() { 当前计数++; 抛出新的异常(“测试”); } 这没关系 - 抛出异常...

回答 1 投票 0

我的游戏突然无法记录点击/触摸

我正在学习使用 Godot 和 GDscript 制作三消游戏的教程。 (https://www.youtube.com/watch?v=YhykrMFHOV4&list=PL4vbr3u7UKWqwQlvwvgNcgDL1p_3hcNn2&index=1) 我遇到了一些

回答 1 投票 0

使用 launch.json 在 VS Code 中调试 Mocha 测试不起作用

我正在尝试使用 launch.json 在 VS Code 中调试我的摩卡测试,但出现此错误: ReferenceError:之前未定义 我还发现当我四处走动和发表评论时会遇到这些错误...

回答 1 投票 0

在 VS Code 中使用 launch.json 调试 Mocha 不起作用

我正在尝试使用 launch.json 在 VS Code 中调试我的摩卡测试,但出现此错误: ReferenceError:之前未定义 我还发现当我四处走动和发表评论时会遇到这些错误...

回答 1 投票 0

什么是特权指令?

我添加了一些可以干净编译的代码,并且刚刚收到此 Windows 错误: ---------------------------- (MonTel 管理员)2.12.7:MtAdmin.exe - 应用程序错误 ----------------...

回答 10 投票 0

是否可以重写 JavaScript 的 toString() 函数来为调试提供有意义的输出?

当我在 JavaScript 程序中 console.log() 一个对象时,我只看到输出 [object Object],这对于弄清楚它是什么对象(甚至是什么类型的对象)没有太大帮助。 在 C# 中我...

回答 17 投票 0

如何确保 Flask 应用管理面板中的项目具有单击删除功能?

我有一个 Flask 应用程序,我正在其中实现管理面板功能。在此面板中,我显示从数据库检索的项目列表(在本例中为医生),每个项目都有一个删除按钮...

回答 1 投票 0

调试Python版本< 3.5 with vscode new debugger

在最近的 vscode 版本中,Python 扩展现在使用 debugpy 作为默认的 python 调试器,取代了旧的 ptvsd。 我需要在与 pytho 配合使用的软件程序中调试 python 脚本...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.