Add `VDBTerminalView` used on with PTYs
The reason is that stock `TerminalView` closes streams when the view
is closed (destoryed). This is *NOT* what we want - application provides
opened stream and application is responsible for closing then.
In this particular case, closing the PTY causes GDB to exit. This is not
what we want - for example when reopening the UI or switching layout, old
debugger console view is destoyed and ew one attached to the same PTY.
Since there's no way to configure this behavior in `TerminalView`, we introduce
new VDB-specific subclass with desired behavior.
--- a/Make.proto Tue Jun 11 11:44:32 2019 +0100
+++ b/Make.proto Wed Jun 12 15:16:33 2019 +0100
@@ -144,6 +144,7 @@
$(OUTDIR)VDBSettingsApplication.$(O) VDBSettingsApplication.$(C) VDBSettingsApplication.$(H): VDBSettingsApplication.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
$(OUTDIR)VDBSimpleConsoleView.$(O) VDBSimpleConsoleView.$(C) VDBSimpleConsoleView.$(H): VDBSimpleConsoleView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(STCHDR)
$(OUTDIR)VDBStartup.$(O) VDBStartup.$(C) VDBStartup.$(H): VDBStartup.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/StandaloneStartup.$(H) $(STCHDR)
+$(OUTDIR)VDBTerminalView.$(O) VDBTerminalView.$(C) VDBTerminalView.$(H): VDBTerminalView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg2/TerminalView.$(H) $(INCLUDE_TOP)/stx/libwidg2/VT100TerminalView.$(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)
$(OUTDIR)jv_vdb.$(O) jv_vdb.$(C) 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)
--- a/Make.spec Tue Jun 11 11:44:32 2019 +0100
+++ b/Make.spec Wed Jun 12 15:16:33 2019 +0100
@@ -61,6 +61,7 @@
VDBSettingsApplication \
VDBSimpleConsoleView \
VDBStartup \
+ VDBTerminalView \
VDBVirtualMemoryMap \
VDBVirtualMemoryRegion \
jv_vdb \
@@ -113,6 +114,7 @@
$(OUTDIR)VDBSettingsApplication.$(O) \
$(OUTDIR)VDBSimpleConsoleView.$(O) \
$(OUTDIR)VDBStartup.$(O) \
+ $(OUTDIR)VDBTerminalView.$(O) \
$(OUTDIR)VDBVirtualMemoryMap.$(O) \
$(OUTDIR)VDBVirtualMemoryRegion.$(O) \
$(OUTDIR)jv_vdb.$(O) \
--- a/VDBAbstractUnixConsoleApplication.st Tue Jun 11 11:44:32 2019 +0100
+++ b/VDBAbstractUnixConsoleApplication.st Wed Jun 12 15:16:33 2019 +0100
@@ -78,9 +78,10 @@
!VDBAbstractUnixConsoleApplication methodsFor:'aspects'!
consoleViewClass
- ^ VT100TerminalView
+ ^ VDBTerminalView
"Created: / 21-01-2019 / 14:23:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 12-06-2019 / 12:58:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!VDBAbstractUnixConsoleApplication methodsFor:'initialization & release'!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBTerminalView.st Wed Jun 12 15:16:33 2019 +0100
@@ -0,0 +1,41 @@
+"
+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 }"
+
+VT100TerminalView subclass:#VDBTerminalView
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'VDB-UI-Console-Unix'
+!
+
+!VDBTerminalView 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/
+"
+! !
+
+!VDBTerminalView methodsFor:'initialization & release'!
+
+closeStreams
+ "Do nothing here, streams should be closed by an application,
+ not the view!!"
+
+ "Created: / 12-06-2019 / 12:57:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/abbrev.stc Tue Jun 11 11:44:32 2019 +0100
+++ b/abbrev.stc Wed Jun 12 15:16:33 2019 +0100
@@ -11,6 +11,7 @@
VDBSettingsApplication VDBSettingsApplication jv:vdb 'VDB-UI-Others' 2
VDBSimpleConsoleView VDBSimpleConsoleView jv:vdb 'VDB-UI-Console' 2
VDBStartup VDBStartup jv:vdb 'VDB-UI' 1
+VDBTerminalView VDBTerminalView jv:vdb 'VDB-UI-Console-Unix' 2
VDBVirtualMemoryMap VDBVirtualMemoryMap jv:vdb 'VDB-Tools' 0
VDBVirtualMemoryRegion VDBVirtualMemoryRegion jv:vdb 'VDB-Tools' 0
jv_vdb jv_vdb jv:vdb '* Projects & Packages *' 3
@@ -38,12 +39,12 @@
VDBSimpleDebuggerConsoleApplication VDBSimpleDebuggerConsoleApplication jv:vdb 'VDB-UI-Console' 2
VDBTabbingContainer VDBTabbingContainer jv:vdb 'VDB-UI-Containers' 2
VDBAbstractTreeApplication VDBAbstractTreeApplication jv:vdb 'VDB-UI-Abstract' 2
-VDBBreakpointListApplication VDBBreakpointListApplication jv:vdb 'VDB-UI-Others' 2
VDBFrameApplication VDBFrameApplication jv:vdb 'VDB-UI-Others' 2
VDBSourceAndDisassemblyApplication VDBSourceAndDisassemblyApplication jv:vdb 'VDB-UI-Source' 2
VDBUnixDebuggerConsoleApplication VDBUnixDebuggerConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
VDBUnixInferiorConsoleApplication VDBUnixInferiorConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
VDBUnixReplayServerConsoleApplication VDBUnixReplayServerConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
+VDBBreakpointListApplication VDBBreakpointListApplication jv:vdb 'VDB-UI-Others' 2
VDBInstructionListApplication VDBInstructionListApplication jv:vdb 'VDB-UI-Others' 2
VDBRegisterListApplication VDBRegisterListApplication jv:vdb 'VDB-UI-Others' 2
VDBStackApplication VDBStackApplication jv:vdb 'VDB-UI-Others' 2
--- a/bc.mak Tue Jun 11 11:44:32 2019 +0100
+++ b/bc.mak Wed Jun 12 15:16:33 2019 +0100
@@ -91,6 +91,7 @@
$(OUTDIR)VDBSettingsApplication.$(O) VDBSettingsApplication.$(C) VDBSettingsApplication.$(H): VDBSettingsApplication.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
$(OUTDIR)VDBSimpleConsoleView.$(O) VDBSimpleConsoleView.$(C) VDBSimpleConsoleView.$(H): VDBSimpleConsoleView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
$(OUTDIR)VDBStartup.$(O) VDBStartup.$(C) VDBStartup.$(H): VDBStartup.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\StandaloneStartup.$(H) $(STCHDR)
+$(OUTDIR)VDBTerminalView.$(O) VDBTerminalView.$(C) VDBTerminalView.$(H): VDBTerminalView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg2\TerminalView.$(H) $(INCLUDE_TOP)\stx\libwidg2\VT100TerminalView.$(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)
$(OUTDIR)jv_vdb.$(O) jv_vdb.$(C) 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)
--- a/jv_vdb.st Tue Jun 11 11:44:32 2019 +0100
+++ b/jv_vdb.st Wed Jun 12 15:16:33 2019 +0100
@@ -110,6 +110,7 @@
VDBSettingsApplication
VDBSimpleConsoleView
VDBStartup
+ VDBTerminalView
VDBVirtualMemoryMap
VDBVirtualMemoryRegion
#'jv_vdb'
@@ -137,12 +138,12 @@
VDBSimpleDebuggerConsoleApplication
VDBTabbingContainer
VDBAbstractTreeApplication
- VDBBreakpointListApplication
VDBFrameApplication
VDBSourceAndDisassemblyApplication
VDBUnixDebuggerConsoleApplication
VDBUnixInferiorConsoleApplication
VDBUnixReplayServerConsoleApplication
+ VDBBreakpointListApplication
VDBInstructionListApplication
VDBRegisterListApplication
VDBStackApplication
--- a/libInit.cc Tue Jun 11 11:44:32 2019 +0100
+++ b/libInit.cc Wed Jun 12 15:16:33 2019 +0100
@@ -26,6 +26,7 @@
extern void _VDBSettingsApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBSimpleConsoleView_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBStartup_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _VDBTerminalView_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);
extern void _jv_137vdb_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -87,6 +88,7 @@
_VDBSettingsApplication_Init(pass,__pRT__,snd);
_VDBSimpleConsoleView_Init(pass,__pRT__,snd);
_VDBStartup_Init(pass,__pRT__,snd);
+ _VDBTerminalView_Init(pass,__pRT__,snd);
_VDBVirtualMemoryMap_Init(pass,__pRT__,snd);
_VDBVirtualMemoryRegion_Init(pass,__pRT__,snd);
_jv_137vdb_Init(pass,__pRT__,snd);