У меня где-то есть ошибка, из-за которой мое приложение просто исчезает без сообщения об ошибке или чего-то в этом роде. Приложение просто исчезает с экрана и больше не отображается в диспетчере задач.
Приложение является приложением C ++ Builder (CBuilder2007), и я попробовал все, что у меня возникло, чтобы попытаться поймать эту ошибку. Это происходит очень-очень редко, никогда не падало на моей машине и только один раз на тестовых машинах, которые есть у нас в офисе. С одним из наших клиентов это происходит немного чаще, но мы не нашли способ сделать это или найти обстоятельства, где это происходит. Это тяжелое многопоточное приложение.
Я включил madExcept в этом приложении, но он ничего не ловит. Я уже добавил обработчики, использующие подпрограммы set_terminate
и set_unexpected
RTL, но безуспешно.
Единственная информация, которую я имею, получена из обертки «приложения-загрузчика», чтобы получить код возврата из основного приложения. Он завершается с кодом C0000005
, что, по-моему, означает нарушение прав доступа. Странно то, что, как уже упоминалось, нет даже окна ошибки Windows или чего-то подобного.
Вопрос будет: есть идеи, чтобы попытаться поймать это? Поскольку я даже понятия не имею, где это может происходить (у меня много журналов вокруг приложения, но «след» до падения приложения ни к чему не привел), моя идея с set_terminate
и set_unexpected
Подпрограммы должны были получить трассировку стека, чтобы попытаться увидеть, где была сгенерирована ошибка, но пока эти подпрограммы вообще не вызываются (по крайней мере, единственный раз, когда это происходило здесь, в моем офисе)
Заранее спасибо
[Обновление 22.Sept.2009] Используя AddVectoredHandlerException, я смог получить колл-стэк от сбоя, и теперь я могу начать пытаться изолировать и исправить ошибку. Спасибо !!!