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/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4