Ontem tive que depurar uma parte do codigo que nao era minha, mas que estava me bloqueando.
Era uma parte chata, numa classe-base de vaaarias classes. Era mais ou menos assim:
OnSomething(); // definido na classe derivada
ASSERT(SomethingElse(), “Esta classe precisa chamar __super::OnSomething()!”);
O problema era que quando o assert era disparado, ja era tarde demais! Eu estava na classe base e nao tinha como saber em qual instancia eu estava.
Pra resolver o problema, coloquei um breakpoint condicional com uma contagem de 100.000 (tanto faz o numero, desde que seja alto) na primeira linha e rodei. Assim que voou, anotei o numero (380). Mudei o contador pra 380 e rodei de novo.
Bingo! Parei antes de dar a craca! F11 (Step into) e pronto, descobri o metodo bugado!
Imagina se eu tivesse que contar na mao, a trabalheira que seria? 380 vezes?! Com certeza eu ia perder a conta!