windbg相关内容

检查非托管线程中的托管异常

我正在查看一个小型转储文件,其中主线程(c++)利用CLR启动托管(C#.NET)窗口,托管部分抛出异常,并使应用程序崩溃。我一直在四处寻找检查异常详细信息以寻找线索的技术,但它们主要针对其中之一(完全非托管堆栈&;线程或完全托管堆栈&;线程)。 下面是托管调用堆栈的一部分,我可以看到.NET部分内部引发了异常,但我真的不确定有什么方法可以深入查看引发的细节。我在挖掘.dmp文件方面 ..
发布时间:2022-08-17 21:19:55 C#/.NET

是否可以修复完全内存转储,以便不再需要运行.imgcan/l?

由于某种原因,我已开始从生产中接收需要先运行.imgscan /l的转储。 现在,我倾向于使用从PowerShell脚本调用的CDB对转储运行小型查询。但是,每次运行.imgscan /l都需要相当长的时间。 是否可以通过使.imgscan /l变得不必要的方式修复转储? 附注 我认为需要运行.imgscan /l还有另一个问题-DebugDiag似乎不理解此类转储。 推 ..
发布时间:2022-07-21 20:53:27 其他开发

各种转换存储错误意味着什么?

我正在尝试使用convertstore.exe工具ASdescribed by Microsoft将2层符号存储转换为3层符号存储。 但是,我收到的错误消息并不能告诉我太多。根据我要转换的商店,我会收到以下错误: Failed initial checks. Failed to lock Symbol Store. Error 0x00000003. ERROR: Couldn't c ..
发布时间:2022-06-14 09:10:03 其他开发

尝试使用WinDBG预览版Windows 11调试LoadLibraryExW

我想弄清楚为什么添加到路径AddDllDirectory()而不是退出进程路径不会让我加载VBA函数中使用的DLL。所以我想知道LoadLibraryExW()的第三个参数是什么。 第一个问题是我正确加载了符号。我的符号服务器缓存中全是PDB文件。但是,找不到kernelbase.dll的符号。 进程监视器显示堆栈跟踪,但不显示符号。 我在WinDbgPview中为kernelb ..
发布时间:2022-06-14 09:03:58 其他开发

理解!地址-托管分配的摘要

我试图了解!地址摘要报告是如何管理分配的。我有以下代码来尝试测试它。我基本上更改了数组的大小,然后附加了winbg来检查结果!地址摘要 static void Main(string[] args) { int size = 2000; var something = new byte[size]; for (int i = 0 ..
发布时间:2022-06-14 09:00:18 C#/.NET

Windbg别名替换是否损坏?简化示例

昨天我问了一个关于winbg别名(Strange behavior of windbg alias in loops)行为的问题,得到了一些有帮助的答案。 现在我有一个简化的示例,它显示了我看到的行为,没有任何循环。看起来别名替换简直是坏了,关于.Block{}的文档基本上是错的。 在foo.winbg脚本中,我有以下内容: ;aS ${/v:foo} 1 al .block ..
发布时间:2022-06-13 23:53:20 其他开发

WinDbg多次显示相同的线条

我在使用WinDbg时遇到可读性问题,它一次又一次地输出相同的行两次或更多次,给控制台带来垃圾邮件。 以下是WinDbg输出的示例快照: Built by: 17134.1.amd64fre.rs4_release.180410-1804 Built by: 17134.1.amd64fre.rs4_release.180410-1804 Machine Name:Machine Na ..
发布时间:2022-06-13 23:42:12 其他开发

Windbg别名在循环中的奇怪行为

我正在尝试掌握Windbg别名(例如as命令),但遇到了我无法理解的行为。这是一个令人讨厌的问题(至少对我来说),我很想理解它,所以任何帮助都是真的很感激。 总的来说,我认为我了解别名计算过程(例如,需要使用新的语句块来强制执行新的计算)。 我把这个问题归结为以下几点。首先是这个: ad *; .foreach /s (var "aaa bbb ccc") { ;aS ${/v: ..
发布时间:2022-06-13 23:27:48 其他开发

Windbg-将伪寄存器传递给扩展和脚本

我一直在尝试传递一个加载到$t0中的地址值,其中包含一个!扩展命令I没有写入和一个Windbg脚本I没有写入...通过重新使用别名,我已经取得了一些进展,但我仍然在想,这里是否遗漏了Windbg语法的一些变幻莫测的东西。 例如,可以将地址作为参数传递给扩展,它可以很好地与!printcols 0x00000000017e1b68一起工作,但我也知道我可以用该地址值加载$t0,但我不能使用各种方法 ..
发布时间:2022-06-13 23:23:54 其他开发

使用Windbg调试.NET OutOfMemory异常

我需要帮助来调试.Net DLL中将RTF文本转换为原始文本或html格式的OutOfMemoyException。 这里是转换的代码,(http://matthewmanela.com/blog/converting-rtf-to-html/) public string ConvertRtfToHtml(string rtfText) { if (rtfText.Equal ..
发布时间:2022-06-13 23:15:10 C#/.NET

Windbg内存映射?

如何在Windbg中获得类似于Ollydbg的内存映射功能的内存映射?我希望看到一个地址空间列表,该列表按顺序显示加载到每个范围中的内容,最理想的情况是指定内存保护。以下是Ollydbg的内存映射的屏幕截图: 推荐答案 !address正好显示此信息。它既可以在用户模式下运行,也可以在内核模式下运行。用户模式进程示例: 0:000> !address Bas ..
发布时间:2022-06-13 23:06:28 其他开发

无法按SOS命令加载或按SOS CLR加载

我有一个.NET.86应用程序。我正在尝试从CDB运行dumpdomain,但不断收到错误。 关于这一点有很多问题,我尝试了几种变体: C:Usersd.banksDocuments>cdb DoNothingx86.exe Microsoft (R) Windows Debugger Version 10.0.17134.12 AMD64 Copyright (c) Microso ..
发布时间:2022-06-13 23:02:15 C#/.NET

VB6 调试 - 编译

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

已安装 VS 2015 时如何安装 WinDbg?

我正在尝试从 此页面安装 WinDbg,只需在 Windows 10 (WinDbg) 调试工具 部分下.但是,当我下载可执行文件并运行它时,它告诉我 您必须先卸载 Windows 软件开发工具包 - Windows 10.0.10586.15,然后才能安装该工具包的最新版本. 我猜这可能与我已经安装了 VS 2015(和 Windows 10 SDK)有关.但是,当我转到开发人员命令 ..

为什么在未取消订阅事件时这不会导致内存泄漏

我试图了解事件如何导致内存泄漏.我在 this stackoverflow 问题但是在 Windg 中查看对象时,我对结果感到困惑.首先,我有一个简单的类,如下所示. class Person{公共字符串姓氏 { 获取;放;}公共字符串名字{获取;放;}公共事件 EventHandler OnWakingUp;公共人(){}公共无效唤醒(){Console.WriteLine("醒来");if ..
发布时间:2021-12-31 08:20:59 C#/.NET

“内部"是什么意思?在“!heap -h"中在windbg中输出?

我正在关注这个stackoverflow帖子有什么不同“!heap -flt -s xxxx"中的列windbg 命令代表 我正在尝试了解为占用大量内存的堆之一打印的信息. 我可以理解大部分列,但在我的 Windbg 上,我看到了一个额外的列.我的大部分条目都标记为内部.我想知道那是什么意思.我已经完成了 !gflags +ust.所以,我可以看到进行内存分配的调用堆栈.除了标记为内部 ..
发布时间:2021-12-31 08:14:12 C/C++开发

已安装 VS 2015 后如何安装 WinDbg?

我正在尝试从 此页面安装 WinDbg,只是在 Windows 10 调试工具 (WinDbg) 部分下.但是,当我下载可执行文件并运行它时,它告诉我 您必须先卸载 Windows 软件开发工具包 - Windows 10.0.10586.15,然后才能安装最新版本的工具包. 我猜这可能与我已经安装了 VS 2015(和 Windows 10 SDK)有关.但是,当我转到开发人员命令提 ..

大对象堆分片

我正在处理的 C#/.NET 应用程序正在遭受缓慢的内存泄漏.我已经将 CDB 与 SOS 一起使用来尝试确定发生了什么,但数据似乎没有任何意义,所以我希望你们中的一个人以前可能经历过这种情况. 应用程序在 64 位框架上运行.它不断地计算数据并将其序列化到远程主机,并且对大对象堆 (LOH) 产生了相当大的影响.但是,我希望大多数 LOH 对象都是暂时的:一旦计算完成并已发送到远程主机,就 ..
发布时间:2021-12-24 16:40:25 C#/.NET

如何编写会崩溃并生成转储文件的示例代码?

我开始学习windbg,发现这篇好文章如何使用WinDbg分析崩溃转储 VC++ 应用程序? 现在我要按照说明一步一步来.问题来了:我需要编写一些可以立即崩溃的示例代码,并创建一些可以被windbg使用的转储文件. 这样的代码怎么写? void Example4(){int* i = NULL;*我= 80;} 上面的代码会立即崩溃;但是,我不知道在哪里可以找到转储文件? 谢 ..
发布时间:2021-12-22 18:57:39 C/C++开发

如何使用 WinDbg 分析 VC++ 应用程序的故障转储?

我如何使用 WinDbg 来分析转储文件? 解决方案 以下是一些可助您顺利进行的一般步骤: 首先,您必须更改编译器的设置,以便它创建 PDB 文件,即使是发布版本也是如此.Visual C++ 编译器的更高版本默认执行此操作,但在许多版本的 Visual C++ 中,您必须自己做.创建程序数据库文件,然后在每次构建应用程序时保存这些文件的存档.应用程序的每个构建都有自己的一组 PDB ..
发布时间:2021-12-22 18:22:09 C/C++开发