当前位置: 首页 > 图灵资讯 > 行业资讯> python中pdb有哪些调试命令

python中pdb有哪些调试命令

来源:图灵python
时间: 2024-06-24 13:39:24

1、next执行下一个句子。如果本句是函数调用,则执行函数,然后执行当前执行句子的下一个句子。

defstop_here(self,frame):
...
#如果frame还没有跳出stopframe,永远回到true
ifframeisself.stopframe:
ifself.stoplineno==-1:
returnFalse
returnframe.f_lineno>=self.stoplineno


#如果frame跳出stopframe,进入下一个frame,在跳出stopframee之前,执行不会中断
#另一种情况是,如果next在return事件中断执行,下次将跟踪到上一级frame,此时上一级frame可以跟踪botframe,中断
whileframeisnotNoneandframeisnotself.stopframe:
ifframeisself.botframe:
returnTrue
frame=frame.f_back
returnFalse

2、step执行下一个命令,如果本句是函数调用,s将执行到函数的第一句。

defstop_here(self,frame):
...
#stopframeNone
ifframeisself.stopframe:
...
#目前frame肯定会追溯到botframe,返回true
whileframeisnotNoneandframeisnotself.stopframe:
ifframeisself.botframe:
returnTrue
frame=frame.f_back
returnFalse

3、return执行当前运行函数到结束。

defstop_here(self,frame):
...
#如果按照当前帧代码顺序执行,下一个framelineno==stoplineno
#如果执行到for循环的最后一行,下一个frame(for循环的第一行)的linenoo<stoplineno,不会中断。直到for循环结束,下一行的linenoo才会结束==stoplineno,执行中断
ifframeisself.stopframe:
ifself.stoplineno==-1:
returnFalse
returnframe.f_lineno>=self.stoplineno


#在非botframe中,将首先追溯到stopframe,返回false,同next
whileframeisnotNoneandframeisnotself.stopframe:
ifframeisself.botframe:
returnTrue
frame=frame.f_back
returnFalse

以上是python中pdb调试命令的介绍,希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。