windbg!gcroot <address>不返回任何根

jga*_*fin 4 memory-leaks windbg sos

如果!gcroot返回空线程列表是什么意思?

0:000> !gcroot 0000000010817c50 
Note: Roots found on stacks may be false positives. Run "!help gcroot" for
more info.
Scan Thread 2 OSTHread 15a4
Scan Thread 10 OSTHread 1db4
Scan Thread 11 OSTHread 147c
Scan Thread 12 OSTHread 15d4
Scan Thread 14 OSTHread 9dc
Scan Thread 15 OSTHread 12a4
Scan Thread 21 OSTHread 18c4
Scan Thread 23 OSTHread 1260
Scan Thread 24 OSTHread 16c8
Scan Thread 25 OSTHread bd4
Scan Thread 26 OSTHread de8
Run Code Online (Sandbox Code Playgroud)

在做什么时,我有很多条目!dumpheap -type System.String,但是大多数都没有返回任何内容,如上例所示.

Nav*_*een 6

这些对象没有根,当GC运行时它将收集对象.


小智 5

如果您说您有很多没有根的字符串,则可能是其中许多字符串相当大(超过 85k),因此它们被卡在 LOH 中,因此可能无法根据需要频繁地收集。请参阅此主题了解更多详细信息:

WinDbg 没有告诉我字符串的根位置