PDB不会在断点处停止

Rap*_*ael 18 python pdb

我是直接使用pdb进行调试的新手,我在调试Django应用程序时遇到了一些问题.这是我正在做的事情:

python -m pdb manage.py runserver
(pdb) b core/views.py:22
Breakpoint 2 at /Users/raphaelcruzeiro/Documents/Projects/pdb_test/core/views.py:22
(Pdb) c
Run Code Online (Sandbox Code Playgroud)

但是,执行直接通过断点.我错过了一些命令吗?本手册不再详述设置断点了.

Gus*_*ira 17

我遇到了同样的问题.

尝试类似的东西python -m pdb ./manage.py runserver --nothreading --noreload 127.0.0.1:8080.它为我解决了这个问题.

似乎PDB的断点是线程特定的,--nothreading并且--noreload选项和选项是必要的,以避免一些可能混淆PDB的分叉.这也是为什么set_trace有效,因为它直接在感兴趣的线程中调用.


mkr*_*eli 8

我通常更喜欢set_trace()源代码本身,这样开发服务器在添加/删除时会重新加载,我不需要再次停止并重新启动它.例如:

def get_item(request):
   import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)

访问视图时,pdb将启动.

  • 这种替代方案的问题在于它污染了源代码 (3认同)