Вопрос

Я использую макрос ASSERTE для проверки предварительных условий.Согласно его определению, он использует ASSERT_BASE, который, в свою очередь, вызывает _CrtDbgReportW для распечатки сообщения.Куда направляются выходные данные _CrtDbgReportW?

Я предполагаю, что если приложение запускается из отладчика, оно перейдет в окно отладчика.Куда будут идти сообщения, если они не находятся в отладчике?

Это было полезно?

Решение

Выход для _CrtDbgReportW зависит от того, как вы его настроите.По умолчанию он отправляет его в Выходная строка отладки API.

Отладчики перехватывают выходные данные OutputDebugString и обычно отображают их в окне отладчика, как вы предлагаете.

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

Обновлять:Я немного пропустил Windows Mobile.Я все еще считаю, что он выводится в OutputDebugString, но я не знаю ни одного стороннего приложения, которое бы работало.Единственный известный мне способ перехватить вывод OutputDebugString в Windows Mobile — использовать метод Отладка функций ОтладкаАктивныйПроцесс / WaitForDebugEvent чтобы перехватить события OUTPUT_DEBUG_STRING_EVENT и записать их куда-нибудь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top