问题标签 [javascript-debugger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
572 浏览

javascript - 使用自定义选项从控制台运行 JSlint?

在上一个问题中,在 .js 文件上运行 JSLint,从 chrome 或 firefox 的调试控制台中,我学习了如何从控制台或节点运行 JSLint。

有没有办法运行 JSLint(来自 JavaScript 代码,如对上述问题的答案),但使用自定义选项,例如对于包含 jQuery 的代码(使用 JQuery 的 Javascript 的 JSLint 验证)选项假设浏览器和以 jQuery 和 $ 作为参数的选项预定义部分?

0 投票
2 回答
570 浏览

eclipse - Eclipse 中的 V8 调试器:逻辑,还是最奇怪的错误?

我正在编写一个Node.js应用程序,其中我使用字符串转换的整数作为键(例如“62616324573”)用数据填充对象。对象总是将键{key:}存储为字符串,这与 javascript数组及其[index]的工作方式相比是理想的:

数组定义了一百万次undefined,定义索引之间的每个索引一次。

但是,我发现我无法正确调试我的新对象,因为Variables面板中Eclipse显示Failed to read variables. 在内部,它们似乎工作正常。

采取以下代码:

设置断点breakpoint_here并使用即时中断调试器运行它,例如node --debug-brk=5858 debugtest.js. 按下resume以从第 1 行跳转到断点。转到您的Variables面板并尝试检查debugMe:面板将崩溃。

使用 10..00 和 10..01 再试一次。没问题。除了,从它的写入方式来看,这些数字似乎被解析为数组索引(!)。

现在试试 10..10 和 83..02。突然间,83..33 是普通的JSON key而不是数组索引,但 10..00 仍然是数组索引。(?)

现在尝试 10..00 和 33..33,Variables窗口将再次崩溃。这是我所期望的:

这就是我猜测正在发生的事情,尽管在调试仍然合作的对象时您实际上看不到它:

我猜测的问题是这种情况下的数字都是数组索引并且差异太大,因为调试器会记住 2302611133 次undefined,这个问题应该只在array使用而不是 JSON时存在object

  • 为什么有些数字作为键(字符串)而另一些作为索引?
  • 为什么某些索引组合在调试器中起作用,而另一些则不起作用?
  • 在我不知道的情况下,“百万次未定义”问题是否也发生在对象上?

让我回顾一下:

  • 字符串转换整数“int”的微小差异似乎工作正常,但在调试器中它们变成 [indices]
  • 密钥中高达约十亿的巨大差异不起作用,Variables窗口崩溃。没有控制台输出。
  • 更大的差异再次起作用,但有些成为[索引],而另一些则保持“关键”。

因为我必须进行手动崩溃测试,所以我花了很长时间才发现问题出在数字上,而不是对象本身的内容上。很难想象问题只影响调试器而不影响应用程序本身,因为它是相同的 (V8) 引擎。我希望有人能指出我遗漏的所有事实和变量。

-更新-

似乎没有人知道这件事。未知的逻辑,也不是已知的错误。我在 Eclipse WDT提交了一个错误,尽管我不确定这是行为的根源。

0 投票
1 回答
60 浏览

javascript - 解析调试器关键字

debugger关于关键字的解析规则是什么?

在 Chrome 上,以下工作正常:

是一个SyntaxError

为什么用另一种形式的空白(空格)替换一种形式的空白(新行)如此重要?解析规则是debugger什么?

0 投票
3 回答
176 浏览

javascript - 查看发生的 Javascript 调用?

我继承了一个相当大的项目,我正试图找出一个烦人的错误,但对于我的生活,我找不到这个特定操作在哪里被调用和执行。有没有办法在发生 Javascript 调用时查看它们?我可以在 Firebug 中暂停执行,但它总是在 addDomListenerOnce 调用处停止。

0 投票
0 回答
103 浏览

javascript - 为什么firefox调试器会跳转到随机位置?

我在 file-A.js 中有这段代码

Firefox 调试器在我的函数的第一行停止,这正是我想要的。

所以我点击了两次“step in”按钮,我希望 firefox 的调试器将我带到 createPropertyEditor 函数定义,应该会发生什么,对吧?但是,调试器会跳转到 file-B.js 中的随机位置。

调试器跳转到标有“>>>>”的行

为什么会这样?

0 投票
3 回答
5994 浏览

javascript - Chrome devtools:无需切换到“源”选项卡即可进入调试器

如果我debugger在打开 Chrome 开发工具的情况下将语句放入我的 JavaScript 源代码中,它将停止执行,因此我可以从控制台以交互方式探索当前上下文。真是太棒了。

但不幸的是,它也会切换到 Sources 选项卡并显示debugger语句发生的行。大多数时候,我想键入 JavaScript 命令,所以我必须手动切换回控制台选项卡。

我可以避免选项卡切换并留在控制台选项卡中吗?

还是我用错了?

0 投票
1 回答
25470 浏览

javascript - 如何调试特定的 JavaScript 点击事件?

在雅虎天气页面上,有一个链接标记为C将温度单位从 更改FahrenheitCelsius

小麦雅虎

我正在调试此操作并了解将 F 转换为 C 的幕后执行的 JavaScript。调试此类事情的方法是什么?

链接http ://weather.yahoo.com/?w=2295401

0 投票
0 回答
223 浏览

google-chrome-devtools - Javascript 调试:如何在实际事件处理程序代码上设置断点?

有什么方法可以让 Chrome 调试器在运行到不同的 Javascript 文件时中断?

因为我正在调试一个遗留的 web 应用程序,大量的 js 文件,这个功能将帮助我找到与 jquery.click() 方法绑定的事件处理程序。


修改:或者简单地说,如何快速找到jquery的实际事件处理程序代码?

0 投票
0 回答
602 浏览

debugging - VS2012 Javascript 调试不起作用

在过去的两天里,我遇到了一个我无法解决的问题。

每当我尝试在笔记本电脑上使用 VS2012 调试 Windows 8 商店 JavaScript 应用程序时,都会收到以下错误:

当我尝试在本地和模拟器中调试时会发生这种情况。

这仅适用于 javascript 项目,所有其他类型的项目都可以正常工作。

到目前为止,我采取的步骤是:

  1. 修复安装
  2. 已安装更新 1
  3. 将所有应用程序包添加到安全选项卡上的程序文件 (x86)\Common Files\Microsoft Shared\VS7Debug。
  4. 卸载并重新安装

没有任何效果。

有趣的是,这个错误是关于我不想做的远程调试,我没有为 2012 年安装远程调试,但它已安装在我的 VS2008 系统上。

我为 VS2012 安装了它,并在尝试调试时打开了监视器,但日志中没有显示任何内容。

我在全新的 win8 桌面安装上使用相同的 VS2012 DVD 进行了安装,它没有任何问题,尽管它在第一次运行时确实要求我设置权限(我不记得它是否在我的笔记本电脑上这样做)。

我认为在我的笔记本电脑上安装时出现了问题,它问我是否想从以前版本的 Visual Studio 导入设置,我说是。

最近两天我一直在网上搜索这个主题,有些人说这个问题是由 VS2012 试图打开一些 VS2008 文件引起的,但如何解决这个问题尚不清楚。

当我卸载 VS2012 并重新安装时,它并没有问我是否要导入设置,所以我认为我没有完全卸载它(重新安装后它仍然有我最近访问的项目的列表)。

很抱歉发了这么长的帖子,但这让我发疯了,我想不出下一步该尝试什么。有人可以帮忙吗?

0 投票
1 回答
40 浏览

visual-studio-2010 - Visual Studio 调试器 - 如何快速找到 long if 语句返回 false 的哪一部分

我正在寻找一种快速方法来识别复杂 if 条件中的部分,这将导致整个条件返回 false。

谢谢。