[问题] 关于C++在VS2017上的溢位

楼主: asdfg1597860 (Jay)   2018-08-22 11:19:55
开发平台(Platform): (Ex: Win10, Linux, ...)
WIN10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VS2017
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
堆叠为主缓冲区的满溢
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式无法顺利跑完
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
补充说明(Supplement):
各位前辈好
小弟想要把一个大型程式从VS2003升到VS2017
由于这个程式经手人很多 所以程式有点大且有点杂
目前做法是在VS2017建构在一个一个问题解决
编译及链结问题已解决但在程式运行时遇到堆叠溢位的问题
(之前在VS2003是不侦错执行,但在VS2017不侦错执行会直接关闭程式所以改用侦错执行)
因为时间上的关系重写是不太可能了
且小弟功力不足所以重构上也需要花很多时间
想询问各位前辈如果遇到这种问题会怎么解决
再请各位前辈给小弟一点方向
作者: bluesoul (忙死你老爸)   2018-08-22 11:37:00
增加stack size
作者: block (blah)   2018-08-22 14:17:00
看一下/GS 参数说明,就懂原因了,修bug吧
作者: bluesoul (忙死你老爸)   2018-08-22 19:09:00
stack爆掉和malloc或是new无关,recursive太多层了
作者: LPH66 (-6.2598534e+18f)   2018-08-23 17:30:00
你在侦错模式应该能看到呼叫堆叠, 看里面有没有一堆函数递回太多层的状况会在里面看到一个出现很多次的函数那里就是你的问题所在
作者: descent (“雄辩是银,沉默是金”)   2018-08-23 17:33:00
有没有开很大的 array 区域变量
作者: sarafciel (Cattuz)   2018-08-27 09:43:00
看起来不是stack炸掉 是超写到DEP的barrier上去了你在OnLesson开头多宣告一个大一点char Array试试

Links booklink

Contact Us: admin [ a t ] ucptt.com