我在java程序上运行一个堆栈跟踪,它返回一个指向只有一个紧括号的行的行号。此代码所处的线程似乎处于错误状态,因为没有异常但线程占用了98%或更多的CPU。每当我看到CPU被占用时,或者注意到线程处于错误状态(事件未被处理)时,堆栈跟踪始终指向下面显示的行。虽然我已经看过几次,但我无法手动重现这个问题。有没有人知道堆栈跟踪指向近似括号时的含义?
...
while (true) {
try {
event = eventBlockingQueue.take();
... process event ...
} catch (InterruptedException e) {
... log ...
} catch (RuntimeException e) {
... log ...
} <-- Stacktrace points here!
}
答案 0 :(得分:0)
看起来您正在调试的源代码与字节码(编译代码)不同。我会尝试清理和重建项目。如果您正在调试JAR,请确保您拥有的源代码与您拥有的JAR版本相匹配。
答案 1 :(得分:0)
我怀疑堆栈跟踪在右括号上,因为 JVM 正在清理刚刚被消除的堆栈内存(通过右括号)。