Сбой приложения C ++, с чего начать искать? msvcr90.dll

Это очень открытый вопрос, и я на самом деле просто ищу способ подойти к поиску проблемы.

Приложение работает в течение дня или около того, а затем будет сбой во время использования. Смысл приложения в том, что оно каждый раз не совпадает. Память, используемая приложением, не увеличивается.

C ++ не является моим стандартным языком разработки, поэтому любые указатели приветствуются.

Ошибка времени выполнения, которую мне дают, подробно описана ниже. Погуглив это, я вижу, что 40000015 это общий я не знаю, что произошло ошибка стиля. Могу ли я в любом случае использовать дополнительную информацию (1-4), чтобы помочь найти проблему?

Любая помощь высоко ценится!

Спасибо

Problem signature:
Problem Event Name:         APPCRASH
Application Name:           Main.exe
Application Version:        1.1.10.0
Application Timestamp:      5278d640
Fault Module Name:          MSVCR90.dll
Fault Module Version:       9.0.30729.4940
Fault Module Timestamp:     4ca2ef57
Exception Code:             40000015
Exception Offset:           0005beae
OS Version:                 6.1.7601.2.1.0.256.48
Locale ID:                  2057
Additional Information 1:   3793
Additional Information 2:   379382cf89267e4a4b730ab2a7cc6828
Additional Information 3:   f05b
Additional Information 4:   f05b042c097ccdb870355bd0f539be8d

Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt

2

Решение

Я бы начал с запуска отладчика и оставил его на один день. Не забудьте разрешить перехват всех исключений — в моем VS 2005 в Debug-> Exceptions добавьте обработчик для исключения 40000015.

Если вы не можете запустить его под отладчиком, т.е. это происходит только на клиентском ПК (все еще вы можете использовать удаленную отладку), затем вы можете реализовать обработчик исключений, используя: AddVectoredExceptionHandler, затем используйте StackWalk64 для регистрации стека вызовов. Если вы можете скомпилировать с символами, то такой стек будет содержать полный путь к источнику исключения. Он будет внутри MSVCR90.dll, но, вероятно, возникнет где-то в вашем коде. Если вы не можете включить символы, вы всегда можете использовать файлы .map или windbg с локально сохраненными файлами .pdb. Конечно, это большая работа, особенно если C ++ не является вашим основным языком, поэтому первое предложение лучше для вас.

Хорошо, вы также можете использовать MiniDumpWriteDump и затем использовать windbg вместо StackWalk64.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]