用vscode斷點(diǎn)調(diào)試cherrypy非常頭疼,一旦改動(dòng)了代碼,就會(huì)卡在Waiting for thread pydevd.CheckAliveThread.

image.png
此時(shí)有兩個(gè)選擇,
- 一是直接按ctrl+c殺死進(jìn)程。再按F5重新開啟調(diào)試,這樣的好處是不用重新開新的終端,壞處是按ctrl+c殺死進(jìn)程很麻煩,而且有時(shí)候很慢。
-
二是直接點(diǎn)擊image.png
重啟調(diào)試,但是會(huì)開啟新的終端,之前的調(diào)試也會(huì)一直卡在那里。
那么你可能會(huì)問,就不能熱重載嗎,非要卡死在Waiting for thread pydevd.CheckAliveThread.?
確實(shí),我也想搞定這個(gè)問題,通過查代碼,我發(fā)現(xiàn)這個(gè)輸入語句來自cherrypy/process/wspbus.py line365,程序就卡在了下一句t.join()。那我不加個(gè)條件判斷,不join pydevd.CheckAliveThread進(jìn)程。然后可以restart了
image.png
但是重啟不了。在vscode里點(diǎn)擊調(diào)試按鈕的時(shí)候,終端其實(shí)自動(dòng)輸入了一行命令。但是我不點(diǎn)擊調(diào)試按鈕,手動(dòng)輸入這一行命令就不行

image.png
