Add Natvis visualizations for the some widestring types
#29
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change adds Natvis visualizations for some types defined in the
widestringcrate to help improve the debugging experience on Windows.Debugging types such as the
U16Stringtype under a Windows debugger, (WinDbg or the Visual Studio debugger), the actual string is not shown at first glance. This takes digging through the internal type and enforcing conversions to see the actual data. The Rust compiler does have Natvis support for some types, but this is limited to some of the core libraries and not supported for external crates.rust-lang/rfcs#3191 proposes adding support for embedding debugging visualizations such as Natvis in a Rust crate. This RFC has been approved, merged and implemented.
Natvis is a framework that can be used to specify how types should be viewed under a supported debugger, such as the Windows debugger (WinDbg) and the Visual Studio debugger.
This PR adds:
Natvis visualizations for core types in the
widestringcrate such as types defined in theucstring,ustringandutfstringmodules.Tests for testing visualizers embedded in the
widestringcrate.Updates to the CI pipeline to ensure tests for visualizers are run so they do not break silently.
Updates to the Makefile.toml to enable debuginfo when running debugger_visualizer tests since they will need debugging info and symbols to be present.
A new debugger_visualizer feature for the
widestringcrate to enable the unstable debugger_visualizer feature.