--- a/Tools__NewSystemBrowser.st Sun Sep 15 10:19:20 2019 +0200
+++ b/Tools__NewSystemBrowser.st Sun Sep 15 11:13:08 2019 +0200
@@ -9962,6 +9962,11 @@
itemValue: debugMenuRemoveAllBreakpoints
)
(MenuItem
+ enabled: hasIgnoredBreakpoints
+ label: 'Stop ignoring Breakpoints'
+ itemValue: debugMenuStopIgnoringBreakpoints
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -22657,6 +22662,12 @@
"Created: / 18-02-2012 / 16:59:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+hasIgnoredBreakpoints
+ ^ DebugView hasIgnoredHalts
+
+ "Modified: / 28-02-2012 / 16:26:35 / cg"
+!
+
hasInstanceMethodsSelected
^ self hasOnlyMethodsSelectedForWhich:[:m | m mclass isMeta not]
@@ -41326,6 +41337,16 @@
(it is as yet untested, if trace/break stacking works, as
technicall, it may work, but the UI must handle wrapped-wrappedMethods gracefully..)"
+ self commonTraceHelperWith:aSelector with:argumentOrNil with:nil clear:doClearAnyPreviousWrap
+!
+
+commonTraceHelperWith:aSelector with:argument1OrNil with:argument2OrNil clear:doClearAnyPreviousWrap
+ "install a break/trace or countPoint for the current method(s).
+ If doClearAnyPreviousWrap is true, a previous break/trace on that method is
+ removed first.
+ (it is as yet untested, if trace/break stacking works, as
+ technicall, it may work, but the UI must handle wrapped-wrappedMethods gracefully..)"
+
|anyHaltIgnored alsoRemoveStatementBreakpoints|
alsoRemoveStatementBreakpoints := nil. "/ tri-state !!
@@ -41351,11 +41372,7 @@
aSelector == #changeUpdateTrace ifTrue:[
MessageTracer traceUpdateMethod:mthd on:Transcript
] ifFalse:[
- aSelector numArgs == 0 ifTrue:[
- mthd perform:aSelector.
- ] ifFalse:[
- mthd perform:aSelector with:argumentOrNil.
- ]
+ mthd perform:aSelector withOptionalArgument:argument1OrNil and:argument2OrNil
].
(aSelector == #clearBreakPoint) ifTrue:[
@@ -41558,11 +41575,19 @@
"set a breakpoint on the current method(s), which only trigger(s) if
executed by some particular process."
- |process|
-
- process := self chooseProcess:'Stop if method is executed by process'.
+ |process includeChildProcesses|
+
+ includeChildProcesses := false asValue.
+ Dialog
+ withCheckBoxFor:includeChildProcesses
+ labelled:'Also break in (new) subprocesses of the selected'
+ do:[
+ process := self chooseProcess:'Stop if method is executed by process'.
+ ].
process notNil ifTrue:[
- self commonTraceHelperWith:#'breakPointInProcess:' with:process clear:true
+ self commonTraceHelperWith:#'breakPointInProcess:withChildProcesses:'
+ with:process with:(includeChildProcesses value)
+ clear:true
]
"Created: / 14-10-1996 / 15:40:53 / cg"
@@ -41866,6 +41891,12 @@
self commonTraceHelperWith:#stopCounting with:nil clear:true
!
+debugMenuStopIgnoringBreakpoints
+ "no longer ignore breakpoints"
+
+ DebugView stopIgnoringHalts
+!
+
debugMenuStopMemoryUsage
"stop counting of memory usage for this method"