問題タブ [natvis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1556 参照

visual-studio-2015 - Natvis 浮動小数点形式

昨日、 MSVC の "Natvis" ツールを発見しました。このツールを使用すると、デバッガーを微調整して、型をインテリジェントな方法で表示できます。私はすぐに数学ライブラリの装飾に着手しました。

これが私の 3*3 マトリックス クラスの外観です (初期化されていないデータ)。

マトリックス 3x3

ゴージャスですね。私の午後は後悔がありませんでした。

ただし、ここで、もう少し複雑なケースに進みます。

マトリックス 4x4

ご覧のとおり、数字は一致しません。負の数を正の数と一致させる厄介な方法 を見つけましたが、私の方法にはこれに近づく方法がありません(これが私の基本的な概要です):

何が起こっているかというと、印刷される桁数は数字によって異なります。

したがって、私の質問:デバッグ用に明確に定義された桁数を出力するように Natvis を構成できますか? あるいは、巧妙な回避策がありますか?


PS: 私がこれを機能させることができれば、".natvis" ファイルを生成する Python スクリプトを喜んでアップロードします。

0 投票する
1 に答える
1098 参照

c++ - Visual Studio .natvis ファイル - 行列

Visual Studio 2013 デバッガーでマトリックス クラスを表示しようとしています。クラスの関連部分は次のとおりです。

これを多次元配列として視覚化しようとしていますが、配列として格納されていない場合に次元のサイズを指定する方法がわかりません。これは私がしようとしているものです:

しかし、次元をリテラルとして、または個別の変数として、インデックス付けされる配列としてのみ与える方法はないようです。これを行う方法があるかどうか誰かが知っていますか?

0 投票する
1 に答える
978 参照

visual-c++ - C++ 共用体/構造体用の Natvis ビジュアライザー

msvc natvis ビジュアライザーを使用してパーソナル ビジュアライザーを実装しようとしています。問題は、ユニオンに関してそれを行う方法がわからないことです。2 つの構造体 (および)valueの和集合を含む構造体 ( ) の単純な例:string1string2

natvis で次のコードを使用して、string1 と string2 の 2 つの型を作成できます。

しかし、「値」変数 (共用体) がある場合、これらの型を自動的にプレビューするにはどうすればよいですか。私はこの点に固執しています:(変数の型が string1 を示すために 1 、 string2 を示すために 2 に等しいと仮定します)。私はやった:

したがって、タイプの値に応じて、デバッグで正しいビジュアライザーが表示されるようにしたいと思います。natvis とのユニオンの扱い方を説明してもらえますか? またはどこかに例がありますか?(公式の msvc ドキュメントはユニオンを考慮していません..) 明らかに、この例は意味がありませんが、私ははるかに複雑なユニオンを持っているので、理解するだけです。

0 投票する
1 に答える
1064 参照

c++ - Natvis TreeItems 定義がマップ上で機能しない

Visual Studio 2015 の natvis 拡張機能に問題があります。私の努力では、マップにアクセスする必要がありTreeItemsますが、natvis のノードが機能していないようです。私は実際にサンプルコードを使用しています:

しかし、マップ <int,int> でこのエラーが発生します。

デバッグ モードでビルドしており、最適化が無効になっていることを再確認しました (\Od)

msvc2015 の natvis 定義が変更された可能性がありますが、何も見つかりませんでした。サンプル コードは機能しないはずですが、機能しない例から作業を開始するのは難しいと思います。