1. 程式人生 > >一種新的python區域性除錯手法

一種新的python區域性除錯手法

我們都知道,python裡面可以用pdb來除錯程式碼。但是pdb往往不大好用。有時候除錯程式碼往往在多重條件裡面,直接用pdb需要下條件斷點,設定複雜的條件。

一個簡單的辦法就是這麼幹。

__import__('pdb').set_trace()

但是有的時候,連這個出現的條件都不滿足。例如,程式碼必須在一個受限環境中執行,很難拿到console,或者其他林林總總的毛病。這時候,我們還有一招祕技。

import pdb, socket
s = socket.socket()
s.connect(('127.0.0.1', 8888))
f = s.makefile()
pdb.Pdb(stdin=f, stdout=f).set_trace()

在連線到的目標埠上,提前用nc做好監聽,就可以在觸發斷點的時候直接連線上來除錯。