Иногда можно увидеть информацию в окне с ошибкой.
В режиме пошагового выполнения:
1) Встроенным в компилятор С++ отладчиком. Самый лучший способ, особенно если есть исходники;
2) Внешним дизассемблером-отладчиком, например, W32DASM, если есть только двоичный файл длл.
В обоих случаях к тестируемой длл надо приаттачить МТ в качестве запускающего приложения.
Геморрой это довольно серьезный, к тому же требует определенных навыков, поэтому лучше всего пожужжать логически.
1) Встроенным в компилятор С++ отладчиком. Самый лучший способ, особенно если есть исходники;
2) Внешним дизассемблером-отладчиком, например, W32DASM, если есть только двоичный файл длл.
В обоих случаях к тестируемой длл надо приаттачить МТ в качестве запускающего приложения.
Геморрой это довольно серьезный, к тому же требует определенных навыков, поэтому лучше всего пожужжать логически.
Дело в том что падает длл не сразу а по прошествии времени. отладчиком не отладишь пошагово.
Простого рецепта нет, но последовательность действий такая: ловишь SEH, берешь значение ebp из EXCEPTION_POINTERS::ContextRecord и начинаешь раскручивать стек фрейм за фреймом. Потом показываешь собранный список адресов функций.
Из личного опыта.
Все конечно зависит от конкретной задачи, но для моей сгодилось.
Я сначала написал приложение которе делает с длл все тоже что должен делать эксперт... отладил, и львиная доля глюков ушла.
Все конечно зависит от конкретной задачи, но для моей сгодилось.
Я сначала написал приложение которе делает с длл все тоже что должен делать эксперт... отладил, и львиная доля глюков ушла.
bstone:
Простого рецепта нет, но последовательность действий такая: ловишь SEH, берешь значение ebp из EXCEPTION_POINTERS::ContextRecord и начинаешь раскручивать стек фрейм за фреймом. Потом показываешь собранный список адресов функций.
Да я что то глянул на этот SEH замудрённо там с этими фремами. Можеть быть смоешь выложить пример как ты раскручиваешь стек просматривая фреймы?
elritmo:
Да я что то глянул на этот SEH замудрённо там с этими фремами. Можеть быть смоешь выложить пример как ты раскручиваешь стек просматривая фреймы?
Если замудрено, то лучше не связываться.
Да я что то глянул на этот SEH замудрённо там с этими фремами. Можеть быть смоешь выложить пример как ты раскручиваешь стек просматривая фреймы?
Но вообще полезная штука. Попробую разобраться :) прсото подумал
может у тебя етсь уже набор функций которые ты используешь для
раскрутки стека вызовов функций и не жаль поделиться

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня падает терминал из-за моей DLL, которая вызывается из скрипта. Хочу локализовать место падения в моей DLL. Может быть кто-нибудь подскажет как узнать в программе последовательность вызова функций до момента "падения" терминала. Есть структурная обработка исключений SEH в win32 и я только знаю как узнать где в конкретной функции упала программа но не знаю как раскрутить всю цепчку вызова функций.
Хочу обойтись без логирования в файл в каждой функции.