[英]Is there a way to debug Python code which runs on a `multiprocessing.Process`?
我想要的是能夠使用multiprocessing
程序包逐步調試在單獨進程中運行的代碼。
我記得大約一年前尋找解決方案,但沒有找到解決方案。 有人告訴我要做很多日志記錄,但是當然這是次等方法。 那么,也許有人在此期間提出了解決方案? 例如,某種使新生成的進程與調試器連接的機制?
您可以啟動該過程,而無需在此過程中使用Process接口,則需要手動調試。
您可能會發現WingIDE有用。 它的調試器非常好,它甚至支持調試遠程進程,而對調試的代碼只需要很少的測試。 它不是免費的,但值得付出代價,恕我直言。 (我完全不隸屬於Wingware,只是滿意的客戶...)
要在Wing中啟用遠程調試,您需要將文件wingdbstub.py
復制到要調試的應用程序所在的目錄,然后將其導入到要開始調試的代碼中。 (在WingIDE文檔中對此進行了相當全面的介紹 。)
如果您使用此示例並修改myfunc()
方法,使其看起來如下所示:
def myfunc(conn, commands):
import wingdbstub
# ... remainder same as original example
您應該能夠啟動WingIDE,在import
行之后立即設置斷點,然后從控制台啟動示例腳本。 它應該自動連接到Wing,並在您的斷點處停止。
如果您在使調試連接正常工作時遇到任何問題,則可能會發現這篇文章很有幫助。 (WingIDE文檔在覆蓋連接問題方面也做得不錯。)
與其通過Process啟動函數或類,不如直接調用它並像往常一樣調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.