Xreferat.com » Рефераты по компьютерным наукам » Администрирование локальных сетей

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

громоздкой, если библиотека содержит как программы на C, так и на ассемблере.


Отладчик ADB

Вызов ADB

Dызываетcz ADB, выполняя adb (1) команду. Синтаксис:

adb [-w] [-k] [-Idir] [-Ppid ] [objfile [corefile]

Где:

-w Разрешает запись в объектный файл.

-k Сообщает ADB, что объектные и основные файлы являются файлами ядра, так что ADB может исполнять соответствующее управление памятью.

-Idir Определяет каталоги , который содержит команды для ADB.

-Ppid "Принимают" уже процесс выполнения для отладки.

objfile Называет выполнимый объектный файл.

corefile Называет основной загрузочный модуль.

Обычно, вызывая ADB:

adb a.out core

Или более просто:

adb

Потому что настройка по умолчанию для объектного файла - a.out, и core файл - core.

Поставка знаку "минус" (-) для средств названия(имени) файла " игнорирует этот параметр, " как в:

adb a.out -

Чтобы записывать в объектный файл при игнорировании core файла, можна напечатать:

adb -w a.out -

Чтобы отлаживать выполняющийся в настоящее время процесс, вызовите ADB, печатая:

adb -Ppid a.out

Pid или " идентификатор процесса " может быть получен, используя ps (1) команда.

Потому что ADB прерывает нажатия клавиши, Вы не можете использовать сигнал выхода из, чтобы выйти от ADB. Вы должны использовать явный запрос ADB $q или $Q (или CONTROL D) чтобы выйти от ADB.


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

Вы работаете в интерактивном режиме с 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/

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

kiarchive/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 окна:

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

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

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


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

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 countx просмотреть в шестнацатиричном виде

p numD просмотреть переменую в 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

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: