我假设这个问题对于 pydev 来说是通用的,但我只在 eclipse 中使用过 pydev,所以我不确定......
过去,我不小心这样做了,我想学习如何定期这样做:
- 我在 eclipse pydev 中运行断点调试器
- 我停在一行代码上,意识到我需要改变一些东西
- 我对我的代码进行了更改
- 我保存了代码
- 调试器在我最后一次更改之前跳转,以便我可以继续调试会话并使用新更改:
- 好像旧代码从未发生过
我不确定这是如何工作的,但我想确切地了解如何触发它,因为在我调试时它不再发生。
我假设这个问题对于 pydev 来说是通用的,但我只在 eclipse 中使用过 pydev,所以我不确定......
过去,我不小心这样做了,我想学习如何定期这样做:
我不确定这是如何工作的,但我想确切地了解如何触发它,因为在我调试时它不再发生。
嗯,这有一些方面:
如果您使用的是框架(例如 Django),它具有内置的重新加载支持,因此,您将即时获得代码更改(通常通过产生一个新进程)。
现在,如果不是这种情况,在最新的 PyDev 版本中,PyDev 将跟踪对代码所做的版本,并将尝试将旧代码“热交换”为新代码。
它基于 xreload 并将尝试在运行时修补类(即:直接更改类/方法代码)。
唯一需要注意的是,它只有在您离开给定函数并稍后再次返回时才会生效,因为 Python 无法在运行的帧上修补代码(有时它可能无法成功执行交换取决于代码的构造方式,但对于常见的情况,它确实工作得很好)。
请注意,这仅在最新的 PyDev 版本中可用。它在一些较早的版本上,但由于其实施中的问题而被删除 - 但进行了改造并重新添加回来:)
有关详细信息,请参阅:http ://pydev.org/manual_adv_debugger_auto_reload.html。