скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Администрирование локальных сетей

Вы можете запросить 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/

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

Дополнительные команды печати

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

$b         Печатают текущие контрольные точки.          

$c          Печать располагает в стеке след.      

$d         Основание системы счисления значения по умолчанию Набора, чтобы адресовать параметр.        

$e          Печатают внешние переменные.         

$f          Регистраторы С плавающей точкой как единственная(отдельная) точность.

$F         Регистраторы С плавающей точкой как двойная точность.   

$m         Печатают карты сегмента ADB.          

$r          Печатают общих регистраторов.       

$s          Смещение Набора для соответствия символа.          

$v          Печатают ADB переменные.   

$w         Вывод Набора выравнивает ширину.

Рекомендуеться также посмтотреть на лучший Отладчик под Unix:

http://www.kiarchive.ru/pub/gnu/gnu-mirror/Manuals/ddd/html_mono/ddd.html


Отладчик XDB

XDB – отладчик для отлаживания програм написаных на языках  C, HP FORTRAN, HP Pascal, and C++ и понимает следующие команды:

xdb [-d dir] [-r file] [-R file] [-p file] [-P process_ID] [-L] [-l library]

          [-i file] [-o file] [-e file] [-S num] [-s] [objectfile [corefile]]

где

-d dir      определяет дополнительный каталог где размещены исходный коды

-r file      определяет  рекордный файл

-R file    определяет файл restore, который был определен перед –p но после –r опции

-p file     определяет файл воспоизведения действий (playback)

-P process_ID  Определяет process_ID до которого желаем «присоедениться» чтоб отправить в 

режим отладки

 -L            определяет строчно-ориентированный интерфейс.

 -l library  определяет библиотеку (общедоступную) до которой желаете подсоедениться

-i file       переопределяет поток ввода в файл или в устройство

-o file      переопределяет поток вывода в файл или в устройство

-e file      переопределяет поток вывода ошибок в файл или в устройство

-S num   устанавливает размер кеширования строки (по умолчанию 1024 что есть минимальный) –s  определяет все библиотеки (общедоступный) которые использует програма

Размер екрана будет в зависимости от переменой окружения TERM или можно установить используя переменный LINES и COLUMNS.

При запуске xdb имеет 3 окна:

·     Окно кода (содержит исходный код)

·     Окно  информации (содержит значения параметров и прочее)

·     Командное  окно, окно упраления

5.   Примеры команд

r запускает програму с параметрами

R запускет програму без параметров

s пошаговый запусr (входит в  функции)

S пошаговый запусr (не входить в  функции)

к убить процесс

q выйти из отладчика

с продолжить выполнения програмы (continue)

v 11 посмотреть 11 строку кода

+5 посмотрить на 5 строк ниже

-5   ---------------------------- выше

v my_function показать функцию

v test1.c просмотреть файл test1.c

v test1.c:40 просмотреть файл test1.c на 40 строке

V посмотреть текущуй стек (сотояний вызовов)

V 2 посмотреть текущей стек на 2 уровня глубже

w 12 установить размер окна кода на 12

td показать код на asssembly языке (что б возвратиться к коду то еще раз нужно набрать td)

ts показать код и asssembly

s 6 запустить 6 шагов

/ n=4 ищет код n=4 (снизу)

? n=4 ищет код n=4 (сверху)

b 42 устанавливает точку останова в 42 строке

b 32 \4 в 32 строке будет останавливаться програма 4 раза

bp устанавливает точку останова на точке входа в програму

bp my_funс устанавливает точку останова на точке входа в процедуру my_func

lb просмотреть точки останова

db 2 удалить 2ю точку остнаова

db * удалить все точки останова

p count просмотреть значение count

p count\x просмотреть в шестнацатиричном виде

p num\D просмотреть переменую в long типе как десятеричную

p . показать преведущее значение

p *(&.+42) показать значение на 42 байта дальше от преведуще-показаного значения

p my_struct показывает даные в структуре

p my_struct.name показывает значение в структуры поля name

p *ptr значения указателя

p+ (p-) показывет следущий(преведущий) елемент

p num=num+20  увеличить значения на 20

t показывает стек

Справочная таблица команд и флагов XDB

h [topic]                     Print commands/syntaxes related to this topic.

          Help without a topic prints the complete help text. Available topics

          include command names (short form) which print the syntax for and a

          terse description of the command.  Other topics are:

    assert    assertions;                                           macro       macros;

    bpset     set breakpoints;                                 misc        other commands, etc.;

    bpstat    view & modify breakpoints;          options     xdb command line;

    C++       C++ features;                                     proc        procedure related;

    cmdlist   command list features;                  record      write & use log files;

    control   process control;                                register    registers;

    data      view & modify data;                        screen      window modes;

    disasm    disassembly mode;                         signal      signal handling;

    formats   format specifiers;                           state       global state switches;

    help      this description;                                  source      view source;

    list      list various items;                                  trace       trace stack or proc(s);

    locations location syntax;                             variables   variable syntax.

Process control:

r [arguments]                        Run child process with arguments.

R                                             Run child process with no arguments.

c [location]                            Continue from breakpoint with no signal, set temporary breakpoint at location.

C [location]                           Continue with current signal, set temporary breakpoint at location.

s [number]                             Single step, follow procedure calls.

S [number]                            Single step, step over procedure calls.

g (line | #label)                      Go to line in current procedure.

g (+|-) [lines]                          Go forward/back 1 or given number of lines.

k                             Kill child process, if any.

Setting breakpoints:

b [location] [\count] [commands]   Set breakpoint.

ba [address] [\count] [commands]  Set breakpoint at code address.

bb [depth] [\count] [commands]     Set breakpoint at procedure beginning.

bi expr.proc [\count] [commands]                   Set an instance breakpoint.

bi [-c|-C] expr [commands]               Set an instance breakpoint.

bp [commands]                                   Set procedure breakpoints.

bpc [-c|-C] class [commands]           Set a class breakpoint.

bpo [[class]::]proc [commands]       Set breakpoints on overloaded functions.

bpt [commands]                                  Set procedure trace breakpoints.

bpx [commands]                                 Set procedure exit breakpoints.

bt [(depth | proc)] [\count] [commands]  Trace procedure.

bu [depth] [\count] [commands]     Set up-level breakpoint.

bx [depth] [\count] [commands]     Set breakpoint at procedure exit.

bpg [commands]                                 Set paragraph breakpoints.       (MPE-only)

tpg [commands]                                  Set paragraph trace breakpoints. (MPE-only)

txc                                          Toggle the exception stop-on-catch state.

txt                                                           Toggle the exception stop-on-throw state.

View and modify breakpoint status:

lb                                                             List all breakpoints.

lx                                                             List exception stop-on-throw and -catch state.

db [number | *]                                    Delete one or all breakpoints.

dp                                                           Delete procedure breakpoints.

Dpx                                                        Delete procedure exit breakpoints.

Dpt                                                         Delete procedure trace breakpoints.

dpg                                                         Delete paragraph [trace] breakpoints.(MPE-only)

ab [number | *]                                    Activate one or all breakpoints.

sb [number | *]                                     Suspend one or all breakpoints.

tb                                                            Toggle overall breakpoints state.

abc commands                                    Global breakpoint commands.

dbc                                                         Delete global breakpoint commands.

bc number expr                                    Set a breakpoint count.

xcc commands                                    Define the stop-on-catch command-list.

xtc commands                                     Define the stop-on-throw command-list.

i expr {commands} [{commands}]     Conditionally execute commands.  (Also: if)

{ }                                           Group commands.

;                                               Separate commands.

Q                                                             Quiet breakpoint reporting.

 "any string"                                          Print string.

Source viewing:

L                                                             Show current location and its source line.

v [location]                                           View source at location in source window.

va [address]                                          View address in disassembly window.

V [depth]                                               View procedure at depth in source window.

top                                                          View procedure at top of stack.

up [number]                                          View procedure number levels higher in stack.

down [number]                                    View procedure number levels lower in stack.

+[number]                                             Move forward in sourcefile.

-[number]                                              Move backward in sourcefile.

/[string]                                                  Search forwards in sourcefile for string.

?[string]                                                  Search backwards for string.

n                                              Repeat previous search.

N                                                             Repeat previous search in opposite direction.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.