gpt4 book ai didi

c++ - 如何处理堆栈空间不足段错误?

转载 作者:搜寻专家 更新时间:2023-10-31 01:36:37 24 4
gpt4 key购买 nike

假设我使用 gcc --stack,4194304 编译

接下来在我的程序中我会做类似 char what_is_wrong_with_me[8000000];

这将导致段错误,但奇怪的是我有一个工作的 segv_handler,如果我做一些愚蠢的事情,比如 char *stupid=0; *stupid='x'; 它将打印一条错误消息。

我的问题是,如何处理堆栈空间不足的段错误?

最佳答案

你可以处理这个,但你已经用尽了你的主要堆栈。您需要为信号处理程序设置备用堆栈。您可以使用 sigaltstack 系统调用

执行此操作

使用 sigaction 安装段错误处理程序时,您还需要 SA_ONSTACK 选项

关于c++ - 如何处理堆栈空间不足段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com