Skip to content
🤔 Documentation issue? Report it

//leakcanary-repo/shark/GcRoot

GcRoot

sealed class GcRoot

A GcRoot as identified by HprofRecord.HeapDumpRecord.GcRootRecord in the heap dump.

Inheritors

Unknown
JniGlobal
JniLocal
JavaFrame
NativeStack
StickyClass
ThreadBlock
MonitorUsed
ThreadObject
ReferenceCleanup
VmInternal
JniMonitor
InternedString
Finalizing
Debugger
Unreachable

Types

Name Summary
Debugger [jvm]
class Debugger(val id: Long) : GcRoot
An object held by a connected debugger
Finalizing [jvm]
class Finalizing(val id: Long) : GcRoot
An object that is in a queue, waiting for a finalizer to run.
InternedString [jvm]
class InternedString(val id: Long) : GcRoot
An interned string, see java.lang.String.intern.
JavaFrame [jvm]
class JavaFrame(val id: Long, val threadSerialNumber: Int, val frameNumber: Int) : GcRoot
A java local variable
JniGlobal [jvm]
class JniGlobal(val id: Long, val jniGlobalRefId: Long) : GcRoot
A global variable in native code.
JniLocal [jvm]
class JniLocal(val id: Long, val threadSerialNumber: Int, val frameNumber: Int) : GcRoot
A local variable in native code.
JniMonitor [jvm]
class JniMonitor(val id: Long, val stackTraceSerialNumber: Int, val stackDepth: Int) : GcRoot
It’s unclear what this is, documentation welcome.
MonitorUsed [jvm]
class MonitorUsed(val id: Long) : GcRoot
Everything that called the wait() or notify() methods, or that is synchronized.
NativeStack [jvm]
class NativeStack(val id: Long, val threadSerialNumber: Int) : GcRoot
Input or output parameters in native code
ReferenceCleanup [jvm]
class ReferenceCleanup(val id: Long) : GcRoot
It’s unclear what this is, documentation welcome.
StickyClass [jvm]
class StickyClass(val id: Long) : GcRoot
A system class
ThreadBlock [jvm]
class ThreadBlock(val id: Long, val threadSerialNumber: Int) : GcRoot
ThreadObject [jvm]
class ThreadObject(val id: Long, val threadSerialNumber: Int, val stackTraceSerialNumber: Int) : GcRoot
A thread.
Unknown [jvm]
class Unknown(val id: Long) : GcRoot
An unknown gc root.
Unreachable [jvm]
class Unreachable(val id: Long) : GcRoot
An object that is unreachable from any other root, but not a root itself.
VmInternal [jvm]
class VmInternal(val id: Long) : GcRoot
It’s unclear what this is, documentation welcome.

Properties

Name Summary
id [jvm]
abstract val id: Long
The object id of the object that this gc root references.