CompiledCode.st
changeset 3962 c941b3a72553
parent 3933 eb5fcca95dfb
child 4489 b7e297fa3f64
--- a/CompiledCode.st	Fri Jan 29 16:44:41 1999 +0100
+++ b/CompiledCode.st	Sat Jan 30 14:57:36 1999 +0100
@@ -255,6 +255,19 @@
     "Modified: 4.7.1996 / 11:12:39 / cg"
 !
 
+decompiledSource
+    "reconstruct some synthetic source by decompiling by byteCode"
+
+    |s|
+
+    s := '' writeStream.
+    self decompileTo:s.
+    ^ s contents
+
+    "Modified: / 30.1.1999 / 14:53:30 / cg"
+    "Created: / 30.1.1999 / 14:54:09 / cg"
+!
+
 decompiler
     ^ Decompiler
 
@@ -270,9 +283,13 @@
 !
 
 flags
+    "return the flags (number of method variables, stacksize etc.).
+     Dont depend on the values in the flag field - its interpretations
+     may change without notice."
+
     ^ flags
 
-    "Created: / 16.10.1998 / 01:28:48 / cg"
+    "Modified: / 30.1.1999 / 14:51:59 / cg"
 !
 
 literals
@@ -379,6 +396,28 @@
     "Created: 19.6.1997 / 16:27:34 / cg"
 !
 
+numberOfMethodArgs
+    "return the number of arguments, the method expects.
+     This method is left for backward compatibility - use #numArgs." 
+
+    "/ self obsoleteMethodWarning:'use numArgs'.
+    ^ self numArgs
+
+    "Modified: / 30.1.1999 / 14:55:27 / cg"
+    "Created: / 30.1.1999 / 14:55:47 / cg"
+!
+
+numberOfMethodVars
+    "return the number of method local variables. 
+     This method is left for backward compatibility - use #numVars." 
+
+    "/ self obsoleteMethodWarning:'use numVars'.
+    ^ self numVars
+
+    "Modified: / 30.1.1999 / 14:55:42 / cg"
+    "Created: / 30.1.1999 / 14:55:51 / cg"
+!
+
 refersToLiteral:aLiteral
     "return true if the receiver or recursively any array element in the
      receiver referes to aLiteral"
@@ -410,6 +449,179 @@
     "Created: 7.6.1996 / 12:45:50 / stefan"
 ! !
 
+!CompiledCode methodsFor:'debugging'!
+
+breakPointInProcess:aProcess
+    "arrange for a breakpoint-debugger to be opened when this method
+     is invoked from withn aProcess."
+
+    MessageTracer trapMethod:self inProcess:aProcess.
+
+    "Modified: / 12.1.1998 / 18:22:39 / cg"
+    "Created: / 30.1.1999 / 14:50:01 / cg"
+!
+
+clearBreakPoint
+    "remove any break/trace-point on this method"
+
+    MessageTracer unwrapMethod:self.
+
+    "Modified: / 12.1.1998 / 18:22:14 / cg"
+    "Created: / 30.1.1999 / 14:49:53 / cg"
+!
+
+isCounted
+    "obsolete - replaced by isCountinMemoryUsage"
+
+    ^ MessageTracer notNil
+      and:[MessageTracer isCountingMemoryUsage:self]
+
+    "Modified: / 27.7.1998 / 11:05:36 / cg"
+    "Created: / 30.1.1999 / 14:48:57 / cg"
+!
+
+isCounting
+    "return true, if invokations of this method are counted"
+
+    ^ MessageTracer notNil
+      and:[MessageTracer isCounting:self]
+
+    "Modified: / 27.7.1998 / 11:06:00 / cg"
+    "Created: / 30.1.1999 / 14:49:19 / cg"
+!
+
+isCountingMemoryUsage
+    "return true, if memory allocations done by this method (and callees)
+     are counted"
+
+    ^ MessageTracer notNil
+      and:[MessageTracer isCountingMemoryUsage:self]
+
+    "Modified: / 27.7.1998 / 11:06:23 / cg"
+    "Created: / 30.1.1999 / 14:49:26 / cg"
+!
+
+resetCountingStatistics
+    "reset count statistics of the receiver"
+
+    MessageTracer resetCountOfMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:30 / cg"
+    "Created: / 30.1.1999 / 14:50:19 / cg"
+!
+
+resetMemoryUsageStatistics
+    "reset count statistics of the receiver"
+
+    MessageTracer resetMemoryUsageOfMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:30 / cg"
+    "Created: / 30.1.1999 / 14:50:22 / cg"
+!
+
+resetTimingStatistics
+    "reset timing statistics of the receiver"
+
+    MessageTracer resetExecutionTimesOfMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:30 / cg"
+    "Created: / 30.1.1999 / 14:50:25 / cg"
+!
+
+setBreakPoint
+    "arrange for a breakpoint-debugger to be opened when this method
+     is invoked."
+
+    MessageTracer trapMethod:self.
+
+    "Modified: / 12.1.1998 / 18:22:36 / cg"
+    "Created: / 30.1.1999 / 14:50:27 / cg"
+!
+
+setTraceFullPoint
+    "arrange for a full-backtrace to be sent to the standard-error stream
+     when this method is invoked."
+
+    MessageTracer traceMethodFull:self on:Transcript
+
+    "Modified: / 12.1.1998 / 18:23:11 / cg"
+    "Created: / 30.1.1999 / 14:50:30 / cg"
+!
+
+setTracePoint
+    "arrange for a trace-message to be sent to the standard-error stream
+     when this method is invoked."
+
+    MessageTracer traceMethod:self on:Transcript
+
+    "Modified: / 12.1.1998 / 18:23:23 / cg"
+    "Created: / 30.1.1999 / 14:50:33 / cg"
+!
+
+setTraceSenderPoint
+    "arrange for a sender-trace-message to be sent to the standard-error stream
+     when this method is invoked."
+
+    MessageTracer traceMethodSender:self on:Transcript
+
+    "Modified: / 12.1.1998 / 18:23:31 / cg"
+    "Created: / 30.1.1999 / 14:50:36 / cg"
+!
+
+startCounting
+    "start counting invokations of the receiver"
+
+    MessageTracer countMethod:self
+
+    "Modified: / 12.1.1998 / 18:23:45 / cg"
+    "Created: / 30.1.1999 / 14:50:38 / cg"
+!
+
+startCountingMemoryUsage
+    "start counting memory usage of the receiver (and every callee)"
+
+    MessageTracer countMemoryUsageOfMethod:self
+
+    "Modified: / 27.7.1998 / 11:06:55 / cg"
+    "Created: / 30.1.1999 / 14:50:41 / cg"
+!
+
+startTiming
+    "start timing the receiver"
+
+    MessageTracer timeMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:05 / cg"
+    "Created: / 30.1.1999 / 14:50:44 / cg"
+!
+
+stopCounting
+    "stop counting calls of the receiver"
+
+    MessageTracer stopCountingMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:15 / cg"
+    "Created: / 30.1.1999 / 14:50:47 / cg"
+!
+
+stopCountingMemoryUsage
+    "stop counting memory usage of the receiver"
+
+    MessageTracer stopCountingMemoryUsageOfMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:22 / cg"
+    "Created: / 30.1.1999 / 14:50:51 / cg"
+!
+
+stopTiming
+    "stop timing of the receiver"
+
+    MessageTracer stopTimingMethod:self
+
+    "Modified: / 12.1.1998 / 18:24:30 / cg"
+    "Created: / 30.1.1999 / 14:50:54 / cg"
+! !
+
 !CompiledCode methodsFor:'error handling'!
 
 badArgumentArray
@@ -1290,6 +1502,6 @@
 !CompiledCode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.67 1998-11-14 17:41:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.68 1999-01-30 13:57:36 cg Exp $'
 ! !
 CompiledCode initialize!