2017-11-17 10 views
4

私の会社では、Visual Studioでメモリダンプをデバッグするためのネイティブビジュアライザー(.natvisファイル)を使用しています。ネイティブのビジュアライザーを使用して、さまざまなソリューションで同様のクラス名を処理する方法

プロジェクトごとに等しいクラス名があるので、プロジェクト定義に.natvisファイルを含めることを考えています。これは動作しているようです:.natvisファイルはシンボルファイル(* .pdb)に埋め込まれます。ビルド、それは良いことです。

残念ながら、現在はどちらのカスタマイズも不可能に思えます:両方の.natvisファイル(PC上のファイルとシンボルファイル内のファイル)からシンボルファイル内のものが優先されます。カスタマイズはもはや可能であるようです。

カスタマイズ可能な.natvisファイルを保持するために、私たちは.natvisreloadシーケンスを変更しようと考えています。これが可能か、これには別の方法がありますか(.natvisreloadコマンドにパラメータを追加するなど)?私はちょうど私のPC上で見つけnatvisスキーマで述べたように

+0

natvisファイルをメインモジュールではなく別のモジュールに埋め込むことはできますか? – KonstantinL

+0

はい、可能ですが、リンク中にシンボルファイルに埋め込まれて後で変更できなくなるという問題があります。 – Dominique

+0

次に、あるモジュールを別のモジュールに置き換えます(これにより、異なるnatvisを持つ異なるpdbが与えられます)。 – KonstantinL

答えて

3

私の質問は、お答えすることは不可能であるように思わ:

ロードされたプロジェクトの一部であるファイルは、常に内のファイルの上に 優先されますnatvisあなたがここに見ることができるように、ユーザーは、同じnatvisファイル内のさまざまなソリューション(アプリケーション)を区別することが可能であると思われるディレクトリ

natvis:

<!-- Solution1 --> 
    <Type Name="Class_Name"> 
    <Version Name="Solution1.exe" Min="1.0" Max="99.99"/> 
    <DisplayString>Class_Name Solution1 {m_strName}, {m_iID} </DisplayString> 
    </Type> 

    <!-- Solution2 --> 
    <Type Name="Class_Name"> // in Solution2 Class_Name has no strName 
    <Version Name="Solution2.exe" Min="1.0" Max="99.99"/> 
    <DisplayString>Class_Name Solution2 identifier {m_iID}</DisplayString> 
    </Type> 
関連する問題