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

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

Листинг 30.4 содержит пример разделов файла отчета Registers (регистры) и Message Queue (очередь сообщений). Раздел Registers содержит значения, находившиеся в момент аварии в регистрах общего назначения. Раздел Message Queue содержит последнее сообщение, полученное приложением в процессе работы и обрабатывавшееся в момент аварии, а также сообщения, ожидавшие в очереди. Для примера из листинга 30.4. на момент аварийного завершения приложения сообщений в очереди не оказалось, на что и указывает В файле отчета фраза "No messages in queue".

h08721.jpg

Registers:

ИХ ОС97

BX 1034

CX 0013

DX 1034

SI OOBA

DI OOCD

SP 25D6

BP 25DC

IP 04F4

FL 0246

CS 2F87 Limit: 60FF execute/read

DS OC97 Limit: 361F read/write

ES OC97 Limit: 361F read/write

SS OC97 Limit: 361F read/write

No messages in gueue

Листинг 30.5 показывает разделы Tasks (задачи) и Modules (модули) из файла отчета. Раздел Tasks содержит список всех программ, запущенных в системе в момент аварии. Указывается полный путь к приложению, имя модуля, дескриптор модуля, дескриптор задачи, сегмент данных.

Аналогично раздел Modules предоставляет информацию о модулях, загруженных в момент аварии в системе. Информация включает путь к модулю, дату создания и размер файла модуля, дескриптор модуля и значение счетчика обращений к модулю.

Замечание

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