checkin from browser
authorClaus Gittinger <cg@exept.de>
Sat, 15 Dec 2001 13:00:21 +0100
changeset 3518 19adb76323ed
parent 3517 df36801b26b7
child 3519 0fef57de776a
checkin from browser
DebugView.st
--- a/DebugView.st	Fri Dec 14 22:22:37 2001 +0100
+++ b/DebugView.st	Sat Dec 15 13:00:21 2001 +0100
@@ -4113,7 +4113,7 @@
 !
 
 explainSelection
-    |interval node definingNode crsrPos nm argIdx|
+    |interval node definingNode crsrPos nm varIdx|
 
     interval := self selectedInterval.
     interval isEmpty ifTrue:[
@@ -4137,12 +4137,33 @@
             definingNode := node whoDefines:nm.
             definingNode notNil ifTrue:[
                 definingNode isMethod ifTrue:[
-                    argIdx := definingNode arguments findFirst:[:arg | arg name = nm].
-                    argIdx ~~ 0 ifTrue:[
-Transcript showCR:'mArg', argIdx printString.
+                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
+                    varIdx ~~ 0 ifTrue:[
+                        self showValue:(actualContext methodHome argAt:varIdx)
                     ]
-                ]
+                ].
+                definingNode isBlock ifTrue:[
+                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
+                    (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
+                        varIdx ~~ 0 ifTrue:[
+                        ]
+                    ].
+                ].
+                definingNode parent notNil ifTrue:[
+                    definingNode parent isMethod ifTrue:[
+                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
+                        varIdx ~~ 0 ifTrue:[
+                            self showValue:(actualContext methodHome varAt:varIdx)
+                        ].
+                    ].
+                    definingNode parent isBlock ifTrue:[
+                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
+                        varIdx ~~ 0 ifTrue:[
+                        ].
+                    ]
+                ].
             ].
+
         ]
     ].
 !
@@ -4177,7 +4198,6 @@
 
     node := tree whichNodeIsContainedBy:interval.
     node isNil ifTrue: [
-Transcript showCR:'xxx'.
         node := self findNodeIn:tree forInterval:interval
     ].
     ^ node
@@ -4627,6 +4647,10 @@
     self showError:'** the process has terminated **'
 !
 
+showValue:aValue
+    Transcript showCR:aValue printString
+!
+
 showingContext1:aContext calling:calledContext
     |sel rec mthd mthdClass calledSel calledRec|
 
@@ -5827,6 +5851,6 @@
 !DebugView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.308 2001-12-14 21:22:37 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.309 2001-12-15 12:00:21 cg Exp $'
 ! !
 DebugView initialize!