Как отладить Visual C ++ Runtime Ошибка - PullRequest
4 голосов
/ 13 января 2009

Я пишу COM-объект C ++ в Visual Studio 2008, который является вспомогательным объектом браузера Internet Explorer. В последнее время при работе в IE в IE часто появлялось диалоговое окно с заголовком «Библиотека времени выполнения Microsoft Visual C ++» с сообщением об ошибке «Ошибка времени выполнения!» и далее сказать, что «Приложение запросило среду выполнения, чтобы прекратить его необычным способом. Пожалуйста, обратитесь в службу поддержки приложения для получения дополнительной информации». В отличие от обычного, в этом диалоговом окне есть только кнопка ОК, но нет кнопки отладки, поэтому IE завершается, и у меня не остается ничего, кроме трассировки стека или даже намека на то, какая часть моего кода могла быть настолько ошибочной. Я не уверен, , где в моем коде происходит сбой.

Как можно устранить проблему «Ошибка времени выполнения»? Каковы возможные причины ошибки во время выполнения? (возможно, ошибки, связанные с памятью?) Какие проблемы я должен проверять в своем коде, чтобы попытаться устранить этот сбой? Мне нужны некоторые идеи о том, как решить эту проблему, она немного неуловима.

Ответы [ 2 ]

4 голосов
/ 13 января 2009

Когда вы увидите это диалоговое окно, запустите VS2008 с вашим проектом COM-объекта. Затем используйте меню Debug-> Attach для обработки, чтобы присоединить отладчик к процессу IE, в который загружен ваш COM-объект. Затем перейдите к процессу (Debug-> break all) и вы получите трассировку стека.

3 голосов
/ 13 января 2009

Это бомбы из-за необработанного исключения. Это дает вам возможность остановить отладчик при исключении первого шанса, прямо в точке, где оно поднято. Откройте ваш проект, сделайте iexplorer.exe программой запуска. Отладка + Исключения, проверьте флаг Брошенного на неуправляемых исключениях. Сделайте сбой, чтобы получить точку останова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...