我想我在 Windows 上的 emacs 中通过 gdb 运行我的单元测试时遇到了堆栈溢出问题。
我在 linux 上运行完全相同的单元测试没有问题
我也知道我在这些单元测试中使用了一个内存效率极低的基于堆栈的 .ini 文件解析器,因此发生堆栈溢出似乎是合理的可能性。
我注意到一些在 Windows 上失败的单元测试在 Linux 上通过。进一步的调查揭示了 for 循环中的(基于堆栈的)计数器在 for 循环执行中的随机点处将自身重置为零,并且 for 循环正在检查的数组中的(基于堆栈的)值更改为相同的索引值
我注意到 gdb 似乎在 Windows 下分配了自己的执行线程 - 有没有办法找出线程分配了多少堆栈空间?