Improve stack overflow diagnostics.
We notify debuggerd of problems by installing signal handlers. That's fine except for when the signal is caused by us running off the end of a thread's stack and into the guard page. Bug: 8557703 Change-Id: I1ef65b4bb3bbca7e9a9743056177094921e60ed3
This commit is contained in:
@@ -30,12 +30,16 @@
|
||||
|
||||
#include "pthread_internal.h"
|
||||
|
||||
#define DEFAULT_STACK_SIZE (1024 * 1024)
|
||||
// Traditionally we give threads a 1MiB stack. When we started allocating per-thread
|
||||
// alternate signal stacks to ease debugging of stack overflows, we subtracted the
|
||||
// same amount we were using there from the default thread stack size. This should
|
||||
// keep memory usage roughly constant.
|
||||
#define DEFAULT_THREAD_STACK_SIZE ((1 * 1024 * 1024) - SIGSTKSZ)
|
||||
|
||||
int pthread_attr_init(pthread_attr_t* attr) {
|
||||
attr->flags = 0;
|
||||
attr->stack_base = NULL;
|
||||
attr->stack_size = DEFAULT_STACK_SIZE;
|
||||
attr->stack_size = DEFAULT_THREAD_STACK_SIZE;
|
||||
attr->guard_size = PAGE_SIZE;
|
||||
attr->sched_policy = SCHED_NORMAL;
|
||||
attr->sched_priority = 0;
|
||||
|
||||
Reference in New Issue
Block a user