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(和一個兼容的編譯器),你的代碼仍然不是線程安全的。 –