第十六章:开发工具-pdb:交互式调试工具-控制调试工具-导航执行栈

16.7.2 控制调试工具
调试工具的接口是一个很小的命令语言,允许你在调用栈中移动,检查和修改变量的值,以及控制调试工具如何执行程序。这个交互调试工具使用readline接受命令,而且支持对命令、文件名和函数名的tab完成特性。输入一个空行会使其重新运行之前的命令,除非是一个list操作。

16.7.2.1 导航执行栈
调试工具运行的任何时刻,使用where(缩写为w)可以得出正在执行哪一行,以及程序在调用栈的哪个位置。在下述情况下,模块pdb_set_trace.py的go()方法中第22行将停止执行。
在这里插入图片描述

要增加当前位置的更多上下文,可以使用list(l)。
在这里插入图片描述
默认地会列出包括当前行在内的周围11行(前面5行,后面5行)。如果使用list并提供一个数值参数,则会列出指定行(而不是当前行)周围的11行。
在这里插入图片描述
如果list接收两个参数,则会把它们分别解释为第一行和最后一行,包含在其输出中。
在这里插入图片描述
longlist (ll)命令打印当前函数或帧的源码,而不必提前确定行号。这个命令名为"longlist",这是因为对于长函数,与list的默认输出相比,它会生成更多的输出。
在这里插入图片描述

source命令加载和打印一个任意的类、函数或模块的完整源代码。
在这里插入图片描述

可以使用up和down在当前调用栈的帧之间移动。up(缩写为u)向栈中较旧的帧移动。down(缩写为d)则移向较新的帧。每次在栈中上移或下移时,调试工具都会打印当前位置,格式与where生成的输出格式相同。
在这里插入图片描述
向up或down传入一个数值参数以便一次在栈中上移或下移指定的步数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值