这是一个奇怪的错误。比如说,如果我打开WinDbg并按照我喜欢的方式放置所有窗口:然后,出于某种原因,我打开WinDbg的次数越多,它就越会缩小所有这些窗口。所以随着时间的推移,它最终看起来像这样:有没有办法阻止它这样做? 最佳答案 这不是对旧版本WinDbg的修复。这就是如何在10以外的Windows系统上安装WinDbgPreviewv.10。(@magicandre1981在对我的原始问题的评论中建议。)安装WinDbgPreview从Windows10计算机上的Windows应用商店。然后运行它。打开任务管理器并切换到进程选
在WinDbg中,k或kb命令展开堆栈并生成堆栈跟踪。输出看起来像这样-ChildEBPRetAddrArgstoChild0021b2f0559fdbf204b885a002a300005a675a790021b3dc559fc3b802a3d0b80021b4c000000000据我所知,EBP是指向当前栈帧起始地址的基指针。RetAddr是“返回地址”,一旦当前函数返回,处理将在此处继续。但是,据我所知,函数框架被压入堆栈。那么,为什么RetAddr的值与ChildEBP的值明显不同?它们应该是相似的,因为我们在同一个堆栈上工作。我错过了什么吗? 最佳
为了跟踪仅在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
我正在使用windbg调查Windows应用程序中的缓慢内存泄漏!heap-s给出以下输出HeapFlagsReservCommitVirtFreeListUCRVirtLockFast(k)(k)(k)(k)lengthblockscont.heap-------------------------------------------------------------------------------------00000023d62c0000080000021182680116999611819001575927697832b63LFH00000023d483000008008
我在Linux上运行QEmu,虚拟化操作系统是WindowsXP。我想要第一种或第二种可能性:在QEmu中应用一个命令,创建一个可以用WinDbg打开的转储在QEmu中应用一个创建特定类型转储的命令,然后使用另一个实用程序使其可被WinDbg读取我知道QEmu的“dump-guest-memory”(创建ELF转储)、rekall的raw2dmp插件和Volatility的raw2dmp插件。WinDbg可以扫描输出,但实际上您会遇到header错误的问题-可能是转储中最重要的部分,当使用上述工具/插件创建转储时,这毫无用处。许多字段缺少正确的详细信息。与Windows操作系统本身创建
是否有某种方法,类似于“bmModule!Symbol”,可以在windbg中的COM类的特定方法上设置断点?看起来COMDLL只导出四个符号(DllCanUnloadNow、DllGetClassObject、DllRegisterServer和DllUnregisterServer),因此通常的“bm”方法不起作用。我假设还有其他方法可以做到这一点,但在过去一个小时左右我一直没能找到它。 最佳答案 您应该可以使用bu(Unresolved断点)。我相信语法如下,但我的内存可能生锈了:buMyDll!MyClass::MyMeth
通常我在我的C++代码中插入一个assert(0);,启动Windbg,按F5,输入k然后我得到一个堆栈跟踪。然后我必须通过鼠标复制粘贴它并退出。但我想将其自动化。有什么方法可以检索堆栈跟踪并将其写入文本文件而无需手动使用GUI? 最佳答案 首先,您可以像这样使用.logopen将gui的输出写入文本文件.logopenc:\dump\myLog.txt这会将所有内容转储到此位置,调用.logclose以在一行中关闭日志:.logopenc:\dump\myLog.txt;k;.logclose其次,如果你真的不想使用gui,还有命
尝试在WinDbg中执行基于线程的命令。安装程序是具有XP的VMWare,主机是Win7。基于this,试图调试应用程序挂起。但是无法从中获取任何信息。对于简单的tilda(~)它给出了语法错误。我需要做一些不同的设置才能执行这些命令吗?无论如何,这些“特殊”吗?因为我可以使用其他命令。基本上我希望WinDbg让我监控线程的状态?例如等待响应、发送请求或类似的事情。 最佳答案 ~仅为用户模式调试更改线程上下文。对于krnelmkode调试,请参阅帮助:。线。过程!线!过程 关于windo
我收到一份WER报告,说我们的.net应用程序在某台机器上崩溃了,我得到了崩溃的转储文件,但我尝试了很多方法,阅读了很多关于调试.net崩溃的文章,但仍然没有运气,我什至无法运行sos.dll提供的扩展命令,我总是收到以下消息“找不到运行时DLL(clr.dll),0x80004005扩展命令需要clr.dll才能执行某些操作。”我想知道如何知道那台机器上的.net框架版本?因为非扩展命令可以工作!!请帮忙!!当我使用“lm”命令列出所有加载的模块时,我没有在模块列表中找到“clr”或“clrjit”模块,这是否意味着我的应用程序在崩溃之前实际上没有运行,可以我说机器上的.net框架坏
您好,我正在尝试使用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