问题标签 [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.

0 投票
2 回答
439 浏览

silverlight - 无法在 IE 8.0 中为 Silverlight 4.0 应用程序运行 sos comamnd

我正在尝试调试在 IE8.0 下运行的 silverlight 应用程序。它使用 .NET 框架 4.0 和 Silverlight 4.0。所以我将 Windbg 附加到 IE 运行实例,我知道使用 IE8 我需要连接到 Internet Explorer 的正确实例。因此,当我在此处附加时,这些 dll 显示为在进程中加载​​。如您所见,coreclr 已加载在那里。

可执行搜索路径为: ModLoad: 00a00000 00a9c000 C:\Program Files\Internet Explorer\IEXPLORE.EXE
ModLoad: 77890000 779b8000 C:\Windows\system32\ntdll.dll
ModLoad: 76450000 7652c000 C:\Windows\system32\kernel32.dll
ModLoad : 76380000 76446000 C:\Windows\system32\ADVAPI32.dll
ModLoad: 779d0000 77a93000 C:\Windows\system32\RPCRT4.dll ModLoad
: 76680000 7671d000 C:\Windows\system32\USER32.dll ModLoad
: 77aa0000 77aeb000 Ca: system32\GDI32.dll
ModLoad: 77590000 7763a000 C:\Windows\system32\msvcrt.dll
ModLoad: 77530000 77589000 C:\Windows\system32\SHLWAPI.dll
ModLoad: 76940000 77451000 C:\Windows\system32\SHELL32.dll
ModLoad: 76530000 76675000 C:\Windows\system32\ole32.dll
ModLoad: 75f60000 76149000 C:\Windows\system32\iertutil.dll ModLoad
: 77750000 77883000 C:\Windows\system32\urlmon.dll
ModLoad: 768b0000 7693d000C: \system32\OLEAUT32.dll
ModLoad: 77730000 7774e000 C:\Windows\system32\IMM32.DLL ModLoad
: 77460000 77528000 C:\Windows\system32\MSCTF.dll ModLoad
: 76330000 76339000 C:\Windows\system32\LPK.DLL ModLoad
: 6be40000 6c8d5000 C:\Windows\system32\IEFRAME.dll ModLoad
: 76220000 76293000 C:\Windows\system32\comdlg32.dll
ModLoad: 72570000 725a3000 C:\Program Files\Internet Explorer\IEShims.dll ModLoad
: 74f60000 74f9f000C: \system32\uxtheme.dll
ModLoad: 75de0000 75dfe000 C:\Windows\system32\USERENV.dll ModLoad
: 75dc0000 75dd4000 C:\Windows\system32\Secur32.dll
ModLoad: 75430000 7546b000 C:\Windows\system32\rsaenh.dll ModLoad
: 76720000 768aa000 C:\Windows \system32\SETUPAPI.dll ModLoad
: 73e40000 73efb000 C:\Windows\system32\PROPSYS.dll ModLoad
: 762a0000 76324000 C:\Windows\system32\CLBCatQ.DLL
ModLoad: 722c0000 72300000 C:\Program Files\Internet Explorer\ieproxy.dll
ModLoad: 6eae0000 6eb33000 C:\Windows\system32\ACTXPRXY.DLL ModLoad
: 77640000 77726000 C:\Windows\system32\WININET.dll ModLoad
: 76370000 76373000 C:\Windows\system32\Normaliz.dll
ModLoad: 76340000\Windows 7636d000 C: \system32\ws2_32.dll
ModLoad: 779c0000 779c6000 C:\Windows\system32\NSI.dll ModLoad
: 75d30000 75d5c000 C:\Windows\system32\apphelp.dll
ModLoad: 74460000 744aa000 C:\Windows\system32\RASAPI32.dll ModLoad
: 74440000 74454000 C\ \system32\rasman.dll ModLoad
: 75bf0000 75c66000 C:\Windows\system32\NETAPI32.dll
ModLoad: 75e90000 75e97000 C:\Windows\system32\PSAPI.DLL
ModLoad: 74170000 741a1000 C:\Windows\system32\TAPI32.dll ModLoad
: 74430000 7443c000 C:\Windows\system32\rtutils.dll ModLoad
: 74130000 74162000 C:\Windows\system32\WINMM.dll ModLoad
: 740f0000 7412d000 C:\Windows\system32\OLEACC.dll ModLoad
: 75830000 75322000 C:\Windows\system \CRYPT32.dll
ModLoad: 75990000 759a2000 C:\Windows\system32\MSASN1.dll ModLoad
: 6ffe0000 6ffe6000 C:\Windows\system32\sensapi.dll ModLoad
: 755f0000 755f7000 C:\Windows\system32\credssp.dll ModLoad
: 754c0000 75506000 C:\Windows \system32\schannel.dll
ModLoad: 75120000 75134000 C:\Windows\system32\wpclsp.dll ModLoad
: 759b0000 759c1000 C:\Windows\system32\SAMLIB.dll ModLoad
: 75200000 7520f000 C:\Windows\system32\NLAapi.dll ModLoad
: 75790000 757a9000 C:\Windows\system32\IPHLPAPI.DLL ModLoad
: 75750000 75785000 C:\Windows\system32\dhcpcsvc.DLL ModLoad
: 759d0000 759fc000 C:\Windows\system32\DNSAPI.dll ModLoad : 75740000 75747000C\Windows32
: \WINNSI.DLL
ModLoad: 75710000 75732000 C:\Windows\system32\dhcpcsvc6.DLL ModLoad
: 755b0000 755eb000 C:\Windows\system32\mswsock.dll
ModLoad: 754b0000 754b5000 C:\Windows\System32\wshtcpip.dll ModLoad
: 709e0000 C:Windows\ 6 \system32\rasadhlp.dll ModLoad
: 70a40000 70a70000 C:\Windows\system32\MLANG.dll ModLoad
: 75230000 75251000 C:\Windows\system32\NTMARTA.DLL ModLoad
: 76150000 76199000 C:\Windows\system32\WLDAP32.dll ModLoad
: 756a0000 756a8000 C:\Windows\system32\VERSION.dll
ModLoad: 75690000 75695000 C:\Windows\System32\wship6.dll ModLoad
: 704d0000 704df000 C:\Windows\system32\napinsp.dll ModLoad
: 70490000 7032a2000 C:\Windows\system \pnrpnsp.dll
ModLoad: 704c0000 704c8000 C:\Windows\System32\winrnr.dll ModLoad
: 704b0000 704bc000 C:\Windows\system32\wshbth.dll ModLoad
: 75290000 752a5000 C:\Windows\system32\GPAPI.dll ModLoad
: 757f0000 7582a000 \system32\slc.dll ModLoad
: 6ffc0000 6ffdb000 C:\Windows\system32\cryptnet.dll ModLoad
: 74ef0000 74f05000 C:\Windows\system32\Cabinet.dll ModLoad
: 56070000 563d9000 c:\Program Files\Microsoft Silverlight\4.0.60129.0 \coreclr.dll

这是链命令的输出

0:027> .chain
扩展 DLL 搜索路径:
C:\Program Files\Debugging Tools for Windows (x86)\WINXP;C:\Program Files\Debugging Tools for Windows (x86)\winext;C:\Program Files\Debugging Tools for Windows (x86)\winext\arcade; C:\Program Files\Debugging Tools for Windows (x86)\pri;C:\Program Files\Debugging Tools for Windows (x86);C:\Program Files\Debugging Tools for Windows (x86)\winext\arcade;C: \Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files\Microsoft SQL Server\90\Tools\binn\ ;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C :\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files\Microsoft Windows Performance Toolkit\;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Windows Live\Shared
扩展 DLL 链:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll:图像 4.0.30319.225,API 1.0.0,于 2011 年 2 月 9 日星期三 23:49:57 构建
[路径:C:\Windows \Microsoft.NET\Framework\v4.0.30319\sos.dll]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll:图像 4.0.30319.225,于 2011 年 2 月 9 日星期三 23:24:43 构建
[路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll]
C:\Program Files\Microsoft Silverlight\4.0.60129.0\coreclr:图像 4.0.60129.0,建于 1 月 29 日星期六 02:06:01 2011
[路径:C:\Program Files\Microsoft Silverlight\4.0.60129.0\coreclr.dll]
C:\Program Files\Microsoft Silverlight\4.0.60129.0\sos.dll:图像 4.0.60129.0,API 1.0.0,内置星期六2011 年 1 月 29 日 02:07:57
[路径:C:\Program Files\Microsoft Silverlight\4.0.60129.0\sos.dll]
C:\Program Files\Microsoft Silverlight\4.0.60129.0\sos:映像 4.0.60129.0,API 1.0.0,2002 年 1 月 29 日星期六:07:57 2011
[路径:C:\Program Files\Microsoft Silverlight\4.0.60129.0\sos.dll]
C:\Windows\Microsoft.NET\Framework\v2.0.50727\sos:图像 2.0.50727.4211,API 1.0。 0,2010 年 10 月 25 日星期一 01:31:50 构建
[路径:C:\Windows\Microsoft.NET\Framework\v2.0.50727\sos.dll]
dbghelp:图像 6.12.0002.633,API 6.1.6,2 月 1 日星期一构建2010 年 15:08:26
[路径:C:\Program Files\Debugging Tools for Windows (x86)\dbghelp.dll]
ext: image 6.12.0002.633,API 1.0.0,2010 年 2 月 1 日星期一 15:08:31 构建
[路径:C:\Program Files\Debugging Tools for Windows (x86)\winext\ext.dll] exts
:图像 6.12.0002.633,API 1.0.0,于 2010 年 2 月 1 日 15:08:24 构建
[路径:C: \Program Files\Debugging Tools for Windows (x86)\WINXP\exts.dll]
uext:映像 6.12.0002.633,API 1.0.0,于 2010 年 2 月 1 日星期一 15:08:23 构建
[路径:C:\Program Files\Debugging Windows 工具 (x86)\winext\uext.dll]
ntsdexts:图像 6.1.7650.0,API 1.0.0,于 2010 年 2 月 1 日 15:08:08 构建
[路径:C:\Program Files\Debugging Tools for Windows (x86 )\WINXP\ntsdexts.dll]

问题是,在我尝试加载 sos 时加载 sos 后,出现以下错误。

0:027> .loadby sos coreclr
0:027> !threads
找不到运行时 DLL (clr.dll),0x80004005
扩展命令需要 clr.dll 才能有事可做。

知道我在这里做错了什么吗?

0 投票
1 回答
1204 浏览

windbg - 改变函数返回值

我有一个 .net 应用程序正在执行 COM 互操作并调用一些本机库 API。其中一个 API 正在返回一些出乎意料的数据,这让我很头疼。我正在寻找一些强制托管 API 返回值的方法。这不会解决我的问题,但可以帮助我缩小一些范围。我在下面简化了一些事情。

记住这一切,假设我的托管类名为 MyClass,它有两个方法 ParentMethod() 和 ChildMethod()。ParentMethod 调用 ChildMethod 内部调用这些本地 API。ChildMethod 本身返回一个布尔值。

通过 Windbg 闯入我的应用程序后,我首先运行 !dumpheap -type MyClass 命令,该命令给了我以下输出

0:027> !dumpheap -type MyClass
地址 MT 大小
0ac7e7e4 04ac5030 100
共 0 个对象
统计信息:
MT 计数 TotalSize 类名称
04ac5030 1 100 MyNamespace.MyClass
共 1 个对象

然后我运行以下命令试图获取此类中方法的地址。

0:027>!dumpmt -md 04ac5030
EEClass:04ac1b20
模块:04ac49c8
名称:MyNamespace.MyClass
mdToken:02000002
文件:MyAssemblyName,版本=1.0.0.0,文化=中性,PublicKeyToken=null
BaseSize:0x64
ComponentSize:0x0
VTable 中的插槽: 61
IFaceMap 中 IFace 的数量:4
MethodDesc 表
条目 MethodDesc JIT 名称
04b20270 04ac4f​​d0 JIT MyNamespace.MyClass..ctor()
04b20230 04ac4f​​fc JIT MyNamespace.MyClass..cctor()
04acc081 04ac4f​​d8 NONE MyNamespace.MyClass.ParentMethod() 04acc085 NONE MyNamespace.MyNamespace.ParentMethod()
04acc085 N404 .MyClass.ChildMethod()
04b202c0 04ac4f​​f0 JIT MyNamespace.MyClass.InitializeComponent()

我找到了Naveen 的博客条目,他在其中描述了一些沿同一路线做某事的技术,但我不知道我应该从这里采取什么确切步骤。任何帮助将不胜感激。

0 投票
1 回答
2198 浏览

windbg - 更改本地堆栈变量值

使用 Windbg/SOS,可以在堆栈上更改本地变量的值吗?如果有怎么办?

0 投票
1 回答
1814 浏览

c# - what does it mean when an object has no root using !gcroot with SOS?

I'm tracking a memory leak where I'm using

!dumpheap -stat !dumpheap -mt !gcroot

however !gcroot doesnt show anything, I've been thinking this means the object has no refs but hasnt been collected. but I'm not 100% confident.

0 投票
3 回答
207 浏览

.net - Which debugging tool (if any) allows me to identify the thread that is holding a lock on a file?

I'm debugging a test that periodically raises an IOException, noting that a file can not be deleted because it is being used by another process. I suspect that the process is indeed my test harness, and that some other thread in the process hasn't disposed of its file resources when I expected it to.

Is there a tool that I can use to determine which thread holds the impeding lock? If I can identify the thread, then I can inspect its call stack and at least try to determine why the resource is not yet disposed. The SOS debugging tool looks promising, but I don't see any feature that would remove a fair amount of guesswork from my investigation.

One thought is to identify the native OS thread-ID, which then can be mapped to a managed thread ID via SOS. How would I accomplish the former?

0 投票
1 回答
282 浏览

.net - !eeheap -gc 虽然我的进程在四核处理器机器上运行,但仅显示 1 个 GC 堆

我的基于 .net 的应用程序在四核机器上运行,但是当我运行 !eeheap -gc 命令时它显示

GC 堆数:1

这是否意味着我的应用程序没有使用所有 4 个处理器?知道为什么会发生这种情况以及如何改变这种行为吗?

0 投票
1 回答
826 浏览

.net - 非托管组件用于分配/解除分配的内存区域

假设 .net 托管应用程序通过 InterOP 与非托管组件交互。如果我必须调试内存问题;非托管组件究竟在哪里分配内存?它是 GC 使用的同一个堆(我怀疑)还是其他一些区域?我正在做 Windbg 调试,想知道我是否可以通过像 !dumpheap 这样的 SoS 命令查看非托管组件的分配?

0 投票
1 回答
880 浏览

clr - 在windbg中HANDLE(RefCnt)是什么意思?

以下是我检查对象 0330e9a8 的 gcroot。我发现它的根是一个句柄,它的类型是“RefCnt”。

我怎样才能得到它的实际引用计数。我怎么知道哪个对象获得了它的引用?

0 投票
2 回答
805 浏览

windbg - 分析由 .net 4.0 的 gflags.exe 创建的故障转储,但没有足够的信息

用 c# 4.0 编写的 Windows 服务,设置 gflags.exe(Global Flags) 以在进程崩溃时保存转储。

但是当我在 windbg 中打开故障转储时,我得到了 0:00> 。我不擅长windbg,我记得Tess的博客说打开故障转储时应该看到发生异常的线程ID,但我看到的是0:00> ...并且!pe没有有用的结果。

使用 !dumpheap -stat,我只能看到几个对象,那么我该如何分析这个转储呢?非常感谢您的帮助。

0 投票
0 回答
1084 浏览

debugging - 是否可以从 WinDbg / SOS 调用方法

是否可以从 windbg 调用托管方法?是否有任何 .NET 等价物.call?或者如何使用它来调用托管方法?

我有兴趣将实时会话附加到无法使用 Visual Studio 调试器的生产过程(没有 pdb 的发布)。