[wingide-users] Threads launched in a unit test always attach to the debugger when "Enable Passive Listen" is selected

Wingware Support support at wingware.com
Mon Oct 11 07:46:30 MDT 2010


Russell Warren wrote:
> I've recently started using wingdbstub to do some external debugging, 
> so I set the "Enable Passive Listen" option accordingly.  Now when I 
> "run" (not "debug") a unit test, my code has started stopping on 
> breakpoints that I have set.  In "run" mode this should not happen.
>
> After further investigation, the breakpoint is only being triggered if 
> it is within a thread that the unit test launched.  Breakpoints in the 
> main program are not triggered, as expected.
>
> Is there a way around this?  The code on the thread is not importing 
> wingdbstub.
>
> This happens in both Wing3 and Wing4 pro.
>
> On a related note, are there any issues importing wingdbstub in 
> something that will be run from within the IDE?  For example, is code 
> like below necessary?
>
> if __debug__:
>   if "wing" not in sys.argv[0].lower():
>     #code is not being run from within Wing
>     import wingdbstub
>     wingdbstub.kAttachPort = 50010

It must be importing wingdbstub for debugging to be started. You will 
probably need to isolate the import in some way so it does not occur 
when running your unit tests. You could do this either by moving it 
outside of the tests or adding conditional code, probably by inspecting 
sys.argv as you suggest, or possibly os.environ. If you don't know what 
code to use, just set a breakpoint on the line following "import 
wingdbstub" and use the Debug Probe to inspect the environment. This 
would also be the way to determine why the import is happening if you're 
not expecting it to.

Thanks,

-- 

Stephan Deibel
Wingware | Python IDE
Advancing Software Development

www.wingware.com



More information about the wingide-users mailing list