программы, а по команде i
этот сигнал игнорируется.
переменная$m счетчик
адрес:m счетчик
Аналогично s, но выполняется до тех пор, пока по
указанному адресу не будет занесено новое значение. Переменная должна быть доступна из текущей
процедуры. Если счетчик не указан, его можно считать бесконечно большим. Так как данная команда
выполняется программно, она работает крайне медленно.
уровень v
Задать полноту выводимой информации при выполнении
команд s, S, m. Если уровень опущен, то выводится
только название подпрограммы и исходного файла.
Если уровень 1 или больше, то при выполнении выводится также исходная строка. Если уровень 2 или
больше, то также выводятся все команды ассемблера,
соответствующие данной строке.
Выполнить указанную процедуру с заданными аргументами. Аргументы могут быть целыми числами, символами, цепочками символов или именами переменных,
доступных из текущей процедуры. Во втором варианте
результат выполнения процедуры выводится в формате
m (по умолчанию d). Выполнить отдельную процедуру
можно, лишь если редактирование связей осуществлялось командой cc -g.
номер_строки b команды_отладчика
Установить точку прерывания на указанную строку.
Если указано имя процедуры без номера_строки (например, proc:), точка прерывания устанавливается на
первую строку процедуры, даже если она компилировалась без опции -g. Если номер_строки не указан,
то точка прерывания устанавливается на текущую
строку. Если команды_отладчика не указаны, то выполнение приостанавливается перед точкой прерывания и управление возвращается sdb. Иначе при достижении точки прерывания выполняются указанные команды_отладчика и работа программы продолжается.
Если команд несколько, они разделяются точкой с
запятой. Если в качестве команды используется k,
то управление передается sdb.
B
Вывести список точек прерывания.
номер_строки d
Снять точку прерывания с заданной строки. Если номер_строки не указан, то запрашивается подтверждение на удаление каждой точки прерывания: выдается
ее местоположение и читается ответ (со стандартного ввода). Если ответ начинается с y или d, то
точка прерывания снимается.
D
Удалить все точки прерывания.
l
Вывести последнюю выполненную строку.
номер_строки a
Оповещение. Если номер_строки имеет вид процедура:номер, то выполняется команда номер_строки b l.
Если номер_строки имеет вид процедура:, то выполняется команда процедура: b T.
Если предыдущая команда выводила строку исходной
программы, то после нажатия клавиши "перевод строки" будет выведена следующая строка исходного
текста, которая и станет текущей. Если предыдущая
команда выводила содержимое ячейки памяти, то выводится содержимое следующей ячейки.
CTRL+D
"Прокрутить". Вывести следующие 10 строк исходного
текста, команд или данных в зависимости от того,
что выводилось в последний раз.
<имя_файла
Читать команды из указанного файла; по достижении
его конца читать команды со стандартного ввода.
Эта команда не может быть вложенной.
Изменить тройку, управляющую отображением адресов.
Аргументы ? и / указавают на отображения, ассоциированные с объектным_файлом и образом_памяти соответственно. Если не указана *, то изменяется первая тройка (b1, e1, f1), иначе - вторая. Если задано меньше трех значений, то оставшиеся элементы
тройки остаются неизменными.
"строка
Вывести указанную строку. Разрешается использовать
управляющие последовательности языка C \символ,
где символ не есть цифра.
q
Выйти из отладчика.
Команды отладки отладчика
V
Вывести версию отладчика.
Q
Вывести список отлаживаемых файлов и процедур.
Y
Переключить режим выдачи внутренней отладочной информации.
ПРЕДОСТЕРЕЖЕНИЯ
При выводе значения внешней переменной, для которой отсутствует отладочная информация, перед ее значением выводится предупреждение. Ее типом по умолчанию считается
int.
Данные, хранящиеся в секции команд, недоступны из функций.
Если функция была оптимизирована, то информация о номерах строк может не соответствовать действительности.
Более того, часть информации может быть потеряна.
СЮРПРИЗЫ
Если процедура вызвана, когда программа не остановилась
на точке прерывания (например, при отладке образа памяти), то перед началом выполнения процедуры все переменные инициализируются. Это делает невозможным использование процедур, которые осуществляют форматный вывод
данных из образа памяти.
Отладчик sdb плохо приспособлен для отладки Фортран-программ. Трудно получить доступ к элементам общих
блоков и формальным аргументам, элементы многомерных
массивов нумеруются по строкам, а не по столбцам. Кроме
того, sdb несовместим с компилятором svs(1). Рекомендуем пользоваться отладчиком КРОТ.
ЗАМЕЧАНИЯ
В программных определениях могут встретиться совпадающие имена, при этом сфера действия имен четко не разграничивается. Избежать подобных ситуаций поможет использование уникальных
идентификаторов для программ, версий, процедур и типов.
Вложенность также не поддерживается. Чтобы сымитировать эффект вложенности, объявление структур можно производить на верхнем уровне с тем, чтобы использовать их имена внутри других процедур.