Skip to content

Latest commit

 

History

History
58 lines (42 loc) · 2.92 KB

File metadata and controls

58 lines (42 loc) · 2.92 KB

Dave's Visual Studio Debug Visualizers

Win32, ATL, & MFC Debug Visualizers for the following structures and classes:

Times: FILETIME, SYSTEMTIME, COleDateTime, CTime, CTimeSpan

Miscellaneous: PROPERTYKEY, LOGFONT


If you'd like to see other common structures or classes included, don't hesitate to ask by adding a new idea in the discussion area.


Variables of the following types are normally displayed in raw forms by the debugger, but as you can see in the following examples, with this extension they're displayed in more useful formats.

FILETIME, SYSTEMTIME

Displays the time value interpreted as both UTC and local time, shown in your current locale format. Also displays the SYSTEMTIME form used in TIME_ZONE_INFORMATION & DYNAMIC_TIME_ZONE_INFORMATION from the GetTimeZoneInformation(ForYear) & GetDynamicTimeZoneInformation APIs.

FILETIME & SYSTEMTIME demonstration animation


COleDateTime, CTime, CTimeSpan

COleDateTime and CTime show the same format as FILETIME and SYSTEMTIME above.
CTimeSpan shows the time value as Days, Hours, Minutes, and Seconds.

COleDateTime, CTime, & CTimeSpan demonstration animation


PROPERTYKEY

Displays the key's canonical and display names.

PROPERTYKEY demonstration animation


LOGFONT(A/W)

Displays the commonly used LOGFONT structure members in an easy to interpret format.

LOGFONT demonstration animation


Original Project

This project is based on the CppCustomVisualizer in the Microsoft Concord Extensibility Sample. The original visualizer only handles the FILETIME type, and only shows a local format of it.

Natvis documentation can be found on docs.microsoft.com.

Thanks to Gregg Miskelly for pointing me in the right direction in getting this project to build for Visual Studio 2022.

Notes on additions to the original example

dll folder

_EntryPoint.cpp

Defined new GUIDs for the type visualizers & calls the appropriate converter when the matching GUID is passed (from the debugger).

FileAndSystemTimeViz.cpp/.h

Converter for FILETIME & SYSTEMTIME -> String

PropertyKeyViz.cpp/.h

Converter for PROPERTYKEY -> String

FontInfoViz.cpp/.h

Converter for LOGFONT(A/W) -> String

TargetApp folder

Revised application to illustrate the types handled by this extension.