Точки останова, которые условно ломаются, когда указатель на базовый класс указывает на определенный подкласс

Есть ли какой-нибудь правильный способ установить условную точку останова в Visual Studio 2015, чтобы она ломалась всякий раз, когда указатель на базовый класс указывает на указанный подкласс тип? (см. пример скриншота ниже)

Я не хочу тратить на это время на написание кода утилиты отладки и не хочу взламывать данные виртуальных таблиц.

введите описание изображения здесь

1

Решение

Два способа сделать это:

Добавьте ниже как условие точки останова в вашей IDE:

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

Или добавьте приведенный ниже код в ваш код и скомпилируйте:

if (dynamic_cast<DerivedClassYouWantToBreak*>(ptr.get()))
{
int breaksHere = 0; // put breakpoint here
}
1

Другие решения

Других решений пока нет …