PDB进入交互Shell原因及跳转至download_url函数方法咨询
PDB进入交互Shell的原因
- 主动触发调试:代码中调用了
pdb.set_trace()(Python3.6及以下)或breakpoint()(Python3.7+),执行到该语句时会启动PDB交互环境 - 启动脚本时指定调试:通过
python -m pdb your_script.py命令运行脚本,程序会从开头进入PDB交互调试 - 程序异常触发:当程序抛出未捕获的异常时,若用PDB启动脚本,会自动停在异常发生位置并进入交互Shell
- 调试中主动进入:在PDB调试会话里执行
interact命令,会临时进入Python交互Shell,输入ctrl+d可回到PDB
跳转到目标函数的方法
如果想直接跳转到download_url函数并跳过中间代码,不用逐行执行s/n,可以用以下方法:
- 给目标函数设断点:在PDB交互中执行命令
b download_url(若函数在当前模块);如果函数在其他模块,需指定完整路径如b module_name.download_url。设置好后执行c(continue)命令,程序会直接运行到该函数的第一行代码处停下。 - 跳转到下一个被调用的函数:如果想直接进入下一个被调用的函数,可使用
s(step)命令——若当前行包含函数调用,s会直接进入该函数;若当前行无函数调用,s会逐行执行直到遇到下一个函数调用。如果想跳过当前函数内的剩余代码,直接到函数返回后的下一个执行点,可使用return命令,程序会运行到当前函数结束,停在调用该函数的下一行。
内容的提问来源于stack exchange,提问作者Tanishk Singh
相关产品推荐
相关产品推荐

