1 //----------------------------------------------------------------------------// 2 // Struct loading declarations. 3 4 struct StructFirstMember { int i; }; 5 struct StructBehindPointer { int i; }; 6 struct StructBehindRef { int i; }; 7 struct StructMember { int i; }; 8 9 StructBehindRef struct_instance; 10 11 struct SomeStruct { 12 StructFirstMember *first; 13 StructBehindPointer *ptr; 14 StructMember member; 15 StructBehindRef &ref = struct_instance; 16 }; 17 18 struct OtherStruct { 19 int member_int; 20 }; 21 22 //----------------------------------------------------------------------------// 23 // Class loading declarations. 24 25 struct ClassMember { int i; }; 26 struct StaticClassMember { int i; }; 27 struct UnusedClassMember { int i; }; 28 struct UnusedClassMemberPtr { int i; }; 29 30 namespace NS { 31 class ClassInNamespace { 32 int i; 33 }; 34 class ClassWeEnter { 35 public: 36 int dummy; // Prevent bug where LLDB always completes first member. 37 ClassMember member; 38 static StaticClassMember static_member; 39 UnusedClassMember unused_member; 40 UnusedClassMemberPtr *unused_member_ptr; enteredFunction()41 int enteredFunction() { 42 return member.i; // Location: class function 43 } 44 }; 45 StaticClassMember ClassWeEnter::static_member; 46 }; 47 48 //----------------------------------------------------------------------------// 49 // Function we can stop in. 50 functionWithOtherStruct()51int functionWithOtherStruct() { 52 OtherStruct other_struct_var; 53 other_struct_var.member_int++; // Location: other struct function 54 return other_struct_var.member_int; 55 } 56 functionWithMultipleLocals()57int functionWithMultipleLocals() { 58 SomeStruct struct_var; 59 OtherStruct other_struct_var; 60 NS::ClassInNamespace namespace_class; 61 other_struct_var.member_int++; // Location: multiple locals function 62 return other_struct_var.member_int; 63 } 64 main(int argc,char ** argv)65int main(int argc, char **argv) { 66 NS::ClassWeEnter c; 67 c.enteredFunction(); 68 69 functionWithOtherStruct(); 70 functionWithMultipleLocals(); 71 return 0; 72 } 73