# HG changeset patch # User Jan Vrany # Date 1410126295 -3600 # Node ID 095c4b0b74d39b6594657d91f0a6dc8973654794 # Parent c17ecf90e446bfb6908f601265d564a8b896430f Added support for threads. Each thread group now knows it's threads. diff -r c17ecf90e446 -r 095c4b0b74d3 GDBBreakpoint.st --- a/GDBBreakpoint.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBBreakpoint.st Sun Sep 07 22:44:55 2014 +0100 @@ -1,6 +1,6 @@ "{ Package: 'jv:libgdbs' }" -GDBObject subclass:#GDBBreakpoint +GDBDebuggerObject subclass:#GDBBreakpoint instanceVariableNames:'number type disp enabled addr func file fullname line times' classVariableNames:'' poolDictionaries:'' diff -r c17ecf90e446 -r 095c4b0b74d3 GDBConnection.st --- a/GDBConnection.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBConnection.st Sun Sep 07 22:44:55 2014 +0100 @@ -86,12 +86,18 @@ ]. ]. ]. - process pid isNil ifTrue:[ ^ self ]. "/ gdb process terninated + process pid isNil ifTrue:[ + "/ gdb process terninated + (process debuggerOutput isNil or:[ process debuggerOutput atEnd ]) ifTrue:[ + "/ No unprocessed output in stream... + ^ self + ] + ]. eventQueueNotifier wait. ] loop. "Created: / 02-06-2014 / 22:51:48 / Jan Vrany " - "Modified: / 20-06-2014 / 21:38:10 / Jan Vrany " + "Modified: / 07-09-2014 / 22:38:25 / Jan Vrany " ! eventDispatchSingle: aGDBEvent diff -r c17ecf90e446 -r 095c4b0b74d3 GDBDebugger.st --- a/GDBDebugger.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBDebugger.st Sun Sep 07 22:44:55 2014 +0100 @@ -31,6 +31,14 @@ "Created: / 02-06-2014 / 23:06:20 / Jan Vrany " ! +inferiorForId: id + ^ inferiors ? #() detect:[:e | e id = id ] ifNone:[ + self error: ('No inferior (thread group) with id ''%1'' found!!' bindWith: id) + ]. + + "Created: / 07-09-2014 / 21:22:56 / Jan Vrany " +! + inferiorStderr ^ connection inferiorPTY master @@ -149,48 +157,56 @@ "Modified: / 04-06-2014 / 09:28:59 / Jan Vrany " ! +onThreadCreated:aGDBThreadCreatedEvent + | inferior | + + inferior := self inferiorForId: aGDBThreadCreatedEvent threadGroupId. + inferior onThreadCreated: aGDBThreadCreatedEvent. + + "Created: / 07-09-2014 / 21:20:39 / Jan Vrany " +! + +onThreadExited:aGDBThreadExitedEvent + | inferior | + + inferior := self inferiorForId: aGDBThreadExitedEvent threadGroupId. + inferior onThreadExited: aGDBThreadExitedEvent. + + "Created: / 07-09-2014 / 21:20:51 / Jan Vrany " +! + onThreadGroupAdded:aGDBThreadGroupAddedEvent | inferior | inferiors isNil ifTrue:[ inferiors := List new. ]. - inferior := GDBThreadGroup newWithId:aGDBThreadGroupAddedEvent id. + inferior := GDBThreadGroup newWithDebugger: self id:aGDBThreadGroupAddedEvent threadGroupId. inferiors add:inferior. aGDBThreadGroupAddedEvent setThreadGroup: inferior - "Modified: / 07-09-2014 / 13:36:11 / Jan Vrany " + "Modified: / 07-09-2014 / 21:18:54 / Jan Vrany " ! onThreadGroupExited:aGDBThreadGroupExitedEvent | inferior | - inferiors notNil ifTrue:[ - inferior := inferiors detect:[:e | e id = aGDBThreadGroupExitedEvent id ]. - ]. - inferior isNil ifTrue:[ - self error:('Mo inferior with id "%1" ' bindWith: aGDBThreadGroupExitedEvent id) - ]. + inferior := self inferiorForId: aGDBThreadGroupExitedEvent threadGroupId. inferior setExitCode: aGDBThreadGroupExitedEvent exitCode. aGDBThreadGroupExitedEvent setThreadGroup: inferior "Created: / 06-09-2014 / 02:37:04 / Jan Vrany " - "Modified: / 07-09-2014 / 13:36:22 / Jan Vrany " + "Modified: / 07-09-2014 / 21:23:52 / Jan Vrany " ! onThreadGroupStarted:aGDBThreadGroupStartedEvent | inferior | - inferiors notNil ifTrue:[ - inferior := inferiors detect:[:e | e id = aGDBThreadGroupStartedEvent id ]. - ]. - inferior isNil ifTrue:[ - self error:('Mo inferior with id "%1" ' bindWith: aGDBThreadGroupStartedEvent id) - ]. + inferior := self inferiorForId: aGDBThreadGroupStartedEvent threadGroupId. inferior setPid: aGDBThreadGroupStartedEvent pid. aGDBThreadGroupStartedEvent setThreadGroup: inferior "Created: / 06-09-2014 / 02:37:31 / Jan Vrany " - "Modified: / 07-09-2014 / 13:36:40 / Jan Vrany " + "Modified: / 07-09-2014 / 21:23:32 / Jan Vrany " ! ! !GDBDebugger methodsFor:'finalization'! @@ -243,10 +259,13 @@ when: GDBThreadGroupAddedEvent send: #onThreadGroupAdded: to: self; when: GDBThreadGroupStartedEvent send: #onThreadGroupStarted: to: self; - when: GDBThreadGroupExitedEvent send: #onThreadGroupExited: to: self. + when: GDBThreadGroupExitedEvent send: #onThreadGroupExited: to: self; + + when: GDBThreadCreatedEvent send: #onThreadCreated: to: self; + when: GDBThreadExitedEvent send: #onThreadExited: to: self. "Created: / 20-06-2014 / 22:07:04 / Jan Vrany " - "Modified: / 06-09-2014 / 02:30:07 / Jan Vrany " + "Modified: / 07-09-2014 / 22:29:13 / Jan Vrany " ! unsubscribe diff -r c17ecf90e446 -r 095c4b0b74d3 GDBDebuggerObject.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GDBDebuggerObject.st Sun Sep 07 22:44:55 2014 +0100 @@ -0,0 +1,18 @@ +"{ Package: 'jv:libgdbs' }" + +GDBObject subclass:#GDBDebuggerObject + instanceVariableNames:'debugger' + classVariableNames:'' + poolDictionaries:'' + category:'GDB-Core' +! + +!GDBDebuggerObject methodsFor:'initialization'! + +setDebugger: aGDBDebugger + self assert: debugger isNil. + debugger := aGDBDebugger + + "Created: / 07-09-2014 / 21:17:43 / Jan Vrany " +! ! + diff -r c17ecf90e446 -r 095c4b0b74d3 GDBThread.st --- a/GDBThread.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBThread.st Sun Sep 07 22:44:55 2014 +0100 @@ -1,12 +1,24 @@ "{ Package: 'jv:libgdbs' }" -GDBObject subclass:#GDBThread - instanceVariableNames:'id group' +GDBDebuggerObject subclass:#GDBThread + instanceVariableNames:'id group terminated' classVariableNames:'' poolDictionaries:'' category:'GDB-Core' ! +!GDBThread class methodsFor:'instance creation'! + +newWithDebugger: debugger id: id group: group + ^ self new + setDebugger: debugger; + setId: id; + setGroup: group; + yourself. + + "Created: / 07-09-2014 / 21:33:21 / Jan Vrany " +! ! + !GDBThread class methodsFor:'accessing - GDB value descriptors'! gdbValueDescriptor @@ -17,3 +29,39 @@ "Created: / 06-09-2014 / 02:21:07 / Jan Vrany " ! ! +!GDBThread methodsFor:'accessing'! + +id + ^ id + + "Created: / 07-09-2014 / 22:41:29 / Jan Vrany " +! + +terminated + ^ terminated ? false + + "Modified: / 07-09-2014 / 21:37:21 / Jan Vrany " +! ! + +!GDBThread methodsFor:'initialization'! + +setGroup: aGDBThreadGroup + self assert: group isNil. + group := aGDBThreadGroup. + + "Created: / 07-09-2014 / 21:32:07 / Jan Vrany " +! + +setId: tid + self assert: id isNil. + id := tid. + + "Created: / 07-09-2014 / 21:31:30 / Jan Vrany " +! + +setTerminated + terminated := true. + + "Created: / 07-09-2014 / 21:37:37 / Jan Vrany " +! ! + diff -r c17ecf90e446 -r 095c4b0b74d3 GDBThreadEvent.st --- a/GDBThreadEvent.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBThreadEvent.st Sun Sep 07 22:44:55 2014 +0100 @@ -1,7 +1,7 @@ "{ Package: 'jv:libgdbs' }" GDBNotificationEvent subclass:#GDBThreadEvent - instanceVariableNames:'id group_id' + instanceVariableNames:'thread id group_id' classVariableNames:'' poolDictionaries:'' category:'GDB-Core-Events' @@ -18,3 +18,35 @@ "Created: / 06-09-2014 / 02:08:34 / Jan Vrany " ! ! +!GDBThreadEvent methodsFor:'accessing'! + +thread + ^ thread +! + +threadGroup + ^ thread threadGroup + + "Created: / 07-09-2014 / 18:07:35 / Jan Vrany " +! + +threadGroupId + ^ group_id + + "Created: / 07-09-2014 / 18:07:19 / Jan Vrany " +! + +threadId + ^ id + + "Created: / 07-09-2014 / 18:07:04 / Jan Vrany " +! ! + +!GDBThreadEvent methodsFor:'initialization'! + +setThread: aGDBThread + thread := aGDBThread + + "Created: / 07-09-2014 / 15:05:24 / Jan Vrany " +! ! + diff -r c17ecf90e446 -r 095c4b0b74d3 GDBThreadGroup.st --- a/GDBThreadGroup.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBThreadGroup.st Sun Sep 07 22:44:55 2014 +0100 @@ -1,6 +1,6 @@ "{ Package: 'jv:libgdbs' }" -GDBObject subclass:#GDBThreadGroup +GDBDebuggerObject subclass:#GDBThreadGroup instanceVariableNames:'id pid exit_code threads' classVariableNames:'' poolDictionaries:'' @@ -9,10 +9,10 @@ !GDBThreadGroup class methodsFor:'instance creation'! -newWithId: aString - ^ self new setId: aString; yourself +newWithDebugger: debugger id: aString + ^ self new setDebugger: debugger; setId: aString; yourself - "Created: / 06-09-2014 / 02:31:48 / Jan Vrany " + "Created: / 07-09-2014 / 21:18:36 / Jan Vrany " ! ! !GDBThreadGroup class methodsFor:'accessing - GDB value descriptors'! @@ -42,13 +42,46 @@ ^ pid ! +threadWithId: tid + ^ threads ? #() detect:[:e | e id = tid ] ifNone:[ + self error: ('No thread with id ''%1'' found!!' bindWith: tid) + ]. + + "Created: / 07-09-2014 / 21:37:01 / Jan Vrany " +! + threads threads isNil ifTrue:[ threads := List new. + ]. + ^ threads + + "Modified: / 06-09-2014 / 02:23:22 / Jan Vrany " + "Modified (format): / 07-09-2014 / 21:42:28 / Jan Vrany " +! ! + +!GDBThreadGroup methodsFor:'event handling'! + +onThreadCreated:aGDBThreadCreatedEvent + | thread | + threads isNil ifTrue:[ + threads := List new. ]. - ^ threads + thread := GDBThread newWithDebugger: debugger id: aGDBThreadCreatedEvent threadId group: self. + threads add: thread. + aGDBThreadCreatedEvent setThread: thread. + + "Created: / 07-09-2014 / 21:25:08 / Jan Vrany " +! - "Modified: / 06-09-2014 / 02:23:22 / Jan Vrany " +onThreadExited:aGDBThreadExitedEvent + | thread | + + thread := self threadWithId:aGDBThreadExitedEvent threadId. + thread setTerminated. + aGDBThreadExitedEvent setThread: thread + + "Created: / 07-09-2014 / 21:25:24 / Jan Vrany " ! ! !GDBThreadGroup methodsFor:'initialization'! diff -r c17ecf90e446 -r 095c4b0b74d3 GDBThreadGroupEvent.st --- a/GDBThreadGroupEvent.st Sun Sep 07 14:42:02 2014 +0100 +++ b/GDBThreadGroupEvent.st Sun Sep 07 22:44:55 2014 +0100 @@ -19,19 +19,23 @@ !GDBThreadGroupEvent methodsFor:'accessing'! -id - ^ id +threadGroup + ^ threadGroup ! -threadGroup - ^ threadGroup +threadGroupId + ^ id + + "Created: / 07-09-2014 / 15:08:59 / Jan Vrany " ! ! !GDBThreadGroupEvent methodsFor:'initialization'! setThreadGroup: aGDBThreadGroup - threadGroup := aGDBThreadGroup + self assert: id = aGDBThreadGroup id. + threadGroup := aGDBThreadGroup. "Created: / 07-09-2014 / 12:45:35 / Jan Vrany " + "Modified: / 07-09-2014 / 18:05:19 / Jan Vrany " ! ! diff -r c17ecf90e446 -r 095c4b0b74d3 Make.proto --- a/Make.proto Sun Sep 07 14:42:02 2014 +0100 +++ b/Make.proto Sun Sep 07 22:44:55 2014 +0100 @@ -141,7 +141,6 @@ $(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) $(OUTDIR)GDBAsyncEvent.$(O) GDBAsyncEvent.$(H): GDBAsyncEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)GDBBreakpoint.$(O) GDBBreakpoint.$(H): GDBBreakpoint.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBCLICommand.$(O) GDBCLICommand.$(H): GDBCLICommand.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBCommandEvent.$(O) GDBCommandEvent.$(H): GDBCommandEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBCommandResult.$(O) GDBCommandResult.$(H): GDBCommandResult.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) @@ -149,6 +148,7 @@ $(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)GDBDebuggerObject.$(O) GDBDebuggerObject.$(H): GDBDebuggerObject.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(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) @@ -157,11 +157,10 @@ $(OUTDIR)GDBSessionRecorder.$(O) GDBSessionRecorder.$(H): GDBSessionRecorder.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebugFlags.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBSimulatorProcess.$(O) GDBSimulatorProcess.$(H): GDBSimulatorProcess.st $(INCLUDE_TOP)/jv/libgdbs/GDBProcess.$(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)GDBThread.$(O) GDBThread.$(H): GDBThread.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) -$(OUTDIR)GDBThreadGroup.$(O) GDBThreadGroup.$(H): GDBThreadGroup.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(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)GDBBreakpoint.$(O) GDBBreakpoint.$(H): GDBBreakpoint.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebuggerObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(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) $(OUTDIR)GDBExecutionEvent.$(O) GDBExecutionEvent.$(H): GDBExecutionEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBExitEvent.$(O) GDBExitEvent.$(H): GDBExitEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBInternalEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) @@ -282,6 +281,8 @@ $(OUTDIR)GDBStatusEvent.$(O) GDBStatusEvent.$(H): GDBStatusEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBStringValueDescriptor.$(O) GDBStringValueDescriptor.$(H): GDBStringValueDescriptor.st $(INCLUDE_TOP)/jv/libgdbs/GDBPrimitiveValueDescriptor.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBValueDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBTargetOutputEvent.$(O) GDBTargetOutputEvent.$(H): GDBTargetOutputEvent.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) +$(OUTDIR)GDBThread.$(O) GDBThread.$(H): GDBThread.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebuggerObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)GDBThreadGroup.$(O) GDBThreadGroup.$(H): GDBThreadGroup.st $(INCLUDE_TOP)/jv/libgdbs/GDBDebuggerObject.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBBreakpointDeletedEvent.$(O) GDBBreakpointDeletedEvent.$(H): GDBBreakpointDeletedEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBNotificationEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBBreakpointEvent.$(O) GDBBreakpointEvent.$(H): GDBBreakpointEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBNotificationEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)GDBLibraryLoadedEvent.$(O) GDBLibraryLoadedEvent.$(H): GDBLibraryLoadedEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBNotificationEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) diff -r c17ecf90e446 -r 095c4b0b74d3 Make.spec --- a/Make.spec Sun Sep 07 14:42:02 2014 +0100 +++ b/Make.spec Sun Sep 07 22:44:55 2014 +0100 @@ -64,7 +64,6 @@ GDBValueDescriptorError \ jv_libgdbs \ GDBAsyncEvent \ - GDBBreakpoint \ GDBCLICommand \ GDBCommandEvent \ GDBCommandResult \ @@ -72,6 +71,7 @@ GDBCompoundValueDescriptor \ GDBConnection \ GDBDebugger \ + GDBDebuggerObject \ GDBEnumValueDescriptor \ GDBInternalEvent \ GDBMICommand \ @@ -80,11 +80,10 @@ GDBSessionRecorder \ GDBSimulatorProcess \ GDBStreamOutputEvent \ - GDBThread \ - GDBThreadGroup \ GDBUnixProcess \ GDBAddresValueDescriptor \ GDBBooleanValueDescriptor \ + GDBBreakpoint \ GDBConsoleOutputEvent \ GDBExecutionEvent \ GDBExitEvent \ @@ -205,6 +204,8 @@ GDBStatusEvent \ GDBStringValueDescriptor \ GDBTargetOutputEvent \ + GDBThread \ + GDBThreadGroup \ GDBBreakpointDeletedEvent \ GDBBreakpointEvent \ GDBLibraryLoadedEvent \ @@ -239,7 +240,6 @@ $(OUTDIR_SLASH)GDBValueDescriptorError.$(O) \ $(OUTDIR_SLASH)jv_libgdbs.$(O) \ $(OUTDIR_SLASH)GDBAsyncEvent.$(O) \ - $(OUTDIR_SLASH)GDBBreakpoint.$(O) \ $(OUTDIR_SLASH)GDBCLICommand.$(O) \ $(OUTDIR_SLASH)GDBCommandEvent.$(O) \ $(OUTDIR_SLASH)GDBCommandResult.$(O) \ @@ -247,6 +247,7 @@ $(OUTDIR_SLASH)GDBCompoundValueDescriptor.$(O) \ $(OUTDIR_SLASH)GDBConnection.$(O) \ $(OUTDIR_SLASH)GDBDebugger.$(O) \ + $(OUTDIR_SLASH)GDBDebuggerObject.$(O) \ $(OUTDIR_SLASH)GDBEnumValueDescriptor.$(O) \ $(OUTDIR_SLASH)GDBInternalEvent.$(O) \ $(OUTDIR_SLASH)GDBMICommand.$(O) \ @@ -255,11 +256,10 @@ $(OUTDIR_SLASH)GDBSessionRecorder.$(O) \ $(OUTDIR_SLASH)GDBSimulatorProcess.$(O) \ $(OUTDIR_SLASH)GDBStreamOutputEvent.$(O) \ - $(OUTDIR_SLASH)GDBThread.$(O) \ - $(OUTDIR_SLASH)GDBThreadGroup.$(O) \ $(OUTDIR_SLASH)GDBUnixProcess.$(O) \ $(OUTDIR_SLASH)GDBAddresValueDescriptor.$(O) \ $(OUTDIR_SLASH)GDBBooleanValueDescriptor.$(O) \ + $(OUTDIR_SLASH)GDBBreakpoint.$(O) \ $(OUTDIR_SLASH)GDBConsoleOutputEvent.$(O) \ $(OUTDIR_SLASH)GDBExecutionEvent.$(O) \ $(OUTDIR_SLASH)GDBExitEvent.$(O) \ @@ -380,6 +380,8 @@ $(OUTDIR_SLASH)GDBStatusEvent.$(O) \ $(OUTDIR_SLASH)GDBStringValueDescriptor.$(O) \ $(OUTDIR_SLASH)GDBTargetOutputEvent.$(O) \ + $(OUTDIR_SLASH)GDBThread.$(O) \ + $(OUTDIR_SLASH)GDBThreadGroup.$(O) \ $(OUTDIR_SLASH)GDBBreakpointDeletedEvent.$(O) \ $(OUTDIR_SLASH)GDBBreakpointEvent.$(O) \ $(OUTDIR_SLASH)GDBLibraryLoadedEvent.$(O) \ diff -r c17ecf90e446 -r 095c4b0b74d3 abbrev.stc --- a/abbrev.stc Sun Sep 07 14:42:02 2014 +0100 +++ b/abbrev.stc Sun Sep 07 22:44:55 2014 +0100 @@ -16,7 +16,6 @@ GDBValueDescriptorError GDBValueDescriptorError jv:libgdbs 'GDB-Private-Descriptors' 1 jv_libgdbs jv_libgdbs jv:libgdbs '* Projects & Packages *' 3 GDBAsyncEvent GDBAsyncEvent jv:libgdbs 'GDB-Core-Events' 0 -GDBBreakpoint GDBBreakpoint jv:libgdbs 'GDB-Core' 0 GDBCLICommand GDBCLICommand jv:libgdbs 'GDB-Core-Commands' 0 GDBCommandEvent GDBCommandEvent jv:libgdbs 'GDB-Core-Events' 0 GDBCommandResult GDBCommandResult jv:libgdbs 'GDB-Core-Commands' 0 @@ -24,6 +23,7 @@ GDBCompoundValueDescriptor GDBCompoundValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0 GDBConnection GDBConnection jv:libgdbs 'GDB-Private' 0 GDBDebugger GDBDebugger jv:libgdbs 'GDB-Core' 0 +GDBDebuggerObject GDBDebuggerObject jv:libgdbs 'GDB-Core' 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 @@ -32,11 +32,10 @@ GDBSessionRecorder GDBSessionRecorder jv:libgdbs 'GDB-Private-Simulator' 0 GDBSimulatorProcess GDBSimulatorProcess jv:libgdbs 'GDB-Private-Simulator' 0 GDBStreamOutputEvent GDBStreamOutputEvent jv:libgdbs 'GDB-Core-Events' 0 -GDBThread GDBThread jv:libgdbs 'GDB-Core' 0 -GDBThreadGroup GDBThreadGroup jv:libgdbs 'GDB-Core' 0 GDBUnixProcess GDBUnixProcess jv:libgdbs 'GDB-Private' 0 GDBAddresValueDescriptor GDBAddresValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0 GDBBooleanValueDescriptor GDBBooleanValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0 +GDBBreakpoint GDBBreakpoint jv:libgdbs 'GDB-Core' 0 GDBConsoleOutputEvent GDBConsoleOutputEvent jv:libgdbs 'GDB-Core-Events' 0 GDBExecutionEvent GDBExecutionEvent jv:libgdbs 'GDB-Core-Events' 0 GDBExitEvent GDBExitEvent jv:libgdbs 'GDB-Core-Events' 0 @@ -157,6 +156,8 @@ GDBStatusEvent GDBStatusEvent jv:libgdbs 'GDB-Core-Events' 0 GDBStringValueDescriptor GDBStringValueDescriptor jv:libgdbs 'GDB-Private-Descriptors' 0 GDBTargetOutputEvent GDBTargetOutputEvent jv:libgdbs 'GDB-Core-Events' 0 +GDBThread GDBThread jv:libgdbs 'GDB-Core' 0 +GDBThreadGroup GDBThreadGroup jv:libgdbs 'GDB-Core' 0 GDBBreakpointDeletedEvent GDBBreakpointDeletedEvent jv:libgdbs 'GDB-Core-Events' 0 GDBBreakpointEvent GDBBreakpointEvent jv:libgdbs 'GDB-Core-Events' 0 GDBLibraryLoadedEvent GDBLibraryLoadedEvent jv:libgdbs 'GDB-Core-Events' 0 diff -r c17ecf90e446 -r 095c4b0b74d3 bc.mak --- a/bc.mak Sun Sep 07 14:42:02 2014 +0100 +++ b/bc.mak Sun Sep 07 22:44:55 2014 +0100 @@ -87,7 +87,6 @@ $(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) $(OUTDIR)GDBAsyncEvent.$(O) GDBAsyncEvent.$(H): GDBAsyncEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)GDBBreakpoint.$(O) GDBBreakpoint.$(H): GDBBreakpoint.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBCLICommand.$(O) GDBCLICommand.$(H): GDBCLICommand.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBCommandEvent.$(O) GDBCommandEvent.$(H): GDBCommandEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBCommandResult.$(O) GDBCommandResult.$(H): GDBCommandResult.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) @@ -95,6 +94,7 @@ $(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)GDBDebuggerObject.$(O) GDBDebuggerObject.$(H): GDBDebuggerObject.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(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) @@ -103,11 +103,10 @@ $(OUTDIR)GDBSessionRecorder.$(O) GDBSessionRecorder.$(H): GDBSessionRecorder.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebugFlags.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBSimulatorProcess.$(O) GDBSimulatorProcess.$(H): GDBSimulatorProcess.st $(INCLUDE_TOP)\jv\libgdbs\GDBProcess.$(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)GDBThread.$(O) GDBThread.$(H): GDBThread.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) -$(OUTDIR)GDBThreadGroup.$(O) GDBThreadGroup.$(H): GDBThreadGroup.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(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)GDBBreakpoint.$(O) GDBBreakpoint.$(H): GDBBreakpoint.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebuggerObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(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) $(OUTDIR)GDBExecutionEvent.$(O) GDBExecutionEvent.$(H): GDBExecutionEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBExitEvent.$(O) GDBExitEvent.$(H): GDBExitEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBInternalEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) @@ -228,6 +227,8 @@ $(OUTDIR)GDBStatusEvent.$(O) GDBStatusEvent.$(H): GDBStatusEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBStringValueDescriptor.$(O) GDBStringValueDescriptor.$(H): GDBStringValueDescriptor.st $(INCLUDE_TOP)\jv\libgdbs\GDBPrimitiveValueDescriptor.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBValueDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBTargetOutputEvent.$(O) GDBTargetOutputEvent.$(H): GDBTargetOutputEvent.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) +$(OUTDIR)GDBThread.$(O) GDBThread.$(H): GDBThread.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebuggerObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)GDBThreadGroup.$(O) GDBThreadGroup.$(H): GDBThreadGroup.st $(INCLUDE_TOP)\jv\libgdbs\GDBDebuggerObject.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBBreakpointDeletedEvent.$(O) GDBBreakpointDeletedEvent.$(H): GDBBreakpointDeletedEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBNotificationEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBBreakpointEvent.$(O) GDBBreakpointEvent.$(H): GDBBreakpointEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBNotificationEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)GDBLibraryLoadedEvent.$(O) GDBLibraryLoadedEvent.$(H): GDBLibraryLoadedEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBNotificationEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) diff -r c17ecf90e446 -r 095c4b0b74d3 jv_libgdbs.st --- a/jv_libgdbs.st Sun Sep 07 14:42:02 2014 +0100 +++ b/jv_libgdbs.st Sun Sep 07 22:44:55 2014 +0100 @@ -81,7 +81,6 @@ GDBValueDescriptorError #'jv_libgdbs' GDBAsyncEvent - GDBBreakpoint GDBCLICommand GDBCommandEvent GDBCommandResult @@ -89,6 +88,7 @@ GDBCompoundValueDescriptor GDBConnection GDBDebugger + GDBDebuggerObject GDBEnumValueDescriptor GDBInternalEvent GDBMICommand @@ -97,11 +97,10 @@ GDBSessionRecorder GDBSimulatorProcess GDBStreamOutputEvent - GDBThread - GDBThreadGroup GDBUnixProcess GDBAddresValueDescriptor GDBBooleanValueDescriptor + GDBBreakpoint GDBConsoleOutputEvent GDBExecutionEvent GDBExitEvent @@ -222,6 +221,8 @@ GDBStatusEvent GDBStringValueDescriptor GDBTargetOutputEvent + GDBThread + GDBThreadGroup GDBBreakpointDeletedEvent GDBBreakpointEvent GDBLibraryLoadedEvent diff -r c17ecf90e446 -r 095c4b0b74d3 libInit.cc --- a/libInit.cc Sun Sep 07 14:42:02 2014 +0100 +++ b/libInit.cc Sun Sep 07 22:44:55 2014 +0100 @@ -41,7 +41,6 @@ _GDBValueDescriptorError_Init(pass,__pRT__,snd); _jv_137libgdbs_Init(pass,__pRT__,snd); _GDBAsyncEvent_Init(pass,__pRT__,snd); -_GDBBreakpoint_Init(pass,__pRT__,snd); _GDBCLICommand_Init(pass,__pRT__,snd); _GDBCommandEvent_Init(pass,__pRT__,snd); _GDBCommandResult_Init(pass,__pRT__,snd); @@ -49,6 +48,7 @@ _GDBCompoundValueDescriptor_Init(pass,__pRT__,snd); _GDBConnection_Init(pass,__pRT__,snd); _GDBDebugger_Init(pass,__pRT__,snd); +_GDBDebuggerObject_Init(pass,__pRT__,snd); _GDBEnumValueDescriptor_Init(pass,__pRT__,snd); _GDBInternalEvent_Init(pass,__pRT__,snd); _GDBMICommand_Init(pass,__pRT__,snd); @@ -57,11 +57,10 @@ _GDBSessionRecorder_Init(pass,__pRT__,snd); _GDBSimulatorProcess_Init(pass,__pRT__,snd); _GDBStreamOutputEvent_Init(pass,__pRT__,snd); -_GDBThread_Init(pass,__pRT__,snd); -_GDBThreadGroup_Init(pass,__pRT__,snd); _GDBUnixProcess_Init(pass,__pRT__,snd); _GDBAddresValueDescriptor_Init(pass,__pRT__,snd); _GDBBooleanValueDescriptor_Init(pass,__pRT__,snd); +_GDBBreakpoint_Init(pass,__pRT__,snd); _GDBConsoleOutputEvent_Init(pass,__pRT__,snd); _GDBExecutionEvent_Init(pass,__pRT__,snd); _GDBExitEvent_Init(pass,__pRT__,snd); @@ -182,6 +181,8 @@ _GDBStatusEvent_Init(pass,__pRT__,snd); _GDBStringValueDescriptor_Init(pass,__pRT__,snd); _GDBTargetOutputEvent_Init(pass,__pRT__,snd); +_GDBThread_Init(pass,__pRT__,snd); +_GDBThreadGroup_Init(pass,__pRT__,snd); _GDBBreakpointDeletedEvent_Init(pass,__pRT__,snd); _GDBBreakpointEvent_Init(pass,__pRT__,snd); _GDBLibraryLoadedEvent_Init(pass,__pRT__,snd); diff -r c17ecf90e446 -r 095c4b0b74d3 libgdbs.rc --- a/libgdbs.rc Sun Sep 07 14:42:02 2014 +0100 +++ b/libgdbs.rc Sun Sep 07 22:44:55 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", "Sun, 07 Sep 2014 13:39:29 GMT\0" + VALUE "ProductDate", "Sun, 07 Sep 2014 21:43:46 GMT\0" END END diff -r c17ecf90e446 -r 095c4b0b74d3 tests/GDBDebuggerTests.st --- a/tests/GDBDebuggerTests.st Sun Sep 07 14:42:02 2014 +0100 +++ b/tests/GDBDebuggerTests.st Sun Sep 07 22:44:55 2014 +0100 @@ -65,13 +65,16 @@ !GDBDebuggerTests methodsFor:'tests - threads'! test_inferiors_01a - | event | + | tgevent tevent | simulator := GDBSimulatorProcess new record: GDBSimulatorResource session_factorial_01. simulator start. debugger := GDBDebugger newWithProcess: simulator. debugger announcer when: GDBThreadGroupEvent do:[:ev | - event := ev. + tgevent := ev. + ]. + debugger announcer when: GDBThreadEvent do:[:ev | + tevent := ev. ]. debugger send: (GDBMI_file_exec_and_symbols new arguments: {'/home/jv/Private/Projects/SmalltalkX/sources/branches/jv1/build/jv/libgdbs/tests/c/factorial'}). @@ -84,19 +87,33 @@ "/ self assert: debugger inferiors anElement == event threadGroup. debugger send: (GDBCLICommand new value: 'r'). + Delay waitForMilliseconds: 100. "/ Give it chance to catch up with events. + self assert: tgevent notNil. + self assert: tevent notNil. self assert: debugger inferiors size == 1. self assert: debugger inferiors anElement pid = 7719. - self assert: debugger inferiors anElement == event threadGroup. + self assert: debugger inferiors anElement == tgevent threadGroup. + self assert: debugger inferiors anElement threads size == 1. + self assert: debugger inferiors anElement threads anElement == tevent thread. + self assert: debugger inferiors anElement threads anElement terminated not. + + tgevent := tevent := nil. debugger send: (GDBCLICommand new value: 'del 1'). debugger send: (GDBCLICommand new value: 'c'). + Delay waitForMilliseconds: 100. "/ Give it chance to catch up with events. + self assert: tgevent notNil. self assert: debugger inferiors size == 1. self assert: debugger inferiors anElement exitCode = 23. - self assert: debugger inferiors anElement == event threadGroup. + self assert: debugger inferiors anElement == tgevent threadGroup. + self assert: debugger inferiors anElement threads size == 1. + self assert: debugger inferiors anElement threads anElement == tevent thread. + self assert: debugger inferiors anElement threads anElement terminated. "Created: / 07-09-2014 / 13:37:11 / Jan Vrany " + "Modified: / 07-09-2014 / 22:40:31 / Jan Vrany " ! ! !GDBDebuggerTests class methodsFor:'documentation'! diff -r c17ecf90e446 -r 095c4b0b74d3 tests/GDBInternalPipeStreamTests.st --- a/tests/GDBInternalPipeStreamTests.st Sun Sep 07 14:42:02 2014 +0100 +++ b/tests/GDBInternalPipeStreamTests.st Sun Sep 07 22:44:55 2014 +0100 @@ -499,6 +499,20 @@ self assert: t2 isDead. "Created: / 07-09-2014 / 07:51:13 / Jan Vrany " +! + +test_10 + | pipe | + + pipe := GDBInternalPipeStream new. + pipe nextPutAll:'12345'. + pipe close. + self assert: pipe atEnd not. + self assert: pipe next == $1. + self assert: (pipe next:4) = '2345'. + self assert: pipe atEnd. + + "Created: / 07-09-2014 / 21:59:04 / Jan Vrany " ! ! !GDBInternalPipeStreamTests class methodsFor:'documentation'! diff -r c17ecf90e446 -r 095c4b0b74d3 tests/tests.rc --- a/tests/tests.rc Sun Sep 07 14:42:02 2014 +0100 +++ b/tests/tests.rc Sun Sep 07 22:44:55 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", "Sun, 07 Sep 2014 13:39:31 GMT\0" + VALUE "ProductDate", "Sun, 07 Sep 2014 21:43:47 GMT\0" END END