我们最近将相当大的主要用 C 编写的软件(某些部分是 C++)从 Visual Studio 2008 迁移到 Visual Studio 2017。大多数软件源自 80 年代/90 年代初期。
在测试新的二进制文件时,我们不断遇到由内存溢出引起的错误。这些内存溢出似乎永远存在,但显然从未在旧版本的 MSVC 编译器下暴露出来。虽然发现并修复这些问题固然很好,但现在最好知道是什么原因导致这些问题被暴露。
从 2008 年到 2017 年,Visual C 的内存管理变化大吗?谁能向我指出有关此主题的文档?
最佳答案
最相关的编译器选项是/GS
,它是缓冲区安全检查。这是有意尝试检测您所描述的问题类型,因为此类问题通常最终会成为可利用的安全问题。尽早崩溃是更好的选择。
关于c++ - VS 2008 和 VS 2017 之间的 Visual C++ 内存管理变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222084/