windbg相关内容

获得 Visual Studio 终极版“调试管理内存"Windbg 的输出

是否可以在 WINDBG 中获取堆上托管对象的摘要信息,类似于 Visual Studio Ultimate 的“调试托管内存"选项提供的摘要. 我可以获得一些信息,但要具体情况具体分析,而且相当乏味.是否有一个宏或一组命令可以使用 WINDBG 产生类似的输出? Visual Studio 似乎有一个简洁的小例程,它收集所有根并显示根对象类及其总内存的摘要. 解决方案 对于任 ..
发布时间:2021-09-18 20:16:11 其他开发

使用 symstore.exe 无法在 Windbg 或 Visual Studio 中加载用于小型转储的符号

为了跟踪仅在 Windows 8 用户计算机上发生的 Qt 中的崩溃,我设置了一个本地符号服务器以用于调试崩溃转储. 首先,我使用以下标志集进行了完整构建: QMAKE_CFLAGS_RELEASE += -ZiQMAKE_CXXFLAGS_RELEASE += -ZiQMAKE_LFLAGS_RELEASE +=/DEBUG/OPT:REF 并使用 Windows Installer ..
发布时间:2021-09-18 19:56:19 C/C++开发

如何使用 Visual Studio 2017 安装程序安装调试工具?

我需要 cdb.exe 作为 QT Creator 的调试器.我知道 cdb 可作为 Windows SDK 的一部分使用,但在我通过 Visual Studio 2017 安装程序安装 Windows SDK 时并未安装. 另一方面,如果我独立安装 Windows SDK(可用 here),我可以选择“调试工具",最后我在Windows kits中得到了预期的文件夹Debuggers,其中 ..
发布时间:2021-09-18 19:33:48 其他开发

将 .dvalloc 的结果存储到变量中

是否可以将 .dvalloc 的结果存储到一个变量中? 我的意思是分配内存的起始地址 解决方案 我不认为在单个命令中很容易实现,所以所有选项都有点讨厌: 手动存储 优点:易于理解.使用复制/粘贴(右击复制,右击粘贴BTW) 0:000>.dvalloc 100000从 00000000`00290000 开始分配 100000 字节0:000>r $t9 = 00000 ..
发布时间:2021-09-18 18:51:36 其他开发

VB6 调试 - 已编译

我的情况是我在我工作的地方支持一个 VB6 应用程序,在过去的几周里,它开始比以往任何时候都更频繁地崩溃.它同时使用本地 Access MDB 数据库和远程 SQL Server DB 进行不同类型的存储.好消息是我们正在编写一个替代应用程序,同时我需要支持这个应用程序,而供应商早已离开这个世界. 我可以尝试哪些方法来诊断崩溃的原因?例如,到目前为止,我已经在客户端 PC 上尝试了 ODBC ..
发布时间:2021-09-09 18:59:40 其他开发

在 Windows 服务中运行 cdb 时无法下载 Microsoft 符号

我有一个 .NET windows 服务,它调用 cdb.exe 来分析故障转储.我想在需要时自动从 http://msdl.microsoft.com 下载符号,使用参数: -y srv*c:\symbols*http://msdl.microsoft.com/download/symbols 如果我将应用程序作为控制台应用程序运行,它会按预期工作,并为每个转储下载所需的符号. 问题是 ..
发布时间:2021-09-03 18:48:23 其他开发

如何调试静态依赖加载问题?

如何调试 Visual C++ 2010 SP1 应用程序无法完全加载其依赖项并过早退出而不显示其 UI 的场景? 我对 Fusion Logs、dependency walker 和远程调试器的良好指南感兴趣,如果您认为它们相关的话.是否可以使用 WinDbg 轻松验证?Process Explorer 怎么样? 是否可以在附加了远程调试器的远程机器上启动进程? 是否可以验证是 ..
发布时间:2021-08-30 18:34:36 C/C++开发

WinDbg 调用堆栈十六进制偏移量

函数名后面的十六进制值(带+)代表什么? 00 012ff668 7795aa24 ntdll_778f0000!LdrInitShimEngineDynamic+0x72601 012ff8a0 77956e84 ntdll_778f0000!WinSqmSetDWORD64+0x14e402 012ff8f4 77956cd0 ntdll_778f0000!LdrInitializeThun ..
发布时间:2021-08-28 18:39:58 其他开发

!address 命令显示用户模式堆栈初始提交大小的不同值

我在 Windows Internals 中读到,当创建线程时,默认情况下会为用户堆栈保留 1 MB 的虚拟内存.在这 1 MB 中,只会提交第一页 (0x1000). 当我使用 dumpbin.exe 转储图像标题时,我可以看到这一点.以下是 dumpbin 显示的内容: 但是,当我使用 !address 命令在 Windbg 中转储此 exe 的地址空间时,我看到了不同之处.Win ..
发布时间:2021-08-28 18:39:03 其他开发

如何在 Windows 上获取线程堆栈信息?

我通过CreateToolhelp32Snapshot 函数枚举进程中的所有线程.我想为每个线程获取一些基本的堆栈信息.更具体地说,我想获得堆栈底部地址,如果可能的话,我想获得当前的堆栈顶部地址.基本上这是在 WinDbg 中使用 ~*k 命令显示的信息.那么如何从线程的ID或者HANDLE中获取栈信息呢? 解决方案 (定义可以在此处找到.) 获取堆栈边界: THREAD_BASI ..
发布时间:2021-08-28 18:35:36 其他开发

Windows 调试工具未安装

我正在尝试通过 Windows SDK 安装 Windows 调试工具,经过两次尝试后,我不知所措.我开始安装并没有收到任何错误,但调试工具(windbg 和 kd)无处可寻...日志几乎无用: 2011 年 7 月 18 日星期一晚上 9:16:59:[SDKSetup:Info] Config_Products_DetermineProductState_End:产品:Windows 调试工 ..
发布时间:2021-07-07 19:08:34 其他开发

在windbg“x/2"中强制执行vftable条目结果,要考虑什么?

(这是一个关于软件设计的相当大的问题.如果它不适合 StackOverflow,我愿意将其复制到软件工程社区) 我正在使用 heap_stat,这是一个调查转储的脚本.该脚本基于这样的想法,对于任何具有虚函数的对象,vftable 字段始终是第一个字段(允许找到对象类的内存地址).> 在我的应用程序中,有一些对象具有 vftable 条目(通常每个 STL 对象都有),但也有相当多的对象没 ..
发布时间:2021-06-02 20:02:55 C/C++开发

我已经在windbg中设置了符号路径,但是为什么每次windbg都为同一个exe下载相同的符号?

我使用windbg.exe调试了同一个exe.每次windbg加载此exe时,都会花一分钟时间下载符号.在windbg窗口的左下角,显示“"正在下载符号[winnt.dll]...". 我已经看过多次了.我已经设置了符号路径,其中一行是: *************符号路径验证摘要**************延迟的SRV * D:\ SymCache \ Microsoft * http ..
发布时间:2021-05-30 19:46:12 其他开发

进程退出后,带有新符号的后处理内存错误堆栈

在一夜之间使用drmemory运行了一组测试之后,我试图通过提供pdb符号来解决错误堆栈.pdb来自大型的samba映射存储库,在运行时使用_NT_SYMBOL_PATH会使速度降低太多. 有人知道有一种工具可以根据需要生成后处理result.txt并提取新符号(通过NT_SYMBOL_PATH或其他方式)以生成更详细的堆栈吗?如果不是,是否有任何提示可以使asan_symbolize.py ..
发布时间:2021-04-29 20:31:44 其他开发

我可以使用WinDbg转储其他平台的结构吗?

我正在使用WinDbg转储结构信息,例如: lkd>dt nt!_LIST_ENTRY+ 0x000 Flink:Ptr32 _LIST_ENTRY+ 0x004闪烁:Ptr32 _LIST_ENTRY 上面的示例显示了 _LIST_ENTRY 结构的32位版本.64位版本更大, Blink 位于 0x008 . 我知道只要加载适用于这些Windows版本的正确符号,就可以调试远 ..
发布时间:2021-04-29 20:30:59 其他开发

WinDbg的符号路径

我的电脑进行了自动重启,当我检查事件查看器时,我发现了错误检查错误.我找到了创建的.dmp文件的位置.然后,我下载了WinDbg,并了解我要做的第一件事是设置符号路径,然后打开故障转储并选择.dmp文件.我在缺少win32k.sys ..
发布时间:2021-04-29 20:30:24 其他开发

是否有可能从转储中获得引发异常的行?

我有一个转储文件,并用WinDbg加载了它. 我已经使用!pe(打印异常)来查看异常(空引用异常).但是,它为我指出了一种包含约100行的方法. 是否可以找出抛出异常的行? 0:000>pe异常对象:00000000822e7e28异常类型:System.NullReferenceException消息:对象引用未设置为对象的实例.InnerException:Sta ..
发布时间:2021-04-29 20:29:16 C#/.NET

从VS调试器切换到WinDbg

鉴于我已通过单击Visual Studio( F5 )中的“播放"按钮来启动实时调试会话,以启动可执行文件. 说我发现了一个有趣的情况,无法在Visual Studio中进行分析,但是我知道如何在WinDbg中对其进行分析. 如何分离Visual Studio并附加WinDbg,以便WinDbg现在是调试器? 我尝试过: 分离VS,但这当然会继续运行应用程序,这是我不想要的 ..
发布时间:2021-04-29 20:28:50 其他开发