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地点是什么?

导致故障转储的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查看调用堆栈,唯一的列表是: 我怎样才能看到我的应用程序调用堆栈?

Internet Explorer 8在哪里存储崩溃转储?

我正在打击一个不能在我的机器上重现的错误,但是每次都在我的客户机器上重复。 我已经尝试了一切,现在我正在寻找IE8在崩溃后遗留的任何debugging数据(或其他)。 谷歌和微软的search没有给我什么。 Internet Explorer 8在哪里存储崩溃转储? 它在崩溃之后肯定会向微软发送一些东西,我怎么能看到它呢?

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

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

我可以使用Windows的小型转储文件在我的游戏中实现“保存”/“还原”吗?

我即将在我的游戏中实现保存/加载function,并认为可能使用Windows的小型转储文件来实现这一点。 我没有这方面的经验,所以任何帮助,将不胜感激。 这甚至有可能吗? 一个正在运行的应用程序可以从(迷你)转储文件“恢复”吗? 从已经发布的一些答案中,似乎可以将游戏状态存储在转储文件中,所以我将优化这个问题:我必须投入多less“胶水”来重新创build我不能存储在转储文件中的东西?