# HG changeset patch # User Jan Vrany # Date 1560348993 -3600 # Node ID 807f5f62c910ed1d509f8d03110367fc590c0ea3 # Parent 6a4863394260dc59dc1c274c5dfc530154d783c1 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. diff -r 6a4863394260 -r 807f5f62c910 Make.proto --- 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) diff -r 6a4863394260 -r 807f5f62c910 Make.spec --- 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) \ diff -r 6a4863394260 -r 807f5f62c910 VDBAbstractUnixConsoleApplication.st --- 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 " + "Modified: / 12-06-2019 / 12:58:04 / Jan Vrany " ! ! !VDBAbstractUnixConsoleApplication methodsFor:'initialization & release'! diff -r 6a4863394260 -r 807f5f62c910 VDBTerminalView.st --- /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 " +! ! + diff -r 6a4863394260 -r 807f5f62c910 abbrev.stc --- 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 diff -r 6a4863394260 -r 807f5f62c910 bc.mak --- 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) diff -r 6a4863394260 -r 807f5f62c910 jv_vdb.st --- 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 diff -r 6a4863394260 -r 807f5f62c910 libInit.cc --- 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);