# HG changeset patch # User Jan Vrany # Date 1403295903 -3600 # Node ID 57025871aed465a7667792b7f1b03e0ffefe3db6 # Parent 83395ca8b257691ea6f0c8c3093efdb5da08683d Renamed GDBDriver to GDBConnection. diff -r 83395ca8b257 -r 57025871aed4 GDBConnection.st --- /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 " +! ! + +!GDBConnection methodsFor:'accessing'! + +eventAnnouncer + ^ eventAnnouncer +! + +eventAnnouncerInternal + ^ eventAnnouncerInternal + + "Created: / 19-06-2014 / 22:18:02 / Jan Vrany " +! + +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 " + "Modified (comment): / 04-06-2014 / 09:16:12 / Jan Vrany " +! + +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 " + "Modified: / 19-06-2014 / 22:18:27 / Jan Vrany " +! + +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 " + "Modified: / 04-06-2014 / 09:27:04 / Jan Vrany " +! + +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 " +! ! + +!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 " + "Modified: / 19-06-2014 / 22:08:31 / Jan Vrany " +! ! + +!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 " + "Modified: / 19-06-2014 / 22:10:24 / Jan Vrany " +! + +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 " + "Modified: / 04-06-2014 / 09:27:12 / Jan Vrany " +! + +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 " +! ! + +!GDBConnection methodsFor:'events'! + +pushEvent: aGDBEvent + eventQueueLock critical:[ + eventQueue add: aGDBEvent. + eventQueueNotifier signalForAll. + ]. + + "Created: / 02-06-2014 / 22:49:49 / Jan Vrany " +! + +pushEventSet: aGDBEventSet + eventQueueLock critical:[ + eventQueue addAll: aGDBEventSet. + eventQueueNotifier signalForAll. + ]. + + "Created: / 02-06-2014 / 22:42:54 / Jan Vrany " +! ! + +!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 " + "Modified: / 19-06-2014 / 22:18:10 / Jan Vrany " +! + +release + pid notNil ifTrue:[ + OperatingSystem sendSignal:(OperatingSystem sigKILL) to:pid. + ] + + "Created: / 26-05-2014 / 21:30:30 / Jan Vrany " + "Modified: / 03-06-2014 / 00:55:22 / Jan Vrany " +! + +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 " + "Modified: / 09-06-2014 / 18:26:12 / Jan Vrany " +! ! + +!GDBConnection class methodsFor:'documentation'! + +version_HG + + ^ '$Changeset: $' +! ! + diff -r 83395ca8b257 -r 57025871aed4 GDBDriver.st --- 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 " -! ! - -!GDBDriver methodsFor:'accessing'! - -eventAnnouncer - ^ eventAnnouncer -! - -eventAnnouncerInternal - ^ eventAnnouncerInternal - - "Created: / 19-06-2014 / 22:18:02 / Jan Vrany " -! - -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 " - "Modified (comment): / 04-06-2014 / 09:16:12 / Jan Vrany " -! - -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 " - "Modified: / 19-06-2014 / 22:18:27 / Jan Vrany " -! - -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 " - "Modified: / 04-06-2014 / 09:27:04 / Jan Vrany " -! - -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 " -! ! - -!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 " - "Modified: / 19-06-2014 / 22:08:31 / Jan Vrany " -! ! - -!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 " - "Modified: / 19-06-2014 / 22:10:24 / Jan Vrany " -! - -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 " - "Modified: / 04-06-2014 / 09:27:12 / Jan Vrany " -! - -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 " -! ! - -!GDBDriver methodsFor:'events'! - -pushEvent: aGDBEvent - eventQueueLock critical:[ - eventQueue add: aGDBEvent. - eventQueueNotifier signalForAll. - ]. - - "Created: / 02-06-2014 / 22:49:49 / Jan Vrany " -! - -pushEventSet: aGDBEventSet - eventQueueLock critical:[ - eventQueue addAll: aGDBEventSet. - eventQueueNotifier signalForAll. - ]. - - "Created: / 02-06-2014 / 22:42:54 / Jan Vrany " -! ! - -!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 " - "Modified: / 19-06-2014 / 22:18:10 / Jan Vrany " -! - -release - pid notNil ifTrue:[ - OperatingSystem sendSignal:(OperatingSystem sigKILL) to:pid. - ] - - "Created: / 26-05-2014 / 21:30:30 / Jan Vrany " - "Modified: / 03-06-2014 / 00:55:22 / Jan Vrany " -! - -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 " - "Modified: / 09-06-2014 / 18:26:12 / Jan Vrany " -! ! - -!GDBDriver class methodsFor:'documentation'! - -version_HG - - ^ '$Changeset: $' -! ! - diff -r 83395ca8b257 -r 57025871aed4 GDBLauncher.st --- 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 " "Modified: / 09-06-2014 / 18:31:51 / Jan Vrany " diff -r 83395ca8b257 -r 57025871aed4 Make.proto --- 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) diff -r 83395ca8b257 -r 57025871aed4 Make.spec --- 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) \ diff -r 83395ca8b257 -r 57025871aed4 abbrev.stc --- 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 diff -r 83395ca8b257 -r 57025871aed4 bc.mak --- 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) diff -r 83395ca8b257 -r 57025871aed4 jv_libgdbs.st --- 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 diff -r 83395ca8b257 -r 57025871aed4 libInit.cc --- 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); diff -r 83395ca8b257 -r 57025871aed4 libgdbs.rc --- 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 diff -r 83395ca8b257 -r 57025871aed4 tests/tests.rc --- 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