帮助基于zope的应用程序调试的工具
项目描述
什么是iw.debug
此软件包允许您在任何zope对象上启动ipython调试器(ipdb)。为此,您需要将/ipdb添加到任何对象的URL中。如果您的zope实例处于调试模式,它将在您的终端中启动ipdb。
探索对象
在前景运行您的zope实例
./bin/zopectl fg
调用以/ipdb结尾的URL
wget https://#:8080/portal/ipdb
然后您在控制台中会得到ipdb提示
ipdb>
键入ll将显示一些局部变量
ipdb> ll Out[0]: {'context': <PloneSite at /portal>, 'meth': None, 'portal': <PloneSite at /portal>, 'request': <HTTPRequest, URL=https://#:8080/portal/ipdb/pdb>, 'view': None}
调试对象视图和方法
您也可以在URL中使用查询字符串来调试可调用对象
wget https://#:8080/portal/ipdb?v=__repr__
然后回到您的控制台
ipdb> ll Out[0]: {'context': <PloneSite at /portal>, 'meth': <bound method PloneSite.__repr__ of <PloneSite at /portal>>, 'portal': <PloneSite at /portal>, 'request': <HTTPRequest, URL=https://#:8080/portal/ipdb/pdb>, 'view': None}
如果找到浏览器视图,则将其用作可调用对象
wget https://#:8080/portal/ipdb?v=rules-controlpanel
然后回到您的控制台
ipdb> ll ipdb> Out[0]: {'context': <PloneSite at /portal>, 'meth': None, 'portal': <PloneSite at /portal>, 'request': <HTTPRequest, URL=https://#:8080/portal/ipdb/pdb>, 'view': <Products.Five.metaclass.ContentRulesControlPanel object at ...>}
对于视图和可调用对象,您可以通过键入s进入
ipdb> s ipdb> --Call-- > /../plone/app/contentrules/browser/controlpanel.py(18)__call__() 17 ---> 18 def __call__(self): 19 form = self.request.form
如果您想向可调用对象传递额外的参数,可以这样做
wget https://#:8080/portal/ipdb?v=myview&arg1=value1&arg2:int=2
额外的参数将作为关键字参数传递给可调用对象。
将iw.debug添加到您的plone3构建
在buildout.cfg的[buildout]部分中添加
[buildout] ... # Add additional eggs here # elementtree is required by Plone eggs = elementtree iw.debug ...
然后,在[instance]部分
[instance] ... # If you want to register ZCML slugs for any packages, list them here. # e.g. zcml = my.package my.other.package zcml = iw.debug ...
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。
源代码分发
iw.debug-0.3.tar.gz (4.2 kB 查看哈希值)
构建分发
iw.debug-0.3-py2.4.egg (9.2 kB 查看哈希值)