我有一个从.NET应用程序崩溃的minidump.有没有办法知道使用Windbg或其他工具的故障机器(生成故障转储)的CLR版本(例如mscorwks.dll的版本)?
我正在寻找一种方法来生成我的应用程序中的minidump文件,类似于ProcDump所做的,但是使用代码并且不必提取3dparty工具来完成它.
不想使用ProcDump的主要原因是:
1)二进制文件的大小会大大增加(这是一个问题,因为我的应用程序是免费软件,带宽不是免费的).
2)感觉很脏.
3)我无法移植该应用程序来运行Windows Mobile.
我的要求是:
1)能够在fatale崩溃中生成mdump文件.
2)能够"暂停"应用程序执行转储,并且contiune将是一个奖励
.
如果这不是一个真正的选项,有没有办法动态地获取当前上下文中的局部变量值?
旁注:我确实读过这篇文章,但它已经很老了,所以我非常犹豫不决我的工作.
似乎IE 9或网站存在问题,因此我遇到了标签问题.
有没有人有任何谷歌破解配置的例子?我可以很好地构建它,但是,文档有限.我想看一些示例,例如如何修改崩溃报告发送到的位置.
我有一大堆minidump,它们是在应用程序运行期间通过MiniDumpWriteDump记录的.minidump是在具有与我的开发机器不同的操作系统版本的机器上创建的.
现在我正在尝试编写一个程序,使用dbghelp.dll从minidump中提取堆栈跟踪.我正在走MINIDUMP_MODULE_LIST并调用SymLoadModule64,但是无法从公共符号服务器下载pdbs(kernel32等).如果我在符号路径中添加"C:\ Windows\System32",它会找到dll并下载符号,但当然它们与minidump中的dll不匹配,因此结果没用.
那么如何告诉dbghelp.dll下载并使用正确的pdbs?
[编辑]
我忘了声明SymLoadModule64只接受文件名而没有版本/校验和信息,所以很明显只有SymLoadModule64,dbghelp无法找出要下载的pdb.
这些信息实际上在MINIDUMP_MODULE_LIST中可用,但我不知道如何将其传递回dbghelp API.
有一个SymLoadModuleEx,它需要额外的参数,但我不知道这是我需要的,或者我应该传递给其他参数.
[编辑]
到目前为止没有运气,但我注意到在调试SDK中还有dbgng.dll与dbghelp.dll一起分发.MSDN看起来很好,并说它与windbg使用的引擎相同.也许我可以使用它来提取堆栈跟踪.
如果有人能指出我使用dbgeng.dll处理可能有用的minidumps的一些介绍,因为MSDN只记录单个组件,但不记录它们如何一起工作.
我的Android webview崩溃,adb logcat的错误转储告诉我libwebcore.so是导致分段错误的库.你怎么解决这个问题?
我最初的研究把我带到了这样的线程:如何在Android中使用addr2line,实质上是说获取库的非剥离版本并使用addr2line实用程序来查明导致分段错误的确切行
上面的帖子说"在obj/local/armeabi下使用.so文件,因为这是非剥离版本"......但我在/ usr/local/android-ndk-r6下找不到libwebcore.so 或者我的Mac上的/ usr/local/android-sdk-mac_86,我只在Android设备上的/ system/lib下找到了一个剥离版本的libwebcore.so .
有没有办法让我可以得到一个非剥离版本的libwebcore.so?或者我不是以正确的方式解决这个问题?
作为参考,这里是adb logcat吐出的错误转储:
I/DEBUG ( 65): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 65): Build fingerprint: 'google/passion/passion:2.3.4/GRJ22/121341:user/release-keys'
I/DEBUG ( 65): pid: 611, tid: 618 >>> com.swishly.gap <<<
I/DEBUG ( 65): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG ( 65): r0 00000002 r1 002f9564 r2 00000003 r3 …Run Code Online (Sandbox Code Playgroud) 我正在调试混合模式(托管和非托管)应用程序的问题.
实际问题在非托管代码中.
我已将SOS dll加载到Windebugger中.但是由于我已经加载了SOS dll,因此向我显示调用堆栈只有托管模式.我如何看到非托管代码的调用堆栈?
我有一个内核模块,用于分割传入的rtp数据包和合并rtp传出数据包.程序在2/3天内崩溃一次.如果可以找到模块崩溃的确切行,对我来说会非常方便.我在下面给出了崩溃转储.是否可以从崩溃转储中找到代码中的确切行?
PID: 1256 TASK: ffff88020fc71700 CPU: 0 COMMAND: "rtpproxy"
#0 [ffff880212faf2f0] machine_kexec at ffffffff8103bb7a
#1 [ffff880212faf360] crash_kexec at ffffffff810bb968
#2 [ffff880212faf430] oops_end at ffffffff8169fad8
#3 [ffff880212faf460] die at ffffffff81017808
#4 [ffff880212faf490] do_general_protection at ffffffff8169f5d2
#5 [ffff880212faf4c0] general_protection at ffffffff8169eef5
[exception RIP: pkt_queue+388]
RIP: ffffffffa00f3fa0 RSP: ffff880212faf578 RFLAGS: 00010292
RAX: ffff8802110ae400 RBX: ffff880213a53f38 RCX: 00015d910000a20f
RDX: 497d74565cede60c RSI: 000000006df1ed57 RDI: 00000000e46e0cfc
RBP: ffff880212faf728 R8: ffff880211a8b000 R9: ffff880212fafa60
R10: ffff880212fafbc8 R11: 0000000000000293 R12: 00000000134ab2b4
R13: 000000008386615c R14: 00000000000000e3 R15: 00000000000000e3
ORIG_RAX: ffffffffffffffff …Run Code Online (Sandbox Code Playgroud) 我有一个客户应用程序的崩溃转储,它是用我在WinDbg中分析的dll(发布版本,没有原始符号)的旧版本构建的.
为了获得更多信息,我在发布模式下使用相同的编译器版本重建了带符号的dll,我相信与最初构建dll时相同的设置.我将符号文件添加到我的符号路径,但是WinDbg扩展名!itoldyouso告诉我转储中的模块与PDB文件不匹配.启用SYMOPT_LOAD_ANYTHING也没有帮助.
!itoldyouso告诉我他们不匹配,因为模块没有pdb sig(值0),而不是我创建的重新创建的符号文件(使用有效的pdb sig).我如何让它们匹配?
我开发的一个程序偶尔会因为这个错误而崩溃JVM:http://bugs.java.com/bugdatabase/view_bug.do?video_id = 8029516.遗憾的是,Oracle尚未解决该漏洞,并且错误报告称没有已知的解决方法.
我试图通过在KeyWatcher线程中调用.register(sWatchService,eventKinds)来修改bug报告中的示例代码,方法是将所有挂起的注册请求添加到我在KeyWatcher线程中循环但仍在崩溃的列表中.我猜这与sWatchService上的同步效果相同(就像尝试过的bug报告的提交者一样).
你能想出办法解决这个问题吗?
我一直在尝试安装'调试工具',以便尝试分析转储文件服务器崩溃(Windows Server 2008 R2).
我过去常常这样做,但我找不到如何安装/找到Windows 7的调试工具.
我已经阅读了这篇知识库文章:http://support.microsoft.com/kb/315263.
然后,我尝试从以下文章(http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx)下载"Windows调试工具" .我选择"将Windows调试工具安装为独立组件",下载文件并进行安装.
它安装成功,但我仍然找不到文件.这对我来说似乎是一个愚蠢的问题,但我无法以任何方式找到调试工具!我甚至试图下载上面提到的Windows 7调试工具(http://www.microsoft.com/en-us/download/details.aspx?id=8279),但再次无法找到它们!
任何帮助将非常感激