Initial support for variables
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 27 Feb 2015 16:50:43 +0100
changeset 37 f417fe8685c5
parent 36 60a0713ab8c3
child 38 9b861cb882c8
Initial support for variables
Make.proto
Make.spec
VDBAbstractListApplication.st
VDBAbstractTreeApplication.st
VDBDebuggerApplication.st
VDBFrameApplication.st
VDBStackApplication.st
VDBVariablePresenter.st
abbrev.stc
application/Make.proto
application/Make.spec
application/VDBStartup.st
application/application.nsi
application/autopackage/default.apspec
application/bc.mak
application/builder/baseline.rbspec
application/builder/package.deps.rake
application/jv_vdb_application.st
application/modules.stx
bc.mak
jv_vdb.st
libInit.cc
tests/Make.proto
tests/Make.spec
tests/bc.mak
tests/jv_vdb_tests.st
--- a/Make.proto	Fri Feb 27 13:39:32 2015 +0100
+++ b/Make.proto	Fri Feb 27 16:50:43 2015 +0100
@@ -102,16 +102,21 @@
 # build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
 	cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd $(TOP)/goodies/announcements && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd $(TOP)/libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd $(TOP)/goodies/magritte && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libgdbs && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
 # build all packages containing referenced classes for this package
-# they are nor needed to compile the package
+# they are not needed to compile the package (but later, to load it)
 references:
 
 
@@ -132,16 +137,20 @@
 $(OUTDIR)VDBModelPresenter.$(O) VDBModelPresenter.$(H): VDBModelPresenter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)jv_vdb.$(O) jv_vdb.$(H): jv_vdb.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
 $(OUTDIR)VDBAbstractContainer.$(O) VDBAbstractContainer.$(H): VDBAbstractContainer.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
+$(OUTDIR)VDBAbstractListApplication.$(O) VDBAbstractListApplication.$(H): VDBAbstractListApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBDebuggerApplication.$(O) VDBDebuggerApplication.$(H): VDBDebuggerApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBDebuggerConsoleApplication.$(O) VDBDebuggerConsoleApplication.$(H): VDBDebuggerConsoleApplication.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommandStatus.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBEventLogApplication.$(O) VDBEventLogApplication.$(H): VDBEventLogApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBFramePresenter.$(O) VDBFramePresenter.$(H): VDBFramePresenter.st $(INCLUDE_TOP)/jv/vdb/VDBModelPresenter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)VDBInferiorConsoleApplication.$(O) VDBInferiorConsoleApplication.$(H): VDBInferiorConsoleApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBSourceApplication.$(O) VDBSourceApplication.$(H): VDBSourceApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
-$(OUTDIR)VDBStackApplication.$(O) VDBStackApplication.$(H): VDBStackApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBThreadGroupPresenter.$(O) VDBThreadGroupPresenter.$(H): VDBThreadGroupPresenter.st $(INCLUDE_TOP)/jv/vdb/VDBModelPresenter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)VDBThreadPresenter.$(O) VDBThreadPresenter.$(H): VDBThreadPresenter.st $(INCLUDE_TOP)/jv/vdb/VDBModelPresenter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)VDBVariablePresenter.$(O) VDBVariablePresenter.$(H): VDBVariablePresenter.st $(INCLUDE_TOP)/jv/vdb/VDBModelPresenter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)VDBAbstractTreeApplication.$(O) VDBAbstractTreeApplication.$(H): VDBAbstractTreeApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractListApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBTabbingContainer.$(O) VDBTabbingContainer.$(H): VDBTabbingContainer.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractContainer.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
+$(OUTDIR)VDBFrameApplication.$(O) VDBFrameApplication.$(H): VDBFrameApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractListApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractTreeApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
+$(OUTDIR)VDBStackApplication.$(O) VDBStackApplication.$(H): VDBStackApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractListApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractTreeApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/Make.spec	Fri Feb 27 13:39:32 2015 +0100
+++ b/Make.spec	Fri Feb 27 16:50:43 2015 +0100
@@ -42,6 +42,7 @@
 #  -warnNonStandard : no warnings about ST/X extensions
 #  -warnEOLComments : no warnings about EOL comment extension
 #  -warnPrivacy     : no warnings about privateClass extension
+#  -warnUnused      : no warnings about unused variables
 #
 # ********** OPTIONAL: MODIFY the next line(s) ***
 # STCWARNINGS=-warn
@@ -56,16 +57,20 @@
 	VDBModelPresenter \
 	jv_vdb \
 	VDBAbstractContainer \
+	VDBAbstractListApplication \
 	VDBDebuggerApplication \
 	VDBDebuggerConsoleApplication \
 	VDBEventLogApplication \
 	VDBFramePresenter \
 	VDBInferiorConsoleApplication \
 	VDBSourceApplication \
-	VDBStackApplication \
 	VDBThreadGroupPresenter \
 	VDBThreadPresenter \
+	VDBVariablePresenter \
+	VDBAbstractTreeApplication \
 	VDBTabbingContainer \
+	VDBFrameApplication \
+	VDBStackApplication \
 
 
 
@@ -77,16 +82,20 @@
     $(OUTDIR_SLASH)VDBModelPresenter.$(O) \
     $(OUTDIR_SLASH)jv_vdb.$(O) \
     $(OUTDIR_SLASH)VDBAbstractContainer.$(O) \
+    $(OUTDIR_SLASH)VDBAbstractListApplication.$(O) \
     $(OUTDIR_SLASH)VDBDebuggerApplication.$(O) \
     $(OUTDIR_SLASH)VDBDebuggerConsoleApplication.$(O) \
     $(OUTDIR_SLASH)VDBEventLogApplication.$(O) \
     $(OUTDIR_SLASH)VDBFramePresenter.$(O) \
     $(OUTDIR_SLASH)VDBInferiorConsoleApplication.$(O) \
     $(OUTDIR_SLASH)VDBSourceApplication.$(O) \
-    $(OUTDIR_SLASH)VDBStackApplication.$(O) \
     $(OUTDIR_SLASH)VDBThreadGroupPresenter.$(O) \
     $(OUTDIR_SLASH)VDBThreadPresenter.$(O) \
+    $(OUTDIR_SLASH)VDBVariablePresenter.$(O) \
+    $(OUTDIR_SLASH)VDBAbstractTreeApplication.$(O) \
     $(OUTDIR_SLASH)VDBTabbingContainer.$(O) \
+    $(OUTDIR_SLASH)VDBFrameApplication.$(O) \
+    $(OUTDIR_SLASH)VDBStackApplication.$(O) \
 
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBAbstractListApplication.st	Fri Feb 27 16:50:43 2015 +0100
@@ -0,0 +1,101 @@
+"{ Package: 'jv:vdb' }"
+
+"{ NameSpace: Smalltalk }"
+
+VDBAbstractApplication subclass:#VDBAbstractListApplication
+	instanceVariableNames:'internalListHolder internalListView internalSelectionHolder'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-UI-Abstract'
+!
+
+!VDBAbstractListApplication class methodsFor:'queries'!
+
+isAbstract
+    "Return if this class is an abstract class.
+     True is returned here for myself only; false for subclasses.
+     Abstract subclasses must redefine again."
+
+    ^ self == VDBAbstractListApplication.
+! !
+
+!VDBAbstractListApplication methodsFor:'aspects-private'!
+
+internalListHolder
+    "return/create the 'listHolder' value holder (automatically generated)"
+
+    internalListHolder isNil ifTrue:[
+        internalListHolder := ValueHolder new.
+    ].
+    ^ internalListHolder
+
+    "Created: / 27-02-2015 / 15:55:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+internalSelectionHolder
+    "return/create the 'internalSelectionHolder' value holder (automatically generated)"
+
+    internalSelectionHolder isNil ifTrue:[
+        internalSelectionHolder := ValueHolder new.
+        internalSelectionHolder addDependent:self.
+    ].
+    ^ internalSelectionHolder
+! !
+
+!VDBAbstractListApplication methodsFor:'change & update'!
+
+enqueueDelayedUpdateInternalList
+    self window sensor pushUserEvent:#delayedUpdateInternalList for:self
+
+    "Created: / 20-09-2014 / 23:05:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+enqueueDelayedUpdateSelection
+    self window sensor pushUserEvent:#delayedUpdateSelection   for:self
+
+    "Created: / 27-02-2015 / 15:35:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+update:aspect with:param from:sender
+    "Invoked when an object that I depend upon sends a change notification."
+    sender == internalSelectionHolder ifTrue:[ 
+        self enqueueDelayedUpdateSelection.
+        ^ self
+    ].
+
+    super update:aspect with:param from:sender
+
+    "Created: / 27-02-2015 / 15:44:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBAbstractListApplication methodsFor:'change & update-delayed'!
+
+delayedUpdateInternalList
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+!
+
+delayedUpdateSelection
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+! !
+
+!VDBAbstractListApplication methodsFor:'hooks'!
+
+commonPostOpen
+    "a common hook for postOpenWith:, postOpenAsSubcanvasWith: and postOpenAsDialogWith:."
+
+    self enqueueDelayedUpdateInternalList
+
+    "Created: / 18-09-2014 / 00:29:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-09-2014 / 23:50:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+postBuildInternalListView: aView
+    internalListView := aView
+
+    "Modified: / 30-09-2014 / 00:00:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBAbstractTreeApplication.st	Fri Feb 27 16:50:43 2015 +0100
@@ -0,0 +1,87 @@
+"{ Package: 'jv:vdb' }"
+
+"{ NameSpace: Smalltalk }"
+
+VDBAbstractListApplication subclass:#VDBAbstractTreeApplication
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-UI-Abstract'
+!
+
+!VDBAbstractTreeApplication class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:VDBStackApplication andSelector:#windowSpec
+     VDBStackApplication new openInterface:#windowSpec
+     VDBStackApplication open
+    "
+
+    <resource: #canvas>
+
+    ^ 
+    #(FullSpec
+       name: windowSpec
+       window: 
+      (WindowSpec
+         label: 'Execution Stack'
+         name: 'Execution Stack'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 300 300)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (HierarchicalListViewSpec
+             name: 'Stack'
+             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+             model: internalSelectionHolder
+             menu: contextMenu
+             hasHorizontalScrollBar: true
+             hasVerticalScrollBar: true
+             listModel: internalListHolder
+             useIndex: false
+             highlightMode: line
+             showLines: false
+             useDefaultIcons: false
+             showRoot: false
+             postBuildCallback: postBuildInternalListView:
+           )
+          )
+        
+       )
+     )
+! !
+
+!VDBAbstractTreeApplication class methodsFor:'queries'!
+
+isAbstract
+    "Return if this class is an abstract class.
+     True is returned here for myself only; false for subclasses.
+     Abstract subclasses must redefine again."
+
+    ^ self == VDBAbstractTreeApplication.
+! !
+
+!VDBAbstractTreeApplication methodsFor:'aspects-private'!
+
+internalListHolder
+    "return/create the 'listHolder' value holder (automatically generated)"
+
+    internalListHolder isNil ifTrue:[
+        internalListHolder := HierarchicalList new.
+        internalListHolder showRoot: false.
+        internalListHolder root: HierarchicalItem new.
+    ].
+    ^ internalListHolder
+
+    "Created: / 20-09-2014 / 23:03:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/VDBDebuggerApplication.st	Fri Feb 27 13:39:32 2015 +0100
+++ b/VDBDebuggerApplication.st	Fri Feb 27 16:50:43 2015 +0100
@@ -7,7 +7,7 @@
 		selectedFrameHolder containerBottom'
 	classVariableNames:''
 	poolDictionaries:''
-	category:'VGB-UI'
+	category:'VDB-UI'
 !
 
 
@@ -57,31 +57,62 @@
              component: 
             (SpecCollection
                collection: (
-                (SubCanvasSpec
-                   name: 'StackCanvas'
-                   level: 0
-                   hasHorizontalScrollBar: false
-                   hasVerticalScrollBar: false
-                   majorKey: VDBStackApplication
-                   subAspectHolders: 
-                  (Array
-                     
-                    (SubChannelInfoSpec
-                       subAspect: selectedFrameHolder
-                       aspect: selectedFrameHolder
-                     ) 
-                    (SubChannelInfoSpec
-                       subAspect: selectedThreadGroupHolder
-                       aspect: selectedThreadGroupHolder
-                     )
-                     
-                    (SubChannelInfoSpec
-                       subAspect: selectedThreadHolder
-                       aspect: selectedThreadHolder
-                     )
+                (VariableHorizontalPanelSpec
+                   name: 'StackAndFrameCanvas'
+                   snapMode: both
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (SubCanvasSpec
+                         name: 'StackCanvas'
+                         level: 0
+                         hasHorizontalScrollBar: false
+                         hasVerticalScrollBar: false
+                         majorKey: VDBStackApplication
+                         subAspectHolders: 
+                        (Array
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedFrameHolder
+                             aspect: selectedFrameHolder
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: selectedThreadGroupHolder
+                             aspect: selectedThreadGroupHolder
+                           )
+                           
+                          (SubChannelInfoSpec
+                             subAspect: selectedThreadHolder
+                             aspect: selectedThreadHolder
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      (SubCanvasSpec
+                         name: 'FrameCanvas'
+                         hasHorizontalScrollBar: true
+                         hasVerticalScrollBar: true
+                         majorKey: VDBFrameApplication
+                         subAspectHolders: 
+                        (Array
+                           
+                          (SubChannelInfoSpec
+                             subAspect: debuggerHolder
+                             aspect: debuggerHolder
+                           ) 
+                          (SubChannelInfoSpec
+                             subAspect: frameHolder
+                             aspect: selectedFrameHolder
+                           )
+                         )
+                         createNewApplication: true
+                         createNewBuilder: true
+                       )
+                      )
+                    
                    )
-                   createNewApplication: true
-                   createNewBuilder: true
+                   handles: (Any 0.7 1.0)
                  )
                 (SubCanvasSpec
                    name: 'SourceCanvas'
@@ -119,12 +150,14 @@
                 )
               
              )
-             handles: (Any 0.33333333333333343 0.66666666666666685 1.0)
+             handles: (Any 0.33333333333333337 0.66666666666666674 1.0)
            )
           )
         
        )
      )
+
+    "Modified: / 27-02-2015 / 16:08:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 layoutSingleSpec
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBFrameApplication.st	Fri Feb 27 16:50:43 2015 +0100
@@ -0,0 +1,199 @@
+"{ Package: 'jv:vdb' }"
+
+"{ NameSpace: Smalltalk }"
+
+VDBAbstractTreeApplication subclass:#VDBFrameApplication
+	instanceVariableNames:'frameHolder selectedVariableHolder'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-UI-Others'
+!
+
+!VDBFrameApplication class methodsFor:'plugIn spec'!
+
+aspectSelectors
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this. If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "Return a description of exported aspects;
+     these can be connected to aspects of an embedding application
+     (if this app is embedded in a subCanvas)."
+
+    ^ #(
+        #debuggerHolder
+        #frameHolder
+        #selectedVariableHolder
+      ).
+
+    "Modified: / 27-02-2015 / 16:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBFrameApplication class methodsFor:'startup-web applications'!
+
+initialPageSpec
+    "this is only required for web-applications"
+
+    ^ self shouldImplement
+!
+
+pageSpecs
+    "this is only required for web-applications"
+
+    ^ self shouldImplement
+! !
+
+!VDBFrameApplication class methodsFor:'tableColumns specs'!
+
+variableListColumns
+    "This resource specification was automatically generated
+     by the DataSetBuilder of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the DataSetBuilder may not be able to read the specification."
+
+    "
+     DataSetBuilder new openOnClass:VDBFrameApplication andSelector:#variableListColumns
+    "
+
+    <resource: #tableColumns>
+
+    ^#(
+      (DataSetColumnSpec
+         label: 'Name'
+         labelAlignment: left
+         labelButtonType: Button
+         height: heightOfFirstRow
+         menuFromApplication: false
+         printSelector: name
+         showRowSeparator: false
+         showColSeparator: false
+       )
+      )
+    
+! !
+
+!VDBFrameApplication methodsFor:'aspects'!
+
+frameHolder
+    "return/create the 'frameHolder' value holder (automatically generated)"
+
+    frameHolder isNil ifTrue:[
+        frameHolder := ValueHolder new.
+        frameHolder addDependent:self.
+    ].
+    ^ frameHolder
+!
+
+frameHolder:something
+    "set the 'frameHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    frameHolder notNil ifTrue:[
+        oldValue := frameHolder value.
+        frameHolder removeDependent:self.
+    ].
+    frameHolder := something.
+    frameHolder notNil ifTrue:[
+        frameHolder addDependent:self.
+    ].
+    newValue := frameHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:frameHolder.
+    ].
+!
+
+selectedVariableHolder
+    "return/create the 'selectedVariableHolder' value holder (automatically generated)"
+
+    selectedVariableHolder isNil ifTrue:[
+        selectedVariableHolder := ValueHolder new.
+        selectedVariableHolder addDependent:self.
+    ].
+    ^ selectedVariableHolder
+!
+
+selectedVariableHolder:something
+    "set the 'selectedVariableHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    selectedVariableHolder notNil ifTrue:[
+        oldValue := selectedVariableHolder value.
+        selectedVariableHolder removeDependent:self.
+    ].
+    selectedVariableHolder := something.
+    selectedVariableHolder notNil ifTrue:[
+        selectedVariableHolder addDependent:self.
+    ].
+    newValue := selectedVariableHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:selectedVariableHolder.
+    ].
+! !
+
+!VDBFrameApplication methodsFor:'change & update'!
+
+update:aspect with:param from:sender
+    "Invoked when an object that I depend upon sends a change notification."
+
+    sender == frameHolder ifTrue:[
+         self enqueueDelayedUpdateInternalList.
+         ^ self.
+    ].
+    super update:aspect with:param from:sender
+
+    "Modified: / 27-02-2015 / 15:45:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBFrameApplication methodsFor:'change & update-delayed'!
+
+delayedUpdateInternalList
+    | frame root |
+
+     debugger isNil ifTrue:[
+        self internalListHolder root children:#().
+        ^ self.
+    ].   
+    frame := frameHolder value.
+    frame isNil ifTrue:[ 
+        self internalListHolder root children:#().
+        ^ self.
+    ].
+    root := self internalListHolder root.
+    root children:
+        (frame variables collect:[:v | VDBVariablePresenter new setVariable: v; parent: root; yourself]).
+    root expand.
+    internalListView notNil ifTrue:[
+        internalListView invalidate.
+    ]
+
+    "Created: / 27-02-2015 / 15:47:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+delayedUpdateSelection
+    | internalSelection |
+
+    internalSelection := self internalSelectionHolder value.
+    internalSelection notNil ifTrue:[
+        self selectedVariableHolder value: internalSelection variable
+    ] ifFalse:[ 
+        self selectedVariableHolder value: nil
+    ].
+
+    "Modified: / 27-02-2015 / 16:05:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBFrameApplication methodsFor:'drag & drop'!
+
+dropObjects:aCollectionOfDropObjects
+    "drop manager wants to drop.
+     This is ony sent, if #canDrop: returned true.
+     Must be redefined in order for drop to work."
+
+    ^ self shouldImplement
+! !
+
--- a/VDBStackApplication.st	Fri Feb 27 13:39:32 2015 +0100
+++ b/VDBStackApplication.st	Fri Feb 27 16:50:43 2015 +0100
@@ -1,66 +1,16 @@
 "{ Package: 'jv:vdb' }"
 
-VDBAbstractApplication subclass:#VDBStackApplication
+"{ NameSpace: Smalltalk }"
+
+VDBAbstractTreeApplication subclass:#VDBStackApplication
 	instanceVariableNames:'selectedThreadGroupHolder selectedThreadHolder
-		selectedFrameHolder internalListHolder internalListView
-		internalSelectionHolder'
+		selectedFrameHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'VDB-UI-Others'
 !
 
 
-!VDBStackApplication class methodsFor:'interface specs'!
-
-windowSpec
-    "This resource specification was automatically generated
-     by the UIPainter of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the UIPainter may not be able to read the specification."
-
-    "
-     UIPainter new openOnClass:VDBStackApplication andSelector:#windowSpec
-     VDBStackApplication new openInterface:#windowSpec
-     VDBStackApplication open
-    "
-
-    <resource: #canvas>
-
-    ^ 
-    #(FullSpec
-       name: windowSpec
-       window: 
-      (WindowSpec
-         label: 'Execution Stack'
-         name: 'Execution Stack'
-         min: (Point 10 10)
-         bounds: (Rectangle 0 0 300 300)
-       )
-       component: 
-      (SpecCollection
-         collection: (
-          (HierarchicalListViewSpec
-             name: 'Stack'
-             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
-             model: internalSelectionHolder
-             menu: contextMenu
-             hasHorizontalScrollBar: true
-             hasVerticalScrollBar: true
-             listModel: internalListHolder
-             useIndex: false
-             highlightMode: line
-             showLines: false
-             useDefaultIcons: false
-             showRoot: false
-             postBuildCallback: postBuildInternalListView:
-           )
-          )
-        
-       )
-     )
-! !
-
 !VDBStackApplication class methodsFor:'menu specs'!
 
 contextMenu
@@ -211,32 +161,13 @@
     ].
 ! !
 
-!VDBStackApplication methodsFor:'aspects-private'!
-
-internalListHolder
-    "return/create the 'listHolder' value holder (automatically generated)"
-
-    internalListHolder isNil ifTrue:[
-        internalListHolder := HierarchicalList new.
-        internalListHolder showRoot: false.
-        internalListHolder root: HierarchicalItem new.
-    ].
-    ^ internalListHolder
+!VDBStackApplication methodsFor:'change & update'!
 
-    "Created: / 20-09-2014 / 23:03:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-internalSelectionHolder
-    "return/create the 'internalSelectionHolder' value holder (automatically generated)"
+enqueueUpdateInternalSelectionAfterThreadStopped: aGDBThread 
+    self window sensor pushUserEvent:#updateInternalSelectionAfterThreadStopped: for:self withArgument: aGDBThread
 
-    internalSelectionHolder isNil ifTrue:[
-        internalSelectionHolder := ValueHolder new.
-        internalSelectionHolder addDependent:self.
-    ].
-    ^ internalSelectionHolder
-! !
-
-!VDBStackApplication methodsFor:'change & update'!
+    "Created: / 22-09-2014 / 23:15:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
 
 update:aspect with:param from:sender
     "Invoked when an object that I depend upon sends a change notification."
@@ -247,40 +178,9 @@
          self updateInternalSelection.
          ^ self.
     ].
-    sender == internalSelectionHolder ifTrue:[ 
-        self updateSelection.
-    ].
-
     super update:aspect with:param from:sender
 
-    "Modified: / 20-09-2014 / 23:10:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateInternalList
-    | root list |
-
-    debugger isNil ifTrue:[  
-        self internalListHolder root children:#().
-        ^ self.
-    ].
-    root := self internalListHolder root.
-    list := debugger inferiors 
-                        select: [ :inferior | inferior isRunning or:[inferior isStopped] ]
-                        thenCollect:[ :inferior | VDBThreadGroupPresenter new setThreadGroup: inferior; parent: root ].  
-    root children: list.  
-    root expand.
-    root children size == 1 ifTrue:[ 
-        root children anElement expand.
-        root children anElement children size == 1 ifTrue:[ 
-            root children anElement children anElement expand.
-        ]
-    ].
-    internalListView notNil ifTrue:[  
-        internalListView invalidate.
-    ]
-
-    "Created: / 20-09-2014 / 23:05:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 30-09-2014 / 00:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-02-2015 / 15:44:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 updateInternalSelection
@@ -337,28 +237,73 @@
 
 !VDBStackApplication methodsFor:'change & update-delayed'!
 
-enqueueUpdateInternalList
-    self window sensor pushUserEvent:#updateInternalList for:self
+delayedUpdateInternalList
+    | root  list |
 
-    "Created: / 20-09-2014 / 23:05:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    debugger isNil ifTrue:[
+        self internalListHolder root children:#().
+        ^ self.
+    ].
+    root := self internalListHolder root.
+    list := debugger inferiors 
+            select:[:inferior | inferior isRunning or:[ inferior isStopped ] ]
+            thenCollect:[:inferior | 
+                (VDBThreadGroupPresenter new)
+                    setThreadGroup:inferior;
+                    parent:root
+            ].
+    root children:list.
+    root expand.
+    root children size == 1 ifTrue:[
+        root children anElement expand.
+        root children anElement children size == 1 ifTrue:[
+            root children anElement children anElement expand.
+        ]
+    ].
+    internalListView notNil ifTrue:[
+        internalListView invalidate.
+    ]
+
+    "Created: / 20-09-2014 / 23:05:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-09-2014 / 00:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-enqueueUpdateInternalSelectionAfterThreadStopped: aGDBThread 
-    self window sensor pushUserEvent:#updateInternalSelectionAfterThreadStopped: for:self withArgument: aGDBThread
+delayedUpdateSelection
+    | internalSelection frame thread group |
 
-    "Created: / 22-09-2014 / 23:15:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    internalSelection := self internalSelectionHolder value.
+    internalSelection notNil ifTrue:[ 
+        internalSelection isFramePresenter ifTrue:[
+            frame := internalSelection frame.
+            thread := frame thread.
+            group := thread group.
+        ] ifFalse:[ 
+            internalSelection isThreadPresenter ifTrue:[ 
+                thread := internalSelection thread.
+                group := thread group.
+            ] ifFalse:[  
+                group := internalSelection threadGroup.
+            ]
+        ].
+    ].
+
+    self selectedThreadGroupHolder value: group withoutNotifying: self.
+    self selectedThreadHolder value: thread withoutNotifying: self.
+    self selectedFrameHolder value: frame withoutNotifying: self.
+
+    "Created: / 27-02-2015 / 15:33:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !VDBStackApplication methodsFor:'event handling'!
 
 onRunningEvent: event
-    self enqueueUpdateInternalList.
+    self enqueueDelayedUpdateInternalList.
 
     "Created: / 30-09-2014 / 00:02:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 onStoppedEvent: event
-    self enqueueUpdateInternalList.
+    self enqueueDelayedUpdateInternalList.
     self enqueueUpdateInternalSelectionAfterThreadStopped:event stoppedThread.
 
     "Created: / 17-09-2014 / 23:04:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -366,36 +311,19 @@
 !
 
 onThreadExitedEvent: event
-    self enqueueUpdateInternalList.
+    self enqueueDelayedUpdateInternalList.
 
     "Created: / 18-09-2014 / 23:30:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 20-09-2014 / 23:08:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 onThreadGroupExitedEvent: event
-    self enqueueUpdateInternalList.
+    self enqueueDelayedUpdateInternalList.
 
     "Created: / 18-09-2014 / 23:30:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 20-09-2014 / 23:08:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!VDBStackApplication methodsFor:'hooks'!
-
-commonPostOpen
-    "a common hook for postOpenWith:, postOpenAsSubcanvasWith: and postOpenAsDialogWith:."
-
-    self enqueueUpdateInternalList
-
-    "Created: / 18-09-2014 / 00:29:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-09-2014 / 23:50:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-postBuildInternalListView: aView
-    internalListView := aView
-
-    "Modified: / 30-09-2014 / 00:00:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !VDBStackApplication methodsFor:'initialization & release'!
 
 subscribe   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBVariablePresenter.st	Fri Feb 27 16:50:43 2015 +0100
@@ -0,0 +1,31 @@
+"{ Package: 'jv:vdb' }"
+
+"{ NameSpace: Smalltalk }"
+
+VDBModelPresenter subclass:#VDBVariablePresenter
+	instanceVariableNames:'variable'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-Presentation'
+!
+
+!VDBVariablePresenter methodsFor:'accessing'!
+
+label
+    ^ variable name
+
+    "Created: / 27-02-2015 / 15:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+variable
+    ^ variable
+! !
+
+!VDBVariablePresenter methodsFor:'initialization'!
+
+setVariable: aGDBVariable
+    variable := aGDBVariable
+
+    "Created: / 27-02-2015 / 16:00:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/abbrev.stc	Fri Feb 27 13:39:32 2015 +0100
+++ b/abbrev.stc	Fri Feb 27 16:50:43 2015 +0100
@@ -7,13 +7,17 @@
 VDBModelPresenter VDBModelPresenter jv:vdb 'VDB-Presentation' 0
 jv_vdb jv_vdb jv:vdb '* Projects & Packages *' 3
 VDBAbstractContainer VDBAbstractContainer jv:vdb 'VDB-UI-Abstract' 1
-VDBDebuggerApplication VDBDebuggerApplication jv:vdb 'VGB-UI' 1
+VDBAbstractListApplication VDBAbstractListApplication jv:vdb 'VDB-UI-Abstract' 1
+VDBDebuggerApplication VDBDebuggerApplication jv:vdb 'VDB-UI' 1
 VDBDebuggerConsoleApplication VDBDebuggerConsoleApplication jv:vdb 'VDB-UI-Console' 1
 VDBEventLogApplication VDBEventLogApplication jv:vdb 'VDB-UI-Events' 1
 VDBFramePresenter VDBFramePresenter jv:vdb 'VDB-Presentation' 0
 VDBInferiorConsoleApplication VDBInferiorConsoleApplication jv:vdb 'VDB-UI-Console' 1
 VDBSourceApplication VDBSourceApplication jv:vdb 'VDB-UI-Source' 1
-VDBStackApplication VDBStackApplication jv:vdb 'VDB-UI-Others' 1
 VDBThreadGroupPresenter VDBThreadGroupPresenter jv:vdb 'VDB-Presentation' 0
 VDBThreadPresenter VDBThreadPresenter jv:vdb 'VDB-Presentation' 0
+VDBVariablePresenter VDBVariablePresenter jv:vdb 'VDB-Presentation' 0
+VDBAbstractTreeApplication VDBAbstractTreeApplication jv:vdb 'VDB-UI-Abstract' 1
 VDBTabbingContainer VDBTabbingContainer jv:vdb 'VDB-UI-Containers' 1
+VDBFrameApplication VDBFrameApplication jv:vdb 'VDB-UI-Others' 1
+VDBStackApplication VDBStackApplication jv:vdb 'VDB-UI-Others' 1
--- a/application/Make.proto	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/Make.proto	Fri Feb 27 16:50:43 2015 +0100
@@ -33,6 +33,7 @@
 
 DELIVERBINARIES=
 
+APPNAME=libjv_vdb_application
 LIBNAME=libjv_vdb_application
 STCLOCALOPT='-package=$(PACKAGE)' -I. -headerDir=. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=.  -varPrefix=$(LIBNAME)
 
@@ -63,10 +64,11 @@
  libstx_goodies_refactoryBrowser_parser \
  libstx_libbasic2 \
  libstx_libcomp \
+ libstx_libview \
  libstx_libbasic3 \
- libstx_libview \
  libstx_libui \
  libstx_libview2 \
+ libstx_goodies_sunit \
  libstx_libwidg \
  libstx_goodies_magritte \
  libstx_libhtml \
@@ -83,10 +85,11 @@
  $(TOP)/goodies/refactoryBrowser/parser/libstx_goodies_refactoryBrowser_parser$(O_EXT) \
  $(TOP)/libbasic2/libstx_libbasic2$(O_EXT) \
  $(TOP)/libcomp/libstx_libcomp$(O_EXT) \
+ $(TOP)/libview/libstx_libview$(O_EXT) \
  $(TOP)/libbasic3/libstx_libbasic3$(O_EXT) \
- $(TOP)/libview/libstx_libview$(O_EXT) \
  $(TOP)/libui/libstx_libui$(O_EXT) \
  $(TOP)/libview2/libstx_libview2$(O_EXT) \
+ $(TOP)/goodies/sunit/libstx_goodies_sunit$(O_EXT) \
  $(TOP)/libwidg/libstx_libwidg$(O_EXT) \
  $(TOP)/goodies/magritte/libstx_goodies_magritte$(O_EXT) \
  $(TOP)/libhtml/libstx_libhtml$(O_EXT) \
@@ -103,10 +106,11 @@
  libstx_goodies_refactoryBrowser_parser$(O_EXT) \
  libstx_libbasic2$(O_EXT) \
  libstx_libcomp$(O_EXT) \
+ libstx_libview$(O_EXT) \
  libstx_libbasic3$(O_EXT) \
- libstx_libview$(O_EXT) \
  libstx_libui$(O_EXT) \
  libstx_libview2$(O_EXT) \
+ libstx_goodies_sunit$(O_EXT) \
  libstx_libwidg$(O_EXT) \
  libstx_goodies_magritte$(O_EXT) \
  libstx_libhtml$(O_EXT) \
@@ -130,7 +134,7 @@
 # like ALL, but not prereqs
 ALL_NP:: exe $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) $(SETUP_RULE)
 
-exe:    vdb 
+exe:    vdb registerApplication
 
 vdb: $(APP_DIRS_TO_MAKE) $(APP_LIBOBJS) $(REQUIRED_LIBOBJS) $(OBJS)
 	$(MAKE) link_vdb
@@ -343,6 +347,19 @@
 $(TOP)/libcomp/makefile: $(TOP)/libcomp/Make.proto
 	$(TOP)/rules/stmkmf --cd $(TOP)/libcomp
 
+libstx_libview.so: $(TOP)/libview/libstx_libview.so
+	ln -sf $(TOP)/libview/libstx_libview.so .
+
+$(TOP)/libview/libstx_libview.so: $(TOP)/libview/makefile $(FORCE)
+	@if [ -f "$(TOP)/libview/.NOSOURCE" ]; then \
+	    echo "skip make in $(TOP)/libview (no source)"; \
+	else \
+	    cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "; \
+	fi
+
+$(TOP)/libview/makefile: $(TOP)/libview/Make.proto
+	$(TOP)/rules/stmkmf --cd $(TOP)/libview
+
 libstx_libbasic3.so: $(TOP)/libbasic3/libstx_libbasic3.so
 	ln -sf $(TOP)/libbasic3/libstx_libbasic3.so .
 
@@ -356,19 +373,6 @@
 $(TOP)/libbasic3/makefile: $(TOP)/libbasic3/Make.proto
 	$(TOP)/rules/stmkmf --cd $(TOP)/libbasic3
 
-libstx_libview.so: $(TOP)/libview/libstx_libview.so
-	ln -sf $(TOP)/libview/libstx_libview.so .
-
-$(TOP)/libview/libstx_libview.so: $(TOP)/libview/makefile $(FORCE)
-	@if [ -f "$(TOP)/libview/.NOSOURCE" ]; then \
-	    echo "skip make in $(TOP)/libview (no source)"; \
-	else \
-	    cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "; \
-	fi
-
-$(TOP)/libview/makefile: $(TOP)/libview/Make.proto
-	$(TOP)/rules/stmkmf --cd $(TOP)/libview
-
 libstx_libui.so: $(TOP)/libui/libstx_libui.so
 	ln -sf $(TOP)/libui/libstx_libui.so .
 
@@ -395,6 +399,19 @@
 $(TOP)/libview2/makefile: $(TOP)/libview2/Make.proto
 	$(TOP)/rules/stmkmf --cd $(TOP)/libview2
 
+libstx_goodies_sunit.so: $(TOP)/goodies/sunit/libstx_goodies_sunit.so
+	ln -sf $(TOP)/goodies/sunit/libstx_goodies_sunit.so .
+
+$(TOP)/goodies/sunit/libstx_goodies_sunit.so: $(TOP)/goodies/sunit/makefile $(FORCE)
+	@if [ -f "$(TOP)/goodies/sunit/.NOSOURCE" ]; then \
+	    echo "skip make in $(TOP)/goodies/sunit (no source)"; \
+	else \
+	    cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "; \
+	fi
+
+$(TOP)/goodies/sunit/makefile: $(TOP)/goodies/sunit/Make.proto
+	$(TOP)/rules/stmkmf --cd $(TOP)/goodies/sunit
+
 libstx_libwidg.so: $(TOP)/libwidg/libstx_libwidg.so
 	ln -sf $(TOP)/libwidg/libstx_libwidg.so .
 
--- a/application/Make.spec	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/Make.spec	Fri Feb 27 16:50:43 2015 +0100
@@ -42,6 +42,7 @@
 #  -warnNonStandard : no warnings about ST/X extensions
 #  -warnEOLComments : no warnings about EOL comment extension
 #  -warnPrivacy     : no warnings about privateClass extension
+#  -warnUnused      : no warnings about unused variables
 #
 # ********** OPTIONAL: MODIFY the next line(s) ***
 # STCWARNINGS=-warn
--- a/application/VDBStartup.st	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/VDBStartup.st	Fri Feb 27 16:50:43 2015 +0100
@@ -1,5 +1,7 @@
 "{ Package: 'jv:vdb/application' }"
 
+"{ NameSpace: Smalltalk }"
+
 StandaloneStartup subclass:#VDBStartup
 	instanceVariableNames:''
 	classVariableNames:''
--- a/application/application.nsi	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/application.nsi	Fri Feb 27 16:50:43 2015 +0100
@@ -3,7 +3,7 @@
 
 !define PRODUCT_NAME "Visual Debugger"
 !define PRODUCT_FILENAME "Visual Debugger"
-!define PRODUCT_VERSION "6.2.4.0"
+!define PRODUCT_VERSION "6.2.5.0"
 !define PRODUCT_PUBLISHER "Jan Vrany"
 !define PRODUCT_WEB_SITE "http://www.yoursite.com"
 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_FILENAME}"
--- a/application/autopackage/default.apspec	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/autopackage/default.apspec	Fri Feb 27 16:50:43 2015 +0100
@@ -1,7 +1,7 @@
 # -*- shell-script -*-
 [Meta]
 ShortName: vdb
-SoftwareVersion: 6.2.4.0
+SoftwareVersion: 6.2.5.0
 DisplayName: Visual Debugger
 RootName: @exept.de/expecco:$SOFTWAREVERSION
 Summary: Visual Debugger
--- a/application/bc.mak	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/bc.mak	Fri Feb 27 16:50:43 2015 +0100
@@ -41,7 +41,9 @@
 
 
 #
+APPNAME=libjv_vdb_application
 LIBNAME=dummy
+MODULE_PATH=vdb\application
 STCOPT="+optinline"
 LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\libgdbs -I$(INCLUDE_TOP)\jv\vdb -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2
 LOCALDEFINES=
@@ -72,10 +74,11 @@
  libstx_goodies_refactoryBrowser_parser.dll \
  libstx_libbasic2.dll \
  libstx_libcomp.dll \
+ libstx_libview.dll \
  libstx_libbasic3.dll \
- libstx_libview.dll \
  libstx_libui.dll \
  libstx_libview2.dll \
+ libstx_goodies_sunit.dll \
  libstx_libwidg.dll \
  libstx_goodies_magritte.dll \
  libstx_libhtml.dll \
@@ -99,7 +102,7 @@
 # all, but no prereqs
 ALL_NP:: exe $(REQUIRED_SUPPORT_DIRS) postBuildCleanup setup
 
-exe:  newBuildDate $(REQUIRED_LIBS) noConsoleApp consoleApp
+exe:  newBuildDate $(REQUIRED_LIBS) noConsoleApp consoleApp registerApplication
 
 # the executable only
 # with console
@@ -295,18 +298,18 @@
 ..\..\..\stx\libcomp\$(OBJDIR)\libstx_libcomp.dll: $(FORCE)
 	pushd ..\..\..\stx\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
+libstx_libview.dll: ..\..\..\stx\libview\$(OBJDIR)\libstx_libview.dll
+	copy ..\..\..\stx\libview\$(OBJDIR)\libstx_libview.dll *.*
+
+..\..\..\stx\libview\$(OBJDIR)\libstx_libview.dll: $(FORCE)
+	pushd ..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+
 libstx_libbasic3.dll: ..\..\..\stx\libbasic3\$(OBJDIR)\libstx_libbasic3.dll
 	copy ..\..\..\stx\libbasic3\$(OBJDIR)\libstx_libbasic3.dll *.*
 
 ..\..\..\stx\libbasic3\$(OBJDIR)\libstx_libbasic3.dll: $(FORCE)
 	pushd ..\..\..\stx\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
-libstx_libview.dll: ..\..\..\stx\libview\$(OBJDIR)\libstx_libview.dll
-	copy ..\..\..\stx\libview\$(OBJDIR)\libstx_libview.dll *.*
-
-..\..\..\stx\libview\$(OBJDIR)\libstx_libview.dll: $(FORCE)
-	pushd ..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-
 libstx_libui.dll: ..\..\..\stx\libui\$(OBJDIR)\libstx_libui.dll
 	copy ..\..\..\stx\libui\$(OBJDIR)\libstx_libui.dll *.*
 
@@ -319,6 +322,12 @@
 ..\..\..\stx\libview2\$(OBJDIR)\libstx_libview2.dll: $(FORCE)
 	pushd ..\..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
+libstx_goodies_sunit.dll: ..\..\..\stx\goodies\sunit\$(OBJDIR)\libstx_goodies_sunit.dll
+	copy ..\..\..\stx\goodies\sunit\$(OBJDIR)\libstx_goodies_sunit.dll *.*
+
+..\..\..\stx\goodies\sunit\$(OBJDIR)\libstx_goodies_sunit.dll: $(FORCE)
+	pushd ..\..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+
 libstx_libwidg.dll: ..\..\..\stx\libwidg\$(OBJDIR)\libstx_libwidg.dll
 	copy ..\..\..\stx\libwidg\$(OBJDIR)\libstx_libwidg.dll *.*
 
--- a/application/builder/baseline.rbspec	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/builder/baseline.rbspec	Fri Feb 27 16:50:43 2015 +0100
@@ -19,10 +19,11 @@
   package "stx:goodies/refactoryBrowser/parser"
   package "stx:libbasic2"
   package "stx:libcomp"
+  package "stx:libview"
   package "stx:libbasic3"
-  package "stx:libview"
   package "stx:libui"
   package "stx:libview2"
+  package "stx:goodies/sunit"
   package "stx:libwidg"
   package "stx:goodies/magritte"
   package "stx:libhtml"
--- a/application/builder/package.deps.rake	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/builder/package.deps.rake	Fri Feb 27 16:50:43 2015 +0100
@@ -2,7 +2,53 @@
 # Package dependencies.
 # Automatically generated by project defintion.
 
-task "stx:goodies/announcements" => "stx:libbasic"
+task "stx:libview" => "stx:libbasic"
+
+
+task "stx:libcomp" => "stx:libbasic"
+
+task "stx:goodies/sunit" => "stx:libbasic"
+task "stx:goodies/sunit" => "stx:libbasic3"
+task "stx:goodies/sunit" => "stx:libview2"
+task "stx:goodies/sunit" => "stx:libbasic2"
+task "stx:goodies/sunit" => "stx:libview"
+
+task "stx:libhtml" => "stx:libbasic"
+task "stx:libhtml" => "stx:libview"
+task "stx:libhtml" => "stx:libwidg"
+
+task "stx:goodies/refactoryBrowser/parser" => "stx:libbasic"
+
+task "stx:goodies/magritte" => "stx:libwidg"
+task "stx:goodies/magritte" => "stx:libbasic2"
+task "stx:goodies/magritte" => "stx:libbasic"
+task "stx:goodies/magritte" => "stx:libview"
+
+task "jv:vdb" => "jv:libgdbs"
+task "jv:vdb" => "stx:libbasic"
+task "jv:vdb" => "stx:libview"
+task "jv:vdb" => "stx:libview2"
+task "jv:vdb" => "stx:libwidg"
+task "jv:vdb" => "stx:libwidg2"
+task "jv:vdb" => "stx:libbasic2"
+task "jv:vdb" => "stx:libtool"
+task "jv:vdb" => "stx:libtool2"
+
+task "stx:libwidg" => "stx:libbasic"
+task "stx:libwidg" => "stx:libview"
+task "stx:libwidg" => "stx:libview2"
+task "stx:libwidg" => "stx:libbasic2"
+task "stx:libwidg" => "stx:libbasic3"
+task "stx:libwidg" => "stx:libui"
+
+task "stx:libbasic2" => "stx:libbasic"
+
+task "stx:libwidg2" => "stx:libbasic"
+task "stx:libwidg2" => "stx:libbasic2"
+task "stx:libwidg2" => "stx:libview"
+task "stx:libwidg2" => "stx:libview2"
+task "stx:libwidg2" => "stx:libwidg"
+task "stx:libwidg2" => "stx:libui"
 
 task "stx:libtool" => "stx:goodies/refactoryBrowser/parser"
 task "stx:libtool" => "stx:libbasic"
@@ -16,33 +62,20 @@
 task "stx:libtool" => "stx:libwidg2"
 task "stx:libtool" => "stx:libwidg3"
 
-task "stx:libcomp" => "stx:libbasic"
-
-task "stx:libbasic3" => "stx:libbasic"
-task "stx:libbasic3" => "stx:libbasic2"
+task "stx:libview2" => "stx:libbasic"
+task "stx:libview2" => "stx:libbasic2"
+task "stx:libview2" => "stx:libview"
+task "stx:libview2" => "stx:libui"
 
-task "stx:libwidg2" => "stx:libbasic"
-task "stx:libwidg2" => "stx:libbasic2"
-task "stx:libwidg2" => "stx:libview"
-task "stx:libwidg2" => "stx:libview2"
-task "stx:libwidg2" => "stx:libwidg"
-task "stx:libwidg2" => "stx:libui"
-
-task "stx:libhtml" => "stx:libbasic"
-task "stx:libhtml" => "stx:libview"
-task "stx:libhtml" => "stx:libwidg"
-
-task "stx:libbasic2" => "stx:libbasic"
+task "stx:goodies/announcements" => "stx:libbasic"
 
 task "jv:libgdbs" => "stx:goodies/announcements"
 task "jv:libgdbs" => "stx:goodies/magritte"
+task "jv:libgdbs" => "stx:goodies/sunit"
 task "jv:libgdbs" => "stx:libbasic"
 task "jv:libgdbs" => "stx:libbasic2"
 task "jv:libgdbs" => "stx:libview2"
 
-task "stx:goodies/refactoryBrowser/parser" => "stx:libbasic"
-
-
 task "stx:libtool2" => "stx:libbasic"
 task "stx:libtool2" => "stx:libview"
 task "stx:libtool2" => "stx:libview2"
@@ -55,38 +88,8 @@
 task "stx:libtool2" => "stx:libtool"
 task "stx:libtool2" => "stx:libui"
 
-task "stx:libview2" => "stx:libbasic"
-task "stx:libview2" => "stx:libbasic2"
-task "stx:libview2" => "stx:libview"
-task "stx:libview2" => "stx:libui"
-
-task "stx:goodies/magritte" => "stx:libbasic"
-task "stx:goodies/magritte" => "stx:libwidg"
-task "stx:goodies/magritte" => "stx:libbasic2"
-task "stx:goodies/magritte" => "stx:libview"
-
-task "jv:vdb" => "stx:libbasic"
-task "jv:vdb" => "stx:libview"
-task "jv:vdb" => "stx:libview2"
-task "jv:vdb" => "stx:libwidg"
-task "jv:vdb" => "stx:libwidg2"
-task "jv:vdb" => "jv:libgdbs"
-task "jv:vdb" => "stx:libbasic2"
-task "jv:vdb" => "stx:libtool"
-task "jv:vdb" => "stx:libtool2"
-
-task "stx:libwidg" => "stx:libbasic"
-task "stx:libwidg" => "stx:libview"
-task "stx:libwidg" => "stx:libview2"
-task "stx:libwidg" => "stx:libbasic2"
-task "stx:libwidg" => "stx:libbasic3"
-task "stx:libwidg" => "stx:libui"
-
-task "stx:libui" => "stx:libbasic"
-task "stx:libui" => "stx:libview"
-
-task "stx:libview" => "stx:libbasic"
-task "stx:libview" => "stx:libbasic2"
+task "stx:libbasic3" => "stx:libbasic"
+task "stx:libbasic3" => "stx:libbasic2"
 
 task "stx:libwidg3" => "stx:libbasic"
 task "stx:libwidg3" => "stx:libui"
@@ -96,6 +99,9 @@
 task "stx:libwidg3" => "stx:libwidg2"
 task "stx:libwidg3" => "stx:libbasic2"
 
+task "stx:libui" => "stx:libbasic"
+task "stx:libui" => "stx:libview"
+
 task "jv:vdb/application" => "stx:libbasic"
 task "jv:vdb/application" => "jv:libgdbs"
 task "jv:vdb/application" => "jv:vdb"
--- a/application/jv_vdb_application.st	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/jv_vdb_application.st	Fri Feb 27 16:50:43 2015 +0100
@@ -1,5 +1,7 @@
 "{ Package: 'jv:vdb/application' }"
 
+"{ NameSpace: Smalltalk }"
+
 ApplicationDefinition subclass:#jv_vdb_application
 	instanceVariableNames:''
 	classVariableNames:''
@@ -71,7 +73,10 @@
 referencedPreRequisites
     "list packages which are a prerequisite, because they contain
      classes which are referenced by my classes.
-     We do not need these packages as a prerequisite for loading or compiling.
+     We do not need these packages as a prerequisite for compiling or loading,
+     however, a class from it may be referenced during execution and having it
+     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+     includes explicit checks for the package being present.
      This method is generated automatically,
      by searching all classes (and their packages) which are referenced by my classes."
 
--- a/application/modules.stx	Fri Feb 27 13:39:32 2015 +0100
+++ b/application/modules.stx	Fri Feb 27 16:50:43 2015 +0100
@@ -20,10 +20,11 @@
 libstx_goodies_refactoryBrowser_parser
 libstx_libbasic2
 libstx_libcomp
+libstx_libview
 libstx_libbasic3
-libstx_libview
 libstx_libui
 libstx_libview2
+libstx_goodies_sunit
 libstx_libwidg
 libstx_goodies_magritte
 libstx_libhtml
--- a/bc.mak	Fri Feb 27 13:39:32 2015 +0100
+++ b/bc.mak	Fri Feb 27 16:50:43 2015 +0100
@@ -30,6 +30,7 @@
 !INCLUDE Make.spec
 
 LIBNAME=libjv_vdb
+MODULE_PATH=vdb
 RESFILES=vdb.$(RES)
 
 
@@ -51,11 +52,16 @@
 # build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
 	pushd ..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\stx\goodies\announcements & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\stx\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\stx\goodies\magritte & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libgdbs & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
@@ -78,16 +84,20 @@
 $(OUTDIR)VDBModelPresenter.$(O) VDBModelPresenter.$(H): VDBModelPresenter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)jv_vdb.$(O) jv_vdb.$(H): jv_vdb.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
 $(OUTDIR)VDBAbstractContainer.$(O) VDBAbstractContainer.$(H): VDBAbstractContainer.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
+$(OUTDIR)VDBAbstractListApplication.$(O) VDBAbstractListApplication.$(H): VDBAbstractListApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBDebuggerApplication.$(O) VDBDebuggerApplication.$(H): VDBDebuggerApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBDebuggerConsoleApplication.$(O) VDBDebuggerConsoleApplication.$(H): VDBDebuggerConsoleApplication.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommandStatus.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBEventLogApplication.$(O) VDBEventLogApplication.$(H): VDBEventLogApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBFramePresenter.$(O) VDBFramePresenter.$(H): VDBFramePresenter.st $(INCLUDE_TOP)\jv\vdb\VDBModelPresenter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)VDBInferiorConsoleApplication.$(O) VDBInferiorConsoleApplication.$(H): VDBInferiorConsoleApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBSourceApplication.$(O) VDBSourceApplication.$(H): VDBSourceApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
-$(OUTDIR)VDBStackApplication.$(O) VDBStackApplication.$(H): VDBStackApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBThreadGroupPresenter.$(O) VDBThreadGroupPresenter.$(H): VDBThreadGroupPresenter.st $(INCLUDE_TOP)\jv\vdb\VDBModelPresenter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)VDBThreadPresenter.$(O) VDBThreadPresenter.$(H): VDBThreadPresenter.st $(INCLUDE_TOP)\jv\vdb\VDBModelPresenter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)VDBVariablePresenter.$(O) VDBVariablePresenter.$(H): VDBVariablePresenter.st $(INCLUDE_TOP)\jv\vdb\VDBModelPresenter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)VDBAbstractTreeApplication.$(O) VDBAbstractTreeApplication.$(H): VDBAbstractTreeApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractListApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBTabbingContainer.$(O) VDBTabbingContainer.$(H): VDBTabbingContainer.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractContainer.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
+$(OUTDIR)VDBFrameApplication.$(O) VDBFrameApplication.$(H): VDBFrameApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractListApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractTreeApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
+$(OUTDIR)VDBStackApplication.$(O) VDBStackApplication.$(H): VDBStackApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractListApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractTreeApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/jv_vdb.st	Fri Feb 27 13:39:32 2015 +0100
+++ b/jv_vdb.st	Fri Feb 27 16:50:43 2015 +0100
@@ -1,5 +1,7 @@
 "{ Package: 'jv:vdb' }"
 
+"{ NameSpace: Smalltalk }"
+
 LibraryDefinition subclass:#jv_vdb
 	instanceVariableNames:''
 	classVariableNames:''
@@ -28,6 +30,7 @@
      by searching along the inheritance chain of all of my classes."
 
     ^ #(
+        #'jv:libgdbs'    "GDBCommandStatus - shared pool used by VDBDebuggerConsoleApplication"
         #'stx:libbasic'    "LibraryDefinition - superclass of jv_vdb"
         #'stx:libview'    "DisplaySurface - superclass of VDBDebuggerConsoleView"
         #'stx:libview2'    "ApplicationModel - superclass of VDBAbstractApplication"
@@ -39,14 +42,16 @@
 referencedPreRequisites
     "list packages which are a prerequisite, because they contain
      classes which are referenced by my classes.
-     We do not need these packages as a prerequisite for loading or compiling.
+     We do not need these packages as a prerequisite for compiling or loading,
+     however, a class from it may be referenced during execution and having it
+     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+     includes explicit checks for the package being present.
      This method is generated automatically,
      by searching all classes (and their packages) which are referenced by my classes."
 
     ^ #(
-        #'jv:libgdbs'    "GDBCLICommand - referenced by VDBDebuggerConsoleApplication>>commonPostOpen"
         #'stx:libbasic2'    "List - referenced by VDBAbstractContainer>>initialize"
-        #'stx:libtool'    "SmalltalkCodeGeneratorTool - referenced by VDBIconLibrary class>>loadAndCompileImagesFrom:"
+        #'stx:libtool'    "SmalltalkCodeGeneratorTool - referenced by VDBIconLibrary class>>loadAndCompileImagesFrom:categoryPrefix:"
         #'stx:libtool2'    "MenuEditor - referenced by VDBIconLibrary class>>initialize"
     )
 !
@@ -77,16 +82,20 @@
         VDBModelPresenter
         #'jv_vdb'
         VDBAbstractContainer
+        VDBAbstractListApplication
         VDBDebuggerApplication
         VDBDebuggerConsoleApplication
         VDBEventLogApplication
         VDBFramePresenter
         VDBInferiorConsoleApplication
         VDBSourceApplication
-        VDBStackApplication
         VDBThreadGroupPresenter
         VDBThreadPresenter
+        VDBVariablePresenter
+        VDBAbstractTreeApplication
         VDBTabbingContainer
+        VDBFrameApplication
+        VDBStackApplication
     )
 !
 
--- a/libInit.cc	Fri Feb 27 13:39:32 2015 +0100
+++ b/libInit.cc	Fri Feb 27 16:50:43 2015 +0100
@@ -33,16 +33,20 @@
 _VDBModelPresenter_Init(pass,__pRT__,snd);
 _jv_137vdb_Init(pass,__pRT__,snd);
 _VDBAbstractContainer_Init(pass,__pRT__,snd);
+_VDBAbstractListApplication_Init(pass,__pRT__,snd);
 _VDBDebuggerApplication_Init(pass,__pRT__,snd);
 _VDBDebuggerConsoleApplication_Init(pass,__pRT__,snd);
 _VDBEventLogApplication_Init(pass,__pRT__,snd);
 _VDBFramePresenter_Init(pass,__pRT__,snd);
 _VDBInferiorConsoleApplication_Init(pass,__pRT__,snd);
 _VDBSourceApplication_Init(pass,__pRT__,snd);
-_VDBStackApplication_Init(pass,__pRT__,snd);
 _VDBThreadGroupPresenter_Init(pass,__pRT__,snd);
 _VDBThreadPresenter_Init(pass,__pRT__,snd);
+_VDBVariablePresenter_Init(pass,__pRT__,snd);
+_VDBAbstractTreeApplication_Init(pass,__pRT__,snd);
 _VDBTabbingContainer_Init(pass,__pRT__,snd);
+_VDBFrameApplication_Init(pass,__pRT__,snd);
+_VDBStackApplication_Init(pass,__pRT__,snd);
 
 
 __END_PACKAGE__();
--- a/tests/Make.proto	Fri Feb 27 13:39:32 2015 +0100
+++ b/tests/Make.proto	Fri Feb 27 16:50:43 2015 +0100
@@ -106,7 +106,7 @@
 
 
 # build all packages containing referenced classes for this package
-# they are nor needed to compile the package
+# they are not needed to compile the package (but later, to load it)
 references:
 
 
--- a/tests/Make.spec	Fri Feb 27 13:39:32 2015 +0100
+++ b/tests/Make.spec	Fri Feb 27 16:50:43 2015 +0100
@@ -42,6 +42,7 @@
 #  -warnNonStandard : no warnings about ST/X extensions
 #  -warnEOLComments : no warnings about EOL comment extension
 #  -warnPrivacy     : no warnings about privateClass extension
+#  -warnUnused      : no warnings about unused variables
 #
 # ********** OPTIONAL: MODIFY the next line(s) ***
 # STCWARNINGS=-warn
--- a/tests/bc.mak	Fri Feb 27 13:39:32 2015 +0100
+++ b/tests/bc.mak	Fri Feb 27 16:50:43 2015 +0100
@@ -30,6 +30,7 @@
 !INCLUDE Make.spec
 
 LIBNAME=libjv_vdb_tests
+MODULE_PATH=vdb\tests
 RESFILES=tests.$(RES)
 
 
--- a/tests/jv_vdb_tests.st	Fri Feb 27 13:39:32 2015 +0100
+++ b/tests/jv_vdb_tests.st	Fri Feb 27 16:50:43 2015 +0100
@@ -1,5 +1,7 @@
 "{ Package: 'jv:vdb/tests' }"
 
+"{ NameSpace: Smalltalk }"
+
 LibraryDefinition subclass:#jv_vdb_tests
 	instanceVariableNames:''
 	classVariableNames:''
@@ -35,7 +37,10 @@
 referencedPreRequisites
     "list packages which are a prerequisite, because they contain
      classes which are referenced by my classes.
-     We do not need these packages as a prerequisite for loading or compiling.
+     We do not need these packages as a prerequisite for compiling or loading,
+     however, a class from it may be referenced during execution and having it
+     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+     includes explicit checks for the package being present.
      This method is generated automatically,
      by searching all classes (and their packages) which are referenced by my classes."