python - 在 PyCharm 中调试 asyncio 代码会导致绝对疯狂的不可重复错误

标签 python debugging pycharm breakpoints python-asyncio

在我基于使用 PyCharm 调试器调试的 asyncio 和 asyncio tcp 连接的项目中,我遇到了非常非常非常荒谬的错误。

如果我在运行后在代码上放置断点,断点将永远不会触发。 但如果在启动程序之前设置了断点,则会触发断点。

但在某些情况下,触发断点会导致奇怪的错误(如果在断点处暂停并恢复)。

我评论的下一个异常(exception):

  1. TypeError: 'coroutine' 对象不可调用
  2. 系统错误:未知操作码

第一个异常(exception)非常罕见。可以在代码的任何地方引发并且不可重复。 第二个异常(exception)是我最近第一次提到的。这在我的代码中是可重复的。我放置断点的函数是异步任务中的函数 (asyncio.Task)。我不能从头开始重复。但我认为异常类型(未知操作码???O_O)应该让你思考。 除了!如果我更改代码,异常就会消失:例如,我添加了 a = 0 行。之后未引发异常。删除 a = 0 将再次返回此异常。

这是一种深奥的错误吗?

我认为 PyCharm 调试器与 asnycio 冲突。 或者我做错了什么?


未知操作码可以是断点放置的函数中的任何代码行。在代码中的特定位置重复。 unknown opcode


这个异常也可以在行内,也可以在另一个函数内。非常罕见且不可复制 enter image description here

最佳答案

您使用的是哪个版本的 python?基于在启动进程之前插入操作码,python3.6 有新的调试器。您可以在此存储库中找到更多信息 https://github.com/Elizaveta239/frame-eval

关于python - 在 PyCharm 中调试 asyncio 代码会导致绝对疯狂的不可重复错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45936199/

相关文章:

python - 使用循环在 pyspark 数据框中添加多列

python - 从 django.contrib.gis.geos 导入 GEOSException、GEOSGeometry、fromstr ImportError : cannot import name GEOSException

pycharm - 如何在 PyCharm 中签署 ("signed-off-by") Git 提交?

python - 如何在 PyCharm 中更改正则表达式着色

python - PyCharm 代码检查不包括 PEP 8

python - Keras 多 GPU 模型对于自定义模型失败

python - 使用 pip 和 Python 3.6 在 Ubuntu 16.04 上安装 mysqlclient 时出错

java - 从 Eclipse 调试 JSP

ios - 记录或调试 iOS 的 Firebase HttpMetric 跟踪调用(无需等待 12 小时)

java - eclipse 调试器中的详细 java 线程状态?