2010-05-20 67 views
0

我们团队的一名成员在Windows 2008 R2上报告了一个报告“重复记忆免费操作”的问题。我无法在网上找到很多关于此的信息。该问题无法在非英文操作系统上重新生成。有什么建议么?什么导致重复的内存释放操作?

回答

0

DOH - 似乎这是某种断言,您只能在Windows的Windows Check(即调试)构建中获得。

2

它通常意味着你已经释放了两次相同的内存,这是一个很大的禁忌。这是因为释放内存会将其返回到可用于其他用途的空闲池。

现在,虽然两次释放相同的内存并不是很糟糕,但如果它可以被截取并忽略,那么如果它在此期间被分配给其他人,那么这不是那么容易。这意味着相同的内存块可能会分配给多个用途,因此很可能导致数据损坏。

+0

这怎么可能只在非英文Win2k8R2上报告? – sharptooth 2010-05-20 08:13:05

+0

如果非英文版本的Windows使用与英文版本相同的代码和数据,则所有消息均为英文。也许它只发生在字符串是特定长度的情况下,或者它只发生在多字节代码路径中。 – 2010-05-20 08:33:35

+0

跟踪这种情况的一个简单方法是在应用程序验证程序下运行应用程序 - 这将在双倍空闲时进入调试程序。 – 2010-05-20 21:24:28