Da dove viene l'uscita _CrtDbgReportW in Windows Mobile?
-
06-09-2019 - |
Domanda
Sto usando ASSERTE macro per verificare la presenza di pre-condizioni. Secondo la sua definizione si sta usando ASSERT_BASE, che a sua volta chiama _CrtDbgReportW per stampare il messaggio. Da dove viene l'uscita _CrtDbgReportW va?
Parto dal presupposto che, se l'applicazione viene avviata dal debugger, che sarebbe andata finestra debugger. Dove sarebbero i messaggi vanno se non è sotto debugger?
Soluzione
L'uscita per _CrtDbgReportW dipende come lo si imposta. Di default lo invia al OutputDebugString API.
I debugger intrappolare l'uscita OutputDebugString e normalmente li visualizza nella finestra del debugger come lei suggerisce.
Ci sono anche applicazioni che intrappolano l'output come DebugView che è possibile utilizzare per le applicazioni per PC.
Aggiornamento: ho perso il bit di Windows Mobile. Ho ancora beleave che è uscita al OutputDebugString, ma non so di qualsiasi applicazione di terze parti che funziona. L'unico modo che conosco per intrappolare l'uscita OutputDebugString sotto Windows Mobile è di utilizzare la funzioni di debug DebugActiveProcess / WaitForDebugEvent per intrappolare gli eventi OUTPUT_DEBUG_STRING_EVENT e scriverli fuori da qualche parte