0
我得到这个错误KERN_PROTECTION_FAILURE使用静态映射和std :: make_pair
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0xb064425c
当下面的函数调用:
const std::map<FunctionID, std::string> getEnumElementsStringRepresentation() {
static bool is_initialized = false;
static std::map<FunctionID, std::string> enum_string_representation; // Fails here
if (false == is_initialized) {
enum_string_representation.insert(std::make_pair(FunctionID.capabilities, "capabilities"));
... many more similar inserts
is_initialized = true;
}
return enum_string_representation;
}
这似乎是一个读/写错误,但我我不确定调试的最佳方式。
看起来像一个iPhone的具体事情。我搜索了EXC_BAD_ACCESS并找到了很多结果。你研究过那种东西吗? –
是的,这不是在iPhone上,而是在Mac上。注意到这种行为在Linux机器上似乎不普遍 – JuJoDi
是否有多线程应用程序?不知道如何从上述错误到达堆栈溢出,它似乎表明一个错误的读取或写入。即使C++ 11(和一个兼容的编译器),你的代码仍然不是线程安全的。 –