MiniDebug.st
changeset 241 6f30be88e314
parent 216 a8abff749575
child 308 f04744ef7b5d
equal deleted inserted replaced
240:f5ff68fffb92 241:6f30be88e314
    19 
    19 
    20 MiniDebugger comment:'
    20 MiniDebugger comment:'
    21 COPYRIGHT (c) 1988 by Claus Gittinger
    21 COPYRIGHT (c) 1988 by Claus Gittinger
    22 	      All Rights Reserved
    22 	      All Rights Reserved
    23 
    23 
    24 $Header: /cvs/stx/stx/libbasic/Attic/MiniDebug.st,v 1.10 1995-02-02 12:21:24 claus Exp $
    24 $Header: /cvs/stx/stx/libbasic/Attic/MiniDebug.st,v 1.11 1995-02-08 03:10:59 claus Exp $
    25 '!
    25 '!
    26 
    26 
    27 !MiniDebugger class methodsFor: 'documentation'!
    27 !MiniDebugger class methodsFor: 'documentation'!
    28 
    28 
    29 copyright
    29 copyright
    40 "
    40 "
    41 !
    41 !
    42 
    42 
    43 version
    43 version
    44 "
    44 "
    45 $Header: /cvs/stx/stx/libbasic/Attic/MiniDebug.st,v 1.10 1995-02-02 12:21:24 claus Exp $
    45 $Header: /cvs/stx/stx/libbasic/Attic/MiniDebug.st,v 1.11 1995-02-08 03:10:59 claus Exp $
    46 "
    46 "
    47 !
    47 !
    48 
    48 
    49 documentation
    49 documentation
    50 "
    50 "
    68 
    68 
    69 singleStep:aBlock
    69 singleStep:aBlock
    70     |aDebugger|
    70     |aDebugger|
    71 
    71 
    72     aDebugger := self new stepping.
    72     aDebugger := self new stepping.
       
    73     ObjectMemory stepInterruptHandler:aDebugger.
    73     ObjectMemory flushInlineCaches.
    74     ObjectMemory flushInlineCaches.
    74     ObjectMemory stepInterruptHandler:aDebugger.
    75     StepInterruptPending := 1.
    75     StepInterruptPending := true.
    76     InterruptPending := 1.
    76     InterruptPending := true.
       
    77     aBlock value.
    77     aBlock value.
    78     StepInterruptPending := nil.
    78     StepInterruptPending := nil.
    79     ObjectMemory stepInterruptHandler:nil
    79     ObjectMemory stepInterruptHandler:nil
    80 !
    80 !
    81 
    81 
    90 
    90 
    91 trace:aBlock with:aTraceBlock
    91 trace:aBlock with:aTraceBlock
    92     |aDebugger|
    92     |aDebugger|
    93 
    93 
    94     aDebugger := self new tracingWith:aTraceBlock.
    94     aDebugger := self new tracingWith:aTraceBlock.
       
    95     ObjectMemory stepInterruptHandler:aDebugger.
    95     ObjectMemory flushInlineCaches.
    96     ObjectMemory flushInlineCaches.
    96     ObjectMemory stepInterruptHandler:aDebugger.
    97     StepInterruptPending := 1.
    97     StepInterruptPending := true.
    98     InterruptPending := 1.
    98     InterruptPending := true.
       
    99     aBlock value.
    99     aBlock value.
   100     ObjectMemory stepInterruptHandler:nil.
   100     ObjectMemory stepInterruptHandler:nil.
   101     StepInterruptPending := nil.
   101     StepInterruptPending := nil.
   102     ^ nil
   102     ^ nil
   103 !
   103 !
   203 	    ]
   203 	    ]
   204 	] ifFalse:[
   204 	] ifFalse:[
   205 	    'traceInterrupt: no context' errorPrintNewline
   205 	    'traceInterrupt: no context' errorPrintNewline
   206 	].
   206 	].
   207 	ObjectMemory flushInlineCaches.
   207 	ObjectMemory flushInlineCaches.
   208 	StepInterruptPending := true.
   208 	StepInterruptPending := 1.
   209 	InterruptPending := true
   209 	InterruptPending := 1
   210     ]
   210     ]
   211 !
   211 !
   212 
   212 
   213 enter
   213 enter
   214     |leaveCmd stillHere|
   214     |leaveCmd stillHere|
   220 	(leaveCmd == $s) ifTrue: [
   220 	(leaveCmd == $s) ifTrue: [
   221 	    self stepping.
   221 	    self stepping.
   222 	    ObjectMemory flushInlineCaches.
   222 	    ObjectMemory flushInlineCaches.
   223 	    ObjectMemory stepInterruptHandler:self.
   223 	    ObjectMemory stepInterruptHandler:self.
   224 	    stillHere := false.
   224 	    stillHere := false.
   225 	    StepInterruptPending := true.
   225 	    StepInterruptPending := 1.
   226 	    InterruptPending := true
   226 	    InterruptPending := 1
   227 	].
   227 	].
   228 	(leaveCmd == $t) ifTrue: [
   228 	(leaveCmd == $t) ifTrue: [
   229 	    traceBlock := [:where | where fullPrint].
   229 	    traceBlock := [:where | where fullPrint].
   230 	    ObjectMemory flushInlineCaches.
   230 	    ObjectMemory flushInlineCaches.
   231 	    ObjectMemory stepInterruptHandler:self.
   231 	    ObjectMemory stepInterruptHandler:self.
   232 	    stillHere := false.
   232 	    stillHere := false.
   233 	    StepInterruptPending := true.
   233 	    StepInterruptPending := 1.
   234 	    InterruptPending := true
   234 	    InterruptPending := 1
   235 	].
   235 	].
   236 	(leaveCmd == $c) ifTrue: [
   236 	(leaveCmd == $c) ifTrue: [
   237 	    stillHere := false.
   237 	    stillHere := false.
   238 	    stepping := false.
   238 	    stepping := false.
   239 	    tracing := false.
   239 	    tracing := false.