• 关于

    pdb python

    的搜索结果

回答

也许pdb可能对你有用。只需调用它就可以进入调试器: import pdb; pdb.set_trace() 有关更多详细信息,请参阅pdb文档:https://docs.python.org/3/library/pdb.html 可能与您的问题更相关:可以在命令行上调用pdb,如下所示: python3 -m pdb myscript.py

游客gsy3rkgcdl27k 2019-12-02 02:11:01 0 浏览量 回答数 0

回答

一直犯愁的是python的调试,以前写c都是编译完了用gdb直接调试了,轻松愉快。现在遇到这么一个解释型的程序,不知道怎么办了。用log吧,有时就是一个小程序,不想写这么多代码;打屏吧,有时屏幕翻得快,也是挺郁闷的。今天终于好了,看到了一个有用的东西,PDB方法一:运行 python -m pdb myscript.py(Pdb) 会自动停在第一行,等待调试,这时你可以看看 帮助(Pdb) h说明下这几个关键 命令 <断点设置 (Pdb)b 10 #断点设置在本py的第10行或(Pdb)b ots.py:20 #断点设置到 ots.py第20行删除断点(Pdb)b #查看断点编号(Pdb)cl 2 #删除第2个断点 <运行(Pdb)n #单步运行(Pdb)s #细点运行 也就是会下到,方法(Pdb)c #跳到下个断点<查看(Pdb)p param #查看当前 变量值(Pdb)l #查看运行到某处代码(Pdb)a #查看全部栈内变量 <如果是在 命令行里的调试为:import pdbdef tt():pdb.set_trace()for i in range(1, 5):print i <<< tt() 这里支持 n p c 而已 < (3)tt()(Pdb) n

xuning715 2019-12-02 01:10:33 0 浏览量 回答数 0

问题

python pdb 怎么用

云计算小粉 2019-12-01 20:01:12 454 浏览量 回答数 1

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

问题

python pdb是什么

云计算小粉 2019-12-01 20:02:07 841 浏览量 回答数 1

问题

python pdb 怎么安装

云计算小粉 2019-12-01 20:02:55 1565 浏览量 回答数 1

回答

利用好调试,能大大提高你捕捉代码Bug的。大部分新人忽略了Python debugger(pdb)的重要性。 在这个章节我只会告诉你一些重要的命令,你可以从官方文档中学习到更多。 译者注,参考:https://docs.python.org/2/library/pdb.html Or https://docs.python.org/3/library/pdb.html 从命令行运行 你可以在命令行使用Python debugger运行一个脚本, 举个例子: $ python -m pdb my_script.py 这会触发debugger在脚本第一行指令处停止执行。这在脚本很短时会很有帮助。你可以通过(Pdb)模式接着查看变量信息,并且逐行调试。 从脚本内部运行 同时,你也可以在脚本内部设置断点,这样就可以在某些特定点查看变量信息和各种执行时信息了。这里将使用pdb.set_trace()方法来实现。举个例子: import pdb def make_bread(): pdb.set_trace() return "I don't have time" print(make_bread()) 试下保存上面的脚本后运行之。你会在运行时马上进入debugger模式。现在是时候了解下debugger模式下的一些命令了。 命令列表: c: 继续执行w: 显示当前正在执行的代码行的上下文信息a: 打印当前函数的参数列表s: 执行当前代码行,并停在第一个能停的地方(相当于单步进入)n: 继续执行到当前函数的下一行,或者当前行直接返回(单步跳过) 单步跳过(next)和单步进入(step)的区别在于, 单步进入会进入当前行调用的函数内部并停在里面, 而单步跳过会(几乎)全速执行完当前行调用的函数,并停在当前函数的下一行。 pdb真的是一个很方便的功能,上面仅列举少量用法,更多的命令强烈推荐你去看官方文档。

montos 2020-04-16 17:29:36 0 浏览量 回答数 0

回答

运行运行python -m pdb test.py(Pdb) 会自动停在第一行,等待调试,这时你可以看看帮助(Pdb) h几个关键命令断点设置(Pdb)b 10 #断点设置在本py的第10行或(Pdb)b ots.py:20 #断点设置到 ots.py第20行删除断点(Pdb)b #查看断点编号(Pdb)cl 2 #删除第2个断点运行(Pdb)n #单步运行(Pdb)s #细点运行 也就是会下到,方法(Pdb)c #跳到下个断点查看(Pdb)p param #查看当前 变量值(Pdb)l #查看运行到某处代码(Pdb)a #查看全部栈内变量

xuning715 2019-12-02 01:10:22 0 浏览量 回答数 0

回答

您可以将pdb与robot一起使用。机器人框架用户指南的标题为“ 使用python调试器(pdb) ”部分记录了如何执行此操作。 它给出的示例是将其添加到要设置断点的位置: import sys, pdb; pdb.Pdb(stdout=sys.__stdout__).set_trace()

祖安文状元 2020-02-22 15:29:41 0 浏览量 回答数 0

问题

Python 调试【Python必学知识点】? 400 报错

爱吃鱼的程序员 2020-05-31 13:00:40 0 浏览量 回答数 0

回答

Python 调试器之pdb使用PDB的方式有两种:单步执行代码,通过命令 python -m pdb xxx.py 启动脚本,进入单步执行模式pdb命令行:1)进入命令行Debug模式,python -m pdb xxx.py 2)h:(help)帮助 3)w:(where)打印当前执行堆栈 4)d:(down)执行跳转到在当前堆栈的深一层(个人没觉得有什么用处) 5)u:(up)执行跳转到当前堆栈的上一层 6)b:(break)添加断点 b 列出当前所有断点,和断点执行到统计次数 b line_no:当前脚本的line_no行添加断点 b filename:line_no:脚本filename的line_no行添加断点 b function:在函数function的第一条可执行语句处添加断点 7)tbreak:(temporary break)临时断点 在第一次执行到这个断点之后,就自动删除这个断点,用法和b一样 8)cl:(clear)清除断点 cl 清除所有断点 cl bpnumber1 bpnumber2... 清除断点号为bpnumber1,bpnumber2...的断点 cl lineno 清除当前脚本lineno行的断点 cl filename:line_no 清除脚本filename的line_no行的断点 9)disable:停用断点,参数为bpnumber,和cl的区别是,断点依然存在,只是不启用 10)enable:激活断点,参数为bpnumber 11)s:(step)执行下一条命令 如果本句是函数调用,则s会执行到函数的第一句 12)n:(next)执行下一条语句 如果本句是函数调用,则执行函数,接着执行当前执行语句的下一条。 13)r:(return)执行当前运行函数到结束 14)c:(continue)继续执行,直到遇到下一条断点 15)l:(list)列出源码 l 列出当前执行语句周围11条代码 l first 列出first行周围11条代码 l first second 列出first--second范围的代码,如果second<first,second将被解析为行数 16)a:(args)列出当前执行函数的函数 17)p expression:(print)输出expression的值 18)pp expression:好看一点的p expression 19)run:重新启动debug,相当于restart 20)q:(quit)退出debug 21)j lineno:(jump)设置下条执行的语句函数 只能在堆栈的最底层跳转,向后重新执行,向前可直接执行到行号 22)unt:(until)执行到下一行(跳出循环),或者当前堆栈结束 23)condition bpnumber conditon,给断点设置条件,当参数condition返回True的时候bpnumber断点有效,否则bpnumber断点无效 注意:1:直接输入Enter,会执行上一条命令; 2:输入PDB不认识的命令,PDB会把他当做Python语句在当前环境下执行;

世事皆空 2019-12-02 01:07:48 0 浏览量 回答数 0

问题

如何使用pdb工具来调试python脚本?

驻云科技 2019-12-01 21:40:01 2931 浏览量 回答数 0

回答

string:字符串处理 re:正则表达式 os :操作系统接口 pdb :调试库 time :时间(datetime) logging:日志 urllib:web处理 sys: 系统库 threading: 多线程库 http:http服务MySQLdb:访问mysql db pyHook: hook键盘鼠标 <监控鼠标键盘> pycurl: curl的python版 xlrd/xlwt: 处理excel表格 pyexpect: expectd的python实现pysvn:访问SVN pyvnc2swf:录屏 py2exe:将python代码打包成exe文件 psyco:Python加速模块 PIL:图像处理 WConio:控制台处理 PyXML:xml处理 pyserial:串口通信以上是python常用内置库以及第三方库的内容

世事皆空 2019-12-02 01:07:07 0 浏览量 回答数 0

回答

如果你的程序因为某个异常而崩溃,运行 python3 -i someprogram.py 可执行简单的调试。 -i 选项可让程序结束后打开一个交互式shell。 然后你就能查看环境,例如,假设你有下面的代码: # sample.py def func(n): return n + 10 func('Hello') 运行 python3 -i sample.py 会有类似如下的输出: bash % python3 -i sample.py Traceback (most recent call last): File "sample.py", line 6, in <module> func('Hello') File "sample.py", line 4, in func return n + 10 TypeError: Can't convert 'int' object to str implicitly >>> func(10) 20 >>> 如果你看不到上面这样的,可以在程序崩溃后打开Python的调试器。例如: >>> import pdb >>> pdb.pm() > sample.py(4)func() -> return n + 10 (Pdb) w sample.py(6)<module>() -> func('Hello') > sample.py(4)func() -> return n + 10 (Pdb) print n 'Hello' (Pdb) q >>> 如果你的代码所在的环境很难获取交互shell(比如在某个服务器上面), 通常可以捕获异常后自己打印跟踪信息。例如: import traceback import sys try: func(arg) except: print('**** AN ERROR OCCURRED ****') traceback.print_exc(file=sys.stderr) 要是你的程序没有崩溃,而只是产生了一些你看不懂的结果, 你在感兴趣的地方插入一下 print() 语句也是个不错的选择。 不过,要是你打算这样做,有一些小技巧可以帮助你。 首先,traceback.print_stack() 函数会你程序运行到那个点的时候创建一个跟踪栈。例如: >>> def sample(n): ... if n > 0: ... sample(n-1) ... else: ... traceback.print_stack(file=sys.stderr) ... >>> sample(5) File "<stdin>", line 1, in <module> File "<stdin>", line 3, in sample File "<stdin>", line 3, in sample File "<stdin>", line 3, in sample File "<stdin>", line 3, in sample File "<stdin>", line 3, in sample File "<stdin>", line 5, in sample >>> 另外,你还可以像下面这样使用 pdb.set_trace() 在任何地方手动的启动调试器: import pdb def func(arg): ... pdb.set_trace() ... 当程序比较大而你想调试控制流程以及函数参数的时候这个就比较有用了。 例如,一旦调试器开始运行,你就能够使用 print 来观测变量值或敲击某个命令比如 w 来获取追踪信息。

哦哦喔 2020-04-17 17:35:58 0 浏览量 回答数 0

回答

Re如何使用pdb工具来调试python脚本? 厉害

耶底底亚 2019-12-01 23:52:07 0 浏览量 回答数 0

回答

Python 代码调试方法使用 pdb 进行调试使用 PyCharm 进行调试使用 PyDev 进行调试

世事皆空 2019-12-02 01:07:35 0 浏览量 回答数 0

回答

Re如何使用pdb工具来调试python脚本? www,rshpr,com www,myfushun,com www,hztv3,com

q134149 2019-12-01 23:52:07 0 浏览量 回答数 0

回答

aulthandler会在Python代码执行出错的时候向你展示跟踪信息。 至少,它会告诉你出错时被调用的最顶级扩展函数是哪个。 在pdb和其他Python调试器的帮助下,你就能追根溯源找到错误所在的位置了。 faulthandler不会告诉你任何C语言中的错误信息。 因此,你需要使用传统的C调试器,比如gdb。 不过,在faulthandler追踪信息可以让你去判断从哪里着手。 还要注意的是在C中某些类型的错误可能不太容易恢复。

景凌凯 2020-04-19 20:53:45 0 浏览量 回答数 0

回答

不要将调试弄的过于复杂化。一些简单的错误只需要观察程序堆栈信息就能知道了, 实际的错误一般是堆栈的最后一行。 你在开发的时候,也可以在你需要调试的地方插入一下 print() 函数来诊断信息(只需要最后发布的时候删除这些打印语句即可)。 调试器的一个常见用法是观测某个已经崩溃的函数中的变量。 知道怎样在函数崩溃后进入调试器是一个很有用的技能。 当你想解剖一个非常复杂的程序,底层的控制逻辑你不是很清楚的时候, 插入 pdb.set_trace() 这样的语句就很有用了。 实际上,程序会一直运行到碰到 set_trace() 语句位置,然后立马进入调试器。 然后你就可以做更多的事了。 如果你使用IDE来做Python开发,通常IDE都会提供自己的调试器来替代pdb。 更多这方面的信息可以参考你使用的IDE手册。

景凌凯 2020-04-17 17:59:06 0 浏览量 回答数 0

问题

你可能不知道的 Python 技巧有哪些?

游客bnlxddh3fwntw 2020-04-13 11:34:27 33 浏览量 回答数 1

问题

如何使用pdb工具来调试python脚本?

驻云科技 2019-12-01 21:40:02 1786 浏览量 回答数 3
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站