有没有办法让pdb和Mac终端良好配合?
在调试我的Django应用时,我会用pdb这个工具来进行交互式调试,方法是使用pdb.set_trace()
。
不过,每当我修改一个文件时,本地的Django服务器会重启,这样我就看不到我在终端输入的内容,直到我输入reset
。
有没有办法让这个过程自动进行呢?每次都要取消运行服务器、重置再重新启动,真的很麻烦。我听说在其他操作系统(比如Ubuntu)上不会出现这种情况,那有没有办法让我的Mac上也不发生这种情况呢?(我用的是Snow Leopard)。
3 个回答
1
我找到的最好的方法是在pdb里面执行一个重置,像这样:
import os; os.system("reset");
1
在你保存文件更改之前,尽量先[q
]退出pdb。这可以防止控制台出现问题,但只对这一次的pdb.set_trace()有效。
如果你忘记退出pdb,还是得用老办法:按下^C,然后输入reset
,再运行./manage.py runserver
。为了让重置过程不那么麻烦,可以把重置和启动服务器的命令放在一行里。这样,你只需要快速输入^Rreset
或者按上箭头就能完成。
[ ... ]
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
^C$ reset && ./manage.py runserver
8
好的,这个方法对我有效。我创建了一个名为 ~/.pdbrc 的文件,并在里面添加了以下内容:
import os
os.system("stty sane")
现在每次运行 pdb 时,它都会把行设置恢复到正常状态。
如果我切换到终端,我还是需要手动设置一下,但这样就不用每次都退出运行服务器再重置了。