TGTGInsighttelegram intelligenceLIVE / telegram public index
← Welcome to the Black Parade
Welcome to the Black Parade avatar

TGINSIGHT POST

Post #72

@TheB1ackParade

Welcome to the Black Parade

Views101Post view count
PostedMay 1905/19/2022, 04:17 PM
Post content

Post content

#今日我又从波波那里学到了什么 1. 爆栈就是段错误 (对不起, 我以前以为爆栈是个 errno..) 2. 没办法扩张栈空间, mmap(2) 第一参数的 addr 是给内核的 hint, 它才不会让你挨着栈空间申请内存 3. 可以捉 segv 信号, 然后啥都不处理, 进程就卡死在段错误的信号处理了 4. rlimit 的 stacksize 定义了 clone(2) 的时候传入的 stack 指针的 size, 我的 linux 上这个的默认值是 8M 5. 所以我自己调用 clone(2) 的时候应该初始化多大的栈空间, 这个问题就好办了, 听 rlimit 的话 6. 内核划分的栈空间对 go 来说都是浮云, 它直接从虚拟内存地址 0xc000000000 开始用来做栈空间, 而不是用内核指定的栈空间, 所以 go 有无限大的栈, 直到 OOM 一些其他的 tips: 1. 捕捉 segv 信号要用 sigaltstack(2) 让信号处理函数跑在堆上 2. pause(2) 挺好用的...