https://github.com/adn-devtech/objectarx-natvis
MSVC Debugger Type Formatting (Natvis files) for AutoCAD ObjectARX
https://github.com/adn-devtech/objectarx-natvis
Last synced: 2 months ago
JSON representation
MSVC Debugger Type Formatting (Natvis files) for AutoCAD ObjectARX
- Host: GitHub
- URL: https://github.com/adn-devtech/objectarx-natvis
- Owner: ADN-DevTech
- Created: 2014-11-04T19:48:12.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-01-07T16:24:37.000Z (about 11 years ago)
- Last Synced: 2025-02-05T07:17:01.395Z (about 1 year ago)
- Homepage:
- Size: 153 KB
- Stars: 6
- Watchers: 32
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
ObjectARX-Natvis
================
MSVC Debugger Type Formatting (NatVis files) for AutoCAD ObjectARX
Visual Studio 2012 has a new mechanism for creating custom views of native objects.
The old autoexp.dat files are replaced with new xml-based .natvis files.
See this MSDN natvis article for details:
http://msdn.microsoft.com/en-us/library/jj620914.aspx
For info on the old autoexp.dat mechanism, see Kean's blog:
- July 2006 (http://through-the-interface.typepad.com/through_the_interface/2006/07/advanced_visual.html)
- August 2006 (http://through-the-interface.typepad.com/through_the_interface/2006/08/more_fun_with_a.html)
The debugger searches for .natvis files in these two locations:
- %VSINSTALLDIR%\Common7\Packages\Debugger\Visualizers (requires admin access)
- %USERPROFILE%\My Documents\Visual Studio 2013\Visualizers\
The VSINSTALLDIR location already contains several such files,
including atlmfc.natvis and stl.natvis, which you are probably already
using during debugging.
Here is a preliminary acad.natvis file for use with VS 2012 (VC11) and later.
It initially supports AcString, AcArray and resbuf. Future candidates for support
could include AcRxValue, AcDbObject, AcDbObjectId, AcGe*, etc.
To see how big an improvement it makes in variable viewing, here is how the
debugger shows several kinds of AcStrings by default, without the natvis file:
+ acs1 {mnFlags=4 '\x4' mptr={mnPad2=0x0000004eaddde519 "" mpwszData=0x0000004ebabe1860 L"This is an AcString" ...} ...} AcString
+ acs2 {mnFlags=3 '\x3' mptr={mnPad2=0x0000004eaddde549 "" mpwszData=0x0000004ebabe1920 L"桴獩椠湡愠獮捁瑓楲杮ﷲ﷽ꮫꮫꮫꮫꮫꮫꮫﺫﻮﻮﻮﻮﻮ" ...} ...} AcString
+ acs3 {mnFlags=1 '\x1' mptr={mnPad2=0x0000004eaddde579 "a" mpwszData=0xcccccccccccccccc ...} ...} AcString
+ acs4 {mnFlags=2 '\x2' mptr={mnPad2=0x0000004eaddde5a9 "" mpwszData=0xcccccccccccccccc ...} ...} AcString
+ acs5 {mnFlags=0 '\0' mptr={mnPad2=0x0000004eaddde5d9 "" mpwszData=0x0000000000000000 mpszData=0x0000000000000000 ...} ...} AcString
+ acs6 {mnFlags=5 '\x5' mptr={mnPad2=0x0000004eaddde609 "" mpwszData=0x0000004eb4cf2780 L"■듏N" mpszData=0x0000004eb4cf2780 " %Ï´N" ...} ...} AcString
And here is how the same values are shown with acad.natvis:
+ acs1 L"This is an AcString" AcString
+ acs2 "this is an ansi AcString" AcString
+ acs3 "a" AcString
+ acs4 L"u" AcString
+ acs5 "" AcString
+ acs6 L"this is both unicode and ansi" AcString