--- a/MiniDebugger.st Wed Feb 07 10:50:22 2007 +0100
+++ b/MiniDebugger.st Wed Feb 07 11:38:27 2007 +0100
@@ -209,68 +209,73 @@
nesting := 0.
c := aContext.
[c notNil] whileTrue:[
- c selector == #enter:mayProceed: ifTrue:[
- nesting := nesting + 1.
- ].
- c := c sender.
+ c selector == #enter:mayProceed: ifTrue:[
+ nesting := nesting + 1.
+ ].
+ c := c sender.
].
stillHere := true.
[stillHere] whileTrue:[
- AbortOperationRequest handle:[:ex |
- '** Abort cought - back in previous debugLevel' printCR.
- ] do:[
- Error handle:[:ex |
- 'Error while executing command: ' print.
- ex description printCR.
- yesNo := self getCommand:'- (i)gnore / (p)roceed / (d)ebug ? '.
- yesNo == $d ifTrue:[
- ex reject
- ].
- yesNo == $p ifTrue:[
- ex proceed
- ].
- ] do:[
- [
- leaveCmd := self commandLoop.
- ] valueUnpreemptively.
- ].
- ].
+ AbortOperationRequest handle:[:ex |
+ '** Abort cought - back in previous debugLevel' printCR.
+ ] do:[
+ Error handle:[:ex |
+ 'Error while executing command: ' print.
+ ex description printCR.
+ yesNo := self getCommand:'- (i)gnore / (p)roceed / (d)ebug / b(acktrace) ? '.
+ yesNo == $d ifTrue:[
+ MiniDebugger enterWithMessage:'Debugging debugger' mayProceed:true.
+ ex proceed
+ ].
+ yesNo == $p ifTrue:[
+ ex proceed
+ ].
+ yesNo == $b ifTrue:[
+ ex suspendedContext fullPrintAll.
+ ex proceed
+ ].
+ ] do:[
+ [
+ leaveCmd := self commandLoop.
+ ] valueUnpreemptively.
+ ].
+ ].
- (leaveCmd == $s) ifTrue: [
- self stepping.
- ObjectMemory flushInlineCaches.
- ObjectMemory stepInterruptHandler:self.
- stillHere := false.
- StepInterruptPending := 1.
- InterruptPending := 1
- ].
- (leaveCmd == $t) ifTrue: [
- traceBlock := [:where | where fullPrint].
- ObjectMemory flushInlineCaches.
- ObjectMemory stepInterruptHandler:self.
- stillHere := false.
- StepInterruptPending := 1.
- InterruptPending := 1
- ].
- (leaveCmd == $c) ifTrue: [
- traceBlock := nil.
- stillHere := false.
- stepping := false.
- tracing := false.
- StepInterruptPending := nil.
- InterruptPending := nil
- ].
- (leaveCmd == $a) ifTrue: [
- "abort"
- stepping := false.
- tracing := false.
- StepInterruptPending := nil.
- InterruptPending := nil.
- self doAbort.
- stillHere := true.
- "failed abort"
- ].
+ (leaveCmd == $s) ifTrue: [
+ self stepping.
+ ObjectMemory flushInlineCaches.
+ ObjectMemory stepInterruptHandler:self.
+ stillHere := false.
+ StepInterruptPending := 1.
+ InterruptPending := 1
+ ].
+ (leaveCmd == $t) ifTrue: [
+ traceBlock := [:where | where fullPrint].
+ ObjectMemory flushInlineCaches.
+ ObjectMemory stepInterruptHandler:self.
+ stillHere := false.
+ StepInterruptPending := 1.
+ InterruptPending := 1
+ ].
+ (leaveCmd == $c) ifTrue: [
+ traceBlock := nil.
+ stillHere := false.
+ stepping := false.
+ tracing := false.
+ StepInterruptPending := nil.
+ InterruptPending := nil
+ ].
+ (leaveCmd == $a) ifTrue: [
+ "abort"
+ stepping := false.
+ tracing := false.
+ StepInterruptPending := nil.
+ InterruptPending := nil.
+ self doAbort.
+ stillHere := true.
+ "failed abort"
+ ].
].
enteringContext := dot := nil.
^ nil
@@ -837,5 +842,5 @@
!MiniDebugger class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/MiniDebugger.st,v 1.69 2007-01-12 20:58:09 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/MiniDebugger.st,v 1.70 2007-02-07 10:38:27 ca Exp $'
! !