WinDbg выводит символы на консоль без остановок - PullRequest
0 голосов
/ 03 октября 2008

Я разрабатываю POS-приложение, которое на данный момент используется примерно в 200 местах с использованием компонентов .Net 2.0, WCF и SyncFusion для графического интерфейса.

Два дня назад мы установили приложение в новом месте, и оно внезапно закрылось.

Приложение имеет журнал событий и исключений, поэтому, если с ним что-то происходит, в журнале всегда есть что-то. В этом случае журнал просто обрезается. У нас были подобные ситуации в других местах, но они были чрезвычайно редкими и случались не чаще одного или двух раз, поэтому мы не смогли поймать отладочный дамп.

Компьютер в этом месте имеет немного другую аппаратную настройку, включая разветвитель на LPT-выходе, который предназначен для печати как на принтере POS, так и для вывода результатов на видеомонитор.

В этом месте это происходит примерно каждые 1,5 часа. Я пытался открыть WinDbg и присоединиться к процессу, но вот странная вещь: в области, где есть выходные данные отладки, я вижу сообщения трассировки, которые генерирует мое приложение, но есть также и непрерывный поток символов, особенно: b0 ", который повторяется.

Моя проблема в том, что я не понимаю, откуда взялась эта "b0" и что это такое. Я подозреваю, что это может быть сплиттер, но я не смогу проверить его до воскресенья.

Надеюсь, у кого-нибудь появится идея, как решить эту проблему.

1 Ответ

1 голос
/ 08 октября 2008

Звучит так, как будто вы столкнулись с неуправляемым исключением в приложении, которое может обойти любую запись в журнал, которую вы пытаетесь сделать.

В подобных случаях я настраивал cdb для генерации полного MiniDump во время сбоя, затем запускаю WinDbg с расширениями SOS для анализа дампа.

Из блога MSDN (http://blogs.msdn.com/pfedev/):

Запустите эту команду из каталога «Средства отладки для Windows»:

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

Это настроит отладчик CDB в качестве обработчика по умолчанию для сбоя по ключу реестра AeDebug. Вы можете проверить настройки, перейдя в раздел реестра:

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

И посмотрите эти два значения:

Имя значения: Авто Значение данных: 1

Имя значения: данные значения отладчика: «c: \ debuggers \ cdb.exe» -p% ld -e% ld -g -c «.dump / ma / u c: \ av.dmp; q»

...