GDBDriver.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 03 Jun 2014 01:05:03 +0100
changeset 8 7f4882e2562a
parent 7 7a51f98e7162
child 9 5cc8797f6523
permissions -rw-r--r--
More work on basic example. GDB exiting not yet working.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:libgdbs' }"
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
     3
Object subclass:#GDBDriver
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
     4
	instanceVariableNames:'pid input output eventAnnouncer eventQueue eventQueueLock
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
     5
		eventQueueNotifier eventDispatchProcess eventPumpProcess'
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	classVariableNames:''
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
     7
	poolDictionaries:'GDBDebugFlags'
3
29ea333a1811 More work on events and parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
     8
	category:'GDB-Private'
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
!
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
1
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    11
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    12
!GDBDriver class methodsFor:'instance creation'!
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
pid:pidArg input:inputArg output:outputArg
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    ^ self new 
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
            initializeWithPid:pidArg
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
            input:inputArg
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
            output:outputArg
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    "Created: / 26-05-2014 / 13:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
! !
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    23
!GDBDriver methodsFor:'accessing'!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    24
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    25
eventAnnouncer
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    26
    ^ eventAnnouncer
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    27
! !
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    28
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    29
!GDBDriver methodsFor:'event dispatching'!
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    30
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    31
eventDispatchLoop
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    32
    "raise an error: this method should be implemented (TODO)"
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    33
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    34
    [ pid notNil ] whileTrue:[  
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    35
        | eventQueueEmpty |
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    36
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    37
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    38
        eventQueueEmpty := false.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    39
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    40
        [ eventQueueEmpty ] whileFalse:[
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    41
            | event |
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    42
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    43
            event := nil.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    44
            eventQueueLock critical:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    45
                eventQueueEmpty := eventQueue isEmpty.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    46
                eventQueueEmpty ifFalse:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    47
                    event := eventQueue removeFirst.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    48
                ]
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    49
            ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    50
            eventQueueEmpty ifFalse:[
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    51
                [
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    52
                    self eventDispatchSingle: event.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    53
                ] on: Error do:[:ex | 
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    54
                    "/ Pass
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    55
                ].
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    56
            ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    57
        ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    58
        eventQueueNotifier wait.
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    59
    ]
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    60
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    61
    "Created: / 02-06-2014 / 22:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    62
    "Modified: / 03-06-2014 / 00:44:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    63
!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    64
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    65
eventDispatchSingle: aGDBEvent
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    66
    TraceEvents ifTrue:[ 
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    67
        Logger log: ('Announcing: %1' bindWith: aGDBEvent class name) severity: #trace facility: 'GDB'
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    68
    ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    69
    eventAnnouncer announce: aGDBEvent
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    70
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    71
    "Created: / 02-06-2014 / 22:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    72
    "Modified: / 03-06-2014 / 00:12:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    73
!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    74
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    75
eventDispatchStart
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    76
    eventDispatchProcess isNil ifTrue:[
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    77
        eventDispatchProcess := [
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    78
                self eventDispatchLoop
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    79
            ] newProcess.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    80
        eventDispatchProcess name:('GDB Event dispatcher (%1)' bindWith:pid).
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    81
        eventDispatchProcess priority:Processor userBackgroundPriority.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    82
        eventDispatchProcess addExitAction:[ eventDispatchProcess := nil. ].
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    83
        eventDispatchProcess resume.
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    84
    ].
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    85
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    86
    "Created: / 02-06-2014 / 22:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    87
    "Modified: / 02-06-2014 / 23:58:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    88
!
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    89
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    90
eventDispatchStop
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    91
    | t |
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    92
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    93
    t := eventDispatchProcess.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    94
    (t notNil and:[ t isDead not]) ifTrue:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    95
        eventDispatchProcess := nil.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    96
        t terminate.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    97
         "/ raise its prio to make it terminate quickly
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    98
        t priority:(Processor userSchedulingPriority + 1)                       
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
    99
    ].
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   100
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   101
    "Created: / 02-06-2014 / 22:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   102
! !
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   103
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   104
!GDBDriver methodsFor:'event handling'!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   105
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   106
onCommand: aGDBCommandEvent
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   107
    | command |
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   108
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   109
    command := aGDBCommandEvent command.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   110
    command token notNil ifTrue:[ 
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   111
        input nextPutAll: command token printString.
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   112
    ].
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   113
    input nextPutLine: command asString.
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   114
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   115
    "Created: / 02-06-2014 / 23:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   116
! !
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   117
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   118
!GDBDriver methodsFor:'event pump'!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   119
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   120
eventPumpLoop
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   121
    | parser |
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   122
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   123
    parser := GDBParser on: output.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   124
    [ output atEnd ] whileFalse:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   125
        | eventset |
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   126
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   127
        [
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   128
            [ 
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   129
                eventset := parser parseOutput.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   130
            ] on: StreamNotOpenError do:[
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   131
                ^ self.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   132
            ].
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   133
            self pushEventSet: eventset.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   134
        ] on: AbortOperationRequest do:[
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   135
            | terminator i c |
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   136
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   137
            terminator := '(gdb)'.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   138
            i := 1.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   139
            output notNil ifTrue:[
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   140
                [ output atEnd not and: [i <= terminator size ] ] whileTrue:[ 
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   141
                    c := output next.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   142
                    c == (terminator at: i) ifTrue:[ 
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   143
                        i := i + 1.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   144
                    ] ifFalse:[ 
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   145
                        i := 1.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   146
                    ].
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   147
                ].
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   148
                output next. "/ read nl.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   149
            ] ifFalse:[ 
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   150
                ^ self.
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   151
            ].
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   152
        ]
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   153
    ]
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   154
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   155
    "Created: / 02-06-2014 / 22:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   156
    "Modified: / 03-06-2014 / 00:54:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   157
!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   158
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   159
eventPumpStart
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   160
    eventPumpProcess isNil ifTrue:[
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   161
        eventPumpProcess := [
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   162
                self eventPumpLoop
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   163
            ] newProcess.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   164
        eventPumpProcess name:('GDB Event pump (%1)' bindWith:pid).
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   165
        eventPumpProcess priority:Processor userBackgroundPriority.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   166
        eventPumpProcess addExitAction:[ eventPumpProcess := nil. ].
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   167
        eventPumpProcess resume.
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   168
    ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   169
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   170
    "Created: / 02-06-2014 / 22:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   171
    "Modified: / 02-06-2014 / 23:58:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   172
!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   173
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   174
eventPumpStop
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   175
    | t |
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   176
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   177
    t := eventPumpProcess.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   178
    (t notNil and:[ t isDead not]) ifTrue:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   179
        eventPumpProcess := nil.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   180
        t terminate.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   181
         "/ raise its prio to make it terminate quickly
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   182
        t priority:(Processor userSchedulingPriority + 1)                       
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   183
    ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   184
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   185
    "Created: / 02-06-2014 / 22:40:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   186
! !
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   187
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   188
!GDBDriver methodsFor:'events'!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   189
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   190
pushEvent: aGDBEvent
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   191
    eventQueueLock critical:[
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   192
        eventQueue add: aGDBEvent.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   193
        eventQueueNotifier signalForAll.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   194
    ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   195
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   196
    "Created: / 02-06-2014 / 22:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   197
!
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   198
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   199
pushEventSet: aGDBEventSet
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   200
    eventQueueLock critical:[
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   201
        eventQueue addAll: aGDBEventSet.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   202
        eventQueueNotifier signalForAll.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   203
    ].
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   204
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   205
    "Created: / 02-06-2014 / 22:42:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   206
! !
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   207
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   208
!GDBDriver methodsFor:'initialize & release'!
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
initializeWithPid:pidArg input:inputArg output:outputArg 
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    pid := pidArg.
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   212
    input := inputArg.
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   213
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   214
    output := outputArg.
2
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   215
    eventQueue := OrderedCollection new.
a96eb336dbd3 More work reading.writing GDB events/commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   216
    eventQueueLock := RecursionLock new.
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   217
    eventQueueNotifier := Semaphore new.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   218
    eventAnnouncer := Announcer new.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   219
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   220
    eventAnnouncer when: GDBCommandEvent send: #onCommand: to: self.
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    "Created: / 26-05-2014 / 13:35:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   223
    "Modified: / 02-06-2014 / 23:39:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
!
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
release
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    pid notNil ifTrue:[
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
        OperatingSystem sendSignal:(OperatingSystem sigKILL) to:pid.       
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    ]
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    "Created: / 26-05-2014 / 21:30:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   232
    "Modified: / 03-06-2014 / 00:55:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
!
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
released: status
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
    pid := nil.
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   237
    input notNil ifTrue:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   238
        input close.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   239
        input := nil.
1
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   240
    ].
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   241
    output notNil ifTrue:[ 
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   242
        output close.
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   243
        output := nil.
1
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   244
    ].
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
    "Created: / 26-05-2014 / 21:31:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
7f4882e2562a More work on basic example. GDB exiting not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   247
    "Modified: / 03-06-2014 / 00:46:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
! !
0b9e93821620 First shot (merely backup)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
7
7a51f98e7162 Initial implementation of event dispatcher and event pump.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3
diff changeset
   250
!GDBDriver class methodsFor:'documentation'!
1
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   251
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   252
version_HG
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   253
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   254
    ^ '$Changeset: <not expanded> $'
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   255
! !
da21f8614c2d Fixes in GDBLauncher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
   256