标签: crash-dumps

如何在minidump中更改模块的校验和?

我编写(和销售)的软件在分发之前已经过压缩和加密.每次我发布一个新版本时,我会保留所有的.map文件和生成的二进制文件,包括压缩和加密之前的exe文件.

当它在客户端的机器上崩溃时,我会得到一个minidump.我在Visual Studio中打开这些minidump并在那里探索它们.

我通过在.map文件中搜索地址来充分利用这些小型转储.这通常会让我进入代码的正确区域,我通常可以解释为什么崩溃发生并修复它,但这非常耗时.

如果我可以在minidump的调试中使用我从原始构建中保存的符号,将会很有帮助.

我的问题是我收到有关无法找到正确符号的警告.我的研究让我相信这是因为客户机上的exe的校验和与Visual Studio构建的exe的校验和不匹配.我理解为什么,它已被压缩和加密.当然校验和不匹配.

我想我可以手动编辑minidump或更改已保存二进制文件的校验和以匹配可分发的校验和.我宁愿操纵存储的副本,所以我不必修改进来的每个转储,但我会对其中任何一个进行修改.

所以,我的问题是:我如何找到这些校验和并弄清楚我应该用它们替换它们?作为辅助问题:有更好的方法吗?

c++ debugging crash-dumps

5
推荐指数
1
解决办法
1429
查看次数

LocalDumps注册表项停止工作(Windows错误报告)

如MSDN所述,我设置了注册表项HKLM \ SOFTWARE \ Microsoft \ Windows \ Windows错误报告\ LocalDumps 。

我有一个测试程序-一个用Visual C ++编译的控制台程序,该程序尝试在打印消息并退出之前取消引用NULL指针。该测试程序曾经用于退出和转储核心文件,但现在它刚刚退出。我没有核心。

我在物理硬件上运行Windows Server 2008 R2 Enterprise SP1。

我不知道发生了什么变化。有什么变化可以阻止WER现在转储内核?

windows crash-dumps windows-error-reporting

5
推荐指数
1
解决办法
3056
查看次数

开发人员工具导致谷歌浏览器冻结

我刚刚安装了Google Chrome并开始检查我的网络应用程序.由于我在HTML或Javascript中都有一个错误,我在要调用的函数中设置了一个断点...或者至少我认为自从在左侧栏上双击并且行号没有显示蓝色图标.现在一切都冻结了,过了一会儿我收到错误消息"哦没有",并且Sources下的js文件中的代码不再显示了.我必须关闭该死的浏览器.

Sources下工具右侧的多个选项不显示任何断点,既不是活动的也不是非活动的.资源在我的应用程序中显示带有JS文件的树,但是当我双击任何文件时,我看不到代码.

我的断点是否有效?怎么解决这个?

PS - 只有在我调用开发人员工具时,应用程序才会冻结并导致短暂转储.

google-chrome short freeze crash-dumps

5
推荐指数
0
解决办法
719
查看次数

Java相当于未捕获异常的coredump

什么是Linux coredump或Windows minidump的Java等价物?我已经阅读了堆转储,它看起来像我想要的,但是如何在未捕获的异常上(自动)触发它们?

我知道未捕获的异常处理程序,我已经用它来打印异常+堆栈跟踪并终止整个应用程序(否则线程死了,应用程序继续运行?呵呵?)另外我发现这篇文章关于如何记录堆从代码转储,但如果我从未处理的异常处理程序执行此操作,Java已经捕获了异常并且堆栈跟踪(和参数)消失了.

我遇到了-XX:+HeapDumpOnOutOfMemoryError似乎做我需要的旗帜,不幸的是只是因为内存异常,而不是其他未被捕获的异常.

到目前为止,这是我唯一能够摆脱谷歌的事情.目前我正在使用带有异常断点的附加调试器,但这是不切实际的,因为它还会中断处理的异常,因此无法在无人监督的情况下使用它.

[动机更新]

我希望能够检查堆栈跟踪的参数和局部变量,以找出导致异常的原因.它通常是空引用异常或断言失败,我不能总是从行号中猜出究竟出了什么问题.在C/C++中,我习惯于使用coredump/minidump崩溃,然后进一步检查实际导致崩溃的原因.

java error-handling crash-dumps

5
推荐指数
1
解决办法
1497
查看次数

"Followup:MachineOwner"是什么意思?

从WinDBG的输出窗口复制以下消息:

Use !analyze -v to get detailed debugging information.

BugCheck 24, {1904fb, 8f9ec9f8, 8f9ec5d0, 87c4fccc}

Probably caused by : Ntfs.sys ( Ntfs!NtfsCommonRead+6f4 )

Followup: MachineOwner
Run Code Online (Sandbox Code Playgroud)

请注意最后一行:"Followup:MachineOwner"

这是什么意思?

windows debugging windbg crash-dumps

5
推荐指数
1
解决办法
2222
查看次数

子指令如何导致无效指针读取?

我有一个崩溃转储与此代码:

mov     r11,rsp
push    rdi
sub     rsp,0A0h
mov     qword ptr [rsp+30h],0FFFFFFFFFFFFFFFEh
Run Code Online (Sandbox Code Playgroud)

这是一个功能的序幕.所以,!analyze -vINVALID_POINTER_READ与指令sub.AMD指令集表示,sub如果参数不是内存指针,则指令不会产生任何异常.

而且,READ_ADDRESSffffffffffffffff的,但在寄存器窗口,我可以看到rsp12b3e0.这是64位操作系统中的32位应用程序.

我想知道这个错误的可能原因以及如何解决它.

UPD:

方法是Microsoft Visual Studio 9.0\VC\include\xtree中的std._Tree.insert(const value_type&_Val).

编译器是来自Visual Studio 2008安装的cl.exe,32位,版本15.00.30729.01.

命令行:

 /FD /EHsc /MD /GS- /Zc:wchar_t- /Yu"stdafx.h"/W3 /WX /nologo /c /Zi /TP /wd4250 /FI -Zm200 -MP -w34100 -w34189
Run Code Online (Sandbox Code Playgroud)

链接器来自同一来源,版本9.00.30729.01.

UPD:对于那些对使用64位调试器调试32位应用程序持怀疑态度的人,我运行了32位版本的调试器并得到了相同的结果.所以,我仍然认为这是sub指令.

UPD:澄清:该应用程序是为32位平台构建的.但处理器操作系统64位的.因此,在转储中我们可以看到具有32位值的64位寄存器,这并不奇怪.

windows assembly x86-64 crash-dumps

5
推荐指数
1
解决办法
450
查看次数

从Windows Phone 8设备检索崩溃转储

有没有办法在开发期间从Windows Phone 8中获取崩溃转储?我正在使用与正常Win32应用程序崩溃时类似的转储文件.或者类似于在崩溃时在iOS设备上保存的内容,以便稍后进行调查.

我的问题具体是关于以某种方式在崩溃后从手机中检索这个(或类似的)文件/信息而不必在我的代码中做任何事情,例如手动将堆栈跟踪写入来自未处理异常的文件.

我知道从beta提交的应用程序获取"实时"崩溃报告的选项,但这不是我所追求的.

谢谢!

crash-dumps windows-phone-8

5
推荐指数
1
解决办法
1609
查看次数

如何从AccessViolationException检索注册上下文?

我有一个托管(C#)应用程序的x64故障转储,它可以调用本机代码.在本机代码尝试取消引用错误的内存位置之后,以及在.NET编组程序将其转换为内存之后,转储被执行AccessViolationException.因此,发生错误的堆栈帧不再可用,发生异常的线程现在被CLR异常处理程序劫持:

0:017> kb
 # RetAddr           : Args to Child                                                           : Call Site
00 000007fe`fd3b10dc : 00000000`0402958b 00000000`20000002 00000000`00000e54 00000000`00000e4c : ntdll!NtWaitForSingleObject+0xa
01 000007fe`ea9291eb : 00000000`00000000 00000000`00000cdc 00000000`00000000 00000000`00000cdc : KERNELBASE!WaitForSingleObjectEx+0x79
02 000007fe`ea929197 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : clr!CLREventWaitHelper2+0x38
03 000007fe`ea929120 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : clr!CLREventWaitHelper+0x1f
04 000007fe`ead8cae5 : 00000000`29cbc7c0 00000000`3213ce40 00000000`00000000 00000000`ffffffff : clr!CLREventBase::WaitEx+0x70
05 000007fe`ead8c9d0 : 00000000`29cbc7c0 00000000`00000000 00000000`0002b228 00000000`0002b228 : clr!Thread::WaitSuspendEventsHelper+0xf5
06 000007fe`eacf2145 : 00000000`007ea060 000007fe`ea924676 00000000`00000000 000007fe`fd3b18da : clr!Thread::WaitSuspendEvents+0x11
07 000007fe`eaccc00c : …
Run Code Online (Sandbox Code Playgroud)

c# c++ windbg crash-dumps

5
推荐指数
1
解决办法
263
查看次数

Windows Phone 8.1应用程序在恢复期间崩溃(可能是因为它在暂停期间挂起)

我有一种情况,我的应用程序有时会在暂停/恢复过程中崩溃.场景如下所示:

  1. 应用程序正常运行.
  2. 用户通过点击开始按钮,使用文件选择器或启动另一个应用程序等操作退出应用程序.此时,执行应用程序挂起事件处理程序.根据我生成的所有调查和日志,我知道挂起事件处理程序执行时没有错误.延迟对象(暂停过程的一部分)被标记为完成.通常,挂起过程需要200-500毫秒.
  3. 在短暂的间隔后,用户返回到应用程序.
  4. 操作系统显示"正在恢复..."消息几秒钟.
  5. Once in a while (it is rather hard to repro) the "Resuming…" message disappears and the OS start screen is shown – indicative of the fact that the app crashed. According to all the investigation and logs I produce I know that the resuming event handler is not called.
  6. When the app crashes the OS creates an application dump file.

Taking the app dump file and examining it using WinDBG shows a call stack like …

c# crash suspend crash-dumps windows-phone-8.1

5
推荐指数
0
解决办法
411
查看次数

Crashlytics Swift:将fatalError()消息发送到崩溃日志

fatalError("Descriptive Error")我的应用程序中有很多行。我想找到实际触发错误的行。

但是,我无法通过Crashlytics获得此类信息。这是我得到的:

#0. Crashed: com.apple.main-thread
0  libswiftCore.dylib             0x10173cd24 specialized _fatalErrorMessage(_:_:file:line:flags:) + 128
1  libswiftCore.dylib             0x101561118 _ArrayBuffer._checkInoutAndNativeTypeCheckedBounds(_:wasNativeTypeChecked:) + 240
2  libswiftCore.dylib             0x10157b318 Array.subscript.getter + 112
3  AppName                       0x10097d520 ClassName3.select(_:) (ClassName3.swift:61)
4  AppName                       0x1008ee03c ClassName2.init(_:) (ClassName2.swift:28)
5  AppName                       0x1008edca0 ClassName2.__allocating_init(_:) (ClassName2.swift:24)
6  AppName                       0x1008603c4 ClassName4.makeController() (ClassName4.swift:19)
7  AppName                       0x1008d6c88 ClassName.ClassName6(_:didSelect:) (ClassName.swift:108)
8  AppName                       0x1008d6e04 protocol witness for ClassName6Delegate.ClassName6(_:didSelect:) in conformance ClassName (<compiler-generated>)
9  AppName                       0x100855de0 ClassName6.text(card:) (ClassName6Item.swift:71)
10 AppName                       0x100855f04 protocol witness for ClassName5.text(card:) in conformance ClassName6 (<compiler-generated>)
11 AppName …
Run Code Online (Sandbox Code Playgroud)

crash crash-dumps crashlytics swift crashlytics-beta

5
推荐指数
0
解决办法
472
查看次数