这是扩展的Python调试器(pdb)。它提供了一些非常有用的功能,有助于调试,特别是zope2/zope3/plone实例。
项目描述
概述
这是标准 Python调试器 的扩展,增加了一些功能,使调试更加容易。
stxnext.pdb 主要为zope用户提供便利,但也可用于其他Python项目。
功能
添加到标准pdb的新功能
改进了 dir 函数。标准的 dir 函数列出某些对象的所有方法和属性名称。这个改进的 dir 以几列的形式打印出该函数的输出。还可以使用正则表达式进行过滤。
示例
(STX Next pdb) obj = object() (STX Next pdb) dir(obj) __class__ __reduce__ __delattr__ __reduce_ex__ __doc__ __repr__ __getattribute__ __setattr__ __hash__ __str__ __init__ __new__ (STX Next pdb) dir obj attr __delattr__ __setattr__ __getattribute__ (STX Next pdb) dir obj ^__[r-z]+ __reduce__ __setattr__ __reduce_ex__ __str__ __repr__
info 命令打印关于对象的基本信息。
示例
(STX Next pdb) info obj type: <type 'object'> class: <type 'object'> id: 140460386956752 str: <object object at 0x7fbf7b7835d0> repr: <object object at 0x7fbf7b7835d0> docstring: The most base type
update_locals (ul) - 通过一些有用的变量和函数更新当前局部变量。如果 stxnext.pdb 可以找到 zope 或 plone,它会导入常用函数(例如 getToolByName,getMultiAdapter,alsoProvides)。如果 context 可用,它还可以导入 plone 工具。stxnext.pdb 在当前局部变量中寻找名为 self.context,context 和 self 的变量。如果上下文应该是其他的,可以将其作为参数传递
示例
(STX Next pdb) update_locals #zope found, context unknown New locals: Attribute Interface ... schema sys (STX Next pdb) ul this_is_context #zope and plone found, correct context New locals: Attribute Interface ... sys uid_catalog
使用方法
stxnext.pdb 可以通过标准 pdb 调用打开 - 只需从 stxnext 模块导入 pdb。
由于 collective SVN 仓库阻止带有 set_trace 的代码提交,在下一条中必须将“*”替换为“_”
>>> import pdb; pdb.set*trace() #open standard pdb (Pdb) c >>> from stxnext import pdb; pdb.set*trace() (STX Next pdb) c
如果 zope 实例以 debug-mode=on 运行,可以通过网络浏览器调用 pdb - 只需将 pdb 添加到 URL(例如,http://127.0.0.1:8080/plonesite/pdb)。在这种情况下,stxnext.pdb 尝试开启 tab completion - 请参阅 rlcompleter 文档。
安装
或者,如果您使用 zc.buildout 管理您的项目,您可以这样做
将 stxnext.pdb 添加到要安装的 eggs 列表中,例如
[buildout] ... eggs = ... stxnext.pdb
如果您使用 plone.recipe.zope2instance 脚本管理您的实例,请将以下行添加到安装 ZCML slug
[instance] recipe = plone.recipe.zope2instance ... zcml = ... stxnext.pdb
如果您使用 zc.zope3recipes:application 脚本管理您的实例,请将以下行添加到安装 ZCML slug
[instance] recipe = zc.zope3recipes:application ... site.zcml = ... <include package="stxnext.pdb" />
重新运行 buildout,例如
$ ./bin/buildout
如果您将从其他包的 configure.zcml 文件显式包含包,则可以跳过 ZCML slug。
参考
项目详情
stxnext.pdb-0.2.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a174e3225e7f9cad8a6829c144eb4034421a1c10018c2bd71225e40f3a92c4ef |
|
MD5 | a595b3ae3457dd8225476b96e868ae79 |
|
BLAKE2b-256 | ae17cd38693cf84681641ce22a81ce26a55fe98933d8328ece12c55f6dead10a |