Скажем, у меня есть базовый класс A и два производных класса B и C. Класс A имеет некоторый метод, называемый f().
Есть ли способ установить условную точку останова в A:: f() в visual studio, которая будет ударяться только тогда, когда мой 'this' на самом деле является экземпляром класса C?
Например
void A::f()
{
some code and a breakpoint
}
void foo(A* a)
{
a->f();
}
void bar()
{
A a;
B b;
C c;
foo(&a); // breakpoint isn't hit
foo(&b); // breakpoint isn't hit
foo(&c); // breakpoint is hit
}
Мне удалось достичь этого, проверив указатель виртуальной таблицы в состоянии точки останова, но там должен быть лучший (более простой) способ.
Спасибо заранее.
EDIT: изменение исходного кода, как было предложено в комментариях, не является решением, которое я ищу. Это нужно делать только с помощью отладчика VС++.