代码之家  ›  专栏  ›  技术社区  ›  Artem Selivanov

在PyCharm中调试异步代码会导致绝对不可重复的错误

  •  5
  • Artem Selivanov  · 技术社区  · 7 年前

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

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

    接下来我提到的例外情况是:

    1. 系统错误:未知操作码

    第二个例外是我最近第一次提到的。这在我的代码中是可以重复的。我放置断点的函数是异步任务中的函数( asyncio.Task ). 我不能从头开始重复。但是我认为异常的类型(未知操作码???O_O)应该让你思考。 此外如果我更改代码,异常就会消失:例如,我添加了 a = 0 a=0

    这是一种深奥的错误吗?

    或者我做错了什么?


    unknown opcode


    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   dyus    7 年前

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