Вопрос к тем кто знает как показать стек вызовов функций в DLL

Знаю что этот сайт не программистов на C++. Но на форуме встречаются люди сведующие.
У меня падает терминал из-за моей DLL, которая вызывается из скрипта. Хочу локализовать место падения в моей DLL. Может быть кто-нибудь подскажет как узнать в программе последовательность вызова функций до момента "падения" терминала. Есть структурная обработка исключений SEH в win32 и я только знаю как узнать где в конкретной функции упала программа но не знаю как раскрутить всю цепчку вызова функций.
Хочу обойтись без логирования в файл в каждой функции.

Иногда можно увидеть информацию в окне с ошибкой.

В режиме пошагового выполнения:
1) Встроенным в компилятор С++ отладчиком. Самый лучший способ, особенно если есть исходники;
2) Внешним дизассемблером-отладчиком, например, W32DASM, если есть только двоичный файл длл.
В обоих случаях к тестируемой длл надо приаттачить МТ в качестве запускающего приложения.
Геморрой это довольно серьезный, к тому же требует определенных навыков, поэтому лучше всего пожужжать логически.

Дело в том что падает длл не сразу а по прошествии времени. отладчиком не отладишь пошагово.

Простого рецепта нет, но последовательность действий такая: ловишь SEH, берешь значение ebp из EXCEPTION_POINTERS::ContextRecord и начинаешь раскручивать стек фрейм за фреймом. Потом показываешь собранный список адресов функций.

Из личного опыта.

Все конечно зависит от конкретной задачи, но для моей сгодилось.

Я сначала написал приложение которе делает с длл все тоже что должен делать эксперт... отладил, и львиная доля глюков ушла.
bstone:

Простого рецепта нет, но последовательность действий такая: ловишь SEH, берешь значение ebp из EXCEPTION_POINTERS::ContextRecord и начинаешь раскручивать стек фрейм за фреймом. Потом показываешь собранный список адресов функций.


Да я что то глянул на этот SEH замудрённо там с этими фремами. Можеть быть смоешь выложить пример как ты раскручиваешь стек просматривая фреймы?
elritmo:

Да я что то глянул на этот SEH замудрённо там с этими фремами. Можеть быть смоешь выложить пример как ты раскручиваешь стек просматривая фреймы?
Если замудрено, то лучше не связываться.
Но вообще полезная штука. Попробую разобраться :) прсото подумал может у тебя етсь уже набор функций которые ты используешь для раскрутки стека вызовов функций и не жаль поделиться