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 |