问题标签 [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.
version-control - 使用 SOS,是否可以一次操作将分支中的所有文件合并到主干?
有没有办法告诉 SOS 将给定分支中的所有最新文件合并到主干中?
我已经检查了所有将要更改的文件。我可以通过选择最新的分支版本并使用 Revision->Merge 菜单命令来合并单个文件。但是,如果我选择多个文件,该选项将显示为灰色。我有很多文件要合并,如果可能的话,我不想手动执行此操作...
visual-studio - 如何有效地使用 SOS 调试扩展?
当我在 Visual Studio 的即时窗口中使用 .load SOS 并意外发出一个导致一长串输出的命令(例如 !dumpheap -type System.String -min 100)时,即时窗口无法停止列出值和持续滚动数小时。我所能做的就是终止进程并重新开始调试。这很烦人。您是否知道如何在即时窗口中取消此列表或有任何其他提示如何更好地使用 SOS 调试扩展?
.net - 我如何使用 !gcroot
从加载了 SOS 调试扩展的 Visual Studio 即时窗口中,我可以做到
然后我得到这样的东西:
我现在如何在某些 System.Byte[] 实例上调用 !gcroot ?我首先要找到他们的地址。但是使用 !dumpheap -type System.Byte[] 肯定是个坏主意,因为这会给我一个无穷无尽的列表,而且由于即时窗口似乎很慢,因此需要 20 多分钟才能列出它们——当时 Visual Studio 不是可用。有一个秘密的技巧我可以在某些字节数组上调用 !gcroot 吗?
.net - 如何在 WinDbg 中遍历原生对象?
我正在调查我的应用程序中占用大量内存的原因。使用 !DumpObj 命令,我可以绕过托管对象。但是我如何为原生对象做等价的呢?例如,这个 .NET 对象有一个指向本机代码的指针。我被困在这里......我如何从这里做相当于 !DumpObj 的操作?我有所有的来源和符号。
.net - 为什么不清理这些 WCF 相关资源?
这是我的场景:
- 启动我的测试程序并立即进入调试器(WinDBG)
- 使用 !DumpHeap -stat 并观察任何地方都没有 System.Net* 或 System.Xml* 对象
- 创建我的 WCF 客户端,发出 WCF 请求
- 关闭 WCF 客户端并强制 GC。
- 以 !DumpHeap -stat 和观察者为例,内存中仍有大量 System.Net*、System.Xml* 对象。
因此,从我在步骤 5 中的观察来看,WCF 似乎没有正确清理(或者更有可能我遗漏了一些东西)。为什么是这样?我怎样才能回收这些不应该在这里的对象占用的内存?
这是我的测试代码...
PS 这是我的 !FinalizeQueue 结果...不确定这是否相关
添加我认为应该消失的随机对象的 !GCRoot 跟踪...
windbg - 如何使用windbg找出SqlConnection.ConnectionString?
我可以使用“!do”转储 SqlConnection 实例,但不知道如何找出它的 ConnectionString:
.net - WinDbg SOS 异常堆栈中的函数地址旁边的 +0x10 是什么意思?
例子:
InnerException:StackTrace(生成):SP IP 函数 003D8E9C 03B21BD7 东西!Blah.Blah.FunctionName(System.String) +0xa8
+0xa8 部分表示什么?
windbg - 加载数据访问DLL失败,0x80004005
corflags.exe /32bit+ xxxx.exe 在 64bit server 2003 上运行后,xxxx.exe 通常会崩溃。我得到了这个转储,在同一台机器上安装了 windbg(x86),但我不能使用 SOS。我用谷歌搜索了这个问题,但找不到工作答案。我用的是同一台机器,为什么windbg找不到需要的?
visual-studio-2008 - 我可以在调试时看到什么在引用对象吗?
是否可以在调试 Silverlight 应用程序时查看对对象的所有当前引用?
我知道 WPF 开发人员有能力使用 SOS.dll,但是在调试 Silverlight 应用程序时无法在 VS2008 IDE 中加载。我试过了,但是加载命令给了我错误:
.load C:\Program Files\Microsoft Silverlight\3.0.40818.0\sos.dll
SOS 在仅受管调试时不可用。要加载 SOS,请在项目属性中启用非托管调试。
不幸的是,没有办法通过 VS2008 IDE 为 Silverlight 应用程序启用非托管调试。我也尝试过“附加到”这个过程,但仍然没有骰子。
visual-studio - 如何使用 !DumpHeap (.load sos) 仅转储第一个对象地址
我有几百万个物体在记忆中徘徊。我想为他们找到 gcroot,所以我需要一个对象地址。!DumpHeap 但是会转储所有花费的时间比我耐心等待的时间长的对象。如何将其输出限制为仅一个对象地址?我正在使用 Visual Studio 2008 顺便说一句。