VS2013 堆栈溢出调查(0xC00000FD: Stack overflow)
Posted 日月星辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2013 堆栈溢出调查(0xC00000FD: Stack overflow)相关的知识,希望对你有一定的参考价值。
在调试一个代码时,执行过程中会出现如下错误(0xC00000FD: Stack overflow)。
很明显是堆栈溢出了。
网上很多方法,都是通过修改设置工程配置,把堆栈调大一些,如下图。
但是堆栈到底使用了多少,在哪里溢出的,并不清楚。
其实在VS2013里面有一个代码分析工具,可以很方便地帮助定位堆栈问题。
首先,打开从菜单-->VIEW--> Other Windows --> Code Analysis 打开代码分析窗口。
其次,在Code Analysis 窗口里,选择需要分析的项目。
分析结果里面会显示代码存在堆栈溢出警告,也给出了建议,可以移一些数据到堆空间。
双击警告,可以定位到错误所在代码。
检查后发现这个函数第49行定义了一个变量buff,大小为1M,加上其他变量,肯定超过了1M(默认的栈大小)。
改成 char *buff = (char*)malloc(1024*1024); 就不会有这个问题。
或者也可以直接修改工程属性,增加栈空间。
※ 关于C6262的说明参考官方文档。
https://msdn.microsoft.com/query/dev12.query?appId=Dev12IDEF1&l=EN-US&k=k(C6262)&rd=true
以上是关于VS2013 堆栈溢出调查(0xC00000FD: Stack overflow)的主要内容,如果未能解决你的问题,请参考以下文章
Error 0xC00000FD: Stack overflow 之 更改堆栈保留大小
OpenARK-SDK.exe 中 0x00007FF74F27A526 处的未处理异常:0xC00000FD:堆栈溢出(参数:0x0000000000000001、0x000000EEC5803FD
0xC00000FD: Stack overflow (parameters: 0x00000000, 0x003E2000).错误
vivado sdk生成elf文件出错:make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)