![]() ![]() |
||
![]() |
![]() |
|
![]() |
[wingide-users] Debugging Zope's FTP server with WingIDEStephan R.A. Deibel sdeibel at wingide.comThu, 26 Sep 2002 11:20:57 -0400 (EDT)
On Thu, 26 Sep 2002, Andreas Jung wrote:
> Well, I have been a member of the Zope coreteam and I have been
> on the FTP server stuff of Zope a lot. So I am curious if WingIDE
> could have done my life more easier ;-)
Yes, Wing can debug Zope itself. The approach is somewhat different than
debugging client code and there is the caveat that you need to set up Zope
to be single threaded during debugging to avoid unpredictable stopping on
breakpoints/exceptions (only one thread in the thread pool will be
debugged).
Here are the basic steps:
1) Install Zope + Wing
2) Copy wingdbstub.py from the Wing installation into your Zope code
3) Edit your code to add 'import wingdbstub' somewhere before the code
you want to debug.
4) Zope needs to run with the -t 0 option, e.g. with a 'start' script
like this:
#! /bin/sh
reldir=`dirname $0`
ZOPEHOME=`cd $reldir; pwd`
export ZOPEHOME
exec $ZOPEHOME/bin/python $ZOPEHOME/z2.py -D "$@" -Z '' -t 0
5) Run Wing and make sure that Enable Passive Listen was selected
from the Run / Network Mode menu area (or set preference
debug.passive-listen=true in your preferences file, which is
accessible from the Edit menu; then restart Wing IDE). Either
way the status area at the top of windows should read
"Debugger: Ready and Listening".
6) Launch Zope and execute the code that does the 'import wingdbstub'.
This should cause Wing to change to "Debugger: Program Running"
or may reach an exception or breakpoint if you've set one.
7) It's possible you will also need to make a modification to
ZServer/PubCore/ZRendezvous.py so that the handle() method
reads as follows:
def handle(self, name, request, response):
import ZPublisher
try:
ZPublisher.publish_module(name, request = request, response = response)
finally:
response._finish()
This was needed in the past but our recent threading-related
improvements may mean this is no longer required.
The above assumes you're running Zope and Wing IDE as the same
user on the same machine. If you want to do remote debugging,
this is described in the Debugger chapter of the manual:
http://wingide.com/psupport/wingide-1.1/
(see section 6.15.3)
Please let us know if you run into any problems.
Thanks,
- Stephan
Run by Mailman v 2.0.8 |
|
|
Copyright (c) 2000-2002, Archaeopteryx Software, Inc. Legal Statements | ||