问题标签 [sos]
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.
debugging - 什么是 mdToken,它与 MethodTable 有何不同?
如标题所示,它是什么以及它与 MethodTable 有何不同?
.net - 使用 SOS.dll 进行事后 .NET 调试
我正在开发一个混合模式应用程序(C++/CLI、C++、一些 C#),当它在现场崩溃时,会创建一个内存转储。我通常从客户那里得到这些转储,并试图找出问题所在。
问题是 - 如何处理托管代码的事后调试?我通常将 WinDbg 与 SOS.dll 一起使用,但 SOS 似乎不向后兼容!我最近运行了 Windows 更新,现在我无法从客户端站点加载任何小型转储。它抱怨错误的 SOS 版本。
如何获取和加载以前的版本?我做错了什么?
windbg - 如何处理可能导致我的应用程序进入挂起状态的事件
我正在为应用程序挂起问题进行转储文件分析。这是堆栈跟踪中的一个有趣的行。
查看MSDN 中的WaitForMultipleObjectEx描述,第二个参数是 const HANDLE *lpHandles。这让我觉得我应该能够做一个 !handle 7ffdf000 来弄清楚它在等待哪个事件,但是当我这样做时,我得到了关注
类型错误检索类型
有什么想法我可能在这里做错了,或者有什么提示可以获取有关挂起原因的更多详细信息?
asp.net - windbg 无法加载 sos clr
我不确定 windbg 是正确的工具,但这就是我现在正在尝试的
我的 asp.net 应用程序似乎有内存泄漏,几乎每次页面加载时它都会增长约 3 MB(然后它又会下降......)
我想读取整个进程内存并准确查看存储的内容是不必要的。
于是我运行windbg,附加到webserver40.exe进程
然后我尝试
我得到
调用 LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) 失败,Win32 错误 0n193“%1 不是有效的 Win32 应用程序。”
请检查您的调试器配置和/或网络访问。
看来我在 Framework AND Framework64 中有这个 sos.dll
我尝试使用
但没有加载
我不明白它为什么要寻找有效的 32 位应用程序。我在带有 64 位 Windows 的 64 位电脑上。
我怎样才能加载这个 sos 东西?
另外,当我开始时,我会收到此警告
WARNING: Process 7240 is not attach as a debuggee 可以检查进程但不会收到调试事件
我也试过loadby sos mscorwks
它没有用,但我知道它已经停产了。我在asp.net 4
我还在某处读到,代码应该在加载 sos 之前在调试中停止,这只会挂起 VS 2010。
非常感谢。
同样,如果有其他工具可以更好地帮助我,我会全力以赴 :-)
.net - 如何判断它是托管内存泄漏还是本机内存泄漏?
我与本机 dll 互操作的 .NET 进程正在引发 OutOfMemory 异常。以下是 !address -summary 和 --eeheap-gc 组合命令。这是否意味着它是托管泄漏还是本机泄漏?
.net - WinDbg中出现“SOS的版本与你正在调试的CLR版本不匹配”怎么办?
我的一些应用程序有问题。它是在 Windows 2003 Server (x86) 的 IIS6 下运行的基于 wcf 的应用程序:
在事件日志中,我从“W3SVC-WP”源 (EventID=2262) 收到这样的错误:
我试图弄清楚发生了什么。我已经为孤儿工作进程设置了创建转储,如本KB中所述。当发生死锁时,会创建一个小型转储。
然后我用这个小型转储来尝试了解发生了什么。这是我卡住了。
我运行 WinDbg x86,打开我的转储,然后:
如何处理这个错误- “SOS 的版本与您正在调试的 CLR 的版本不匹配”?
我在 VS2010 中打开 minidump 时遇到了同样的错误(“SOS 的版本与您正在调试的 CLR 的版本不匹配”)。
我读过这篇文章 - http://tech-thinker.com/Forums/tabid/62/forumid/12/postid/471/scope/posts/Default.aspx,并尝试安装KB2518870。它没有帮助。
windbg - Windbg - 转储 System.Guid
当我在 windbg 中为 System.Guid 对象使用 !do 时,我得到了该 GUID 对象的字段列表。如何查看此 GUID(字符串表示)的值是什么?
debugging - windbg.exe:加载数据访问DLL失败,0x80004005
我正在尝试从在 x64 机器上运行的进程调试 32 位进程转储。我在 x64 笔记本电脑上运行 x86 版本的 windbg。我已经遵循了这里的建议,但我仍然得到这个:
据我所知,mscordacwks_x86_x86_4.0.30319.237.dll
已成功加载,但我仍然收到错误消息。我错过了什么?
.net-4.0 - !address -summary 最新 Windbg/SOS 的命令输出
我下载并安装了 Windows 调试工具的最新版本(6.12.2.633)。使用 .NET 4.0 运行它。当我运行!address -summary
命令时,它的输出似乎与我在以前版本的 Windbg/SOS for .NET 3.5 中看到的不同。任何人都知道我在哪里可以找到最新!address -summary
命令的文档。SOS 内置帮助不是很有帮助
.net - 从进程转储中获取 .NET 框架版本
可能重复:
我如何知道故障转储的 CLR 版本?
如果我在 WinDbg 中打开(托管进程的)转储文件,是否可以找到该进程正在使用的 .NET 框架版本?