【问题标题】:Django project not stopping at breakpoints PyDevDjango 项目没有在断点处停止 PyDev
【发布时间】:2013-11-12 01:06:28
【问题描述】:

我知道这是一个长期讨论的话题,并且here 也回答了类似的问题,但不幸的是,网上冲浪的解决方案对我不起作用。

我已经正确设置了所有内容,我认为描述问题的最佳方式是在 Eclipse 中发布我的控制台日志。

pydev debugger: starting
('Executing file ', 'D:\\workspace\\vimsgeomanager\\src\\videosorveglianza\\manage.py')
('arguments:', "['D:\\\\workspace\\\\vimsgeomanager\\\\src\\\\videosorveglianza\\\\manage.py', 'runserver', '--noreload']")
('Connecting to ', '127.0.0.1', ':', '63320')
('Connected.',)
('received command ', '501\t1\t1.1')
sending cmd: CMD_VERSION 501    1   1.1

sending cmd: CMD_THREAD_CREATE 103  2   <xml><thread name="pydevd.reader" id="-1"/></xml>

sending cmd: CMD_THREAD_CREATE 103  4   <xml><thread name="pydevd.writer" id="-1"/></xml>

('received command ', '111\t3\tD:\\workspace\\vimsgeomanager\\src\\videosorveglianza\\Contrib\\VimsNVRX\\drivers\\NVRX_Manager.py\t32\t**FUNC**connect\tNone')
Added breakpoint:d:\workspace\vimsgeomanager\src\videosorveglianza\contrib\vimsnvrx\drivers\nvrx_manager.py - line:32 - func_name:connect
('received command ', '111\t5\tD:\\workspace\\vimsgeomanager\\src\\videosorveglianza\\Contrib\\VimsNVRX\\drivers\\NVRX_Manager.py\t35\t**FUNC**connect\tNone')
Added breakpoint:d:\workspace\vimsgeomanager\src\videosorveglianza\contrib\vimsnvrx\drivers\nvrx_manager.py - line:35 - func_name:connect
('received command ', '111\t7\tD:\\workspace\\vimsgeomanager\\src\\videosorveglianza\\Contrib\\VimsNVRX\\drivers\\NVRX.py\t467\t**FUNC**getStreamCaps\tNone')
Added breakpoint:d:\workspace\vimsgeomanager\src\videosorveglianza\contrib\vimsnvrx\drivers\nvrx.py - line:467 - func_name:getStreamCaps
('received command ', '122\t9\t;;')
Exceptions to hook : []
('received command ', '124\t11\t')
('received command ', '101\t13\t')
ContribUtils.appendConf: considero la cartella D:\workspace\vimsgeomanager\src\videosorveglianza\conf\contrib
MODALITA' SINGOLO SERVER
SETTINGS DI DEBUG: trovato specialconf
ContribUtils.appendConf: considero la cartella D:\workspace\vimsgeomanager\src\videosorveglianza\conf\contrib
MODALITA' SINGOLO SERVER
SETTINGS DI DEBUG: trovato specialconf
Validating models...
0 errors found

Django version 1.2, using settings 'videosorveglianza.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
sending cmd: CMD_THREAD_CREATE 103  6   <xml><thread name="MainThread" id="pid4420_seq4" /></xml>

('received command ', '112\t15\tD:\\workspace\\vimsgeomanager\\src\\videosorveglianza\\Contrib\\VimsNVRX\\drivers\\NVRX_Manager.py\t35')
Removed breakpoint:d:\workspace\vimsgeomanager\src\videosorveglianza\contrib\vimsnvrx\drivers\nvrx_manager.py
('received command ', '111\t17\tD:\\workspace\\vimsgeomanager\\src\\videosorveglianza\\Contrib\\VimsNVRX\\drivers\\NVRX_Manager.py\t35\t**FUNC**connect\tNone')
Added breakpoint:d:\workspace\vimsgeomanager\src\videosorveglianza\contrib\vimsnvrx\drivers\nvrx_manager.py - line:35 - func_name:connect

服务器对每个请求都正确响应,唯一的是它没有在断点处阻塞;更准确地说,它仅适用于 manage.py 中添加的断点

为了避免误解,我的机器上有服务器的代码,它是一个 Eclipse 项目,所以我不想使用 PyDev 提供的远程调试器工具。我想简单地放置一个断点并在代码执行时停止代码。

我已经尝试过更改 PyDev 的常量

DEBUG_TRACE_LEVEL
DEBUG_TRACE_BREAKPOINTS

非常感谢您提供的每一个提示!

【问题讨论】:

    标签: django debugging eclipse-plugin pydev breakpoints


    【解决方案1】:

    我从您的报告中看不出任何问题。

    当一切似乎正常但调试器停止工作时,如果您的代码中有一些无限递归(并在某处处理它),Python 会出现自动禁用跟踪的问题(从而删除调试器) -- 我已经看到它发生在更多的情况下,由于一些 Python 错误,跟踪会停止。

    有关此类问题,请参阅:https://stackoverflow.com/a/9502960/110451 并检查是否是您的情况——尤其是定义跟踪函数 (trace_func) 并使用 sys.settrace 设置以检查跟踪是否在某个时间停止的部分。

    【讨论】:

    • 非常感谢您的回复。我想到的一件事是以下,我不知道我是否正确。例如,如果我将断点放在 manage.py 或紧随其后调用的文件中,这些断点就会起作用。然后我在 urls.py 或它调用的文件中放置了一个断点,BP 不起作用,但如果我使用远程服务器调试器放置它,它就会起作用。所以我的想法是,不会是调试器“认为”程序在配置之后就结束了吗?因为没有确定对 urls.py 的调用,所以程序无法知道什么时候会发生。
    • 远程调试器无论当前状态如何都会进行跟踪,因此,它应该无论如何都可以工作......至于原始问题,最常见的情况是您的一些代码破坏了 Python 跟踪(有点脆弱) - 因此,如果该答案中的 trace_func() 没有正确运行到程序的末尾,那么它可能表示您的代码中可能需要修复的问题(例如触发无限递归)。
    • 好吧,例如,如果我现在没有从 trace_func() 中得到任何输出,这意味着 Python 代码中存在一些问题,但问题是在后台处理的,所以我仍然可以让它运行对吧?
    • 实际上,您应该得到某个点的输出(请注意,您应该在常规模式下运行您的代码 - 即:不是调试模式 - 以查看输出并检查输出停止打印的位置找出跟踪功能停止工作的地方)。
    猜你喜欢
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2021-12-18
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多