加入收藏 | 设为首页 | 会员中心 | 我要投稿 百科站长网 (https://www.baikewang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

如何用Python调试器修复代码?

发布时间:2022-11-21 12:44:20 所属栏目:Asp教程 来源:
导读:  使用Python调试器

  调试器是一个工具,它允许你打开应用程序的内部以找出需要修复的内容。 你可以查看变量和调用堆栈,设置条件断点,逐行扫描源代码,并执行需要执行的操作。

  在调试时Python提供
  使用Python调试器
 
  调试器是一个工具,它允许你打开应用程序的内部以找出需要修复的内容。 你可以查看变量和调用堆栈,设置条件断点,逐行扫描源代码,并执行需要执行的操作。
 
  在调试时Python提供了更多的可能性——不仅可以查看过程中的代码,还可以运行在调试器命令行中编写的代码。
 
  Python的秘密武器是它自己的内置调试器,称为pdb。简单的命令行界面具有你可能需要的所有基本调试器功能。但是当你寻找更复杂的东西时,你可以使用ipdb来扩展,这为调试器提供了一些来自IPython的额外功能。
 
  最简单的使用方式是直接调用。
 
  import pdb; pdb.set_trace()
  运行解释器,一旦它到达这一行,你就会在你正在使用的程序终端上得到一个命令提示符。
 
  列表(L)
 
  使用list(l)命令来查看Python解释器当前所在的代码行,也可以用来检查代码的不同区域。 它有第一和最后一行显示的参数。 但是,如果提供第一行的编号,那只能看到围绕特定行的代码。
 
  (p)和(d)
 
  up(p)和down(d)是用来浏览调用栈的命令。 例如,使用这两个函数来查看谁在调用当前函数,或者为什么解释器会这样。
 
  step(s)和next(n)
 
  另一对重要的命令是step(s) 和next(n)。 它们之间的唯一区别是next(n)只会进入当前函数的下一行,即使它调用了另一个函数, step(s)将更深入。
 
  break(b)
 
  如果需要在不更改代码的情况下设置新断点,则使用break(b)命令。
 
  在此之前,简单介绍一下其他所有的pdb命令:
 
  asp调试器_asp.net mvc 调试源码_asp.net怎么调试
 
  关于break
 
  以前必须更改代码来打印某些内容或设置断点,有时必须在第三方包中设置断点。可以随时在虚拟环境中打开库的源代码并添加对pdb的调用。
 
  现在可以从调试器运行应用程序,并设置需要的断点,而无需更改任何源代码。使用命令python -m pdb
 
  来执行调试器的应用程序。
 
  示例:使用一个简单的应用程序跟踪工作时间。
 
  在这个应用程序的内部,使用 requests 库来发出HTTP请求。使用调试器运行应用程序,并在所述库内设置断点来打破post请求。
 
  $ python -m pdb run.py
  > /Users/.........................../run.py(1)()
  -> from TimeLog.app import run_app
  (Pdb) b requests/sessions.py:555
  Breakpoint 1 at /..................../lib/python3.6/site-packages/requests/sessions.py:555  
  (Pdb) c
  不必输入完整的源文件路径,只是从sys.path中的某个文件夹中放入一个相对路径。
 
  应用程序可能会运行很多调用,但有时你只需要一个特定的调用。那该怎么做? 在这种情况下,可以指定一个断点条件,只有当这个条件为Trueasp调试器,调试器才会中断应用程序。
 
  在这个例子中,只有当json有一个time_entry键时,应用程序才会中断。
 
  python -m pdb run.py  
  > /Users/...../run.py(1)()
  -> from TimeLog.app import run_app
  (Pdb) b requests/sessions.py:555, json is not None and 'time_entry' in json
  Breakpoint 1 at /Users/....../lib/python3.6/site-packages/requests/sessions.py:555  
  (Pdb) c
  Django的调试助手
 
  使用Django Web框架,如果DEBUG在设置中设置为True,那么在任何异常时都会获得一个包含以下信息的特殊页面:异常类型和消息,回溯,局部变量等。
 
  安装django-extensions并使用runserver_plus命令启动Django服务器。设置调试器引脚的操作方法:
 
  WERKZEUG_DEBUG_PIN=1234 ./manage.py runserver_plus
 
  通过使用django-extensions得到了一个追溯页面,可以看到每一行代码和一个打开的调试器。
 
  然后在Werkzeug项目的帮助下执行调试过程,该项目是Python的WSGI库。
 

(编辑:百科站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!