postmortem-debugging相关内容

静态链接系统库、libc、pthreads,以帮助调试

我试图避免 Stackoverflow 条目中描述的情况:调试客户盒子上生成的核心文件.如果我静态编译所有库,我会避免在核心转储时始终收集共享库吗?我基本上想处于一种可以使用 gdb 加载核心文件并检查崩溃的应用程序的情况. 如果我走静态链接我们需要的所有库的路线,我应该注意什么.我认为 glib 和 pthreads 可能会导致最大的问题. Valgrind 会不再有用吗?如果我针对 ..
发布时间:2022-01-20 20:30:17 服务器开发

事后崩溃转储调试,而在Symbol Server中没有Windows DLL的确切版本

在我的应用程序中,每当我的应用程序崩溃时,我都会使用MiniDumpWriteDump函数(请参阅dbghelp.dll)写入崩溃转储文件. 我还使用符号服务器来存储我的所有可执行文件和pdb文件,以便每当客户向我发送故障转储文件时,调试器都会自动选择正确版本的可执行文件和调试信息. 我还将Windows DLL(ntdll.dll,kernel32.dll等)及其调试信息存储在符号服 ..
发布时间:2021-04-29 20:25:02 其他开发

如何在包含反调试器措施的进程中调试崩溃

我的应用程序崩溃了,无法调试,因为我们的合作伙伴之一认为适合使用真正的可怕'CodeMeter'来加密其DLL. CodeMeter许可可防止所有尝试调试包含CodeMeter加密DLL的应用的尝试,甚至可能导致从未处理的异常过滤器调用的MiniDumpWriteDump失败(此技术在未加载此DLL的情况下有效).仅当将加密的DLL加载到进程中时,才会发生崩溃. 我很生气,试图调试它并确定是 ..
发布时间:2020-07-24 23:18:37 其他开发

故障转储分析:CxxUnhandledExceptionFilter

我有一个崩溃迷你转储文件来分析.我的程序是Qt5多线程应用程序.我不是调试专家,但通常我可以轻松找到程序失败的地方,但是这次我找不到.我在Visual Studio 2010中打开了转储文件,单击“仅使用本机调试",它向我显示了问题所在:它是位置为"__CxxUnhandledExceptionFilter"的线程.调用堆栈是这样的: msvcr100.dll()!_abort() msvc ..
发布时间:2020-07-24 23:17:28 C/C++开发

为Windbg获取正确的.net本机符号

我正在进行一些故障转储调试,在其中查找从生产服务器获取的转储.我在其上运行WinDbg的计算机必须安装稍有不同的.NET运行时版本-加载.NET系统程序集的本机映像时出现错误(因此无法加载例如System.Data.Linq). 确保调试机器可以访问所有正确符号的最佳方法是什么? 修改 为托马斯·韦勒增加了lmv的输出 000007fb`68660000 000007fb`689 ..
发布时间:2020-07-24 23:17:20 C#/.NET

静态链接系统库,libc,pthreads,以帮助调试

我试图避免在这个Stackoverflow条目中描述的情况:调试客户框中生成的核心文件。如果我静态编译所有库,我将避免在核心转储时总是收集共享库吗?我基本上希望处于一种情况,我可以用gdb加载核心文件并检查崩溃的应用程序。 如果我失败了,应该注意什么静态链接我们需要的所有库的路线。我认为glib和pthreads可能会造成最大的问题。 Valgrind会不再有用吗?如果我将Valgri ..
发布时间:2018-04-21 15:00:40 服务器开发

远程验尸coredump分析,而不具有共享系统库的确切调试符号

你通常如何解决这个问题?想象一下,一个线程在Computer1上的libc代码(这是一个系统共享库)中崩溃,然后生成一个coredump。但是,将要分析此coredump的Computer2可能具有不同版本的libc。 所以: 远程计算机上的共享库?请问gdb是否正确地重建了堆栈跟踪而没有在Conputer2上具有完全相同的libc版本? 为libc提供正确的调试符号有多重要?请问gd ..

在windbg中调试hang-dump问题

加载sosex之后,我收到以下错误。有任何想法吗?挂机是从32位机,我的是64位。我需要安装什么吗? !clrstack CLR DLL状态:错误:无法加载DLL mscordacwks_x86_x86_2.0.50727.3623.dll,Win32错误0n2 解决方案 问题是您的机器上的mscordacwks的版本是与崩溃转储不同的版本。这不是一个问题 - 即使你 ..
发布时间:2017-04-21 22:28:53 开发方法

跨平台崩溃处理程序

我在寻找一个跨平台的崩溃处理程序。 Google Breakpad 看起来很有希望,但它极其缺乏任何文档,并且需要合理的 什么是更好的替代品? 我需要的是能够可靠地记录崩溃时的崩溃转储,堆栈跟踪和CPU信息。或者,使用Google Breakpad的体验是什么?它是伟大的还是可怕的? 解决方案 事实证明,google-breakpad是相当不错的。这不是很容易设置,但它是我的需 ..

获取WinDBG的正确的.NET本地symols

我做了一些崩溃转储调试,在这里我要寻找从生产服务器采取了转储。我上运行WinDbg的机器必须有一个稍微不同的版本安装的.NET运行时 - 我得到错误装载的.NET系统集的本机映像(所以不能加载例如将System.Data.Linq )。 什么是保证我调试的机器可以访问所有正确的符号,最好的方法是什么? 修改 加LMV的输出托马斯·韦勒 000007fb`68660000 00 ..
发布时间:2016-10-01 20:31:47 C#/.NET

在WinDbg中调试.NET字符串值

我有捕获异常的.NET应用程序转储,我使用的WinDbg和兴趣在一个字符串参数对的方法之一的价值分析。我已经分离出的String对象。我的WinDbg的工作是: 0:000> .loadby索斯mscorwks 0:000> !DSO 操作系统线程ID:0x16f0(0) RSP / REG对象名称 00000000001fe908 000000000f011440 System. ..
发布时间:2015-11-26 20:48:22 C#/.NET