问题标签 [sosex]

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.

0 投票
1 回答
951 浏览

windbg - Error with !runaway command

I am looking a dump file collected from production environment for high cpu usage. I ran !threadpool and !runaway command as follows

I want to know what threads are consuming most cpu time but I cannot run !runaway command. Are there any other commands in sos, sosex or any other extension that could be helpful in this case?

0 投票
1 回答
141 浏览

windbg - 是否有 API 可以检查 sosex.bhi 命令创建的堆索引文件?

最终,我想将堆数据转储到 SQL Server 数据库中,以便能够轻松分析它。

现在我的方法是sosex.dumpgen在重定向到文件的同时运行命令,然后使用小型 C# 程序转储到数据库中。但如果我想知道什么对象引用了什么,这对我没有帮助。所以,我有这个sosex.refs命令,但它不适合批量分析。

Steve Johnson 的博客 ( http://www.stevestechspot.com/default.aspx ) 似乎并未暗示存在这样的 API。

有任何想法吗?

0 投票
1 回答
461 浏览

debugging - !clrstack 从不报告任何内容

我知道我正在处理一个托管线程,但我从未设法开始!clrstack工作。我总是得到:

诚然,我可以使用!dumpstack,但我不知道如何让它显示论点。它只显示 ChildEBP、返回地址和函数名称。此外,它混合了托管和非托管调用,我只想关注托管部分。

更新

根据 Thomas 的要求,!clrstack -i返回:

它的进展:-)

0 投票
2 回答
1149 浏览

windbg - 搜索大小大于阈值的对象

通过以下 sos 命令发现,其中一个类在 .NET 堆中存在许多对象。

我需要找到那些ObjSize大于 5 MB 的对象的实例。我知道我可以使用以下列出所有 1700 个 MyClass 实例的objsize

使用上面的脚本,尽管有大于 5MB 的对象实例,但我没有得到任何结果。我认为问题可能是 objsize 的输出如下

它是一个字符串,使与任何阈值进行比较变得更加困难。我怎样才能让这个脚本只列出 objsize 大于 5MB 的对象?

0 投票
0 回答
60 浏览

.net - 使用 windbg 识别 System.Action 将执行的代码

我的 WPF 应用程序出现了严重错误,我的调度程序似乎有 2400 万个操作等待运行。

带 sosex 的 windbg 向我展示

有没有办法可以看到 Action 将要执行的实际代码?根据上面引用的对象,我对正在发生的事情有一个粗略的了解,但是查看 Action 将执行的实际代码会很有帮助。

0 投票
1 回答
100 浏览

windbg - 使用注册 .NET sosex 扩展

有没有办法使用!mdt(SOSEX 扩展)但使用寄存器来显示对象内容?

我知道您是否这样做!mdt 299281(如果有,则显示该地址中的对象)但是如果我想这样做!mdt edx(注册而不是十六进制数字)怎么办?

0 投票
1 回答
407 浏览

windbg - Windbg:断点 SOS,或 SOSEX.DLL 方法的名称

在托管代码中使用 SOS 或 SOSEX 进行调试时,我可以使用 !mbm *!*GetSubscription 设置断点,有没有办法获取方法名称?

示例:bp 8373772 ".printf \"methodname\";gc"。

这个想法是让执行的方法的名称与 wt -l 命令类似。

0 投票
0 回答
24 浏览

windbg - !dumpheap -min 字符串不能按预期工作

给定 size 参数时,似乎!DumpHeap无法正确处理字符串类型。

请注意:

SOS!DumpHeap -min 100000没有产生任何结果,!strings /n:100000但产生了一些结果。

难道!DumpHeap -min只是没有正确处理字符串吗?或者我错过了什么?

0 投票
1 回答
600 浏览

callback - 内部异常的堆栈跟踪

托管我的 .NET 应用程序的 w3wp 进程随机崩溃。我通过使用 DebugDiag 设置第二次机会异常规则收集了转储文件。这是我执行的步骤。

lastevent 命令显示 .NET 异常。

该线程的堆栈跟踪如下所示,

pe 命令显示回调异常

根据上一个命令的输出,我查找嵌套异常

我的下一步是找到 NullReferenceException 的堆栈跟踪

这里我尝试获取 NullReferenceException 的堆栈跟踪。这看起来像一个 SByte 数组。

我的期望是获得堆栈跟踪/详细信息,了解导致此空引用的方法/代码行/对象。我还尝试转储 SByte 数组的内容,但这并没有为我提供任何有用的信息。关于如何获得有关此 NullReferenceException 的更多信息的任何建议?

0 投票
1 回答
149 浏览

memory - Gen 2 中的 3GB 字符串,如何仅在 Gen 2 中转储有限的大对象?

通过使用命令!dumpgen 2 -stat,我发现有3GB的字符串,23,531,124 3,110,704,598 System.String,如果我将它们全部转储,它将挂起windbg,有什么办法我只能在Gen中转储有限的大对象结果只有2个?因此我可以转储这些对象并查看它们是什么。同样要求 LOH。提前感谢您的帮助。