[Python-Dev] Trap SIGSEGV and SIGFPE (original) (raw)
Victor Stinner victor.stinner at haypocalc.com
Thu Dec 11 10:34:24 CET 2008
- Previous message: [Python-Dev] Trap SIGSEGV and SIGFPE
- Next message: [Python-Dev] Trap SIGSEGV and SIGFPE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Le Wednesday 10 December 2008 20:04:00 Terry Reedy, vous avez écrit :
>> Recover after a segfault is dangerous, but my first goal was to get the >> Python backtrace instead just one line: "Segmentation fault". It helps a >> lot for debug! > > Exactly! That's why it doesn't belong in the Python core. We can't > guarantee anything about its affects or encourage it.
Would it be safe to catch SIGSEGV, output a trace, and then exit? IE, make the 'first goal' the only goal?
Oh yeah, good idea :-) Does it mean that Python interpreter can't be used to display the trace? It would be nice to -at least- use the Python stderr (which is written in pure Python for Python3). It would be better if the user can setup a callback, like sys.excepthook. But if -as many people wrote- Python is totally broken after a segfault, it is maybe not a good idea :-)
I guess that sigsetjmp() and siglongjmp() hack can be avoided in Py_EvalFrameEx(), so ceval.c could be unchanged.
New pseudocode: set checkpoint if error: get the backtrace display the backtrace fast exit (eg. don't call atexit, don't free memory, ...) else: normal execution
-- Victor Stinner aka haypo http://www.haypocalc.com/blog/
- Previous message: [Python-Dev] Trap SIGSEGV and SIGFPE
- Next message: [Python-Dev] Trap SIGSEGV and SIGFPE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]