• 技术文章 >Python技术 >Python基础教程

    python中pdb有哪些调试命令

    小妮浅浅小妮浅浅2021-10-13 09:40:18原创4085

    1、next执行下一条语句,如果本句是函数调用,则执行函数,接着执行当前执行语句的下一条。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    def stop_here(self, frame):

            ...

            # 如果frame还没跳出stopframe,永远返回true

            if frame is self.stopframe:

                if self.stoplineno == -1:

                    return False

                return frame.f_lineno >= self.stoplineno

      

      

            # 如果frame跳出了stopframe,进入下一个frame,则执行不会中断,一直到跳出到stopframe

            # 还有一种情况,如果在return事件中断执行了next,下一次跟踪在上一级frame中,此时上一级frame能跟踪到botframe,中断

            while frame is not None and frame is not self.stopframe:

                if frame is self.botframe:

                    return True

                frame = frame.f_back

            return False

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    def stop_here(self, frame):

            ...

            # stopframe为None

            if frame is self.stopframe:

                ...

            # 当前frame一定会追溯到botframe,返回true

            while frame is not None and frame is not self.stopframe:

                if frame is self.botframe:

                    return True

                frame = frame.f_back

            return False

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    def stop_here(self, frame):

            ...

            # 如果当前帧代码顺序执行,下一个frame的lineno==stoplineno

            # 如果执行到for循环的最后一行,下一个frame(for循环第一行)的lineno<stoplineno,不会中断。直到for循环执行结束,紧接着的下一行的lineno==stoplineno,执行中断

            if frame is self.stopframe:

                if self.stoplineno == -1:

                    return False

                return frame.f_lineno >= self.stoplineno

      

      

            # 如果在非botframe中,会先追溯到stopframe,返回false,同next

            while frame is not None and frame is not self.stopframe:

                if frame is self.botframe:

                    return True

                frame = frame.f_back

            return False

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

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

    专题推荐:python pdb
    上一篇:python中pdb的中断控制 下一篇:python标识符的使用注意

    相关文章推荐

    • python邮件协议的介绍• python变量类型的使用• python数据类型转换的注意点• python变量赋值的操作• python copy模块中的函数使用• python中Monkey测试的介绍• python中Monkey测试有什么特点• python Monkey的测试流程• python中pdb模块的运行原理• python中pdb的使用流程• python中pdb的中断控制

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网