Вы должны просто иметь возможность исследовать сам объект unordered_map
, не вызывая для него методы.
Например, возьмем эту простую программу:
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<int, string> map;
map[0] = "mary";
map[1] = "had";
map[2] = "a";
map[3] = "little";
map[4] = "lamb";
return 0;
}
$ clang++ -std=c++11 -stdlib=libc++ -g unmap.cpp -o unmap
$ lldb unmap
Current executable set to 'unmap' (x86_64).
(lldb) break set --name main
lldb
вывод не показан для краткости
(lldb) proc launch
n
введено 5 раз до return 0;
утверждения
(lldb)
Process 18063 stopped
* thread #1: tid = 0x1c03, 0x0000000100000aea unmap`main + 1082 at unmap.cpp:15, stop reason = step over
frame #0: 0x0000000100000aea unmap`main + 1082 at unmap.cpp:15
12 map[3] = "little";
13 map[4] = "lamb";
14
-> 15 return 0;
16 }
17
А затем исследуйте объект с помощью p
:
(lldb) p map[0]
(std::__1::unordered_map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<std::__1::pair<const int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::mapped_type) $2 = "mary"
(lldb) p map[1]
(std::__1::unordered_map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<std::__1::pair<const int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::mapped_type) $3 = "had"
(lldb) quit
Версия lldb
, которую вы используете, будет иметь значение, поскольку она постоянно совершенствуется:
$ lldb -version
LLDB-179.5
(то есть тот, который поставляется с пакетом командной строки Xcode 5 DP 6)
person
trojanfoe
schedule
11.09.2013