标签: crash-dumps

是否可以指定JVM的崩溃转储的位置?

我们有一个使用JNI的桌面应用程序,偶尔会导致JVM崩溃.幸运的是,JVM生成了一个hs_err_pidXXXX.log文件,这在调试此类错误时非常有用.但是,它似乎总是转到当前的工作目录,并且从那里挖掘它很烦人,因为我们的其他日志文件都转到特定的"日志文件位置".

是否可以为这些"崩溃转储"文件指定不同的位置?怎么样?

java logging jvm crash-dumps

13
推荐指数
2
解决办法
2万
查看次数

Linux中的核心转储

我想在我的进程崩溃时创建核心转储.目前我正在遵循这种方法:

  1. 使用gcc/g ++的"-g"构建程序的特殊"调试"版本.
  2. 执行"ulimit -c unlimited"
  3. 现在,只要程序崩溃,我们就会获得核心转储.

但我希望尽量减少步骤数量,以便:

  • 应始终创建核心转储.即使它是"发布"版本.不应要求用户ulimit -c unlimited手动执行命令" ".
  • 核心转储的回溯应该能够提供调用的文件,函数和行号.这是人类可读形式的堆栈跟踪.
  • 我不想将程序构建为带有"-g"的调试版本.或者至少它不应包含生成人类可读堆栈跟踪所不需要的任何其他调试信息.因为这将是该程序的发布版本.

所以我有两个问题:

  1. 如何在程序的"发布"版本中创建核心转储?
  2. 总是.无需手动执行" ulimit -c unlimited"

linux crash gcc coredump crash-dumps

13
推荐指数
2
解决办法
2万
查看次数

调试工具在java应用程序中挂起

我有一个Java应用程序,有一半时间只是挂起,另一半JVM崩溃.有没有一种工具可以用来查看发生了什么事情让它挂起和/或崩溃?我正在使用CentOS 5.6

java debugging jvm crash-dumps jvm-crash

13
推荐指数
2
解决办法
2万
查看次数

Application.ThreadException与AppDomain.UnhandledException

首先是一些背景:我有一个多线程WinForms应用程序正在与本机dll互操作.这个应用程序有时会因未处理的异常而崩溃,我们正试图调查它为什么会发生.为了方便它,我正在创建一个全局异常处理程序,我计划从中生成进程转储文件.

现在提出疑问:截至目前,这个应用程序有处理程序,Application.ThreadException但它仍然与未处理的异常崩溃.我正在考虑添加一个处理程序,AppDomain.UnhandledException虽然我不确定它是否会有所帮助.在这种情况下是否存在任何可能未被处理的未处理异常Application.ThreadException

c# exception-handling crash-dumps winforms

12
推荐指数
2
解决办法
5903
查看次数

如何在Windbg中解决GetFrameContext失败

我正在使用完整的崩溃转储和Windbg调试.NET 4.0 Web应用程序.我似乎能够获得所有的所有版本以匹配,但是当我尝试获得所有线程的托管堆栈跟踪时

操作系统线程ID:0x7cd4(13)子SP IP呼叫站点GetFrameContext失败:1

对于我所有的托管线程.我有什么想法我错了以及如何解决它?

windbg .net-4.0 crash-dumps stack-trace

12
推荐指数
2
解决办法
4456
查看次数

应用程序崩溃时为其创建转储文件

我试图为我的应用程序创建一个转储文件崩溃.我目前正在使用带有-e标志的procdump.exe来执行此操作,因此如果我的应用程序中有未处理的异常,procdump会为我创建一个转储文件.

我以为我已经完成了,但后来我发现我的应用程序崩溃并且procdump没有创建转储文件.经过一些调查后,我发现无效使用vector :: front会导致运行时错误.我打开了_SECURE_SCL_THROWS标志,之后procdump.exe -e确实捕获了崩溃并创建了一个转储文件.

现在问我的问题:现在procdump.exe -e会在我的应用程序崩溃时始终创建转储文件吗?我如何保证我没有任何其他procdump -e对我不利的场景?

c++ minidump std crash-dumps visual-studio-2008

12
推荐指数
2
解决办法
8455
查看次数

在所有错误情况下,我需要采取哪些措施来获取崩溃转储?

我们在Windows上,我们希望在我们的应用程序意外退出的所有场景中获得崩溃转储(可能正在使用MiniDumpWriteDump).

到目前为止,我们已经确定并设置了以下内容:

  • SetUnhandledExceptionFilter 对于未处理的异常(Win32以及"普通"C++).
  • _set_invalid_parameter_handler 对于CRT无效的参数处理
  • _set_abort_behavior加上一个SIGABRT处理程序来解释调用abort()

我们错过了什么吗?(模拟一些非合法调用的代码ExitProcess,TerminateProcess或其中一个exit变体.)


我会注意到这里的问题与如何获得崩溃转储是正交的.例如,如果你想要一个崩溃转储abort,你总是必须使用,_set_abort_behaviour因为否则只是中止exits.

我还要注意,在Windows7 +上,设置SetUHEF并且只是在注册表中设置"正确的"WER转储设置通常是可行的方法.

c++ windows crash-dumps visual-c++

12
推荐指数
1
解决办法
3064
查看次数

如何为.NET提供良好的故障转储?

我捕获了在64位Windows操作系统上运行的32位.NET应用程序的故障转储.在分析过程中,有人发现我有一个64位转储并告诉我由于错误的位数而无法分析这个转储.

使用Windows任务管理器创建转储时,我不知道我做错了什么.这始终适用于32位操作系统.

我怎样才能为.NET提供良好的转储,尤其是正确的位数?

.net minidump windbg crash-dumps

12
推荐指数
1
解决办法
2730
查看次数

如何在内存不足错误时生成线程转储java

  • 除了堆转储之外java 6还生成线程转储(java_pid14941.hprof)

  • 这是我的一个应用程序发生的事情.

    java.lang.OutOfMemoryError:超出GC开销限制将堆转储到java_pid14941.hprof ...

  • 我确实在工作目录中找到了ava_pid14941.hprof,但没有找到任何包含线程转储的文件.当我得到这个OutOfMemory错误时,我需要知道所有线程正在做什么.

  • 是否有任何配置选项除了内存异常外的堆转储外还会产生线程转储?

java crash-dumps jvm-crash

11
推荐指数
2
解决办法
2万
查看次数

进程崩溃时生成崩溃转储的最佳方法是什么?

Windows环境(XPWin 7)中:

  • 当进程在系统上崩溃时自动生成崩溃转储的最佳方法是什么?
  • 安装程序(MSI)包可以执行此操作吗?

windows windows-installer crash-dumps drwatson

11
推荐指数
2
解决办法
2万
查看次数