Debugger Visualizer(.natvis) を導入する #995
Merged
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.
PR の目的
Debugger Visualizer(.natvis)
を導入することにより、デバッグ用のモニター変数を用意しなくても、任意型のデータを参照できるようにします。
.natvis活用の具体例として、CNativeWのデバッグ専用メンバm_pDebugDataを置き換えます。
カテゴリ
PR の背景
元ネタは #988
CDocLine の容量削減
です。容量削減のためデバッグ用モニター変数が純粋削除されようとしていたので、代替を提供するべく.natvisの話が出てきました 😄
PR のメリット
プログラム的なデータ構造と、デバッグ表示を別物として扱うことができるようになります。
(モニター変数を用意しなくても、任意型のデータを参照できるようになります。)
既存のモニター変数を躊躇なく削ることができます 😄
PR のデメリット (トレードオフとかあれば)
実質的なデメリットはないと思います。
.natvis非対応のビルド環境(MinGW-w64-gccなど)にとっては、単にDebug用参照変数を削る変更になります。
元来、本流でないビルド環境を使って開発を行うには、それなりの技術が必要なので「影響なし」と考えてよいと思います。
PR の影響範囲
アプリ(=サクラエディタ)のデバッグに影響します。
アプリの機能には影響しません。
関連チケット
#988
#782
参考資料
https://blogs.msdn.microsoft.com/vcblog/2015/09/28/debug-visualizers-in-visual-c-2015/
https://devblogs.microsoft.com/cppblog/project-support-for-natvis/