写入外部分配的内存时中断

时间:2015-07-21 06:42:48

标签: c++ visual-studio-2013

使用c ++我有一个意外改变的变量,这可能是因为我在分配的内存之外写。我所看到的解决方案是遵循变量并找到它不应该改变的罕见地方,但这是一个非常缓慢的解决方案。 有没有办法在编写外部分配的内存时配置Visual Studio调试模式?

2 个答案:

答案 0 :(得分:2)

您可以使用Data breakpoint来捕捉变量变化的时刻。可以使用Visual Studio中的Debug\New breakpoint\New data breakpoint菜单设置数据断点。

编辑:要检测内存范围违规,您可以使用一些分析工具(例如Bounds Checker),但这是您必须购买的独立产品。此外,还可以编写自己的内存管理器来检测内存范围违规。有关详细信息,请参阅thisthisthis

答案 1 :(得分:0)

通常,在 Windows 分配的内存外部写入时会出现访问冲突(0xC0000005)。但是你的意外覆盖的变量肯定是在已分配的内存中。