问题标签 [windb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - 找不到匹配的二进制文件错误
我正在尝试调试崩溃小型转储。具有与崩溃相同的发布调试符号和发布二进制文件。
在调试该崩溃并指向符号时,我仍然收到“未找到匹配的二进制文件”错误。
我正在使用正确的符号、二进制文件并指向正确的位置。
那么为什么会发生这种情况呢?我可以看到在 VS(上午 9:03)和发布二进制文件(上午 9:04)中加载的 dll 的时间戳略有不同
这可能是错误的原因吗?
对此的任何解决方案,我都需要修复崩溃,并且由于此崩溃发生在客户端计算机上,我无法重现它。
sos - 有关线程正在等待的对象的信息
如果我有以下堆栈跟踪,我看到一个线程正在等待某个锁。如何获取有关此线程正在等待的对象的信息?我在想我应该能够使用 SyncBlk 命令,但似乎它只能提供有关锁及其所有者线程的信息。
c# - 静态对象被固定,不能被 GC 重新分配?
我的类中有一个静态变量,当我通过 windbg/sos 查看这个对象时,它显示这个对象为 Pinned。我假设这意味着 GC 不能在其他任何地方分配这个对象。任何想法为什么静态变量被视为固定?
这是我的类中这个变量的声明
这是windbg的输出形式
请参阅 !gcroot 的输出,这显示为 HANDLE(PINNED)。我误读了这个输出吗?
asp.net - ASP.Net 状态服务内存不足,windbg 中找不到大会话
环境是windows2008 X64
当我使用asp.net状态服务保持会话时,我发现aspnet_state.exe的内存增长缓慢,并且从未下降。几天后,进程内存不足。
所以我使用windbg检查转储,并找到以下信息。
!dumpheap -stat
!dumpheap -mt 000007feea25b328 -stat
!dumpheap -mt 000007feea25b328 -max 2200 -stat
!dumpheap -mt 000007feea25b328
分贝 0000000090789db0 L?2072
所以,事实证明,我的大部分内存都被存储会话 http ok 和锁定响应使用(也得到一些字符串存储“423 锁定”),还有更多
!gcroot 0000000090789db0
我找不到对 Char 的任何引用。
我检查了!finalizequeue,只有几个对象可以完成..所以我很困惑..
谢谢。
debugging - WinDBG 无法读取使用 _NT_SYMBOL_PATH 环境变量设置的符号路径字符串
我已将环境变量 _NT_SYMBOL_PATH 设置为以下值 SRV*C:\My\Sym* http://msdl.microsoft.com/download/symbols
我还确保目录 C:\My\Sym 确实存在。但是,当我启动 WinDBG 时,它不会拾取我在 _NT_SYMBOL_PATH 环境变量中设置的符号路径字符串。WinDBG 中的符号路径为空。
当我从命令行检查环境变量时,我可以看到上面的环境变量设置正确。
我不明白我错过了什么。有人可以帮忙吗?我知道我可以直接在 WinDBG 中设置路径,但我有兴趣了解环境变量为什么不起作用。
.net-4.0 - sos 和 clr 版本不匹配 - 如何解决
在windbg中加载转储文件后,我运行了以下命令
.loadby sos clr
Bu 然后我在运行 ThreadPool 命令时收到以下消息
难道我做错了什么?我在进行分析的机器上安装了 .NET 4.5。如果我尝试在该机器上安装 .NET 4.0,它不会让我因为已经安装了更高版本。
.net - 如何从转储文件中确定 GC 工作站与服务器模式
从转储文件中,是否可以确定垃圾收集模式使用的是服务器还是工作站)?如果是这样,什么命令?
c# - C# Winforms:查找 System.AccessViolationException 原因的调试策略
在我的 winforms 应用程序中,我随机出现以下异常:
堆栈跟踪来自 Windows 事件查看器。(未处理的异常处理程序没有得到它。)
我在 SO 上阅读了很多关于此的文章:
- C# WinForms 异常:“System.AccessViolationException”类型的第一次机会异常
- 查找 System.AccessViolationException 的原因
- 来自 System.Windows.Forms 的 AccessViolationException,在 WPF 中使用 WinFormsHost
- 来自组合的 AccessViolationException:尝试读取或写入受保护的内存
事实证明,我的应用程序在某个地方通过本机方法访问已处理或损坏的内存。我现在的问题是如何使用我使用任务管理器制作的故障转储找到该位置。是否有其他策略可以找到原因?
c# - 如何解释 mwaits 输出
我正在尝试了解如何使用 mwaits 命令,例如锁类型、锁所有者等。我知道其中一些可以通过 sos 命令完成,但我如何使用通过 sosex mwaits 命令获得的信息。