Запуск pdb из pdb

Я отлаживаю сценарий, который пишу, и результат выполнения оператора из pdb не имеет смысла, поэтому моя естественная реакция — попытаться отследить его с помощью pdb.


Перефразируя: Эй, чувак, мне нравится python, так что можешь поместить мой pdb в мой pdb, чтобы я мог отлаживать, пока я отлаживаю?


person Andrew Farrell    schedule 15.06.2010    source источник
comment
Вы пытались временно поместить оператор в сценарий?   -  person David Z    schedule 16.06.2010
comment
Извиняюсь за несколько коряво сформулированный вопрос. Фактическое решение моей проблемы: при присвоении значений переменным для проверки вещей в pdb будьте осторожны, какие имена переменных вы используете. a = some(expression) + 42 Не является присваиванием. Скорее, pdb будет интерпретировать 'a' как команду и напечатать все аргументы текущей функции. foo = some(expression) + 42 работы, которые я с тех пор обнаружил, что решал не ту проблему.   -  person Andrew Farrell    schedule 17.06.2010


Ответы (1)


Похоже, вы ищете что-то довольно заметное в документации, а именно набор методов, позволяющих программно вызывать отладчик для выражений, кода в строках или функций:

Я использую их, когда уже нахожусь в подсказке pdb (как правило, попадая туда, сталкиваясь с удачно расположенным оператором pdb.set_trace()) и хочу проверить, например, варианты некоторых вызовов методов, которые не вызываются в мой источник, но который я могу вызвать прямо в текущем контексте, вручную.

Если это не то, что вы искали, вам просто нужна команда «шаг» вместо команды «следующая» в приглашении? (Непонятно, что вы на самом деле хотите здесь. Пример может помочь.)

person Peter Hansen    schedule 16.06.2010