--- a/Make.proto Fri Jul 06 11:19:41 2018 +0100
+++ b/Make.proto Fri Jul 27 07:58:24 2018 +0100
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/jv/libgdbs -I$(INCLUDE_TOP)/stx/goodies/xml/vw -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libtool2 -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/jv/libgdbs -I$(INCLUDE_TOP)/stx/goodies/announcements -I$(INCLUDE_TOP)/stx/goodies/xml/vw -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libtool2 -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
# if you need any additional defines for embedded C code,
@@ -134,6 +134,8 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)RR.$(O) RR.$(C) RR.$(H): RR.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)RREvent.$(O) RREvent.$(C) RREvent.$(H): RREvent.st $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(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)
@@ -144,6 +146,8 @@
$(OUTDIR)VDBVirtualMemoryRegion.$(O) VDBVirtualMemoryRegion.$(C) VDBVirtualMemoryRegion.$(H): VDBVirtualMemoryRegion.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)VDBWindowsDebuggerConsoleView.$(O) VDBWindowsDebuggerConsoleView.$(C) VDBWindowsDebuggerConsoleView.$(H): VDBWindowsDebuggerConsoleView.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) $(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)
+$(OUTDIR)RRExitEvent.$(O) RRExitEvent.$(C) RRExitEvent.$(H): RRExitEvent.st $(INCLUDE_TOP)/jv/vdb/RREvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)RRStartEvent.$(O) RRStartEvent.$(C) RRStartEvent.$(H): RRStartEvent.st $(INCLUDE_TOP)/jv/vdb/RREvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)VDBAbstractContainer.$(O) VDBAbstractContainer.$(C) 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.$(C) 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)VDBAbstractUnixConsoleApplication.$(O) VDBAbstractUnixConsoleApplication.$(C) VDBAbstractUnixConsoleApplication.$(H): VDBAbstractUnixConsoleApplication.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)
@@ -166,10 +170,11 @@
$(OUTDIR)VDBTabbingContainer.$(O) VDBTabbingContainer.$(C) 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)VDBUnixDebuggerConsoleApplication.$(O) VDBUnixDebuggerConsoleApplication.$(C) VDBUnixDebuggerConsoleApplication.$(H): VDBUnixDebuggerConsoleApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractUnixConsoleApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
$(OUTDIR)VDBUnixInferiorConsoleApplication.$(O) VDBUnixInferiorConsoleApplication.$(C) VDBUnixInferiorConsoleApplication.$(H): VDBUnixInferiorConsoleApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractUnixConsoleApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
+$(OUTDIR)VDBUnixReplayServerConsoleApplication.$(O) VDBUnixReplayServerConsoleApplication.$(C) VDBUnixReplayServerConsoleApplication.$(H): VDBUnixReplayServerConsoleApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractUnixConsoleApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
$(OUTDIR)VDBInstructionListApplication.$(O) VDBInstructionListApplication.$(C) VDBInstructionListApplication.$(H): VDBInstructionListApplication.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.$(C) 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)
$(OUTDIR)VDBVariableObjectListApplication.$(O) VDBVariableObjectListApplication.$(C) VDBVariableObjectListApplication.$(H): VDBVariableObjectListApplication.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)extensions.$(O): extensions.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebuggerObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBVariableObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebugger.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBDebuggerObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBVariableObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec Fri Jul 06 11:19:41 2018 +0100
+++ b/Make.spec Fri Jul 27 07:58:24 2018 +0100
@@ -51,6 +51,8 @@
STCWARNINGS=-warnNonStandard
COMMON_CLASSES= \
+ RR \
+ RREvent \
VDBAbstractApplication \
VDBAbstractPresenter \
VDBEvaluator \
@@ -61,6 +63,8 @@
VDBVirtualMemoryRegion \
VDBWindowsDebuggerConsoleView \
jv_vdb \
+ RRExitEvent \
+ RRStartEvent \
VDBAbstractContainer \
VDBAbstractListApplication \
VDBAbstractUnixConsoleApplication \
@@ -83,6 +87,7 @@
VDBTabbingContainer \
VDBUnixDebuggerConsoleApplication \
VDBUnixInferiorConsoleApplication \
+ VDBUnixReplayServerConsoleApplication \
VDBInstructionListApplication \
VDBStackApplication \
VDBVariableObjectListApplication \
@@ -91,6 +96,8 @@
COMMON_OBJS= \
+ $(OUTDIR)RR.$(O) \
+ $(OUTDIR)RREvent.$(O) \
$(OUTDIR)VDBAbstractApplication.$(O) \
$(OUTDIR)VDBAbstractPresenter.$(O) \
$(OUTDIR)VDBEvaluator.$(O) \
@@ -101,6 +108,8 @@
$(OUTDIR)VDBVirtualMemoryRegion.$(O) \
$(OUTDIR)VDBWindowsDebuggerConsoleView.$(O) \
$(OUTDIR)jv_vdb.$(O) \
+ $(OUTDIR)RRExitEvent.$(O) \
+ $(OUTDIR)RRStartEvent.$(O) \
$(OUTDIR)VDBAbstractContainer.$(O) \
$(OUTDIR)VDBAbstractListApplication.$(O) \
$(OUTDIR)VDBAbstractUnixConsoleApplication.$(O) \
@@ -123,6 +132,7 @@
$(OUTDIR)VDBTabbingContainer.$(O) \
$(OUTDIR)VDBUnixDebuggerConsoleApplication.$(O) \
$(OUTDIR)VDBUnixInferiorConsoleApplication.$(O) \
+ $(OUTDIR)VDBUnixReplayServerConsoleApplication.$(O) \
$(OUTDIR)VDBInstructionListApplication.$(O) \
$(OUTDIR)VDBStackApplication.$(O) \
$(OUTDIR)VDBVariableObjectListApplication.$(O) \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RR.st Fri Jul 27 07:58:24 2018 +0100
@@ -0,0 +1,211 @@
+"
+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:#RR
+ instanceVariableNames:'port pty pid announcer'
+ classVariableNames:'RRExecutable RRPort'
+ poolDictionaries:''
+ category:'RR'
+!
+
+!RR 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/
+"
+!
+
+documentation
+"
+ Class `RR` represents a Smalltalk inteface to
+ Mozilla rr
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+ https://rr-project.org/
+
+"
+! !
+
+!RR class methodsFor:'initialization'!
+
+initialize
+ "Invoked at system start or when the class is dynamically loaded."
+
+ "/ please change as required (and remove this comment)
+
+ RRExecutable := nil. "/ nil means default
+ RRPort := 9876
+
+ "Modified: / 27-07-2018 / 07:40:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+!
+
+replay
+ ^ self new
+
+ "Created: / 26-07-2018 / 16:53:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR class methodsFor:'accessing'!
+
+executable
+ ^ RRExecutable ? (OperatingSystem pathOfCommand:'rr')
+
+ "Created: / 26-07-2018 / 21:55:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+executable: aString
+ RRExecutable := aString
+
+ "Created: / 26-07-2018 / 21:54:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR class methodsFor:'queries'!
+
+available
+ | exe |
+
+ exe := self executable.
+ ^ exe notNil and:[ OperatingSystem canExecuteCommand: exe ]
+
+ "
+ RR available
+ "
+
+ "Created: / 26-07-2018 / 21:56:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR methodsFor:'accessing'!
+
+announcer
+ ^ announcer
+!
+
+consoleInput
+ ^ pty master
+
+ "Created: / 26-07-2018 / 16:56:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+consoleOutput
+ ^ pty master
+
+ "Created: / 26-07-2018 / 16:56:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+port
+ ^ port
+
+ "Created: / 26-07-2018 / 22:11:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR methodsFor:'initialization'!
+
+initialize
+ "Invoked when a new instance is created."
+
+ announcer := Announcer new.
+
+ "Modified: / 31-07-2018 / 08:29:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR methodsFor:'private'!
+
+exited:status
+ pid := nil.
+ announcer announce:((RRExitEvent new)
+ setRR:self;
+ setStatus:status).
+ pty release.
+ pty := nil.
+ port := nil
+
+ "Created: / 26-07-2018 / 17:03:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-07-2018 / 08:34:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR methodsFor:'queries'!
+
+running
+ "Return true, if RR replay server is running"
+
+ ^ pid notNil
+
+ "Created: / 27-07-2018 / 07:42:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!RR methodsFor:'start & stop'!
+
+start
+ | args |
+
+ pty := GDBPTY new.
+ port := RRPort.
+ RRPort := RRPort + 1.
+ args := Array
+ with:(OperatingSystem pathOfCommand:'rr')
+ with:'replay'
+ with:'-s'
+ with:port printString.
+ Processor
+ monitor:[
+ pid := OperatingSystem
+ exec:args first
+ withArguments:args
+ environment:OperatingSystem getEnvironment
+ fileDescriptors:{
+ pty slave fileDescriptor.
+ pty slave fileDescriptor.
+ pty slave fileDescriptor
+ }
+ fork:true
+ newPgrp:false
+ inDirectory:Filename currentDirectory
+ showWindow:false.
+ pid.
+ ]
+ action:[:stat | self exited:stat ].
+ pid isNil ifTrue:[
+ pty close.
+ self error:'Failed to launch gdb'.
+ ].
+ announcer announce:(RRStartEvent new setRR:self)
+!
+
+stop
+ OperatingSystem sendSignal:(OperatingSystem sigTERM) to:pid toGroup:false toAll:false.
+
+ "Created: / 26-07-2018 / 21:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+
+RR initialize!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RREvent.st Fri Jul 27 07:58:24 2018 +0100
@@ -0,0 +1,46 @@
+"
+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 }"
+
+Announcement subclass:#RREvent
+ instanceVariableNames:'rr'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'RR'
+!
+
+!RREvent 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/
+"
+! !
+
+!RREvent methodsFor:'accessing'!
+
+rr
+ ^ rr
+! !
+
+!RREvent methodsFor:'initialization'!
+
+setRR: aRR
+ rr := aRR
+
+ "Created: / 31-07-2018 / 08:33:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RRExitEvent.st Fri Jul 27 07:58:24 2018 +0100
@@ -0,0 +1,46 @@
+"
+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 }"
+
+RREvent subclass:#RRExitEvent
+ instanceVariableNames:'status'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'RR'
+!
+
+!RRExitEvent 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/
+"
+! !
+
+!RRExitEvent methodsFor:'accessing'!
+
+status
+ ^ status
+! !
+
+!RRExitEvent methodsFor:'initialization'!
+
+setStatus: anObject
+ status := anObject
+
+ "Created: / 31-07-2018 / 08:33:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RRStartEvent.st Fri Jul 27 07:58:24 2018 +0100
@@ -0,0 +1,32 @@
+"
+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 }"
+
+RREvent subclass:#RRStartEvent
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'RR'
+!
+
+!RRStartEvent 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/
+"
+! !
+
--- a/VDBDebuggerApplication.st Fri Jul 06 11:19:41 2018 +0100
+++ b/VDBDebuggerApplication.st Fri Jul 27 07:58:24 2018 +0100
@@ -449,19 +449,32 @@
(
(MenuItem
label: 'File'
+ isVisible: true
submenu:
(Menu
(
(MenuItem
label: 'Open Executable'
itemValue: doOpenExecutable
+ isVisible: true
)
(MenuItem
label: '-'
)
(MenuItem
+ enabled: canAttachToRR
+ label: 'Attach to Replay Server'
+ itemValue: doAttachToRR
+ isVisible: true
+ )
+ (MenuItem
+ label: '-'
+ isVisible: true
+ )
+ (MenuItem
label: 'Quit'
itemValue: doQuit
+ isVisible: true
)
)
nil
@@ -470,45 +483,54 @@
)
(MenuItem
label: 'Run'
+ isVisible: true
submenuChannel: execMenu
)
(MenuItem
label: 'View'
+ isVisible: true
submenu:
(Menu
(
(MenuItem
label: 'Stack'
itemValue: doOpenToolApplicationClass:
+ isVisible: true
argument: VDBStackApplication
)
(MenuItem
label: 'Frame'
itemValue: doOpenToolApplicationClass:
+ isVisible: true
argument: VDBFrameApplication
)
(MenuItem
label: 'Breakpoints'
itemValue: doOpenToolApplicationClass:
+ isVisible: true
argument: VDBBreakpointListApplication
)
(MenuItem
label: 'Memory'
itemValue: doOpenToolApplicationClass:
+ isVisible: true
argument: VDBMemoryApplication
)
(MenuItem
label: '-'
+ isVisible: true
)
(MenuItem
enabled: canViewEnableFrameFilters
label: 'Enable Frame Filters'
itemValue: doViewEnableFrameFilters
+ isVisible: true
)
(MenuItem
enabled: canViewEnablePrettyPrinting
label: 'Enable Pretty Printing'
itemValue: doViewEnablePrettyPrinting
+ isVisible: true
)
)
nil
@@ -518,27 +540,33 @@
(MenuItem
label: 'Debug'
startGroup: right
+ isVisible: true
submenu:
(Menu
(
(MenuItem
label: 'Inspect Debugger'
itemValue: doInspectDebugger
+ isVisible: true
)
(MenuItem
label: 'Inspect Session Record'
itemValue: doInspectSessionRecord
+ isVisible: true
)
(MenuItem
label: '-'
+ isVisible: true
)
(MenuItem
label: 'Reopen'
itemValue: doDebugReopenDebugger
+ isVisible: true
)
(MenuItem
label: 'Launcher'
itemValue: doDebugReopenLauncher
+ isVisible: true
)
)
nil
@@ -549,8 +577,6 @@
nil
nil
)
-
- "Modified: / 14-03-2018 / 09:46:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
toolbarMenu
@@ -942,6 +968,17 @@
"Modified: / 02-02-2018 / 21:02:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+onRRExitEvent: anRRExitEvent
+ anRRExitEvent rr announcer unsubscribe: self.
+
+ "Created: / 03-08-2018 / 13:29:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+onRRStartEvent: anRRStartEvent
+
+ "Created: / 03-08-2018 / 13:38:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
onRunningEvent: aGDBStoppedEvent
self updateButtonEnablements
@@ -1028,6 +1065,26 @@
!VDBDebuggerApplication methodsFor:'menu actions'!
+doAttachToRR
+ self doAttachToRR: RR replay.
+
+ "Modified: / 03-08-2018 / 13:33:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+doAttachToRR: rr
+ rr announcer
+ when: RRStartEvent send: #onRRStartEvent: to: self;
+ when: RRExitEvent send: #onRRExitEvent: to: self.
+ rr start.
+ (VDBUnixReplayServerConsoleApplication new)
+ debugger:debugger;
+ rr:rr;
+ open.
+ debugger targetConnectRR:rr.
+
+ "Created: / 03-08-2018 / 13:33:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
doDebugReopenDebugger
| d |
@@ -1156,6 +1213,12 @@
!VDBDebuggerApplication methodsFor:'menu apects'!
+canAttachToRR
+ ^ RR available
+
+ "Modified: / 26-07-2018 / 22:00:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
canViewEnableFrameFilters
^ [ debugger isFrameFiltersEnabled not ]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBUnixReplayServerConsoleApplication.st Fri Jul 27 07:58:24 2018 +0100
@@ -0,0 +1,229 @@
+"
+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 }"
+
+VDBAbstractUnixConsoleApplication subclass:#VDBUnixReplayServerConsoleApplication
+ instanceVariableNames:'rrHolder rr'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'VDB-UI-Console-Unix'
+!
+
+!VDBUnixReplayServerConsoleApplication 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/
+"
+! !
+
+!VDBUnixReplayServerConsoleApplication class methodsFor:'accessing'!
+
+windowTitle
+ ^ 'Replay Console'
+
+ "Created: / 26-07-2018 / 17:12:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'accessing'!
+
+consoleInput
+ "superclass VDBAbstractConsoleApplication says that I am responsible to implement this method"
+
+ ^ rr consoleInput
+
+ "Modified: / 26-07-2018 / 17:14:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+consoleOutput
+ "superclass VDBAbstractConsoleApplication says that I am responsible to implement this method"
+
+ ^ rr consoleOutput
+
+ "Modified: / 26-07-2018 / 17:14:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'acessing'!
+
+rr
+ ^ rr
+
+ "Created: / 26-07-2018 / 17:17:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+rr: aRR
+ self rrHolder value: aRR
+
+ "Created: / 26-07-2018 / 17:17:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'aspects'!
+
+consoleView
+ consoleView isNil ifTrue:[
+ consoleView :=VT100TerminalView new.
+ consoleView foregroundColor: Color white
+ backgroundColor: Color black;
+ cursorForegroundColor: Color white
+ backgroundColor: Color white.
+ rr notNil ifTrue:[
+ consoleView inStream: self consoleInput.
+ consoleView outStream: self consoleOutput.
+ consoleView startReaderProcessWhenVisible.
+ ].
+ ].
+ ^ consoleView
+
+ "Created: / 26-07-2018 / 20:27:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+rrHolder
+ "return/create the 'debuggerHolder' value holder (automatically generated)"
+
+ rrHolder isNil ifTrue:[
+ rrHolder := ValueHolder new.
+ rrHolder addDependent:self.
+ ].
+ ^ rrHolder
+
+ "Created: / 26-07-2018 / 17:17:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+rrHolder:aValueModel
+ "set the 'debuggerHolder' value holder (automatically generated)"
+
+ |oldValue newValue|
+
+ rrHolder notNil ifTrue:[
+ oldValue := rrHolder value.
+ rrHolder removeDependent:self.
+ ].
+ rrHolder := aValueModel.
+ rrHolder notNil ifTrue:[
+ rrHolder addDependent:self.
+ ].
+ newValue := rrHolder value.
+ oldValue ~~ newValue ifTrue:[
+ self update:#value with:newValue from:rrHolder.
+ ].
+
+ "Created: / 26-07-2018 / 17:18:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+ changedObject == rrHolder ifTrue:[
+ rrHolder value == rr ifFalse:[
+ rr notNil ifTrue:[
+ self unsubscribe.
+ ].
+ rr := rrHolder value.
+ rr notNil ifTrue:[
+ self subscribe.
+ ].
+ ].
+ ^ self.
+ ].
+ super update:something with:aParameter from:changedObject
+
+ "Created: / 26-07-2018 / 17:19:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'event handling'!
+
+onRRExitEvent: anRRTerminaedEvent
+ consoleView notNil ifTrue:[
+ | status info |
+ status := anRRTerminaedEvent status.
+ consoleView cr.
+ (status success or:[status status == #signal and:[status code == UnixOperatingSystem sigTERM]]) ifTrue:[
+ info := resources string: '>> replay server terminated'
+ ] ifFalse:[status isError ifTrue:[
+ info := resources string: '>> replay server terminated (with status %1)' with: anRRTerminaedEvent status code.
+ ] ifFalse:[status status == #signal ifTrue:[
+ info := resources string: '>> replay server crashed (signal %1)' with: anRRTerminaedEvent status code.
+ ]]].
+ consoleView nextPutLine: (info asText allBold colorizeAllWith:Color red).
+ ].
+
+ "Created: / 31-07-2018 / 08:52:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+onRRStartEvent: anRRStartedEvent
+
+ "Created: / 31-07-2018 / 08:52:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'initialization & release'!
+
+subscribe
+ "Register for debugger events. To be overrided by subclasses"
+
+ super subscribe.
+ rr notNil ifTrue:[
+ (rr announcer)
+ when:RRStartEvent
+ send:#onRRStartEvent:
+ to:self;
+ when:RRExitEvent
+ send:#onRRExitEvent:
+ to:self.
+ consoleView notNil ifTrue:[
+ consoleView stopReaderProcess.
+ consoleView inStream:self consoleInput.
+ consoleView outStream:self consoleOutput.
+ consoleView startReaderProcessWhenVisible.
+ ].
+ ].
+
+ "Created: / 26-07-2018 / 17:19:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-07-2018 / 08:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+unsubscribe
+ "Unsubscribe myself fo debugger events"
+
+ super unsubscribe.
+ rr notNil ifTrue:[
+ rr announcer unsubscribe: self.
+ ].
+ consoleView notNil ifTrue:[
+ consoleView stopReaderProcess.
+ consoleView inStream: nil.
+ consoleView outStream: nil.
+ ].
+
+ "Created: / 26-07-2018 / 17:20:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-07-2018 / 08:38:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBUnixReplayServerConsoleApplication methodsFor:'startup & release'!
+
+closeRequest
+ (rr notNil and:[ rr running ]) ifTrue:[
+ (Dialog confirm: (resources string: 'Replay Server is running. Stop server and close?')) ifFalse:[
+ ^ self.
+ ].
+ rr stop.
+ ].
+ ^ super closeRequest.
+
+ "Created: / 27-07-2018 / 07:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/abbrev.stc Fri Jul 06 11:19:41 2018 +0100
+++ b/abbrev.stc Fri Jul 27 07:58:24 2018 +0100
@@ -1,6 +1,8 @@
# automagically generated by the project definition
# this file is needed for stc to be able to compile modules independently.
# it provides information about a classes filename, category and especially namespace.
+RR RR jv:vdb 'RR' 0
+RREvent RREvent jv:vdb 'RR' 0
VDBAbstractApplication VDBAbstractApplication jv:vdb 'VDB-UI-Abstract' 2
VDBAbstractPresenter VDBAbstractPresenter jv:vdb 'VDB-Presentation' 0
VDBEvaluator VDBEvaluator jv:vdb 'VDB-Tools' 0
@@ -11,6 +13,8 @@
VDBVirtualMemoryRegion VDBVirtualMemoryRegion jv:vdb 'VDB-Tools' 0
VDBWindowsDebuggerConsoleView VDBWindowsDebuggerConsoleView jv:vdb 'VDB-UI-Console-Windows' 2
jv_vdb jv_vdb jv:vdb '* Projects & Packages *' 3
+RRExitEvent RRExitEvent jv:vdb 'RR' 0
+RRStartEvent RRStartEvent jv:vdb 'RR' 0
VDBAbstractContainer VDBAbstractContainer jv:vdb 'VDB-UI-Abstract' 2
VDBAbstractListApplication VDBAbstractListApplication jv:vdb 'VDB-UI-Abstract' 2
VDBAbstractUnixConsoleApplication VDBAbstractUnixConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
@@ -33,6 +37,7 @@
VDBTabbingContainer VDBTabbingContainer jv:vdb 'VDB-UI-Containers' 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
VDBInstructionListApplication VDBInstructionListApplication jv:vdb 'VDB-UI-Others' 2
VDBStackApplication VDBStackApplication jv:vdb 'VDB-UI-Others' 2
VDBVariableObjectListApplication VDBVariableObjectListApplication jv:vdb 'VDB-UI-Others' 2
--- a/application/Make.proto Fri Jul 06 11:19:41 2018 +0100
+++ b/application/Make.proto Fri Jul 27 07:58:24 2018 +0100
@@ -69,6 +69,7 @@
libstx_libview \
libstx_libui \
libstx_libview2 \
+ libstx_goodies_sunit \
libstx_libwidg \
libstx_goodies_magritte \
libstx_libhtml \
@@ -91,6 +92,7 @@
$(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) \
@@ -113,6 +115,7 @@
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) \
@@ -437,6 +440,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/VDBStartup.st Fri Jul 06 11:19:41 2018 +0100
+++ b/application/VDBStartup.st Fri Jul 27 07:58:24 2018 +0100
@@ -90,9 +90,12 @@
main:argv
"Application entry point. `argv` is the array of command arguments (as Array of Strings)"
- | optparser positional settingsFile settingsSuppressed programExecutable programArgs programPid attach debugger |
+ | optparser positional settingsFile settingsSuppressed replay
+ programExecutable programArgs programPid attach
+ debugger debuggerApp |
settingsSuppressed := false.
+ replay := false.
attach := false.
"/ Parse options...
@@ -116,6 +119,9 @@
on: #('--no-preferences') do:[
settingsSuppressed := true
];
+ on: #('--replay') do:[
+ replay := true
+ ];
yourself.
[
positional := optparser parse:argv.
@@ -145,6 +151,15 @@
UserPreferences setCurrent: settings.
].
+ replay ifTrue:[
+ OperatingSystem isLinuxLike ifFalse:[
+ self error: 'replay not supported on this platform'.
+ ].
+ RR available ifFalse:[
+ self error: 'cannot replay because rr not available'
+ ].
+ ].
+
"/ Parse positional arguments - there are two forms:
"/
"/ vdb [OPTIONS] [PROGRAM [ARGS]]
@@ -156,21 +171,34 @@
positional notEmpty ifTrue:[
programExecutable := positional first.
programExecutable asFilename exists ifFalse:[
- programExecutable := OperatingSystem pathOfCommand: programExecutable.
+ "Try to find the executable in PATH..."
+
+ | path |
+
+ path := OperatingSystem pathOfCommand: programExecutable.
+ path notNil ifTrue:[
+ programExecutable := path.
+ ].
].
programPid := Integer fromString: positional first onError: [ nil ].
programArgs := positional copyFrom: 2.
- "/ If * programExecutable does not exists
- "/ * AND programPid is not nil (i.e., first positional argument can be converted to an integer)
- "/ * AND programArguments are empty
- "/ then interpret positional argument as PID and attach to it.
- "/ Otherwise, interpret positional arguments
- (programExecutable asFilename exists not and: [ programPid notNil and: [ programArgs isEmpty ]]) ifTrue:[
- attach := true.
+ replay ifTrue:[
+ programArgs notEmptyOrNil ifTrue:[
+ self error: 'cannot specify program args when replaying'.
+ ].
] ifFalse:[
- programExecutable asFilename exists ifFalse:[
- self error: 'cannot find program executable: ', programExecutable.
+ "/ If * programExecutable does not exists
+ "/ * AND programPid is not nil (i.e., first positional argument can be converted to an integer)
+ "/ * AND programArguments are empty
+ "/ then interpret positional argument as PID and attach to it.
+ "/ Otherwise, interpret positional arguments
+ (programExecutable asFilename exists not and: [ programPid notNil and: [ programArgs isEmpty ]]) ifTrue:[
+ attach := true.
+ ] ifFalse:[
+ programExecutable asFilename exists ifFalse:[
+ self error: 'cannot find program executable: ', programExecutable.
+ ].
].
].
].
@@ -187,7 +215,12 @@
].
].
Smalltalk openDisplay.
- VDBDebuggerApplication openFor: debugger.
+ debuggerApp := VDBDebuggerApplication new.
+ debuggerApp debugger: debugger.
+ debuggerApp open.
+ replay ifTrue:[
+ debuggerApp doAttachToRR
+ ].
"
VDBStartup main: #()
@@ -195,7 +228,7 @@
VDBStartup main: #('/bin/ls' '/tmp')
"
- "Modified: / 13-09-2017 / 12:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 29-07-2018 / 08:51:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
usage
@@ -204,6 +237,7 @@
"|"
Stdout nextPutLine:'
options:
+ --replay ..................... replay last rr record
--preference FILE ............ read user settings from FILE
--no-preferences ............. do not read user settings at all
--help ....................... output this message
@@ -211,7 +245,7 @@
Smalltalk exitIfStandalone: 0.
- "Modified: / 13-09-2017 / 22:12:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 29-07-2018 / 08:55:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!VDBStartup class methodsFor:'documentation'!
--- a/application/application.nsi Fri Jul 06 11:19:41 2018 +0100
+++ b/application/application.nsi Fri Jul 27 07:58:24 2018 +0100
@@ -3,7 +3,7 @@
!define PRODUCT_NAME "Visual / VM Debugger"
!define PRODUCT_FILENAME "Visual___VM_Debugger"
-!define PRODUCT_VERSION "8.0.0.0"
+!define PRODUCT_VERSION "8.0.99.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 Jul 06 11:19:41 2018 +0100
+++ b/application/autopackage/default.apspec Fri Jul 27 07:58:24 2018 +0100
@@ -1,7 +1,7 @@
# -*- shell-script -*-
[Meta]
ShortName: vdb.do
-SoftwareVersion: 8.0.0.0
+SoftwareVersion: 8.0.99.0
DisplayName: Visual / VM Debugger
RootName: Visual / VM Debugger
Summary: Visual / VM Debugger
--- a/application/bc.mak Fri Jul 06 11:19:41 2018 +0100
+++ b/application/bc.mak Fri Jul 27 07:58:24 2018 +0100
@@ -96,6 +96,7 @@
libstx_libview.dll \
libstx_libui.dll \
libstx_libview2.dll \
+ libstx_goodies_sunit.dll \
libstx_libwidg.dll \
libstx_goodies_magritte.dll \
libstx_libhtml.dll \
@@ -366,6 +367,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 Jul 06 11:19:41 2018 +0100
+++ b/application/builder/baseline.rbspec Fri Jul 27 07:58:24 2018 +0100
@@ -24,6 +24,7 @@
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 Jul 06 11:19:41 2018 +0100
+++ b/application/builder/package.deps.rake Fri Jul 27 07:58:24 2018 +0100
@@ -7,6 +7,7 @@
task "jv:libgdbs" => "stx:libbasic"
task "jv:vdb" => "jv:libgdbs"
+task "jv:vdb" => "stx:goodies/announcements"
task "jv:vdb" => "stx:libbasic"
task "jv:vdb" => "stx:libtool"
task "jv:vdb" => "stx:libview"
@@ -21,6 +22,9 @@
task "stx:goodies/regex" => "stx:libbasic"
+task "stx:goodies/sunit" => "stx:libbasic"
+task "stx:goodies/sunit" => "stx:libview2"
+
task "stx:goodies/xml/vw" => "stx:libbasic"
@@ -84,6 +88,7 @@
task "jv:vdb/application" => "stx:goodies/magritte"
task "jv:vdb/application" => "stx:goodies/refactoryBrowser/parser"
task "jv:vdb/application" => "stx:goodies/regex"
+task "jv:vdb/application" => "stx:goodies/sunit"
task "jv:vdb/application" => "stx:goodies/xml/vw"
task "jv:vdb/application" => "stx:libbasic"
task "jv:vdb/application" => "stx:libbasic2"
--- a/application/jv_vdb_application.st Fri Jul 06 11:19:41 2018 +0100
+++ b/application/jv_vdb_application.st Fri Jul 27 07:58:24 2018 +0100
@@ -97,7 +97,7 @@
^ #(
#'jv:libgdbs' "GDBDebugger - referenced by VDBStartup class>>main:"
- #'jv:vdb' "VDBDebuggerApplication - referenced by VDBStartup class>>main:"
+ #'jv:vdb' "RR - referenced by VDBStartup class>>main:"
#'stx:libbasic2' "UUID - referenced by VDBStartup class>>applicationUUID"
#'stx:libtool' "DebugView - referenced by VDBStartup class>>main:"
)
--- a/application/modules.stx Fri Jul 06 11:19:41 2018 +0100
+++ b/application/modules.stx Fri Jul 27 07:58:24 2018 +0100
@@ -25,6 +25,7 @@
libstx_libview
libstx_libui
libstx_libview2
+libstx_goodies_sunit
libstx_libwidg
libstx_goodies_magritte
libstx_libhtml
--- a/bc.mak Fri Jul 06 11:19:41 2018 +0100
+++ b/bc.mak Fri Jul 27 07:58:24 2018 +0100
@@ -35,7 +35,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\libgdbs -I$(INCLUDE_TOP)\stx\goodies\xml\vw -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libtool2 -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\libgdbs -I$(INCLUDE_TOP)\stx\goodies\announcements -I$(INCLUDE_TOP)\stx\goodies\xml\vw -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libtool2 -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
@@ -81,6 +81,8 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)RR.$(O) RR.$(C) RR.$(H): RR.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)RREvent.$(O) RREvent.$(C) RREvent.$(H): RREvent.st $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(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)
@@ -91,6 +93,8 @@
$(OUTDIR)VDBVirtualMemoryRegion.$(O) VDBVirtualMemoryRegion.$(C) VDBVirtualMemoryRegion.$(H): VDBVirtualMemoryRegion.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)VDBWindowsDebuggerConsoleView.$(O) VDBWindowsDebuggerConsoleView.$(C) VDBWindowsDebuggerConsoleView.$(H): VDBWindowsDebuggerConsoleView.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) $(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)
+$(OUTDIR)RRExitEvent.$(O) RRExitEvent.$(C) RRExitEvent.$(H): RRExitEvent.st $(INCLUDE_TOP)\jv\vdb\RREvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)RRStartEvent.$(O) RRStartEvent.$(C) RRStartEvent.$(H): RRStartEvent.st $(INCLUDE_TOP)\jv\vdb\RREvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)VDBAbstractContainer.$(O) VDBAbstractContainer.$(C) 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.$(C) 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)VDBAbstractUnixConsoleApplication.$(O) VDBAbstractUnixConsoleApplication.$(C) VDBAbstractUnixConsoleApplication.$(H): VDBAbstractUnixConsoleApplication.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)
@@ -113,10 +117,11 @@
$(OUTDIR)VDBTabbingContainer.$(O) VDBTabbingContainer.$(C) 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)VDBUnixDebuggerConsoleApplication.$(O) VDBUnixDebuggerConsoleApplication.$(C) VDBUnixDebuggerConsoleApplication.$(H): VDBUnixDebuggerConsoleApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractUnixConsoleApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
$(OUTDIR)VDBUnixInferiorConsoleApplication.$(O) VDBUnixInferiorConsoleApplication.$(C) VDBUnixInferiorConsoleApplication.$(H): VDBUnixInferiorConsoleApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractUnixConsoleApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
+$(OUTDIR)VDBUnixReplayServerConsoleApplication.$(O) VDBUnixReplayServerConsoleApplication.$(C) VDBUnixReplayServerConsoleApplication.$(H): VDBUnixReplayServerConsoleApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractUnixConsoleApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
$(OUTDIR)VDBInstructionListApplication.$(O) VDBInstructionListApplication.$(C) VDBInstructionListApplication.$(H): VDBInstructionListApplication.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.$(C) 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)
$(OUTDIR)VDBVariableObjectListApplication.$(O) VDBVariableObjectListApplication.$(C) VDBVariableObjectListApplication.$(H): VDBVariableObjectListApplication.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)extensions.$(O): extensions.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebuggerObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBVariableObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebugger.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBDebuggerObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBVariableObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/extensions.st Fri Jul 06 11:19:41 2018 +0100
+++ b/extensions.st Fri Jul 27 07:58:24 2018 +0100
@@ -1,5 +1,36 @@
"{ Package: 'jv:vdb' }"!
+!GDBDebugger methodsFor:'event handling'!
+
+onRRExitEvent:anRRExitEvent
+ | status |
+
+ anRRExitEvent rr announcer unsubscribe: self.
+ status := anRRExitEvent status.
+ (status success or:[ status status == #signal and:[status code == OperatingSystem sigTERM ]]) ifFalse:[
+ Dialog warn: (self class classResources string: 'Replay server terminated with error')
+ ].
+
+ "Created: / 31-07-2018 / 09:37:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBDebugger methodsFor:'commands - API'!
+
+targetConnectRR: rr
+ "Connect to rr replay server"
+
+ "/ rr suggest to connect as follows:
+ "/
+ "/ gdb '-l' '10000' '-ex' 'set sysroot /' '-ex' 'target extended-remote 127.0.0.1:9876' ...
+ "/
+ self send: (GDBMI_gdb_set arguments: #('sysroot' '/')).
+ self targetConnect: 'extended-remote' parameters: (Array with: '127.0.0.1:' with: rr port).
+ rr announcer when: RRExitEvent send: #onRRExitEvent: to: self.
+
+ "Created: / 26-07-2018 / 21:48:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-07-2018 / 09:38:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!GDBVariableObject methodsFor:'inspecting'!
inspector2TabVariable
--- a/jv_vdb.st Fri Jul 06 11:19:41 2018 +0100
+++ b/jv_vdb.st Fri Jul 27 07:58:24 2018 +0100
@@ -52,6 +52,7 @@
^ #(
#'jv:libgdbs' "GDBCommandStatus - shared pool used by VDBWindowsDebuggerConsoleApplication"
+ #'stx:goodies/announcements' "Announcement - superclass of RREvent"
#'stx:libbasic' "Collection - extended"
#'stx:libtool' "AbstractSettingsApplication - superclass of VDBSettingsApplication"
#'stx:libview' "DisplaySurface - superclass of VDBWindowsDebuggerConsoleView"
@@ -99,6 +100,8 @@
^ #(
"<className> or (<className> attributes...) in load order"
+ RR
+ RREvent
VDBAbstractApplication
VDBAbstractPresenter
VDBEvaluator
@@ -109,6 +112,8 @@
VDBVirtualMemoryRegion
VDBWindowsDebuggerConsoleView
#'jv_vdb'
+ RRExitEvent
+ RRStartEvent
VDBAbstractContainer
VDBAbstractListApplication
VDBAbstractUnixConsoleApplication
@@ -131,6 +136,7 @@
VDBTabbingContainer
VDBUnixDebuggerConsoleApplication
VDBUnixInferiorConsoleApplication
+ VDBUnixReplayServerConsoleApplication
VDBInstructionListApplication
VDBStackApplication
VDBVariableObjectListApplication
@@ -149,6 +155,8 @@
UserPreferences vdbFrameFiltersEnabled:
UserPreferences vdbPrettyPrintingEnabled
UserPreferences vdbPrettyPrintingEnabled:
+ GDBDebugger targetConnectRR:
+ GDBDebugger onRRExitEvent:
)
! !
--- a/libInit.cc Fri Jul 06 11:19:41 2018 +0100
+++ b/libInit.cc Fri Jul 27 07:58:24 2018 +0100
@@ -16,6 +16,8 @@
DLL_EXPORT void _libjv_vdb_InitDefinition() INIT_TEXT_SECTION;
#endif
+extern void _RR_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _RREvent_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
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);
@@ -26,6 +28,8 @@
extern void _VDBVirtualMemoryRegion_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBWindowsDebuggerConsoleView_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _jv_137vdb_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _RRExitEvent_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _RRStartEvent_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBAbstractContainer_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBAbstractListApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBAbstractUnixConsoleApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -48,6 +52,7 @@
extern void _VDBTabbingContainer_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBUnixDebuggerConsoleApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBUnixInferiorConsoleApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _VDBUnixReplayServerConsoleApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBInstructionListApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBStackApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
extern void _VDBVariableObjectListApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -65,6 +70,8 @@
void _libjv_vdb_Init(int pass, struct __vmData__ *__pRT__, OBJ snd)
{
__BEGIN_PACKAGE2__("libjv_vdb", _libjv_vdb_Init, "jv:vdb");
+ _RR_Init(pass,__pRT__,snd);
+ _RREvent_Init(pass,__pRT__,snd);
_VDBAbstractApplication_Init(pass,__pRT__,snd);
_VDBAbstractPresenter_Init(pass,__pRT__,snd);
_VDBEvaluator_Init(pass,__pRT__,snd);
@@ -75,6 +82,8 @@
_VDBVirtualMemoryRegion_Init(pass,__pRT__,snd);
_VDBWindowsDebuggerConsoleView_Init(pass,__pRT__,snd);
_jv_137vdb_Init(pass,__pRT__,snd);
+ _RRExitEvent_Init(pass,__pRT__,snd);
+ _RRStartEvent_Init(pass,__pRT__,snd);
_VDBAbstractContainer_Init(pass,__pRT__,snd);
_VDBAbstractListApplication_Init(pass,__pRT__,snd);
_VDBAbstractUnixConsoleApplication_Init(pass,__pRT__,snd);
@@ -97,6 +106,7 @@
_VDBTabbingContainer_Init(pass,__pRT__,snd);
_VDBUnixDebuggerConsoleApplication_Init(pass,__pRT__,snd);
_VDBUnixInferiorConsoleApplication_Init(pass,__pRT__,snd);
+ _VDBUnixReplayServerConsoleApplication_Init(pass,__pRT__,snd);
_VDBInstructionListApplication_Init(pass,__pRT__,snd);
_VDBStackApplication_Init(pass,__pRT__,snd);
_VDBVariableObjectListApplication_Init(pass,__pRT__,snd);