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:

  1. 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>
  1. 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>
  1. 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.

Please sign in to leave a comment.

Have more questions?

Submit a request