Глава 30. WinSight и WinSpector___________________________________86^.

ДИТСЯ. ПОЭТОМУ строка strcpy(tempchar, "Это приведет к GPE!") копирует

строку в неопределенную область памяти. Причина аварийного завершения этой программы состоит в том, что строка, содержащая 20 символов, копируется в блок памяти, отведенный для указателя (4 байта). После такого копирования строка, размещаясь в памяти, замещает информацию, хранившуюся в примыкающей области памяти, что и приводит к нарушению защиты.

Когда появляется окно с сообщением о неисправимой ошибке приложения (UAE) или общей ошибке защиты (GPE), следует нажать кнопку ОК или Close (Закрыть) и закрыть окно сообщения. При этом появится окно диалога приложения WinSpector, содержащее краткий отчет о случившейся аварии. Чтобы прочитать файл отчета, следует снова нажать ОК.

Файл отчета содержит информацию, которая может быть полезной при определении причины аварийного завершения-приложения. WinSpector сохраняет информацию стека вызовов функций, регистров процессора и команд программы, а также системную информацию Windows на момент аварии.

«

Конфигурирование и запуск WinSpector

Перед использованием WinSpector надо убедиться, что библиотека Toolhelp.dll находится в каталоге, указанном в системном пути поиска. Для обеспечения правильной работы следует убедиться, что одновременно с WinSpector не запущены никакие другие программы анализа исключительных ситуаций.

WinSpector запускается из папки Borland C++ двойным щелчком по соответствующему значку. После запуска значок WinSpector появится на панели задач Windows 95 (рис. 30.12).

При нажатии мышью на значок WinSpector появится окно диалога с информацией о состоянии приложения WinSpector, позволяющее выбрать конфигурацию (рис. 30.13).

Для задания конфигурации служит кнопка Set Prefs. При ее нажатии главное окно диалога исчезает, и появляется окно WinSpector Preferences, позволяющее выбрать требуемую конфигурацию (рис. 30.14).

Текстовое окно Directory (каталог) позволяет указать, будет ли создаваться файл отчета. Текстовое окно Viewer (просмотр) позволяет определить, какой текстовый редактор будет использован для просмотра файла отчета. Переключатели Append New Reports (<Alt>+<A>) (добавить новые отчеты) и Overwrite Previous Reports (записать поверх прежних отчетов),, определяют, каким образом будет записан файл отчета. При выборе Append New Reports всякий новый файл отчета добавляется к существующим в выбранном каталоге, в противном случае (Overwrite Previous Reports), при записи нового файла отчета все существующие в выбранном каталоге отчеты WinSpector удаляются и для каждой ошибки создается новый файл.

28*