[Twisted-Python] [Twisted] #5437: sys.settrace(None) in process.py raises RuntimeError in debugger

Bob Novas bob.novas at shinkuro.com
Tue Dec 20 17:02:00 EST 2011


Well, what wing's debugger does is to raise RuntimeError, and NOT CONTINUE
to execute that path. So the child never runs. That's bad!  What more can I
say?  I have to comment out that line every time I run on a new installation
if I want to debug in linux (Windows doesn't go down that code path).  Bob

> -----Original Message-----
> From: Twisted [mailto:trac at twistedmatrix.com]
> Sent: Tuesday, December 20, 2011 4:40 PM
> Subject: Re: [Twisted] #5437: sys.settrace(None) in process.py raises
> RuntimeError in debugger
> 
> #5437: sys.settrace(None) in process.py raises RuntimeError in debugger
> --------------------------+---------------------------------------------
> --------------------------+----
>      Reporter:  BobNovas  |           Owner:  BobNovas
>          Type:  defect    |          Status:  new
>      Priority:  normal    |       Milestone:
>     Component:  core      |        Keywords:  settrace, process
>        Branch:            |   Branch_author:
> Launchpad_bug:            |
> --------------------------+---------------------------------------------
> --------------------------+----
> Changes (by exarkun):
> 
>   * owner:  => BobNovas
>   * milestone:  regular-releases =>
>   * branch_author:  BobNovas =>
> 
> 
> Comment:
> 
>  The ''regular-releases'' milestone is for release automation.  The
''author'' field
> is for svn branch authorship.  I've unset these two  fields.
> 
>  I'm think the intent of the `sys.settrace(None)` call is to disable
debuggers.  It
> does this because there's very little left to do before the  Python
process is going
> to be replaced by a new process (which will not be  debuggable using the
trace
> hook) and because there are two different  Python processes being debugged
at
> that point in the code, because of the  `os.fork` call which has succeeded
just
> beforehand.
> 
>  Does Wing have some way to meaningfully debug two processes
> simultaneously, where the second is created using `os.fork` in the first?
>  If not, then there's no use in removing the `sys.settrace(None)`, because
it will
> just break in some other way.
> 
>  I have very little experience with Wing's debugger, so I don't know what
it's
> possible to do in this case.  I'm also not really sure what a Wing
debugger user
> (ie you :) expect to happen.
> 
>  Can you shed some more light on this?  Thanks.
> 
> --
> Ticket URL: <http://twistedmatrix.com/trac/ticket/5437#comment:1>
> Twisted <http://twistedmatrix.com/trac/> Engine of your Internet




More information about the Twisted-Python mailing list