在我的基于使用 PyCharm 调试器进行调试的 asyncio 和 asyncio tcp 连接的项目中,我遇到了非常非常荒谬的错误。
如果我在运行后在代码上放置断点,则断点永远不会触发。
但是如果在启动程序之前设置了断点,则会触发断点。
但在某些情况下,断点触发会导致奇怪的错误(如果在断点处暂停并恢复)。
我评论的下一个例外是:
- 类型错误:“协程”对象不可调用
- 系统错误:未知操作码
第一个例外非常罕见。可以在代码的任何地方引发并且不可重复。
第二个例外是我最近第一次提到的。这在我的代码中是可重复的。我放置断点的函数是异步任务中的函数(asyncio.Task
)。我无法从头开始重复。但我认为异常的类型(未知操作码???O_O)应该让你思考。
除了!如果我更改代码,异常就会消失:例如我添加了a = 0
线。之后未引发异常。删除的a = 0
将再次返回此异常。
这个错误是一种深奥的错误吗?
我认为 PyCharm 调试器与 asnycio 冲突。
或者也许我做错了什么?
Unknown opcode can be any line of code in the function where breakpoint put. Repeats in specific places in code.
This exception also can be at line, but also inside another function. Very rare and unreproducible
你使用哪个版本的Python? python3.6 有一个新的调试器,基于在启动进程之前插入操作码。您可以在此存储库中找到更多信息https://github.com/Elizaveta239/frame-eval https://github.com/Elizaveta239/frame-eval
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)