在PDB中运行Python Flask服务时,如何暂停/中断?

在PDB中运行Python Flask服务时,如何暂停/中断?,python,flask,pdb,Python,Flask,Pdb,我目前正在尝试调试python flask程序的内存使用情况,我可以通过添加以下内容在PDB中运行该程序: import pdb pdb.set_trace() 在我的服务器的入口点。然后我告诉PDB继续运行程序 我已经读到,通过执行Ctrl-C,我可以暂停在PDB中运行的程序,但Flask似乎正在捕获键盘中断异常: ^CKeyboardInterrupt Traceback (most recent call last): File "./server.py", line 4, in &

我目前正在尝试调试python flask程序的内存使用情况,我可以通过添加以下内容在PDB中运行该程序:

import pdb
pdb.set_trace()
在我的服务器的入口点。然后我告诉PDB继续运行程序

我已经读到,通过执行Ctrl-C,我可以暂停在PDB中运行的程序,但Flask似乎正在捕获
键盘中断
异常:

^CKeyboardInterrupt
Traceback (most recent call last):
  File "./server.py", line 4, in <module>
    from mauie.defaults import *
  File "/lib/python2.7/site-packages/flask_socketio/__init__.py", line 414, in run
  File "/lib/python2.7/site-packages/gevent/baseserver.py", line 284, in serve_forever
  File "/lib/python2.7/site-packages/gevent/event.py", line 77, in wait
  File "/lib/python2.7/site-packages/gevent/hub.py", line 338, in switch
KeyboardInterrupt
^CKeyboardInterrupt
回溯(最近一次呼叫最后一次):
文件“/server.py”,第4行,在
从mauie.com导入*
文件“/lib/python2.7/site packages/flask_socketio/_init__.py”,第414行,正在运行
文件“/lib/python2.7/site packages/gevent/baseserver.py”,第284行,在SERVER\u中
文件“/lib/python2.7/site packages/gevent/event.py”,第77行,正在等待
文件“/lib/python2.7/site packages/gevent/hub.py”,第338行,在交换机中
键盘中断

但是PDB提示符永远不会出现。

set_trace()只是一个Python函数,因此您可以在代码中的任何时候调用它。您是否考虑过简单地向代码中添加额外的断点并以这种方式查看内存?

set_trace()只是一个Python函数,因此您可以在代码中的任何时候调用它。您是否考虑过简单地向代码中添加额外的断点并以这种方式查看内存?

不确定为什么您会认为按ctrl-c会触发PDB。您需要在希望代码停止的位置创建断点。-这个问题提到它是可能的,它在烧瓶之外工作。这是因为flask截获了异常,所以PDB永远看不到它。不确定为什么您会认为按ctrl-c会触发PDB。您需要在希望代码停止的位置创建断点。-这个问题提到它是可能的,它在烧瓶之外工作。就是flask截获了异常,所以PDB永远也看不到它。就是这样,我正试图找出一个内存问题,但我们不知道它发生在代码中的什么地方。理想情况下,我希望能够在问题发生时暂停该过程,然后从那里进行调查。如果这真的只是您试图解决的内存问题,也许您最好使用探查器。python有几个可用的探查器,包括一个纯内存探查器:就是这样,我试图找出内存问题,但我们不知道它发生在代码中的什么地方。理想情况下,我希望能够在问题发生时暂停该过程,然后从那里进行调查。如果这真的只是您试图解决的内存问题,也许您最好使用探查器。python有几种可用的探查器,包括纯内存探查器: