Прежде всего я должен сказать, что вы должны быть мазохистом, чтобы использовать WinDbg! Если вы пишете код на C ++, вы не разрабатываете драйверы, даже в этом случае есть более достойные отладчики. Выбрось это дерьмо, правда!
Чтобы решить эту проблему, я бы сначала использовал статическую проверку кода для анализа кода. PC-Lint - дешевый. Затем запустите приложение в динамической проверке кода (например, Boundschecker или Purify).
Только если бы вы не смогли найти код преступника, я бы начал там, где вы находитесь. Инвестирование в такой инструмент действительно стоит денег, если вы пишете приложения, которые должны работать дни и дни. Он позволяет быстрее проверить код (не на 100%) перед тем, как начинать длительные тесты, чтобы выяснить, что бы программа проверки кода нашла в течение нескольких минут ...
С Boundchecker вы можете использовать Marks, он использует аналогичную функцию (или, может быть, точно такую же?), О которой рассказывает Стив Таунсенд. С его помощью вы увидите все блоки памяти, все еще сохраняющиеся в памяти со времени последней отметки. Это довольно утомительно в больших приложениях, так как в итоге вы получаете большой бак блоков памяти ... Но если вы задали этот вопрос, то вы, вероятно, уже настолько отчаялись, что хотели бы попробовать его; -)