Renamed GDBDriver to GDBConnection.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 20 Jun 2014 21:25:03 +0100
changeset 22 57025871aed4
parent 21 83395ca8b257
child 23 a7eb888c81b5
Renamed GDBDriver to GDBConnection.
GDBConnection.st
GDBDriver.st
GDBLauncher.st
Make.proto
Make.spec
abbrev.stc
bc.mak
jv_libgdbs.st
libInit.cc
libgdbs.rc
tests/tests.rc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBConnection.st	Fri Jun 20 21:25:03 2014 +0100
@@ -0,0 +1,311 @@
+"{ Package: 'jv:libgdbs' }"
+
+Object subclass:#GDBConnection
+	instanceVariableNames:'pid debuggerInput debuggerOutput inferiorPTY eventAnnouncer
+		eventAnnouncerInternal eventQueue eventQueueLock
+		eventQueueNotifier eventDispatchProcess eventPumpProcess
+		outstandingCommands'
+	classVariableNames:''
+	poolDictionaries:'GDBDebugFlags'
+	category:'GDB-Private'
+!
+
+
+!GDBConnection class methodsFor:'instance creation'!
+
+pid:pidArg input:inputArg output:outputArg
+    ^ self new 
+        initializeWithPid:pidArg
+        input:inputArg
+        output:outputArg
+
+    "Created: / 09-06-2014 / 18:20:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBConnection methodsFor:'accessing'!
+
+eventAnnouncer
+    ^ eventAnnouncer
+!
+
+eventAnnouncerInternal
+    ^ eventAnnouncerInternal
+
+    "Created: / 19-06-2014 / 22:18:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+inferiorPTY
+    ^ inferiorPTY
+! !
+
+!GDBConnection methodsFor:'event dispatching'!
+
+eventDispatchLoop
+    "raise an error: this method should be implemented (TODO)"
+
+    [  
+        | eventQueueEmpty |
+
+        eventQueueEmpty := false.
+        [ eventQueueEmpty ] whileFalse:[
+            | event |
+
+            event := nil.
+            eventQueueLock critical:[ 
+                eventQueueEmpty := eventQueue isEmpty.
+                eventQueueEmpty ifFalse:[ 
+                    event := eventQueue removeFirst.
+                ]
+            ].
+            eventQueueEmpty ifFalse:[
+                [
+                    self eventDispatchSingle: event.
+                ] on: Error do:[:ex | 
+                    "/ Pass
+                ].
+            ].
+        ].
+        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>"
+!
+
+eventDispatchSingle: aGDBEvent
+    TraceEvents ifTrue:[ 
+        Logger log: ('event loop: broadcasting %1 (%2)' bindWith: aGDBEvent class name with: aGDBEvent token) severity: #trace facility: 'GDB'
+    ].
+    eventAnnouncerInternal announce: aGDBEvent.
+    eventAnnouncer announce: aGDBEvent
+
+    "Created: / 02-06-2014 / 22:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-06-2014 / 22:18:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+eventDispatchStart
+    eventDispatchProcess isNil ifTrue:[
+        eventDispatchProcess := [
+                TraceEvents ifTrue:[
+                    Logger log: 'event loop: starting' severity: #trace facility: 'GDB'
+                ].
+                self eventDispatchLoop.
+            ] newProcess.
+        eventDispatchProcess name:('GDB Event dispatcher (%1)' bindWith:pid).
+        eventDispatchProcess priority:Processor userBackgroundPriority.
+        eventDispatchProcess addExitAction:[ 
+            eventDispatchProcess := nil. 
+            TraceEvents ifTrue:[
+                Logger log: 'event loop: terminated' severity: #trace facility: 'GDB'
+            ].
+        ].
+        eventDispatchProcess resume.
+    ].
+
+    "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>"
+!
+
+eventDispatchStop
+    | t |
+
+    t := eventDispatchProcess.
+    (t notNil and:[ t isDead not]) ifTrue:[ 
+        eventDispatchProcess := nil.
+        t terminate.
+         "/ raise its prio to make it terminate quickly
+        t priority:(Processor userSchedulingPriority + 1)                       
+    ].
+
+    "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 token2CommandMappingBlock:[ :token | 
+        | command |
+
+        command :=  outstandingCommands detect:[:cmd | cmd token == token ] ifNone:[nil].
+        command notNil ifTrue:[ outstandingCommands remove: command ].
+        command
+    ].
+    [ debuggerOutput atEnd ] whileFalse:[ 
+        | eventset |
+
+        [
+            [ 
+                eventset := parser parseOutput.
+            ] on: StreamNotOpenError do:[
+                ^ self.
+            ].
+            self pushEventSet: eventset.
+        ] on: AbortOperationRequest do:[
+            | terminator i c |
+
+            terminator := '(gdb)'.
+            i := 1.
+            debuggerOutput notNil ifTrue:[
+                [ debuggerOutput atEnd not and: [i <= terminator size ] ] whileTrue:[ 
+                    c := debuggerOutput next.
+                    c == (terminator at: i) ifTrue:[ 
+                        i := i + 1.
+                    ] ifFalse:[ 
+                        i := 1.
+                    ].
+                ].
+                debuggerOutput next. "/ read nl.
+            ] ifFalse:[ 
+                ^ self.
+            ].
+        ]
+    ]
+
+    "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>"
+!
+
+eventPumpStart
+    eventPumpProcess isNil ifTrue:[
+        eventPumpProcess := [
+                TraceEvents ifTrue:[
+                    Logger log: 'event pump: starting' severity: #trace facility: 'GDB'
+                ].
+                self eventPumpLoop
+            ] newProcess.
+        eventPumpProcess name:('GDB Event pump (%1)' bindWith:pid).
+        eventPumpProcess priority:Processor userBackgroundPriority.
+        eventPumpProcess addExitAction:[ 
+            TraceEvents ifTrue:[
+                Logger log: 'event pump: terminated' severity: #trace facility: 'GDB'
+            ].
+            eventPumpProcess := nil. 
+        ].
+        eventPumpProcess resume.
+    ].
+
+    "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>"
+!
+
+eventPumpStop
+    | t |
+
+    t := eventPumpProcess.
+    (t notNil and:[ t isDead not]) ifTrue:[ 
+        eventPumpProcess := nil.
+        t terminate.
+         "/ raise its prio to make it terminate quickly
+        t priority:(Processor userSchedulingPriority + 1)                       
+    ].
+
+    "Created: / 02-06-2014 / 22:40:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBConnection methodsFor:'events'!
+
+pushEvent: aGDBEvent
+    eventQueueLock critical:[
+        eventQueue add: aGDBEvent.
+        eventQueueNotifier signalForAll.
+    ].
+
+    "Created: / 02-06-2014 / 22:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+pushEventSet: aGDBEventSet
+    eventQueueLock critical:[
+        eventQueue addAll: aGDBEventSet.
+        eventQueueNotifier signalForAll.
+    ].
+
+    "Created: / 02-06-2014 / 22:42:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBConnection methodsFor:'initialize & release'!
+
+initializeWithPid:pidArg input:inputArg output:outputArg
+    pid := pidArg.
+    debuggerInput := inputArg.
+    debuggerOutput := outputArg.
+    inferiorPTY := GDBPTY new.
+    eventQueue := OrderedCollection new.
+    eventQueueLock := RecursionLock new.
+    eventQueueNotifier := Semaphore new.
+    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>"
+!
+
+release
+    pid notNil ifTrue:[
+        OperatingSystem sendSignal:(OperatingSystem sigKILL) to: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>"
+!
+
+released: status
+    TraceProcesses ifTrue:[ 
+        Logger log: ('gdb process: terminated 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'.
+    ].
+    [ eventPumpProcess notNil ] whileTrue:[ 
+        Delay waitForMilliseconds: 200.  
+    ].
+    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.
+    ].
+    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>"
+! !
+
+!GDBConnection class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/GDBDriver.st	Fri Jun 20 21:11:40 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,311 +0,0 @@
-"{ Package: 'jv:libgdbs' }"
-
-Object subclass:#GDBDriver
-	instanceVariableNames:'pid debuggerInput debuggerOutput inferiorPTY eventAnnouncer
-		eventAnnouncerInternal eventQueue eventQueueLock
-		eventQueueNotifier eventDispatchProcess eventPumpProcess
-		outstandingCommands'
-	classVariableNames:''
-	poolDictionaries:'GDBDebugFlags'
-	category:'GDB-Private'
-!
-
-
-!GDBDriver class methodsFor:'instance creation'!
-
-pid:pidArg input:inputArg output:outputArg
-    ^ self new 
-        initializeWithPid:pidArg
-        input:inputArg
-        output:outputArg
-
-    "Created: / 09-06-2014 / 18:20:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GDBDriver methodsFor:'accessing'!
-
-eventAnnouncer
-    ^ eventAnnouncer
-!
-
-eventAnnouncerInternal
-    ^ eventAnnouncerInternal
-
-    "Created: / 19-06-2014 / 22:18:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-inferiorPTY
-    ^ inferiorPTY
-! !
-
-!GDBDriver methodsFor:'event dispatching'!
-
-eventDispatchLoop
-    "raise an error: this method should be implemented (TODO)"
-
-    [  
-        | eventQueueEmpty |
-
-        eventQueueEmpty := false.
-        [ eventQueueEmpty ] whileFalse:[
-            | event |
-
-            event := nil.
-            eventQueueLock critical:[ 
-                eventQueueEmpty := eventQueue isEmpty.
-                eventQueueEmpty ifFalse:[ 
-                    event := eventQueue removeFirst.
-                ]
-            ].
-            eventQueueEmpty ifFalse:[
-                [
-                    self eventDispatchSingle: event.
-                ] on: Error do:[:ex | 
-                    "/ Pass
-                ].
-            ].
-        ].
-        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>"
-!
-
-eventDispatchSingle: aGDBEvent
-    TraceEvents ifTrue:[ 
-        Logger log: ('event loop: broadcasting %1 (%2)' bindWith: aGDBEvent class name with: aGDBEvent token) severity: #trace facility: 'GDB'
-    ].
-    eventAnnouncerInternal announce: aGDBEvent.
-    eventAnnouncer announce: aGDBEvent
-
-    "Created: / 02-06-2014 / 22:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 19-06-2014 / 22:18:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-eventDispatchStart
-    eventDispatchProcess isNil ifTrue:[
-        eventDispatchProcess := [
-                TraceEvents ifTrue:[
-                    Logger log: 'event loop: starting' severity: #trace facility: 'GDB'
-                ].
-                self eventDispatchLoop.
-            ] newProcess.
-        eventDispatchProcess name:('GDB Event dispatcher (%1)' bindWith:pid).
-        eventDispatchProcess priority:Processor userBackgroundPriority.
-        eventDispatchProcess addExitAction:[ 
-            eventDispatchProcess := nil. 
-            TraceEvents ifTrue:[
-                Logger log: 'event loop: terminated' severity: #trace facility: 'GDB'
-            ].
-        ].
-        eventDispatchProcess resume.
-    ].
-
-    "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>"
-!
-
-eventDispatchStop
-    | t |
-
-    t := eventDispatchProcess.
-    (t notNil and:[ t isDead not]) ifTrue:[ 
-        eventDispatchProcess := nil.
-        t terminate.
-         "/ raise its prio to make it terminate quickly
-        t priority:(Processor userSchedulingPriority + 1)                       
-    ].
-
-    "Created: / 02-06-2014 / 22:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GDBDriver 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>"
-! !
-
-!GDBDriver methodsFor:'event pump'!
-
-eventPumpLoop
-    | parser |
-
-    parser := GDBParser on: debuggerOutput.
-    parser token2CommandMappingBlock:[ :token | 
-        | command |
-
-        command :=  outstandingCommands detect:[:cmd | cmd token == token ] ifNone:[nil].
-        command notNil ifTrue:[ outstandingCommands remove: command ].
-        command
-    ].
-    [ debuggerOutput atEnd ] whileFalse:[ 
-        | eventset |
-
-        [
-            [ 
-                eventset := parser parseOutput.
-            ] on: StreamNotOpenError do:[
-                ^ self.
-            ].
-            self pushEventSet: eventset.
-        ] on: AbortOperationRequest do:[
-            | terminator i c |
-
-            terminator := '(gdb)'.
-            i := 1.
-            debuggerOutput notNil ifTrue:[
-                [ debuggerOutput atEnd not and: [i <= terminator size ] ] whileTrue:[ 
-                    c := debuggerOutput next.
-                    c == (terminator at: i) ifTrue:[ 
-                        i := i + 1.
-                    ] ifFalse:[ 
-                        i := 1.
-                    ].
-                ].
-                debuggerOutput next. "/ read nl.
-            ] ifFalse:[ 
-                ^ self.
-            ].
-        ]
-    ]
-
-    "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>"
-!
-
-eventPumpStart
-    eventPumpProcess isNil ifTrue:[
-        eventPumpProcess := [
-                TraceEvents ifTrue:[
-                    Logger log: 'event pump: starting' severity: #trace facility: 'GDB'
-                ].
-                self eventPumpLoop
-            ] newProcess.
-        eventPumpProcess name:('GDB Event pump (%1)' bindWith:pid).
-        eventPumpProcess priority:Processor userBackgroundPriority.
-        eventPumpProcess addExitAction:[ 
-            TraceEvents ifTrue:[
-                Logger log: 'event pump: terminated' severity: #trace facility: 'GDB'
-            ].
-            eventPumpProcess := nil. 
-        ].
-        eventPumpProcess resume.
-    ].
-
-    "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>"
-!
-
-eventPumpStop
-    | t |
-
-    t := eventPumpProcess.
-    (t notNil and:[ t isDead not]) ifTrue:[ 
-        eventPumpProcess := nil.
-        t terminate.
-         "/ raise its prio to make it terminate quickly
-        t priority:(Processor userSchedulingPriority + 1)                       
-    ].
-
-    "Created: / 02-06-2014 / 22:40:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GDBDriver methodsFor:'events'!
-
-pushEvent: aGDBEvent
-    eventQueueLock critical:[
-        eventQueue add: aGDBEvent.
-        eventQueueNotifier signalForAll.
-    ].
-
-    "Created: / 02-06-2014 / 22:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-pushEventSet: aGDBEventSet
-    eventQueueLock critical:[
-        eventQueue addAll: aGDBEventSet.
-        eventQueueNotifier signalForAll.
-    ].
-
-    "Created: / 02-06-2014 / 22:42:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GDBDriver methodsFor:'initialize & release'!
-
-initializeWithPid:pidArg input:inputArg output:outputArg
-    pid := pidArg.
-    debuggerInput := inputArg.
-    debuggerOutput := outputArg.
-    inferiorPTY := GDBPTY new.
-    eventQueue := OrderedCollection new.
-    eventQueueLock := RecursionLock new.
-    eventQueueNotifier := Semaphore new.
-    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>"
-!
-
-release
-    pid notNil ifTrue:[
-        OperatingSystem sendSignal:(OperatingSystem sigKILL) to: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>"
-!
-
-released: status
-    TraceProcesses ifTrue:[ 
-        Logger log: ('gdb process: terminated 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'.
-    ].
-    [ eventPumpProcess notNil ] whileTrue:[ 
-        Delay waitForMilliseconds: 200.  
-    ].
-    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.
-    ].
-    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>"
-! !
-
-!GDBDriver class methodsFor:'documentation'!
-
-version_HG
-
-    ^ '$Changeset: <not expanded> $'
-! !
-
--- a/GDBLauncher.st	Fri Jun 20 21:11:40 2014 +0100
+++ b/GDBLauncher.st	Fri Jun 20 21:25:03 2014 +0100
@@ -11,14 +11,13 @@
 !GDBLauncher class methodsFor:'starting'!
 
 startGDB
-    | inputPipe input outputPipe output  args  controller pid|
+    | 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 
@@ -33,13 +32,13 @@
                     fork:true
                     newPgrp:false
                     inDirectory:Filename currentDirectory.
-            controller := GDBDriver 
+            connection := GDBConnection 
                     pid:pid
                     input:input
                     output:output.
             pid.
         ]
-        action:[:stat | controller released:stat. ].
+        action:[:stat | connection released:stat. ].
     inputPipe first close.
     outputPipe second close.
     pid isNil ifTrue:[
@@ -48,7 +47,7 @@
         self error:'Failed to launch gdb'.
         ^ self.
     ].
-    ^ controller
+    ^ 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>"
--- a/Make.proto	Fri Jun 20 21:11:40 2014 +0100
+++ b/Make.proto	Fri Jun 20 21:25:03 2014 +0100
@@ -140,8 +140,8 @@
 $(OUTDIR)GDBCommandResult.$(O) GDBCommandResult.$(H): GDBCommandResult.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GDBCommandResultEvent.$(O) GDBCommandResultEvent.$(H): GDBCommandResultEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GDBCompoundValueDescriptor.$(O) GDBCompoundValueDescriptor.$(H): GDBCompoundValueDescriptor.st $(INCLUDE_TOP)/jv/libgdbs/GDBValueDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GDBConnection.$(O) GDBConnection.$(H): GDBConnection.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebugFlags.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GDBDebugger.$(O) GDBDebugger.$(H): GDBDebugger.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommandStatus.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)GDBDriver.$(O) GDBDriver.$(H): GDBDriver.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebugFlags.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GDBEnumValueDescriptor.$(O) GDBEnumValueDescriptor.$(H): GDBEnumValueDescriptor.st $(INCLUDE_TOP)/jv/libgdbs/GDBValueDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GDBInternalEvent.$(O) GDBInternalEvent.$(H): GDBInternalEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GDBMICommand.$(O) GDBMICommand.$(H): GDBMICommand.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec	Fri Jun 20 21:11:40 2014 +0100
+++ b/Make.spec	Fri Jun 20 21:25:03 2014 +0100
@@ -68,8 +68,8 @@
 	GDBCommandResult \
 	GDBCommandResultEvent \
 	GDBCompoundValueDescriptor \
+	GDBConnection \
 	GDBDebugger \
-	GDBDriver \
 	GDBEnumValueDescriptor \
 	GDBInternalEvent \
 	GDBMICommand \
@@ -233,8 +233,8 @@
     $(OUTDIR_SLASH)GDBCommandResult.$(O) \
     $(OUTDIR_SLASH)GDBCommandResultEvent.$(O) \
     $(OUTDIR_SLASH)GDBCompoundValueDescriptor.$(O) \
+    $(OUTDIR_SLASH)GDBConnection.$(O) \
     $(OUTDIR_SLASH)GDBDebugger.$(O) \
-    $(OUTDIR_SLASH)GDBDriver.$(O) \
     $(OUTDIR_SLASH)GDBEnumValueDescriptor.$(O) \
     $(OUTDIR_SLASH)GDBInternalEvent.$(O) \
     $(OUTDIR_SLASH)GDBMICommand.$(O) \
--- a/abbrev.stc	Fri Jun 20 21:11:40 2014 +0100
+++ b/abbrev.stc	Fri Jun 20 21:25:03 2014 +0100
@@ -19,8 +19,8 @@
 GDBCommandResult GDBCommandResult jv:libgdbs 'GDB-Core-Commands' 0
 GDBCommandResultEvent GDBCommandResultEvent jv:libgdbs 'GDB-Core-Events' 0
 GDBCompoundValueDescriptor GDBCompoundValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0
+GDBConnection GDBConnection jv:libgdbs 'GDB-Private' 0
 GDBDebugger GDBDebugger jv:libgdbs 'GDB-Core' 0
-GDBDriver GDBDriver jv:libgdbs 'GDB-Private' 0
 GDBEnumValueDescriptor GDBEnumValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0
 GDBInternalEvent GDBInternalEvent jv:libgdbs 'GDB-Core-Events' 0
 GDBMICommand GDBMICommand jv:libgdbs 'GDB-Core-Commands' 0
--- a/bc.mak	Fri Jun 20 21:11:40 2014 +0100
+++ b/bc.mak	Fri Jun 20 21:25:03 2014 +0100
@@ -86,8 +86,8 @@
 $(OUTDIR)GDBCommandResult.$(O) GDBCommandResult.$(H): GDBCommandResult.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GDBCommandResultEvent.$(O) GDBCommandResultEvent.$(H): GDBCommandResultEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GDBCompoundValueDescriptor.$(O) GDBCompoundValueDescriptor.$(H): GDBCompoundValueDescriptor.st $(INCLUDE_TOP)\jv\libgdbs\GDBValueDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GDBConnection.$(O) GDBConnection.$(H): GDBConnection.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebugFlags.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GDBDebugger.$(O) GDBDebugger.$(H): GDBDebugger.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommandStatus.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)GDBDriver.$(O) GDBDriver.$(H): GDBDriver.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebugFlags.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GDBEnumValueDescriptor.$(O) GDBEnumValueDescriptor.$(H): GDBEnumValueDescriptor.st $(INCLUDE_TOP)\jv\libgdbs\GDBValueDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GDBInternalEvent.$(O) GDBInternalEvent.$(H): GDBInternalEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GDBMICommand.$(O) GDBMICommand.$(H): GDBMICommand.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/jv_libgdbs.st	Fri Jun 20 21:11:40 2014 +0100
+++ b/jv_libgdbs.st	Fri Jun 20 21:25:03 2014 +0100
@@ -82,8 +82,8 @@
         GDBCommandResult
         GDBCommandResultEvent
         GDBCompoundValueDescriptor
+        GDBConnection
         GDBDebugger
-        GDBDriver
         GDBEnumValueDescriptor
         GDBInternalEvent
         GDBMICommand
--- a/libInit.cc	Fri Jun 20 21:11:40 2014 +0100
+++ b/libInit.cc	Fri Jun 20 21:25:03 2014 +0100
@@ -45,8 +45,8 @@
 _GDBCommandResult_Init(pass,__pRT__,snd);
 _GDBCommandResultEvent_Init(pass,__pRT__,snd);
 _GDBCompoundValueDescriptor_Init(pass,__pRT__,snd);
+_GDBConnection_Init(pass,__pRT__,snd);
 _GDBDebugger_Init(pass,__pRT__,snd);
-_GDBDriver_Init(pass,__pRT__,snd);
 _GDBEnumValueDescriptor_Init(pass,__pRT__,snd);
 _GDBInternalEvent_Init(pass,__pRT__,snd);
 _GDBMICommand_Init(pass,__pRT__,snd);
--- a/libgdbs.rc	Fri Jun 20 21:11:40 2014 +0100
+++ b/libgdbs.rc	Fri Jun 20 21:25:03 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:08:24 GMT\0"
+      VALUE "ProductDate", "Fri, 20 Jun 2014 20:22:51 GMT\0"
     END
 
   END
--- a/tests/tests.rc	Fri Jun 20 21:11:40 2014 +0100
+++ b/tests/tests.rc	Fri Jun 20 21:25:03 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:08:26 GMT\0"
+      VALUE "ProductDate", "Fri, 20 Jun 2014 20:22:53 GMT\0"
     END
 
   END