我已经看到了这个问题和这篇文章如何debugging本机的Java崩溃。 这篇文章是关于Windows的。 什么是在Linux上等价的debugging帮助?
注意:我拥有的是来自该字段中的用户的这个崩溃日志。 我无法访问发生崩溃的机器。
更新 :我敢肯定,崩溃是由于我们有JNI代码。 我从来没有想过暗示这是JVM本身的错误。
每个请求,这里是崩溃转储(或尽可能适合30K计算器的限制):
如何debugging挂起的WPF应用程序?
如何在Windows上debuggingPython的C扩展
为什么Windows资源pipe理器search会在debugging器中暂停一个不相关的程序时冻结
在WinDbg中debuggingac#应用程序
##Java运行时环境检测到意外错误:##SIGSEGV(0xb)在pc = 0x06300e76,pid = 9983,tid = 4106996592##Java VM:Java HotSpot(TM)客户端VM(1.6.0_03-b05混合模式,共享)#有问题的框架:#V [libjvm.so + 0x300e76]##如果您想提交错误报告,请访问:#http://java.sun.com/webapps/bugreport/crash.jsp #--------------- THREAD ---------------当前线程(0x0922e000):VMThread [id = 9985] siginfo:si_signo = 11, si_errno = 0,si_code = 1,si_addr = 0x00000008寄存器:EAX = 0x00000008,EBX = 0x88a829b3,ECX = 0x88a829b0,EDX = 0xa7d6c1dc ESP = 0xf4cbba5c,EBP = 0xf4cbba68,ESI = 0xa7d6d1d8,EDI = 0x00000404 EIP = 0x06300e76,CR2 = 0x00000008 ,EFLAGS = 0x00010202栈顶的:(SP = 0xf4cbba5c)0xf4cbba5c:a7d6c1c8 0920cc30 aa0de5c0 f4cbba98 0xf4cbba6c:063517d7 cf8f2a20 a7d6c1c8 0920cc30 0xf4cbba7c:0920cc30 00000000 00000000 6d224c40 0xf4cbba8c:00000001 f4cbbbb0 0920b440 f4cbbab8 0xf4cbba9c:061dd4df 0920cc30 f4cbbb10 f4cbbac8 0xf4cbbaac:0633cb7e 0643b5b 8 f4492968 f4cbbad8 0xf4cbbabc:061dcd68 f4cbbaf0 0920cc30 f4cbbaf8 0xf4cbbacc:061df31e f4cbbb10 d4cbcc2c f4cbbb08说明:(pc = 0x06300e76)0x06300e66:82 39 f2 73 34 90 8d 74 26 00 8b 02 85 c0 74 22 0x06300e76:8b 18 80 3d 45 10 42 06 (J =已编译的Java代码,j =已解释,Vv =虚拟机代码,C =本机代码)V [0] [0x004] [libjvm.so + 0x300e76] V [libjvm.so + 0x3517d7] V [libjvm.so + 0x1dd4df] V [libjvm.so + 0x1dcd68] V [libjvm.so + 0x1dc3cc] V [libjvm.so + 0x1d4c52] V [libjvm。所以+ 0x1d32cc] V [libjvm.so + 0x1d4229] V [libjvm.so + 0x1dc82a] V [libjvm.so + 0x1d1d34] V [libjvm.so + 0x186125] V [libjvm.so + 0x1d20bc] V [libjvm.so + 0x3b2cbe] V [libjvm.so + 0x3c5037] V [libjvm.so + 0x3c46bc] V [libjvm.so + 0x3c488a] V [libjvm.so + 0x3c446f] V [libjvm.so + 0x30b719] C [libpthread.so.0 + 0x5cb2] VM_Operation(0xf2b60728):分配的生成集合,mode:safepoint,由线程0x09449c00请求--------------- PROCESS ------------- - Java线程:(=>当前线程)0x092afc00 JavaThread“RawImageCache”守护进程[_thread_blocked,id = 10026] 0xf37d1000 JavaThread“TimerQueue”守护进程[_thread_blocked,id = 10022] 0x09410000 JavaThread“SunTileScheduler0Standard7”daemon [_thread_blocked,id = 10021] 0x0940f000 JavaThread “SunTileScheduler0Standard6” 守护程序[_thread_blocked,ID = 10020] 0x0946fc00 JavaThread “SunTileScheduler0Standard5” 守护程序[_thread_blocked,ID = 10019] 0x0946e800 JavaThread “SunTileScheduler0Standard4” 守护程序[_thread_blocked,ID = 10018] 0x0946d400 JavaThread “SunTileScheduler0Standard3” 守护程序[_thread_blocked,ID = 10017] 0x0946c000 JavaThread“SunTileScheduler0Standard0”守护进程[_thread_blocked,id = 10014] 0x0944a800 JavaThread“Image List Poller”[_thread_blocked,id = 10016] 0x0946ac00 JavaThread“_Thread_blocked” ,id = 10012] 0x09449c00 JavaThread“图像任务队列”[_thread_blocked,i 这个函数是一个Java线程的函数,这个线程是一个线程的一部分,这个线程是一个线程的一部分, 6thread守护进程[_thread_blocked,id = 10006] 0xf3a7c800 JavaThread“DirectoryMonitor.MonitorThread”守护进程[_thread_blocked,id = 10005] 0xf3a73800 JavaThread“AWT看门狗”守护进程[_thread_blocked,id = 10004] 0xf3adb800 JavaThread“TileReaper”守护进程[_thread_blocked, 1000th] 0x093c3c00 JavaThread“process reaper”daemon [_thread_in_native,id = 10001] 0x093ac800 JavaThread“Timer-0”守护进程[_thread_blocked,id = 9999] 0x093a8c00 JavaThread“AWT-EventQueue-0”0x093a8000 JavaThread“ AWT-Shutdown“0x09378c00 JavaThread”AWT-XAWT“守护进程[_thread_blocked,id = 9994] 0x09368400 JavaThread”Java2D disposer“守护进程[_thread_blocked,id = 9993] 0x09350000 JavaThread”Thread-1“守护进程[_thread_blocked , 一世 javathread“__read_locked”id = 9990] 0x09238c00 JavaThread“__read_read_locked”id = 9990 0x0400b400 JavaThread“Low Memory Detector”守护进程[_thread_blocked,id = 9990] 0x09239c00 JavaThread“CompilerThread0”守护进程[_thread_blocked, “守护进程[_thread_blocked,id = 9987] 0x0922f400 JavaThread”引用处理程序“守护进程[_thread_blocked,id = 9986]其他线程:=> 0x0922e000 VMThread [id = 9985] 0x09245000 WatcherThread [id = 9991] )VM_Mutex / Monitor现在拥有一个线程:([mutex / lock_event])[0x09205178 / 0x092051a0] Threads_lock - 拥有者线程:0x0922e000 [0x09205638 / 0x09205650] Heap_lock - 拥有者线程:0x09449c00堆def新一代共83968K,使用9280K [ 0x80600000,0x5b110000,0x5ec40000)eden空间74688K,空间9280K使用[0x55600000,0x55600000,0x59ef0000)0%,空间9280K使用[0x5a800000,0x5b110000,0x5b110000]使用100%,0%使用[0x59ef0000,0x59ef0000,0x5a800000)共1233个 640K,使用了1233529K [0x5ec40000,0xaa0fa000,0xcf800000)的空间1233640K,使用了99%的[0x5ec40000,0xaa0de5c0,0x8b4af400,0xaa0fa000]压缩perm gen总共13312K,使用了13175K [0xcf800000,0xd0500000,0xd3800000]的空间13312K,使用了98% 0xcf800000,0xd04ddd70,0xd04dde00,0xd0500000)ro space 8192K,使用了69%[0xd3800000,0xd3d8f608,0xd3d8f800,0xd4000000)rw空间12288K,使用了57%[0xd4000000,0xd46eee98,0xd46ef000,0xd4c00000)dynamic库:[snip] VM参数:jvm_args :-Dinstall4j.jvmDir = / home / berbmit / bin / LightZone / jre -Dinstall4j.appDir = / home / berbmit / bin / LightZone -Dexe4j.moduleName = / home / berbmit / bin / LightZone / LightZone -Dcom.lightcrafts.licensetype = ESD -Xmx2000000k java_command:com.install4j.runtime.Launcher launch com.lightcrafts.platform.linux.LinuxLauncher true false /home/berbmit/bin/LightZone/LightZone.log /home/berbmit/bin/LightZone/LightZone.log false true false true true -1 -1 20 20 Arial 0,0 8 500 20 40 Arial 0,0 8 500 -1启动器types:SUN_STANDARD 环境variables:PATH = / home / berbmit / bin:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games USERNAME = berbmit LD_LIBRARY_PATH = /家庭/ berbmit /斌/ LightZone / JRE / lib目录/ I386 /客户端:/家庭/ berbmit /斌/ LightZone / JRE / lib中/ I386:/家庭/ berbmit /斌/ LightZone / JRE /../ LIB / I386 :/ home / berbmit / bin / LightZone / .: SHELL = / bin / bash disPLAY =:0.0 SIGBUS:[libjvm。所以+ 0x3b29c0],sa_mask [0] = 0x7ffbfeff,sa_flags = 0x10000004 SIGFPE:[libjvm.so + 0x309ec0],sa_mask [0] = 0x7ffbfeff,sa_flags = 0x10000004 SIGPIPE:SIG_IGN,sa_mask [0] = 0x00000000,sa_flags = :[libjvm.so + 0x309ec0],sa_mask [0] = 0x7ffbfeff,sa_flags = 0x10000004 SIGUSR1:SIG_DFL,sa_mask [0] = 0x00000000,sa_flags = 0x00000000 SIGUSR2:[libjvm.so + 0x30bef0],sa_mask [0] = 0x00000000, sa_flags = 0x10000004 SIGIGH:[libjvm.so + 0x30b910],sa_mask [0] = 0x7ffbfeff,sa_flags = 0x10000004 SIG QUIT:[libjvm.so + 0x30b910],sa_mask [0] = 0x7ffbfeff,sa_flags = 0x10000004 SIGTERM:[libjvm.so + 0x30b910],sa_mask [0] = 0x7ffbfeff,sa_flags = 0x10000004 SIGUSR2:[libjvm.so + 0x30bef0], sa_mask [0] = 0x00000000,sa_flags = 0x10000004 --------------- SYstem ---------------操作系统:squeeze / sid uname:Linux 2.6 .35-23-generic#41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 libc:glibc 2.12.1 NPTL 2.12.1 rlimit:STACK 8192k,CORE 0k,NPROC infinity,NOFILE 1024,AS infinity load average :0.67 0.54 0.36 cpu:共8个(每个cpu 8个核心,每个核心2个线程)系列6型号10步进5,cmov,cx8,fxsr,mmx,sse,sse2,sse3,ssse3,ht内存:4k页,物理8191552k (3359308k免费),交换1016828k(1016828k免费)vm_info:Java HotSpot(TM)客户端虚拟机(1.6.0_03-B05)为linux-x86,build于2007年9月24日22:45:46通过“java_re”与gcc 3.2。 1-7a(J2SE版本)
我怎样才能debuggingbash提示?
Python 3 Windows服务仅在debugging模式下启动
用于STL容器的C ++ IDE
如何logging或重播在崩溃前立即执行的行或指令
除非你的JNI库损坏了随机区域的内存(这非常难以调试),libjvm崩溃的最可能原因是JVM中的一个错误。 鉴于当前版本是Java 6更新23,并且您有Java 6更新3,升级是我会尝试的第一件事情。
顺便说一句:你也似乎有一个64位的操作系统,你可能会喜欢尝试64位的Java。
BTW2:你可以把-Xmx2000000k写成-mx2g。 无论如何,8 GB机器上的默认最大值应该是2 GB左右。
我期待在崩溃转储中的JNI调用,但它似乎不是原因,而是pthreads库中的一个错误。
如果pthreads库必须由底层平台提供,或者被烧入JRE中,我不记得手头有用,但是我建议您确保您正在运行在官方支持的Linux平台之一上,如果不是,那么请强烈考虑切换。
你真的需要-Xmx2000000k吗? 看起来你只使用了大约84MB的。
我的经验是,无论如何,你真的无法可靠地在一个32位的进程空间中超过约1700MB堆。 所以,这个设置可能会导致这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。