670___________________________Часть V. Инструментарий программиста

Dump), то он создает файл Winspctr.bin, который утилита DFA преобразует в удобочитаемый вид.

Поскольку для каждого сеанса Windows возможно существование лишь одного файла Winspctr.bin, следует запускать утилиту DFA немедленно после того, как произошла неисправимая ошибка приложения. Например, если UAE случилась трижды подряд, будет создано три файла отчета, но двоичные данные будут сохранены только для первого отчета. Именно поэтому рекомендуется запускать утилиту DFA непосредственно после первой ошибки.

Запускается утилита DFA с помощью следующей командной строки:

DFA [опили] <WINSPCTR.LOG> [WINSPCTR.BIN]

Опции командной строки DFA:

/О [выходной файл] (по умолчанию DFA. OUT)

/D (DFA выводит шестнадцатеричный дамп сегмента данных).

«

При использовании утилиты DFA также необходим файл отчета Winspctr.log, созданный программой WinSpector. Имея Winspctr.log, вы получите имена исходных файлов и номера строк, а из Winspctr.bin — информацию о переменных.

Если утилита DFA запущена лишь с одним файлом Winspctr.log, то генерируется минимальная информация о состоянии стека, содержащая только адреса. Имена объектов завершившегося приложения и номера строк добавляются в отчет в том случае, когда имеется информация отладчика Turbo Debugger, либо прямо в исполняемом файле, либо в отдельном .tds файле.

При наличии файла Winspctr.bin утилита DFA генерирует дополнительную информацию, включающую сведения о стековых переменных, в том числе структурах и массивах, а также о типах, значениях и адресах переменных.

Файл отчета приложения WinSpector

При аварийном завершении приложения WinSpector создает файл отчета Winspctr.log. Файл отчета может быть полезен для выяснения причин аварии. Последняя версия файла отчета может быть прочитана прямо из окна диалога Latest UAE.

Чтобы просмотреть отчет, загрузите WinSpector из панели задач. Заметьте, что текст в окне диалога изменился, указывая, что произошла ситуация UAE, и время, когда это случилось (рис. 30.16). Чтобы увидеть файл отчета, нажмите в окне кнопку View Log (просмотреть отчет).

Файл отчета в листинге 30.3 был получен при аварийном завершении программы, вызвавшей неисправимую ошибку, показанную на рис. 30.11. Пер-