windbg相关内容
是否可以在 WINDBG 中获取堆上托管对象的摘要信息,类似于 Visual Studio Ultimate 的“调试托管内存"选项提供的摘要. 我可以获得一些信息,但要具体情况具体分析,而且相当乏味.是否有一个宏或一组命令可以使用 WINDBG 产生类似的输出? Visual Studio 似乎有一个简洁的小例程,它收集所有根并显示根对象类及其总内存的摘要. 解决方案 对于任
..
为了跟踪仅在 Windows 8 用户计算机上发生的 Qt 中的崩溃,我设置了一个本地符号服务器以用于调试崩溃转储. 首先,我使用以下标志集进行了完整构建: QMAKE_CFLAGS_RELEASE += -ZiQMAKE_CXXFLAGS_RELEASE += -ZiQMAKE_LFLAGS_RELEASE +=/DEBUG/OPT:REF 并使用 Windows Installer
..
我需要 cdb.exe 作为 QT Creator 的调试器.我知道 cdb 可作为 Windows SDK 的一部分使用,但在我通过 Visual Studio 2017 安装程序安装 Windows SDK 时并未安装. 另一方面,如果我独立安装 Windows SDK(可用 here),我可以选择“调试工具",最后我在Windows kits中得到了预期的文件夹Debuggers,其中
..
是否可以将 .dvalloc 的结果存储到一个变量中? 我的意思是分配内存的起始地址 解决方案 我不认为在单个命令中很容易实现,所以所有选项都有点讨厌: 手动存储 优点:易于理解.使用复制/粘贴(右击复制,右击粘贴BTW) 0:000>.dvalloc 100000从 00000000`00290000 开始分配 100000 字节0:000>r $t9 = 00000
..
我的情况是我在我工作的地方支持一个 VB6 应用程序,在过去的几周里,它开始比以往任何时候都更频繁地崩溃.它同时使用本地 Access MDB 数据库和远程 SQL Server DB 进行不同类型的存储.好消息是我们正在编写一个替代应用程序,同时我需要支持这个应用程序,而供应商早已离开这个世界. 我可以尝试哪些方法来诊断崩溃的原因?例如,到目前为止,我已经在客户端 PC 上尝试了 ODBC
..
我有一个 .NET windows 服务,它调用 cdb.exe 来分析故障转储.我想在需要时自动从 http://msdl.microsoft.com 下载符号,使用参数: -y srv*c:\symbols*http://msdl.microsoft.com/download/symbols 如果我将应用程序作为控制台应用程序运行,它会按预期工作,并为每个转储下载所需的符号. 问题是
..
如何调试 Visual C++ 2010 SP1 应用程序无法完全加载其依赖项并过早退出而不显示其 UI 的场景? 我对 Fusion Logs、dependency walker 和远程调试器的良好指南感兴趣,如果您认为它们相关的话.是否可以使用 WinDbg 轻松验证?Process Explorer 怎么样? 是否可以在附加了远程调试器的远程机器上启动进程? 是否可以验证是
..
函数名后面的十六进制值(带+)代表什么? 00 012ff668 7795aa24 ntdll_778f0000!LdrInitShimEngineDynamic+0x72601 012ff8a0 77956e84 ntdll_778f0000!WinSqmSetDWORD64+0x14e402 012ff8f4 77956cd0 ntdll_778f0000!LdrInitializeThun
..
我在 Windows Internals 中读到,当创建线程时,默认情况下会为用户堆栈保留 1 MB 的虚拟内存.在这 1 MB 中,只会提交第一页 (0x1000). 当我使用 dumpbin.exe 转储图像标题时,我可以看到这一点.以下是 dumpbin 显示的内容: 但是,当我使用 !address 命令在 Windbg 中转储此 exe 的地址空间时,我看到了不同之处.Win
..
我通过CreateToolhelp32Snapshot 函数枚举进程中的所有线程.我想为每个线程获取一些基本的堆栈信息.更具体地说,我想获得堆栈底部地址,如果可能的话,我想获得当前的堆栈顶部地址.基本上这是在 WinDbg 中使用 ~*k 命令显示的信息.那么如何从线程的ID或者HANDLE中获取栈信息呢? 解决方案 (定义可以在此处找到.) 获取堆栈边界: THREAD_BASI
..
我正在尝试通过 Windows SDK 安装 Windows 调试工具,经过两次尝试后,我不知所措.我开始安装并没有收到任何错误,但调试工具(windbg 和 kd)无处可寻...日志几乎无用: 2011 年 7 月 18 日星期一晚上 9:16:59:[SDKSetup:Info] Config_Products_DetermineProductState_End:产品:Windows 调试工
..
(这是一个关于软件设计的相当大的问题.如果它不适合 StackOverflow,我愿意将其复制到软件工程社区) 我正在使用 heap_stat,这是一个调查转储的脚本.该脚本基于这样的想法,对于任何具有虚函数的对象,vftable 字段始终是第一个字段(允许找到对象类的内存地址).> 在我的应用程序中,有一些对象具有 vftable 条目(通常每个 STL 对象都有),但也有相当多的对象没
..
我使用windbg.exe调试了同一个exe.每次windbg加载此exe时,都会花一分钟时间下载符号.在windbg窗口的左下角,显示“"正在下载符号[winnt.dll]...". 我已经看过多次了.我已经设置了符号路径,其中一行是: *************符号路径验证摘要**************延迟的SRV * D:\ SymCache \ Microsoft * http
..
我只是在Windows 7故障转储上进行一些调试,并且遇到了一个单链列表,我无法完全理解它. 这是WinDBG的输出: dt _GENERAL_LOOKASIDE_POOL fffff80002a14800 -b....0x000 SingleListHead:_SINGLE_LIST_ENTRY+ 0x000下一步:0x0000000000220001.... 从我一直在阅读的内容
..
我无法在WinDbg中使用软件断点来中断给定地址. 这是Visual C ++ 6.0 MFC可执行文件,没有符号(请相信,我只是无法生成符号). 假设我的可执行映像名为 image00400000 .使用软件断点(bp): 0:000>bp image00400000 + 0x003ba1eb 0:000>bl 0 e 007ba1eb 0001(0001)0:**
..
在一夜之间使用drmemory运行了一组测试之后,我试图通过提供pdb符号来解决错误堆栈.pdb来自大型的samba映射存储库,在运行时使用_NT_SYMBOL_PATH会使速度降低太多. 有人知道有一种工具可以根据需要生成后处理result.txt并提取新符号(通过NT_SYMBOL_PATH或其他方式)以生成更详细的堆栈吗?如果不是,是否有任何提示可以使asan_symbolize.py
..
我正在使用WinDbg转储结构信息,例如: lkd>dt nt!_LIST_ENTRY+ 0x000 Flink:Ptr32 _LIST_ENTRY+ 0x004闪烁:Ptr32 _LIST_ENTRY 上面的示例显示了 _LIST_ENTRY 结构的32位版本.64位版本更大, Blink 位于 0x008 . 我知道只要加载适用于这些Windows版本的正确符号,就可以调试远
..
我的电脑进行了自动重启,当我检查事件查看器时,我发现了错误检查错误.我找到了创建的.dmp文件的位置.然后,我下载了WinDbg,并了解我要做的第一件事是设置符号路径,然后打开故障转储并选择.dmp文件.我在缺少win32k.sys
..
我有一个转储文件,并用WinDbg加载了它. 我已经使用!pe(打印异常)来查看异常(空引用异常).但是,它为我指出了一种包含约100行的方法. 是否可以找出抛出异常的行? 0:000>pe异常对象:00000000822e7e28异常类型:System.NullReferenceException消息:对象引用未设置为对象的实例.InnerException:Sta
..
鉴于我已通过单击Visual Studio( F5 )中的“播放"按钮来启动实时调试会话,以启动可执行文件. 说我发现了一个有趣的情况,无法在Visual Studio中进行分析,但是我知道如何在WinDbg中对其进行分析. 如何分离Visual Studio并附加WinDbg,以便WinDbg现在是调试器? 我尝试过: 分离VS,但这当然会继续运行应用程序,这是我不想要的
..