09.02.2014 Views

Windows sysinternals

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

234 Part II Usage Guide<br />

and results in a 1.5-GB dump file that takes two minutes to compress and about 15 minutes<br />

to upload.<br />

Although originally designed for Exchange, the algorithm is generic and works as well on<br />

Microsoft SQL Server or any other native application that allocates large memory regions.<br />

This is because the algorithm uses heuristics to determine what data is to be included.<br />

A Miniplus dump starts by creating a minidump and adds (“plus”) memory deemed<br />

important. The first step is to consider only pages marked as read/write. This excludes the<br />

majority of the image pages but still retains the image pages associated with global variables.<br />

The next step is to find the largest read/write memory area larger than 512 MB. If found, the<br />

memory area is provisionally excluded. A memory area is the collection of same-sized memory<br />

allocations. For example, if there are twenty 64-MB regions (1280 MB total), and five<br />

128-MB regions (640 MB total), the 64-MB regions will be excluded because they use more<br />

memory than the 128-MB regions even though the size of the allocations is not the largest.<br />

These excluded regions have a second chance to be included. They are divided into 4-MB<br />

chunks, and if referenced by any thread stack, the referenced 4-MB chunk is included.<br />

Even if the process isn’t overly large, Miniplus dumps are still considerably smaller than full<br />

dumps because they do not contain the process’ executable image. For example, a full dump<br />

of Notepad is approximately 50 MB, but a Notepad Miniplus dump is only about 2 MB. And<br />

a full dump of Microsoft Word is typically around 280 MB, but a Miniplus dump of the same<br />

process is only about 36 MB. When the process isn’t overly large, you can get an approximate<br />

size of the dump by viewing the Total/Private value in VMMap.<br />

Note When debugging Miniplus dumps, the debugger needs to substitute in the omitted<br />

image pages from a symbol store (.sympath) or executable store (.exepath). If you are capturing<br />

Miniplus dumps of your application, you need to maintain both a symbol and executable store<br />

that contains each build of your application.<br />

An additional benefit of the Miniplus implementation is its ability to recover from memory<br />

read failures. A memory read failure is the reason why various dump utilities sometimes fail<br />

to capture a full dump. If you run across this issue when capturing a full dump, try using<br />

Miniplus instead to activate this recovery logic.<br />

The Miniplus dump option can be combined with other ProcDump options as the following<br />

examples demonstrate. To capture a single Miniplus dump of store.exe, use the following<br />

command line:<br />

procdump -mp store.exe<br />

Use the following command to capture a single Miniplus dump when store.exe crashes:<br />

procdump -mp -e store.exe<br />

www.it-ebooks.info

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!