2015-12-17 4 views
0

Я нахожу, что есть два способа вызвать pdb.Как pdb вызывается при запуске отладочной программы до функции из модуля pdb?

  • В оболочке ОС, запустите pdb myscript.py, который вызывает PDB немедленно и позволяет запускать PDB команды на управлении myscript.py.

  • в myscript.py, импортировать модуль pdb и добавить функцию из модуля pdb в myscript.py. Затем запустите myscript.py без pdb как python myscript.py, а когда работа myscript.py достигает первой функции pdb в, вызывается pdb, что позволяет запускать команды pdb при работе myscript.py.

Мои вопросы:

  • являются PDB скрипт (запускать в оболочке в первом способе) и PDB модуль (импортирован в myscript.py во втором пути) и в том же сценарии pdb.py?

  • Во втором способе, как pdb вызывается при запуске отлаженной программы до функции из модуля pdb, так что два способа выглядят одинаково после вызова pdb?

ответ

1

В моей системе Debian, различные версии/USR/BIN/PDB (включая pdb3.5 и pdb2.7) символические ссылки, указывающие на ../lib/python?.?/pdb.py (для две версии pdb, которые я упомянул?.? 3,5 или 2,7). Поэтому для меня модуль и сценарий являются буквально одним и тем же файлом (с двумя разными путями). Скрипт условно вызывает pdb.main() в обычном стиле «python module is script».

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

Другим распространенным способом вызова pdb является использование pdb.run; Я использовал вызов pdb.run в интерпретаторе python gdb для отладки кода расширения gdb, написанного на python.

 Смежные вопросы

  • Нет связанных вопросов^_^