What is a memory dump?

10
  • What is a dump of memory?
  • How can it aid in the possible identification of an inconsistency in the code?
  • How is the analysis performed?
asked by anonymous 03.08.2015 / 16:42

1 answer

10

Term

The memory dump or memory dump is a reproduction of everything that is in the memory at a certain point in time of program execution. This is usually done at a time of error.

Dump usually deals with the physical reproduction of memory and it is very important for me to have slightly lower level languages ( Assembly , C, C ++, etc.) that have full memory access and can produce unexpected results.

C Sharp

I will not go into detail because in the C # context this has zero relevance unless it adapts the term or has a very specific need.

Because C # runs in a managed environment, this is rarely relevant unless you are working with the development of the environment where C # applications run (a CLR ) or in some cases making a compiler try to have its own form of allocation, but even this has limitations. The managed feature of the environment avoids the errors of misallocation of memory that is where this "tool" stands out.

It's even difficult to get rid of in C #, needs some own function developed in another language or the use of an external tool. So C # context, do not worry about it.

Analysis

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

Eventually you can use the data to power applications and do 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, ie 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 so, but it is a misnomer to give this name.

You can make a debug utility that captures this application information and manages a file or other form with the data in the application. But note that this is not the same as parsing memory, ie an analysis of data that is in memory, has a better abstraction there.

The .Net infrastructure has tools for collecting and analyzing this data. Read more about this at documentation about the subject .

    
03.08.2015 / 17:00