What is a memory dump?

Asked

Viewed 6,642 times

12

  • What is a dump from memory?
  • How it can help in the possible identification of an inconsistency in the code?
  • How the analysis is performed?

1 answer

12


Term

The memory dump or memory dump is a reproduction of everything that is in memory at a certain time of program execution. In general this is done at a time of error.

The dump usually deals with physical memory reproduction and is very important in slightly lower level languages (Assembly, C, C++, etc.) that has full access to memory and can produce unexpected results.

C#

I won’t go into detail because in the context of C# this has zero relevance unless you adapt the term or have a very specific need.

Since C# runs in a managed environment, this is usually of little relevance unless you are working on developing the environment where C# applications run (the CLR) or in some cases making a compiler try to have its own way of allocating, but even this has limitations. The managed environment feature avoids errors of wrong memory allocation which is where this "tool" stands out.

It is even difficult to get the dump in C#, it needs some own function developed in another language or the use of an external tool. So in the context of C# don’t worry about this.

Analyzing

In other contexts they can be analyzed manually or, more commonly, through specific tools that try to give better information than what is in this reproduction, such as what is available on Windbg or next to GDB.

Eventually you can use the data to feed applications and make simulations. In some cases it is used to get statistics.

Data dump

If you use the term roughly and consider that it is only a state of managed memory, that is, you have all the states of all variables active in the application at that time more clearly and at a high level, then you can understand it like this, but it is a mistake to give this name.

You can make a debugging utility that captures this information from the application and generates a file or other form with the existing data in the application. But note that this is not the same as analyzing memory, this is an analysis of data that is in memory, has a better abstraction there.

The . NET infrastructure has tools to collect and analyze this data. Read more on documentation on the subject.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.