Introduced GDBProcess - a class encapsulating gdb OS process.
--- a/GDBConnection.st Fri Jun 20 21:25:03 2014 +0100
+++ b/GDBConnection.st Fri Jun 20 22:14:51 2014 +0100
@@ -1,10 +1,9 @@
"{ Package: 'jv:libgdbs' }"
Object subclass:#GDBConnection
- instanceVariableNames:'pid debuggerInput debuggerOutput inferiorPTY eventAnnouncer
- eventAnnouncerInternal eventQueue eventQueueLock
- eventQueueNotifier eventDispatchProcess eventPumpProcess
- outstandingCommands'
+ instanceVariableNames:'process inferiorPTY eventAnnouncer eventAnnouncerInternal
+ eventQueue eventQueueLock eventQueueNotifier eventDispatchProcess
+ eventPumpProcess outstandingCommands'
classVariableNames:''
poolDictionaries:'GDBDebugFlags'
category:'GDB-Private'
@@ -13,13 +12,16 @@
!GDBConnection class methodsFor:'instance creation'!
-pid:pidArg input:inputArg output:outputArg
- ^ self new
- initializeWithPid:pidArg
- input:inputArg
- output:outputArg
+new
+ ^ self shouldNotImplement.
- "Created: / 09-06-2014 / 18:20:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:45:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+newWithProcess: aGDBProcess
+ ^ self basicNew initializeWithProcess: aGDBProcess
+
+ "Created: / 20-06-2014 / 21:45:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBConnection methodsFor:'accessing'!
@@ -38,6 +40,18 @@
^ inferiorPTY
! !
+!GDBConnection methodsFor:'commands'!
+
+send: command
+ command token notNil ifTrue:[
+ process debuggerInput nextPutAll: command token printString.
+ ].
+ outstandingCommands add: command.
+ process debuggerInput nextPutLine: command asString.
+
+ "Created: / 20-06-2014 / 22:09:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!GDBConnection methodsFor:'event dispatching'!
eventDispatchLoop
@@ -65,12 +79,12 @@
].
].
].
- pid isNil ifTrue:[ ^ self ]. "/ gdb process terninated
+ process pid isNil ifTrue:[ ^ self ]. "/ gdb process terninated
eventQueueNotifier wait.
] loop.
"Created: / 02-06-2014 / 22:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified (comment): / 04-06-2014 / 09:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:38:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
eventDispatchSingle: aGDBEvent
@@ -92,7 +106,7 @@
].
self eventDispatchLoop.
] newProcess.
- eventDispatchProcess name:('GDB Event dispatcher (%1)' bindWith:pid).
+ eventDispatchProcess name:('GDB Event dispatcher (%1)' bindWith:process pid).
eventDispatchProcess priority:Processor userBackgroundPriority.
eventDispatchProcess addExitAction:[
eventDispatchProcess := nil.
@@ -104,7 +118,7 @@
].
"Created: / 02-06-2014 / 22:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 04-06-2014 / 09:27:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:38:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
eventDispatchStop
@@ -121,28 +135,12 @@
"Created: / 02-06-2014 / 22:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!GDBConnection methodsFor:'event handling'!
-
-onCommand: aGDBCommandEvent
- | command |
-
- command := aGDBCommandEvent command.
- command token notNil ifTrue:[
- debuggerInput nextPutAll: command token printString.
- ].
- outstandingCommands add: command.
- debuggerInput nextPutLine: command asString.
-
- "Created: / 02-06-2014 / 23:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 19-06-2014 / 22:08:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!GDBConnection methodsFor:'event pump'!
eventPumpLoop
| parser |
- parser := GDBParser on: debuggerOutput.
+ parser := GDBParser on: process debuggerOutput.
parser token2CommandMappingBlock:[ :token |
| command |
@@ -150,7 +148,7 @@
command notNil ifTrue:[ outstandingCommands remove: command ].
command
].
- [ debuggerOutput atEnd ] whileFalse:[
+ [ process debuggerOutput atEnd ] whileFalse:[
| eventset |
[
@@ -165,16 +163,16 @@
terminator := '(gdb)'.
i := 1.
- debuggerOutput notNil ifTrue:[
- [ debuggerOutput atEnd not and: [i <= terminator size ] ] whileTrue:[
- c := debuggerOutput next.
+ process debuggerOutput notNil ifTrue:[
+ [ process debuggerOutput atEnd not and: [i <= terminator size ] ] whileTrue:[
+ c := process debuggerOutput next.
c == (terminator at: i) ifTrue:[
i := i + 1.
] ifFalse:[
i := 1.
].
].
- debuggerOutput next. "/ read nl.
+ process debuggerOutput next. "/ read nl.
] ifFalse:[
^ self.
].
@@ -182,7 +180,7 @@
]
"Created: / 02-06-2014 / 22:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 19-06-2014 / 22:10:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:39:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
eventPumpStart
@@ -193,7 +191,7 @@
].
self eventPumpLoop
] newProcess.
- eventPumpProcess name:('GDB Event pump (%1)' bindWith:pid).
+ eventPumpProcess name:('GDB Event pump (%1)' bindWith:process pid).
eventPumpProcess priority:Processor userBackgroundPriority.
eventPumpProcess addExitAction:[
TraceEvents ifTrue:[
@@ -205,7 +203,7 @@
].
"Created: / 02-06-2014 / 22:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 04-06-2014 / 09:27:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:37:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
eventPumpStop
@@ -244,10 +242,8 @@
!GDBConnection methodsFor:'initialize & release'!
-initializeWithPid:pidArg input:inputArg output:outputArg
- pid := pidArg.
- debuggerInput := inputArg.
- debuggerOutput := outputArg.
+initializeWithProcess: aGDBProcess
+ process := aGDBProcess.
inferiorPTY := GDBPTY new.
eventQueue := OrderedCollection new.
eventQueueLock := RecursionLock new.
@@ -255,27 +251,22 @@
eventAnnouncer := Announcer new.
eventAnnouncerInternal := Announcer new.
outstandingCommands := Set new.
- eventAnnouncerInternal
- when:GDBCommandEvent
- send:#onCommand:
- to:self.
- "Created: / 09-06-2014 / 18:21:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 19-06-2014 / 22:18:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:40:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
release
- pid notNil ifTrue:[
- OperatingSystem sendSignal:(OperatingSystem sigKILL) to:pid.
+ process pid notNil ifTrue:[
+ OperatingSystem sendSignal:(OperatingSystem sigKILL) to:process pid.
]
"Created: / 26-05-2014 / 21:30:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 03-06-2014 / 00:55:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:41:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
released: status
TraceProcesses ifTrue:[
- Logger log: ('gdb process: terminated with status %1' bindWith: status code) severity: #trace facility: 'GDB'.
+ Logger log: ('gdb process: exited with status %1' bindWith: status code) severity: #trace facility: 'GDB'.
].
TraceProcesses ifTrue:[
Logger log: ('gdb process: waiting for event pump to finish' bindWith: status code) severity: #trace facility: 'GDB'.
@@ -286,20 +277,12 @@
TraceProcesses ifTrue:[
Logger log: ('gdb process: event pump finished' bindWith: status code) severity: #trace facility: 'GDB'.
].
- pid := nil.
eventQueueNotifier signalForAll.
- debuggerInput notNil ifTrue:[
- debuggerInput close.
- debuggerInput := nil.
- ].
- debuggerOutput notNil ifTrue:[
- debuggerOutput close.
- debuggerOutput := nil.
- ].
+ process release.
inferiorPTY release.
"Created: / 26-05-2014 / 21:31:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 09-06-2014 / 18:26:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:37:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBConnection class methodsFor:'documentation'!
--- a/GDBDebugFlags.st Fri Jun 20 21:25:03 2014 +0100
+++ b/GDBDebugFlags.st Fri Jun 20 22:14:51 2014 +0100
@@ -15,8 +15,9 @@
"/ please change as required (and remove this comment)
TraceEvents := true.
+ TraceProcesses := true.
- "Modified: / 02-06-2014 / 23:24:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:48:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/GDBDebugger.st Fri Jun 20 21:25:03 2014 +0100
+++ b/GDBDebugger.st Fri Jun 20 22:14:51 2014 +0100
@@ -1,7 +1,7 @@
"{ Package: 'jv:libgdbs' }"
Object subclass:#GDBDebugger
- instanceVariableNames:'driver commandSequenceNumber inferiorStateSequenceNumber'
+ instanceVariableNames:'connection commandSequenceNumber inferiorStateSequenceNumber'
classVariableNames:''
poolDictionaries:'GDBCommandStatus'
category:'GDB-Core'
@@ -11,35 +11,41 @@
!GDBDebugger class methodsFor:'instance creation'!
new
- "return an initialized instance"
+ ^ self newWithProcess: GDBUnixProcess new
+
+ "Modified: / 20-06-2014 / 21:44:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
- ^ self basicNew initialize.
+newWithProcess: aGDBProcess
+ ^ self basicNew initializeWithProcess: aGDBProcess
+
+ "Created: / 20-06-2014 / 21:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBDebugger methodsFor:'accessing'!
announcer
- ^ driver eventAnnouncer.
+ ^ connection eventAnnouncer.
"Created: / 02-06-2014 / 23:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
inferiorStderr
- ^ driver inferiorPTY master
+ ^ connection inferiorPTY master
"Created: / 09-06-2014 / 10:01:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 09-06-2014 / 18:26:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
inferiorStdin
- ^ driver inferiorPTY master
+ ^ connection inferiorPTY master
"Created: / 09-06-2014 / 10:00:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 09-06-2014 / 18:27:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
inferiorStdout
- ^ driver inferiorPTY master
+ ^ connection inferiorPTY master
"Created: / 09-06-2014 / 10:01:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 09-06-2014 / 18:27:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -97,10 +103,10 @@
]].
blocker := Semaphore new.
self announcer when: GDBCommandResultEvent do: releaser.
- driver pushEvent: (GDBCommandEvent new command: aGDBCommand).
+ connection pushEvent: (GDBCommandEvent new command: aGDBCommand).
blocker wait.
] ifFalse:[
- driver pushEvent: (GDBCommandEvent new command: aGDBCommand).
+ connection pushEvent: (GDBCommandEvent new command: aGDBCommand).
]
"Created: / 02-06-2014 / 23:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -109,9 +115,16 @@
!GDBDebugger methodsFor:'event handling'!
+onCommand: aGDBCommandEvent
+ connection send: aGDBCommandEvent command.
+
+ "Created: / 02-06-2014 / 23:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 22:09:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
onCommandResult: aGDBCommandResultEvent
aGDBCommandResultEvent result status == CommandStatusExit ifTrue:[
- driver pushEvent: GDBExitEvent new.
+ connection pushEvent: GDBExitEvent new.
].
"Created: / 02-06-2014 / 23:40:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -141,36 +154,57 @@
!GDBDebugger methodsFor:'initialize & release'!
-initialize
+initializeWithProcess: aGDBProcess
self registerForFinalization.
- driver := GDBLauncher startGDB.
+ connection := GDBConnection newWithProcess: aGDBProcess.
commandSequenceNumber := 0.
inferiorStateSequenceNumber := 0.
- driver eventAnnouncerInternal
- when: GDBCommandResultEvent send: #onCommandResult: to: self;
- when: GDBExitEvent send: #onExit: to: self;
- when: GDBExecutionEvent send: #onExecutionEvent: to: self.
-
+ self subscribe.
- driver eventPumpStart.
- driver eventDispatchStart.
+ connection eventPumpStart.
+ connection eventDispatchStart.
"/ self send: (GDBMICommand inferiorTtySet: driver inferiorPTY name).
- self send: (GDBMI_inferior_tty_set arguments: { driver inferiorPTY name })
+ self send: (GDBMI_inferior_tty_set arguments: { connection inferiorPTY name })
- "Created: / 26-05-2014 / 21:23:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 19-06-2014 / 22:22:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
release
- driver notNil ifTrue:[
- driver release.
- driver := nil.
+ connection notNil ifTrue:[
+ self unsubscribe.
+ connection release.
+ connection := nil.
].
"Created: / 26-05-2014 / 21:24:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 22:08:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+subscribe
+ connection eventAnnouncerInternal
+ when: GDBCommandEvent send: #onCommand: to: self;
+ when: GDBCommandResultEvent send: #onCommandResult: to: self;
+ when: GDBExitEvent send: #onExit: to: self;
+ when: GDBExecutionEvent send: #onExecutionEvent: to: self.
+
+ "Created: / 20-06-2014 / 22:07:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+unsubscribe
+ connection eventAnnouncerInternal unsubscribe: self
+
+ "Created: / 20-06-2014 / 22:07:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBDebugger methodsFor:'testing'!
+
+isConnected
+ ^ connection notNil
+
+ "Created: / 20-06-2014 / 22:12:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBDebugger class methodsFor:'documentation'!
--- a/GDBLauncher.st Fri Jun 20 21:25:03 2014 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-"{ Package: 'jv:libgdbs' }"
-
-Object subclass:#GDBLauncher
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- category:'GDB-Private'
-!
-
-
-!GDBLauncher class methodsFor:'starting'!
-
-startGDB
- | inputPipe input outputPipe output args connection pid |
-
- inputPipe := NonPositionableExternalStream makePipe.
- input := inputPipe second.
- outputPipe := NonPositionableExternalStream makePipe.
- output := outputPipe first.
- args := #( '/usr/bin/gdb' '--interpreter' 'mi2' ).
- Processor
- monitor:[
- pid := OperatingSystem
- exec:args first
- withArguments:args
- environment:OperatingSystem getEnvironment
- fileDescriptors:{
- inputPipe first fileDescriptor.
- outputPipe second fileDescriptor.
- outputPipe second fileDescriptor
- }
- fork:true
- newPgrp:false
- inDirectory:Filename currentDirectory.
- connection := GDBConnection
- pid:pid
- input:input
- output:output.
- pid.
- ]
- action:[:stat | connection released:stat. ].
- inputPipe first close.
- outputPipe second close.
- pid isNil ifTrue:[
- input close.
- output close.
- self error:'Failed to launch gdb'.
- ^ self.
- ].
- ^ connection
-
- "Created: / 26-05-2014 / 21:18:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 09-06-2014 / 18:31:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GDBLauncher class methodsFor:'documentation'!
-
-version_HG
-
- ^ '$Changeset: <not expanded> $'
-! !
-
--- a/GDBMICommand.st Fri Jun 20 21:25:03 2014 +0100
+++ b/GDBMICommand.st Fri Jun 20 22:14:51 2014 +0100
@@ -229,16 +229,20 @@
asString
^ String streamContents: [ :s |
+ | args |
s nextPut: $-.
s nextPutAll: self operation.
- self arguments do:[:each |
- s space.
- s nextPutAll: each asString.
+ args := self arguments.
+ args notEmptyOrNil ifTrue:[
+ args do:[:each |
+ s space.
+ s nextPutAll: each asString.
+ ].
].
]
"Created: / 09-06-2014 / 18:42:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 09-06-2014 / 21:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 22:04:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBMICommand methodsFor:'testing'!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBProcess.st Fri Jun 20 22:14:51 2014 +0100
@@ -0,0 +1,57 @@
+"{ Package: 'jv:libgdbs' }"
+
+Object subclass:#GDBProcess
+ instanceVariableNames:'pid debuggerInput debuggerOutput connection'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'GDB-Private'
+!
+
+!GDBProcess 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 == GDBProcess.
+! !
+
+!GDBProcess methodsFor:'accessing'!
+
+debuggerInput
+ ^ debuggerInput
+!
+
+debuggerOutput
+ ^ debuggerOutput
+!
+
+pid
+ ^ pid
+! !
+
+!GDBProcess methodsFor:'initialization'!
+
+release
+ pid := connection := nil.
+ debuggerInput notNil ifTrue:[
+ debuggerInput close.
+ debuggerInput := nil.
+ ].
+ debuggerOutput notNil ifTrue:[
+ debuggerOutput close.
+ debuggerOutput := nil.
+ ].
+
+ "Created: / 20-06-2014 / 21:35:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBProcess methodsFor:'private'!
+
+exited: status
+ connection released: status
+
+ "Created: / 20-06-2014 / 21:35:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBUnixProcess.st Fri Jun 20 22:14:51 2014 +0100
@@ -0,0 +1,57 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBProcess subclass:#GDBUnixProcess
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'GDB-Private'
+!
+
+!GDBUnixProcess class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+! !
+
+!GDBUnixProcess methodsFor:'initialization'!
+
+initialize
+ | inputPipe input outputPipe output args |
+
+ inputPipe := NonPositionableExternalStream makePipe.
+ input := inputPipe second.
+ outputPipe := NonPositionableExternalStream makePipe.
+ output := outputPipe first.
+ args := #( '/usr/bin/gdb' '--interpreter' 'mi2' ).
+ Processor
+ monitor:[
+ pid := OperatingSystem
+ exec:args first
+ withArguments:args
+ environment:OperatingSystem getEnvironment
+ fileDescriptors:{
+ inputPipe first fileDescriptor.
+ outputPipe second fileDescriptor.
+ outputPipe second fileDescriptor
+ }
+ fork:true
+ newPgrp:false
+ inDirectory:Filename currentDirectory.
+ debuggerInput := input.
+ debuggerOutput := output.
+ pid.
+ ]
+ action:[:stat | self exited:stat. ].
+ inputPipe first close.
+ outputPipe second close.
+ pid isNil ifTrue:[
+ input close.
+ output close.
+ self error:'Failed to launch gdb'.
+ ].
+
+ "Modified: / 20-06-2014 / 21:35:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/Make.proto Fri Jun 20 21:25:03 2014 +0100
+++ b/Make.proto Fri Jun 20 22:14:51 2014 +0100
@@ -128,9 +128,9 @@
$(OUTDIR)GDBEvent.$(O) GDBEvent.$(H): GDBEvent.st $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBEventSet.$(O) GDBEventSet.$(H): GDBEventSet.st $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(STCHDR)
$(OUTDIR)GDBInternalPipeStream.$(O) GDBInternalPipeStream.$(H): GDBInternalPipeStream.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(STCHDR)
-$(OUTDIR)GDBLauncher.$(O) GDBLauncher.$(H): GDBLauncher.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBObject.$(O) GDBObject.$(H): GDBObject.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBPTY.$(O) GDBPTY.$(H): GDBPTY.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GDBProcess.$(O) GDBProcess.$(H): GDBProcess.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBValueDescriptor.$(O) GDBValueDescriptor.$(H): GDBValueDescriptor.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBValueDescriptorError.$(O) GDBValueDescriptorError.$(H): GDBValueDescriptorError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)jv_libgdbs.$(O) jv_libgdbs.$(H): jv_libgdbs.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
@@ -148,6 +148,7 @@
$(OUTDIR)GDBParser.$(O) GDBParser.$(H): GDBParser.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommandStatus.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBPrimitiveValueDescriptor.$(O) GDBPrimitiveValueDescriptor.$(H): GDBPrimitiveValueDescriptor.st $(INCLUDE_TOP)/jv/libgdbs/GDBValueDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBStreamOutputEvent.$(O) GDBStreamOutputEvent.$(H): GDBStreamOutputEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GDBUnixProcess.$(O) GDBUnixProcess.$(H): GDBUnixProcess.st $(INCLUDE_TOP)/jv/libgdbs/GDBProcess.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBAddresValueDescriptor.$(O) GDBAddresValueDescriptor.$(H): GDBAddresValueDescriptor.st $(INCLUDE_TOP)/jv/libgdbs/GDBPrimitiveValueDescriptor.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBValueDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBBooleanValueDescriptor.$(O) GDBBooleanValueDescriptor.$(H): GDBBooleanValueDescriptor.st $(INCLUDE_TOP)/jv/libgdbs/GDBPrimitiveValueDescriptor.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBValueDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBConsoleOutputEvent.$(O) GDBConsoleOutputEvent.$(H): GDBConsoleOutputEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBStreamOutputEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec Fri Jun 20 21:25:03 2014 +0100
+++ b/Make.spec Fri Jun 20 22:14:51 2014 +0100
@@ -56,9 +56,9 @@
GDBEvent \
GDBEventSet \
GDBInternalPipeStream \
- GDBLauncher \
GDBObject \
GDBPTY \
+ GDBProcess \
GDBValueDescriptor \
GDBValueDescriptorError \
jv_libgdbs \
@@ -76,6 +76,7 @@
GDBParser \
GDBPrimitiveValueDescriptor \
GDBStreamOutputEvent \
+ GDBUnixProcess \
GDBAddresValueDescriptor \
GDBBooleanValueDescriptor \
GDBConsoleOutputEvent \
@@ -221,9 +222,9 @@
$(OUTDIR_SLASH)GDBEvent.$(O) \
$(OUTDIR_SLASH)GDBEventSet.$(O) \
$(OUTDIR_SLASH)GDBInternalPipeStream.$(O) \
- $(OUTDIR_SLASH)GDBLauncher.$(O) \
$(OUTDIR_SLASH)GDBObject.$(O) \
$(OUTDIR_SLASH)GDBPTY.$(O) \
+ $(OUTDIR_SLASH)GDBProcess.$(O) \
$(OUTDIR_SLASH)GDBValueDescriptor.$(O) \
$(OUTDIR_SLASH)GDBValueDescriptorError.$(O) \
$(OUTDIR_SLASH)jv_libgdbs.$(O) \
@@ -241,6 +242,7 @@
$(OUTDIR_SLASH)GDBParser.$(O) \
$(OUTDIR_SLASH)GDBPrimitiveValueDescriptor.$(O) \
$(OUTDIR_SLASH)GDBStreamOutputEvent.$(O) \
+ $(OUTDIR_SLASH)GDBUnixProcess.$(O) \
$(OUTDIR_SLASH)GDBAddresValueDescriptor.$(O) \
$(OUTDIR_SLASH)GDBBooleanValueDescriptor.$(O) \
$(OUTDIR_SLASH)GDBConsoleOutputEvent.$(O) \
--- a/abbrev.stc Fri Jun 20 21:25:03 2014 +0100
+++ b/abbrev.stc Fri Jun 20 22:14:51 2014 +0100
@@ -7,9 +7,9 @@
GDBEvent GDBEvent jv:libgdbs 'GDB-Core-Events' 0
GDBEventSet GDBEventSet jv:libgdbs 'GDB-Core-Events' 0
GDBInternalPipeStream GDBInternalPipeStream jv:libgdbs 'GDB-Support' 0
-GDBLauncher GDBLauncher jv:libgdbs 'GDB-Private' 0
GDBObject GDBObject jv:libgdbs 'GDB-Core' 0
GDBPTY GDBPTY jv:libgdbs 'GDB-Private' 0
+GDBProcess GDBProcess jv:libgdbs 'GDB-Private' 0
GDBValueDescriptor GDBValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0
GDBValueDescriptorError GDBValueDescriptorError jv:libgdbs 'GDB-Private-Descriptors' 1
jv_libgdbs jv_libgdbs jv:libgdbs '* Projects & Packages *' 3
@@ -27,6 +27,7 @@
GDBParser GDBParser jv:libgdbs 'GDB-Private' 0
GDBPrimitiveValueDescriptor GDBPrimitiveValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0
GDBStreamOutputEvent GDBStreamOutputEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBUnixProcess GDBUnixProcess jv:libgdbs 'GDB-Private' 0
GDBAddresValueDescriptor GDBAddresValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0
GDBBooleanValueDescriptor GDBBooleanValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0
GDBConsoleOutputEvent GDBConsoleOutputEvent jv:libgdbs 'GDB-Core-Events' 0
--- a/bc.mak Fri Jun 20 21:25:03 2014 +0100
+++ b/bc.mak Fri Jun 20 22:14:51 2014 +0100
@@ -74,9 +74,9 @@
$(OUTDIR)GDBEvent.$(O) GDBEvent.$(H): GDBEvent.st $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBEventSet.$(O) GDBEventSet.$(H): GDBEventSet.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(STCHDR)
$(OUTDIR)GDBInternalPipeStream.$(O) GDBInternalPipeStream.$(H): GDBInternalPipeStream.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(STCHDR)
-$(OUTDIR)GDBLauncher.$(O) GDBLauncher.$(H): GDBLauncher.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBObject.$(O) GDBObject.$(H): GDBObject.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBPTY.$(O) GDBPTY.$(H): GDBPTY.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GDBProcess.$(O) GDBProcess.$(H): GDBProcess.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBValueDescriptor.$(O) GDBValueDescriptor.$(H): GDBValueDescriptor.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBValueDescriptorError.$(O) GDBValueDescriptorError.$(H): GDBValueDescriptorError.st $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)jv_libgdbs.$(O) jv_libgdbs.$(H): jv_libgdbs.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
@@ -94,6 +94,7 @@
$(OUTDIR)GDBParser.$(O) GDBParser.$(H): GDBParser.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommandStatus.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBPrimitiveValueDescriptor.$(O) GDBPrimitiveValueDescriptor.$(H): GDBPrimitiveValueDescriptor.st $(INCLUDE_TOP)\jv\libgdbs\GDBValueDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBStreamOutputEvent.$(O) GDBStreamOutputEvent.$(H): GDBStreamOutputEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GDBUnixProcess.$(O) GDBUnixProcess.$(H): GDBUnixProcess.st $(INCLUDE_TOP)\jv\libgdbs\GDBProcess.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBAddresValueDescriptor.$(O) GDBAddresValueDescriptor.$(H): GDBAddresValueDescriptor.st $(INCLUDE_TOP)\jv\libgdbs\GDBPrimitiveValueDescriptor.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBValueDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBBooleanValueDescriptor.$(O) GDBBooleanValueDescriptor.$(H): GDBBooleanValueDescriptor.st $(INCLUDE_TOP)\jv\libgdbs\GDBPrimitiveValueDescriptor.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBValueDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBConsoleOutputEvent.$(O) GDBConsoleOutputEvent.$(H): GDBConsoleOutputEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBStreamOutputEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/jv_libgdbs.st Fri Jun 20 21:25:03 2014 +0100
+++ b/jv_libgdbs.st Fri Jun 20 22:14:51 2014 +0100
@@ -70,9 +70,9 @@
GDBEvent
GDBEventSet
GDBInternalPipeStream
- GDBLauncher
GDBObject
GDBPTY
+ GDBProcess
GDBValueDescriptor
GDBValueDescriptorError
#'jv_libgdbs'
@@ -90,6 +90,7 @@
GDBParser
GDBPrimitiveValueDescriptor
GDBStreamOutputEvent
+ GDBUnixProcess
GDBAddresValueDescriptor
GDBBooleanValueDescriptor
GDBConsoleOutputEvent
--- a/libInit.cc Fri Jun 20 21:25:03 2014 +0100
+++ b/libInit.cc Fri Jun 20 22:14:51 2014 +0100
@@ -33,9 +33,9 @@
_GDBEvent_Init(pass,__pRT__,snd);
_GDBEventSet_Init(pass,__pRT__,snd);
_GDBInternalPipeStream_Init(pass,__pRT__,snd);
-_GDBLauncher_Init(pass,__pRT__,snd);
_GDBObject_Init(pass,__pRT__,snd);
_GDBPTY_Init(pass,__pRT__,snd);
+_GDBProcess_Init(pass,__pRT__,snd);
_GDBValueDescriptor_Init(pass,__pRT__,snd);
_GDBValueDescriptorError_Init(pass,__pRT__,snd);
_jv_137libgdbs_Init(pass,__pRT__,snd);
@@ -53,6 +53,7 @@
_GDBParser_Init(pass,__pRT__,snd);
_GDBPrimitiveValueDescriptor_Init(pass,__pRT__,snd);
_GDBStreamOutputEvent_Init(pass,__pRT__,snd);
+_GDBUnixProcess_Init(pass,__pRT__,snd);
_GDBAddresValueDescriptor_Init(pass,__pRT__,snd);
_GDBBooleanValueDescriptor_Init(pass,__pRT__,snd);
_GDBConsoleOutputEvent_Init(pass,__pRT__,snd);
--- a/libgdbs.rc Fri Jun 20 21:25:03 2014 +0100
+++ b/libgdbs.rc Fri Jun 20 22:14:51 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
VALUE "ProductName", "LibraryName\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Fri, 20 Jun 2014 20:22:51 GMT\0"
+ VALUE "ProductDate", "Fri, 20 Jun 2014 21:13:53 GMT\0"
END
END
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/GDBDebuggerTests.st Fri Jun 20 22:14:51 2014 +0100
@@ -0,0 +1,45 @@
+"{ Package: 'jv:libgdbs/tests' }"
+
+TestCase subclass:#GDBDebuggerTests
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'GDB-Core-Tests'
+!
+
+!GDBDebuggerTests class methodsFor:'documentation'!
+
+documentation
+"
+ documentation to be added.
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
+! !
+
+!GDBDebuggerTests methodsFor:'tests - basic'!
+
+test_exit_01
+ | debugger timeouted |
+
+ debugger := GDBDebugger new.
+ self assert: debugger isConnected.
+ timeouted := ([
+ debugger send: (GDBMI_gdb_exit new).
+ true.
+ ] valueWithTimeout: 3 seconds) isNil.
+
+ self assert: timeouted not.
+ self assert: debugger isConnected not.
+
+ "Created: / 20-06-2014 / 22:00:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/tests/Make.proto Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/Make.proto Fri Jun 20 22:14:51 2014 +0100
@@ -127,6 +127,7 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)GDBDebuggerTests.$(O) GDBDebuggerTests.$(H): GDBDebuggerTests.st $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBInternalPipeStreamTests.$(O) GDBInternalPipeStreamTests.$(H): GDBInternalPipeStreamTests.st $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GDBParserTests.$(O) GDBParserTests.$(H): GDBParserTests.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommandStatus.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)jv_libgdbs_tests.$(O) jv_libgdbs_tests.$(H): jv_libgdbs_tests.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
--- a/tests/Make.spec Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/Make.spec Fri Jun 20 22:14:51 2014 +0100
@@ -50,6 +50,7 @@
STCWARNINGS=-warnNonStandard
COMMON_CLASSES= \
+ GDBDebuggerTests \
GDBInternalPipeStreamTests \
GDBParserTests \
jv_libgdbs_tests \
@@ -58,6 +59,7 @@
COMMON_OBJS= \
+ $(OUTDIR_SLASH)GDBDebuggerTests.$(O) \
$(OUTDIR_SLASH)GDBInternalPipeStreamTests.$(O) \
$(OUTDIR_SLASH)GDBParserTests.$(O) \
$(OUTDIR_SLASH)jv_libgdbs_tests.$(O) \
--- a/tests/abbrev.stc Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/abbrev.stc Fri Jun 20 22:14:51 2014 +0100
@@ -1,6 +1,7 @@
# 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.
+GDBDebuggerTests GDBDebuggerTests jv:libgdbs/tests 'GDB-Core-Tests' 1
GDBInternalPipeStreamTests GDBInternalPipeStreamTests jv:libgdbs/tests 'GDB-Support-Tests' 1
GDBParserTests GDBParserTests jv:libgdbs/tests 'GDB-Private-Tests' 1
jv_libgdbs_tests jv_libgdbs_tests jv:libgdbs/tests '* Projects & Packages *' 3
--- a/tests/bc.mak Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/bc.mak Fri Jun 20 22:14:51 2014 +0100
@@ -73,6 +73,7 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)GDBDebuggerTests.$(O) GDBDebuggerTests.$(H): GDBDebuggerTests.st $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBInternalPipeStreamTests.$(O) GDBInternalPipeStreamTests.$(H): GDBInternalPipeStreamTests.st $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GDBParserTests.$(O) GDBParserTests.$(H): GDBParserTests.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommandStatus.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)jv_libgdbs_tests.$(O) jv_libgdbs_tests.$(H): jv_libgdbs_tests.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
--- a/tests/jv_libgdbs_tests.st Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/jv_libgdbs_tests.st Fri Jun 20 22:14:51 2014 +0100
@@ -29,7 +29,7 @@
^ #(
#'jv:libgdbs' "GDBCommandStatus - shared pool used by GDBParserTests "
- #'stx:goodies/sunit' "TestAsserter - superclass of GDBInternalPipeStreamTests "
+ #'stx:goodies/sunit' "TestAsserter - superclass of GDBDebuggerTests "
#'stx:libbasic' "LibraryDefinition - superclass of jv_libgdbs_tests "
)
!
@@ -65,6 +65,7 @@
^ #(
"<className> or (<className> attributes...) in load order"
+ GDBDebuggerTests
GDBInternalPipeStreamTests
GDBParserTests
#'jv_libgdbs_tests'
--- a/tests/libInit.cc Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/libInit.cc Fri Jun 20 22:14:51 2014 +0100
@@ -27,6 +27,7 @@
void _libjv_libgdbs_tests_Init(pass, __pRT__, snd)
OBJ snd; struct __vmData__ *__pRT__; {
__BEGIN_PACKAGE2__("libjv_libgdbs_tests", _libjv_libgdbs_tests_Init, "jv:libgdbs/tests");
+_GDBDebuggerTests_Init(pass,__pRT__,snd);
_GDBInternalPipeStreamTests_Init(pass,__pRT__,snd);
_GDBParserTests_Init(pass,__pRT__,snd);
_jv_137libgdbs_137tests_Init(pass,__pRT__,snd);
--- a/tests/tests.rc Fri Jun 20 21:25:03 2014 +0100
+++ b/tests/tests.rc Fri Jun 20 22:14:51 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
VALUE "ProductName", "LibraryName\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Fri, 20 Jun 2014 20:22:53 GMT\0"
+ VALUE "ProductDate", "Fri, 20 Jun 2014 21:13:55 GMT\0"
END
END