草庐IT

windows - 在 WinDbg 中定义自定义错误检查代码

有没有一种方法可以定义自定义代码(带有消息/描述等),以便在Windows的内核模式驱动程序中调用KeBugCheckEx来发出自定义BugCheck代码,WinDbg显示该自定义错误检查代码附带的关联消息? 最佳答案 有关已知错误检查代码的文本被编译到其中一个扩展DLL中。据我所知,这不是可以通过任何一种简单的方式扩展的东西(即你不能只在文件的某个地方添加文本)。 关于windows-在WinDbg中定义自定义错误检查代码,我们在StackOverflow上找到一个类似的问题:

windows - 如何使用 windbg 分析 Chrome Aw Snap 后的异常

我的Web应用程序中一直有“AwSnap”。在HowdoIdebugatabcrashinGoogleChrome的帮助下使用windbg我试图找出问题所在。到目前为止我完成的步骤:从Crashes目录中得到一个.dmp文件加载到windbg设法查看堆栈(使用“k”)尝试!analyze时没有显示任何有意义的内容我需要什么才能看到导致崩溃的模块如何从这里进步?编辑:有一个错字。"!analyze-v"的工作类似于:kb、dd、.exr、.cxr、kv对于所有ChromeAwSnappers-!analyze-v就是你要找的信息如下...0:000>!analyze***********

c++ - 从地址查找堆或堆 block 或段

我一直在调试软件中的堆损坏。我可以将数据写入堆并控制一些指针。我可以在不知道这一点的情况下实现执行代码的目标,但这让我有点困惑。问题是我找不到正在写入的block在哪个堆中,也找不到堆段。我在Windbg下使用了:!heap-x[address]和!heap-x-v[address]但他们没有给我任何结果。我知道当第一个堆中没有可用的未提交空间时,某些堆可能会保留另一个堆段。但是,我已经转储了所有堆段,但找不到基地址与我要查找的段相似的段。对我来说似乎有点奇怪,没有进程或应用程序特定的堆有这些block!! 最佳答案 如果堆已损坏,

c - Windows逆向工程: find a specific Windows structure

我正在使用Windbg在Windows(x64)内核上做一些反向操作。我尝试确定由以下字节表示的结构:0e00100000000000-90dbfedb12000000我认为:90dbfedb12000000是一个指向字符串的指针kd>d12dbfedb9000000012`dcec721063006f0075006e-0074007200790000c.o.u.n.t.r.y.0e00是字符串的大小1000是带有终止空字节的字符串的大小所以我认为原始结构如下所示:typedefstruct_SSTR{WORDwStringLen;WORDwStringWithNullCharLen;

windows - WinDbg 窗口符号

我正在尝试调试我编写的应用程序的转储文件。我将以下符号路径添加到WinDbg我假设这会下载调试它所必需的Windows符号。然后我在WinDbg中运行以下命令“!analyze-v”这开始分析,然后由于找不到符号而失败。当我查看C:\MyServerSymbols时,我看到以下内容我希望看到的不仅仅是kernelbase.dll分析命令提示找不到ntdll符号。下面是它给我的完整输出。有谁知道如何获取它需要的符号吗?0:001>!analyze-v**********************************************************************

windows - 如何从trap帧中抓取错误码?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。TheTaoofProgramming以单词开头:Thusspakethemasterprogrammer:"Whenyouhavelearnedtosnatchtheerrorcodefromthetrapframe,itwillbetimeforyoutoleave."请赐教。

c++ - WinDbg 说在图像列表中找不到 ".dll"

我试图在WinDbg中加载一个dll,但遇到了这个错误。详情如下。使用VisualC++express构建A.dll。将A.pdb和A.dll放在d:\test\目录下。设置图片路径和符号路径为d:\test.sympathgivesOKD:\test尝试使用以下命令加载.reload/fA.dll它给了"A.dll"wasnotfoundintheimagelist.Debuggerwillattempttoload"A.dll"atgivenbase00000000.Pleaseprovidethefullimagename,includingtheextension(i.e.ke

windows - 如何在内核转储中获取 Section 对象的内容

来自3thParty供应商的部分对象名为rpsPdf10.mutex,其预期用途是通过向其写入bool标志来模拟信号量。使用LiveKd并在SO的大量帮助下,我发出了以下命令,试图获取此Section对象的详细信息。0:kd>!process003thParty.exe...PROCESSfffffa800ea80060SessionId:0Cid:0a00Peb:fffdf000ParentCid:014cDirBase:99349000ObjectTable:fffff8a004448bf0HandleCount:338.Image:3thParty.exe...0:kd>!han

windows - windbg !heap 输出中的 'size' 数字是什么意思?

我在我的DMP文件中看到这样的输出:HeapentriesforSegment00inHeap0015000000150640:00640.00040[01]-busy(40)00150680:00040.01808[01]-busy(1800)00151e88:01808.00210[01]-busy(208)00152098:00210.00228[00]001522c0:00228.00030[01]-busy(22)001522f0:00030.00018[01]-busy(10)00152308:00018.00048[01]-busy(3c)WinDbg文档是这样说的:He

windows - 关于内存转储的问题

我目前正在尝试设计一个内存转储工具,它可以从另一个进程中获取崩溃进程的内存转储。但我对此完全陌生,我想借此机会深入了解内存转储技术。我想知道为崩溃进程创建内存转储的工作范例。我目前的天马行空的想象如下:当一个进程崩溃时,操作系统总是会知道(我不知道如何但它应该能够)。然后操作系统启动某种机制将崩溃进程的虚拟地址空间的内容复制到所谓的转储文件中。然后我们可以使用WinDbg对转储文件进行调试。我想知道,如果我们可以将崩溃进程的整个虚拟地址空间复制到转储文件中,文件会不会太大?或者我们可以指定要转储的虚拟地址空间(内核/用户)吗?任何人都可以提供一些引用资料供我开始使用,尤其是在以下方面: