问题标签 [stack-trace]

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 投票
3 回答
30783 浏览

java - NullPointerException 堆栈跟踪在没有调试代理的情况下不可用

我最近发现了一个导致 NullPointerException 的错误。使用标准 slf4j 语句捕获并记录异常。删减代码如下:

如您所见,没有什么特别的。但是,在我们拥有的所有异常日志语句中,只有这一条不会打印堆栈跟踪。它只打印消息(表示为“...”)和异常类的名称(java.lang.NullPointerException)。

由于异常的堆栈跟踪是延迟加载的,我认为可能存在某种指令重新排序问题,并决定在日志语句之前调用 e.getStackTrace() 。这没什么区别。

所以我决定在启用调试代理的情况下重新启动。但是,因为我什至附加到进程,我注意到现在堆栈跟踪正在打印。很明显,调试代理的存在导致一些额外的调试信息变得可用。

从那以后,我已经修复了异常的根本原因。但是我想了解为什么没有调试器就无法使用堆栈跟踪。有人知道吗?

澄清:这不是日志记录问题。想象一下相同的 try/catch 子句,但在 catch 中,我打印以下值:

如果没有调试器,它会打印“0”,使用调试器会打印一个正数(在这种情况下为 9)。

更多信息:这发生在 JDK 1.6.0_13、64bit、amd64、linux 2.6.9

0 投票
3 回答
67334 浏览

python - 获取Python中调用函数模块的__name__

假设myapp/foo.py包含:

myapp/bar.py包含:

在这种情况下,我想caller_name设置为__name__调用函数模块的属性(即“myapp.foo”)。如何才能做到这一点?

0 投票
5 回答
4760 浏览

python - 在 Python 中查找原始异常的模块名称

例子:

在上面的示例中,异常实际上是在 myapp/util/url.py 模块中引发的。有没有办法获得该__name__模块的?

我的意图是在logging.getLogger函数中使用它。

0 投票
4 回答
9029 浏览

debugging - VB6 中的运行时错误堆栈跟踪或位置

我维护一个用 VB6 编写的旧应用程序。在客户端的环境中,它会引发我无法在调试器下重现的运行时错误。有什么方法可以获取堆栈跟踪或错误位置吗?

我的意思是,不要像这里那样在整个代码中放置跟踪语句,也不需要像这里那样添加错误处理程序来记录每个过程。

这似乎是一个简单的问题。对不起。我只是不太了解VB6。考虑到它被(或曾经)使用的广泛程度,谷歌搜索出任何信息是非常困难的。

0 投票
2 回答
1045 浏览

groovy - 在编译 groovy 类时得到奇怪的堆栈跟踪

我正在用 Groovy 编写一个小型测试应用程序。我有以下代码。

}

我收到了这个相当神秘的信息。

nojevive@follett:~/dev/code/mysmallapp$ grails generate-all 地址 欢迎使用 Grails 1.1.1 - http://grails.org/ 获得 Apache Standard License 2.0 许可 Grails 主页设置为:/home/nojevive/dev /圣杯

基本目录:/home/nojevive/dev/code/mysmallapp 运行脚本 /home/nojevive/dev/grails/scripts/GenerateAll.groovy 环境设置为开发 groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: [] at Project$__clinit__closure1.doCall(Project.groovy:11) at Project$__clinit__closure1.doCall(Project.groovy) at Project.getProperty(Project.groovy) at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy:467) at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy) at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:274) at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy) at _PluginDependencies_groovy$_run_closure6.doCall(_PluginDependencies_groovy:447) at _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74) at _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37) at GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42) at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324) at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334) at gant.Gant$_dispatch_closure6.doCall(Gant.groovy) at gant.Gant.withBuildListeners(Gant.groovy:344) at gant.Gant.this$2$withBuildListeners(Gant.groovy) at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source) at gant.Gant.dispatch(Gant.groovy:334) at gant.Gant.this$2$dispatch(Gant.groovy) at gant.Gant.invokeMethod(Gant.groovy) at gant.Gant.processTargets(Gant.groovy:495) at gant.Gant.processTargets(Gant.groovy:480) Error loading plugin manager: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []

首先我想也许我的号码超出了范围(我有 1000000)。然后我想也许这个号码是一个内置名称,所以我重命名为 Residencenumber。但没有运气。我在这里想念什么?我现在删除了所有约束,但仍然是相同的消息。所以它与我猜的领域无关。有什么东西一定要坏掉吗?

0 投票
2 回答
3414 浏览

java - 为什么 log4j 在(大量)重复相同异常后禁用堆栈跟踪?

在我们的一个客户安装中,我们遇到了数千次相同的异常。在大量记录良好的堆栈跟踪(9332)之后,仍然记录了异常的发生,但没有堆栈跟踪。重新启动 java 进程后,同样的事情:这次我们有 17858 个堆栈跟踪,然后只有异常发生本身。

这里有一个类似的问题,但没有答案......

它是 log4j 功能还是错误?(我相信前者,因为我真的很喜欢那些 apache 家伙所做的)

有任何想法吗?

0 投票
31 回答
682588 浏览

java - 如何将堆栈跟踪转换为字符串?

Throwable.getStackTrace()将结果转换为描述堆栈跟踪的字符串的最简单方法是什么?

0 投票
7 回答
180101 浏览

python - 从 Python 代码中的方法打印当前调用堆栈

在 Python 中,如何从方法中打印当前调用堆栈(出于调试目的)。

0 投票
12 回答
63017 浏览

php - 如何让 PHP 在错误时产生回溯?

尝试使用其默认的仅当前行错误消息来调试 PHP 是可怕的。产生错误时,如何让 PHP 产生回溯(堆栈跟踪)?

0 投票
1 回答
219 浏览

ruby - 查找 (eval:...) 代码的来源

我有一些代码会在某些时候产生堆栈跟踪:

如何找到on_success_res_for_register定义的来源?该代码是从某个计时器调用的,我在本地化功能代码时遇到了问题。有什么方法可以获取该命令的来源吗?

另外 - 这样的堆栈跟踪行由生成eval(),还是可能以其他方式(send() 的一些副作用?或捕获所有方法调用的东西?)