#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Tue, 21 Apr 2020 13:26:33 +0200
changeset 19578 088c98423554
parent 19577 c91766d7cfb3
child 19579 858bdbe04f43
#FEATURE by cg class: DebugView class definition changed: #enter:select:
DebugView.st
--- a/DebugView.st	Fri Apr 17 13:01:02 2020 +0200
+++ b/DebugView.st	Tue Apr 21 13:26:33 2020 +0200
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
               All Rights Reserved
@@ -44,7 +42,7 @@
 		ShowThreadID LastIgnoreHaltNTimes LastIgnoreHaltDuration
 		LastExtent LastOrigin RememberedCallChain DebuggingDebugger3
 		NumberOfDebuggers DebuggerOnMainDisplayOnly IgnoredErrors
-		IgnoredAsserts'
+		IgnoredAsserts DebuggedMethodHistory'
 	poolDictionaries:''
 	category:'Interface-Debugger'
 !
@@ -2529,6 +2527,7 @@
     |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext c 
      userprefs logFile|
 
+    "/ DebuggingDebugger := true
     DebuggingDebugger == true ifTrue:[
         '==> enter2: (' print. aContext print.
         ') select: ' print. initialSelectionOrNil printCR.
@@ -2677,9 +2676,25 @@
 "/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender sender sender sender.
 "/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender sender sender sender sender.
 "/Transcript showCR:initialSelectionOrNil.
+        DebuggingDebugger == true ifTrue:[
+            '==> enter3: ' print. aContext printCR.
+        ].
+        aContext method notNil ifTrue:[
+            DebuggedMethodHistory isNil ifTrue:[
+                DebuggedMethodHistory := OrderedCollection new.
+            ].
+            DebuggedMethodHistory remove:(aContext method who) ifAbsent:[].
+            DebuggedMethodHistory addFirst:(aContext method who).
+            DebuggedMethodHistory size > 20 ifTrue:[
+                DebuggedMethodHistory removeLast
+            ].
+        ].
         self setContext:aContext releaseInspectors:(exitAction ~~ #step).
         "/'after setContext; first is ' print.
         "/(contextArray at:1 ifAbsent:nil) printCR.
+        DebuggingDebugger == true ifTrue:[
+            '==> initialSelection: ' print. initialSelectionOrNil printCR.
+        ].
         self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
 
         self updateButtonsAndMenuItemsForContext:aContext.
@@ -2873,9 +2888,9 @@
 
     "Created: / 30-10-1997 / 21:08:18 / cg"
     "Modified: / 13-10-1998 / 19:56:59 / ps"
-    "Modified: / 27-07-2012 / 17:35:56 / cg"
     "Modified: / 01-02-2018 / 10:08:28 / stefan"
     "Modified: / 01-02-2019 / 15:45:07 / Claus Gittinger"
+    "Modified: / 21-04-2020 / 13:24:36 / cg"
 !
 
 exit_abort
@@ -9081,7 +9096,7 @@
                 ]
             ].
 
-            s := Text streamContents:[:s | aContext printWithSeparator:' » ' on:s ].
+            s := Text streamContents:[:s | aContext printWithSeparator:' » ' on:s ].
             "/ s infoPrintCR.
             RememberedCallChain notNil ifTrue:[
                 (RememberedCallChain includesIdentical:aContext) ifTrue:[
@@ -10987,7 +11002,7 @@
 
 printConditionOn:aStream
     ignoredSendingClassAndSelectors notEmptyOrNil ifTrue:[
-        aStream nextPutAll:(' if called from %1 » %2'
+        aStream nextPutAll:(' if called from %1 » %2'
                                 bindWith:ignoredSendingClassAndSelectors first first
                                 with:ignoredSendingClassAndSelectors first second).
         ^ self.