You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetty因段错误崩溃,求助分析core dump及指定gdb可执行文件

关于Jetty Java应用段错误的GDB分析及排查指导

一、GDB命令中executable的指定

崩溃进程为Java虚拟机进程(日志显示Process 32201 (java)),因此gdb命令中的executable需要指定Java可执行文件的路径:

  • 先通过which java获取系统默认Java命令的具体路径,比如输出为/usr/bin/java,则完整命令为:
gdb /usr/bin/java core-file
  • 如果使用自定义JDK,替换为对应JDK目录下的bin/java路径即可。

二、额外排查指导(应用日志信息不足时)

  1. 优先查找JVM崩溃日志
    Java进程崩溃时默认会生成hs_err_pid<进程ID>.log(对应本次崩溃的文件为hs_err_pid32201.log),该文件通常位于应用工作目录、/tmp目录或JVM启动参数指定的路径下。文件包含崩溃时的线程栈、内存信息、JVM参数、系统库加载情况等关键内容,是排查Java段错误的核心参考资料。

  2. GDB分析核心转储的关键操作
    加载core文件后,执行以下命令获取有效信息:

  • 查看所有线程的调用栈,定位崩溃线程(标记为*的线程):
thread apply all bt
  • 查看加载的共享库信息,确认Jetty或应用依赖的本地库版本:
info sharedlibrary
  • 针对崩溃线程,查看其本地栈帧,重点关注是否存在JNI(Native)代码调用、JVM内部模块或系统库的异常。
  1. 常见排查方向
  • JNI代码问题:若应用或Jetty使用了自定义Native扩展,检查JNI代码是否存在内存越界、空指针引用等问题。
  • JVM版本兼容性:尝试升级至对应JDK的最新稳定版本,排查是否为JVM已知Bug导致的崩溃。
  • 系统库冲突:检查系统中安装的依赖库(如OpenSSL等Jetty常用库)版本是否与JVM或Jetty兼容。
  • 硬件内存故障:通过memtest等工具排查服务器内存是否存在硬件问题。

用户提供的崩溃日志:

May 26 07:33:49 filr jetty.sh[32201]: 2024-05-26 07:33:49.813:INFO::main: Redirecting stderr/stdout to /var/opt/jett>
May 26 07:33:49 filr jetty.sh[32201]: 2024-05-26 07:33:49.813:DBUG:oejx.XmlConfiguration:main: XML call setErr
May 26 07:34:39 filr systemd-coredump[32747]: [🡕] Process 32201 (java) of user 469 dumped core.
May 26 07:34:39 filr systemd[1]: vabase-jetty.service: Main process exited, code=killed, status=11/SEGV
May 26 07:34:39 filr systemd[1]: vabase-jetty.service: Failed with result 'signal'.

内容的提问来源于stack exchange,提问作者user6903099

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:52:40