2008-10-03 6 views
0

Je développe actuellement une application POS qui est utilisée dans environ 200 emplacements en utilisant les composants .Net 2.0, WCF et SyncFusion pour l'interface graphique.WinDbg génère des caractères pour la console sans arrêt

Il y a deux jours, nous avons installé l'application dans un nouvel emplacement et elle subissait une interruption soudaine de l'application. L'application a un journal d'événements et d'exceptions en cours d'exécution, donc si quelque chose arrive, il y a toujours quelque chose dans le journal. Dans ce cas, le journal est simplement coupé. Nous avons eu des situations similaires dans d'autres endroits, mais elles étaient extrêmement rares et ne sont pas arrivées plus d'une ou deux fois, donc nous n'avons pas pu attraper un vidage de débogage.

L'ordinateur à cet emplacement a une configuration matérielle légèrement différente, y compris un séparateur sur la sortie LPT qui est destiné à être utilisé à la fois pour imprimer sur l'imprimante POS et afficher la sortie sur un moniteur vidéo.

Dans cet endroit cependant, il se passe environ toutes les heures et demie. J'ai essayé d'ouvrir WinDbg et de l'attacher au processus, mais voici la chose étrange, dans la zone où il y a la sortie de débogage, je vois les messages de trace que mon application produit, mais il y a aussi un flux continu de caractères. b0 "qui se répète. Mon problème est que je ne comprends pas d'où vient "b0", et qu'est-ce que ça veut dire. Je soupçonne que cela pourrait être le séparateur, mais je ne serai pas en mesure de le tester jusqu'à dimanche.

Espérons que quelqu'un aura une idée de comment résoudre ce problème.

Répondre

1

Il semble que vous rencontriez une exception non gérée dans l'application qui pourrait contourner toute journalisation que vous essayez de faire.

Dans de tels cas, j'ai mis en place cdb pour générer une MiniDump complète au moment du crash, puis j'ai exécuté WinDbg avec les extensions SOS pour analyser la sauvegarde.

D'un blog de MSDN (http://blogs.msdn.com/pfedev/):

Exécutez cette commande à partir de vos outils de débogage pour répertoire Windows:

C:\debuggers> cdb -iaec "-c \".dump /u /ma c:\dumps\av.dmp;q\"" 

Cela configurera débogueur CDB comme gestionnaire par défaut pour accident par clé de Registre AeDebug. Vous pouvez vérifier le réglage en naviguant à clé de Registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 

Et voir ces deux valeurs:

Nom de la valeur: Auto Données de la valeur: 1

Nom de la valeur: Débogueur Données de la valeur: « c: \ debuggers \ cdb.exe "-p% ld -e% ld -g -c" .dump/ma /uc:\av.dmp;q "

Questions connexes