From 528086749f002828965114c13a3cfe0d0083b587 Mon Sep 17 00:00:00 2001 From: Shane Powell Date: Sun, 26 Sep 2021 09:46:00 +1300 Subject: [PATCH] Add simple readme.md file for github --- DbgHelpUtils.sln | 5 +++++ readme.md | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 readme.md diff --git a/DbgHelpUtils.sln b/DbgHelpUtils.sln index c64ffbe..15b6bff 100644 --- a/DbgHelpUtils.sln +++ b/DbgHelpUtils.sln @@ -11,6 +11,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AllocationSetupTests", "All EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ValidateHeapEntries", "ValidateHeapEntries\ValidateHeapEntries.vcxproj", "{3F040EAB-D22B-4095-8DBD-356AC168069A}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9A86D7E8-3D42-4471-80C3-21ED36BB3CE2}" + ProjectSection(SolutionItems) = preProject + readme.md = readme.md + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ca9ed21 --- /dev/null +++ b/readme.md @@ -0,0 +1,23 @@ +# **DbgHlp Utilities Library** + +DbgHlp Utilities Library is a simple wrapper around the windows dbghelp.dll library to help break down the structures in a user mode dump file. Specifically it helps in being able to list all the heap allocated memory areas in a dump file. + +The library is compiled with the pre-release version of VS 2022 and using the C++ latest compiler flag. +The main library has no dependencies other than the VS c++ runtime. + +The is one sample application build with the library, which is called MiniDumper and can dump: +* dump most stream types of a user mini dump file +* stack trace dumping (exceptions, threads, UST heap allocations) +* dump NT Heap allocations (frontend, backend and LFH heaps) +* dump Segment Heap allocations (frontend, backend heaps) +* dump HPA Heap allocations +* UCRT debug heap allocations (matched to the heap allocations from any of the above heap allocations) +* UST heap allocation stack traces +* statical reports of the heap allocations +* dump file heap difference lists (heap allocation differences between two dump files of the same application at different times) + +This library could be used to create an application that automates the process of triaging dump files in a company application specific manner. +The heap allocation features are also useful in tracking down heap allocation leak issues. + +### dbghelp.dll and symsrv.dll +To use this library requires the use of the dbghelp.dll and symsrv.dll files. These files are not provided and must to obtained yourself from the Debugging Tools for Windows installs (part of the Windows 10 SDK). Copy the correct versions of these files (x86 or x64) to the build where the built exe lives. The library can use the version of dbghelp.dll that is installed into windows by default but symbol file lookup will not work so heap exploring or symbol lookup stack trace dumping will not work with the default dbghelp.dll installed in windows.