Thread: [PyCrust] C++ "throw" crashes PyCrust instead of triggering python traceback
Brought to you by:
pobrien
From: Sebastian H. <ha...@ms...> - 2003-05-09 22:08:57
|
Hi all, I am writing C++ code that I make wrap (using SWIG) so that it's callabl from python. When there is a exception on the C++ level (C++ throw) this should be get converted into an exception on the Python level, that is, I should see a python traceback. If I run python in the normal terminal window it works like that. Also IDLE behaves well - giving the traceback. PyCrust on Linux used to seg-fault on this (2+ month ago?) but now it works (since PyCrust 0.9 or so) -- THATS THE GOOD NEWS !! But the bad news is that on Windows it crahes -- I get "Runtime Error! Program: C:\python22\pythonw.exe -- abnormal program termination" -- and then 'OK' closes everything ... Here are the versions I use - I just got it yesterday from wxWindows CVS (2.4 branch) shell.about() Author: "Patrick K. O'Brien <po...@or...>" Py Version: 0.9.2 Py Shell Revision: 1.1.2.5 Py Interpreter Revision: 1.1.2.2 Python Version: 2.2.2 wxPython Version: 2.4.1.0p1 Platform: win32 Please help - or tell me how I can help ;-) Thanks for PyCrust - it's great !! Sebastian Haase |
From: <po...@or...> - 2003-05-12 13:20:18
|
"Sebastian Haase" <ha...@ms...> writes: > Hi all, > I am writing C++ code that I make wrap (using SWIG) so that it's callabl > from python. > When there is a exception on the C++ level (C++ throw) this should be get > converted into an exception on the Python level, that is, I should see a > python traceback. If I run python in the normal terminal window it works > like that. Also IDLE behaves well - giving the traceback. > > PyCrust on Linux used to seg-fault on this (2+ month ago?) but now it works > (since PyCrust 0.9 or so) -- THATS THE GOOD NEWS !! > But the bad news is that on Windows it crahes -- I get > "Runtime Error! Program: C:\python22\pythonw.exe -- abnormal program > termination" -- and then 'OK' closes everything ... > Here are the versions I use - I just got it yesterday from wxWindows CVS > (2.4 branch) > shell.about() > Author: "Patrick K. O'Brien <po...@or...>" > Py Version: 0.9.2 > Py Shell Revision: 1.1.2.5 > Py Interpreter Revision: 1.1.2.2 > Python Version: 2.2.2 > wxPython Version: 2.4.1.0p1 > Platform: win32 Thanks for the info. That's the latest version. > Please help - or tell me how I can help ;-) I wish I knew. I don't do any work with C++. Robin, got any ideas about this? Anyone else? If not, you may want to post something to comp.lang.python, since there are many more people there than on this list. > Thanks for PyCrust - it's great !! Glad you think so. Sorry I couldn't help. -- Patrick K. O'Brien Orbtech http://www.orbtech.com/web/pobrien ----------------------------------------------- "Your source for Python programming expertise." ----------------------------------------------- |
From: Robin D. <ro...@al...> - 2003-05-15 18:45:40
|
[Sorry, I didn't see this message right wawy because of a fault in my filters.] Patrick K. O'Brien wrote: > "Sebastian Haase" <ha...@ms...> writes: > > >>Hi all, >>I am writing C++ code that I make wrap (using SWIG) so that it's callabl >>from python. >>When there is a exception on the C++ level (C++ throw) this should be get >>converted into an exception on the Python level, that is, I should see a >>python traceback. If I run python in the normal terminal window it works >>like that. Also IDLE behaves well - giving the traceback. >> >>PyCrust on Linux used to seg-fault on this (2+ month ago?) but now it works >>(since PyCrust 0.9 or so) -- THATS THE GOOD NEWS !! >>But the bad news is that on Windows it crahes -- I get >>"Runtime Error! Program: C:\python22\pythonw.exe -- abnormal program >>termination" -- and then 'OK' closes everything ... >>Here are the versions I use - I just got it yesterday from wxWindows CVS >>(2.4 branch) >>shell.about() >>Author: "Patrick K. O'Brien <po...@or...>" >>Py Version: 0.9.2 >>Py Shell Revision: 1.1.2.5 >>Py Interpreter Revision: 1.1.2.2 >>Python Version: 2.2.2 >>wxPython Version: 2.4.1.0p1 >>Platform: win32 > > > Thanks for the info. That's the latest version. > > >>Please help - or tell me how I can help ;-) > > > I wish I knew. I don't do any work with C++. Robin, got any ideas > about this? Anyone else? If not, you may want to post something to > comp.lang.python, since there are many more people there than on this > list. Please tell me a bit more about it. Does the exception work correctly on Windows if not run from PyCrust? What about if it is run from some other wxPython app? Can you extract and show us the code that is converting the c++ exception into the Python exception? -- Robin Dunn Software Craftsman http://wxPython.org Java give you jitters? Relax with wxPython! |
From: Sebastian H. <ha...@ms...> - 2003-05-15 19:20:06
|
> [Sorry, I didn't see this message right wawy because of a fault in my > filters.] > > Patrick K. O'Brien wrote: > > "Sebastian Haase" <ha...@ms...> writes: > > > > > >>Hi all, > >>I am writing C++ code that I make wrap (using SWIG) so that it's callabl > >>from python. > >>When there is a exception on the C++ level (C++ throw) this should be get > >>converted into an exception on the Python level, that is, I should see a > >>python traceback. If I run python in the normal terminal window it works > >>like that. Also IDLE behaves well - giving the traceback. > >> > >>PyCrust on Linux used to seg-fault on this (2+ month ago?) but now it works > >>(since PyCrust 0.9 or so) -- THATS THE GOOD NEWS !! > >>But the bad news is that on Windows it crahes -- I get > >>"Runtime Error! Program: C:\python22\pythonw.exe -- abnormal program > >>termination" -- and then 'OK' closes everything ... > >>Here are the versions I use - I just got it yesterday from wxWindows CVS > >>(2.4 branch) > >>shell.about() > >>Author: "Patrick K. O'Brien <po...@or...>" > >>Py Version: 0.9.2 > >>Py Shell Revision: 1.1.2.5 > >>Py Interpreter Revision: 1.1.2.2 > >>Python Version: 2.2.2 > >>wxPython Version: 2.4.1.0p1 > >>Platform: win32 > > > > > > Thanks for the info. That's the latest version. > > > > > >>Please help - or tell me how I can help ;-) > > > > > > I wish I knew. I don't do any work with C++. Robin, got any ideas > > about this? Anyone else? If not, you may want to post something to > > comp.lang.python, since there are many more people there than on this > > list. > > Please tell me a bit more about it. Does the exception work correctly > on Windows if not run from PyCrust? What about if it is run from some > other wxPython app? Can you extract and show us the code that is > converting the c++ exception into the Python exception? > Hi Robin - Hi all, I just ran some more test - and in fact the exceptions don't work right in either PyCrust, IDLE or command-line... When I did the tests before - that was on Linux ! and I got the 'abort' only from PyCrust and not from IDLE or xterm. (But as said above - now it works for me in Linux !) I use SWIG * Version 1.3.17u-20021123-0854 on windows - the wrapper code has this code: try { result = (PriismFile *)new PriismFile((char const *)arg1,arg2,arg3); } catch(char const *&_e) { { PyErr_SetString(PyExc_RuntimeError, _e); SWIG_fail; } } catch(...) { throw; } and PriismFile::PriismFile(...) contains this: if(!pfStream) { throw "Could not open file" ; } **** I JUST LEARNED ABOUT IT !!!!! putting in printf- statements I found that it goes into the "catch(...) " part !!! So the problem seems to be that "text" doesn't get matched by "char const *&"... I'm using VC6++ Thanks for your interest - and making me think !!!! Cheers, Sebastian Haase |