Допустим, у меня есть базовый класс 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
}
I ' Мне удалось добиться этого, протестировав указатель виртуальной таблицы в состоянии точки останова, но должен быть лучший (более простой) способ.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Изменение исходного кода, как было предложено в комментариях, не является чем-то вроде решение, которое я ищу. Это нужно делать только с помощью отладчика VC ++.