Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Windows Heap Profiler Frontend
branch: master

Fix exception on duplicate environment variable

Use existing _NT_SYMBOL_PATH if possible when no custom symbol settings are provided
latest commit 4e2b8539ad
K. Gadd authored
Failed to load latest commit information.
Properties Various work on improving load performance and reducing memory usage.
ext Fixed a bug in AllocationRanges.Update
.gitignore
.gitmodules Added Fracture as a submodule
ActivityIndicator.cs Checkpoint
CustomTooltip.Designer.cs Checkpoint
CustomTooltip.cs Tweaks to treemap layout algorithm
CustomTooltip.resx Checkpoint
DatabaseFile.cs Actually obey the symbol settings from the symbol settings dialog
DeltaHistogram.cs Show function names in traceback histogram
DeltaList.cs Main window heap filters and diff viewer function filters are both gl…
DiffViewer.Designer.cs
DiffViewer.cs Show function names in traceback histogram
DiffViewer.resx Filter textbox pulled out into usercontrol
ErrorListDialog.Designer.cs Report error messages to a hidden-by-default error list dialog so tha…
ErrorListDialog.cs Report error messages to a hidden-by-default error list dialog so tha…
ErrorListDialog.resx Report error messages to a hidden-by-default error list dialog so tha…
FilterControl.Designer.cs Tweaks to treemap layout algorithm
FilterControl.cs Tweaks to treemap layout algorithm
FilterControl.resx Filter textbox pulled out into usercontrol
HSV.cs Basic histogram view implementation
HeapDiff.cs Report error messages to a hidden-by-default error list dialog so tha…
HeapLayoutView.cs Stack graphs are fully hierarchical now - child nodes do not contain …
HeapProfiler.csproj Report error messages to a hidden-by-default error list dialog so tha…
HeapProfiler.sln Added Fracture as a submodule
HeapRecording.cs Fix exception on duplicate environment variable
HeapSnapshot.cs Fixed a bug in AllocationRanges.Update
HeapViewer.Designer.cs Checkpoint
HeapViewer.cs Checkpoint
HeapViewer.resx Tweaks
LICENSE First Commit
MainWindow.Designer.cs Report error messages to a hidden-by-default error list dialog so tha…
MainWindow.cs Report error messages to a hidden-by-default error list dialog so tha…
MainWindow.resx Filter textbox pulled out into usercontrol
ModuleSelector.Designer.cs Checkpoint: Generating diffs from the database, but symbol caching is…
ModuleSelector.cs Module filtering now treats 0 selected modules the same as all module…
ModuleSelector.resx Checkpoint: Generating diffs from the database, but symbol caching is…
Program.cs Fix exception on duplicate environment variable
README.md Updates to the readme
Settings.cs Preprocess each snapshot when it is first captured (right now, all we…
SnapshotTimeline.cs Better support for low zoom ratios in the timeline control
StackFiltersDialog.Designer.cs Stack filtering partially implemented
StackFiltersDialog.cs Stack filtering partially implemented
StackFiltersDialog.resx Stack filtering partially implemented
StackGraph.cs Can also filter by effective namespace now
SymbolSettingsDialog.Designer.cs Some tweaks
SymbolSettingsDialog.cs Stack filtering partially implemented
Treemap.cs Visual tweaks
UMDH Input Sample.txt Checkpoint
Util.cs Histogram and Treemap views now allow you to select the grouping mode…
app.config Some initial work on moving to storing heap snapshots in a sqlite dat…
icon.ico Added support for associating .heapdiff files with Heap Profiler and …

README.md

Heap Profiler

This is a graphical frontend for the UMDH and GFlags tools included in Microsoft Debugging Tools for Windows, written in C#. It automates the process of capturing heap allocation snapshots for a running application, and provides viewing and filtering tools for analyzing those snapshots.

Usage

You'll need Windows SDK 7.1, along with the 32-bit version of Microsoft Debugging Tools for Windows. If you have the former, you will automatically be prompted to install the latter. Run it, select an executable to profile, provide any arguments if needed, and hit Launch. Click 'Capture Now' to capture a snapshot at any time, or turn on 'Auto Capture' to capture a snapshot every 5 seconds. Please note that capturing heap information requires running as administrator (saved captures can be viewed without administrator, though) Once you have some captures, select two of them from the list and click the 'Diff Snapshots' button to generate a diff of the two snapshots and open it in the viewer. You can also select a single point of time and click 'View Selection' to view the heap at that time. You can save a collection of captures to a folder via the file menu for access later. The saved captures include symbol information so you can successfully examine them on other machines. The filtering controls in the various viewer interfaces can be used to filter allocations by function name and/or module name. Just type to filter (the filter control is colored red if the filter is invalid, and yellow if it is valid).

Building

You'll need Visual C# 2010 to compile Heap Profiler (it requires C# 4). You can use either the Express edition of Visual C# or the retail version. The library dependencies are included as git submodules in the ext folder.

Something went wrong with that request. Please try again.