这是扩展的python调试器(pdb)。它很少提供有助于调试的非常有用的特性,特别是zope2/zope3/plone实例。
stxnext.pdb的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 invoke打开-只能导入pdb 来自stxnext模块。
因为集合svn存储库块在代码中使用set_trace提交, 在下一行中,必须将“*”替换为“u”:
>>> 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运行,则可以从web调用pdb 浏览器-只需将pdb添加到url(例如http://127.0.0.1:8080/plonesite/pdb)。 在这种方法中,stxnext.pdb尝试打开tab completion-请参见rlcompleter documentation。
安装
或者,如果您使用zc.buildout来管理项目, 您可以这样做:
将stxnext.pdb添加到要安装的鸡蛋列表中,例如:
[buildout] ... eggs = ... stxnext.pdb
如果使用plone.recipe.zope2instance recipe管理 实例添加这些行以安装zcml slug:
[instance] recipe = plone.recipe.zope2instance ... zcml = ... stxnext.pdb
如果您使用zc.zope3recipes:application recipe来管理 实例添加这些行以安装zcml slug:
[instance] recipe = zc.zope3recipes:application ... site.zcml = ... <include package="stxnext.pdb" />
重新运行构建,例如使用:
$ ./bin/buildout
如果要显式地包含包,可以跳过zcml slug 从另一个包的configure.zcml文件。