Importing raw memory dumps in dotMemory 2017.2

Alexey Totin

Support for raw memory dumps was probably the most voted and long-awaited dotMemory feature. Finally, it’s available in dotMemory 2017.2!

Indeed, there are cases when it’s impossible to profile a problematic application locally or remotely and take a regular dotMemory snapshot for analysis (e.g., because of security policies). Your last resort in such a case is typically a raw Windows memory dump. It can be taken with a number of tools, with the two most popular being Task Manager (comes with the operating system) and Process Explorer. Now, all you have to do is simply copy the dump to your computer and open it in dotMemory using the Import Dump command.

Importing memory dumps in dotMemory

That’s it! The dump is converted to an ordinary dotMemory snapshot, so you can analyze it using all of the sophisticated dotMemory features like automatic inspections, retention path diagrams, etc.

Important notes

  • The feature is currently in Beta status. While it’s 100% functional, the number of possible combinations of Windows and .NET Framework versions is really huge! This means it’s possible that for some combinations, dotMemory won’t show you all of the expected data in the resulting snapshot. Please send us your process dumps should you face this issue!
  • When creating a dump of a 32-bit application with Task Manager, make sure you use a 32-bit version of the tool. You can find it in C:\Windows\SysWOW64\taskmgr.exe.
  • We have tons of ideas on how to improve the feature (dumps contain much more data that we’re currently able to analyze), so this is still work in progress.

If you feel like trying importing dumps right now, download and install ReSharper Ultimate. Please ask your questions by posting comments to this post.

Comments below can no longer be edited.

20 Responses to Importing raw memory dumps in dotMemory 2017.2

  1. Dew Drop - August 29, 2017 (#2550) - Morning Dew says:

    August 29, 2017

    […] Importing raw memory dumps in dotMemory 2017.2 (Alexey Totin) […]

  2. Kevin Gosse says:

    August 29, 2017

    Hopefully the feature will get faster? Currently it takes about one hour to open a 15 GB dumps, making the app near unusable. That said, it’s very reactive once the memory dump has been loaded.

    • Steve says:

      November 1, 2019

      Trying to open a 12GB file.
      6 minutes remaining…
      15 minutes remaining…
      1 hour 40 minutes remaining…

  3. Ruslan Isakiev says:

    August 29, 2017

    Thank you for the feedback! Performance of the import procedure will certainly be improved.
    Can we ask you to share your dump in the meantime?

    • Kevin Gosse says:

      August 30, 2017

      Sure, I’ve just gotta make sure there isn’t any business critical information in it. Assuming it’s ok, where could I upload it?

      • Ruslan Isakiev says:

        August 31, 2017

        That would be great! Thank you!
        Could you please zip it, split into 5Gb parts, upload to https://uploads.services.jetbrains.com/ and tell us the exact file names?
        We’ll also likely need corresponding mscordacwks.dll from your machine (usually it can be found under C:\Windows\Microsoft.NET\ )

  4. Vladimir Kozlov (ai_enabled) says:

    August 30, 2017

    Thank you for this live-saving feature, guys!
    I was puzzled for a long time about the accumulating memory leaks in our server applications, but there were no easy for to make a snapshot of the process for analyzing in the memory profiler.
    Yesterday I tried this new feature and quickly located all the memory leaks. Absolutely amazing tool!

    By the way, please consider including this information right into the dotMemory when trying to open a dump of a 32-bit application made with the 64-bit Task manager:
    “When creating a dump of a 32-bit application with Task Manager, make sure you use a 32-bit version of the tool. You can find it in C:\Windows\SysWOW64\taskmgr.exe.”
    I was required to search online (and it took some time as it’s a rarely discussed issue) to find where I can locate a 32-bit version of Task Manager.

    Regards!

    • Ruslan Isakiev says:

      August 30, 2017

      Hi Vladimir! Thank you for the feedback!
      It’s great to hear that dotMemory helped you to solve memory issues)
      As for the notification message: we’ll see how to improve this, as Task Manager is not the only tool capable of taking memory dumps.

  5. The Morning Brew - Chris Alcock » The Morning Brew #2415 says:

    August 30, 2017

    […] Importing raw memory dumps in dotMemory 2017.2 – Alexey Totin […]

  6. Dew Drop - August 30, 2017 (#2551) - Morning Dew says:

    August 30, 2017

    […] Importing raw memory dumps in dotMemory 2017.2 (Alexey Totin) […]

  7. Jaile Sebes says:

    December 22, 2017

    Not able to see stack trace , is it a limitation or am i missing something

    • Alexey Totin says:

      January 2, 2018

      Hi Jaile,
      It’s a limitation of a memory dump: it has no info about how objects were allocated.

  8. Brett Mason says:

    January 25, 2018

    Awesome feature, thank you very much!
    We were able to track down a memory leak that had been causing huge issues in production for many months.
    It may be a little slow to load up a massive memdump, but well worth the wait!

    • Alexey Totin says:

      January 25, 2018

      Glad we could help!

  9. Dave East says:

    March 13, 2018

    Cool feature! I’m hoping to use it to track down a leak in unmanaged memory. Is there any way to do this? I can’t find a relevant option myself.

    • Alexey Totin says:

      March 14, 2018

      Hi Dave,
      Unfortunately, it is not possible. dotMemory is only about managed code.

  10. Grigory Perepechko says:

    March 5, 2019

    Do you have plans to support .net core linux dumps made via gcore/createdump ?
    Right now we have to use lldb+libsos for analysis, but it will never be as productive as with dotMemory

  11. Shubhankar Sanyal says:

    August 24, 2019

    I’m trying to import a large (20GB) dump. However after going for a while this just silently fails. Are there any error logs anywhere I can look at to see what may be wrong ? it was initially actually giving a short lived error dialog (no disk space) but I have since changed the workspace folder to be on a larger drive with a lot of space.

Subscribe

Subscribe to .NET Tools updates