Настройка среды отладки dbx

Вы можете настраивать среду отладки, создавая псевдонимы команд и задавая опции в файле .dbxinit. Команды dbx можно считывать из файла с помощью флага -c.

Дополнительная информация об опциях настройки содержится в следующих разделах:

Определение нового приглашения dbx

Обычно приглашение dbx - это имя, используемое для запуска программы dbx. Если в командной строке вы указали /usr/ucb/dbx a.out, то приглашение будет иметь вид /usr/ucb/dbx.

Вид приглашения можно изменить либо с помощью команды prompt, либо задав другое приглашение в строке prompt файла .dbxinit. Изменение приглашения в файле .dbxinit приводит к тому, что каждый раз при инициализации программы dbx вместо приглашения по умолчанию будет выдаваться заданное вами приглашение.

Например, для того чтобы при инициализации программы dbx выдавалось приглашение в виде debug—>, укажите в файле .dbxinit следующую строку:

prompt "debug-->"

Создание псевдонимов команд dbx

Вы можете создавать свои собственные команды на основе набора базовых команд dbx. Следующие команды позволяют создавать пользовательский псевдоним из указанных аргументов. Все команды в строке замещения для псевдонима должны быть базовыми командами dbx. В дальнейшем вы можете использовать свои псевдонимы вместо базовых команд dbx.

Команда alias без аргументов выдает список действующих псевдонимов; эта же команда с одним аргументом выдает строку замещения, связанную с данным псевдонимом.

alias [псевдоним[команда] ]

aliasпсевдоним "команда"

alias псевдоним (параметр-1, параметр-2 . . .  ) "команда"

Первые две формы команды alias предназначены для подстановки строки замещения вместо псевдонима. Третья форма - это ограниченное средство макроязыка. В строку замещения подставляется каждый параметр, указанный в команде alias.

Ниже перечислены псевдонимы по умолчанию и соответствующие им команды:

attr
attribute
bfth
stop (в данной нити в указанной функции)
blth
stop (в данной нити в указанной строке исходного файла)
c
cont
cv
condition
d
delete
e
edit
h
help
j
состояние
l
list
m
map
mu
взаимная блокировка
n
next
p
print
q
quit
r
run
s
step
st
stop
t
where
th
нить
x
registers

Для удаления (отмены) псевдонима предназначена команда unalias.

Работа с файлом .dbxinit

При запуске сеанса отладки программа dbx пытается найти специальные файлы инициализации с именами .dbxinit, в которых хранится список выполняемых команд dbx. Эти команды выполняются до того, как программа dbx начнет обрабатывать команды стандартного ввода. Сразу после запуска команда dbx ищет файл .dbxinit в текущем пользовательском каталоге или в пользовательском каталоге $HOME. Если файл .dbxinit существует, то в начале сеанса отладки выполняются команды из этого файла. Если файл .dbxinit есть и в домашнем, и в текущем каталоге, то оба файла считываются в указанном порядке. Так как файл .dbxinit из текущего каталога считывается вторым, то команды из этого файла могут изменить результат выполнения команд из файла, расположенного в домашнем каталоге.

Как правило, в файле .dbxinit указываются команды alias, но можно задавать и другие команды dbx. Например:

$ cat .dbxinit
alias si "stop in"
prompt "dbg-->"
$ dbx a.out
dbx, версия 3.1
Введите 'help' для получения справки.
чтение символьной информации . . .
dbg--> alias
si   stop in
t    where . . . 
dbg-->

считывание команд dbx из файла

Для выполнения команд dbx до начала сеанса отладки применяется флаг -c и файл .dbxinit. Если указать флаг -c, то программа dbx не будет искать файл .dbxinit. В этом случае после начала сеанса отладки для чтения команд dbx из файла следует воспользоваться командой source.

После выполнения команд из файла cmdfile программа dbx выдает приглашение и ожидает ввода.

Для определения списка команд, которые должны выполняться при начальном запуске программы dbx, можно также воспользоваться опцией -c.

Отладка циклических блокировок

С помощью программы dbx можно проводить отладку циклических блокировок. Для этого нужно присвоить переменной среды AIXTHREAD_SPINLOCKS значение ON.