Archaeopteryx Software, Inc.
Take Flight!Search

Home
Wing IDE
News
Support
About Us
Python
Open Source
Store

 Search:
 
 Advanced Search




[wingide-users] Breakpoint is ignored

John Ehresman jpe@archaeopteryx.com
07 Dec 2001 11:14:50 -0500


It looks like the MiddleKit Test.py script runs its tests in python
subprocesses so SQLObjectStore.py is never imported by Test.py.  It
should be possible to use wingdbstub.py to debug the subprocesses, but
the Test.py would need to be run outside the debugger for the
subprocesses to be able to connect back to Wing.  I was able to stop in
SQLObjectStore.py after inserting a import statement in Test.py to
import it.

John

On Wed, 2001-12-05 at 00:23, Chuck Esterbrook wrote:
> Hi,
> 
> I just downloaded Wing 1.1rc1 and fired it up for the first time.
> 
> I'm having trouble debugging Webware.MiddleKit. I'm running:
> 	Webware/MiddleKit/Tests/Test.py
> 
> with a breakpoint set in:
> 	Webware/MiddleKit/Run/SQLObjectStore.py
> 
> The breakpoint never kicks in. I added a big print statement right after 
> it, so I know the code is executing.
> 
> I tried to reproduce this by creating a small codebase from scratch, but 
> haven't managed to do so. However, I can give you the steps to recreate 
> the bug with Webware in about 5 mins.
> 
> You will need MySQL and MySQLdb (the python module).
> 
> Download Webware to any directory you like (such as ~/):
>   http://prdownloads.sourceforge.net/webware/Webware-0.6.tar.gz
> 
> > tar xzf Webware-0.6.tar.gz
> > cd Webware
> > ./install.py
>    # ^ this changes files in place
>    # it doesn't copy files anywhere or change your system
> > cd MiddleKit
> > wing Run/SQLObjectStore.py Tests/Test.py
> 
> - In wing, set a breakpoint in SQLObjectStore at line 199, the first line 
> of "def fetchObjectsOfClass(...":
> 		klass = self._klassForClass(aClass)
> 
> - Put a print statement afterwards:
> 		print '-'*80
> 
> - Go back to Test.py.
> - Click "Run until next break point". You can add the run argument 
> "MKBasic" to keep the run small (this runs just the test case with that 
> name and no others).
> - Ignore the exception in DataTable.py which is normal (the Python "for" 
> statement keeps chugging until __getitem__ causes an IndexError)..
> 
> The program will keep running all the way through to the end. You will see 
> many lines in the output like this:
> ----------------------------------------------
> 
> which indicate that the method in question executed. However, the 
> breakpoint just above it never caused wing to stop.
> 
> 
> I'd very much like to use wing to work on Webware itself and Webware-based 
> apps. The MiddleKit test suite is my first try since it doesn't use 
> multiple threads or require integration with a web server. The debugger of 
> wing is my #1 attraction and reason for investigating this product.
> 
> My environment:
> - Linux Mandrake 8.1
> - Python 2.1.1
> - Wing 1.1rc1
> - MySQL 3.23.x
> - MySQLdb 0.9.x
> - egenix mx base 2.0.2
> 
> 
> If you need other information or help recreating this, please let me know.
> 
> Note that Test.py lives inside a subpackage and augments sys.path. That 
> seems funky enough that it could be related (although my simple recreation 
> of that situation didn't reproduce the bug; eg the breakpoint kicked in).
> 
> 
> -Chuck
> _________________________________________________
> Archaeopteryx Software, Inc.
> Wing IDE discussion list
> http://archaeopteryx.com/support/forum







Run by Mailman v 2.0.8


Copyright (c) 2000-2002, Archaeopteryx Software, Inc.
Legal Statements