Differences between current version and predecessor to the previous major change of AspectjMetricsSableVm.

Other diffs: Previous Revision, Previous Author

Newer page: version 2 Last edited on January 31, 2005 1:14 pm. by ChrisGoard
Older page: version 1 Last edited on January 26, 2005 1:23 pm. by jlhotak
@@ -1 +1,31 @@
 This page will describe the AspectJ Metrics in SableVM project. 
+  
+The following classfile attributes are added during weaving:  
+  
+!Code Attributes  
+<tt>ca.mcgill.sable.~InstructionKind</tt><br>  
+<tt>ca.mcgill.sable.~InstructionSource</tt><br>  
+<tt>ca.mcgill.sable.~InstructionShadow</tt><br>  
+  
+Each is a code attribute for which the info field is a stream of <tt>(offset:short, value:int)</tt> pairs. The offset indicates the start of a range of bytecode instructions, each of which has the given value. A value of -1 means "no tag".  
+  
+For example,<br>  
+<tt>1:<br>  
+2:<br>  
+3: 1<br>  
+4: 1<br>  
+5: 2<br>  
+6:</tt>  
+  
+Would be encoded as <tt>(1,-1)(3,1)(5,2)(6,-1)</tt>  
+  
+!Method Attributes  
+<tt>ca.mcgill.sable.~ProceedMethod</tt><br>  
+  
+Identifies a method as being a proceed method for around advice. This is required by the propagation algorithm to maintain a correct value of "advice depth".  
+  
+!Class Attributes  
+<tt>ca.mcgill.sable.~InstructionSource_map</tt><br>  
+<tt>ca.mcgill.sable.~InstructionShadow_map</tt><br>  
+  
+The info field of each of these attributes is a stream of <tt>(id:int, cp_index:int)</tt> pairs, mapping a shadow or source id to a descriptive string in the constant pool.