Troubleshooting "Unresolved" types in a snapshot created from a process dump
Symptoms:
When importing a process memory dump into dotMemory, the resulting snapshot might contain a lot of “Unresolved” type items:
Cause:
The process memory dump misses memory segments of specific modules.
Solution:
dotMemory will automatically attempt to download the missing data from the Microsoft Symbol Server. However, this applies only to system modules. If the dotMemory snapshot misses a significant number of user types, try collecting the process dump with alternative methods, for example:
- Get a full core dump using the dotnet-dump tool.
- Install the dotnet-dump tool by running:
dotnet tool install -g dotnet-dump
- To get a full core dump, run:
dotnet-dump collect --type=Full -o ~/dumps/coredump -p <PID>
- Get a full core dump using the createdump tool.
The createdump tool is included into the .NET runtime installation. To get a process dump, run:/usr/share/dotnet/shared/Microsoft.NETCore.App/<vN>/createdump -u -f /tmp/coredump <pid>
- Set /proc/<PID>/coredump_filter to “0x3f” to capture more modules
If the previous tools still generate dumps with unresolved modules, try the following workaround to get a more complete list of modules:- Open a terminal and edit the coredump_filter file:
echo"0x3f" > /proc/<PID>/coredump_filter
- Verify that the value is applied correctly:
cat/proc/<PID>/coredump_filter
- Get a process dump from the same terminal instance.
- Open a terminal and edit the coredump_filter file:
Please sign in to leave a comment.