Added support for inspecting expression result in source view
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 21 Mar 2018 23:06:02 +0000
changeset 68 6caeb5d7c92b
parent 67 c16e5afcf586
child 69 04d188dcd0dc
Added support for inspecting expression result in source view ...by selecting it and pression "Alt-I", just like in Smalltalk debugger.
Make.proto
Make.spec
VDBEvaluator.st
VDBSourceApplication.st
abbrev.stc
application/application.nsi
application/autopackage/default.apspec
application/osx/Info.plist
bc.mak
jv_vdb.st
libInit.cc
--- a/Make.proto	Wed Mar 14 10:22:11 2018 +0000
+++ b/Make.proto	Wed Mar 21 23:06:02 2018 +0000
@@ -131,6 +131,7 @@
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)VDBAbstractApplication.$(O) VDBAbstractApplication.$(C) VDBAbstractApplication.$(H): VDBAbstractApplication.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBAbstractPresenter.$(O) VDBAbstractPresenter.$(C) VDBAbstractPresenter.$(H): VDBAbstractPresenter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/AbstractHierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)VDBEvaluator.$(O) VDBEvaluator.$(C) VDBEvaluator.$(H): VDBEvaluator.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)VDBIconLibrary.$(O) VDBIconLibrary.$(C) VDBIconLibrary.$(H): VDBIconLibrary.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryMap.$(O) VDBVirtualMemoryMap.$(C) VDBVirtualMemoryMap.$(H): VDBVirtualMemoryMap.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryRegion.$(O) VDBVirtualMemoryRegion.$(C) VDBVirtualMemoryRegion.$(H): VDBVirtualMemoryRegion.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec	Wed Mar 14 10:22:11 2018 +0000
+++ b/Make.spec	Wed Mar 21 23:06:02 2018 +0000
@@ -53,6 +53,7 @@
 COMMON_CLASSES= \
 	VDBAbstractApplication \
 	VDBAbstractPresenter \
+	VDBEvaluator \
 	VDBIconLibrary \
 	VDBVirtualMemoryMap \
 	VDBVirtualMemoryRegion \
@@ -86,6 +87,7 @@
 COMMON_OBJS= \
     $(OUTDIR)VDBAbstractApplication.$(O) \
     $(OUTDIR)VDBAbstractPresenter.$(O) \
+    $(OUTDIR)VDBEvaluator.$(O) \
     $(OUTDIR)VDBIconLibrary.$(O) \
     $(OUTDIR)VDBVirtualMemoryMap.$(O) \
     $(OUTDIR)VDBVirtualMemoryRegion.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBEvaluator.st	Wed Mar 21 23:06:02 2018 +0000
@@ -0,0 +1,78 @@
+"
+jv:vdb - Visual / VM Debugger
+Copyright (C) 2015-now Jan Vrany
+
+This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
+
+You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
+"
+"{ Package: 'jv:vdb' }"
+
+"{ NameSpace: Smalltalk }"
+
+Object subclass:#VDBEvaluator
+	instanceVariableNames:'debugger'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-Tools'
+!
+
+!VDBEvaluator class methodsFor:'documentation'!
+
+copyright
+"
+jv:vdb - Visual / VM Debugger
+Copyright (C) 2015-now Jan Vrany
+
+This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
+
+You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
+"
+! !
+
+!VDBEvaluator methodsFor:'accessing - mimicry'!
+
+currentNameSpace: ignored
+    self assert: ignored isNil
+
+    "Created: / 21-03-2018 / 22:40:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+moreSharedPools:ignored
+    self assert: ignored isNil
+
+    "Created: / 21-03-2018 / 22:41:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBEvaluator methodsFor:'evaluation'!
+
+evaluate:aString in: context receiver: receiver notifying: requestor logged:logged ifFail:failBlock
+    ^ debugger evaluate: aString
+
+    "Created: / 21-03-2018 / 22:41:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBEvaluator methodsFor:'initialization'!
+
+setDebugger: aGDBDebugger
+    debugger := aGDBDebugger
+
+    "Created: / 21-03-2018 / 22:14:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBEvaluator methodsFor:'instance creation'!
+
+new
+
+    "/ This is hack to overcome the fact that TextView and other expect
+    "/ class that they instantiate themselves. This is indeed weird interface, 
+    "/ but well, we cannot change that easily due to backward compatibility.
+    "/ See
+    "/ 
+    "/      Workspace >> #executeDoIt:
+    "/ 
+    ^ self
+
+    "Created: / 21-03-2018 / 22:36:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/VDBSourceApplication.st	Wed Mar 14 10:22:11 2018 +0000
+++ b/VDBSourceApplication.st	Wed Mar 21 23:06:02 2018 +0000
@@ -184,12 +184,14 @@
 sourceView
     sourceView isNil ifTrue:[ 
         sourceView := Tools::CodeView2 new.
+        sourceView compilerClass: (VDBEvaluator new setDebugger: debugger).    
         sourceView readOnly: true.
         sourceView services: #()        
     ].
     ^ sourceView
 
     "Created: / 21-09-2014 / 01:42:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-03-2018 / 22:16:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !VDBSourceApplication methodsFor:'change & update'!
@@ -261,9 +263,14 @@
     "Register for debugger events. To be overrided by subclasses"
 
     debugger announcer
-        when: GDBStoppedEvent               send: #onStoppedEvent: to: self
+        when: GDBStoppedEvent               send: #onStoppedEvent: to: self.
+
+    sourceView notNil ifTrue:[ 
+        sourceView compilerClass setDebugger: debugger.
+    ].
 
     "Created: / 01-02-2018 / 15:18:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-03-2018 / 22:18:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !VDBSourceApplication class methodsFor:'documentation'!
--- a/abbrev.stc	Wed Mar 14 10:22:11 2018 +0000
+++ b/abbrev.stc	Wed Mar 21 23:06:02 2018 +0000
@@ -3,6 +3,7 @@
 # it provides information about a classes filename, category and especially namespace.
 VDBAbstractApplication VDBAbstractApplication jv:vdb 'VDB-UI-Abstract' 2
 VDBAbstractPresenter VDBAbstractPresenter jv:vdb 'VDB-Presentation' 0
+VDBEvaluator VDBEvaluator jv:vdb 'VDB-Tools' 0
 VDBIconLibrary VDBIconLibrary jv:vdb 'VDB-UI-Support' 0
 VDBVirtualMemoryMap VDBVirtualMemoryMap jv:vdb 'VDB-Tools' 0
 VDBVirtualMemoryRegion VDBVirtualMemoryRegion jv:vdb 'VDB-Tools' 0
--- a/application/application.nsi	Wed Mar 14 10:22:11 2018 +0000
+++ b/application/application.nsi	Wed Mar 21 23:06:02 2018 +0000
@@ -3,7 +3,7 @@
 
 !define PRODUCT_NAME "Visual / VM Debugger"
 !define PRODUCT_FILENAME "Visual___VM_Debugger"
-!define PRODUCT_VERSION "6.2.6.0"
+!define PRODUCT_VERSION "8.0.0.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}"
@@ -66,7 +66,7 @@
 VIProductVersion "${PRODUCT_VERSION}.0"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${PRODUCT_NAME}"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${PRODUCT_PUBLISHER}"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "6.2.32767.32767"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "8.0.32767.32767"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "${PRODUCT_NAME} Installer"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${PRODUCT_VERSION}"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (C) Jan Vrany 2015-now"
--- a/application/autopackage/default.apspec	Wed Mar 14 10:22:11 2018 +0000
+++ b/application/autopackage/default.apspec	Wed Mar 21 23:06:02 2018 +0000
@@ -1,7 +1,7 @@
 # -*- shell-script -*-
 [Meta]
 ShortName: vdb.do
-SoftwareVersion: 6.2.6.0
+SoftwareVersion: 8.0.0.0
 DisplayName: Visual / VM Debugger
 RootName: Visual / VM Debugger
 Summary: Visual / VM Debugger
--- a/application/osx/Info.plist	Wed Mar 14 10:22:11 2018 +0000
+++ b/application/osx/Info.plist	Wed Mar 21 23:06:02 2018 +0000
@@ -2,21 +2,21 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTP PLIST 1.0//EN" "http//www.apple.com/DTDs/ProperyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-<key>CFBundleName</key>
+<key>CFBundlePackageType</key>
+<string>APPL</string>
+<key>CFBundleExecutable</key>
 <string>vdb.do</string>
 <key>CFBundleShortVersionString</key>
-<string>6.2.32767.32767</string>
-<key>CFBundlePackageType</key>
-<string>APPL</string>
-<key>CFBundleIdentifier</key>
-<string>jv.vdb</string>
-<key>CFBundleVersion</key>
-<string>6.2.32767.32767</string>
+<string>8.0.32767.32767</string>
+<key>CFBundleName</key>
+<string>vdb.do</string>
 <key>CFBundleInfoDictionaryVersion</key>
 <string>6.0</string>
 <key>LSMinimumSystemVersion</key>
 <string>10.6</string>
-<key>CFBundleExecutable</key>
-<string>vdb.do</string>
+<key>CFBundleIdentifier</key>
+<string>jv.vdb</string>
+<key>CFBundleVersion</key>
+<string>8.0.32767.32767</string>
 </dict>
 </plist>
--- a/bc.mak	Wed Mar 14 10:22:11 2018 +0000
+++ b/bc.mak	Wed Mar 21 23:06:02 2018 +0000
@@ -78,6 +78,7 @@
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)VDBAbstractApplication.$(O) VDBAbstractApplication.$(C) VDBAbstractApplication.$(H): VDBAbstractApplication.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBAbstractPresenter.$(O) VDBAbstractPresenter.$(C) VDBAbstractPresenter.$(H): VDBAbstractPresenter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\AbstractHierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)VDBEvaluator.$(O) VDBEvaluator.$(C) VDBEvaluator.$(H): VDBEvaluator.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)VDBIconLibrary.$(O) VDBIconLibrary.$(C) VDBIconLibrary.$(H): VDBIconLibrary.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryMap.$(O) VDBVirtualMemoryMap.$(C) VDBVirtualMemoryMap.$(H): VDBVirtualMemoryMap.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryRegion.$(O) VDBVirtualMemoryRegion.$(C) VDBVirtualMemoryRegion.$(H): VDBVirtualMemoryRegion.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/jv_vdb.st	Wed Mar 14 10:22:11 2018 +0000
+++ b/jv_vdb.st	Wed Mar 21 23:06:02 2018 +0000
@@ -101,6 +101,7 @@
         "<className> or (<className> attributes...) in load order"
         VDBAbstractApplication
         VDBAbstractPresenter
+        VDBEvaluator
         VDBIconLibrary
         VDBVirtualMemoryMap
         VDBVirtualMemoryRegion
--- a/libInit.cc	Wed Mar 14 10:22:11 2018 +0000
+++ b/libInit.cc	Wed Mar 21 23:06:02 2018 +0000
@@ -18,6 +18,7 @@
 
 extern void _VDBAbstractApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBAbstractPresenter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _VDBEvaluator_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBIconLibrary_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBVirtualMemoryMap_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBVirtualMemoryRegion_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -60,6 +61,7 @@
   __BEGIN_PACKAGE2__("libjv_vdb", _libjv_vdb_Init, "jv:vdb");
     _VDBAbstractApplication_Init(pass,__pRT__,snd);
     _VDBAbstractPresenter_Init(pass,__pRT__,snd);
+    _VDBEvaluator_Init(pass,__pRT__,snd);
     _VDBIconLibrary_Init(pass,__pRT__,snd);
     _VDBVirtualMemoryMap_Init(pass,__pRT__,snd);
     _VDBVirtualMemoryRegion_Init(pass,__pRT__,snd);