windbg相关内容
我正在查看一个小型转储文件,其中主线程(c++)利用CLR启动托管(C#.NET)窗口,托管部分抛出异常,并使应用程序崩溃。我一直在四处寻找检查异常详细信息以寻找线索的技术,但它们主要针对其中之一(完全非托管堆栈&;线程或完全托管堆栈&;线程)。 下面是托管调用堆栈的一部分,我可以看到.NET部分内部引发了异常,但我真的不确定有什么方法可以深入查看引发的细节。我在挖掘.dmp文件方面
..
由于某种原因,我已开始从生产中接收需要先运行.imgscan /l的转储。 现在,我倾向于使用从PowerShell脚本调用的CDB对转储运行小型查询。但是,每次运行.imgscan /l都需要相当长的时间。 是否可以通过使.imgscan /l变得不必要的方式修复转储? 附注 我认为需要运行.imgscan /l还有另一个问题-DebugDiag似乎不理解此类转储。 推
..
我正在尝试使用convertstore.exe工具ASdescribed by Microsoft将2层符号存储转换为3层符号存储。 但是,我收到的错误消息并不能告诉我太多。根据我要转换的商店,我会收到以下错误: Failed initial checks. Failed to lock Symbol Store. Error 0x00000003. ERROR: Couldn't c
..
我想弄清楚为什么添加到路径AddDllDirectory()而不是退出进程路径不会让我加载VBA函数中使用的DLL。所以我想知道LoadLibraryExW()的第三个参数是什么。 第一个问题是我正确加载了符号。我的符号服务器缓存中全是PDB文件。但是,找不到kernelbase.dll的符号。 进程监视器显示堆栈跟踪,但不显示符号。 我在WinDbgPview中为kernelb
..
我试图了解!地址摘要报告是如何管理分配的。我有以下代码来尝试测试它。我基本上更改了数组的大小,然后附加了winbg来检查结果!地址摘要 static void Main(string[] args) { int size = 2000; var something = new byte[size]; for (int i = 0
..
昨天我问了一个关于winbg别名(Strange behavior of windbg alias in loops)行为的问题,得到了一些有帮助的答案。 现在我有一个简化的示例,它显示了我看到的行为,没有任何循环。看起来别名替换简直是坏了,关于.Block{}的文档基本上是错的。 在foo.winbg脚本中,我有以下内容: ;aS ${/v:foo} 1 al .block
..
我在使用WinDbg时遇到可读性问题,它一次又一次地输出相同的行两次或更多次,给控制台带来垃圾邮件。 以下是WinDbg输出的示例快照: Built by: 17134.1.amd64fre.rs4_release.180410-1804 Built by: 17134.1.amd64fre.rs4_release.180410-1804 Machine Name:Machine Na
..
我正在尝试掌握Windbg别名(例如as命令),但遇到了我无法理解的行为。这是一个令人讨厌的问题(至少对我来说),我很想理解它,所以任何帮助都是真的很感激。 总的来说,我认为我了解别名计算过程(例如,需要使用新的语句块来强制执行新的计算)。 我把这个问题归结为以下几点。首先是这个: ad *; .foreach /s (var "aaa bbb ccc") { ;aS ${/v:
..
我一直在尝试传递一个加载到$t0中的地址值,其中包含一个!扩展命令I没有写入和一个Windbg脚本I没有写入...通过重新使用别名,我已经取得了一些进展,但我仍然在想,这里是否遗漏了Windbg语法的一些变幻莫测的东西。 例如,可以将地址作为参数传递给扩展,它可以很好地与!printcols 0x00000000017e1b68一起工作,但我也知道我可以用该地址值加载$t0,但我不能使用各种方法
..
我需要帮助来调试.Net DLL中将RTF文本转换为原始文本或html格式的OutOfMemoyException。 这里是转换的代码,(http://matthewmanela.com/blog/converting-rtf-to-html/) public string ConvertRtfToHtml(string rtfText) { if (rtfText.Equal
..
如何在Windbg中获得类似于Ollydbg的内存映射功能的内存映射?我希望看到一个地址空间列表,该列表按顺序显示加载到每个范围中的内容,最理想的情况是指定内存保护。以下是Ollydbg的内存映射的屏幕截图: 推荐答案 !address正好显示此信息。它既可以在用户模式下运行,也可以在内核模式下运行。用户模式进程示例: 0:000> !address Bas
..
我有一个.NET.86应用程序。我正在尝试从CDB运行dumpdomain,但不断收到错误。 关于这一点有很多问题,我尝试了几种变体: C:Usersd.banksDocuments>cdb DoNothingx86.exe Microsoft (R) Windows Debugger Version 10.0.17134.12 AMD64 Copyright (c) Microso
..
我的情况是我在我工作的地方支持一个 VB6 应用程序,在过去的几周里,它开始崩溃的频率比以往任何时候都高.它使用本地 Access MDB 数据库和远程 SQL Server DB 来存储不同类型的存储.好消息是我们正在编写一个替代应用程序,我需要同时支持这个应用程序的乐队新闻,而供应商早已离开这个世界. 我可以尝试哪些方法来诊断导致崩溃的原因?例如,到目前为止,我已经在客户端 PC 上尝试
..
我正在尝试从 此页面安装 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
..
我正在关注这个stackoverflow帖子有什么不同“!heap -flt -s xxxx"中的列windbg 命令代表 我正在尝试了解为占用大量内存的堆之一打印的信息. 我可以理解大部分列,但在我的 Windbg 上,我看到了一个额外的列.我的大部分条目都标记为内部.我想知道那是什么意思.我已经完成了 !gflags +ust.所以,我可以看到进行内存分配的调用堆栈.除了标记为内部
..
我正在尝试从 此页面安装 WinDbg,只是在 Windows 10 调试工具 (WinDbg) 部分下.但是,当我下载可执行文件并运行它时,它告诉我 您必须先卸载 Windows 软件开发工具包 - Windows 10.0.10586.15,然后才能安装最新版本的工具包. 我猜这可能与我已经安装了 VS 2015(和 Windows 10 SDK)有关.但是,当我转到开发人员命令提
..
我正在处理的 C#/.NET 应用程序正在遭受缓慢的内存泄漏.我已经将 CDB 与 SOS 一起使用来尝试确定发生了什么,但数据似乎没有任何意义,所以我希望你们中的一个人以前可能经历过这种情况. 应用程序在 64 位框架上运行.它不断地计算数据并将其序列化到远程主机,并且对大对象堆 (LOH) 产生了相当大的影响.但是,我希望大多数 LOH 对象都是暂时的:一旦计算完成并已发送到远程主机,就
..
我开始学习windbg,发现这篇好文章如何使用WinDbg分析崩溃转储 VC++ 应用程序? 现在我要按照说明一步一步来.问题来了:我需要编写一些可以立即崩溃的示例代码,并创建一些可以被windbg使用的转储文件. 这样的代码怎么写? void Example4(){int* i = NULL;*我= 80;} 上面的代码会立即崩溃;但是,我不知道在哪里可以找到转储文件? 谢
..
我如何使用 WinDbg 来分析转储文件? 解决方案 以下是一些可助您顺利进行的一般步骤: 首先,您必须更改编译器的设置,以便它创建 PDB 文件,即使是发布版本也是如此.Visual C++ 编译器的更高版本默认执行此操作,但在许多版本的 Visual C++ 中,您必须自己做.创建程序数据库文件,然后在每次构建应用程序时保存这些文件的存档.应用程序的每个构建都有自己的一组 PDB
..