gpt4 book ai didi

python - 在 Emacs 中从 App Engine 取回 `pdb` 的控制权

转载 作者:行者123 更新时间:2023-12-01 05:30:28 25 4
gpt4 key购买 nike

我有一个 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 session 发生的同一缓冲区),我就不会得到 ( Pdb) 再次提示,因此我无法再输入任何 pdb 命令。这是我第一次使用 pdb 也是我第一次在 Emacs 中调试,所以也许我只是做了一些明显错误的事情。

最佳答案

@TimHoffman 有一个很好的答案。开发服务器从各种实际服务器进程重新路由 pdb,因此您将无法从命令行启动 pdb。

另一种可行的方法是从 emacs 命令行启动开发服务器(不使用 pdb),并在代码中插入 pdb 断点

import pdb
pdb.set_trace()

我通常用它来调试,但不是通过 emacs。

关于python - 在 Emacs 中从 App Engine 取回 `pdb` 的控制权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com