We triggerd memory dump file of dotnet application hosted in kubernetes. The container is linux based.
As a result we have dotnet.core file which can’t be opened via Visual Studio or PerfView.
Visual Studio throws
“The file is not a valid Managed Linux Core Dump (Specified cast is not valid)”
PerfView throws
“HeapDump Error: Unable to open process dump. HeapDump only supports converting Windows process dumps.”
The question is how this file is generated and how to open/analyze it?
Dynatrace doesn’t explicitly say what mechanism it uses to collect the memory dump. However, I suspect it is PerfCollect or they obtain it using .NET CLI tools. The dump should be able to be opened with PerfView or Visual Studio (which the documentation also indicates).
I suggest setting up a ticket with support, as there may be a problem with the correct DT configuration on your environment.
This has limitation has been resolved with OneAgent 1.345.
Memory dumps for .NET applications on Linux now use the .NET diagnostic IPC port (requires .NET Core 3.1+), producing standard .dmp files instead of core dumps. They can be opened and analyzed directly in Visual Studio and other .NET-aware diagnostic tools. Classic core files are produced as a backup in case of failure. If you need to enable classic core dumps, reach out to Dynatrace support.
----
Hi
When triggering a memory dump via the Dynatrace UI then the OneAgent’s internal mechanism to create memory dumps is used (`oneagentdumpproc`). This works fine for .NET dumps on Windows, but unfortunately not for Linux memory dumps. There are improvements in this area planned, however I cannot give an ETA.
If you want to analyze .NET memory dumps with VS you have to capture those memory dumps with either createdump [1] (it is shipped with every .NET runtime installation) or dotnet-dump [2].