1

Visual Studio 2015で条件付きブレークポイントを設定する方法はありますか?基本クラスへのポインタが指定されたサブクラスを指しているときはいつでもブレークするタイプ? (下のサンプルスクリーンショットを参照してください)ベースクラスへのポインタが特定のサブクラスを指しているときに条件付きでブレークするブレークポイント

私はこのためにデバッグユーティリティーコードを書く時間を費やさず、仮想テーブルのデータをハックしたくありません。

enter image description here

それを行うには

答えて

1

二つの方法:

dynamic_cast<DerivedClassYouWantToBreak*>(ptr.get()) 

またはあなたのコードにコードの下に追加してコンパイルします:

if (dynamic_cast<DerivedClassYouWantToBreak*>(ptr.get())) 
{ 
    int breaksHere = 0; // put breakpoint here 
} 
あなたのIDEでのブレークポイントの条件として、以下の追加

+1

あなたはちょうど条件付きブレークポイントのテストで何を書くかを言った。 – Blindy

+0

@Blindy素晴らしい! OPのために私の答えを編集しても構いません。 – Griffin

+0

派生クラスのタイプを変更する場合は、コードを記述して再コンパイルしてから再コンパイルする必要があります。 今私が使用しているブレークポイント条件は、* (void **)ptr.get()!= <必要なサブクラスのvtableへのポインタ> しかし、これは非常にハッキーであり、ポインタはおそらく変更されます次の実行のために – bigD

関連する問題