问题标签 [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.
javascript - 使用自定义选项从控制台运行 JSlint?
在上一个问题中,在 .js 文件上运行 JSLint,从 chrome 或 firefox 的调试控制台中,我学习了如何从控制台或节点运行 JSLint。
有没有办法运行 JSLint(来自 JavaScript 代码,如对上述问题的答案),但使用自定义选项,例如对于包含 jQuery 的代码(使用 JQuery 的 Javascript 的 JSLint 验证)选项假设浏览器和以 jQuery 和 $ 作为参数的选项预定义部分?
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提交了一个错误,尽管我不确定这是行为的根源。
javascript - 解析调试器关键字
debugger
关于关键字的解析规则是什么?
在 Chrome 上,以下工作正常:
但
是一个SyntaxError
。
为什么用另一种形式的空白(空格)替换一种形式的空白(新行)如此重要?解析规则是debugger
什么?
javascript - 查看发生的 Javascript 调用?
我继承了一个相当大的项目,我正试图找出一个烦人的错误,但对于我的生活,我找不到这个特定操作在哪里被调用和执行。有没有办法在发生 Javascript 调用时查看它们?我可以在 Firebug 中暂停执行,但它总是在 addDomListenerOnce 调用处停止。
javascript - 为什么firefox调试器会跳转到随机位置?
我在 file-A.js 中有这段代码
Firefox 调试器在我的函数的第一行停止,这正是我想要的。
所以我点击了两次“step in”按钮,我希望 firefox 的调试器将我带到 createPropertyEditor 函数定义,应该会发生什么,对吧?但是,调试器会跳转到 file-B.js 中的随机位置。
调试器跳转到标有“>>>>”的行
为什么会这样?
javascript - Chrome devtools:无需切换到“源”选项卡即可进入调试器
如果我debugger
在打开 Chrome 开发工具的情况下将语句放入我的 JavaScript 源代码中,它将停止执行,因此我可以从控制台以交互方式探索当前上下文。真是太棒了。
但不幸的是,它也会切换到 Sources 选项卡并显示debugger
语句发生的行。大多数时候,我想键入 JavaScript 命令,所以我必须手动切换回控制台选项卡。
我可以避免选项卡切换并留在控制台选项卡中吗?
还是我用错了?
javascript - 如何调试特定的 JavaScript 点击事件?
在雅虎天气页面上,有一个链接标记为C
将温度单位从 更改Fahrenheit
为Celsius
。
我正在调试此操作并了解将 F 转换为 C 的幕后执行的 JavaScript。调试此类事情的方法是什么?
google-chrome-devtools - Javascript 调试:如何在实际事件处理程序代码上设置断点?
有什么方法可以让 Chrome 调试器在运行到不同的 Javascript 文件时中断?
因为我正在调试一个遗留的 web 应用程序,大量的 js 文件,这个功能将帮助我找到与 jquery.click() 方法绑定的事件处理程序。
修改:或者简单地说,如何快速找到jquery的实际事件处理程序代码?
debugging - VS2012 Javascript 调试不起作用
在过去的两天里,我遇到了一个我无法解决的问题。
每当我尝试在笔记本电脑上使用 VS2012 调试 Windows 8 商店 JavaScript 应用程序时,都会收到以下错误:
当我尝试在本地和模拟器中调试时会发生这种情况。
这仅适用于 javascript 项目,所有其他类型的项目都可以正常工作。
到目前为止,我采取的步骤是:
- 修复安装
- 已安装更新 1
- 将所有应用程序包添加到安全选项卡上的程序文件 (x86)\Common Files\Microsoft Shared\VS7Debug。
- 卸载并重新安装
没有任何效果。
有趣的是,这个错误是关于我不想做的远程调试,我没有为 2012 年安装远程调试,但它已安装在我的 VS2008 系统上。
我为 VS2012 安装了它,并在尝试调试时打开了监视器,但日志中没有显示任何内容。
我在全新的 win8 桌面安装上使用相同的 VS2012 DVD 进行了安装,它没有任何问题,尽管它在第一次运行时确实要求我设置权限(我不记得它是否在我的笔记本电脑上这样做)。
我认为在我的笔记本电脑上安装时出现了问题,它问我是否想从以前版本的 Visual Studio 导入设置,我说是。
最近两天我一直在网上搜索这个主题,有些人说这个问题是由 VS2012 试图打开一些 VS2008 文件引起的,但如何解决这个问题尚不清楚。
当我卸载 VS2012 并重新安装时,它并没有问我是否要导入设置,所以我认为我没有完全卸载它(重新安装后它仍然有我最近访问的项目的列表)。
很抱歉发了这么长的帖子,但这让我发疯了,我想不出下一步该尝试什么。有人可以帮忙吗?
visual-studio-2010 - Visual Studio 调试器 - 如何快速找到 long if 语句返回 false 的哪一部分
我正在寻找一种快速方法来识别复杂 if 条件中的部分,这将导致整个条件返回 false。
谢谢。