如何在Ubuntu 20.04中显示Java程序batfish-tiramisu的完整堆栈跟踪
显示Java程序完整函数调用堆栈(解决Batfish日志"...3 more"截断问题)
在Ubuntu 20.04环境运行batfish-tiramisu时,异常日志末尾出现...3 more,导致无法查看完整的函数调用堆栈,可通过以下方式解决:
方法一:命令行直接添加JVM参数
运行程序时,在Java命令中加入两个关键参数:
-XX:-OmitStackTraceInFastThrow:禁用JVM的快速抛出优化(该优化会在重复抛出相同异常时省略部分堆栈信息)-XX:MaxJavaStackTraceDepth=-1:将堆栈跟踪的最大深度设置为无限制(默认值为1024,超出会截断)
示例运行命令:
java -XX:-OmitStackTraceInFastThrow -XX:MaxJavaStackTraceDepth=-1 -jar batfish-tiramisu.jar [你的程序启动参数]
方法二:修改启动脚本参数
如果是通过Batfish的启动脚本运行程序,找到脚本中配置JVM参数的部分,将上述两个参数添加到参数列表中,保存后重新启动程序即可。
补充说明
Java异常日志中的...N more是JVM的默认行为:当异常被多层包装(如Caused by链)时,若某段堆栈帧在之前已经打印过,JVM会用该标记省略重复内容,避免日志冗余。通过上述参数可以强制输出完整的调用堆栈,便于定位问题根源。
内容的提问来源于stack exchange,提问作者ylwdsd
相关产品推荐
相关产品推荐

