diff options
author | Devang Patel <dpatel@apple.com> | 2011-11-15 22:59:54 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2011-11-15 22:59:54 +0000 |
commit | 6ac5b165d471fa1d1e6a266c4566a5605c38ba9a (patch) | |
tree | d4cc1ec9194e5b0f2b17f43c4b1a87772b7e7621 | |
parent | 5b2fb2083c387009607f438a2a986c3e0a2cd0be (diff) |
Merge ObjCPropertyDebugInfo.html into SourceLevelDebugging.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144724 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/ObjCPropertyDebugInfo.html | 237 | ||||
-rw-r--r-- | docs/SourceLevelDebugging.html | 224 | ||||
-rw-r--r-- | docs/index.html | 3 |
3 files changed, 224 insertions, 240 deletions
diff --git a/docs/ObjCPropertyDebugInfo.html b/docs/ObjCPropertyDebugInfo.html deleted file mode 100644 index c1482cf173..0000000000 --- a/docs/ObjCPropertyDebugInfo.html +++ /dev/null @@ -1,237 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" - "http://www.w3.org/TR/html4/strict.dtd"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <title>Debugging Information Extension for Objective C Properties</title> - <link rel="stylesheet" href="llvm.css" type="text/css"> -</head> -<body> - -<h1> - Debugging Information Extension for Objective C Properties -</h1> - -<ol> - <li><a href="#introduction">Introduction</a></li> - <li><a href="#proposal">Proposal</a></li> - <li><a href="#newattributes">New DWARF Attributes</a></li> - <li><a href="#newconstants">New DWARF Constants</a></li> - -</ol> - -<div class="doc_author"> - <p>Written by Jim Ingham and Devang Patel </p> -</div> - -<!-- *********************************************************************** --> -<h2> - <a name="introduction">Introduction</a> -</h2> -<!-- *********************************************************************** --> - -<div> -<p>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. -</p> - -<p>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. -</p> - -</div> - - -<!-- *********************************************************************** --> -<h2> - <a name="proposal">Proposal</a> -</h2> -<!-- *********************************************************************** --> - -<div> -<p>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. -</p> - -<div class="doc_code"> -<pre> -@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 ) ) -</pre> -</div> - -<p> Developers can decorate a property with attributes which are encoded using -DW_AT_APPLE_property_attribute. -</p> - -<div class="doc_code"> -<pre> -@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) -</pre> -</div> - -<p> The setter and getter method names are attached to the property using -DW_AT_APPLE_property_setter and DW_AT_APPLE_property_getter attributes. -</p> -<div class="doc_code"> -<pre> -@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 ) ) -</pre> -</div> - -</div> - -<!-- *********************************************************************** --> -<h2> - <a name="newattributes">New DWARF Attributes</a> -</h2> -<!-- *********************************************************************** --> - -<div> -<table border="1" cellspacing="0"> - <tr> - <th width=200 >Attribute</th> - <th width=200 >Value</th> - <th width=200 >Classes</th> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_property_name</td> - <td width=200 >0x3fe8</td> - <td width=200 >String</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_property_getter</td> - <td width=200 >0x3fe9</td> - <td width=200 >String</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_property_setter</td> - <td width=200 >0x3fea</td> - <td width=200 >String</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_property_attribute</td> - <td width=200 >0x3feb</td> - <td width=200 >Constant</td> - </tr> -</table> - -</div> - -<!-- *********************************************************************** --> -<h2> - <a name="newconstants">New DWARF Constants</a> -</h2> -<!-- *********************************************************************** --> - -<div> -<table border="1" cellspacing="0"> - <tr> - <th width=200 >Name</th> - <th width=200 >Value</th> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_PROPERTY_readonly</td> - <td width=200 >0x1</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_PROPERTY_readwrite</td> - <td width=200 >0x2</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_PROPERTY_assign</td> - <td width=200 >0x4</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_PROPERTY_retain</td> - <td width=200 >0x8</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_PROPERTY_copy</td> - <td width=200 >0x10</td> - </tr> - <tr> - <td width=200 >DW_AT_APPLE_PROPERTY_nonatomic</td> - <td width=200 >0x20</td> - </tr> -</table> - -</div> - -<!-- *********************************************************************** --> - -<hr> -<address> - <a href="http://jigsaw.w3.org/css-validator/check/referer"><img - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a> - <a href="http://validator.w3.org/check/referer"><img - src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a> - - <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2011-11-14 $ -</address> - -</body> -</html> diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index 6eaaa240c1..f2741a2e01 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -53,6 +53,19 @@ <li><a href="#ccxx_composite_types">C/C++ struct/union types</a></li> <li><a href="#ccxx_enumeration_types">C/C++ enumeration types</a></li> </ol></li> + <li><a href="#llvmdwarfextension">LLVM Dwarf Extensions</a> + <ol> + <li><a href="#objcproperty">Debugging Information Extension + for Objective C Properties</a></li> + <ul> + <li><a href="#objcpropertyintroduction">Introduction</a></li> + <li><a href="#objcpropertyproposal">Proposal</a></li> + <li><a href="#objcpropertynewattributes">New DWARF Attributes</a></li> + <li><a href="#objcpropertynewconstants">New DWARF Constants</a></li> + </ul> + + </ol> + </li> </ul> </td> <td class="right"> @@ -1803,6 +1816,217 @@ enum Trees { </div> + +<!-- *********************************************************************** --> +<h2> + <a name="llvmdwarfextension">Debugging information format</a> +</h2> +<!-- *********************************************************************** --> +<div> +<!-- ======================================================================= --> +<h3> + <a name="objcproperty">Debugging Information Extension for Objective C +Properties</a></li> +</h3> +<div> +<!-- *********************************************************************** --> +<h4> + <a name="objcpropertyintroduction">Introduction</a> +</h4> +<!-- *********************************************************************** --> + +<div> +<p>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. +</p> + +<p>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. +</p> + +</div> + + +<!-- *********************************************************************** --> +<h4> + <a name="objcpropertyproposal">Proposal</a> +</h4> +<!-- *********************************************************************** --> + +<div> +<p>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. +</p> + +<div class="doc_code"> +<pre> +@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 ) ) +</pre> +</div> + +<p> Developers can decorate a property with attributes which are encoded using +DW_AT_APPLE_property_attribute. +</p> + +<div class="doc_code"> +<pre> +@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) +</pre> +</div> + +<p> The setter and getter method names are attached to the property using +DW_AT_APPLE_property_setter and DW_AT_APPLE_property_getter attributes. +</p> +<div class="doc_code"> +<pre> +@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 ) ) +</pre> +</div> + +</div> + +<!-- *********************************************************************** --> +<h4> + <a name="objcpropertynewattributes">New DWARF Attributes</a> +</h4> +<!-- *********************************************************************** --> + +<div> +<table border="1" cellspacing="0"> + <tr> + <th width=200 >Attribute</th> + <th width=200 >Value</th> + <th width=200 >Classes</th> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_property_name</td> + <td width=200 >0x3fe8</td> + <td width=200 >String</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_property_getter</td> + <td width=200 >0x3fe9</td> + <td width=200 >String</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_property_setter</td> + <td width=200 >0x3fea</td> + <td width=200 >String</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_property_attribute</td> + <td width=200 >0x3feb</td> + <td width=200 >Constant</td> + </tr> +</table> + +</div> + +<!-- *********************************************************************** --> +<h4> + <a name="objcpropertynewconstants">New DWARF Constants</a> +</h4> +<!-- *********************************************************************** --> + +<div> +<table border="1" cellspacing="0"> + <tr> + <th width=200 >Name</th> + <th width=200 >Value</th> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_PROPERTY_readonly</td> + <td width=200 >0x1</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_PROPERTY_readwrite</td> + <td width=200 >0x2</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_PROPERTY_assign</td> + <td width=200 >0x4</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_PROPERTY_retain</td> + <td width=200 >0x8</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_PROPERTY_copy</td> + <td width=200 >0x10</td> + </tr> + <tr> + <td width=200 >DW_AT_APPLE_PROPERTY_nonatomic</td> + <td width=200 >0x20</td> + </tr> +</table> + +</div> +</div> +</div> + <!-- *********************************************************************** --> <hr> diff --git a/docs/index.html b/docs/index.html index 3e74a24979..bfca45ba0a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -212,9 +212,6 @@ JITed code with GDB.</li> <li><a href="BranchWeightMetadata.html">Branch Weight Metadata</a> - Provides information about Branch Prediction Information.</li> -<li><a href="ObjCPropertyDebugInfo.html">Objective C Property Debug Info</a> -- Debugging information extension for Objective C Property.</li> - </ul> <!--=======================================================================--> |