zfengzhen/Blog

关于协程栈溢出

lag1500 opened this issue · 0 comments

【协程的栈采用malloc进行堆分配,分配后的空间在64位系统中和栈的使用一致,地址递减使用,uc_stack.uc_size设置的大小好像并没有多少实际作用,使用中一旦超过已分配的堆大小,会继续向地址小的方向的堆去使用,这个时候就会造成堆内存的越界使用,更改之前在堆上分配的数据,造成各种不可预测的行为,coredump后也找不到实际原因。】
请问这个问题您现在有什么好的检测手段了吗?我们最近也遇到了这个问题,诡异随机的coredump,查了好久才发现是协程栈溢出了,-fstack-protector-all以及valgrind都没法提供直观的帮助信息。。简直头大