GDBEvent.st
author Jan Vrany <jan.vrany@labware.com>
Mon, 28 Jun 2021 12:43:27 +0100
changeset 231 dcadeaddd0c8
parent 221 e7a1196c0c41
child 242 ab6978ab27f5
permissions -rw-r--r--
Update (internal) list of breakpoints when creating / modifying / deleting using MI commands This commit correctly updates internal breakpoint list when breakpoints are manipulated through MI. In that case, GDB does not generate breakpoint events, so this commit adds command post-execute hook that injects an artifical breakpoint event back onto an event queue.

"
jv:libgdbs - GNU Debugger Interface Library
Copyright (C) 2015-now Jan Vrany
Copyright (C) 2021 LabWare

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License. 

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
"{ Package: 'jv:libgdbs' }"

"{ NameSpace: Smalltalk }"

Announcement subclass:#GDBEvent
	instanceVariableNames:'debugger token properties'
	classVariableNames:''
	poolDictionaries:''
	category:'GDB-Core-Events'
!

!GDBEvent class methodsFor:'documentation'!

copyright
"
jv:libgdbs - GNU Debugger Interface Library
Copyright (C) 2015-now Jan Vrany
Copyright (C) 2021 LabWare

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License. 

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
! !

!GDBEvent class methodsFor:'accessing-magritte'!

descriptionContainer
    ^ GDBMAContainer forClass: self.

    "Created: / 23-09-2014 / 23:26:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!GDBEvent class methodsFor:'testing'!

isAbstract
    ^ self == GDBEvent

    "Modified: / 02-06-2014 / 22:20:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!GDBEvent methodsFor:'accessing'!

debugger
    ^ debugger
!

debugger:aGDBDebugger
    debugger := aGDBDebugger.
!

token
    ^ token
!

token:anInteger
    token := anInteger.
! !

!GDBEvent methodsFor:'accessing-properties'!

properties
    ^ GDBObject getPropertiesOf: self.

    "Modified: / 20-06-2014 / 09:04:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

propertyAt: name
    ^ GDBObject getProperty: name of: self

    "Created: / 31-05-2014 / 00:00:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 20-06-2014 / 09:05:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

propertyAt: name put: value
    ^ GDBObject setProperty: name of: self to: value

    "Created: / 31-05-2014 / 00:01:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 20-06-2014 / 09:05:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!GDBEvent methodsFor:'testing'!

isAsyncEvent
    "return false here; to be redefined in subclass(es)"

    ^ false
!

isCommandResultEvent
    ^ false
!

isConsoleOutputEvent
    ^ false

    "Created: / 01-06-2014 / 23:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

isEventSetProcessingFinishedEvent
    ^ false

    "Created: / 22-05-2021 / 15:50:48 / Jan Vrany <jan.vrany@labware.com>"
!

isEventSetProcessingStartedEvent
    ^ false

    "Created: / 22-05-2021 / 15:50:38 / Jan Vrany <jan.vrany@labware.com>"
!

isExecutionEvent
    ^ false

    "Created: / 01-06-2014 / 23:38:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

isLogOutputEvent
    ^ false

    "Created: / 01-06-2014 / 23:37:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

isNotificationEvent
    ^ false

    "Created: / 01-06-2014 / 23:37:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

isStatusEvent
    ^ false

    "Created: / 01-06-2014 / 23:38:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

isTargetOutputEvent
    ^ false

    "Created: / 01-06-2014 / 23:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!GDBEvent class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !