Articles of 小型转储

如何在崩溃时为我的进程创buildminidump?

我无法通过更改系统设置来创build我的进程的小型转储。 所以我的问题是: 当系统崩溃时,系统是否会为用户进程创build一个小型转储? 如果是,我需要configuration哪个设置 或者我必须以编程方式创buildminidump。 在调查碰撞时,小型垃圾车的效率如何 我正在使用Windows XP,C ++,VC6

在进程外使用MiniDumpWriteDump时,如何获取exception信息?

当使用MiniDumpWriteDump函数在Windows上创build进程的核心转储时,build议(例如这里和这里 )从另一个“看门狗”进程运行MiniDumpWriteDump因为在同一进程中调用MiniDumpWriteDump 。 目前,我们的应用程序正在调用它在一个未处理的exception(我们从看门狗线程)。 由于我们有时会遇到问题而无法正常工作,因此我们希望将其移至单独的进程。 现在,指示其他进程开始写转储是微不足道的(只是使用事件,信号量,你的名字),但我怎么通过LPEXCEPTION_POINTERS信息我得到的callback函数我注册SetUnhandledExceptionFilter到另一个进程,所以它可以传递给MiniDumpWriteDump的ExceptionParam参数

捕获R6025纯虚拟通话

我目前使用SetUnhandledExceptionFilter捕获未处理exception的MiniDump,但有时我得到“R6025:纯虚函数”。 我明白如何纯虚函数调用发生我只是想知道是否有可能捕获它们,所以我可以在那一刻创build一个MiniDump。

使用minidumps和GDB为mingw编译的可执行文件分析崩溃?

我用Cmake + mingw来编译我的项目。 由于一些不知名的时刻,我的程序开始在启动时崩溃,我想出了如何让Windows为我的崩溃的应用程序做小型转储。 我会使用GDB直接debugging我的应用程序,但是当我使用GDB时,程序不会崩溃。 谷歌breakpad包含工具转换minidumps coredumps,所以我尝试编译谷歌的break子,但它似乎breakpad是不是Windows解决scheme。 我正在寻找解决scheme如何检查小型转储,并find为什么我的程序开始崩溃。 你怎么做呢?

当调用进程外时,MiniDumpWriteDump中的访问冲突

MiniDumpWriteDump函数的文档声明 应尽可能从单独的进程中调用MiniDumpWriteDump ,而不是从被转储的目标进程中调用。 所以我写了一个小的MFC崩溃处理程序,就是这么做的。 我遵循Hans Passant的这个SO回答中的build议,也就是说,即使exception指针在崩溃处理程序的上下文中无效,我也会将崩溃程序中的exception指针的值传递给崩溃处理程序。 当我在一个debugging版本中运行testing的时候,这个效果很好,但是当我切换到一个版本的时候,崩溃处理器程序崩溃了,在MiniDumpWriteDump函数中发生访问冲突。 我很难过 为什么这应该在debugging版本中工作,而不是在发布版本中? 这是疯狂的,因为访问违规往往是访问无效指针的指标,而我在崩溃处理程序中接收的exception指针确实是无效的 – 但另一方面,我被告知这应该不重要, MiniDumpWriteDump正在解释指针崩溃过程的上下文(从指针来源处)。 任何想法我可能做错了什么? 在旁注中:Hans在他的回答中提出了一个解决scheme,在该解决scheme中,看门狗进程被预先启动,然后在碰撞过程触发时进入hibernate状态并醒来。 我的解决scheme略有不同:我只是在发生崩溃时启动崩溃处理程序,然后通过命令行参数将崩溃程序中的必要信息传递给崩溃处理程序。 我仔细检查了传递的信息是否正确,特别是exception指针。