2009-05-27 7 views
1

J'utilise la macro ASSERTE pour vérifier les pré-conditions. Selon sa définition, il utilise ASSERT_BASE, qui à son tour appelle _CrtDbgReportW pour imprimer le message. Où va la sortie de _CrtDbgReportW?Où _CrtDbgReportW ouput dans Windows Mobile?

Je suppose que si l'application est démarrée à partir du débogueur, elle irait à la fenêtre du débogueur. Où iraient les messages si ce n'est pas sous débogueur?

Répondre

1

La sortie pour _CrtDbgReportW dépend de la façon dont vous l'avez configuré. Par défaut, il l'envoie à l'API OutputDebugString.

Les débogueurs interceptent la sortie OutputDebugString et les affichent normalement dans la fenêtre du débogueur comme vous le suggérez.

Il existe également des applications qui piègent la sortie comme DebugView que vous pouvez utiliser pour les applications PC.

Mise à jour: J'ai raté le bit Windows Mobile. Je continue d'affirmer que c'est OutputDebugString, mais je ne connais aucune application tierce qui fonctionne. La seule façon que je connaisse de piéger la sortie OutputDebugString sous Windows Mobile est d'utiliser le Debugging FunctionsDebugActiveProcess/WaitForDebugEvent pour intercepter les événements OUTPUT_DEBUG_STRING_EVENT et de les écrire quelque part.