Thread: [Pydev-code] Showstopper bug when debugging Chandler
Brought to you by:
fabioz
From: Heikki T. <hj...@co...> - 2006-02-08 07:10:46
|
My benchmark for a speedy debugger is Chandler. Until now, only WingIDE and ActiveState Komodo have been usable GUI tools to debug Chandler (well, that I have tried anyway). The latest pydev seems speedy enough now to debug even Chandler. The hardest problem in debugging Chandler is dealing with threads, because threads are created by gcj and not by Python. WingIDE cannot be used to debug Chandler threads (it only sees the main thread). We have hacked a patch that lets us debug background threads in Komodo (see http://wiki.osafoundation.org/bin/view/Projects/DebuggingChandler#Multi_threaded_debugging_in_Komo). (Presumably something similar could be done for WingIDE but AFAIK nobody has tried.) I wonder if the unusual threads in Chandler are the cause of a showstopper bug when trying to debug Chandler with pydev... When starting Chandler under the pydev debugger all is well until Chandler just hangs, and pydev won't step any further. It gets to a point where the Chandler splash screen is up, reporting 55% done, and then stops here: MainThread getVersion [DBContainer.py:1533] getVersion [DBRepository.py:773] __init__ [RepositoryView.py:939] createView [DBRepository.py:518] fork_item [startup.py:122] invokeTarget [startup.py:160] onStart [startup.py:184] _start [startup.py:89] run_startup [startup.py:24] initWakeup [Utility.py:492] OnInit [Application.py:357] _BootstrapApp [_core.py:7338] __init__ [_core.py:7686] realMain [Chandler.py:55] main [Chandler.py:68] ? [Chandler.py:108] run [pydevd.py:551] ? [pydevd.py:666] So, I guess I am asking if anyone would know if a hack similar to Komodo could be employed (see the link above), and/or if the hang is something else. I'd be happy to provide anyone with instructions on how to deal with Chandler, although these would be a good start: http://wiki.osafoundation.org/bin/view/Projects/GettingChandler http://wiki.osafoundation.org/bin/view/Projects/BuildingChandler -- Heikki Toivonen |
From: Fabio Z. <fa...@gm...> - 2006-02-08 09:59:06
|
Hi Heikki, I believe that integrating the threads would not be so hard... There has been a similar issue when dealing with threads in CORBA. The solution for that is published in the Pydev Faq, under "I have a CORBA program and I cannot debug its methods, what can I do?" While I haven't tried making those changes myself, it should be simple just to say that it should start to debug some thread, as long as you know where is the 'creation point' of the thread (so, seeing the solution for komodo, = I must say that the solution to pydev should be pretty similar). As for the hang... that's the first report I had about some program hanging when running inside of the debugger (I'll take a look at it)... Also, if you use Pydev Extensions (http://www.fabioz.com/pydev), you could use the remote debugger, so, you'd probably bypass this problem at the time you get to the point where you start debugging (without any loss of speed until you get at the call to stop the debugger). The manual for the remote debugger is at: http://www.fabioz.com/pydev/manual_adv_remote_debugger.html Cheers, Fabio On 2/8/06, Heikki Toivonen <hj...@co...> wrote: > > My benchmark for a speedy debugger is Chandler. Until now, only WingIDE > and ActiveState Komodo have been usable GUI tools to debug Chandler > (well, that I have tried anyway). > > The latest pydev seems speedy enough now to debug even Chandler. > > The hardest problem in debugging Chandler is dealing with threads, > because threads are created by gcj and not by Python. WingIDE cannot be > used to debug Chandler threads (it only sees the main thread). We have > hacked a patch that lets us debug background threads in Komodo (see > > http://wiki.osafoundation.org/bin/view/Projects/DebuggingChandler#Multi_t= hreaded_debugging_in_Komo > ). > (Presumably something similar could be done for WingIDE but AFAIK nobody > has tried.) I wonder if the unusual threads in Chandler are the cause of > a showstopper bug when trying to debug Chandler with pydev... > > When starting Chandler under the pydev debugger all is well until > Chandler just hangs, and pydev won't step any further. It gets to a > point where the Chandler splash screen is up, reporting 55% done, and > then stops here: > > MainThread > getVersion [DBContainer.py:1533] > getVersion [DBRepository.py:773] > __init__ [RepositoryView.py:939] > createView [DBRepository.py:518] > fork_item [startup.py:122] > invokeTarget [startup.py:160] > onStart [startup.py:184] > _start [startup.py:89] > run_startup [startup.py:24] > initWakeup [Utility.py:492] > OnInit [Application.py:357] > _BootstrapApp [_core.py:7338] > __init__ [_core.py:7686] > realMain [Chandler.py:55] > main [Chandler.py:68] > ? [Chandler.py:108] > run [pydevd.py:551] > ? [pydevd.py:666] > > So, I guess I am asking if anyone would know if a hack similar to Komodo > could be employed (see the link above), and/or if the hang is something > else. I'd be happy to provide anyone with instructions on how to deal > with Chandler, although these would be a good start: > > http://wiki.osafoundation.org/bin/view/Projects/GettingChandler > http://wiki.osafoundation.org/bin/view/Projects/BuildingChandler > > -- > Heikki Toivonen > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D103432&bid=3D230486&dat= =3D121642 > _______________________________________________ > Pydev-code mailing list > Pyd...@li... > https://lists.sourceforge.net/lists/listinfo/pydev-code > |
From: Heikki T. <hj...@co...> - 2006-02-09 17:55:10
|
Fabio Zadrozny wrote: > I believe that integrating the threads would not be so hard... There has > been a similar issue when dealing with threads in CORBA. The solution > for that is published in the Pydev Faq, under "I have a CORBA program > and I cannot debug its methods, what can I do?" Excellent! After looking at the FAQ and the code in pydevd.py, I wonder if this could be simpler... Wouldn't it be enough to do only this change to the program being debugged in the place where the threads are created in funny ways, and no changes in pydev at all? try: import sys, pydevd sys.settrace(pydevd.debugger.trace_dispatch) except: pass Note that I haven't tried this yet (I can't debug Chandler far enough to try it, and I haven't written a separate test app either). -- Heikki Toivonen |
From: Fabio Z. <fa...@gm...> - 2006-02-09 18:22:19
|
Yeap... same thing... (too much comment in that FAQ). The only difference would be the global hook, but I think it is actually kind of unnecessary... importing pydevd as you pointed is probably the best solution... Cheers, Fabio On 2/9/06, Heikki Toivonen <hj...@co...> wrote: > > Fabio Zadrozny wrote: > > I believe that integrating the threads would not be so hard... There ha= s > > been a similar issue when dealing with threads in CORBA. The solution > > for that is published in the Pydev Faq, under "I have a CORBA program > > and I cannot debug its methods, what can I do?" > > Excellent! > > After looking at the FAQ and the code in pydevd.py, I wonder if this > could be simpler... > > Wouldn't it be enough to do only this change to the program being > debugged in the place where the threads are created in funny ways, and > no changes in pydev at all? > > try: > import sys, pydevd > sys.settrace(pydevd.debugger.trace_dispatch) > except: > pass > > Note that I haven't tried this yet (I can't debug Chandler far enough to > try it, and I haven't written a separate test app either). > > -- > Heikki Toivonen > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D103432&bid=3D230486&dat= =3D121642 > _______________________________________________ > Pydev-code mailing list > Pyd...@li... > https://lists.sourceforge.net/lists/listinfo/pydev-code > |
From: Fabio Z. <fa...@gm...> - 2006-02-13 16:49:41
|
Hi Heikki, I've played with the debugger to handle some freezes, so, could you try to replace the pydevd.py and see if Chandler still freezes and report back the results? -- couldn't get time to get chandler and test it. The bug that was opened to handle the freezes is : http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1428333&group_= id=3D85796&atid=3D577329 The file (pydevd.py 02) is attached to the bug. Cheers, Fabio On 2/9/06, Heikki Toivonen <hj...@co...> wrote: > > Fabio Zadrozny wrote: > > I believe that integrating the threads would not be so hard... There ha= s > > been a similar issue when dealing with threads in CORBA. The solution > > for that is published in the Pydev Faq, under "I have a CORBA program > > and I cannot debug its methods, what can I do?" > > Excellent! > > After looking at the FAQ and the code in pydevd.py, I wonder if this > could be simpler... > > Wouldn't it be enough to do only this change to the program being > debugged in the place where the threads are created in funny ways, and > no changes in pydev at all? > > try: > import sys, pydevd > sys.settrace(pydevd.debugger.trace_dispatch) > except: > pass > > Note that I haven't tried this yet (I can't debug Chandler far enough to > try it, and I haven't written a separate test app either). > > -- > Heikki Toivonen > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D103432&bid=3D230486&dat= =3D121642 > _______________________________________________ > Pydev-code mailing list > Pyd...@li... > https://lists.sourceforge.net/lists/listinfo/pydev-code > |
From: Heikki T. <hj...@co...> - 2006-02-13 18:44:40
|
Fabio Zadrozny wrote: > I've played with the debugger to handle some freezes, so, could you try > to replace the pydevd.py and see if Chandler still freezes and report > back the results? -- couldn't get time to get chandler and test it. The I tried but it didn't help. Besides, the symptoms seem to be different than in that bug. With Chandler it always causes the freeze in the same spot, on every run. -- Heikki Toivonen |