全网超实用的Debug调试技巧汇总
副标题[/!--empirenews.page--]
一、思考 ![]() 1、什么是debug ● 找茬 ◆ 找软件的茬 ◆ 发现程序的缺陷 2、为什么需要debug? ![]() ● 谁都不敢保证,写的代码没有任何问题 ● 高效查找软件异常 ● 一位优秀的开发工程师 ◆ 20%的时间写代码 ◆ 80%的时间用来排错 “不会debug” == “不会代码” == “低工资” 3、debug需要具备哪些功能? ![]() ● 控制程序的执行 ◆ 想停则停,想执行则执行 ◆ 随心所欲 ● 设置断点 ◆ 在指定位置停止 ● 查看当前命名空间(程序栈)中变量 二、Python中的Debug大法 案例代码如下所示: 创建deubg_skills_demo.py文件 ![]() ![]() ![]() 创建gifts.py文件 ![]() 1、Pdb操作 ![]() ● 系统自带的debug工具(无需安装) ● 将以下代码放在需要调试的地方(类似于设置断点) ![]() ● 当程序执行到上述代码所在位置时,会自动开启一个console终端 ◆ "->"是接下来要执行的代码(当前还未执行) ![]() ● 可以在终端运行的命令 ◆ list或者l ◆ 显示当前运行的代码 ◆ 默认列出11行代码 ![]() ● p变量名或者p需要运行的表达式 ◆ 打印变量的值 ![]() ● step或者s ◆ 如果在函数调用处执行,则会进入函数体内部 ![]() ![]() ● next或者n ◆如果在函数调用处执行,则不会进入函数体内部 ![]() ● enter ◆ 重复执行上一次的命令 ● b(reak) [ ([filename:]lineno | function) [, condition] ] ◆ 设置断点 ◆ filename可选,如果不传,默认在当前文件设置断点 ![]() ![]() ● c或者continue ◆ 继续往下运行,在下一个断点处停下来 ![]() ● disable断点编号 ◆ 禁用断点 ![]() ● enable断点编号 ◆ 启用断点 ● cl或者clear 断点编号 ◆ 清除断点 ![]() ● display或者undisplay 变量 ◆ 监听或者不监听某个变量 ◆ 如果变量值改变,会自动显示 ![]() ● h或者help ◆ 帮助信息 ![]() ● h具体命令 ◆ 具体命令的帮助文档 ● h pdb ◆ pdb的完整文档 三、Pycharm debug操作 ![]() 1、打开Python Prompt ![]() 会出现一个ipython的控制台 ● 可在控制台查看当前命名空间中的变量 ● 也可执行Python表达式 ![]() 2、Step Over/F8 ● 按调试工具栏中的 ![]() ● 类似于pdb中的next ● 程序不会进入到函数体内部 3、Step Into/F7 ● 按调试工具栏中的 ![]() ● 类似于pdb中的step ● 程序会进入到函数(方法)体内部、系统源码、第三方模块源码中 4、Step Out/Shift+F8 ● 从函数体内部跳出 ![]() 5、Step Into My Code Step Into My Code / ALT+Shift+F7 ● 按调试工具栏中的 ![]() ● 主要关注自己写的代码 ● 从系统源码、第三方模块源码中跳到自己写的代码中 6、Evaluate Expression ![]() ● 在当前命名空间内计算表达式的值 7、Quick Evaluate Expression (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |