Assembly load context leak report reference
Understand the contents of the AssemblyLoadContext leak report and how to interpret it.
Read time 2 minutesLast updated 9 days ago
Each time the Editor detects a leak, it writes a full report to in your project folder, and overwrites any previous report. Use the report to identify which object leaked and what references it.
Logs/ALCLeaks.jsonThe report contains a array with one entry per leaked object. Each entry has the following members:
LeaksMember | Description |
|---|---|
| Chain of objects that leads from the leaked object to the object closest to the root. The first item is the leaked object itself. |
| The entity that keeps the whole chain alive. |
| Address of the handle that holds the leaked object. Present only when |
| Address of the object that the handle points to. Present only when |
Each item in has the following members:
PathToRootMember | Description |
|---|---|
| Name of the object's type. |
| Name of the assembly that the type belongs to. Empty for types that don't belong to a single assembly, such as arrays. |
| Address of the object at the time of the inspection. |
| Name of the context that the type belongs to. Present only when the Editor resolves the name. |
| Name of the object. Present only for objects that carry a name, such as an |
| Call stack of the allocation. Present only when you record allocation call stacks at level |
The member has the following members:
RootMember | Description |
|---|---|
| The kind of root that holds the chain: |
| Characteristics of the root, as a comma-separated list of |
| Name of the static field that holds the chain. Present only when |
| Call stack of the handle allocation. Present only when |
The following report describes one leaked object that a handle holds:
{ "ALCLeaks": { "Leaks": [ { "PathToRoot": [ { "Address": "0x1F4A0C3D8", "AssemblyName": "Assembly-CSharp-Editor", "TypeName": "MyGame.AssetIndex" } ], "HandleID": "0x1F3B00110", "ObjectAddress": "0x1F4A0C3D8", "Root": { "Kind": "Handle" } } ] }}