网站建设前期规划方案范文,网站建设平台有哪些 谢谢平台建站,厦门比较有名的设计公司,广告公司网站开发在某些#xff08;极少数#xff09;情况下#xff0c;您可能会遇到使JVM本身崩溃的情况。 我最近通过将ThreadGroup的名称设置为null来进行管理 。 在这些情况下#xff0c;调试JVM本身很有用#xff0c;这样可以更精确地定位崩溃。 这是完成此操作的步骤#xff08;它们… 在某些极少数情况下您可能会遇到使JVM本身崩溃的情况。 我最近通过将ThreadGroup的名称设置为null来进行管理 。 在这些情况下调试JVM本身很有用这样可以更精确地定位崩溃。 这是完成此操作的步骤它们特定于Linux因为Windows下没有现成的调试器 安装gdb在Ubuntu下这类似于 sudo apt-get install build-essential 如果您使用的是OpenJDK请为其安装调试符号以便调试器可以提供更具可读性的输出同样在Ubuntu下这将是sudo apt-get install openjdk-6-dbg –如果您使用的是6则用7代替6。最新的OpenJDK 现在只需在您的java命令前加上gdb --args gdb --args java Foo 当出现gdb提示符“gdb”时键入“ run”不带引号以开始程序的实际运行。 崩溃发生后您应该显示以下消息 Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x6b195b70 (LWP 30273)]
(gdb) Here you can use the commands “backtrace” and “backtrace full” to get an approximate idea of the crashsite. To continue running (although it will just exit most probably) input “c”. To exit (killing the JVM in the process) type “quit”. Consult the GDB tutorials available on the Internet for more commands and their parameters. 如果您是从Eclipse内部进行调试则可以执行以下操作在配置属性中将JRE设置为“ Alternate JRE”并将Java可执行文件指定为“ javag”此外请确保已选中“分配控制台”通用标签。 现在转到您的JDK运行目录在我的情况下为/ usr / lib / jvm / java-7-openjdk-i386 / bin并创建一个具有以下内容的javag文件 sudo vim javag #!/bin/bash
gdb -x /usr/lib/jvm/java-7-openjdk-i386/bin/javag-commands --args /usr/lib/jvm/java-7-openjdk-i386/bin/java $* 还要创建具有以下内容的javag-commands文件 run 最后使javag可执行 sudo x chmod javag 您就可以开始了 此解决方法是必需的因为Eclipse在配置选项卡中不接受绝对路径。 第二个文件用于自动将“运行”命令传递给gdb而无需用户在每次启动时自行键入。 另外请记住尽管GDB暂停了该进程但Java调试器如Eclipse无法与之通信因此它们抛出各种错误如“目标不响应”是正常的。 拥有无错误的一年但是如果您发现错误请让它们至少具有可复制性 参考 Transylvania JUG博客上的JCG合作伙伴 Attila-Mihaly Balazs 调试JVM 。 相关文章 JVM选项-client vs -server 如何解决生产问题 调试生产服务器– Eclipse和JBoss展示 从CLI监视OpenJDK 您的代码中有几个错误 翻译自: https://www.javacodegeeks.com/2012/01/debugging-jvm.html