我有一个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
继续执行程序。
问题是,只要app引擎打印出通常的启动INFO
消息(发送到Pdb会话的同一缓冲区),我就不会得到(Pdb)
提示符再次,所以我不能再输入任何pdb
命令。这是我第一次使用pdb
和我第一次在Emacs中调试时,所以也许我只是做了一些完全错误的事情。
答案 0 :(得分:2)
可能有效的替代方法是从没有pdb的emacs命令行启动dev服务器,并在代码中插入pdb断点
import pdb
pdb.set_trace()
我通常使用此调试,但不通过emacs调试。