在linux 下运行 pkill -7 ID 时提示
 # A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0xb7f3f402, pid=6008, tid=3086108352
#
# JRE version: 6.0_21-b06
# Java VM: Java HotSpot(TM) Client VM (17.0-b16 mixed mode, sharing linux-x86 )
# Problematic frame:
# C  [+0x402]  __kernel_vsyscall+0x2
#
# An error report file with more information is saved as:
# /DevEvrionment/Projects/APMS1.01/hs_err_pid6008.log
  详细内容如下
   #
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0xb7f3f402, pid=6008, tid=3086108352
#
# JRE version: 6.0_21-b06
# Java VM: Java HotSpot(TM) Client VM (17.0-b16 mixed mode, sharing linux-x86 )
# Problematic frame:
# C  [+0x402]  __kernel_vsyscall+0x2
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#---------------  T H R E A D  ---------------Current thread is native threadsiginfo:si_signo=SIGBUS: si_errno=0, si_code=0 (BUS0), si_addr=0x000017f7Registers:
EAX=0xfffffffc, EBX=0xb7645bd8, ECX=0x00000000, EDX=0x00001779
ESP=0xbfbf28dc, EBP=0xbfbf2918, ESI=0x00000000, EDI=0x00cacff4
EIP=0xb7f3f402, CR2=0x00000000, EFLAGS=0x00000286Top of Stack: (sp=0xbfbf28dc)
0xbfbf28dc:   00c9cac7 bfbf28fc 00c9c980 b7645d90
0xbfbf28ec:   00000000 bfbf28fc 00000000 00000001
0xbfbf28fc:   00c9c980 b7645d90 00afa450 00000000
0xbfbf290c:   0805270c 00050000 00000000 bfbf2988
0xbfbf291c:   0804dd78 b7645b90 bfbf2938 080498d0
0xbfbf292c:   bfbf29d0 00b31805 bfbf2940 080510f9
0xbfbf293c:   b7645b90 00000000 00000000 00000000
0xbfbf294c:   00001000 00000000 00050000 00000000 Instructions: (pc=0xb7f3f402)
0xb7f3f3f2:   00 00 00 00 00 00 00 00 00 00 00 00 00 00 cd 80
0xb7f3f402:   c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 Stack: [0xbfba7000,0xbfbf7000],  sp=0xbfbf28dc,  free space=12ebfbf2260k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [+0x402]  __kernel_vsyscall+0x2
C  [java+0x5d78]
C  [java+0x17f6]
C  [libc.so.6+0x15e9c]  __libc_start_main+0xdc求高手指点啊 !!!!

解决方案 »

  1.   

    一般KILL时,应该发送SIGKILL信号,并生成一些dump文件等。
    发生SIGBUS(总线错误),原因有许多可能
    有可能是系统目录空间不足,你用df命令确认一下。如果还不能解决就要分析dump文件确认问题具体原因了。
      

  2.   

    分析日志文件发现如下几点(建议):    # Problematic frame:
        # C [+0x402] __kernel_vsyscall+0x2
    这里的C指的是:native code 即调用本地方法时产生的jvm崩溃Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    现在jdk1.6版本好像是无法显示具体调用哪个本地方法,在jdk1.5下的日志文件则可以显示具体在调用哪个natvie method 时发生内存溢出。 
    我之前就遇到过一次由于本地方法调用产生jvm崩溃 ,后来通过更换jdk1.5发现了调用的本地方法,最后在java代码中屏蔽了导致jvm崩溃时的调用。  你可以尝试下jdk1.5 找到哪个本地方法,再看看在运行到什么情况下会发生jvm崩溃  总结下,然后屏蔽掉。