Где выводится _CrtDbgReportW в Windows Mobile?
-
06-09-2019 - |
Вопрос
Я использую макрос ASSERTE для проверки предварительных условий.Согласно его определению, он использует ASSERT_BASE, который, в свою очередь, вызывает _CrtDbgReportW для распечатки сообщения.Куда направляются выходные данные _CrtDbgReportW?
Я предполагаю, что если приложение запускается из отладчика, оно перейдет в окно отладчика.Куда будут идти сообщения, если они не находятся в отладчике?
Решение
Выход для _CrtDbgReportW зависит от того, как вы его настроите.По умолчанию он отправляет его в Выходная строка отладки API.
Отладчики перехватывают выходные данные OutputDebugString и обычно отображают их в окне отладчика, как вы предлагаете.
Существуют также приложения, которые перехватывают вывод, например Дебагвиев который вы можете использовать для приложений ПК.
Обновлять:Я немного пропустил Windows Mobile.Я все еще считаю, что он выводится в OutputDebugString, но я не знаю ни одного стороннего приложения, которое бы работало.Единственный известный мне способ перехватить вывод OutputDebugString в Windows Mobile — использовать метод Отладка функций ОтладкаАктивныйПроцесс / WaitForDebugEvent чтобы перехватить события OUTPUT_DEBUG_STRING_EVENT и записать их куда-нибудь.