872 Часть V. Инструментарий программиста
позволяет быстро локализовать место возникновения аварии. Здесь же содержатся логический и физический адреса кадра стека, а также адрес, по которому программа должна возвратиться после вызова.
Листинг 30.4 содержит пример разделов файла отчета Registers (регистры) и Message Queue (очередь сообщений). Раздел Registers содержит значения, находившиеся в момент аварии в регистрах общего назначения. Раздел Message Queue содержит последнее сообщение, полученное приложением в процессе работы и обрабатывавшееся в момент аварии, а также сообщения, ожидавшие в очереди. Для примера из листинга 30.4. на момент аварийного завершения приложения сообщений в очереди не оказалось, на что и указывает В файле отчета фраза "No messages in queue".
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 предоставляет информацию о модулях, загруженных в момент аварии в системе. Информация включает путь к модулю, дату создания и размер файла модуля, дескриптор модуля и значение счетчика обращений к модулю.
Замечание
! Счетчик обращений к модулю указывает, сколько раз модуль использовался другими приложениями.