0

我在 java 程序上运行堆栈跟踪,它返回一个行号,该行号指向只有一个右括号的行。此代码所在的线程似乎处于错误状态,因为没有异常,但该线程正在消耗 98% 或更多的 CPU。每当我看到 CPU 被占用,或者注意到线程处于错误状态(未处理事件)时,堆栈跟踪总是指向下面显示的行。虽然我已经看过几次,但我无法手动重现此问题。有谁知道当堆栈跟踪指向右括号时是什么意思?

    ...
while (true) {
    try {
        event = eventBlockingQueue.take();
        ... process event ...
    } catch (InterruptedException e) {
        ... log ...
    } catch (RuntimeException e) {
        ... log ...
    } <-- Stacktrace points here!
}
4

2 回答 2

0

看起来您正在调试的源代码与字节码(编译代码)不同。我会尝试清理和重建项目。如果您正在调试 JAR,请确保您拥有的源代码与您拥有的 JAR 版本相匹配。

于 2013-08-15T17:28:29.063 回答
0

我怀疑堆栈跟踪在右括号上,因为 JVM 正在清理刚刚被排除的堆栈内存(通过右括号)。

于 2021-07-08T04:22:34.073 回答