草庐IT

c++ - 使用 symstore.exe 无法在 Windbg 或 Visual Studio 中为小型转储加载符号

为了跟踪仅在Windows8用户计算机上发生的Qt崩溃,我设置了一个本地符号服务器以用于调试故障转储。首先,我使用以下标志集进行了完整构建:QMAKE_CFLAGS_RELEASE+=-ZiQMAKE_CXXFLAGS_RELEASE+=-ZiQMAKE_LFLAGS_RELEASE+=/DEBUG/OPT:REF并使用WindowsInstaller和VS部署项目构建了一个安装程序。然后我运行了以下symstore.exe命令:C:\ProgramFiles(x86)\WindowsKits\8.1\Debuggers\x64>symstore.exeadd/r/fC:\buildd

c++ - 当我将异常信息添加到我的小型转储时,堆栈信息消失了

我正在为子进程编写进程外小型转储。这是相关的代码片段:CONTEXTthread_context{};thread_context.ContextFlags=CONTEXT_FULL;assert(GetThreadContext(child_thread_handle,&thread_context));EXCEPTION_POINTERSexception_ptrs;exception_ptrs.ExceptionRecord=&exception_info.ExceptionRecord;exception_ptrs.ContextRecord=&thread_context;M

windows - 创建 QEmu guest 操作系统的 WinDbg 可读转储

我在Linux上运行QEmu,虚拟化操作系统是WindowsXP。我想要第一种或第二种可能性:在QEmu中应用一个命令,创建一个可以用WinDbg打开的转储在QEmu中应用一个创建特定类型转储的命令,然后使用另一个实用程序使其可被WinDbg读取我知道QEmu的“dump-guest-memory”(创建ELF转储)、rekall的raw2dmp插件和Volatility的raw2dmp插件。WinDbg可以扫描输出,但实际上您会遇到header错误的问题-可能是转储中最重要的部分,当使用上述工具/插件创建转储时,这毫无用处。许多字段缺少正确的详细信息。与Windows操作系统本身创建

python - 用 Python 编写 Windows 迷你转储

我一直在尝试创建一个函数来为给定的进程ID写入小型转储文件。到目前为止我有这个:importwin32con,win32api,win32file,ctypesdbghelp=ctypes.windll.dbghelpdefcreateMiniDump(pid,file_name):#Adjustprivileges.adjustPrivilege(win32security.SE_DEBUG_NAME)pHandle=win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION|win32con.PROCESS_VM_READ,0,p

八进制转储(OD)的 Windows 等效命令?

什么是od的windows等效命令在Linux中-echoxxxxx|发布网址|od-xv那么Windows中的等效命令是什么? 最佳答案 od是CoreUtils的一部分,可通过GnuWin32获得。 关于八进制转储(OD)的Windows等效命令?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12536725/

windows - 自动转储文件生成,是否有注册表设置?

今天我使用SysInternals工具ProcDump生成转储文件,在cmd窗口中运行这样的命令::loopnetstop"MyService"netstart"MyService"echoMonitoringAccessviolationsprocdump.exe-e-g-maMyApplication.exeMyDumpFile.dmp>log.txtgotoloop但是否有另一种方法可以直接告诉Windows在应用程序崩溃时创建转储?例如,我找到了这个注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashCon

.net - 无法在 windbg 中调试 .net 转储

我收到一份WER报告,说我们的.net应用程序在某台机器上崩溃了,我得到了崩溃的转储文件,但我尝试了很多方法,阅读了很多关于调试.net崩溃的文章,但仍然没有运气,我什至无法运行sos.dll提供的扩展命令,我总是收到以下消息“找不到运行时DLL(clr.dll),0x80004005扩展命令需要clr.dll才能执行某些操作。”我想知道如何知道那台机器上的.net框架版本?因为非扩展命令可以工作!!请帮忙!!当我使用“lm”命令列出所有加载的模块时,我没有在模块列表中找到“clr”或“clrjit”模块,这是否意味着我的应用程序在崩溃之前实际上没有运行,可以我说机器上的.net框架坏

windows - 尝试使用 WinDbg : PEB is Paged Out, 分析转储文件不会加载符号

您好,我正在尝试使用WinDbg查看memory.dmp内核转储文件,以诊断崩溃。当我打开崩溃文件并获取符号时,我收到消息BugCheckA,{2,ff,4e,fffff801a42ebff2}CompressedPageDataReaderwarning:failedtoget_SM_PAGE_KEYsymbol.CompressedPageDataReaderwarning:failedtoget_SM_PAGE_KEYsymbol.Probablycausedby:ntkrnlmp.exe(nt!KxWaitForLockOwnerShipWithIrql+12)Followup

c++ - 如何检查导致转储的故障发生在哪毫秒?

我有一个在客户站点生成的核心转储。我只能从时间戳中找到转储文件打开的时间。(文件名的一部分。)是否可以查看异常发生在几毫秒?这将使我能够更准确地与日志文件(以毫秒为单位)进行比较。 最佳答案 如上所述,“.time”是您获取转储发生时间戳的方式。对于用户转储,这是不太可能的——根据我的观察,它总是只有二级精度。然而,对于内核转储,我发现它精确到毫秒。但是,我发现“.time”输出中的“系统正常运行时间”对于内核和用户转储都精确到毫秒。如果您能够获得精确到毫秒的上次启动时间(例如通过调用“wmicosgetlastBootUpTime

c++ - 内存转储分析(应用挂起)

我正在尝试分析在我的应用程序发生挂起后从我的一位最终用户那里收到的内存转储。它似乎与我的应用程序的音频播放部分有关。我相信涉及两个线程,即将开始播放声音的主线程,以及一个更新程序线程,它迭代链表中的声音以不断更新它们的状态。但是,我不明白挂起的来源是什么。我的WinDbg知识有限,但我设法弄清楚挂起似乎发生在音频库的SetLoop方法中(具体在静态声音代码中)。我使用DirectSound,在这种情况下应用程序在Windows732位上运行(我自己在XP上开发,我从来没有遇到过这样的问题)。静态声音类在检查声音是否正在播放之前锁定关键部分,如果不是,则将循环标志设置为true或fals