2017-08-29 6 views
3

私のプロジェクトでは、PyCharmデバッガでデバッグするasyncioとasyncio tcp接続に基づいて、非常に非常に間違ったエラーが発生します。PyCharmでasyncioコードをデバッグすると、狂った反復不可能なエラーが発生します

実行後にコードにブレークポイントを置くと、ブレークポイントは決して起動しません。 しかし、プログラムを開始する前にブレークポイントが置かれていれば、ブレークポイントが起動します。

しかし、ブレークポイントで発生すると、(ブレークポイントで一時停止して再開した)奇妙なエラーが発生することがあります。私が述べ

次の例外:

  1. はTypeError: 'コルーチン' オブジェクト呼び出すことはできません
  2. はSystemError:不明なオペコード

まず例外は非常にまれです。コード上で任意の場所で持ち上げることができ、反復不可能です。 2回目の例外は、最近初めてのことです。これは私のコードで繰り返すことができます。ブレークポイントを置く関数は、非同期タスク(asyncio.Task)の関数です。私は最初から繰り返すことはできません。しかし、私は例外のタイプ(未知のopcode ??? O_O)はあなたを考えるべきだと思います。さらに !コードを変更すると例外がなくなりました。たとえば、a = 0行を追加しました。例外は後に発生しません。 a = 0を削除すると、この例外が再度返されます。

このような難解なエラーはありますか?

PyCharmデバッガがasnycioと競合していると思います。 または、私は何か間違っていますか?


不明なオペコードは、ブレークポイントが置かれた関数内の任意の行のコードにすることができます。コードの特定の場所で繰り返します。 unknown opcode


この例外は、ラインではなく、別の関数内であることができます。非常にまれで再現不可能 enter image description here

答えて

1

あなたはどのpythonを使用していますか?プロセスを開始する前にオペコードを挿入することに基づいて、python3.6用の新しいデバッガがあります。このレポでさらに詳しい情報を見つけることができますhttps://github.com/Elizaveta239/frame-eval

関連する問題