From 8cd896404aee9f112fa7f00a7c7f64e2d015b28e Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 15 Nov 2011 22:59:54 +0000 Subject: Merge ObjCPropertyDebugInfo.html into SourceLevelDebugging.html llvm-svn: 144724 --- llvm/docs/ObjCPropertyDebugInfo.html | 237 ----------------------------------- 1 file changed, 237 deletions(-) delete mode 100644 llvm/docs/ObjCPropertyDebugInfo.html (limited to 'llvm/docs/ObjCPropertyDebugInfo.html') diff --git a/llvm/docs/ObjCPropertyDebugInfo.html b/llvm/docs/ObjCPropertyDebugInfo.html deleted file mode 100644 index c1482cf173c..00000000000 --- a/llvm/docs/ObjCPropertyDebugInfo.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - Debugging Information Extension for Objective C Properties - - - - -

- Debugging Information Extension for Objective C Properties -

- -
    -
  1. Introduction
  2. -
  3. Proposal
  4. -
  5. New DWARF Attributes
  6. -
  7. New DWARF Constants
  8. - -
- -
-

Written by Jim Ingham and Devang Patel

-
- - -

- Introduction -

- - -
-

Objective C provides a simpler way to declare and define accessor methods -using declared properties. The language provides features to declare a -property and to let compiler synthesize accessor methods. -

- -

The debugger lets developer inspect Objective C interfaces and their -instance variables and class variables. However, the debugger does not know -anything about the properties defined in Objective C interfaces. The debugger -consumes information generated by compiler in DWARF format. The format does -not support encoding of Objective C properties. This proposal describes DWARF -extensions to encode Objective C properties, which the debugger can use to let -developers inspect Objective C properties. -

- -
- - - -

- Proposal -

- - -
-

Objective C properties are always backed by an instance variable. The -instance variables backing properties are identified using -DW_AT_APPLE_property_name attribute. The instance variables with this -attribute may not have data location attributes. The location of instance -variables is determined by debugger only after consulting Objective C runtime. -

- -
-
-@interface I1 { 
-  int n2;
-} 
-
-@property p1; 
-@property p2; 
-@end
-
-@implementation I1 
-@synthesize p1; 
-@synthesize p2 = n2; 
-@end
-
-
-TAG_structure_type [7] * 
-  AT_APPLE_runtime_class( 0x10 )
-  AT_name( "I1" )
-  AT_decl_file( "Objc_Property.m" ) 
-  AT_decl_line( 3 )
-
-  TAG_member [8] 
-    AT_name( "p1" )
-    AT_APPLE_property_name(“p1”) 
-    AT_type( {0x00000147} ( int ) )
-
-  TAG_member [8] 
-    AT_name( "n2" )
-    AT_APPLE_property_name(“p2”) 
-    AT_type( {0x00000147} ( int ) )
-
-
- -

Developers can decorate a property with attributes which are encoded using -DW_AT_APPLE_property_attribute. -

- -
-
-@property (readonly, nonatomic) int pr;
-
-
-TAG_member [8] 
-  AT_name(“pr”) 
-  AT_APPLE_property_name(“pr”) 
-  AT_type ( {0x00000147} (int) ) 
-  AT_APPLE_property_attribute (DW_APPLE_PROPERTY_readonly, DW_APPLE_PROPERTY_nonatomic)
-
-
- -

The setter and getter method names are attached to the property using -DW_AT_APPLE_property_setter and DW_AT_APPLE_property_getter attributes. -

-
-
-@interface I1 
-@property (setter=myOwnP3Setter:) int p3; 
--(void)myOwnP3Setter:(int)a; 
-@end
-
-@implementation I1 
-@synthesize p3;
--(void)myOwnP3Setter:(int)a{ } 
-@end
-
-0x000003bd: TAG_structure_type [7] * 
-              AT_APPLE_runtime_class( 0x10 )
-              AT_name( "I1" )
-              AT_decl_file( "Objc_Property.m" ) 
-              AT_decl_line( 3 )
-0x000003f3: TAG_member [8] 
-              AT_name( "p3" ) 
-              AT_APPLE_property_name(“p3”) 
-              AT_APPLE_property_setter(“myOwnP3Setter:”)
-              AT_type( {0x00000147} ( int ) )
-
-
- -
- - -

- New DWARF Attributes -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeValueClasses
DW_AT_APPLE_property_name0x3fe8String
DW_AT_APPLE_property_getter0x3fe9String
DW_AT_APPLE_property_setter0x3feaString
DW_AT_APPLE_property_attribute0x3febConstant
- -
- - -

- New DWARF Constants -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameValue
DW_AT_APPLE_PROPERTY_readonly0x1
DW_AT_APPLE_PROPERTY_readwrite0x2
DW_AT_APPLE_PROPERTY_assign0x4
DW_AT_APPLE_PROPERTY_retain0x8
DW_AT_APPLE_PROPERTY_copy0x10
DW_AT_APPLE_PROPERTY_nonatomic0x20
- -
- - - -
-
- Valid CSS - Valid HTML 4.01 - - LLVM Compiler Infrastructure
- Last modified: $Date: 2011-11-14 $ -
- - - -- cgit v1.2.3