- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是这样的:
0:000> !DumpHeap -type Microsoft.Internal.ReadLock -stat
------------------------------
Heap 0
total 0 objects
------------------------------
Heap 1
total 0 objects
------------------------------
Heap 2
total 0 objects
------------------------------
Heap 3
total 0 objects
------------------------------
total 0 objects
Statistics:
MT Count TotalSize Class Name
000007fef3d14088 74247 2375904 Microsoft.Internal.ReadLock
Total 74247 objects
Microsoft.Internal.ReadLock
我的堆上的实例。但是,其中一些可能正在等待收集。
0000000080f88e90
是这些对象之一的地址,它是垃圾。我知道,因为:
0:000> !mroot 0000000080f88e90
No root paths were found.
0:000> !refs 0000000080f88e90 -target
Objects referencing 0000000080f88e90 (Microsoft.Internal.ReadLock):
NONE
0:000> !do 0000000080f88e90
Name: Microsoft.Internal.ReadLock
MethodTable: 000007fef3d14088
EEClass: 000007fef3c63410
Size: 32(0x20) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ComponentModel.Composition\v4.0_4.0.0.0__b77a5c561934e089\System.ComponentModel.Composition.dll
Fields:
MT Field Offset Type VT Attr Value Name
000007fef3d13fb0 400001e 8 ...oft.Internal.Lock 0 instance 0000000080001010 _lock
000007fef0a8c7d8 400001f 10 System.Int32 1 instance 1 _isDisposed
sosex.mroot
和
sosex.refs
表明没有人引用它,加上转储其字段表明它是通过
IDisposable
处理的。 ,所以对象是垃圾是有道理的(我知道被处理并不意味着对象是垃圾,但在这种情况下是垃圾)。
.foreach
命令。像这样的东西:
.foreach(entry {!dumpheap -type Microsoft.Internal.ReadLock -short}){.if (???) {.printf "%p\n", entry} }
.if
中的内容健康)状况。
0:000> dd 0000000080f88e90+10 L1
00000000`80f88ea0 00000001
.if
需要一个表达式,而我所拥有的只是一个命令输出。如果我知道如何从命令输出中提取信息并将其排列为表达式,那么我可以将其用作
.if
状况良好。
.if
的表达式获取?或者,是否可以以适合将结果用作
.if
的方式解析命令输出?健康)状况?
最佳答案
我没有使用 ReadLock 对象的示例,但我尝试使用字符串,这是我的结果:
.foreach (entry {!dumpheap -short -type Microsoft.Internal.ReadLock})
{
.if (poi(${entry}+10) == 1)
{
.printf "%p\n", ${entry}
}
}
.foreach (entry {!dumpheap -short -type Microsoft.Internal.ReadLock}) {.if (poi(${entry}+10) == 1) {.printf "%p\n", ${entry}}}
关于debugging - 如何使用 SOS(或 SOSEX)在 WinDbg 的字段之一中显示具有特定值的托管对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20765713/
我正在使用 VS.NET 2010。我编译了一个非常简单的 .NET 4.0 应用程序。 using System; using System.Collections.Generic; using S
我正在尝试调试托管代码。 .exe 文件是为 x64 构建的 using System; using System.Collections.Generic; using System.Linq; us
我非常喜欢使用 SOS从 Visual Studio 为我的 .NET 项目调试扩展。还有SOSEX使用附加命令调试扩展,但我只能从 WinDbg 使用 SOSEX。有什么方法可以从 Visual S
我非常喜欢使用 SOS从 Visual Studio 为我的 .NET 项目调试扩展。还有SOSEX使用附加命令调试扩展,但我只能从 WinDbg 使用 SOSEX。有什么方法可以从 Visual S
将 windbg 与 SOS 和 SOSEX 结合使用,我可以使用 !mdv 命令“显示托管框架的参数和局部变量”。有没有什么方法可以通过 ClrMD 以编程方式实现相同的结果? ? 最佳答案 我已与
我的问题是这样的: 0:000> !DumpHeap -type Microsoft.Internal.ReadLock -stat ------------------------------ He
我们最近从 Windows XP 迁移到了 Windows 7,自从迁移以来,我发现我无法再在 WinDbg 中运行来自 Sosex 的 !dlk 命令,它只是永远运行。它曾经是一种在我们的代码中捕获
我使用 sosex dumpgen 0 -live 命令,同时使用 .logopen 命令记录 session 。 转储文件是从以下简单的 C# 程序创建的(当它等待输入时): using Syste
我编写了一个简单的 C# 应用程序: static void Main(string[] args) { var list = new List {500,400,300,
我是一名优秀的程序员,十分优秀!