如何用Python调试器修复代码?
发布时间:2022-11-21 12:44:20 所属栏目:Asp教程 来源:
导读: 使用Python调试器
调试器是一个工具,它允许你打开应用程序的内部以找出需要修复的内容。 你可以查看变量和调用堆栈,设置条件断点,逐行扫描源代码,并执行需要执行的操作。
在调试时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库。 (编辑:百科站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

