python
如何用pdb进行python调试?
一、如何用pdb进行python调试?
本文章讲述了如何用pdb进行python调试讲解. 当手边 没有IDE,面对着python调试犯愁时,你就可以参考下本文;(pdb 命令调试) 和 (pdb)help 用pdb进行python调试,用法基本和gdb差不多, 先看一个简单的例子: epdb1.py .# epdb1.py -- experiment with the Python debugger, pdb a = "aaa" b = "bbb" c = "ccc" final = a + b + c print final 比如要对这个程序进行调试: 1:在文件前面加上这一句,引入调试的模块。 import pdb 2:在要开始调试的一行加上pdb.set_trace()文件变成: # epdb1.py -- experiment with the Python debugger, pdb import pdb a = "aaa" pdb.set_trace() b = "bbb" c = "ccc" final = a + b + c print final 可以运行这个程序,到断点出会停下来,和gdb类似, 可以执行命令: 直接回车是重复前一条命令! p(print) 查看一个变量值 n(next) 下一步 s(step) 单步,可进入函数 c(continue)继续前进 l(list)看源代码 用pdb调试有多种方式可选: 1.命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前 python -m pdb myscript.py 2. 在Python交互环境中启用调试 >>> import pdb >>> import mymodule >>> pdb.run('mymodule.test()') 3.比较常用的,就是在程序中间插入一段程序,相对于在一般IDE里面打上断点然后启动debug,不过这种方式是hardcode的 if __name__ == "__main__" : a = 1 importpdb pdb .set_trace() b = 2 c = a + b print( c) 然后正常运行脚本,到了pdb.set_trace()那就会定下来,就可以看到调试的提示符(Pdb)了 常用的调试命令 h(elp),会打印当前版本Pdb可用的命令,如果要查询某个命令,可以输入 h [command],例如:"h l" - 查看list命令 l(ist),可以列出当前将要运行的代码块 (Pdb) l 497 pdb.set_trace() 498 base_data = {} 499 new_data = {} 500 try: 501 execfile(base_file_name,{},base_data) 502 -> execfile(new_file_name,{},new_data) 503 except: 504 logger.writeLog("error! load result log error!") 505 print "load cmp logs error!" 506 raise Exception, "load cmp logs error!" 507>断点设置 (Pdb)b10 #断点设置在本py的第10行 或(Pdb)bots.py:20 #断点设置到 ots.py第20行 删除断点(Pdb)b #查看断点编号 (Pdb)cl 2 #删除第2个断点 >运行 (Pdb)n #单步运行 (Pdb)s #细点运行 也就是会下到,方法 (Pdb)c #跳到下个断点 >查看 (Pdb)p param #查看当前 变量值 (Pdb)l #查看运行到某处代码 (Pdb)a #查看全部栈内变量 b(reak), 设置断点,例如 "b 77″,就是在当前脚本的77行打上断点,还能输入函数名作为参数,断点就打到具体的函数入口,如果只敲b,会显示现有的全部断点 (Pdb) b 504 Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504 condition bpnumber [condition],设置条件断点,下面语句就是对第4个断点加上条件"a==3" (Pdb) condition 4 a==3 (Pdb) b Num Type Disp Enb Where 4 breakpoint keep yes at /home/jchen/regression/regressionLogCMP.py:504 stop only if a==3 cl(ear),如果后面带有参数,就是清除指定的断点(我在Python2.4上从来没成功过!!!);如果不带参数就是清除所有的断点 (Pdb) cl Clear all breaks? y disable/enable,禁用/激活断点 (Pdb) disable 3 (Pdb) b Num Type Disp Enb Where 3 breakpoint keep no at /home/jchen/regression/regressionLogCMP.py:505 n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的 s(tep),跟n相似,但是如果当前有一个函数调用,那么s会进入被调用的函数体中 c(ont(inue)),让程序正常运行,直到遇到断点 j(ump),让程序跳转到指定的行数 (Pdb) j 497 > /home/jchen/regression/regressionLogCMP.py(497)com pareLog() -> pdb.set_trace() a(rgs),打印当前函数的参数 (Pdb) a _logger = _base = ./base/MRM-8137.log _new = ./new/MRM-8137.log _caseid = 5550001 _toStepNum = 10 _cmpMap = {'_bcmpbinarylog': 'True', '_bcmpLog': 'True', '_bcmpresp': 'True'} p,最有用的命令之一,打印某个变量 (Pdb) p _new u'./new/MRM-8137.log' !,感叹号后面跟着语句,可以直接改变某个变量 q(uit),退出调试 ============================================================================================== 在python中使用pdb模块可以进行调试 import pdb pdb.set_trace() 也可以使用python -m pdb mysqcript.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 #查看全部栈内变量 (Pdb)w 列出目前call stack 中的所在层。 (Pdb)d 在call stack中往下移一层 (Pdb)u 在call stack中往上移一层。如果在上移一层之后按下 n ,则会在上移之后的一层执行下一个叙述,之前的 function call 就自动返回。 (Pdb)cl 清除指定的断点。如果没有带参数,则清除所有断点。 (Pdb)disable 取消所有断点的功能,但仍然保留这些断点。 (Pdb)enable 恢复断点的功能。 (Pdb)ignore 设定断点的忽略次数。如果没指定 count,其初始 为 0。当 count 为 0 时,断点会正常动作。若有指定 count,则每次执行到该中断, count 就少 1,直到 count 数为 0。 (Pdb)condition bpnumber [condition] (Pdb)j(ump) lineNo. 跳到某行执行。只有在 call stack 的最底部才能作用。 (Pdb)l 列出目前所在档案中的位置。连续地 l 命令会一直列到档案结尾,可以使用指定行数或范围来打印。 (Pdb)pp 和 p 命令类似,但是使用 pprint module(没用过 pprint,详情请参考 Python Library Reference)。 (Pdb)alias 以一个"别名"代替"一群除错命令",有点类似 c/c 的 macro(详情请参考 Python Library Reference)。 (Pdb)unalias 取消某个 alias。 (Pdb)[!]statement 在目前的环境(context)中执行叙述。 转载
二、如何打开pdb?
在我们目前使用的掌上电脑中,Palm操作系统由于其功能强大、应用软件多等特点,占有很大的比例。PDB文件是Palm OS操作系统上数据文件类型。一般我们在使用Palm系统的电子书时都会遇到这种文件,pdb文件格式是PDA的通用格式。
如果在pc端使用,需要找特定的软件。
PDB阅读器 V1.03
三、PDB是什么?
PDB文件是Palm OS操作系统上数据文件类型。一般我们在使用Palm系统的电子书时都会遇到这种文件,一般用于电子书或手机电子书 pdb是Palm DataBase的缩写,Palm OS所用文件的扩展名为.pdb。还表示碳氧同位素标准样品以及可编程延迟模块,是DSP中的一种模块,可以用来计数和延时。
四、pdb是什么单位?
PDB是protein data bank的简写,在生物学软件中,一般把蛋白质的三维结构信息用pdb文件保存。
PDB文件本质是一种ASCII码文件,可以用普通的文本编辑器编辑,也可以用专业软件编辑。不过要展示该文件所表示的蛋白质三维空间结构则需要借助相关软件,如winCoot、Moe等。
PDB(Protein Data Bank)是一种标准文件格式, 其中包含原子的坐标等信息, 提交给 Protein Data Bank at the Research Collaboratory for Structural Bioinformatics (RCSB) 的结构都使用这种标准格式. 这里整理网上已有的一些资料, 对PDB格式做个简短介绍. 对大多数用户而言, 了解这些内容就够了, 但对那些需要创建PDB文件的用户, 请参考PDB格式官方文档.
完整的PDB文件提供了非常多的信息, 包括作者, 参考文献以及结构说明, 如二硫键, 螺旋, 片层, 活性位点. 在使用PDB文件时请记住, 一些建模软件可能不支持那些错误的输入格式.
PDB格式以文本格式给出信息, 每一行信息称为一个 记录(record). 一个PDB文件通常包括很多不同类型的记录, 它们以特定的顺序排列, 用以描述结构.
五、uniprot怎么下载pdb?
在uniprot上找到pdb点击下载完成后安装即可
六、pdb是什么格式?
pdb文件本质是一种ASCII码文件,可以用普通的文本编辑器编辑,也可以用专业软件编辑。不过要展示该文件所表示的蛋白质三维空间结构则需要借助相关软件,如winCoot、Moe等。
完整的PDB文件提供了非常多的信息, 包括作者, 参考文献以及结构说明, 如二硫键, 螺旋, 片层, 活性位点. 在使用PDB文件时请记住, 一些建模软件可能不支持那些错误的输入格式.
PDB格式以文本格式给出信息, 每一行信息称为一个 记录(record). 一个PDB文件通常包括很多不同类型的记录, 它们以特定的顺序排列, 用以描述结构.
七、什么是pdb文件?
PDB文件(Program Database File)是Microsoft Visual C++编译器生成的一种二进制文件,主要包含编译器生成的源代码及符号表信息。PDB文件在程序编译链接过程中被创建,以帮助调试程序。当调试器需要加载源代码和符号信息时,它们会自动在相应目录中寻找PDB文件并加载。
PDB文件包含了编译器生成的符号信息,例如变量的名称、函数名称、行号和模块的名称等。这些符号信息有助于调试器在调试时将程序的汇编代码转换成具有可读性和可理解性的高级源代码。
PDB文件对于调试大型程序或库非常有用,因为它们允许开发人员跟踪代码执行过程中的堆栈跟踪,查看变量状态,以及定位程序崩溃或异常发生的原因。PDB文件也允许开发人员分析和优化代码性能,并查找内存泄漏和资源管理问题等。
八、如何打开pdb文件?
PDB是Palm DataBase的缩写,Palm OS所用文件的扩展名为.pdb。可以使用PalmReader打开。 如果想把PDB文件转换成TXT文件查看,可以使用WavePDB转。 程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。常见的VC80.PDB(更笼统地说就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。) 该文件存储各个 OBJ 文件的所有调试信息并与项目生成文件驻留在同一个目录中。
九、oracle pdb是什么?
oracle pdb是用create pluggable database的命令,用file_name_convert的方式拷贝seed pdb的文件到对应的新pdb的路径下。
拷贝的是最基本system和sysaux表空间,将新建的pdb从mount的状态打开到read write的状态。建立pdb用户的默认表空间。
十、pdb3是什么元件?
pdb3是金钯硼合金元件。
金基添加钯和硼的三元合金。硼在金中的溶解度很小。合金塑性极好,可直接加工成0.05~0.06mm的箔材。
金基添加钯和硼的三元合金。硼在金中的溶解度很小。在钯中的含量大于1.0%,而小于6.33%时,硼与钯生成低熔点共晶。用中频炉充氩保护熔炼,硼以PdB3中间合金加入,金与中间合金比为99:1。合金塑性极好,可直接加工成0.05~0.06mm的箔材。可用作可控整流元件的控制极材料。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...