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
widestring
crate to help improve the debugging experience on Windows.Debugging types such as the
U16String
type 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
widestring
crate such as types defined in theucstring
,ustring
andutfstring
modules.Tests for testing visualizers embedded in the
widestring
crate.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
widestring
crate to enable the unstable debugger_visualizer feature.