日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:python中pdb的使用流程

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。

以上就是python中pdb的使用流程,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。


分享題目:創(chuàng)新互聯(lián)Python教程:python中pdb的使用流程
URL標(biāo)題:http://m.5511xx.com/article/coeshgi.html