mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-24 06:12:27 +00:00
Improve stack overflow recovery
It's now possible to use sigaltstack() to recover from stack overflows on Windows. Several bugs in sigaltstack() have been fixed, for all our supported platforms. There's a newer better example showing how to use this, along with three independent unit tests just to further showcase the various techniques.
This commit is contained in:
parent
1694edf85c
commit
4631d34d0d
24 changed files with 590 additions and 274 deletions
|
@ -2,7 +2,7 @@
|
|||
#define COSMOPOLITAN_LIBC_NT_STRUCT_NTEXCEPTIONRECORD_H_
|
||||
|
||||
#define kNtExceptionMaximumParameters 15
|
||||
#define kNtExceptionNoncontinuable 1
|
||||
#define kNtExceptionNoncontinuable 1
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
|
@ -12,7 +12,7 @@ struct NtExceptionRecord {
|
|||
struct NtExceptionRecord *ExceptionRecord; /* nested exceptions */
|
||||
void *ExceptionAddress; /* %rip */
|
||||
uint32_t NumberParameters; /* #ExceptionInformation */
|
||||
uint32_t *ExceptionInformation[kNtExceptionMaximumParameters];
|
||||
uint64_t ExceptionInformation[kNtExceptionMaximumParameters];
|
||||
};
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue