xref: /llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/main.cpp (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht #include <string>
2*99451b44SJordan Rupprecht 
3*99451b44SJordan Rupprecht struct DeepData_5
4*99451b44SJordan Rupprecht {
5*99451b44SJordan Rupprecht     std::string m_some_text;
DeepData_5DeepData_56*99451b44SJordan Rupprecht     DeepData_5() :
7*99451b44SJordan Rupprecht     m_some_text("Just a test") {}
8*99451b44SJordan Rupprecht };
9*99451b44SJordan Rupprecht 
10*99451b44SJordan Rupprecht struct DeepData_4
11*99451b44SJordan Rupprecht {
12*99451b44SJordan Rupprecht     DeepData_5 m_child1;
13*99451b44SJordan Rupprecht     DeepData_5 m_child2;
14*99451b44SJordan Rupprecht     DeepData_5 m_child3;
15*99451b44SJordan Rupprecht };
16*99451b44SJordan Rupprecht 
17*99451b44SJordan Rupprecht struct DeepData_3
18*99451b44SJordan Rupprecht {
19*99451b44SJordan Rupprecht     DeepData_4& m_child1;
20*99451b44SJordan Rupprecht     DeepData_4 m_child2;
21*99451b44SJordan Rupprecht 
DeepData_3DeepData_322*99451b44SJordan Rupprecht     DeepData_3() : m_child1(* (new DeepData_4())), m_child2(DeepData_4()) {}
23*99451b44SJordan Rupprecht };
24*99451b44SJordan Rupprecht 
25*99451b44SJordan Rupprecht struct DeepData_2
26*99451b44SJordan Rupprecht {
27*99451b44SJordan Rupprecht     DeepData_3 m_child1;
28*99451b44SJordan Rupprecht     DeepData_3 m_child2;
29*99451b44SJordan Rupprecht     DeepData_3 m_child3;
30*99451b44SJordan Rupprecht     DeepData_3 m_child4;
31*99451b44SJordan Rupprecht };
32*99451b44SJordan Rupprecht 
33*99451b44SJordan Rupprecht struct DeepData_1
34*99451b44SJordan Rupprecht {
35*99451b44SJordan Rupprecht     DeepData_2 *m_child1;
36*99451b44SJordan Rupprecht 
DeepData_1DeepData_137*99451b44SJordan Rupprecht     DeepData_1() :
38*99451b44SJordan Rupprecht     m_child1(new DeepData_2())
39*99451b44SJordan Rupprecht     {}
40*99451b44SJordan Rupprecht };
41*99451b44SJordan Rupprecht 
42*99451b44SJordan Rupprecht /*
43*99451b44SJordan Rupprecht  type summary add -f "${var._M_dataplus._M_p}" std::string
44*99451b44SJordan Rupprecht  type summary add -f "Level 1" "DeepData_1"
45*99451b44SJordan Rupprecht  type summary add -f "Level 2" "DeepData_2" -e
46*99451b44SJordan Rupprecht  type summary add -f "Level 3" "DeepData_3"
47*99451b44SJordan Rupprecht  type summary add -f "Level 4" "DeepData_4"
48*99451b44SJordan Rupprecht  type summary add -f "Level 5" "DeepData_5"
49*99451b44SJordan Rupprecht  */
50*99451b44SJordan Rupprecht 
main()51*99451b44SJordan Rupprecht int main()
52*99451b44SJordan Rupprecht {
53*99451b44SJordan Rupprecht     DeepData_1 data1;
54*99451b44SJordan Rupprecht     DeepData_2 data2;
55*99451b44SJordan Rupprecht 
56*99451b44SJordan Rupprecht     return 0; // Set break point at this line.
57*99451b44SJordan Rupprecht }
58