Added classes for each async event type.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 13 Jun 2014 07:27:24 +0100
changeset 13 45ec9353003f
parent 12 568a2971c977
child 14 535e7f16c05a
Added classes for each async event type. i.e., for breakpoint-inserted a GDBBreakpointInsertedEvent is generated. f the class does not exists it is either generated (when in development mode) or an event of base type is emmited (in this case GDBNotificationEvent).
GDBAsyncEvent.st
GDBBreakpointCreatedEvent.st
GDBBreakpointDeletedEvent.st
GDBBreakpointModifiedEvent.st
GDBLibraryLoadedEvent.st
GDBLibraryUnloadedEvent.st
GDBParser.st
GDBRunningEvent.st
GDBStoppedEvent.st
GDBThreadCreatedEvent.st
GDBThreadExitedEvent.st
GDBThreadGroupAddedEvent.st
GDBThreadGroupExitedEvent.st
GDBThreadGroupStartedEvent.st
Make.proto
Make.spec
abbrev.stc
bc.mak
jv_libgdbs.st
libInit.cc
libgdbs.rc
tests/tests.rc
--- a/GDBAsyncEvent.st	Thu Jun 12 01:21:45 2014 +0100
+++ b/GDBAsyncEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -2,12 +2,75 @@
 
 GDBEvent subclass:#GDBAsyncEvent
 	instanceVariableNames:'type data'
-	classVariableNames:''
+	classVariableNames:'EventTypeToEventClassMap'
 	poolDictionaries:''
 	category:'GDB-Core-Events'
 !
 
 
+!GDBAsyncEvent class methodsFor:'initialization'!
+
+initialize
+    "Invoked at system start or when the class is dynamically loaded."
+
+    EventTypeToEventClassMap := Dictionary new.
+    self allSubclassesDo:[:cls|
+        | type |    
+
+        type := cls basicNew type.
+        type notNil ifTrue:[ 
+            EventTypeToEventClassMap at: type put: cls.
+        ].
+    ]
+
+    "Modified: / 13-06-2014 / 07:11:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBAsyncEvent class methodsFor:'accessing'!
+
+eventClassForType: type
+    | eventClassName eventClass |
+
+    eventClass := EventTypeToEventClassMap at: type ifAbsent:[
+        eventClassName := (String streamContents:[ :out | 
+            | in |
+
+            out nextPutAll: 'GDB'.
+            in := type readStream.
+            out nextPut: in next asUppercase.
+            [ in atEnd ] whileFalse:[ 
+                | c |
+
+                c := in next.
+                c == $- ifTrue:[ 
+                    c := in next asUppercase.
+                ].
+                out nextPut: c.
+            ].
+            out nextPutAll: 'Event'.  
+        ]) asSymbol.
+
+        eventClass := Smalltalk at: eventClassName asSymbol.
+        eventClass isNil ifTrue:[ 
+            Smalltalk isStandAloneApp ifFalse:[  
+                eventClass := self subclass:eventClassName
+                                    instanceVariableNames:''
+                                    classVariableNames:''
+                                    poolDictionaries:''
+                                    category:'GDB-Core-Events'.
+                eventClass compile: (String streamContents: [ :s|s nextPutAll:'type'; cr; tab; nextPutAll:'^  '; nextPutAll: type storeString ]) classified: 'accessing'.
+            ] ifTrue:[
+                eventClass := self.
+            ]
+        ].
+        eventClass
+    ].
+    ^ eventClass
+
+    "Created: / 12-06-2014 / 17:03:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-06-2014 / 07:12:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GDBAsyncEvent class methodsFor:'queries'!
 
 isAbstract
@@ -53,3 +116,5 @@
     ^ '$Changeset: <not expanded> $'
 ! !
 
+
+GDBAsyncEvent initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBBreakpointCreatedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBBreakpointCreatedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBBreakpointCreatedEvent methodsFor:'accessing'!
+
+type
+	^  'breakpoint-created'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBBreakpointDeletedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBBreakpointDeletedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBBreakpointDeletedEvent methodsFor:'accessing'!
+
+type
+	^  'breakpoint-deleted'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBBreakpointModifiedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBBreakpointModifiedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBBreakpointModifiedEvent methodsFor:'accessing'!
+
+type
+	^  'breakpoint-modified'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBLibraryLoadedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBLibraryLoadedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBLibraryLoadedEvent methodsFor:'accessing'!
+
+type
+	^  'library-loaded'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBLibraryUnloadedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBLibraryUnloadedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBLibraryUnloadedEvent methodsFor:'accessing'!
+
+type
+	^  'library-unloaded'
+! !
+
--- a/GDBParser.st	Thu Jun 12 01:21:45 2014 +0100
+++ b/GDBParser.st	Fri Jun 13 07:27:24 2014 +0100
@@ -299,28 +299,31 @@
     "Modified: / 02-06-2014 / 22:19:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-parseAsyncRecord: eventClass
+parseAsyncRecord: eventClassBase
     "
     async-output → async-class ( ',' result )* nl
     "
 
-    | type data |
+    | type eventClass data |
 
     type := self parseString.
+    eventClass := eventClassBase eventClassForType: type.
+
     data := Array streamContents:[ :s |
-	[ self peek == $, ] whileTrue:[
-	    self next.
-	    s nextPut: self parseResult.
-	]
+        [ self peek == $, ] whileTrue:[
+            self next.
+            s nextPut: self parseResult.
+        ]
     ].
     self parseNl.
 
     ^ eventClass new
-	type: type;
-	data: data;
-	yourself
+        type: type;
+        data: data;
+        yourself
 
     "Created: / 01-06-2014 / 23:43:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-06-2014 / 17:07:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GDBParser methodsFor:'parsing-misc'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBRunningEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBExecutionEvent subclass:#GDBRunningEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBRunningEvent methodsFor:'accessing'!
+
+type
+	^  'running'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBStoppedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBExecutionEvent subclass:#GDBStoppedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBStoppedEvent methodsFor:'accessing'!
+
+type
+	^  'stopped'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBThreadCreatedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBThreadCreatedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBThreadCreatedEvent methodsFor:'accessing'!
+
+type
+	^  'thread-created'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBThreadExitedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBThreadExitedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBThreadExitedEvent methodsFor:'accessing'!
+
+type
+	^  'thread-exited'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBThreadGroupAddedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBThreadGroupAddedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBThreadGroupAddedEvent methodsFor:'accessing'!
+
+type
+	^  'thread-group-added'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBThreadGroupExitedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBThreadGroupExitedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBThreadGroupExitedEvent methodsFor:'accessing'!
+
+type
+	^  'thread-group-exited'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GDBThreadGroupStartedEvent.st	Fri Jun 13 07:27:24 2014 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'jv:libgdbs' }"
+
+GDBNotificationEvent subclass:#GDBThreadGroupStartedEvent
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'GDB-Core-Events'
+!
+
+!GDBThreadGroupStartedEvent methodsFor:'accessing'!
+
+type
+	^  'thread-group-started'
+! !
+
--- a/Make.proto	Thu Jun 12 01:21:45 2014 +0100
+++ b/Make.proto	Fri Jun 13 07:27:24 2014 +0100
@@ -260,6 +260,18 @@
 $(OUTDIR)GDBNotificationEvent.$(O) GDBNotificationEvent.$(H): GDBNotificationEvent.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)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)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)GDBBreakpointCreatedEvent.$(O) GDBBreakpointCreatedEvent.$(H): GDBBreakpointCreatedEvent.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)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)GDBBreakpointModifiedEvent.$(O) GDBBreakpointModifiedEvent.$(H): GDBBreakpointModifiedEvent.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)
+$(OUTDIR)GDBLibraryUnloadedEvent.$(O) GDBLibraryUnloadedEvent.$(H): GDBLibraryUnloadedEvent.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)GDBRunningEvent.$(O) GDBRunningEvent.$(H): GDBRunningEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBExecutionEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GDBStoppedEvent.$(O) GDBStoppedEvent.$(H): GDBStoppedEvent.st $(INCLUDE_TOP)/jv/libgdbs/GDBAsyncEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBEvent.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBExecutionEvent.$(H) $(INCLUDE_TOP)/stx/goodies/announcements/Announcement.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GDBThreadCreatedEvent.$(O) GDBThreadCreatedEvent.$(H): GDBThreadCreatedEvent.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)GDBThreadExitedEvent.$(O) GDBThreadExitedEvent.$(H): GDBThreadExitedEvent.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)GDBThreadGroupAddedEvent.$(O) GDBThreadGroupAddedEvent.$(H): GDBThreadGroupAddedEvent.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)GDBThreadGroupExitedEvent.$(O) GDBThreadGroupExitedEvent.$(H): GDBThreadGroupExitedEvent.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)GDBThreadGroupStartedEvent.$(O) GDBThreadGroupStartedEvent.$(H): GDBThreadGroupStartedEvent.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)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/Make.spec	Thu Jun 12 01:21:45 2014 +0100
+++ b/Make.spec	Fri Jun 13 07:27:24 2014 +0100
@@ -188,6 +188,18 @@
 	GDBNotificationEvent \
 	GDBStatusEvent \
 	GDBTargetOutputEvent \
+	GDBBreakpointCreatedEvent \
+	GDBBreakpointDeletedEvent \
+	GDBBreakpointModifiedEvent \
+	GDBLibraryLoadedEvent \
+	GDBLibraryUnloadedEvent \
+	GDBRunningEvent \
+	GDBStoppedEvent \
+	GDBThreadCreatedEvent \
+	GDBThreadExitedEvent \
+	GDBThreadGroupAddedEvent \
+	GDBThreadGroupExitedEvent \
+	GDBThreadGroupStartedEvent \
 
 
 
@@ -331,6 +343,18 @@
     $(OUTDIR_SLASH)GDBNotificationEvent.$(O) \
     $(OUTDIR_SLASH)GDBStatusEvent.$(O) \
     $(OUTDIR_SLASH)GDBTargetOutputEvent.$(O) \
+    $(OUTDIR_SLASH)GDBBreakpointCreatedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBBreakpointDeletedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBBreakpointModifiedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBLibraryLoadedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBLibraryUnloadedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBRunningEvent.$(O) \
+    $(OUTDIR_SLASH)GDBStoppedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBThreadCreatedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBThreadExitedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBThreadGroupAddedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBThreadGroupExitedEvent.$(O) \
+    $(OUTDIR_SLASH)GDBThreadGroupStartedEvent.$(O) \
 
 
 
--- a/abbrev.stc	Thu Jun 12 01:21:45 2014 +0100
+++ b/abbrev.stc	Fri Jun 13 07:27:24 2014 +0100
@@ -139,3 +139,15 @@
 GDBNotificationEvent GDBNotificationEvent jv:libgdbs 'GDB-Core-Events' 0
 GDBStatusEvent GDBStatusEvent jv:libgdbs 'GDB-Core-Events' 0
 GDBTargetOutputEvent GDBTargetOutputEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBBreakpointCreatedEvent GDBBreakpointCreatedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBBreakpointDeletedEvent GDBBreakpointDeletedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBBreakpointModifiedEvent GDBBreakpointModifiedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBLibraryLoadedEvent GDBLibraryLoadedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBLibraryUnloadedEvent GDBLibraryUnloadedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBRunningEvent GDBRunningEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBStoppedEvent GDBStoppedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBThreadCreatedEvent GDBThreadCreatedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBThreadExitedEvent GDBThreadExitedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBThreadGroupAddedEvent GDBThreadGroupAddedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBThreadGroupExitedEvent GDBThreadGroupExitedEvent jv:libgdbs 'GDB-Core-Events' 0
+GDBThreadGroupStartedEvent GDBThreadGroupStartedEvent jv:libgdbs 'GDB-Core-Events' 0
--- a/bc.mak	Thu Jun 12 01:21:45 2014 +0100
+++ b/bc.mak	Fri Jun 13 07:27:24 2014 +0100
@@ -206,6 +206,18 @@
 $(OUTDIR)GDBNotificationEvent.$(O) GDBNotificationEvent.$(H): GDBNotificationEvent.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)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)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)GDBBreakpointCreatedEvent.$(O) GDBBreakpointCreatedEvent.$(H): GDBBreakpointCreatedEvent.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)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)GDBBreakpointModifiedEvent.$(O) GDBBreakpointModifiedEvent.$(H): GDBBreakpointModifiedEvent.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)
+$(OUTDIR)GDBLibraryUnloadedEvent.$(O) GDBLibraryUnloadedEvent.$(H): GDBLibraryUnloadedEvent.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)GDBRunningEvent.$(O) GDBRunningEvent.$(H): GDBRunningEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBExecutionEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GDBStoppedEvent.$(O) GDBStoppedEvent.$(H): GDBStoppedEvent.st $(INCLUDE_TOP)\jv\libgdbs\GDBAsyncEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBEvent.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBExecutionEvent.$(H) $(INCLUDE_TOP)\stx\goodies\announcements\Announcement.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GDBThreadCreatedEvent.$(O) GDBThreadCreatedEvent.$(H): GDBThreadCreatedEvent.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)GDBThreadExitedEvent.$(O) GDBThreadExitedEvent.$(H): GDBThreadExitedEvent.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)GDBThreadGroupAddedEvent.$(O) GDBThreadGroupAddedEvent.$(H): GDBThreadGroupAddedEvent.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)GDBThreadGroupExitedEvent.$(O) GDBThreadGroupExitedEvent.$(H): GDBThreadGroupExitedEvent.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)GDBThreadGroupStartedEvent.$(O) GDBThreadGroupStartedEvent.$(H): GDBThreadGroupStartedEvent.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)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/jv_libgdbs.st	Thu Jun 12 01:21:45 2014 +0100
+++ b/jv_libgdbs.st	Fri Jun 13 07:27:24 2014 +0100
@@ -203,6 +203,18 @@
         GDBNotificationEvent
         GDBStatusEvent
         GDBTargetOutputEvent
+        GDBBreakpointCreatedEvent
+        GDBBreakpointDeletedEvent
+        GDBBreakpointModifiedEvent
+        GDBLibraryLoadedEvent
+        GDBLibraryUnloadedEvent
+        GDBRunningEvent
+        GDBStoppedEvent
+        GDBThreadCreatedEvent
+        GDBThreadExitedEvent
+        GDBThreadGroupAddedEvent
+        GDBThreadGroupExitedEvent
+        GDBThreadGroupStartedEvent
     )
 !
 
--- a/libInit.cc	Thu Jun 12 01:21:45 2014 +0100
+++ b/libInit.cc	Fri Jun 13 07:27:24 2014 +0100
@@ -165,6 +165,18 @@
 _GDBNotificationEvent_Init(pass,__pRT__,snd);
 _GDBStatusEvent_Init(pass,__pRT__,snd);
 _GDBTargetOutputEvent_Init(pass,__pRT__,snd);
+_GDBBreakpointCreatedEvent_Init(pass,__pRT__,snd);
+_GDBBreakpointDeletedEvent_Init(pass,__pRT__,snd);
+_GDBBreakpointModifiedEvent_Init(pass,__pRT__,snd);
+_GDBLibraryLoadedEvent_Init(pass,__pRT__,snd);
+_GDBLibraryUnloadedEvent_Init(pass,__pRT__,snd);
+_GDBRunningEvent_Init(pass,__pRT__,snd);
+_GDBStoppedEvent_Init(pass,__pRT__,snd);
+_GDBThreadCreatedEvent_Init(pass,__pRT__,snd);
+_GDBThreadExitedEvent_Init(pass,__pRT__,snd);
+_GDBThreadGroupAddedEvent_Init(pass,__pRT__,snd);
+_GDBThreadGroupExitedEvent_Init(pass,__pRT__,snd);
+_GDBThreadGroupStartedEvent_Init(pass,__pRT__,snd);
 
 
 __END_PACKAGE__();
--- a/libgdbs.rc	Thu Jun 12 01:21:45 2014 +0100
+++ b/libgdbs.rc	Fri Jun 13 07:27:24 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", "Thu, 12 Jun 2014 00:19:29 GMT\0"
+      VALUE "ProductDate", "Fri, 13 Jun 2014 06:24:08 GMT\0"
     END
 
   END
--- a/tests/tests.rc	Thu Jun 12 01:21:45 2014 +0100
+++ b/tests/tests.rc	Fri Jun 13 07:27:24 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", "Thu, 12 Jun 2014 00:19:31 GMT\0"
+      VALUE "ProductDate", "Fri, 13 Jun 2014 06:24:10 GMT\0"
     END
 
   END