我有这个工作来实现提供文件共享功能的库。不会执行的行中的更改会破坏构建!
这已经发生过两次:
首先,在字符串中的if-else路径,只有当正在执行的路径,但是,当我更改其他路径的拼写,软件历经数分钟在std库中崩溃。我通过附带的调试进行了验证,发现内存变化从未被触及。当我扭转变化,它再次很好地工作。其次,我的软件再次在std库上崩溃,out-of-array
检查到一个标准的basic_string析构函数中。
我做了一切,所有图书馆都匹配_HAS_ITERATOR_DEBUGGING
。
4个小时后,我发现有问题的文件是TorrentFile.cpp/h
。
如果我添加一个函数(即使它从来没有被调用过),程序在该文件的末尾崩溃,但如果它不在那里,就没有错误。导致问题的代码:
std::vector<TorrentFileListPacket> TorrentFile::GetFileMap()
{
std::vector<TorrentFileListPacket> vFiles;
return vFiles;
};
如果我评论此代码,崩溃消失了。
这真的让我疯狂!
我已经做了8年的开发人员,而且我从未见过这样的事情!
其他信息
我的内存是好的,我使用Visual Studio 2010 SP1的Windows 7中的库是从RasterBar libTorrent
并将其链接到提高。该软件使用MFC。
由于C++有重载,因此不能假定不会调用新添加的函数。 –
我将函数名设置为GetFileMap101010101010101010101010101并发生同样的崩溃! – bratao
**重建所有** – Erik