Skip to main content

Tools to help debugging a zope based application

Project description

What is iw.debug

This package allow you to start the ipython debugger (ipdb) on any objects in zope. For that you have to add /ipdb to the url of any object. And if your zope instance is in debug mode it will start the ipdb in your terminal.

Exploring objects

Run your zope instance in foreground:

./bin/zopectl fg

Call an url ended with /ipdb:

wget http://localhost:8080/portal/ipdb

Then you get ipdb prompt in your console:

ipdb>

Typing ll will show you a few locals:

ipdb> ll
Out[0]:
{'context': <PloneSite at /portal>,
 'meth': None,
 'portal': <PloneSite at /portal>,
 'request': <HTTPRequest, URL=http://localhost:8080/portal/ipdb/pdb>,
 'view': None}

Debuging objects views and methods

You can also use a query string in the url to debug a callable:

wget http://localhost:8080/portal/ipdb?v=__repr__

Then back to your console:

ipdb> ll
Out[0]:
{'context': <PloneSite at /portal>,
 'meth': <bound method PloneSite.__repr__ of <PloneSite at /portal>>,
 'portal': <PloneSite at /portal>,
 'request': <HTTPRequest, URL=http://localhost:8080/portal/ipdb/pdb>,
 'view': None}

If a browser view is found, then it will be used as callable:

wget http://localhost:8080/portal/ipdb?v=rules-controlpanel

Then back to your console:

ipdb> ll
ipdb> Out[0]:
{'context': <PloneSite at /portal>,
 'meth': None,
 'portal': <PloneSite at /portal>,
 'request': <HTTPRequest, URL=http://localhost:8080/portal/ipdb/pdb>,
 'view': <Products.Five.metaclass.ContentRulesControlPanel object at ...>}

For both view and callable, you can enter in it by typing s:

ipdb> s
ipdb> --Call--
> /../plone/app/contentrules/browser/controlpanel.py(18)__call__()
     17
---> 18     def __call__(self):
     19         form = self.request.form

If you want to pass extra args to the callable do something like:

wget http://localhost:8080/portal/ipdb?v=myview&arg1=value1&arg2:int=2

Extra args will be passed to the callable as keyword arguments.

Add iw.debug to your plone3 buildout

In the [buildout] section of your buildout.cfg add:

[buildout]
...
# Add additional eggs here
# elementtree is required by Plone
eggs =
  elementtree
  iw.debug
  ...

Then in the [instance] section:

[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
       ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iw.debug-0.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

iw.debug-0.3-py2.4.egg (9.2 kB view details)

Uploaded Source

File details

Details for the file iw.debug-0.3.tar.gz.

File metadata

  • Download URL: iw.debug-0.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for iw.debug-0.3.tar.gz
Algorithm Hash digest
SHA256 a9260e4365d72cc9eaacab3376927351852cff66efcf72538589d34eb39a07cd
MD5 95139aa2c63b404e6da8f319c51a89a3
BLAKE2b-256 b2f56ec890568dbe4d6282e3c11a41bf2c92ac7e1f2f8c262ddee5dc7fe251db

See more details on using hashes here.

File details

Details for the file iw.debug-0.3-py2.4.egg.

File metadata

  • Download URL: iw.debug-0.3-py2.4.egg
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for iw.debug-0.3-py2.4.egg
Algorithm Hash digest
SHA256 f07c052bc43e60edfa2c0d5a3a357d6637d2938ba37005e39a9c97b148ea9c85
MD5 4a28ef3a16cd0f859fff4371c82ff191
BLAKE2b-256 90e21f9ad774fff6f010c1a040a7fe0a5077e4d7b56b1d1c41094ca15e02d4c1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page