MemPro
User Guide

Introduction
Quick Start
Setup
GUI
Toolbars
Side Panel
Output Window
Graph View
App Toolbar
Launch Dialog
Connect Dialog
Snapshot Toolbar
Snapshot
Full Snapshot
Snapshot Views
Call Tree View
Call Tree Grouping
Memory View
Functions View
Types View
Leaks View
Tools Toolbar
Subtract Snapshots
Rewind Memory
VMem View
Settings Toolbar
Symbol Paths Dialog
Settings
MemPro Unix/GCC
FAQ
PureDev Logo MemPro logo
MemPro
C++ Memory Profiler
line

Rewind Memory

Overview

This view lets you rewind and fast-forward time to see all allocation and free events that happened in a specific range of memory.

Once you specify a range of memory, MemPro will go back through the allocation history file and find all allocations and frees that overlap with this range. It stores these allocations and frees as events. you can then scrub backwards and forwards through these events to see what was allocated and when.

What is this view useful for?

This view is very useful for tracking down memory corruptions. Most corruptions happen because something is writing to memory that it doesn't own anymore. Its memory has been freed and is probably being used by something else. When it writes to that memory it causes undefined behaviour or a crash. Because the crash happens when that memory is used again it can be very difficult to work out what actually wrote to that memory. This view solves that problem, you can rewind memory and see what was previously allocated at the corruption address.

rewind_view.jpg
1. Min/Max Address Enter the minimum and maximum addresses of the range of memory that you are interested in.
2. Get History Once you have entered min/max addresses, hit 'Get History' to get the history of all allocations and frees within that range.
3. Prev/Next Event Use these buttons to move to the next and previous event. The time slider bar and the Events list view will show the current event.
4. Event time slider Allocation events are shown as green lines. Free events are shown as red lines. Drag the slider to move between events. The black triangle shows the current event.
5. Allocations bar Similar to the memory bars in the Memory View. Shows the allocations in the current range. Click on an allocation (green rect) to get more information about that alloction. Drag the time slider across events and see the allocations appear and disappear and they are allocated and freed.
6. Event List Shows all of the allocation and free events in the memory range. The address is the address of the allocation that is being allocated or freed, similarly for the size and the time. Selecting these events will also update the time slider.
7. Allocation Information Shows information about the currently selected allocation in the allocation memory bar. Shows the allocation start and end addresses, the size of the allocation and the allocation callstack.
© Copyright 2011 - 2013 Stewart Lynch