Le samedi 18 décembre 2010 à 17:23 +0100, Georg Brandl a écrit : > Well, without a closer I assume that for some crashes it's just not > possible anymore for the Python interpreter to even print out the > traceback? The worst case occurs if the frame objects are corrupted, eg. if the filename of a frame is an invalid object (eg. pointer to NULL or to a corrupted unicode object). If the file descriptor 2 is not stderr (eg. if there is no file descriptor 2), the backtrace cannot be printed. Except of these two issues, I think that the fault handler is always able to display the backtrace, even on stack overflow or invalid memory write. -- Older versions of my patch were less reliable: - allocate memory on the heap => only use the stack (only few bytes) - call "complex" Python functions (like UTF-8 codec with backslashreplace error handler) => use a very simple ASCII +backslashreplace implementation and avoid complex functions - use not signal-safe functions like printf => use write() and simple functions to format numbers - may go into an unlimited loop if there is a loop in the frame linked list => limit the loop to MAX_DEPTH (100) iterations Victor
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