windbg相关内容

EPROCESS DirBase如何生成"VAD树根"?

我转储了一些过程数据. 我得到的DirBase值为00030000 Windows如何生成此值? 内核开始时是否有AVL Tree数据结构提供此数据? 我想学习如何在内核内部创建进程. 什么样的全局变量分配DirBase,ObjectTable等值. 以下是一些示例windbg: !process fb667a00 7 过程fb667a00投标编号:0002 Peb:00000000父投标编 ..
发布时间:2020-07-14 05:06:25 其他开发

WinDBG的命令类别?

我看到了一些有关WinDBG指令的参考和教程. 其中有些像lm,.echo,!running和nt!_PDB. 这些类别之间有什么区别 xxx .xxx !xxx xxx!yyy ? 他们看起来很困惑. 解决方案 有内置命令,元命令(点命令)和扩展命令(爆炸命令). 我个人的观点是,与元命令相比,您不必太在意内置命令的区别,因为有足够的示例说明这些定义不 ..
发布时间:2020-07-14 05:03:18 其他开发

从Linux调试Windows内核

我曾经使用 VirtualKD , WinDBG 和单个虚拟机来调试Windows内核. 最近我有一台Linux机器,现在我想知道-当主机无法运行 VirtualKD/WinDBG * 时,调试Windows内核的最简单方法是什么? 我认为该解决方案将需要两个虚拟机,但是我宁愿在实际计算机上托管两个实例,而不是将一个实例驻留在另一个虚拟实例中... 反正有做那个工作吗? 提 ..
发布时间:2020-07-14 05:03:11 其他开发

错误:找不到符号文件.安装程序

我从 http://www.microsoft.com/whdc下载了这些符号/devtools/debugging/symbolpkg.mspx 软件包(Windows 7 RTM x86零售符号,所有语言),但仍然给我相同的错误! .sympath已完成,但仍无法正常工作 .sympath C:\ inetpub \ wwwroot \ ProductsService \ bin ..
发布时间:2020-07-14 01:29:04 其他开发

为什么当工作线程要退出时我们需要检查IsIoPending?

从win32threadpool.cpp中我们知道,在检查20s超时之前退出工作线程之前,根据我的理解,它需要通过IsIoPending()方法检查是否有任何IO待处理: 1,当工作线程要退出时,必须完成工作并返回线程池. 2,基于上述1,应该没有IO等待线程退出. 所以我的问题是,为什么在线程死亡时我们需要检查待处理的IO?或者,我们如何模拟上述情况的发生? RetryW ..
发布时间:2020-07-07 19:54:52 C#/.NET

qt造物主调试慢

我正在Windows 7 64位上基于Qt 4.7.4运行Qt Creator 2.3.0.当我从Qt Creator(ctrl + r)运行该应用程序时,一切正常.但是,当我调试(F5)时,执行每一行会花费很多时间-有时需要2分钟才能执行一行代码. 我在“调试器日志"窗口中注意到以下行:调试器:C:\ Program Files(x86)\ Windows调试工具(x86)\ cdb.ex ..
发布时间:2020-07-05 02:05:31 其他开发

windbg转储命令失败,错误为0x8007012b

客户正在尝试捕获挂起的小型转储.他启动了WindDbg并成功附加到该过程. WinDbg显示其标题: Microsoft (R) Windows Debugger Version 6.11.0001.404 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. 并枚举了已加载的模块. 他输入了转储命令: ..
发布时间:2020-06-30 22:12:35 其他开发

由于后期构建步骤,未加载本机dll的符号(pdb)

我有一个用符号构建的本机发行版dll.有一个后构建步骤,可以修改dll.后构建步骤进行了一些压缩,并可能附加了一些数据. pdb文件仍然有效,但是在后期构建步骤之后,WinDbg和Visual Studio 2008均不会加载dll的符号.我们需要修改pdb文件或dll中的哪些位,以便在WinDbg或Visual Studio加载引用了我们的发行版dll的转储时,使WinDbg或Visual St ..
发布时间:2020-06-30 22:12:25 C/C++开发

如何在windbg中通过句柄获取文件路径?

如何在内核模式下使用windbg/kd从句柄获取文件路径? 解决方案 使用!handle 7 显示该句柄的详细信息,其中是句柄值,而是进程ID值(均基于十六进制)看到此 msdn 链接以获取更多信息. 您可以从用户模式会话中闪烁进程ID,这是最简单的方法,只需在用户模式下附加并输入管道命令|,它将输 ..
发布时间:2020-06-17 19:29:15 其他开发

我需要WOW64转储进行GDI句柄分析吗?

我正在调试潜在的GDI手柄泄漏.感谢 @Alois Kraus ,因此有了在我的调试会话中,尤其是.NET, ,我发现通常最好有32位进程的32位转储和64位进程的64位转储. 不幸的是,由于收到了2个崩溃转储,该脚本无法正常工作.深入研究它,我发现这些转储中的GdiSharedHandleTable是null: 0:000> dt ntdll!_PEB GdiSharedHandle ..
发布时间:2020-06-17 19:28:14 其他开发

使用WinDbg从minidump确定InnerException的行号

我正在尝试从转储中跟踪NullReferenceException。 NullReferenceException不是崩溃异常,而是崩溃异常是TargetInvocationException,而InnerException是NullReferenceException。 我正在将Windbg与SOS一起使用,我使用了命令 analyze -v ,这给了我打电话NullReferenceEx ..
发布时间:2020-06-10 23:31:20 C#/.NET

如何控制多进程调试

我正在使用WinDbg分析 AcroRd32.exe 。 AcroRd32.exe 有2个进程,一个(父亲p)启动另一个进程(子p)。我使用 .childdbg 1 和 | 1s 等命令调试这两个进程。 我切换到child-p,然后切换回父亲-p,监视kernel32.dll的 CreateFileW 和 ReadFile 具有条件断点的API。打开 a.pdf 时,仅使用参数“ C:\a. ..
发布时间:2020-06-02 19:26:25 其他开发

.NET内存转储中大量死线程

在对.Net4.5 WCF w3wp进程的内存转储进行分析期间,我遇到了许多被确定为无效的线程。 !threads显示107个线程中有68个已死,这似乎很高。我想知道这些线程是否可以容纳大量内存,因为该进程最终会高达20GB以上,并且似乎永远不会崩溃。 我如何检查此类线程并看到这些持有的对象/内存? 0:000> !threads 线程数:107 UnstartedThrea ..
发布时间:2020-05-31 19:06:12 其他开发

SOS不支持当前的目标体系结构

我正在尝试使用windbg研究在x64机器上为我们的x86进程创建的挂起转储文件。这是一个4.0 x86应用程序,因此,为了获得不受管理的堆栈,我必须执行以下操作: .loadby sos clr .load wow64exts !sw kL 但是每次我尝试通过!clrstack 获取托管堆栈,但标题出现错误。我缺少什么? 解决方案 我相信您将不得不使用 ..
发布时间:2020-05-31 18:47:33 C#/.NET

.loadby sos clr-找不到指定的模块

我试图深入了解我的转储文件中的CLR异常,但尝试执行时遇到问题: 0:000> .loadby sos clr 对LoadLibrary(C:\ProgramData\dbg\sym\clr.dll\5348A1EF9a0000\sos)的调用失败,Win32错误0n126 “指定的模块可能找不到。” 我试图查看加载的内容,然后看到: 0:000> lm ..
发布时间:2020-05-30 20:56:29 C#/.NET

什么是WinDbg< unknown>记忆?

我正在调试Winforms应用程序以防内存泄漏。客户提供的转储文件中,未知内存使用量与.NET堆大小之间存在很大差异。 (约1000mb和200mb)。那么,除了CLR完成的VirtualAllocs之外,未知段中还有什么? !eeheap -gc输出 !地址-摘要输出 解决方案 报告为的内存是通过 VirtualAlloc() 。一些众所周知的来源是: ..
发布时间:2020-05-30 20:25:20 C#/.NET