WinDbg:APPLICATION_HANG_WRONG_SYMBOLS

2024-04-15

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

srv*c:\websymbols*http://msdl.microsoft.com/download/symbols;S:\MY\PATH

第二个路径指向我放置 VS 生成的 .pdb 的文件夹。我确信这是正确的 .pdb 文件,但它是基于不同的体系结构构建的(不确定这是否是一个问题)。我想首先看到完整的堆栈跟踪,所以我运行了 !analyze-v。输出看起来像this http://pastebin.com/00uGSF1k。正如您所看到的,它将 APPLICATION_HANG_WRONG_SYMBOLS 列为主要问题。所以我跑了 .reload /f ,给了我这个输出 http://pastebin.com/Bk2ZnYbG。我没有 dnAnalytics 或 Vertec.Interop 的符号,因此这些错误是有道理的,但缺少一些校验和并且未找到 iphlpapi.pdb。

所以我的问题是:为什么 WinDBG 将错误的符号列为主要问题,即使我确信我确实有正确的 .pdb 文件可用? (我在生成转储的同一台计算机上运行 WinDBG)。即使我的符号看起来是错误的,我在多大程度上可以信任堆栈跟踪?有没有人从堆栈跟踪中看到可能导致我的应用程序挂起的明显问题?任何指示表示赞赏!


这里的“错误符号”可能是因为您使用版本低于 4.0 的 64 位 CLR,并且 !analyze 扩展在解码混合本机/托管堆栈时遇到一些问题。

为什么 WinDBG 寻找 BJM.exe 微软服务器上的符号 这个案例?

这是因为您将符号服务器放在符号路径中的本地路径之前。 Windbg 不知道哪个模块是你的,哪个是微软的。它只是按照符号路径指定的顺序查找模块的 PDB 文件。

即使我的符号看起来是错误的,我在多大程度上可以信任堆栈跟踪?

x64 上的堆栈非常可靠,因为堆栈遍历不需要符号。符号是可靠的(也就是说,你没有错误的符号),除非你强迫 Windbg 忽略错误的时间戳/校验和.reload /f /i

在某些情况下,地址 -> 符号可能看起来是错误的。这通常是由于具有相同代码的小函数(如果函数是虚函数或代码未优化,则在 C++ 代码中很常见)

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

WinDbg:APPLICATION_HANG_WRONG_SYMBOLS 的相关文章

  • Nodejs 进程挂起,我该如何调试它或收集转储?

    我的nodejs进程在Linux上运行 现在挂起并且CPU为100 无论如何我可以调试它并找到原因吗 我需要收集转储吗 如何收集 谢谢 有一个 npm 模块叫做节点为何运行 https www npmjs com package why i
  • Eclipse 和 Zend 调试器总是在第一行中断,尽管未选中该选项

    我取消选中了在第一行中断PHP 调试配置中的选项 但无论如何它仍然在第一行中断 我怎样才能防止这种情况发生 我正在使用 MacOSX Eclipse PDT 3 0 2 和 Zend 调试器 经过大量谷歌搜索后 我找到了如何解决这个问题 可
  • Qt 5.15 mingw 文件夹 bin 中缺少调试 dll *d.dll

    我通过 Qt 维护工具安装了 Qt Creator 和 Qt5 15 但我在 mingw 的 bin 文件夹中缺少像 QtCored dll 这样的调试 dll 我该怎么办 None
  • 调试器忽略动态加载的 DLL 中的错误

    我有一个与自编码 DLL 的调试相关的非常奇怪的问题 我有一个 MFC 驱动的基于对话框的应用程序 几个静态链接的项目和几个在运行时加载的 DLL 项目 我在调试中构建解决方案 运行应用程序 然后我可以轻松调试这些 DLL 项目 现在问题来
  • 如何调试 EF5 在运行时生成的 SQL?

    所以我对 EntityFramework 还很陌生 实际上现在处于 POC 阶段 我试图回答的问题之一是如何通过调试器或其他进程可附加工具可视化 EF 生成的查询 我试图解决的情况是 在尝试调试 QA 或生产问题时 开发人员需要能够通过远程
  • 是否存在与 Windows 7 内核符号相关的已知问题?

    我有几台 Windows 7 机器 我无法读取它们的内存转储 我发现一些我怀疑可能相关的东西 但并不肯定 https twitter com aionescu status 634028737458114560 https twitter
  • 在调试模式下单步执行时跳过方法的属性

    是否有一个属性可以在方法上使用 以便在调试模式下单步执行某些代码时 调试器保持在方法的外部 DebuggerStepThrough docs https learn microsoft com en us dotnet api system
  • Intellij - 调试器断点不再工作

    我正在正常工作 调试Java Maven项目与IntelliJ 2018 2 1 然后我单击 Intellij 停止应用程序以对代码进行一些修改 当我在调试模式下再次启动应用程序时 它 调试器 只是停止工作 现在 应用程序需要大约 10 2
  • 如何记录 sqlalchemy 中返回的 SQL 语句和行以帮助调试?

    我该如何配置sqlalchemy记录它向数据库服务器发出的 SQL 语句 并记录从这些语句返回的行 这对于调试很有用 选项 1 设置sqlalchemy engine记录器日志级别为logging INFO or logging DEBUG
  • 调试:在 Android 1.0 中找不到文件

    今天我更新到 Android Studio v 1 0 在尝试编译任何项目时出现以下错误 app build intermediates classes debug 找不到文件 问题是在更新之前我没有任何问题 这是我实际尝试编译的代码 构建
  • 如何等待远程 .NET 调试器连接

    今天我遇到了一个问题 我需要远程调试程序 该程序是从另一个系统启动的 所以我真的没有机会在命令行上与它交互 不过我可以很容易地改变它的来源 我需要做的是让程序正常启动 然后等待我用调试器附加到它 我想不出一个让我快乐的方法 我确实发现了这个
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 使用 Makefile 项目在 Visual Studio 中自定义调试命令

    我在 Visual Studio 2010 中有一个由 Makefile 支持的项目 实际上使用 NAnt 但这不是重点 构建过程的输出是一个 elf 文件 我有一个单独的非 VStudio 调试器 可以在该 elf 文件上运行来调试它 构
  • 当遇到地址 (ba) 断点时检查 Windbg 中的数据

    我想创建一个断点 这样它将创建另一个一次性断点 当写入该内存时 该断点将 dd 某个内存地址 因此 当断点被击中时 我想运行如下命令 ba w4 ESP 4 1 dd memory address of this breakpoint 由于
  • 在 Intellij-Idea 调试器中转储一个巨大的数组

    Idea 有没有办法将一个非常大的整数数组的内容转储到剪贴板中 数组上的 复制值 不返回任何内容 要使用复制值获取剪贴板中的值 您需要定义一个 Java 数据类型渲染器 来解释数组的内容 右键单击您的数组变量 选择 查看为 gt 创建 在
  • 调试VBA、定位问题及排查方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有哪些方法调试VBA代码 具体来说 单步执行代码 断点和停止命令 TheDebug command 当地人和观察窗 调用栈 调试 VB
  • C 编程:seg 错误、printf 和相关的怪癖[重复]

    这个问题在这里已经有答案了 正如许多年轻的程序员所做的那样 我了解到在代码中的不同点插入大量 here1 here2 等打印到控制台语句的有用性 以找出我的程序何时出错 在我的计算机科学学习过程中 这种强力调试技术已经拯救了我很多很多次 然
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 我可以将 OpenCV 的发布配置与我的应用程序的调试配置一起使用吗?

    我正在编写一个通用 Windows 应用程序 它使用 OpenCV 进行相机校准和标签检测等 我希望能够在我自己的 DLL 处于调试模式时使用发布模式 完全优化的 OpenCV DLL 这可能吗 如果是这样 我如何配置 CMake 来实现它
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行

随机推荐

  • 使用 jQuery AJAX 发送多个数据参数

    我正在向 php 文件发送 ajax 请求 如下所示 function checkDB code userid ajax type POST url profile check code php data code code userid
  • iOS UITextField Swift 中的下划线样式

    我添加了这张用户界面登录图像 希望您能看到 请注意 除了底部的线条之外 文本字段是透明的 我需要输入什么代码才能产生这种效果 我可以将必要的信息放入 用户定义的运行时属性 中吗 创建一个子类UITextField如下所示 只需在故事板中将此
  • 克隆存储库后,Azure DevOps 强制 core.hooksPath

    我尝试实施客户端 git hooks到 azure devops git 存储库 我添加了一个 githooks目录到根目录并实施pre commit钩 我提交所有内容并将其推送到存储库 但当然 只有当我执行时 钩子才会激活 git con
  • 使用 Node.js 和 mongo 设置单例连接

    以前我使用 mongodb 和 php 来查询我使用单例的数据库 这样我只实例化连接一次 然后重复使用它 class MDB protected static instance public static function use if s
  • 如何在 Cucumber-JVM 中明确匹配这些步骤?

    有什么方法可以明确匹配以下步骤吗 And I should have 2 alerts And I should have 2 alerts with param 71 我将它们实现为 And I should have d alerts
  • 使用 file.show 在 R studio 中打开 PDF

    我正在制作一个在 Swirl 中在 R 中运行的 R 教程 我正在尝试在 R 中打开特定的 PDF 文件 我在用 file show paste getwd cv pdf sep title some title 但显示是这样的 它不显示
  • Growl 通知:如何从网站推送 Growl 通知?

    我想知道如何将桌面 Growl 通知从我的 Web 应用程序推送给我的 Web 应用程序的用户 如果可能的话 我想使用 javascript 否则像 Ruby 或 PHP 这样的语言将是我的第二选择 您以前实施过类似的事情吗 如何做呢 我弄
  • 从列表中删除 nan - Python

    我试图从列表中删除 nan 但它拒绝删除 我尝试过 np nan 和 nan 这是我的代码 ztt for i in z if i nan ztt append i ztt or ztt for i in z if i np nan ztt
  • Feedparser 到数据框不输出所有列

    我从 feedparser 解析 URL 并尝试获取所有列 但我没有将所有列作为输出 不确定问题出在哪里 如果执行下面的命令 我没有获得几列的数据 但数据确实存在 您可以在浏览器中查看 my code import feedparser i
  • 左连接查询的 LINQ Fluent API 版本

    我目前有一个运行良好的 LINQ 查询 但我想知道如何将其转换为 LINQ Fluent API 格式 我尝试在 Google 上搜索有关 Fluent API 的不错的教程 尝试自己学习 但似乎没有 这是我要转换的查询 from s in
  • Jersey 2 多部分表单数据注入源

    我有一个方法 POST Consumes multipart form data Produces text xml public Response processForm FormDataParam myparam InputStream
  • RabbitMQ 失败,错误:无法连接到节点rabbit@TPAJ05421843:nodedown

    在 Windows 7 Enterprise 计算机上 我全新安装了 Erlang 17 4 和 RabbitMQ 3 4 3 x64 安装成功且顺利 我还没有尝试创建我的第一个队列或交换器 但我已经看到了麻烦 这个问题类似于另一个SO帖子
  • 不将数据保存到文档方向

    我尝试将数据保存到文档目录中 我没有收到任何错误 但它从不保存数据 它总是说 文件不存在 创建它 let fileManager FileManager default if let documentsDirectory fileManag
  • Control.BeginInvoke 是否有一个变体可以在句柄被销毁之前/之后工作?

    我有一个显示底层异步对象状态的控件 该对象引发事件 这些事件到达表单 在那里它们基本上排队并最终使用 BeginInvoke 进行调用 当控件被废弃时就会出现问题 因为事情是异步发生的 这意味着事件回调在处理过程中总是可能排队 所以我有时会
  • 找不到导入的项目“C:\Microsoft.CSharp.targets”

    我今天尝试打开 Visual Studio 2008 时遇到此错误project在 Visual Studio 2005 中 找不到导入的项目 C Microsoft CSharp targets 在记事本 或记事本 中打开您的csproj
  • 整数转换(缩小、扩大)、未定义的行为

    对我来说 以我可以轻松理解的方式找到有关该主题的信息非常困难 因此我要求对我所找到的内容进行审查 这都是关于转换和转换的 在示例中我将提到 signed unsigned int bigger signed unsigned char sm
  • 如何在 Java 中检测苹果芯片 (M1) 与英特尔芯片?

    对于每个不理解这个问题的人 请注意 os arch属性只会给你JRE的架构 而不是底层操作系统的架构 这不能回答我的问题 如果在 64 位系统上安装 32 位 jre System getProperty os arch 将返回 x86 为
  • 如何“取消转换”来自 South (Django) 的应用程序?

    我的内心发生了很大的变化models py 包括删除很多字段 并重命名几个类 schemamigration auto工作正常 但尝试migrate抛出一堆错误 我的所有代码目前都在开发中 所以我不介意丢失太多数据 所以我希望 South
  • 请求失败,HTTP 状态为 401:未经授权。 SSRS

    我在 MVC Web 项目中有一个处理 SSRS 的类 当我在 IIS 计算机中运行该应用程序时 我可以正常访问报告 当从网络上的另一台计算机运行时 出现 请求失败 HTTP 状态 401 未经授权 报表服务器有自己独特的凭证 不接受网络上
  • WinDbg:APPLICATION_HANG_WRONG_SYMBOLS

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