场景

程序运行提示报错:

0x00D51599 处有未经处理的异常(在exe 中): 0xC00000FD: Stack overflow (参数: 0x00000000, 0x007A2000)。

指向汇编代码

; Find next lower page and probe
cs20:
        sub     eax, _PAGESIZE_         ; decrease by PAGESIZE
        test    dword ptr [eax],eax     ; probe page.
        jmp     short cs10


原因

定义了一个1M的栈字符数组

std::uint8_t szBuffer[1024 * 1024] = { 0 };

一般情况下,线程的栈能够存放的空间本来就小,一旦越界,程序就会出错,分配这种大的内存块,需要采用new