[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Пример дампа i-узла и каталога при отладке с помощью adb

В данном примере показано, как создавать сценарии adb для просмотра содержимого каталогов и таблицы i-узлов файловой системы. В примере используется каталог с именем dir, который содержит разнообразные файлы. Файловая система связана с файлом устройства /dev/hd3 (/tmp), причем предполагается, что у пользователя есть права на чтение этого файла.

Для просмотра каталога нужно создать сценарий. Обычно каталог содержит одну или несколько записей. Каждая запись состоит из беззнакового номера i-узла файла и 14-символьного имени файла. Для просмотра этой информации в файле сценария нужно указать соответствующую команду. Программа adb предназначена для работы с объектными файлами в формате xcoff. Этот формат отличен от формата каталога. Из-за этого программа adb решит, что длина его текстового сегмента равна нулю. С помощью команды m укажите программе adb, что длина текстового сегмента каталога больше нуля. Начните сеанс работы с adb с ввода команды:

,0?m 360 0

Например, для вывода первых 20 записей, в которых номер i-узла файла будет отделяться от его имени знаком табуляции, нужно ввести следующую команду:

0,20?ut14cn

Вместо второго числа (20) нужно указать реальное число записей. Если в начале сценария будет указана приведенная ниже команда, то программа adb выведет указанные строки как заголовки столбцов значений:

="inumber"8t"Name"

После создания файла сценария укажите его в качестве файла ввода при запуске adb с именем вашего каталога. Например, для того чтобы программа adb была выполнена для каталога geo, считывая команды из входного файла сценария ddump, нужно ввести следующую команду:

adb geo - <ddump

Знак минус (-) запрещает программе adb открывать файл дампа. Программа adb считывает команды из файла сценария.

Для просмотра таблицы i-узлов файловой системы создайте новый сценарий и запустите программу adb, указав в качестве параметра файл устройства файловой системы. Таблица i-узлов файловой системы имеет сложную структуру. Каждая запись содержит:

Ниже приведен пример вывода дампа каталога:

        inumber имя
0:       26    .
        2     ..
        27    .estate
        28    adbsamp
        29    adbsamp.c
        30    calc.lex
        31    calc.yacc
        32    cbtest
        68    .profile
        66    .profile.bak
        46    adbsamp2.c
        52    adbsamp2
        35    adbsamp.s
        34    adbsamp2.s
        48    forktst1.c
        49    forktst2.c
        50    forktst3.c
        51    lpp&us1.name
        33    adbsamp3.c
        241   sample
        198   adbsamp3
        55    msgqtst.c
        56    newsig.c

Таблица i-узлов начинается с адреса 02000. Вы можете просмотреть таблицу, начиная с первой записи, указав в файле сценария следующую команду:

02000,-1?on3bnbrdn8un2Y2na

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

Для просмотра таблицы i-узлов файла /dev/hd3 с помощью файла script введите следующую команду:

adb /dev/hd3 - <script

На экране появится набор записей следующего вида:

02000: 073145
    0163 0164 0141
    0162 10356
    28770 8236 25956 27766 25455 8236 25956 25206
    1976 Feb 5 08:34:56 1975 Dec 28 10:55:15

Связанная информация

Обзор программы отладки adb

Применение выражений в программе adb

Просмотр и редактирование исходного файла с помощью программы adb

Пример программы adb: adbsamp2

Пример программы adb: adbsamp3


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]