python -- pdb 调试

2024-05-31 02:18
文章标签 python 调试 pdb

本文主要是介绍python -- pdb 调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于pdb如何调试python程序,请阅读官网文档.
https://docs.python.org/2/library/pdb.html?highlight=pdb#pdb

h(elp) [command] ---- 查看可用的调试命令
w(here) 输入当前栈的跟踪情况, 换句话说就是看程序执行到了哪里
b(reak) 下断点,配合c((ont)inue)使用,效果很好.
cl(ear) 清除断点
l(ist) 查看代码n(ext) 执行完当前行,进入下一行
c((ont)inue) 继续向下执行代码,直至遇到断点或者代码执行完
p expression 执行当前表达式,并打印当前值
q 退出不调试

上面部分命令附带有其他参数,请查阅手册。

#!/usr/bin/env pythonimport pdb
import repdb.set_trace() # 设置调试起点
text = "abaabaaabaababccccabc"pattern = 'ab'matches = re.findall(pattern, text)
print matches

使用上面介绍的命令调试上述源代码,例如:

nixawk@gnu:~/examples/text/re$ python re_findall.py
> /home/gnu/examples/text/re/re_findall.py(8)<module>()
-> text = "abaabaaabaababccccabc"
(Pdb) dir()   --------- python函数 dir()
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'pdb', 're']
(Pdb) w -------- 查看代码执行到了什么位置
> /home/gnu/examples/text/re/re_findall.py(8)<module>()
-> text = "abaabaaabaababccccabc"
(Pdb) n -------- 执行当前代码
> /home/gnu/examples/text/re/re_findall.py(10)<module>()
-> pattern = 'ab'
(Pdb)     -------- 执行按下Enter键,等效于重复执行上一条命令
> /home/gnu/examples/text/re/re_findall.py(12)<module>()
-> matches = re.findall(pattern, text)
(Pdb) w
> /home/gnu/examples/text/re/re_findall.py(12)<module>()
-> matches = re.findall(pattern, text)
(Pdb) b 13  -------- 在第13行设置断点(cl 可清除所有断点)
Breakpoint 1 at /home/gnu/examples/text/re/re_findall.py:13
(Pdb) l 1,20  -------- 查看1到20行代码
  1      #!/usr/bin/env python
  2      
  3      import pdb
  4      import re
  5      
  6      
  7      pdb.set_trace()
  8      text = "abaabaaabaababccccabc"
  9      
 10      pattern = 'ab'
 11      
 12  ->    matches = re.findall(pattern, text)
 13 B    print matches
[EOF]
(Pdb) c -------- 向下执行程序, 直至遇到断点或者程序代码执行完毕
> /home/gnu/examples/text/re/re_findall.py(13)<module>()
-> print matches
(Pdb) n
['ab', 'ab', 'ab', 'ab', 'ab', 'ab']
--Return--
> /home/gnu/examples/text/re/re_findall.py(13)<module>()->None
-> print matches
(Pdb) n
Exception AttributeError: "'NoneType' object has no attribute 'path'" in <function _remove at 0xaa4668> ignored


 

这篇关于python -- pdb 调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017250

相关文章

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷