# HG changeset patch # User Stefan Vogel # Date 1485895847 -3600 # Node ID 862a23b67f684de0ea9d7df81a8fbe207791919f # Parent 6a1aa6e554dd6aa718dcffaf083a91f120f434a1 #QUALITY by stefan class: DebugView changed: #showingContext2:nesting: diff -r 6a1aa6e554dd -r 862a23b67f68 DebugView.st --- a/DebugView.st Mon Jan 30 15:12:22 2017 +0100 +++ b/DebugView.st Tue Jan 31 21:50:47 2017 +0100 @@ -16,58 +16,58 @@ "{ NameSpace: Smalltalk }" StandardSystemView subclass:#DebugView - instanceVariableNames:'busy haveControl exitAction canContinue contextView codeView - receiverInspector contextInspector contextArray selectedContext - catchBlock grabber mayProceed traceView tracing bigStep - skipLineNr abortButton terminateButton continueButton stepButton - nextButton nextOverButton nextOutButton sendButton returnButton - restartButton exclusive inspecting nChainShown inspectedProcess - updateProcess updateButton defineButton monitorToggle stepping - steppedContextLineno actualContext inWrap stackInspector - steppedContext wrapperContext firstContext stepHow cachable - currentMethod ignoreBreakpoints stepUntilEntering - lastStepUntilEntering lastSelectionInReceiverInspector - lastSelectionInContextInspector canShowMore reportButton - setOfHiddenCallingSelectors isStoppedAtHaltOrBreakPoint - exceptionInfoLabel methodCodeToggle - methodCodeToggleSelectionHolder - isStoppedAtBreakPointWithParameter breakPointParameter - hideSupportCode contextInfoLabel resendButton - gotoDialogOpenerButton isStoppedInModalDialog selectorToDefine - classToDefineIn gotoApplicationActionMethodButton - isStoppedInApplicationAction isStoppedAtStatementBreakpoint - verboseBacktraceHolder' - classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail - DebuggingDebugger DebuggingDebugger2 DebuggingContextWalk - DefaultDebuggerBackgroundColor InitialNChainShown IgnoredHalts - ShowThreadID LastIgnoreHaltNTimes LastIgnoreHaltDuration - LastExtent LastOrigin RememberedCallChain DebuggingDebugger3 - NumberOfDebuggers DebuggerOnMainDisplayOnly' - poolDictionaries:'' - category:'Interface-Debugger' + instanceVariableNames:'busy haveControl exitAction canContinue contextView codeView + receiverInspector contextInspector contextArray selectedContext + catchBlock grabber mayProceed traceView tracing bigStep + skipLineNr abortButton terminateButton continueButton stepButton + nextButton nextOverButton nextOutButton sendButton returnButton + restartButton exclusive inspecting nChainShown inspectedProcess + updateProcess updateButton defineButton monitorToggle stepping + steppedContextLineno actualContext inWrap stackInspector + steppedContext wrapperContext firstContext stepHow cachable + currentMethod ignoreBreakpoints stepUntilEntering + lastStepUntilEntering lastSelectionInReceiverInspector + lastSelectionInContextInspector canShowMore reportButton + setOfHiddenCallingSelectors isStoppedAtHaltOrBreakPoint + exceptionInfoLabel methodCodeToggle + methodCodeToggleSelectionHolder + isStoppedAtBreakPointWithParameter breakPointParameter + hideSupportCode contextInfoLabel resendButton + gotoDialogOpenerButton isStoppedInModalDialog selectorToDefine + classToDefineIn gotoApplicationActionMethodButton + isStoppedInApplicationAction isStoppedAtStatementBreakpoint + verboseBacktraceHolder' + classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail + DebuggingDebugger DebuggingDebugger2 DebuggingContextWalk + DefaultDebuggerBackgroundColor InitialNChainShown IgnoredHalts + ShowThreadID LastIgnoreHaltNTimes LastIgnoreHaltDuration + LastExtent LastOrigin RememberedCallChain DebuggingDebugger3 + NumberOfDebuggers DebuggerOnMainDisplayOnly' + poolDictionaries:'' + category:'Interface-Debugger' ! Object subclass:#IgnoredHaltOrBreakpoint - instanceVariableNames:'ignoreEndTime ignoreCount ignoreUntilShiftKeyPressed - ignoredReceiverClasses ignoredProcesses - ignoredSendingClassAndSelectors' - classVariableNames:'' - poolDictionaries:'' - privateIn:DebugView + instanceVariableNames:'ignoreEndTime ignoreCount ignoreUntilShiftKeyPressed + ignoredReceiverClasses ignoredProcesses + ignoredSendingClassAndSelectors' + classVariableNames:'' + poolDictionaries:'' + privateIn:DebugView ! DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredHalt - instanceVariableNames:'weakMethodHolder lineNumber' - classVariableNames:'' - poolDictionaries:'' - privateIn:DebugView + instanceVariableNames:'weakMethodHolder lineNumber' + classVariableNames:'' + poolDictionaries:'' + privateIn:DebugView ! DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredBreakpoint - instanceVariableNames:'parameter' - classVariableNames:'' - poolDictionaries:'' - privateIn:DebugView + instanceVariableNames:'parameter' + classVariableNames:'' + poolDictionaries:'' + privateIn:DebugView ! !DebugView class methodsFor:'documentation'! @@ -8150,6 +8150,8 @@ sel == #valueNowOrOnUnwindDo: ifTrue:[^ false]. sel == #valueOnUnwindDo: ifTrue:[^ false]. sel == #on:do: ifTrue:[^ false]. + sel == #on:do:ensure: ifTrue:[^ false]. + sel == #on:do:ifCurtailed: ifTrue:[^ false]. sel == #value ifTrue:[^ false]. sel == #value: ifTrue:[^ false]. @@ -8161,6 +8163,7 @@ ]. aContext isBlockContext ifTrue:[ + |home| "/ sel == #value ifTrue:[^ false]. "/ sel == #value: ifTrue:[^ false]. "/ sel == #value:value: ifTrue:[^ false]. @@ -8175,23 +8178,25 @@ "/ ] "/ ] - aContext home notNil ifTrue:[ - aContext home receiver isProtoObject ifFalse:[ - (aContext home receiver isMemberOf:Semaphore) ifTrue:[ - (aContext home selector == #wait) ifTrue:[^ false]. - (aContext home selector == #waitWithTimeoutMs:) ifTrue:[^ false]. - ] - ] - ] - ]. - + home := aContext home. + (home notNil + and:[home receiver isProtoObject not + and:[home receiver isKindOf:Semaphore]]) ifTrue:[ + (home selector == #wait) ifTrue:[^ false]. + (home selector == #waitWithTimeoutMs:) ifTrue:[^ false]. + ]. + ]. + + rec isProtoObject ifTrue:[ + ^ true. + ]. (rec isExceptionHandler) ifTrue:[ sel == #handle:do: ifTrue:[^ false]. sel == #handleDo: ifTrue:[^ false]. (sel startsWith:#raise) ifTrue:[^ false]. sel == #answer:do: ifTrue:[^ false]. ]. - (rec isProtoObject not and:[ rec isException] ) ifTrue:[ + (rec isException) ifTrue:[ sel == #doRaise ifTrue:[^ false]. sel == #doCallHandler: ifTrue:[^ false]. (sel == #raise or:[sel == #raiseRequest]) ifTrue:[ @@ -8217,6 +8222,7 @@ "Created: / 17-11-2001 / 19:34:20 / cg" "Modified: / 27-07-2012 / 17:26:54 / cg" + "Modified: / 31-01-2017 / 20:21:32 / stefan" ! ! !DebugView methodsFor:'private-control loop'!