Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用行号时如何查找错误位置_Javascript_Debugging_Onerror - Fatal编程技术网

Javascript 无法使用行号时如何查找错误位置

Javascript 无法使用行号时如何查找错误位置,javascript,debugging,onerror,Javascript,Debugging,Onerror,我发现很难在我无法访问的客户端上找到javascript中发生错误的位置。目前,我使用onerror捕获错误,并将参数发送到服务器上的日志 不幸的是,行号没有帮助,因为包含了大量javascript文件,导致行号与我可以访问的任何内容都不对应 所以,如果我得到了类似于n的东西,没有定义,并且n在函数中出现了很多次,我无法找到它发生的地方 我一直在尝试引用行上的代码,抛出错误,比如x=n*5+4,然后我可以搜索该代码,但没有从javascript中引用行上的实际代码 那么在这种情况下,如何定位抛出

我发现很难在我无法访问的客户端上找到javascript中发生错误的位置。目前,我使用onerror捕获错误,并将参数发送到服务器上的日志

不幸的是,行号没有帮助,因为包含了大量javascript文件,导致行号与我可以访问的任何内容都不对应

所以,如果我得到了类似于n的东西,没有定义,并且n在函数中出现了很多次,我无法找到它发生的地方

我一直在尝试引用行上的代码,抛出错误,比如x=n*5+4,然后我可以搜索该代码,但没有从javascript中引用行上的实际代码

那么在这种情况下,如何定位抛出错误的行呢

客户端只使用firefox,如果这很重要的话。 我无法访问客户端 这不是一个我一直坚持的错误,而是如何在这种情况下跟踪错误
您最好使用Firefox的调试器

开放式开发工具 转到调试器,选择所需的.js文件,然后根据您所在的版本,点击左下角的小{}按钮-这将美化JavaScript 通过单击行号旁边的设置断点 从现在开始,你必须做这件老式的事。在故障代码周围设置一个断点网络,然后继续缩小范围,直到找到导致错误的原因


当然,一旦找到行,它仍然不会与原始代码成1:1的比例,但希望断点练习至少会减少您必须深入研究的代码/逻辑的范围。

使用调试器启用“出错时中断”。一旦你休息了,看看当地人,寻找关于你所在位置的线索。向上看每一帧

您应该能够跟踪堆栈中的n并找出它为null的原因


william建议的小{}也很有帮助

我假设您也无法访问源地图?不要认为我可以使用它们,因为有些代码是动态生成的注意,无法访问客户端的问题不是错误,而是远程客户端上的错误陷阱,我正在处理的。但是您可以访问代码并了解客户端的浏览器规格,对吗?假设客户端没有弄乱任何东西,您应该能够重现问题。首先,我需要知道问题是什么:,代码中的某个错误没有帮助。那太令人沮丧了。然而,第一步应该是尝试重现相同的错误。使用firefox和混乱你的网站,直到你得到未定义。这就是我所能建议的。哈哈,是的,回过头来看,我完全误解了这个问题。不幸的是,你可能已经知道,你能做的事情不多。这是客户端,超出了您的控制范围,因此请在产品出厂前通过良好的测试来避免: