Код для записи минидампа вряд ли будет актуален. Основными вещами, которые записывает мини-дамп, являются информация модуля (для получения символов) и полное содержимое всех стеков потоков. Помимо этой базовой информации (которая всегда записывается), ничто другое не имеет значения.
Получение хороших символов (включая файлы PE) имеет решающее значение для обхода стека. Более подробную информацию можно найти здесь: https://randomascii.wordpress.com/2013/03/09/symbols-the-microsoft-way/
Я считаю, что Visual Studio обычно надежно отображает стеки вызовов. Он автоматически отображает соответствующий стек вызовов из записи исключения и упрощает изменение потоков, так что вы можете видеть стеки вызовов всех потоков. Иногда он пытается «скрыть» детали, которые, по его мнению, могут сбить вас с толку - хорошо это или плохо, зависит от вашего уровня квалификации.
Windbg по умолчанию показывает стек вызовов кода, который записал аварийный дамп, а не аварийный стек вызовов. Windbg требует, чтобы вы пошли ".ecxr" или "! Analyse -v", чтобы увидеть стек аварийного отказа. Я нахожу это раздражающим. Windbg также требует больше настроек для того, чтобы быть полезным.
Два отладчика имеют различную эвристику обхода стека. Эта эвристика необходима, например, если вы позвоните или вернетесь к нулевому адресу, так как для этого адреса нет информации о размотке. Для «чистых» сбоев, где ошибочная инструкция находится в обычном коде, эти эвристики менее важны.
Ходьба в стеке почти наверняка улучшилась за последние десять лет. VS 2015 Community Edition очень эффективный и бесплатный, так что вы можете попробовать его.
Если вы используете windbg, то можете попробовать несколько экспериментов:
!vc7fpo - toggles some of the windbg heuristics.
!stackdbg d, 7, f - turns on windbg stack walk
k1 - walks one level of the stack, spitting diagnostics as controlled by !stackdbg
dds esp - dumps the raw contents of the stack, doing a symbol lookup on each pointer
Если вы обновляетесь до VS 2015 и по-прежнему возникают проблемы, вполне вероятно, что сбои обхода стека относятся именно к сбоям, которые вы видите. Если переполнение буфера нарушает стек перед сбоем, то стек вызовов будет безвозвратно поврежден. Ваш вопрос содержит слишком мало информации о том, какие неудачи вы видите, чтобы поставить точный диагноз. Я считаю, что стековые дисплеи обоих отладчиков достаточно надежны, но я также обычно понимаю, почему они иногда терпят неудачу, и когда это происходит, я все равно могу извлечь нужную мне информацию.