码迷,mamicode.com
首页 > 其他好文 > 详细

VS2013 堆栈溢出调查(0xC00000FD: Stack overflow)

时间:2018-04-11 15:50:05      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:方法   bubuko   项目   需要   定义   AC   说明   dev   mic   

在调试一个代码时,执行过程中会出现如下错误(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)

标签:方法   bubuko   项目   需要   定义   AC   说明   dev   mic   

原文地址:https://www.cnblogs.com/anderzheng/p/8794407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!