Настройка проверок во время выполнения машинного кода
При компиляции с параметром /RTC (проверки времени выполнения) или использовании прагмы runtime_checks
библиотека времени выполнения языка C предоставляет проверки во время выполнения машинного кода. В некоторых случаях необходимо настроить проверки времени выполнения:
для направления сообщений о проверке, осуществляемой во время выполнения, в файл или в другое место назначения, отличающиеся от используемого по умолчанию;
чтобы определить место назначения для сообщения о проверке, осуществляемой во время выполнения отладчиком стороннего поставщика;
для представления сообщений о проверке во время выполнения из программы, скомпилированной с рабочей версией библиотеки времени выполнения языка C. Для представления сообщения об ошибке во время выполнения окончательные версии библиотеки не используют
_CrtDbgReportW
. Вместо этого они отображают для каждой ошибки времени выполнения диалоговое окно Утверждение.Для настройки процесса проверки ошибок во время выполнения можно:
написать функцию, сообщающую об ошибке времени выполнения. Дополнительные сведения см. в статье "Практическое руководство. Создание функции отчетов об ошибках во время выполнения".
настроить место назначения для сообщения об ошибке;
запросить сведения об ошибках проверок времени выполнения;
Настройка места назначения для сообщения об ошибке
Если для уведомления об ошибках используется функция _CrtDbgReportW
, то для определения места назначения сообщений об этих ошибках можно использовать _CrtSetReportMode
.
Когда применяется пользовательская функция, сообщающая об ошибках, для связывания ошибки и типа сообщения следует использовать функцию _RTC_SetErrorType
.
Запрос сведений о проверках времени выполнения
_RTC_NumErrors
возвращает количество типов ошибок, обнаруженных в процессе проверки во время выполнения. Для получения краткого описания каждой ошибки можно использовать цикл от 0 до возвращенного _RTC_NumErrors
значения, передавая номер итерации на каждом шаге в функцию _RTC_GetErrDesc
. Дополнительные сведения см. в статьях _RTC_NumErrors и _RTC_GetErrDesc.