Мегаобучалка Главная | О нас | Обратная связь


Использование ADB В интерактивном режиме



2019-07-04 209 Обсуждений (0)
Использование ADB В интерактивном режиме 0.00 из 5.00 0 оценок




Вы работаете в интерактивном режиме с ADB, вводя запросы.

Общая форма для запроса:

[address] [,count] [command] [modifier]

ADB поддерживает текущий адрес, называемый "точкой". Этот адрес подобен в функции к текущему указателю в HP-UX редакторе, vi (1). Когда Вы указываете address, ADB устанавливает точку к тому расположению. ADB тогда выполняет команду command count раз. Вы можете вводить address и count как выражения. Вы создаете эти выражения от символов в пределах программы, которую Вы  можете  проверять и от десятичного числа, восьмеричных, и шестнадцатеричных целых чисел. Вот списки различных операторы для формирующихся выражений.

Формирующие выражение Операторы

Оператор    Операция       

+      Добавление   

-       Вычитание или Отрицание     

*      Умножение    

%     Целочисленный раздел(деление)     

~      Одноместный НЕ       

&      Поразрядный И         

|       Поразрядный Содержащий ИЛИ       

*      Серия к следующему множителю     

ADB исполняет арифметические операции на всех 32 битах.

ADB "помнит" последний(прошлый) набор оснований системы счисления. Вы можете изменять(заменять) текущее основание системы счисления с $o, $d, или $x команды. В течение запуска, заданное по умолчанию основание системы счисления шестнадцатерично. Если Вы изменяете(заменяете) основание системы счисления к десятичному числу, весь последующий ввод и вывод целых чисел интерпретируется как десятичное число, пока другой спецификатор основания системы счисления не используется.

Таблица 2 списка некоторые обычно использовала команды ADB и их значение.

Обычно Используемый ADB Команды

Команда          Описание           

?          Печатает содержание от objfile.               

/          Печатает содержание от corefile.              

=         Печатает значение "точки" (.) (адресс) .

:          Контрольной точки останова .  

$        Разные запросы.             

;          Разделитель команд.     

!          Выйти в Шелл.

CONTROL C  Заканчивает любую команду ADB.         

 

Отображение Информации

Вы можете запросить ADB расположения или в объектном файле или core файле. Запрос (?) показывает  содержание объектного файла, в то время как / запрос исследует core файл. Как только Вы инициализируете процесс (использование или:r или команда:e), или ? или / обращаются к расположениям в адресном пространстве выполняющего процесса.

После любого ? или / запросов, Вы можете определить формат, что ADB должен использовать, чтобы печатать эту информацию. Таблица 3 списка некоторые обычно используемые команды формата.

Обычно Используемых Команды Формата

Команда          Описание           

c         Один байт как символ.  

b        Один байт как шестнадцатеричное значение.      

x        Два байта в шестнадцатеричном.            

X        Четыре байта в шестнадцатеричном.      

d        Два байта в десятичном числе.  

f         Четыре байта в единственном(отдельном) с плавающей запятой.                

F        Восемь байтов в двойном с плавающей запятой.                

i          Команда Precision Architecture HEWLETT-PACKARD.      

s         Символьная строка С нулевым символом в конце.             

a        Печатать в символической форме.           

n        Печатать newline.           

r         Печатать пустое пространство.

^          Резервируют точку.       

Например, чтобы печатать первый шестнадцатеричный элемент массива длинных целых чисел, названных ints, Вы напечатали бы запрос:

Ints/X

Этот запрос устанавливает значение точки к значению таблицы идентификаторов ints. Это также устанавливает значение точечного приращения к четыре. " Точечное приращение " является числом байтов, которые ADB печатает в требуемом формате.

В другом примере, чтобы печатать первые четыре байта как шестнадцатеричный номер после последующих четыре байта как десятичное число, Вы напечатали бы запрос:

ints/XD

В этом случае, ADB все еще устанавливает точку к ints, но точечное приращение - теперь восемь байтов.

Команда newline - специальная команда, которая повторяет предыдущую команду. Команда newline также использует значение точечного приращения, но команда не может всегда иметь значение. В этом контексте, однако, это означает повторять предыдущую команду, используя индекс одних и адрес точки плюс точечное приращение. Так, в этом случае(регистре), команда newline устанавливает точку к ints + 0x8 и печатает два длинных целого числа: первый как шестнадцатеричный номер и второй как десятичное число. Вы можете также повторить команду newline так часто как хотите. Например, Вы могли бы использовать эту методику, чтобы просмотреть разделы памяти.

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

ints/X4b

Как эти примеры, Вы можете предшествовать любой команде формата с десятичным символом повторения.

Кроме того, Вы можете использовать параметр индекса запроса ADB, чтобы повторить, полный формат командует определенным числом раз. Например, чтобы печатать три строки, использующие вышеупомянутый формат, Вы напечатали бы запрос:

ints, 3/X4bn

(n в конце команды печатает перевод каретки, который делает вывод более легким для чтения.)

В этом примере, ADB устанавливает значение точки к ints + 0x10, скорее чем ints. Это случается, потому что каждый раз ADB заново выполняет команду формата, это устанавливает точку к точке плюс точечное приращение. Поэтому, значение точки - значение, которое точка имела в начале последнего(прошлого) выполнения команды формата. Точечное приращение - размер требуемого формата (в этом случае(регистре), восемь байтов). Команда newline в это время установила бы точку в ints + 0x18 и печать только одно повторение(копия) формата, потому что значение индекса сброшено к одному.

Чтобы проверять текущее значение точки, Вы можете напечатать запрос:

. = a

= команда может печатать значение адреса в любом формате.

Вы можете также использовать = команду, чтобы конвертировать(преобразовать) от одного ядра до другого. Например, Вы можете печатать значение "0x32" в восьмеричном, шестнадцатеричном, и представление десятичных чисел, печатая:

0x32 = oxd

ADB "помнит" сложный формат просьбы о каждом из?, /, и = команды. Например, после ввода предыдущего запроса, Вы можете печатать значение "0x64" в восьмеричном, шестнадцатеричном, и представление десятичных чисел, печатая:

0x64 =

Тогда, потому что последний введенный / команда была ints/X4b, Вы можете напечатать:

ints/

Печатать четыре байта в длинном шестнадцатеричном формате и четырех байтах в байте шестнадцатеричный формат.



2019-07-04 209 Обсуждений (0)
Использование ADB В интерактивном режиме 0.00 из 5.00 0 оценок









Обсуждение в статье: Использование ADB В интерактивном режиме

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (209)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)