這篇文章主要介紹“python中的pdb如何使用”,在日常操作中,相信很多人在python中的pdb如何使用問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”python中的pdb如何使用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注于南部企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),購(gòu)物商城網(wǎng)站建設(shè)。南部網(wǎng)站建設(shè)公司,為南部等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、pdb啟動(dòng)。
當(dāng)前frame綁定跟蹤函數(shù)trace_dispatch。
def trace_dispatch(self, frame, event, arg): if self.quitting: return # None if event == 'line': return self.dispatch_line(frame) if event == 'call': return self.dispatch_call(frame, arg) if event == 'return': return self.dispatch_return(frame, arg) if event == 'exception': ...
2、每一幀不同事件的處理都會(huì)經(jīng)過中斷控制邏輯。
主要是stop_here(line事件也會(huì)經(jīng)過break_here)函數(shù),處理后決定代碼是否中斷,需要中斷到哪一行。
如果需要中斷,觸發(fā)子類方法user_#event。
子類可以通過interaction更新棧幀信息,并在控制臺(tái)上打印相應(yīng)的信息,然后執(zhí)行cmdloop,使控制臺(tái)等待交互輸入。
def interaction(self, frame, traceback): self.setup(frame, traceback) # 當(dāng)前棧、frame、local vars self.print_stack_entry(self.stack[self.curindex]) self.cmdloop() self.forget()
3、用戶輸入調(diào)試命令。
如next并返回汽車時(shí),他們將首先調(diào)用set_#命令,設(shè)置stopframe、returnframe和stoplineno,這將影響中斷控制的邏輯,從而決定運(yùn)行到下一幀的中斷結(jié)果。
4、調(diào)試過程控制類的命令。
一般do_#命令都會(huì)返回1,這樣這次runloop馬上就結(jié)束了,下一次運(yùn)行到某一幀觸發(fā)中斷會(huì)再次啟動(dòng)runloop(見步驟3);對(duì)信息獲取類的命令,do_#命令沒有返回值,以保持目前的中斷狀態(tài)。
5、代碼運(yùn)行到下一幀,重復(fù)步驟3。
到此,關(guān)于“python中的pdb如何使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!