ОПИСАНИЕ
Утилита crash служит для изучения образа памяти работающей или аварийно завершившейся ОС. Утилита выполняет
форматную печать управляющих структур, таблиц и другой
информации. Аргументами командной строки являются:
-d файл_с_дампом
Имя файла с образом памяти системы (по умолчанию
/dev/mem). Файл_с_дампом может быть получен следующим образом. В случае аварийного завершения ОС
указывается размер в блоках дампа, выводимого на
устройство подкачки. Затем выполняется перезагрузка системы с другим устройством подкачки и дамп
сохраняется в файле командой dd(1). Максимально
допустимый размер файла нужно установить не меньшим, чем размер дампа [см. ulimit(1)].
-n файл_с_таблицей_имен
Выполняемый файл, содержащий таблицу имен, необходимую для удобного доступа к изучаемому образу памяти (подразумеваемый файл - /unix). Если анализируется образ памяти с другой машины, следует скопировать оттуда соответствующий выполняемый файл.
-w выходной_файл
Файл, в который выводится информация во время диалога с утилитой crash (по умолчанию - на стандартный вывод).
Команды, которые выполняются во время диалога с утилитой crash, имеют вид
функция [аргумент ...]
где функция - одна из функций crash, описанных ниже, а
аргументы указывают, какие именно системные данные следует вывести.
По умолчанию данные о процессе относятся к текущему
процессу в текущем сеансе работы ОС или к процессу, выполнявшемуся в момент аварийного завершения ОС. При выводе таблиц по умолчанию выдаются все активные элементы.
Для функций могут быть указаны следующие опции (в тех
случаях, когда они допустимы по смыслу):
-e
Вывести все элементы таблицы.
-f
Вывести всю структуру.
-p
Интерпретировать все аргументы-адреса как физические.
-s процесс
Указать отображаемый процесс.
-w файл
Направить вывод функции в файл.
Следует отметить, что при указании опции -p все адреса
и символьные аргументы для вызванной функции будут считаться физическими адресами. Если они не являются таковыми, результаты будут неверны.
Функции mode, defproc и redirect соответствуют опциям
-p, -s и -w. Функция mode устанавливает режим трансляции адресов (как физических или, как виртуальных),
defproc устанавливает новый отображаемый процесс, а
redirect переназначает вывод для всех последующих функций.
Вывод crash-функций можно направить через канал в другую программу:
функция [аргумент ...] ! команда_shell'а
Например после выполнения строки
mount ! grep rw
все элементы таблицы смонтированных устройств, содержащие флаги чтения и записи, будут выданы на стандартный
вывод. Опцию переназначения вывода, -w, в этом случае
использовать нельзя.
В зависимости от контекста числовые аргументы функций
берутся по соответствующему основанию. Количество понимается как десятичное, адрес всегда шестнадцатеричный.
Аргумент, задающий элемент таблицы, трактуется как
шестнадцатеричный адрес, если он превосходит размер
таблицы; в противном случае он понимается как десятичный номер элемента. Основание системы счисления можно
указывать и явно - для аргументов-чисел действуют соглашения языка С: число с префиксом 0x понимается как
шестнадцатеричное; число, начинающееся с 0, считается
восьмеричным. Десятичные числа (там, где ожидается другое основание) задаются префиксом 0d, двоичные - 0b.
Имена функций можно сокращать, оставляя начало имени
(однозначно идентифицирующее функцию). Для ряда функций
введены однобуквенные синонимы, например p для proc.
Многие функции допускают различные формы ввода аргументов. Так, информацию из таблицы можно получить, задав
номер элемента, физический адрес, виртуальный адрес,
символическое имя, диапазон или выражение. Диапазон номеров задается в виде a-b, где a и b - десятичные числа. Выражение состоит из двух операндов и знака операции. Операндом может быть адрес, символическое имя или
число; знаком операции +, -, *, /, & и |. Операнд-число должен начинаться с префикса основания (если число
не десятичное). Выражения заключаются в круглые скобки.
Некоторые функции допускают любую из указанных форм аргументов.
Ниже используются два сокращения для аргументов функций
crash:
Элемент_таблицы
Это или номер элемента, или адрес, или символическое имя, или диапазон, или выражение.
начальный_адрес
Это или адрес, или символическое имя, или выражение.
Вывод таблицы A-дескрипторов устройства управления
памятью. Опция -k задает таблицу ядра, опция -u таблицу пользователя для активного процесса или
для процесса, заданного опцией -s.
adv [-e] [-w файл] [[-p] элемент_таблицы ...]]
Вывод таблицы ресурсов, об явленных доступными для
удаленных ЭВМ.
base [-w файл] число ...
Вывод числа в двоичной, восьмеричной, десятичной и
шестнадцатеричной форме. Для недесятичных чисел
надо указывать префикс: 0x для шестнадцатеричных,
0 для восьмеричных, 0b для двоичных.
Вывод таблицы B-дескрипторов устройства управления
памятью с использованием либо информации из таблицы A-дескрипторов (задается цифрой), либо заданного адреса. Опция -k задает таблицу ядра, опция -u
- таблицу пользователя для активного процесса или
для процесса, заданного опцией -s.
Синоним: b.
Вывод содержимого буфера в заданном формате. Допустимы следующие обозначения форматов: -b, байтный; -c, символьный; -d, десятичный; -x, шестнадцатеричный, -o, восьмеричный; -r, формат каталога;
-i, формат описателя файла. Если формат не задан,
действует предшествующий формат (в начале сеанса
действует формат -x).
bufhdr [-f] [-w файл] [[-p] элемент_таблицы ...]
Синоним: buf.
Вывод заголовков системных буферов.
callout [-w файл]
Синоним: c.
Вывод таблицы трассировки вызовов.
dballoc [-w файл] [класс ...]
Вывод таблицы потоковых блоков данных. Если указан
класс, выводится информация для указанного класса.
dbfree [-w файл] [класс ...]
Вывод заголовков свободных потоковых блоков данных. Если указан класс, выводится информация для
указанного класса.
dblock [-e] [-w файл] [-c класс ...] [[-p] элемент_таблицы ...]
Вывод заголовков занятых потоковых блоков данных.
Если указан класс, выводится информация для указанного класса.
defproc [-w файл] [-c] [номер]
Установка номера отображаемого элемента таблицы
процессов. Номер может быть задан явно, или унаследован у текущего процесса (опция -c). Если аргументы не заданы, выводится ранее установленный номер. В начале сеанса устанавливается номер, соответствующий текущему процессу.
ds [-w файл] виртуальный_адрес
Вывод символического имени с адресом, ближайшим к
заданному и не превосходящим его.
file [-e] [-w файл] [[-p] элемент_таблицы ...]
Синоним: f.
Вывод таблицы файлов.
findaddr [-w файл] таблица элемент
Вывод адреса, соответствующего элементу указанной
таблицы. Таблица должна быть пригодной для обработки функцией size.
findslot [-w файл] виртуальный_адрес ...
Вывод таблицы, номера элемента и смещения, соответствующих виртуальному_адресу. Таблица должна
быть пригодной для обработки функцией size.
fs [-w файл] [[-p] элемент_таблицы ...]
Вывод таблицы с информацией о файловых системах.
gdp [-e] [-f] [-w файл] [[-p] элемент_таблицы ...]
Синоним: l.
Вывод информации о блокировках файлов. Если заданы
опция -е или аргумент элемент_таблицы, выводится
список блокировок записей; в противном случае выводится информация о блокировках, соответствующих
описателям файлов.
linkblk [-e] [-w файл] [[-p] элемент_таблицы ...]
Вывод таблицы ссылок между потоковыми очередями.
map [-w файл] имя_отображения ...
Вывод отображения с указанным именем.
mbfree [-w файл]
Вывод заголовков свободных блоков сообщений в потоках.
mblock [-e] [-w файл] [[-p] элемент_таблицы ... ]
Вывод заголовков занятых блоков сообщений в потоках.
mmu [-w файл]
Вывод корневых указателей устройства управления
памятью на таблицы A-дескрипторов супервизора и
пользователей.
mode [-w файл] [режим]
Установить режим трансляции аргументов-адресов: (v
- виртуальные адреса, p - физические). Если режим
не задан, выводится текущий режим. В начале сеанса
crash установлен режим виртуальных адресов.
mon [-w файл]
Вывод буфера монитора ядра. Для активной системы
выполнять команду mon не имеет смысла.
mount [-e] [-w файл] [[-p] элемент_таблицы ...]
Синоним: m.
Вывод таблицы смонтированных файловых систем.
nm [-w файл] имя
Вывод значения и типа имени.
od [-p] [-w файл] [-формат] [-режим] [-s процесс] начальный_адрес
[количество]
Синоним: rd.
Вывод указанного количества значений, начиная с
начального_адреса, в одном из следующих форматов:
символьном (-c), десятичном (-d), восьмеричном
(-o), шестнадцатеричном (-x), текстовом (-a) или
шестнадцатерично-символьном (-h), и в одном из
следующих режимов: словном (-l), полусловном (-s)
или байтном (-b). По умолчанию для символьного и
текстового форматов используется байтный режим, а
для десятичного, шестнадцатеричного и восьмеричного форматов - словный. Формат -h выводит как шестнадцатеричное, так и символьное представления; режим можно не указывать. Если формат или режим опущены, используются предыдущие значения. В начале
сеанса crash действуют шестнадцатеричный формат и
словный режим. Если количество опущено, оно принимается равным 1.
pbuf [-w файл]
Вывод системного буфера печати.
pcb [-w файл] [-s процесс]
Вывод r-, q- и s-областей структуры пользователя,
содержащих сохраненные регистры процессора.
Вывод таблицы дескрипторов страниц устройства управления памятью с использованием либо элементов
таблиц A-дескрипторов (цифра) и B-дескрипторов
(число), либо заданного начального_адреса. По опции -k выдается таблица ядра, по опции -u - пользовательская таблица для активного процесса, по
опции -s - пользовательская таблица для заданного
процесса.
Синоним: p.
Вывод таблицы процессов. Отображаемую информацию
можно задать двумя способами: либо вводя любую
смесь элементов_таблицы и идентификаторов_процессов (после #), либо задавая -r для отображения информации обо всех процессах, готовых к выполнению.
Переназначение вывода для последующего диалога с
утилитой crash в указанный последним файл. Если
аргумент не задан, выводится имя текущего файла
вывода. Если задана опция -c, текущий файл вывода
закрывается и информация выдается на стандартный
вывод.
region [-e] [-f] [-w файл] [[-p] элемент_таблицы ...]
Вывод указанного количества слов памяти с начального_адреса, таких, что кон юнкция маски и слова
равна образцу. По умолчанию маска равна
0xffffffff.
size [-w файл] [-x] [имя_структуры ...]
Вывод размера указанной структуры. Опция -x задает
шестнадцатеричный формат вывода. При отсутствии
аргумента выводится список структур с известными
размерами.
sndd [-e] [-w файл] [[-p] элемент_таблицы ...]
Вывод таблицы дескрипторов отправлений.
srmount [-e] [-w файл] [[-p] элемент_таблицы ...]
Вывод таблицы смонтированных удаленных файловых
систем.