Я использую модуль pdb для отладки программы. Я хотел бы понять, как я могу выйти из pdb и позволить программе продолжить работу до завершения. Программа требует больших вычислительных ресурсов для запуска, поэтому я не хочу выходить из нее без попытки выполнения скрипта. continue
не работает. Как мне выйти из pdb и продолжить свою программу?
112
continue
выходит из циклов,return
выходит из методов / функцийcontinue
команде pdb. Не заявление Python.continue
следует «Продолжать выполнение, останавливаться только при обнаружении точки останова», согласно документации. У вас есть установленная точка останова?pdb.set_trace()
в исходном коде?Ответы:
continue
should «Продолжить выполнение, останавливаться только при обнаружении точки останова», поэтому у вас где-то установлена точка останова. Чтобы удалить точку останова (если вы вставили ее вручную):Или, если вы используете
pdb.set_trace()
, вы можете попробовать это (хотя, если вы используете pdb более изящными способами, это может сломать ...)источник
set_trace = lambda: None
:)set_trace = lambda: None
. Организация Python должна добавить команду, которая просто позволяет вам выйти из pdb.Простой Ctrl- Dвылезет из pdb. Если вы хотите продолжить, а не прерывать работу, просто нажмите, cа не всю
continue
командуисточник
exit
Ответ от @voithos правильно, так что я просто добавить одну альтернативу в том случае , если вы используете
set_trace
. Да,pdb.set_trace = lambda: None
взлом работает нормально, но не в том случае, если у вас установлены другие точки останова и вы хотите снова включить его позже. Для меня это указывает на то, что, к сожалению,pdb
не хватает множества функций (даже таких базовых вещей, как списки отображения), и это другой случай.Хорошая новость заключается в том, что
pdb++
это отличная заменаpdb
, и одна из вещей, которую она решает, - это как раз проблема отключенияset_trace
. Итак, вы можете просто сделать:а затем в
(Pdb++)
командной строке введите:Если вы хотите снова включить его позже, неудивительно, что это сработает:
Легко! А еще вы получите много других полезных вкусностей.
источник
Если вы действительно хотите выйти из отладчика, вам нужно запустить что-то вроде WinPdb, которое позволяет вам отключиться от процесса, а затем выйти из отладчика (NB, это многоплатформенный).
Если вы хотите продолжить отладку, но больше не останавливаетесь на заданной точке останова, вам необходимо:
cl bp_number
или,clear file:line
чтобы навсегда удалить точку останова либоdisable pb_number
отключить ее, но иметь возможность переключить обратно.continue
и ваша программа будет работать до следующегобудет достигнута другая точка останова.Подробнее об этом см. В руководстве .
источник
найдите новый способ выйти из pdb, ничего не устанавливая: - когда программа начнет работать, нажмите ctrl + c, затем переключите окно на другое (любое окно), тогда исходная оболочка с запущенным pdb должна показать что-то вроде: (pdb) ..... - переключитесь обратно на pdb, затем нажмите Enter, теперь все готово, командная оболочка pdb снова появляется
источник