在以下功能中,我无法在LLDB中看到“ recordMap”。for循环输出键,recordType设置正确,但是'p recordMap'给出错误“使用未声明的标识符”。我在LLDB中可以看到变量'recordType'很好,所以我处于正确的范围内。当我在LLDB中键入'recordMap'时,它会自动完成,就好像它在那里一样。
对于调试和发布,我都将优化设置为“无”。这可能是什么!
void MezNetworkController::showRecord( std::map<string, MezSQLData*> recordMap ) {
for( auto item : recordMap )
printf( " KEY: %s\n", item.first.c_str() );
int recordType = (int) recordMap["messageType"]->intValue();
printf( recordType );
}
Run Code Online (Sandbox Code Playgroud)
以下是lldb中“ image lookup -va $ pc”的结果:
Address: Mezmo[0x00015ed0] (Mezmo.__TEXT.__text + 45272)
Summary: Mezmo`MezNetworkController::showRecord(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, MezSQLData*, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, MezSQLData*> > >) + 780 at MezNetworkController.cpp:774
Module: file = "/Users/paulslocum/Dropbox/_iOS/_414 Messenger_/DerivedData/414 Messenger/Build/Products/Debug-iphoneos/Mezmo.app/Mezmo", arch = "armv7"
CompileUnit: id = {0x00000000}, file …Run Code Online (Sandbox Code Playgroud)