--- a/DebugView.st Tue Jul 23 20:55:42 2013 +0100
+++ b/DebugView.st Wed Jul 24 11:15:26 2013 +0100
@@ -3328,8 +3328,22 @@
steppedContext printCR.
].
- "/ kludge an bug-workaround;
- "/ I should not see those ...
+ "/ when single stepping, ignore breakpoints
+ here selector == #break ifTrue:[
+ (here receiver isKindOf:Breakpoint) ifTrue:[
+ false "here receiver isEnabled" ifFalse:[
+ con := nil.
+ where := nil. here := nil.
+ StepInterruptPending := 1.
+ InterruptPending := 1.
+ InStepInterrupt := nil.
+ ^ self
+ ]
+ ].
+ ].
+
+ "/ kludge: a bug-workaround;
+ "/ I should not see those...
here selector == #ioInterrupt ifTrue:[
DebuggingDebugger2 == true ifTrue:[
@@ -3563,7 +3577,7 @@
"/ in a block called by 'our' context ?
"/
where home == steppedContext ifTrue:[
-"/ '*block*' printCR.
+ "/ '*block*' printCR.
inBlock := true
]
].
@@ -3573,7 +3587,7 @@
where notNil ifTrue:[
where home == steppedContext ifTrue:[
-"/ '*block*' printCR.
+ "/ '*block*' printCR.
inBlock := true.
]
].
@@ -3599,22 +3613,35 @@
"/ do a single step. Otherwise, stepping through a
"/ do:-loop would be very difficult.
receiver := where receiver.
+where selector == #critical: ifTrue:[
+anyStepBlocks := true.
+] ifFalse:[
(receiver isBlock
and:[(receiver isKindOf:Block)
- and:[receiver home == steppedContext]])
+ and:[receiver homeMethod == steppedContext method
+ "receiver home == steppedContext"]])
ifTrue:[
anyStepBlocks := true.
] ifFalse:[
where args do:[:arg |
(arg isBlock
and:[(arg isKindOf:Block)
- and:[arg home == steppedContext]])
+ and:[arg homeMethod == steppedContext method
+ "arg home == steppedContext"]])
ifTrue:[
anyStepBlocks := true.
- ]
+ ] ifFalse:[
+ (where methodHome receiver isBlock
+ and:[(where methodHome receiver isKindOf:Block)
+ and:[where methodHome receiver homeMethod == steppedContext method
+ "where methodHome receiver home == steppedContext"]])
+ ifTrue:[
+ anyStepBlocks := true.
+ ]
+ ].
]
].
-
+].
DebuggingDebugger2 == true ifTrue:[
((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
where selector printCR.
@@ -3786,10 +3813,15 @@
].
inBlock ifTrue:[
-"/ 'inBlock' printCR.
+ DebuggingDebugger2 == true ifTrue:[
+ 'inBlock' printCR.
+ ].
s := 'in block'.
].
inBlockBelow ifTrue:[
+ DebuggingDebugger2 == true ifTrue:[
+ 'inBlockBelow' printCR.
+ ].
ignore := true
].
@@ -4727,7 +4759,7 @@
"Modified: 7.3.1997 / 18:46:49 / cg"
!
-doStep:lineNr
+doStep:lineNrOrNilOrMinus1
"common helper for step, skip & next.
Arrange for single-steppping until we pass lineNr (if nonNil)
or to next line (if nil) or to next send (if -1)"
@@ -4752,9 +4784,9 @@
steppedContextLineno := con lineNumber.
].
- skipLineNr := lineNr.
-
- lineNr == -1 ifTrue:[
+ skipLineNr := lineNrOrNilOrMinus1.
+
+ lineNrOrNilOrMinus1 == -1 ifTrue:[
steppedContextLineno := skipLineNr := nil.
].
@@ -4768,6 +4800,7 @@
steppedContext := con.
].
].
+
wrapperContext := nil.
"/ ' step con:' print. (ObjectMemory addressOf:steppedContext) printHex. ' ' print. steppedContext printCR.
@@ -4785,7 +4818,7 @@
inWrap := true
].
- lineNr == #return ifTrue:[
+ lineNrOrNilOrMinus1 == #return ifTrue:[
Processor activeProcess forceInterruptOnReturnOf:con.
].
@@ -5019,7 +5052,7 @@
items := items , #(
('-' )
('Browse Implementing Class' browseImplementingClass )
- ('Browse Receivers Class' browseReceiversClass )
+ ('Browse Receiver''s Class' browseReceiversClass )
"/ ('Browse Receivers Class Hierarchy' browseClassHierarchy )
"/ ('Browse Receivers Full Protocol' browseFullClassProtocol )
('Implementors' browseImplementors )
@@ -5060,7 +5093,7 @@
^ m.
- "Modified: / 27-07-2012 / 15:01:20 / cg"
+ "Modified: / 22-07-2013 / 15:30:05 / cg"
!
notShowingSupportCode
@@ -8573,11 +8606,11 @@
!DebugView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.600 2013-07-13 20:39:12 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.602 2013-07-22 14:01:57 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.600 2013-07-13 20:39:12 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.602 2013-07-22 14:01:57 cg Exp $'
!
version_HG
@@ -8586,7 +8619,7 @@
!
version_SVN
- ^ '$Id: DebugView.st,v 1.600 2013-07-13 20:39:12 cg Exp $'
+ ^ '$Id: DebugView.st,v 1.602 2013-07-22 14:01:57 cg Exp $'
! !