Инициализация python-отладчика с помощью файла
Я запускаю код с pdb
python -m pdb somecode.py 3
Я хотел бы передать файл в командной строке, где я могу указать точки останова. Код выбирает какой-либо набор данных, считая переданный параметр - в данном случае 3
, Я запускаю этот скрипт на кластере. Я знаю, что это возможно настроить .pdbrc
, но у меня есть несколько заданий, выполняющих этот код в разных наборах данных (в этих наборах данных код работает правильно), и я не хочу вмешиваться в это - на самом деле другие задания находятся в очереди кластера, и они могут запускаться в любое время.
РЕДАКТИРОВАТЬ: можно ли установить точки останова, перейти к следующей точке останова, установить переменную, перейти к следующей точке останова?
1 ответ
Ты можешь использовать -c
вариант (только Python 3). Цитата документов ( https://docs.python.org/3/library/pdb.html):
Новое в версии 3.2: pdb.py теперь принимает опцию -c, которая выполняет команды, как если бы они были указаны в файле.pdbrc, см. Команды отладчика.
установить точку останова в строке 3 (и перейти к ней - для этого нужна вторая '-c'):
python -m pdb -c "b 3" -c c somecode.py 3
о последовательности инструкций: да, несколько опций -c = несколько инструкций. Но похоже, что с помощью этого метода вы не можете установить переменные: -c "aaa=1"
не работает. Вы можете попробовать использовать alias
команда для предопределения некоторых переменных через аргументы командной строки - дополнительная команда вручную в pdb и все необходимое будет установлено:
python -m pdb -c "b 3" -c c -c "alias setvars aaa=1;bbb=1" somecode.py 3
(Pdb) setvars
(Pdb) aaa
1
(Pdb) bbb
1
(Pdb)