У меня есть приложение Python Google App Engine, которое я хочу отладить на сервере разработки в Emacs. У меня есть исполняемый файл pdb
, который я создал, чтобы отладка хорошо работала с Emacs:
$ which pdb
/usr/bin/pdb
$ cat /usr/bin/pdb
#/bin/sh
exec python -m pdb "$@"
В Emacs я M-x pdb
получаю запрос Run pdb (like this):
, на который я ввожу pdb /usr/local/bin/dev_appserver.py /Users/[person]/path/to/app/directory
.
Это начинается красиво. Я получаю окно с подсказкой (Pdb)
, я могу успешно устанавливать точки останова в ранних частях кода, например, в некоторых файлах dev_appserver.py
, и использовать такие команды, как n
, для пошагового выполнения строки за раз. Затем я могу ввести c
, чтобы продолжить выполнение программы.
Проблема в том, что как только механизм приложения распечатывает свои обычные сообщения о запуске INFO
(в тот же буфер, в котором происходит сеанс Pdb), я больше не получаю приглашение (Pdb)
, поэтому я не могу больше вводить pdb
команды. Это и мой первый раз, когда я использую pdb
, и моя первая отладка в Emacs, так что, возможно, я просто делаю что-то явно неправильно.
pdb
и механизм приложения работать вместе за пределамиemacs
(stackoverflow.com/questions/4497672/) ... Затем попробуйте добавить еще один уровень сложности. - person mgilson   schedule 05.12.2013dev_appserver.py
с-m pdb
из терминала? Насколько я понимаю, если вы вызываете его из терминала, он просто прерывается на первой строке кода (в данном случае наdev_appserver.py
)? Это может быть не вариант, но я бы определенно предпочел не изменять исходный код только потому, что я хочу его отладить. - person Bryce Thomas   schedule 05.12.2013