Cтраница 1
Дамп основной памяти формирует программа оценки неисправности, если произошел сбой в системной программе. DUMP, который должен быть предусмотрен в системе. Дамп содержит копию всей основной памяти и регистров и некоторую вспомогательную информацию. [1]
В шестнадцатеричной распечатке дампа основной памяти, используемой в данной главе в качестве иллюстраций, на ка ждой строке представлены 32 однобайтовые области памяти, что в шестнадцатеричной форме представляется 64 цифрами. Шестнадцатеричные цифры сгруппированы по восемь, что составляет 4 банта на группу. Адрес любой пары шестнадцатеричных цифр, представляющих байт памяти, легко можно вычислить, увеличивая ( в шестнадцатеричной форме) адрес первой пары шестнадцатеричных цифр в распечатке памяти. [2]
Из предыдущего примера распечатки дампа основной памяти видно, что команды представлены на машинном языке и обычно используют адреса памяти в форме сочетания баз. В большинстве случаев в распечатке дампа основной памяти приводится содержимое общих регистров в момент, непосредственно предшествующий выполнению дампа. Программист может прибавить к содержимому базового регистра желаемое смещение и по сумме, получившейся в результате сложения, найти в проблемной программе точку, на которую имеется ссылка в рассматриваемом предложении. [3]
По повторному пуску МВМ выводит дамп основной памяти, сохраняет данные теплого пуска, информирует оператора о факте и причине повторного пуска. Затем выполняется инициализация СВМ ЕС, во время которой производится теплый пуск без запроса о виде пуска. В отличие от обычного теплого пуска при таком пуске за МВМ закрепляются АП, которые использовались во время функционирования СВМ ЕС до аварийного завершения. [4]
Несмотря на то что распечатка дампа основной памяти содержит полный набор кодов команд проблемной программы, адреса этих команд, констант и областей не совпадают с адресами, указанными в распечатке программы в исходном коде. Проблемная программа, находясь в основной памяти вычислительной машины, смещена относительно начального нулевого адреса на определенное количество байтов. Смещение это может составлять 10000, 45000, 300000 байтов или любое количество байтов в пределах доступного объема основной памяти вычислительной машины. Количество байтов в смещении изменяется не только в зависимости от видов операционных систем, но различно также и для сходных операционных систем. Последнее различие возникает из-за выбора различных возможностей при генерации данной операционной системы. [5]
Если представить в качестве иллюстрации всю распечатку дампа основной памяти, то читатель сможет найти все адреса, указанные этими предложениями. [6]
На рис. 18.2 дана еще одна иллюстрация распечатки дампа основной памяти с константами различной длины и конфигурации. Представлены таблицы, рабочие - области, переключатели и константы. [7]
Так как упакованные десятичные величины имеют шестна-дцатеричные конфигурации своих цифр, то их легко распознать при анализе дампов основной памяти, что иллюстрируется примерами, приведенными в этом и последующих разделах. [8]
Знание поразрядной двоичной конфигурации символьных данных требуется весьма редко, гораздо чаще оказывается полезным помнить вид композиции шестнадцатеричных цифр, составляющих алфавитно-цифровые символы, например при анализе дампов основной памяти, содержащих неоттранслированные шестнадцатеричные цифры, представляющие содержимое оперативной памяти. [9]
По способу получения и характеру информации различают следующие виды дампов: дамп аварийного завершения ( дамп ABEND), дамп снимков памяти ( дамп SNAP), индикативный дамп, дамп основной памяти и независимый дамп. [10]
Пусть в данном случае программист задал арифметические поля, как показано следующими предложениями. В момент выполнения данного шестнадцатеричного дампа основной памяти эти поля еще не были изменены. [11]
Из предыдущего примера распечатки дампа основной памяти видно, что команды представлены на машинном языке и обычно используют адреса памяти в форме сочетания баз. В большинстве случаев в распечатке дампа основной памяти приводится содержимое общих регистров в момент, непосредственно предшествующий выполнению дампа. Программист может прибавить к содержимому базового регистра желаемое смещение и по сумме, получившейся в результате сложения, найти в проблемной программе точку, на которую имеется ссылка в рассматриваемом предложении. [12]
Каждая операционная система и каждая разновидность управляющей программы распечатывают содержимое основной памяти не совсем так, как это делается в другой операционной системе или в той же операционной системе другим вариантом управляющей программы. Поэтому в этой книге невозможно ис черпывающе описать процесс истолкования дампа основной памяти и нахождения по нему ошибок в проблемной программе. Чтобы распознать признаки конкретных ошибок, программисту следует обратиться к пособиям по соответствующей операционной системе. В настоящей главе программист не получит такой детальной информации, но она может помочь ему при анализе полей данных, содержащихся в той части распечатки дампа основной памяти, которая относится к проблемной программе. [13]
Это однобайтовая сим вольная константа, содержащая теперь шестнадцатеричную конфигурацию буквы X. Подразумевается, что алгоритм программы ввел букву X в этот байт где-то в промежутке времени между началом выполнения программы и распечаткой дампа основной памяти. [14]
Знакомство с форматом команд на машинном языке, полученных на выходе компилятора с языка Ассемблера, помогает при анализе ошибок в программе и интерпретации дампов. Под дампом понимают распечатку в шестнадцатеричном формате содержимого областей основной памяти, занятых проблемной программой и связанными с ней программами Супервизора системы. Дамп основной памяти обычно производится всякий раз, когда при выполнении проблемной программы встречаются различного рода нарушения нормального режима выполнения или противоречивость данных, приводящие к прерываниям. Такая распечатка основной памяти может быть затребована программистом или выполняется автоматически при возникновении определенных ошибочных ситуаций. Именно в это время программисту может понадобиться разобраться в форматах команд на машинном языке, чтобы проследить за ходом выполнения команд программы непосредственно перед ее прерыванием. [15]