Debugging linux上J9 VM生成的核心转储只显示/包含一个线程

Debugging linux上J9 VM生成的核心转储只显示/包含一个线程,debugging,jvm,gdb,websphere,j9,Debugging,Jvm,Gdb,Websphere,J9,在linux平台上,J9 VM生成核心转储的原因是什么,它只显示/包含一个线程(即当前线程) 注意:它是完整的核心转储(未截断) 这是(在下面的粗体部分): Linux不提供用于从正在运行的进程生成系统转储的操作系统API。JVM通过使用fork()API启动与父JVM进程相同的进程,在Linux上生成系统转储。JVM然后在子进程中生成SIGSEGV信号。SIGSEGV信号使Linux为子进程创建系统转储。父JVM根据需要通过-Xdump选项处理和重命名系统转储,并可能向转储文件中添加其他数据

在linux平台上,J9 VM生成核心转储的原因是什么,它只显示/包含一个线程(即当前线程)

注意:它是完整的核心转储(未截断)

这是(在下面的粗体部分):

Linux不提供用于从正在运行的进程生成系统转储的操作系统API。JVM通过使用fork()API启动与父JVM进程相同的进程,在Linux上生成系统转储。JVM然后在子进程中生成SIGSEGV信号。SIGSEGV信号使Linux为子进程创建系统转储。父JVM根据需要通过-Xdump选项处理和重命名系统转储,并可能向转储文件中添加其他数据

子进程的系统转储包含父进程中使用的内存区域的精确副本。SDK转储查看器可以从系统转储获取有关Java线程、类和堆的信息。但是,转储查看器[gdb]和其他系统转储调试器仅显示在子进程中运行的单个本机线程

如果需要所有线程,可以使用
gcore${PID}
或巧妙地执行
gcore%PID

IBM,但由于安全原因(DoS)被拒绝。有一些用户陆芯倾倒的试验。

这是(在下面的粗体部分):

Linux不提供用于从正在运行的进程生成系统转储的操作系统API。JVM通过使用fork()API启动与父JVM进程相同的进程,在Linux上生成系统转储。JVM然后在子进程中生成SIGSEGV信号。SIGSEGV信号使Linux为子进程创建系统转储。父JVM根据需要通过-Xdump选项处理和重命名系统转储,并可能向转储文件中添加其他数据

子进程的系统转储包含父进程中使用的内存区域的精确副本。SDK转储查看器可以从系统转储获取有关Java线程、类和堆的信息。但是,转储查看器[gdb]和其他系统转储调试器仅显示在子进程中运行的单个本机线程

如果需要所有线程,可以使用
gcore${PID}
或巧妙地执行
gcore%PID


IBM,但由于安全原因(DoS)被拒绝。有一些关于用户land core转储的实验。

您指的是core.*.dump文件吗?这些是一种特殊的格式,可以通过IBMSupportAssistant等工具读取。通常会同时创建一个javacore.*.txt文件,前几行应该有解释。在这个问题中,我们讨论的是core.*.dmp和gdb不能用于javacore文件。我不确定您想说什么。您的问题是“核心转储的原因是什么”,我解释说,如果同时生成javacore,它应该有原因。好吧,gdb也不打算在core.*.dmp文件上使用。@BrettKail关于gdb不打算在core.*.dmp文件上使用的评论,那不是真的,它是一个正常的核心转储,可以用gdb进行探索。请参阅我对以下问题的回答:如果内核是使用IBM系统转储机制生成的,那么为什么只有一个线程。@kgibm I已更正,谢谢。(你可能会考虑填写你的个人资料描述)你指的是一个核心**转储文件吗?这些是一种特殊的格式,可以通过IBMSupportAssistant等工具读取。通常会同时创建一个javacore.*.txt文件,前几行应该有解释。在这个问题中,我们讨论的是core.*.dmp和gdb不能用于javacore文件。我不确定您想说什么。您的问题是“核心转储的原因是什么”,我解释说,如果同时生成javacore,它应该有原因。好吧,gdb也不打算在core.*.dmp文件上使用。@BrettKail关于gdb不打算在core.*.dmp文件上使用的评论,那不是真的,它是一个正常的核心转储,可以用gdb进行探索。请参阅我对以下问题的回答:如果内核是使用IBM系统转储机制生成的,那么为什么只有一个线程。@kgibm I已更正,谢谢。(您可能会考虑填写您的配置文件描述)。描述了为什么在分叉过程中剩余的本地线程描述了为什么本地线程在分叉过程中消失了。
(gdb) info threads
* 1 Thread 0x7f33544d9700 (LWP 6471)  0x00007f335484d6e4 in j9dump_create () from ./app/was/IBM/WebSphere/AppServer/java/jre/lib/amd64/compressedrefs/libj9prt24.so