VDBInstructionListApplication.st
changeset 151 bc7626f46210
parent 115 0dd989ce3ae7
child 154 26937faa5a97
equal deleted inserted replaced
147:4087090b3581 151:bc7626f46210
   369     self enqueueDelayedUpdate: #delayedUpdateButtonEnablements
   369     self enqueueDelayedUpdate: #delayedUpdateButtonEnablements
   370 
   370 
   371     "Created: / 03-10-2018 / 12:12:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   371     "Created: / 03-10-2018 / 12:12:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   372 !
   372 !
   373 
   373 
   374 enqueueDelayedUpdateInstructionList
       
   375     self enqueueDelayedUpdate: #delayedUpdateInstructionList
       
   376 
       
   377     "Created: / 01-10-2018 / 12:56:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   378 !
       
   379 
       
   380 update:aspect with:param from:sender
   374 update:aspect with:param from:sender
   381     "Invoked when an object that I depend upon sends a change notification."
   375     "Invoked when an object that I depend upon sends a change notification."
   382 
   376 
   383     sender == instructionListHolder ifTrue:[ 
   377     sender == instructionListHolder ifTrue:[
   384          self enqueueDelayedUpdateInternalList.
   378         self enqueueDelayedUpdateInternalList.
   385          ^ self.
   379         ^ self.
   386     ].
   380     ].
   387     sender == frameHolder ifTrue:[ 
   381     sender == frameHolder ifTrue:[ 
   388          self enqueueDelayedUpdateInstructionList.
   382         self enqueueDelayedUpdateContents.
   389          ^ self.
   383         ^ self.
   390     ].
   384     ].
   391     sender == selectedInstructionHolder ifTrue:[ 
   385     sender == selectedInstructionHolder ifTrue:[ 
   392         self updateAfterSelectedInstructionChanged.
   386         self updateAfterSelectedInstructionChanged.
   393     ].
   387     ].
   394     super update:aspect with:param from:sender
   388     super update:aspect with:param from:sender
   395 
   389 
   396     "Modified: / 01-10-2018 / 12:56:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   390     "Modified: / 23-01-2019 / 16:37:11 / jv"
       
   391     "Modified: / 14-02-2019 / 16:52:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   397 !
   392 !
   398 
   393 
   399 updateAfterSelectedInstructionChanged
   394 updateAfterSelectedInstructionChanged
   400     | selected |
   395     | selected |
   401 
   396 
   488     self canExecBackOverInstructionHolder value: threadIsStopped & canReverse.
   483     self canExecBackOverInstructionHolder value: threadIsStopped & canReverse.
   489 
   484 
   490     "Created: / 03-10-2018 / 12:12:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   485     "Created: / 03-10-2018 / 12:12:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   491 !
   486 !
   492 
   487 
   493 delayedUpdateInstructionList
   488 delayedUpdateContents
   494     | frame |
   489     | frame |
   495 
   490 
   496     frame := self frame.
   491     frame := self frame.
   497     (frame notNil and:[ frame hasSymbol ]) ifTrue:[
   492     (frame notNil and:[ frame hasSymbol ]) ifTrue:[
   498         self instructionList: frame disassemble.
   493         self instructionList:frame disassemble.
   499     ] ifFalse:[ 
   494     ] ifFalse:[
   500         self instructionList: #().
   495         self instructionList:#().
   501     ].
   496     ].
   502     self updateButtonEnablements.
   497     self updateButtonEnablements.
   503 
   498 
   504     "Created: / 01-10-2018 / 12:55:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   499     "Created: / 01-10-2018 / 12:55:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   505     "Modified: / 02-10-2018 / 10:12:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   500     "Modified: / 14-02-2019 / 16:09:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   506 !
   501 !
   507 
   502 
   508 delayedUpdateInternalList
   503 delayedUpdateInternalList
   509     | root |
   504     | root |
   510 
   505 
   571 
   566 
   572     "Created: / 06-08-2018 / 14:45:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   567     "Created: / 06-08-2018 / 14:45:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   573     "Modified: / 03-10-2018 / 12:13:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   568     "Modified: / 03-10-2018 / 12:13:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   574 ! !
   569 ! !
   575 
   570 
       
   571 !VDBInstructionListApplication methodsFor:'hooks'!
       
   572 
       
   573 postBuildInternalListView: aView
       
   574     super postBuildInternalListView: aView.
       
   575     internalListView addDependent: self.
       
   576 
       
   577     "Created: / 23-01-2019 / 16:10:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   578 ! !
       
   579 
   576 !VDBInstructionListApplication methodsFor:'initialization & release'!
   580 !VDBInstructionListApplication methodsFor:'initialization & release'!
       
   581 
       
   582 release
       
   583     super release.
       
   584     internalListView notNil ifTrue:[ 
       
   585         internalListView removeDependent: self.
       
   586     ].
       
   587 
       
   588     "Created: / 23-01-2019 / 16:11:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   589 !
   577 
   590 
   578 subscribe   
   591 subscribe   
   579     "Register for debugger events. To be overrided by subclasses"
   592     "Register for debugger events. To be overrided by subclasses"
   580 
   593 
   581     debugger announcer 
   594     debugger announcer 
   582         when: GDBStoppedEvent       send: #onStoppedEvent:  to: self;
   595         when: GDBStoppedEvent       send: #onStoppedEvent:  to: self;
   583         when: GDBRunningEvent       send: #onRunningEvent:  to: self;
   596         when: GDBRunningEvent       send: #onRunningEvent:  to: self;
   584         "/when: GDBExitEvent          send: #onExitEvent:     to: self;
   597         "/when: GDBExitEvent          send: #onExitEvent:     to: self;
   585         when: GDBCommandResultEvent send: #onCommandResultEvent: to: self.
   598         when: GDBCommandResultEvent send: #onCommandResultEvent: to: self.
   586 
   599 
       
   600     contentsValid := false.
       
   601 
   587     "Created: / 06-08-2018 / 14:44:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   602     "Created: / 06-08-2018 / 14:44:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   588     "Modified: / 01-09-2018 / 14:48:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   603     "Modified: / 23-01-2019 / 14:29:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   589 ! !
   604 ! !
   590 
   605 
   591 !VDBInstructionListApplication methodsFor:'menu actions'!
   606 !VDBInstructionListApplication methodsFor:'menu actions'!
   592 
   607 
   593 doShowBranchTarget
   608 doShowBranchTarget