我有以下简单的程序:
#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中的发布版本中。(VC10很好)。看一下调用堆栈,它发生在boost\intrusive\rbtree_algorithms.hpp的rebalance_after_insertion()中。有没有人遇到过类似的问题?
发布于 2016-04-11 19:49:54
如果有人遇到这个问题,问题似乎是与特定版本的boost (在我的例子中是v1.55.0)的代码生成相关的。它也仅在发布配置和应用优化(即'/O1‘、'/O2’或'/Ox')时发生。使用Boost v.1.58解决了这个问题。
https://stackoverflow.com/questions/22050745
复制相似问题