python pdb调试以及sublime3快捷键设置
python pdb调试以及sublime3快捷键设置
pdb调试
如果对gdb比较熟悉的话,pdb就很容易上手。以一个demo快速了解常用的调试命令。
def test(a):
while True:
if a > 10:
break
a += 1
return a
if __name__ == '__main__':
test(1)
- python -m pdb test.py进入调试环境
- b test
在test函数处设置断点,断点号为1
(Pdb) b test
Breakpoint 1 at f:\python\pdb\test.py:1
- b 2
在第二行设置断点,断点号为2
(Pdb) b 2
Breakpoint 2 at f:\python\pdb\test.py:2
- condition 2 a7
在2号断点处设置条件 a7 - b
显示所有断点信息
(Pdb) b
Num Type Disp Enb Where
1 breakpoint keep yes at f:\python\pdb\test.py:1
2 breakpoint keep yes at f:\python\pdb\test.py:2
stop only if a==7
- cl 1
去除1号断点,只有cl删除所有断点
(Pdb) cl 1
Deleted breakpoint 1
- n
单步跟踪,不进入函数
(Pdb) n
> f:\python\pdb\test.py(8)<module>()
-> if __name__ == '__main__':
(Pdb) n
> f:\python\pdb\test.py(9)<module>()
-> test(1)
- s
单步跟踪,进入函数
(Pdb) s
--Call--
> f:\python\pdb\test.py(1)test()
-> def test(a):
- c
继续运行在 a==7 条件断点处停止 - p a
此时,打印a的值为7
(Pdb) c
> f:\python\pdb\test.py(2)test()
-> while True:
(Pdb) p a
7
- a
打印所在函数参数
(Pdb) a
a = 7
- l
查看运行到某处代码
(Pdb) l
1 def test(a):
2 B-> while True:
3 if a > 10:
4 break
5 a += 1
6 return a
7 if __name__ == '__main__':
8 test(1)
[EOF]
- quit
退出
sublime设置
sublime设置快捷键F5为运行,Ctrl+F5调试。就会对python调试方便很多。
- Package Control中下载SublimeREPL(Read-Eval-Print-Loop)
- Preferneces -> Key Bingdings-User进行设置
[
{
"keys": [
"f5"
],
"caption": "SublimeREPL: Python - RUN current file",
"command": "run_existing_window_command",
"args": {
"id": "repl_python_run",
"file": "config/Python/Main.sublime-menu"
}
},
{
"keys": [
"ctrl+f5"
],
"caption": "SublimeREPL: Python - PDB current file",
"command": "run_existing_window_command",
"args":
{
"id": "repl_python_pdb",
"file": "config/Python/Main.sublime-menu"
}
}
]
python pdb调试以及sublime3快捷键设置的更多相关文章
- Python PDB调试处理
pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变量的值等.pdb 提供了 ...
- python pdb 调试
命令行 Python -m pdb xxx.py l ----> list 显示当前代码 n ----> next 向下执行一行代码 c ----> continue 继续执行代码 ...
- python pdb调试
在交互环境中通常使用pdb.run来调试: import pdb def pdb_test(arg): for i in range(arg): print(i) return arg pdb.run ...
- python pdb调试模块使用
一般在需要调试的文件加入下面代码即可 ################ _DEBUG = True ... if _DEBUG == True import pdb pdb.set_trace() # ...
- 使用pdb调试python
python pdb调试 python -m pdb myscript.py #注意这会重启myscript.py,这样启动的话,代码每一行都是一个节点 也可以在程序中这么设置断点: import p ...
- Python 代码使用pdb调试技巧
Debug 对于任何开发人员都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中的 bug.python 提供了一系列 debug 的工具和包,可供我们选择.本文将主要阐述如何利用 pyt ...
- python学习笔记之pdb调试
之前一直说要学python可还是一直停留在看的层面,昨天大神手把书教我pdb调试,说要摆脱IDE集成开发环境编程,感激不尽,立一个flag,python一定要入门! 1.进入方式 1)windows ...
- python错误调试print、assert、logging、pdb、pdb.set_trace()
世界人都知道,程序总会有bug存在.复杂点的bug一般人不能一眼看出,这就一要一套调试程序的手段. 方法一:使用print()函数直接打印: >>> def foo(s): ... ...
- Pdb— Python的调试器
参考:Pdb- Python的调试器 pdb 模块定义了一个交互式源代码调试器,用于 Python 程序.它支持在源码行间设置(有条件的)断点和单步执行,检视堆栈帧,列出源码列表,以及在任何堆栈帧的上 ...
随机推荐
- /-- Encapsulated exception ------------\ java.lang.NoSuchMethodException: com.sjzdaj.po.Class.setN_id([Ljava.lang.String;)
转自:http://ruinxdgzy.iteye.com/blog/805138
- Android 如何让 app 自行处理 power key M
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- GO语言搭建
最近对GO语言产生了浓厚的兴趣.因为GO语言不仅仅可以开发桌面.web程序,最吸引我的是安卓大有往GO语言全方位靠拢的趋势,自家的系统还是用自家的语言开发比较靠谱. 用一句话来说:Go语言是谷歌200 ...
- 3000本IT书籍下载地址
http://www.shouce.ren/post/d/id/112300 黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299 黑 ...
- 解密电子书之四:MCU(freescale)
谈完国产的君正,让我们再看看呛了君正财路的freescale iMX51. 这是freescale近期的主打产品,用的是ARM Cortex A8架构,主频在消费电子领域最高可达800MHz,在工业领 ...
- poj1580---欧几里得算法(辗转相除法)
#include<stdio.h> #include<string.h> #include<string.h> ],str2[]; int len; int cal ...
- Gdal 1.11.0 添加 Postgresql 9.1 sqlite3 支持
OS环境Ubuntu12.04 32bit 因为公司一个功能要用到gdal 的ogr2ogr命令转换shp数据,需要能往postgis和sqlite 中插入数据. 用gdal1.11.0的源码默认安装 ...
- 【POJ】2492 A bug's life ——种类并查集
A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 28211 Accepted: 9177 De ...
- struts2 全局格式化,格式化时间,金钱,数字
//在前台页面去控制时间,数字,小数,金钱,是极其不明智的选择,除非你是写了良好的 js api 像freemarker , struts 都有良好的标签,我们应该好好利用,才发现的,给大家分享一下 ...
- Windows内核之进程的终止和子进程
1 进程终止的方法: <1>主线程的进入点函数返回(最好使用这种方法) <2>进程中的一个线程调用ExitProcesss函数(应该避免使用这样的方法). <3>还 ...