我有以下简单程序:
#include <boost\interprocess\managed_windows_shared_memory.hpp>
#include <boost\interprocess\shared_memory_object.hpp>
using namespace boost::interprocess;
int main ()
{
managed_windows_shared_memory segment(create_only, "MySharedMemory", 655360);
return 0;
}
它崩溃,但以下异常:
Unhandled exception at 0x00007FF6B7741664 in Server.exe: Stack cookie instrumentation code detected a stack-based buffer overrun.
仅在VC11中的Release版本中会发生这种情况。 (VC10可以)。查看调用堆栈,它发生在boost \ intrusive \ rbtree_algorithms.hpp中的rebalance_after_insertion()处。有人遇到过类似的问题吗?
最佳答案
如果有人遇到这种情况,则问题似乎与特定版本的boost(在我的情况下为1.55.0版)有关。它还仅在发布配置中以及应用优化时(即'/ O1','/ O2'或'/ Ox')发生。使用Boost v.1.58解决了该问题。
关于c++ - 在VC11上boost::interprocess::managed_windows_shared_memory崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22050745/