WinDbg 应该慢得令人难以忍受吗?

2023-12-14

我正在尝试分析一些小型故障转储。我使用的是 Windows 10 Pro Build 1607 和 WinDbg 10.0.14321.1024。我将符号文件路径设置为

SRV*C:\SymCache*https://msdl.microsoft.com/download/symbols

基本上,每当我加载小型转储(所有小于 1 MB 的 .dmp 文件)时,WinDbg 都会花很长时间来实际分析它们。我知道第一次运行可能需要很长时间,但我花了将近 12 个小时才让我输入命令。我认为,由于符号已被缓存,因此重新打开相同的 .dmp 根本不需要很长时间。不是这种情况。它加载完毕,几乎立即进入“加载内核符号”,然后又花了 30 分钟才打印“BugCheck”行。又过了30分钟,我还是无法输入命令。

我的电脑配备 512 GB SSD、8 GB RAM 和 i5-4590。我认为不应该这么慢。

我究竟做错了什么?


最近这类投诉似乎更频繁地发生,我可以在我的电脑上重现它。这不是你的错,而是互联网或微软方面的符号服务器的一些问题。

使用 Wireshark 监控流量并查看磁盘以了解符号缓存的填充方式,我可以说:

  • 一次仅下载一个文件。
  • 较旧的 WinDbg 版本 (6.2.9200) 也会出现此问题
  • HTTP 和 HTTPS 都会出现问题
  • 当找到符号时,传输速度非常慢,然后增加。有效传输速率从 11 kb/s 降至 20 kb/s(在可处理 6500 kb/s 的线路上)
  • 有相当多的数据包乱序、重复数据包等,特别是在尚未下载文件的“查找阶段”。这样的查找阶段很容易需要 8 分钟。
  • 即使文件已存在于磁盘上,也会执行“查找阶段”。
  • HTTP 往返时间(请求到响应)为 8 到 9 秒

WinDbg loading kernel symbols

Lookup phase

HTTP roundtrip times

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WinDbg 应该慢得令人难以忍受吗? 的相关文章

  • 使用 WinDbg 确定小型转储中 InnerException 的行号

    我正在尝试从转储中查找 NullReferenceException NullReferenceException 不是崩溃异常 而是崩溃异常是一个带有 InnerException 即 NullReferenceException 的 T
  • 错误:在 WinDbg 中找不到符号文件

    我正在使用 VmWare 对 Windows Vista 进行远程调试 但是我遇到了 ERROR Symbol file could not be found Defaulted to export symbols for ntkrpamp
  • 诊断无法停止的应用程序

    我们的Windows应用程序经常挂在内存中 我正在尝试使用windbg来跟踪 下问题 我对 Windbg 很陌生 需要一些建议 我 已经开始阅读高级 Windows 调试 该应用程序是用 VB 编写的 C 和 COM 对象的混合体 偶尔当
  • .Net 内存转储中存在大量死线程

    在分析 Net4 5 WCF w3wp 进程的内存转储期间 我遇到了许多被标识为死亡的线程 threads 显示 107 个线程中有 68 个已死亡 这似乎相当高 我想知道这些线程是否可以容纳大量内存 因为进程最终会高达 20GB 并且似乎
  • Windbg内存映射?

    如何在 Windbg 中获得类似于 Ollydbg 内存映射功能的内存映射 我想查看按顺序显示加载到每个范围的内容的地址空间列表 最好带有指示的内存保护 这是 Ollydbg 内存映射的屏幕截图 address准确显示此信息 它可以在用户模
  • 如何更改小型转储中模块的校验和?

    我编写 和销售 的软件在分发之前经过压缩和加密 每次发布新版本时 我都会在压缩和加密之前保留所有 map 文件和生成的二进制文件 包括 exe 当它在客户端计算机上崩溃时 我会得到一个小型转储 我在 Visual Studio 中打开这些小
  • DebugDiag:如何手动注入 LeakTrack.dll

    我有一个来自生产的故障转储来识别内存泄漏 当我使用 DebugDiag v2 update 2 时 我收到一份报告 DebugDiag 没有检测到 w3wp DMP 中加载的 LeakTrack dll 因此没有泄漏 对此文件进行了分析 如
  • 诊断 .NET 应用程序中的“找不到文件”错误

    我正在使用 NET 4 0 应用程序 该应用程序失败并显示以下错误 System ComponentModel Win32Exception例外 我已将其附加到 WinDBG 以尝试了解更多信息 0 000 gt sxe clr 0 000
  • ASP.NET 内存泄漏 - OracleCommand 对象

    我有内存泄漏 我很难找出问题出在哪里 ASP NET 进程时常会增加到 1GB 我已按照本页 http humblecoder co uk tag windbg 上的说明进行操作 并且 gcroot 命令返回以下内容 最后 x 行 我查看了
  • 使用 Windbg 调试 .NET OutOfMemoryException

    我需要帮助调试 net dll 中的 OutOfMemoryException 该 dll 将 rtf 文本转换为原始文本或 html 这是转换代码 http matthewmanela com blog converting rtf to
  • 如何阻止 Windbg 成为交互式调试器?

    正确的撤消方法是什么Windbg I在 Vista Win7 上 难道只是删除 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows NT CurrentVersion AeDebug 中的注册表项那么
  • 如何将windbg命令重定向到文件而不在windbg控制台上回显输出?

    logopen不是答案 因为它让命令输出到windbg控制台 例如 sosex dumpgen 2产生大量输出 我不想在调试器控制台中看到这些输出 现在我正在使用以下内容 shell i ci dumpgen 2 cmd c more gt
  • 如何在 WinDbg 的启动命令行中打开转储时转义引号

    下列的这个答案 https stackoverflow com questions 2655168 how do i make a cmdtree window dock at startup in windbg 我正在尝试建立一个 dmp
  • 如何从 Visual Studio 调试器和立即窗口中运行 Windbg/dbeng.dll 命令?

    我在 Bart de Smet 的视频演讲中看到 他通过将 Windbg 命令输入到即时窗口在 Visual Studio 中 当在 Visual Studio 调试器内以调试模式运行项目时 所以 我想自己尝试一下 这就是我所做的 我去了项
  • WinDbg:APPLICATION_HANG_WRONG_SYMBOLS

    我对 WinDbg 还很陌生 我正在尝试找到一个导致我的应用程序无缘无故挂起的错误 我不确定我做的事情是否正确 但我知道我需要系统 dll 以及我正在调试的 exe 的符号 因此 我这样设置符号路径 srv c websymbols htt
  • 为 Windbg 获取正确的 .net 本机符号

    我正在做一些故障转储调试 我正在查找从生产服务器获取的转储 我运行 WinDbg 的机器必须安装有稍微不同版本的 NET 运行时 我在加载 NET 系统程序集的本机映像时遇到错误 因此无法加载 System Data Linq 确保我的调试
  • 分析 Windbg 中 !threadpool 和 !threads 的输出

    我已经在四台服务器上生成了转储 并正在分析 threadpool 和 threads 的输出 我注意到以下输出大致一致 0 024 gt threadpool CPU utilization 0 Worker Thread Total 2
  • 故障转储分析:CxxUnhandledExceptionFilter

    我有一个崩溃小型转储需要分析 我的程序是多线程Qt5应用程序 我不是调试专家 但通常我可以轻松找到程序失败的地方 但这次我不能 我在 Visual Studio 2010 中打开转储文件 单击 仅使用本机调试 它向我显示问题所在 它是位置为
  • 尝试读取转储时“无法加载符号”

    我的一个应用程序有时会在 Win XP 计算机上导致 BSOD 为了了解更多信息 我加载了生成的 dmp 文件 来自 C Windows Minidump 但在执行此操作时在大部分读数中收到此消息 Symbols can not be lo
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste

随机推荐

  • D3js:自动放置标签以避免重叠? (斥力)

    如何在地图标签上应用力排斥力 以便它们自动找到正确的位置 博斯托克的 让我们制作一张地图 迈克 博斯托克的让我们制作一张地图 下面的屏幕截图 默认情况下 标签放置在点的坐标和多边形 多边形的坐标处path centroid d 简单的左对齐
  • 使用 Python 写入 CSV 会添加空行 [重复]

    这个问题在这里已经有答案了 我正在尝试写入 CSV 文件 但中间有空白行 如何删除空白行 import csv b open test csv w a csv writer b data Me You 293 219 54 13 a wri
  • 如何在python中不断更新固定长度的列表?

    抱歉这个菜鸟问题 我刚刚开始编码 我需要跟踪 1 小时的价格历史记录 我希望每秒将值拉入大小为 3600 的列表中 直到列表被填满 然后从那时起每秒将列表向左移动 以便价格保持不变 while True polo exchange retu
  • 如何将自定义事件发送到 PyQt 中的事件循环

    我正在尝试在 PyQt 中发出自定义事件 一个小部件将发出 另一个小部件将侦听事件 但这两个小部件不需要相关 在 JavaScript 中 我会通过这样做来实现这一点 Component 1 document addEventListene
  • 在javascript中计算元音

    我使用此代码来搜索和计算字符串中的元音 a run forest run a a split var syl 0 for var i 0 i lt a length 1 i for var i2 0 i2 lt a i length 1 i
  • systemd 服务未执行通知发送

    我想在 python 脚本中为某些事件生成弹出窗口 我为此目的使用 通知发送 subprocess Popen notify send Authentication True False 上面的命令在终端上执行得很好 但是当我从 syste
  • 如何修复 Cocoapods 中名称冲突的框架?

    我创建了两个私有 Pod 它们都依赖于相同的供应商框架 当我将 pod 添加到我的主项目中时 出现以下错误 target has frameworks with conflicting names FirebaseAnalytics Fir
  • Kotlin karate-junit-5 未找到任何功能或场景[重复]

    这个问题在这里已经有答案了 我正在使用 karate 与 junit 5 runner 和 kotlin 并且 karate 似乎找不到我的功能文件 我得到以下内容 未找到功能或场景 classpath sncf karate org op
  • 如何在查询字符串中传递 HTML 代码

    我需要使用 QueryString 传递 html 代码 因为我使用 ajax 方法在我的网站上发送帖子 我的意思是评论而不是方法的类型 当我写这样的帖子时 Hi everybody br Whats up 它只是将 大家好 删除了其余内容
  • 如何在构建时将其他文件包含到 C# 的输出目录中?

    我的应用程序需要一些库文件才能工作 我的应用程序包含设置和部署 我已经知道 为了在安装时将库文件添加到应用程序的输出目录中 我只需在构建之前在 NET IDE 中引用这些库 唯一的问题是这些库不能被引用 所以我需要能够将这些库复制到我的应用
  • 用户名是通过 WooCommerce 注册中的账单全名自动生成的

    因此 我在 WooCommerce 网上商店的注册页面中添加了各种自定义字段 如下所示 Registration page Add extra fields in registration form add action woocommer
  • Grails:域类映射(hibernate用户类型的集合)

    我想知道是否可以实现以下域模型 让我们有一个包含一组间隔 joda 时间 的域类 我可以使用 org joda time contrib hibernate PersistentInterval hibernate 用户类型将间隔映射到数据
  • Codeigniter中上传文件问题

    这是我在 codeigniter 应用程序中的 uploadinfg 文件代码 function upload logo ex FILES uploadfile name epld explode ex filename date mdyH
  • 如何在代码中分析 JVM 内存?

    我正在编写一个无法在 Eclipse 中测试的 servlet 我需要在服务器上运行 我想做内存分析并查明任何泄漏 所以 我想我需要编写可以告诉我当前内存使用情况的调试语句 有人可以向我指出关于如何执行此操作和 或 JDK 中的哪些类执行此
  • 使用 FieldInfo.SetValue 与 LINQ 表达式在结构中设置字段

    我想使用 LINQ 表达式设置私有字段 我有这个代码 parameter target the object on which to set the field field ParameterExpression targetExp Exp
  • 在 C++ 中,一个类是否可以拥有一个多维数组成员,其维度和范围直到运行时才知道?

    我最初问的是使用嵌套的 std array 创建多维数组 直到运行时才知道维度或范围但这有XY 问题尝试使用 std array 来完成它 问题Boost MultiArray 的一行初始化程序 and 如何使未确定大小的多维数组成为 C
  • Angular 6 如何从多个复选框获取值并发送自

    我正在尝试使用 mat checkboxes 作为表单中的输入 但在文档中找不到任何有关它的内容 Html section class checkbox section section
  • 浏览器 Cookie 永不过期

    我第一次实施使用 HTTPOnly Cookie 登录身份验证 就我而言 当用户调用登录方法时创建的 cookiePython服务与 fastapi 和 uvicorn 我读过MDN文档来实现expires属性 因此 浏览器会在时间到期时删
  • Primefaces 和 jqplot - 在轴上显示日期

    我正在尝试在 PrimeFaces 3 4 中的折线图上使用扩展器属性 我需要使用扩展程序来使用日期 时间值格式化 x 轴 在没有扩展器的情况下执行此操作不是一个选项 因为数据点太多 并且如果我使用默认的 PF lineChart 属性 标
  • WinDbg 应该慢得令人难以忍受吗?

    我正在尝试分析一些小型故障转储 我使用的是 Windows 10 Pro Build 1607 和 WinDbg 10 0 14321 1024 我将符号文件路径设置为 SRV C SymCache https msdl microsoft