From 6ac5b165d471fa1d1e6a266c4566a5605c38ba9a Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 15 Nov 2011 22:59:54 +0000 Subject: [PATCH] Merge ObjCPropertyDebugInfo.html into SourceLevelDebugging.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144724 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ObjCPropertyDebugInfo.html | 237 -------------------------------- docs/SourceLevelDebugging.html | 224 ++++++++++++++++++++++++++++++ docs/index.html | 3 - 3 files changed, 224 insertions(+), 240 deletions(-) delete mode 100644 docs/ObjCPropertyDebugInfo.html diff --git a/docs/ObjCPropertyDebugInfo.html b/docs/ObjCPropertyDebugInfo.html deleted file mode 100644 index c1482cf173c..00000000000 --- a/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 $ -
- - - diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index 6eaaa240c14..f2741a2e017 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -53,6 +53,19 @@
  • C/C++ struct/union types
  • C/C++ enumeration types
  • +
  • LLVM Dwarf Extensions +
      +
    1. Debugging Information Extension + for Objective C Properties
    2. + + +
    +
  • @@ -1803,6 +1816,217 @@ enum Trees { + + +

    + Debugging information format +

    + +
    + +

    + Debugging Information Extension for Objective C +Properties +

    +
    + +

    + 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
    + +
    +
    +
    +
    diff --git a/docs/index.html b/docs/index.html index 3e74a249793..bfca45ba0a2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -212,9 +212,6 @@ JITed code with GDB.
  • Branch Weight Metadata - Provides information about Branch Prediction Information.
  • -
  • Objective C Property Debug Info -- Debugging information extension for Objective C Property.
  • -