python pdb.set_trace()

这个方法也是用pdb,但是不需要单步执行,我们只需要import pdb,然后,在可能出错的地方放一个pdb.set_trace(),就可以设置一个断点:

# err.py
import pdb

s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停
print(10 / n)

运行代码,程序会自动在pdb.set_trace()暂停并进入pdb调试环境,可以用命令p查看变量,或者用命令c继续运行:

$ python err.py 
> /Users/michael/Github/learn-python3/samples/debug/err.py(7)<module>()
-> print(10 / n)
(Pdb) p n
0
(Pdb) c
Traceback (most recent call last):
  File "err.py", line 7, in <module>
    print(10 / n)
ZeroDivisionError: division by zero

这个方式比直接启动pdb单步调试效率要高很多,但也高不到哪去。

IDE

如果要比较爽地设置断点、单步执行,就需要一个支持调试功能的IDE。目前比较好的Python IDE有:

Visual Studio Code:Visual Studio Code - Code Editing. Redefined,需要安装Python插件。

PyCharm:PyCharm: the Python IDE for Professional Developers by JetBrains

另外,Eclipse加上pydev插件也可以调试Python程序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中介绍了使用pdb.set_trace()来设置断点的方法。在代码中插入pdb.set_trace()后,程序会在该位置自动暂停并进入pdb调试环境。在调试环境中,可以使用命令p来查看变量的值,或者使用命令c来继续运行代码。例如,在引用\[2\]中的代码中,当程序执行到pdb.set_trace()时,会进入pdb调试环境,可以使用命令p n来查看变量n的值,然后使用命令c继续运行代码。在这个例子中,由于n的值为0,导致了ZeroDivisionError异常的发生。\[1\]\[2\] 另外,引用\[3\]中的代码展示了一个简单的示例,其中使用了pdb.set_trace()来设置断点。当程序执行到pdb.set_trace()时,会进入pdb调试环境,可以使用命令p来查看变量的值,然后使用命令c继续运行代码。在这个例子中,可以通过调试环境来观察变量a的值的变化。\[3\] #### 引用[.reference_title] - *1* *2* [python pdb.set_trace()](https://blog.csdn.net/weixin_63448558/article/details/130671990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python pdb调试方法](https://blog.csdn.net/qq_41554005/article/details/114301729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值