Я звоню python -m pdb myapp.py
, когда исключение стреляет, и я обычно отбрасывался бы назад к pdb интерпретатору для исследования проблемы. Однако это исключение выдается после того, как я звонил через curses.wrapper()
и перешел к режиму проклятий, представив pdb бесполезный интерпретатор. Как я могу работать вокруг этого?
Джеймс `ответ хороший, и я проголосовал за него, но я бы также подумал о том, чтобы попытаться разделить уровни логики и представления моей программы. Держите часть curses тонким слоем поверх библиотеки и напишите простой драйвер, который запускает правильные процедуры для воссоздания ошибки. Тогда вы можете погрузиться в дело и сделать то, что необходимо.
Другой способ, который я могу придумать, - это создать функцию под названием debug
или что-то, что вернет вас на обычный экран и вызовет pdb. Затем вставьте его непосредственно перед кодом, который вызывает исключение, и запустите вашу программу. Что-то вроде
def debug(stdscr):
curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()
import pdb; pdb.set_trace()
По-видимому, это похоже на то, что делается с функцией curses.wrapper
. Это кратко упоминается на http://www.amk.ca/python/howto/curses/ .
Незнание Python , возможно, это не совсем то, что вам нужно. Но очевидно, что winpdb может подключаться к сценарию - точно так же, как gdb может подключаться к запущенному процессу (IIUC).
http://winpdb.org/docs/launch-time/
Не вводите в заблуждение название, оно не зависит от платформы.