Hello, I want to debug a pygtk program with PDB (the internal python debuger) because the program raise an exception.
My aim is to be able to directly "jump" to the exception with "python -m pdb myprogram.py" and then '(c)ontinue' and wait for the exception to be catch by pdb. But the pygtk main loop catch every exception, print it and continue it's life. Is there an option to change this behavior ? I have found on the internet about PYGTK_FATAL_EXCEPTIONS, but this does not still work, there is a patch : 2001-12-12 Matt Wilson <[email protected]> * gtk/pygtk.h (PyGtk_FatalExceptions): remove. * gtk/pygtk-private.h (PyGtk_FatalExceptions): remove. * gtk/gtkmodule.c (init_gtk): don't bother with PYGTK_FATAL_EXCEPTIONS. (pygtk_main_quit): remove unused code. I had read about the use of sys.excepthook, but it only allow me to look at the exception, but even if I raise it again, the main loop still catch it. This is an example program : import gtk,gobject def callback(): raise ValueError gobject.idle_add(callback) gtk.main() and the PDB session : $ python -m pdb gtk_test.py > /home/gbouchard/gtk_test.py(1)<module>() -> import gtk,gobject (Pdb) continue Traceback (most recent call last): File "gtk_test.py", line 4, in callback raise ValueError ValueError .. here PDB hang and the gtk_main_loop continue to live. I want the exception to pass through gtk.main_loop and finish in PDB. Be able to use pdb to jump directly on an exception is really needed when you debug pygtk code. Thank, and sorry for my writing skills... -- Guillaum _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
