Есть ли какой-нибудь правильный способ установить условную точку останова в Visual Studio 2015, чтобы она ломалась всякий раз, когда указатель на базовый класс указывает на указанный подкласс тип? (см. пример скриншота ниже)
Я не хочу тратить на это время на написание кода утилиты отладки и не хочу взламывать данные виртуальных таблиц.
Два способа сделать это:
Добавьте ниже как условие точки останова в вашей IDE:
dynamic_cast<DerivedClassYouWantToBreak*>(ptr.get())
Или добавьте приведенный ниже код в ваш код и скомпилируйте:
if (dynamic_cast<DerivedClassYouWantToBreak*>(ptr.get()))
{
int breaksHere = 0; // put breakpoint here
}
Других решений пока нет …