跳转到主要内容

帮助基于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 查看哈希值)

上传于 源代码

支持者