180 ]. |
192 ]. |
181 command |
193 command |
182 ]. |
194 ]. |
183 parser recorder:recorder. |
195 parser recorder:recorder. |
184 parser parsePostStartHeader. |
196 parser parsePostStartHeader. |
|
197 done := false. |
185 [ |
198 [ |
186 process debuggerOutput atEnd |
199 [ |
|
200 done or:[ process debuggerOutput atEnd ] |
|
201 ] on: TerminateProcessRequest do:[:request| |
|
202 done := true. |
|
203 ]. |
187 ] whileFalse:[ |
204 ] whileFalse:[ |
188 | eventset | |
205 | eventset | |
189 |
206 |
190 [ |
207 [ |
191 [ |
208 [ |
192 eventset := parser parseOutput. |
209 eventset := parser parseOutput. |
|
210 (eventset contains:[:each | each isCommandResultEvent and:[ each status == #exit] ]) ifTrue:[ |
|
211 done := true. |
|
212 ]. |
193 ] on:StreamNotOpenError do:[ ^ self. ]. |
213 ] on:StreamNotOpenError do:[ ^ self. ]. |
194 self pushEventSet:eventset. |
214 self pushEventSet:eventset. |
195 ] on:AbortOperationRequest do:[ |
215 ] on:AbortOperationRequest do:[ |
196 | terminator i c | |
216 | terminator i c | |
197 |
217 |
211 ] ifFalse:[ ^ self. ]. |
231 ] ifFalse:[ ^ self. ]. |
212 ] |
232 ] |
213 ] |
233 ] |
214 |
234 |
215 "Created: / 02-06-2014 / 22:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
235 "Created: / 02-06-2014 / 22:38:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
216 "Modified: / 01-03-2015 / 08:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
236 "Modified: / 01-06-2017 / 22:22:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
217 ! |
237 ! |
218 |
238 |
219 eventPumpStart |
239 eventPumpStart |
220 eventPumpProcess isNil ifTrue:[ |
240 eventPumpProcess isNil ifTrue:[ |
221 eventPumpProcess := [ |
241 eventPumpProcess := [ |
306 "Created: / 26-05-2014 / 21:30:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
326 "Created: / 26-05-2014 / 21:30:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
307 "Modified: / 05-07-2014 / 22:20:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
327 "Modified: / 05-07-2014 / 22:20:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
308 ! |
328 ! |
309 |
329 |
310 released: status |
330 released: status |
|
331 self pushEvent: GDBExitEvent new. |
311 TraceProcesses ifTrue:[ |
332 TraceProcesses ifTrue:[ |
312 Logger log: ('gdb process: exited with status %1' bindWith: status code) severity: #trace facility: 'GDB'. |
333 Logger log: ('gdb process: exited with status %1' bindWith: status code) severity: #trace facility: 'GDB'. |
313 ]. |
|
314 TraceProcesses ifTrue:[ |
|
315 Logger log: 'gdb process: waiting for event pump to finish' severity: #trace facility: 'GDB'. |
334 Logger log: 'gdb process: waiting for event pump to finish' severity: #trace facility: 'GDB'. |
316 ]. |
335 ]. |
317 [ eventPumpProcess notNil ] whileTrue:[ |
336 self eventPumpStop. |
318 Delay waitForMilliseconds: 200. |
|
319 ]. |
|
320 TraceProcesses ifTrue:[ |
|
321 Logger log: ('gdb process: event pump finished' bindWith: status code) severity: #trace facility: 'GDB'. |
|
322 ]. |
|
323 eventQueueNotifier signalForAll. |
337 eventQueueNotifier signalForAll. |
324 process release. |
338 process release. |
325 inferiorPTY release. |
339 inferiorPTY release. |
326 |
340 |
327 "Created: / 26-05-2014 / 21:31:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
341 "Created: / 26-05-2014 / 21:31:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
328 "Modified: / 25-08-2014 / 08:55:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
342 "Modified: / 01-06-2017 / 22:24:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
329 ! ! |
343 ! ! |
330 |
344 |
331 !GDBConnection class methodsFor:'documentation'! |
345 !GDBConnection class methodsFor:'documentation'! |
332 |
346 |
333 version_HG |
347 version_HG |