Articles of 崩溃转储

在内核崩溃转储期间分析CPU寄存器

我正在debugging一个问题,并在生成崩溃转储时发生下面的内核崩溃。 在某种程度上,我确实知道,如何使用gdb(l *(debug_fucntion + 0x19))命令在发生问题的代码中find确切的行。 <1>BUG: unable to handle kernel paging request at ffffc90028213000 <1>IP: [<ffffffffa0180279>] debug_fucntion+0x19/0x160 [dise] <4>PGD 103febe067 PUD 103febf067 PMD fd54e1067 PTE 0 <4>Oops: 0000 [#1] SMP <4>last sysfs file: /sys/kernel/mm/ksm/run <4>CPU 7 <4>Modules linked in: dise(P)(U) ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM iptable_mangle bridge autofs4 8021q garp stp llc ipt_REJECT nf_conntrack_ipv4 […]

更改核心转储的位置

我想更改核心转储文件的默认位置,以便每次生成核心转储时都转到该目录。另外,是否可以通过此位置中的崩溃文件的名称来保存转储文件?

Linux中的核心转储

我想创build一个核心转储,当我的进程崩溃。 目前我正在采用这种方法: 使用gcc / g ++的“-g”构build一个特殊的“debugging”版本的程序。 执行“ulimit -c unlimited” 现在,无论程序崩溃,我们都会得到核心转储。 但我想尽量减less步骤的数量,以便: 核心转储应该总是被创build。 即使是“释放”构build。 不应要求用户手动执行“ ulimit -c unlimited ”命令。 该核心转储的回溯应该能够给出文件,函数,线路号码的调用。 这是一个人类可读的forms堆栈跟踪。 我不想用“-g”作为debugging版本来构build程序。 或者至less它不应包含任何其他debugging信息,这些信息不会产生可读的堆栈跟踪。 因为这将是该程序的发布版本。 所以我有两个问题: 如何在程序的“发布”版本中创build核心转储? 总是。 没有手动执行“ ulimit -c unlimited ”

如何在我的Linux C ++程序中启用核心转储

我的程序是用C ++编写的。 用gcc编译,用-g3 -O0 -ggdb标志。 当它崩溃时,我想打开它的核心转储。 它是否创build核心转储文件,或者我需要在程序本身或执行它的计算机上执行一些操作来启用核心转储创build? 这个文件的创build地点是什么?

即使registry设置正确,Windows也不会生成完整的崩溃转储

我的客户正在用我写的VB6程序遇到软件崩溃。 我已经build立了registry来产生完整的崩溃转储,而且我看到它可以正常的与其系统上崩溃的其他程序正常工作,但由于某种原因,对于我的程序,stil会在一个完全不同的目录中创build简单的崩溃转储。 我的程序是在64位计算机上运行的32位程序。 我已经设置了如图所示的registry,用于SOFTWARE \ Microsoft和SOFTWARE \ Wow6432Node \ Microsoft。 依然不起作用。 有谁知道我可以肯定,每当程序崩溃,完整的崩溃转储产生?

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

在Windows环境下( XP和Win 7 ): 在系统崩溃时自动生成崩溃转储的最佳方法是什么? 安装程序(MSI)包可以这样做吗?

在所有错误情况下,我需要采取什么行动来获得崩溃转储?

我们在Windows上,并且我们想要在应用程序出口的所有场景中出现故障转储(可能使用MiniDumpWriteDump )。 到目前为止,我们已经确定并build立了以下内容: SetUnhandledExceptionFilter对于未处理的exception(Win32以及“正常”的C ++)。 用于CRT无效参数处理的_set_invalid_parameter_handler _set_abort_behavior加上一个SIGABRT处理程序来说明对abort()调用 有什么我们错过了吗? (模一些代码非法调用ExitProcess , TerminateProcess或其中一个exit变体。)

导致故障转储的Java错误的解决方法

我开发的程序偶尔会因为这个bug而崩溃: http : //bugs.java.com/bugdatabase/view_bug.do?bug_id=8029516 。 不幸的是,这个错误还没有被Oracle解决,并且错误报告说没有已知的解决方法。 我试图通过在KeyWatcher线程中调用.register(sWatchService,eventKinds)来修改bug报告中的示例代码,而将所有挂起的注册请求添加到我在KeyWatcher线程中循环的列表中,但仍然崩溃。 我猜这跟sWatchService上的同步效果一样(就像bug报告的提交者一样)。 你能想办法解决这个问题吗?

安装debugging工具来分析Windows 7上的微型转储

我一直在试图安装“debugging工具”,以试图分析转储文件的服务器崩溃(Windows Server 2008 R2)。 我过去曾经这样做过,但是我找不到如何安装/定位Windows 7的debugging工具。 我读过这篇知识库文章: http : //support.microsoft.com/kb/315263 。 然后我尝试从下面的文章( http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx )下载“Windowsdebugging工具”。 我select了“作为独立组件安装Windowsdebugging工具”,下载并安装了该文件。 它确实安装成功,但我仍然无法find文件。 这对我来说似乎是一个愚蠢的问题,但我找不到任何方式的debugging工具! 我甚至试图下载Windows 7的debugging工具( http://www.microsoft.com/en-us/download/details.aspx?id=8279 ),但又找不到它们! 任何帮助将非常感激

Windows崩溃转储调用堆栈只显示wow64

问题 我有一个Windows应用程序,我们在室内使用开发。 感谢Windowserror handling,窗口保持打开,我可以轻松地从任务pipe理器生成崩溃转储。 我曾经在eclipse上通过eclipse在linux上使用过crash-dumps,但是这是Windows上的第一次。 硬件 服务器是Windows 2012,而我的开发机器是Windows 7。 WinDbg的 当我在Windbg中加载崩溃转储时,加载我的符号,然后select查看调用堆栈,唯一的列表是: 我怎样才能看到我的应用程序调用堆栈?