70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
| //----------------------------------------------------------------------------//
 | |
| // 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 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;
 | |
|   UnusedClassMember unused_member;
 | |
|   UnusedClassMemberPtr *unused_member_ptr;
 | |
|   int enteredFunction() {
 | |
|     return member.i; // Location: class function
 | |
|   }
 | |
| };
 | |
| };
 | |
| 
 | |
| //----------------------------------------------------------------------------//
 | |
| // 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;
 | |
| }
 |