GDBFrame.st
changeset 55 437ee6413c74
parent 51 2fa20404923c
child 56 20989de12cfb
--- a/GDBFrame.st	Fri Feb 27 14:45:03 2015 +0100
+++ b/GDBFrame.st	Fri Feb 27 16:47:55 2015 +0100
@@ -1,7 +1,9 @@
 "{ Package: 'jv:libgdbs' }"
 
+"{ NameSpace: Smalltalk }"
+
 GDBTransientObject subclass:#GDBFrame
-	instanceVariableNames:'thread level addr func file fullname line from'
+	instanceVariableNames:'thread level addr func file fullname line from variables'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'GDB-Core'
@@ -55,25 +57,60 @@
 
 thread
     ^ thread
+!
+
+variables
+    self ensureIsValid.
+    variables isNil ifTrue:[
+        variables := GDBTransientDataHolder debugger: debugger factory:[ 
+            | result |
+
+            result := debugger send: (GDBMI_stack_list_variables new arguments: { '--thread' . thread id . '--frame' . level . '--no-values' }).
+            (result propertyAt: #variables)
+                do:[ :each | each debugger: debugger ];
+                yourself
+        ].
+    ].
+    ^ variables value
+
+    "Created: / 27-02-2015 / 14:56:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GDBFrame methodsFor:'printing & storing'!
 
+displayString
+    ^ String streamContents: [ :aStream |
+        level printOn:aStream base: 10 size: 2 fill: Character space.
+        aStream nextPutAll:' '.
+        addr printOn:aStream.
+        aStream nextPutAll:' '.
+        func printOn:aStream.
+        aStream nextPutAll:' ('.
+        file printOn:aStream.
+        aStream nextPutAll:', line: '.
+        line printOn:aStream.
+        aStream nextPutAll:')'.
+    ].
+
+    "Created: / 27-02-2015 / 15:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 printOn:aStream
     "append a printed representation if the receiver to the argument, aStream"
 
-    aStream nextPutAll:'frame '.
+    super printOn: aStream.
+    aStream nextPutAll:'('.
     level printOn:aStream base: 10 size: 2 fill: Character space.
     aStream nextPutAll:' '.
     addr printOn:aStream.
     aStream nextPutAll:' '.
     func printOn:aStream.
-    aStream nextPutAll:' ('.
+    aStream nextPutAll:' - '.
     file printOn:aStream.
-    aStream nextPutAll:', line: '.
+    aStream nextPutAll:':'.
     line printOn:aStream.
     aStream nextPutAll:')'.
 
-    "Modified: / 17-09-2014 / 22:15:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-02-2015 / 15:21:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !