任务目标
- Python实现wordcount
- Vscode连接InternStudio debug笔记
学习内容
任务1
- Python实现wordcount
任务2
- Vscode连接InternStudio debug笔记
pdb
pdb是Python的一个内置调试器,它允许开发者在代码执行过程中进行交互式调试。 pdb提供了多种命令来控制程序的执行,包括设置断点、单步执行代码、查看变量值等。以下是一些常用的pdb命令及其用途:
设置断点:在代码中导入pdb库import pdb
直接插入pdb.set_trace()
语句或在命令行中使用python -m pdb
脚本名.py来启动调试。在IDE中,可以通过点击行号区域来设置断点。
查看当前位置:使用l
(list)命令可以查看当前位置的代码行。
打印变量值:使用p 变量名
命令可以打印变量的当前值。
执行下一行代码:使用n(ext)
或s(tep)
命令可以执行下一行代码,如果该行包含函数调用,s
则会进入函数内部。
继续执行程序:使用c
命令可以继续执行程序直到下一个断点。
查看堆栈信息:使用bt
(backtrace)/w
命令可以查看调用堆栈的信息。
交互式解释器:使用:ml-search[interact]命令可以启动一个交互式解释器,使用当前代码的全局命名空间。
添加和删除断点:使用b 文件名:行号
添加断点,使用cl xx
/clear 断点编号
命令删除断点。
如果文件中有inspect.currentframe()
,则b inspect.currentframe
查看函数参数:在函数内部时,使用a命令可以查看函数的参数列表。
查看类型信息:使用whatis
表达式可以查看表达式的类型。
跳转到指定行:使用j 行号
可以直接跳转到指定的代码行。
查看源代码:使用l
可以查看当前位置前后11行的源代码。ll
查看全部源代码
退出调试模式:输入q
或Ctrl+D
可以退出pdb调试模式。
- 在开发机工作目录下创建wordcount.py文件,写入代码
- 输入
python -m pdb wordcount.py
进行非侵入式调试
- 在20 22 25这几个位置设置断点
- 继续执行文件到达各个断点处,打印所需变量信息
- 进入循环,去除循环中的断点,跳出循环
- 输入
c
返回最后的结果:
{'got': 2, 'this': 1, 'panda': 1, 'plush': 1, 'toy': 1, 'for': 3, 'my': 1, "daughter's": 1, 'birthday': 1, 'who': 1, 'loves': 1, 'it': 5, 'and': 3, 'takes': 1, 'everywhere': 1, "it's": 2, 'soft': 1, 'super': 1, 'cute': 1, 'its': 1, 'face': 1, 'has': 1, 'a': 3, 'friendly': 1, 'look': 1, 'bit': 1, 'small': 1, 'what': 1, 'i': 4, 'paid': 1, 'though': 1, 'think': 1, 'there': 1, 'might': 1, 'be': 1, 'other': 1, 'options': 1, 'that': 1, 'are': 1, 'bigger': 1, 'the': 1, 'same': 1, 'price': 1, 'arrived': 1, 'day': 1, 'earlier': 1, 'than': 1, 'expected': 1, 'so': 1, 'to': 2, 'play': 1, 'with': 1, 'myself': 1, 'before': 1, 'gave': 1, 'her': 1}
心得体会
平时用如VSCode这样的代码编辑器进行调试比较多,今天学习到了用pdb直接在命令行窗口对代码进行调试的方法,很有收获。