pdb¶
Отладчик командной строки
import pdb
-
pdb.
run
(statement[, globals[, locals]])¶ Выполняет строку statement под управлением отладчика. Приглашение к вводу отладчика появляется непосредственно перед выполнением какого-либо программного кода. Ввод команды ‘continue’ инициирует выполнение этого кода. Аргументы globals и locals определяют глобальное и локаль ное пространство имен соответственно, в котором будет выполняться про граммный код.
-
pdb.
runeval
(expression[, globals[, locals]])¶ Вычисляет выражение в строке expression под управлением отладчика. Приглашение к вводу отладчика появляется непосредственно перед выполнением какого-либо программного кода, поэтому чтобы вычислить значение выражения, необходимо ввести команду ‘continue’, которая запустит функцию run(). В случае успеха возвращается значение выражения.
-
pdb.
runcall
(function[, argument, ...])¶ Вызовет функцию function под управлением отладчика. Аргумент function должен быть вызываемым объектом. Дополнительные аргументы передаются функции function. Приглашение к вводу отладчика появляется непосредственно перед выполнением какого-либо программного кода. По завершении возвращается значение функции function.
-
pdb.
set_trace
()¶ Запускает отладчик в точке вызова этой функции.
Может использоваться для создания точек останова в интересующих местах программы.
pdb.set_trace()
-
pdb.
post_mortem
(traceback)¶ Запускает поставарийную отладку с использованием объекта traceback, содержащего трассировочную информацию. Объект traceback обычно можно получить с помощью такой функции, как sys.exc_info().
-
pdb.
pm
()¶ Переходит в режим поставарийной отладки с использованием объекта traceback, сгенерированного последним исключением.
Команды отладчика¶
-
pdb.
a
(rgs)¶ Выводит список аргументов текущей функции.
-
alias [name [command]]
Создает псевдоним name для команды command. Подстроки, такие как ‘%1’,’%2’ и так далее, в строке command замещаются значениями параметров, которые указываются при вводе псевдонима. Подстрока ‘%*’ соответствует всему списку параметров. Если значение command не задано, выводится текущее определение псевдонима. Псевдонимы допускается вкладывать друг в друга и они могут содержать все, что допускается вводить в приглашении Pdb.
# Выводит переменные экземпляров (порядок использования: “pi classInst”)
alias pi for k in %1._ _dict_ _.keys(): print “%1.”,k,”=”,%1._ _dict_ _[k]
# Выводит переменные для экземпляра self
alias ps pi self
-
b(reak) [loc [, condition]]
Устанавливает точку останова в местоположении loc. Значением loc может быть либо имя файла и номер строки, либо имя функции в модуле.
Синтаксис параметра имеет следующий вид:
Значение | Описание |
---|---|
n | Номер строки в текущем файле |
filename:n | Номер строки в другом файле |
function | Имя функции в текущем модуле |
module.function | Имя функции в другом модуле |
-
cl(ear) [bpnumber [bpnumber ...]]
Сбрасывает точки останова с указанными номерами bpnumber. Если номера не указываются, команда сбросит все точки останова.
-
commands [bpnumber]
Определяет последовательность команд отладчика для автоматического выполнения по достижении точки останова bpnumber. Если необходимо указать несколько команд, их можно ввести в нескольких строках и использовать слово end, как признак конца последовательности. Если включить в последовательность команду continue, после встречи точки останова выполнение программы будет продолжено автоматически. Если параметр bpnumber не задан, команда commands применяется к последней установленной точке останова.
-
condition bpnumber [condition]
Добавляет условие condition к точке останова bpnumber. Параметр condition – это выражение, значение которого должно оцениваться как истинное, что-бы произошел останов в данной точке. Отсутствие параметра condition приводит к сбросу всех условий, установленных ранее.
-
pdb.
c
(ont(inue))¶ Возобновляет выполнение программы, пока не будет встречена следующая точка останова.
-
disable [bpnumber [bpnumber ...]]
Деактивирует указанные точки останова. В отличие от команды clear, после команды disable имеется возможность вновь активировать эти точки останова.
-
pdb.
d
(own)¶ Перемещает текущий кадр стека на один уровень вниз в стеке трассировки.
-
enable [bpnumber [bpnumber ...]]
Активирует указанные точки останова.
-
h(elp) [command]
Выводит список доступных команд. Если указана команда command, возвращает справочную информацию по этой команде.
-
ignore bpnumber [count]
Деактивирует точку останова на count проходов.
-
j(ump) lineno
Выполняет переход к следующей строке. Может использоваться только для перехода между инструкциями в одном кадре стека. Кроме того, не позволяет выполнить переход внутрь некоторых инструкций, например в середину цикла.
-
l(ist) [first [, last]]
Выводит листинг исходного программного кода. При использовании без аргументов эта команда выведет 11 строк, окружающих текущую строку (5 строк до и 5 строк после).
При использовании с единственным аргументом она выведет 11 строк, начиная с указанной строки.
При использовании с двумя аргументами – выведет строки из указанного диапазона.
Если зна чение параметра last меньше значения параметра first, оно будет интерпретироваться, как счетчик строк.
-
pdb.
n
(ext)¶ Выполняет инструкции до следующей строки в текущей функции. Если в текущей строке присутствуют вызовы других функций, они не учитываются.
-
p expression
Вычисляет значение выражения expression в текущем контексте и выводит его.
(Pdb) p 1+1 2 (Pdb)
-
pp expression
То же, что и команда p, но результат форматируется с использованием модуля pprint.
-
pdb.
q
(uit)¶ Выход из отладчика.
-
pdb.
r
(eturn)¶ Выполняет инструкции до момента выхода из текущей функции.
-
run [args]
Перезапускает программу с аргументами командной строки args, которые записываются в переменную sys.argv. Все точки останова и другие настройки отладчика сохраняются.
-
pdb.
s
(tep)¶ Выполняет одну строку исходного программного кода и останавливает выполнение внутри вызываемых функций.
-
tbreak [loc [, condition]]
Устанавливает временную точку останова, которая удаляется после первого срабатывания.
-
pdb.
u
(p)¶ Перемещает текущий кадр стека на один уровень вверх в стеке трассировки.
-
unalias name
Удаляет указанный псевдоним.
-
pdb.
until
()¶ Продолжает выполнение программы, пока поток выполнения не покинет текущий кадр стека или пока не будет достигнута строка с номером, больше чем у текущей. Например, если останов произошел в последней строке тела цикла, команда until продолжит выполнение всех инструкций, составляющих цикл, пока он не завершится.
-
pdb.
w
(here)¶ Выведет трассировку стека.