2017-08-29 16 views
3

在我的基於asyncio和asyncio tcp連接來調試PyCharm調試器的項目中,我得到了非常非常非常荒謬的錯誤。在PyCharm中調試異步代碼導致絕對瘋狂的不可重複的錯誤

如果我在運行後在代碼上放置斷點,斷點永遠不會觸發。 但是,如果在啓動程序之前放置了斷點,斷點將會觸發。

但在某些情況下,斷點觸發會導致奇怪的錯誤(如果在斷點處暫停並恢復)。

下一個例外我說:

  1. 類型錯誤: '協程' 對象不可調用的
  2. 關於SystemError:未知的操作碼

第一個例外是非常罕見的。可以在任何地方提出代碼並且不可重複。 第二個例外,我最近第一次評論。這在我的代碼中是可重複的。我放置斷點的功能在異步任務中起作用(asyncio.Task)。我不能從頭開始重複。但我認爲這種異常類型(未知操作碼??? O_O)應該讓你思考。 此外!如果我更改代碼,該例外消失:例如,我添加了a = 0一行。例外後沒有提出。刪除a = 0將再次返回此異常。

這是一種深奧的錯誤嗎?

我認爲PyCharm調試器與asnycio衝突。 或者我做錯了什麼?


未知的操作碼可以是放置斷點的函數中的任何代碼行。在代碼中的特定位置重複。 unknown opcode


此異常也可在其行,而且另一個函數裏面。非常難得且不可重複的 enter image description here

回答