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 的相关文章

  • Windows 上的 npm run start 出现“DEBUG=*”问题

    name apokidsi version 0 717 contributors dependencies angular 1 5 8 angular cookies 1 5 8 angular messages 1 5 8 angular
  • 如何给objc_exception_throw添加断点?

    这是布拉德 拉森对此的回答SO https stackoverflow com questions 1093999 stack trace or more info on unhandled exception in xcode iphon
  • PyCurl 请求在执行时无限挂起

    我编写了一个脚本来从 Qualys 获取扫描结果 每周运行一次以收集指标 该脚本的第一部分涉及获取过去一周运行的每个扫描的引用列表以进行进一步处理 问题是 虽然有时这会完美地工作 但有时脚本会挂在c perform 线 手动运行脚本时这是可
  • 如何设置 Eclipse 以停止发生异常的线路?

    如何设置 Eclipse 在发生异常时停止 我有一个 Eclipse 断点设置来在异常时中断 在下面的代码示例中 我遇到的问题是 Eclipse 尝试打开 Integer 源代码 有没有办法让调试器在我的代码示例中显示的位置中断 如果我向下
  • 在 Visual Studio 中调试时向后拖动指令指针

    如需演示 请查看 基本上 我知道这在 Visual Studio Community Edition 2015 中是可能的 我想知道 a 这与 Intellitrace 和 历史调试 有关吗 b 这样做会有副作用吗 或者这只是将指令向后移动
  • 如何在浏览模式下禁用 RStudio 中的查看模式

    Is there a way to disable the View mode in RStudio when debugging functions 代码示例 myfun lt function browser myfun 我知道它不开放
  • 如何调试(最好在 IDE 中)MSBuild 脚本?

    我们非常广泛地使用 MSBuild 作为我们持续集成过程的一部分 虽然它非常强大 我们几乎可以在其中完成所有构建 测试和部署 利用一些自定义任务 我们发现使用标签对其进行调试是一种痛苦 并且不能总是为我们提供足够的信息 我发现 http w
  • 观察点固定地址

    对于我当前的嵌入式应用程序 我尝试将 GDB 观察点放在固定的内存地址处 例如 我的应用程序更新以下地址 0x10793ad0 为了确定代码的哪一部分破坏了值 我尝试了 watch 0x10793ad0 即使 GDB 在此之后不会打印任何错
  • C# 编译器如何删除发布版本中的 Debug.Assert?

    我最近正在浏览一些代码 并考虑是否需要小心放置在其中的表达式Debug Assert语句 例如昂贵的操作或具有副作用的操作 然而 编译器似乎非常聪明地完全删除了Assert陈述和内在表达 例如 以下内容只会在调试版本上打印 static v
  • 如何远程调试长时间运行的 python 脚本或服务?

    正如标题所说 我希望能够连接到在 Paster 或 uwsgi 下运行的 python 进程并利用 pdb 功能 Using winpdb http winpdb org 您可以像这样附加到正在运行的进程 插入 import rpdb2 r
  • 获取我的 VC++ 代码使用的符号列表

    我正在构建一个处理 VC 源代码的工具 为此 我需要获取符号列表 包括我的代码使用的局部变量名称及其类型 我知道Visual C 2010已经提供了一个 bsc文件 允许对象浏览器快速定位符号 但这是一个交互式工具 我需要获取文件中的符号列
  • ipdb 和 pdb++ 之间的区别?

    Python 有一个名为 pdb 的默认调试器 但社区创建了一些替代品 其中两个是ipdb https github com gotcha ipdb and pdb https github com pdbpp pdbpp 它们似乎迎合了相
  • 防止GDB中的PLT(过程链接表)断点

    在最新版本的 GDB 中 在库函数调用上设置断点会导致多个实际断点 调用过程链接表 PLT 实际的函数调用 这意味着当调用库函数时 我们每次都会经历两次中断 在以前的 GDB 版本中 只会创建 2 因此您只能得到一次中断 那么问题来了 是否
  • 批评我的非侵入式堆调试器

    这是后续批评我的堆调试器 https stackoverflow com questions 2830272 critique my heap debugger从昨天 根据 bitc 的建议 我现在将有关已分配块的元数据保存在单独的手写哈希
  • 使用 IntelliJ / Android Studio 调试基于 gradle 的单元测试

    我正在使用robolectric gradle 插件 https github com robolectric robolectric gradle plugin为 Android 编写单元测试 到目前为止 除了能够使用 Android S
  • 可以禁用“应用程序错误”对话框吗?

    我使用 Hudson 作为持续集成服务器来测试 C C 代码 不幸的是 我在某个地方有一个错误导致内存损坏 因此在某些 Windows 计算机上我有时会收到一个 应用程序错误 对话框 解释一条指令引用了无法读取的内存 弹出此对话框并基本上挂
  • 调试 VS Code 主题时出现“您没有用于调试‘带有注释的 JSON’的扩展”警告

    我生成了在 VS Code 中创建颜色主题所需的文件 我这样做是用生成器代码 https www npmjs com package generator code节点包 我的文件结构如下 https i stack imgur com aH
  • 如何在托管应用程序的框架代码中调试 System.ExecutionEngineException

    我有一个作为服务运行的应用程序 该应用程序有时会崩溃 该应用程序是用 vb net 编写的 并在新线程 一次一个 上运行其任务 我已经收集了故障转储并开始分析 从应用程序创建的日志文件的分析 转储分析支持它 看来 当没有任务正在运行并且应用
  • Intellij IDEA 断点停止在 JAR 中,而不是我的项目的源代码中

    我在 java 文件中设置了一个断点 我通过 maven jetty 插件启动了 jetty 我设置断点的java文件也打包成JAR了 Intellij 在断点处停止 但它显示了打包到 JAR 中的文件而不是 java 文件 它的行为就像我
  • 如何调试 numpy 掩码

    这个问题与this one https stackoverflow com q 73672739 11004423 我有一个正在尝试矢量化的函数 这是原来的函数 def aspect good angle float planet1 goo

随机推荐

  • 使用 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