java程序崩溃调试core文件

java程序崩溃调试core文件,第1张

在Java程序崩溃时,通常不会生成core文件,因为Java虚拟机(JVM)默认不会生成core文件。不过,如果你想要在Java程序崩溃时生成core文件,你可以通过在启动JVM时设置参数来实现。例如,如果你使用的是Linux *** 作系统,可以通过以下命令启动JVM并生成core文件:

plaintext

Copy code

java -XX:ErrorFile=/tmp/java_error%!p(MISSING).log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:+CrashOnOutOfMemoryError -XX:OnOutOfMemoryError="gcore %!p(MISSING)kill -9 %!p(MISSING)" YourJavaProgram

其中,-XX:ErrorFile用于指定JVM错误日志的保存路径,-XX:+HeapDumpOnOutOfMemoryError用于在发生内存溢出时生成堆转储文件,-XX:HeapDumpPath用于指定堆转储文件的保存路径,-XX:+CrashOnOutOfMemoryError用于在发生内存溢出时直接崩溃,-XX:OnOutOfMemoryError用于在发生内存溢出时执行指定的命令。在这个例子中,我们使用gcore命令生成core文件,并将进程杀掉。

在生成了core文件之后,你可以使用gdb来分析core文件。首先,你需要使用以下命令启动gdb:

plaintext

Copy code

gdb YourJavaProgram core

其中,YourJavaProgram是你的Java程序的可执行文件名,core是你生成的core文件名。启动gdb后,你可以使用gdb命令来分析core文件,例如,可以使用bt命令来查看堆栈信息,使用info命令来查看线程信息等等。

需要注意的是,在使用gdb分析core文件时,你需要了解Java程序的内部实现,例如,你需要知道Java线程是如何映射到 *** 作系统线程的,以及Java对象是如何映射到内存中的。否则,你可能无法正确地分析core文件,或者分析结果可能不准确。

当我们编写大型c++程序时,每次调试程序可能需要很久才能运行到错误位置。所以,我们可以直接运行而不进行调试,当程序崩溃时选在系统调试器进行调试,则能快速找到错误位置。

Windows *** 作系统有一个默认调试器设置,使程序出现崩溃时,自动调用这个调试器进行调试。这个设置在windows的注册表中。

对于32位 *** 作系统:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger。

对于64位 *** 作系统:HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger。

在这个注册表键中,有两个重要的值:

1、Auto值 : 0表示出现崩溃d出对话框,让用户选择调试器 1表示自动d出默认的调试器。

2、Debugger值,对于windows自带的Dr.Watson该值为“ DRWTSN32 -p %ld -e %ld -g”,对于 WinDBG该值为“WinDbg的安装目录\windbg.exe" -p %ld -e %ld -g”对于Visual Studio该值为"C:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld"

电脑软件闪退是为什么。怎么处理? 软件闪退的因素很多,电脑软件闪退情况出现很频繁的话,首先筛查是不是软件自身的问题,软件自身问题排除,首先要确保正规渠道下载软件,另外呢,硬件符合软件运行的要求,如果是老电脑更要注意,因为老电脑硬件跟不上开个浏览器都要几分钟的,软件开多了不闪退就是卡死了。最后,部分软件编写不规范也会导致电脑软件闪退,不排除硬件出现问题或驱动不正确的可能。当然,硬件导致的可能性很小,基本都是系统层面。

1、右键“计算机”选择“属性”。

2、点击高级系统设置。

3、点击高级那个导航栏,然后点击性能那个属性设置框里,设置。

4、先点击数据执行保护,然后为除下列选定程序,再点添加你闪退不能打开软件,最后点击确定,重新打开软件,就行了。或者使用简单粗暴的方法,重装系统,打好补丁,从新安装软件。软件还异常,那就要注意有没有可能是硬件问题,硬盘出问题的可能性相对较大。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7743647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存