| //----------------------------------------------------------------------------// | |
| // Struct loading declarations. | |
| struct StructFirstMember { int i; }; | |
| struct StructBehindPointer { int i; }; | |
| struct StructBehindRef { int i; }; | |
| struct StructMember { int i; }; | |
| StructBehindRef struct_instance; | |
| struct SomeStruct { | |
| StructFirstMember *first; | |
| StructBehindPointer *ptr; | |
| StructMember member; | |
| StructBehindRef &ref = struct_instance; | |
| }; | |
| struct OtherStruct { | |
| int member_int; | |
| }; | |
| //----------------------------------------------------------------------------// | |
| // Class loading declarations. | |
| struct ClassMember { int i; }; | |
| struct StaticClassMember { int i; }; | |
| struct UnusedClassMember { int i; }; | |
| struct UnusedClassMemberPtr { int i; }; | |
| namespace NS { | |
| class ClassInNamespace { | |
| int i; | |
| }; | |
| class ClassWeEnter { | |
| public: | |
| int dummy; // Prevent bug where LLDB always completes first member. | |
| ClassMember member; | |
| static StaticClassMember static_member; | |
| UnusedClassMember unused_member; | |
| UnusedClassMemberPtr *unused_member_ptr; | |
| int enteredFunction() { | |
| return member.i; // Location: class function | |
| } | |
| }; | |
| StaticClassMember ClassWeEnter::static_member; | |
| }; | |
| //----------------------------------------------------------------------------// | |
| // Function we can stop in. | |
| int functionWithOtherStruct() { | |
| OtherStruct other_struct_var; | |
| other_struct_var.member_int++; // Location: other struct function | |
| return other_struct_var.member_int; | |
| } | |
| int functionWithMultipleLocals() { | |
| SomeStruct struct_var; | |
| OtherStruct other_struct_var; | |
| NS::ClassInNamespace namespace_class; | |
| other_struct_var.member_int++; // Location: multiple locals function | |
| return other_struct_var.member_int; | |
| } | |
| int main(int argc, char **argv) { | |
| NS::ClassWeEnter c; | |
| c.enteredFunction(); | |
| functionWithOtherStruct(); | |
| functionWithMultipleLocals(); | |
| return 0; | |
| } |