--- a/MessageTracer.st Tue Dec 01 22:20:33 2009 +0100
+++ b/MessageTracer.st Fri Dec 04 15:52:17 2009 +0100
@@ -580,7 +580,7 @@
trapMethod:aMethod
"arrange for the debugger to be entered when aMethod is about to be executed.
- The trap is enabled for any process - see #trapMethodInCurrentProcess: for a more
+ The trap is enabled for any process - see #trapMethod:inProcess: for a more
selective breakPoint.
Use unwrapMethod or untrapClass to remove this trap.
Be careful, to not place a trap on code needed in the debugger (i.e. on scrollBars etc.);
@@ -675,19 +675,19 @@
trapMethod:aMethod inProcess:aProcess
"arrange for the debugger to be entered when aMethod is about to be executed,
- but only, if executed in the current process.
+ but only, if executed aProcess or one of aProcess's offspring.
This allows for breakpoints to be set on system-critical code.
- The trap is enabled for any process.
+ The trap will only fire for selected processes (making browsers etc. still usable).
Use unwrapMethod or untrapClass to remove this trap.
Be careful, to not place a trap on code needed in the debugger (i.e. on scrollBars etc.);
if there is a need to trap those, use the low-level wrap-methods, and put a check into the
entry/leave blocks."
^ self wrapMethod:aMethod
- onEntry:[:con | (Processor activeProcess == aProcess)
- ifTrue:[
- BreakpointSignal raiseRequestWith:nil errorString:nil in:con
- ]
+ onEntry:[:con |
+ (Processor activeProcess processGroupId = aProcess id) ifTrue:[
+ BreakpointSignal raiseRequestWith:nil errorString:nil in:con
+ ]
]
onExit:LeaveBreakBlock.
@@ -3183,7 +3183,11 @@
!MessageTracer class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/MessageTracer.st,v 1.108 2009-04-03 12:29:29 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/MessageTracer.st,v 1.109 2009-12-04 14:52:17 cg Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/libbasic3/MessageTracer.st,v 1.109 2009-12-04 14:52:17 cg Exp $'
! !
MessageTracer initialize!