VDBInstructionListApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 20 Aug 2018 11:00:23 +0100
changeset 94 e76206d071fc
parent 93 bd0a7febf26d
child 101 ef31619bc09c
permissions -rw-r--r--
UX: Allow to set a font for text, list views and pinned menus ...independently from `CodeView`'s default font and `MenuPanel`s default font. This is mostly useful for demos :-)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:vdb - Visual / VM Debugger
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"{ NameSpace: Smalltalk }"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
VDBAbstractTreeApplication subclass:#VDBInstructionListApplication
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    14
	instanceVariableNames:'instructionListHolder instructionBasicBlocks
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    15
		selectedInstructionHolder selectedInstructionBranchTargetAddress
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    16
		selectedInstructionBasicBlock frameHolder'
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	classVariableNames:''
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	poolDictionaries:''
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	category:'VDB-UI-Others'
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
!VDBInstructionListApplication class methodsFor:'documentation'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
copyright
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
jv:vdb - Visual / VM Debugger
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
Copyright (C) 2015-now Jan Vrany
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!VDBInstructionListApplication class methodsFor:'accessing'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
windowTitle
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    ^ self resources string: 'Assembly'
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    "Created: / 22-06-2018 / 12:25:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    43
!VDBInstructionListApplication class methodsFor:'utilities'!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    44
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    45
instructions: aCollection title: aString
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    46
    ^ self new  
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    47
        instructionList: aCollection;
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    48
        title: aString;
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    49
        yourself
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    50
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    51
    "Created: / 26-06-2018 / 11:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    52
! !
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    53
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
!VDBInstructionListApplication methodsFor:'accessing'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    56
frame
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    57
    ^ self frameHolder value
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    58
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    59
    "Created: / 06-08-2018 / 13:24:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    60
!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    61
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    62
frame: aGDBFrame
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    63
    self frameHolder value: aGDBFrame
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    64
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    65
    "Created: / 06-08-2018 / 13:22:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    66
!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    67
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    68
instructionList
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    69
    ^ self instructionListHolder value
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    70
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    71
    "Created: / 07-08-2018 / 13:27:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    72
!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    73
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
instructionList: aCollection
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    self instructionListHolder value: aCollection
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "Created: / 22-06-2018 / 12:48:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
!VDBInstructionListApplication methodsFor:'aspects'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    82
backgroundColorFor: aVDBPresenter
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    83
    (frameHolder value notNil and:[aVDBPresenter isInstructionPresenter]) ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    84
        frameHolder value address == aVDBPresenter address ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    85
            ^ Color green.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    86
        ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    87
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
    88
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    89
    selectedInstructionBranchTargetAddress notNil ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    90
        aVDBPresenter isInstructionPresenter ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    91
            aVDBPresenter instruction address = selectedInstructionBranchTargetAddress ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    92
                ^ Color blue lighter lighter
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    93
            ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
    94
        ].
93
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
    95
        selectedInstructionBasicBlock notNil ifTrue:[ 
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
    96
            | successor2 |
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
    97
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
    98
            successor2 := selectedInstructionBasicBlock successor2.
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
    99
            (successor2 notNil and:[ successor2 includesAddress: aVDBPresenter address] ) ifTrue:[
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   100
                ^ Color blue lighter lighter lighter
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   101
            ].
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   102
        ].
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   103
    ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   104
    selectedInstructionBasicBlock notNil ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   105
        (selectedInstructionBasicBlock includesAddress: aVDBPresenter address) ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   106
            ^ Color yellow lighter lighter
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   107
        ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   108
    ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   109
    ^ nil
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   110
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   111
    "Created: / 26-06-2018 / 11:26:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   112
    "Modified: / 16-08-2018 / 11:50:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   113
!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   114
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   115
foregroundColorFor: aVDBAbstractPresenter
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   116
    ^ aVDBAbstractPresenter isInstructionsAndSourcePresenter 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   117
        ifTrue:[ Color gray ]
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   118
        ifFalse:[ nil ]
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   119
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   120
    "Created: / 26-06-2018 / 13:07:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   121
!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   122
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   123
frameHolder
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   124
    "return/create the 'frameHolder' value holder (automatically generated)"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   125
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   126
    frameHolder isNil ifTrue:[
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   127
        frameHolder := ValueHolder new.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   128
        frameHolder addDependent:self.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   129
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   130
    ^ frameHolder
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   131
!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   132
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   133
frameHolder:something
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   134
    "set the 'frameHolder' value holder (automatically generated)"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   135
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   136
    |oldValue newValue|
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   137
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   138
    frameHolder notNil ifTrue:[
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   139
        oldValue := frameHolder value.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   140
        frameHolder removeDependent:self.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   141
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   142
    frameHolder := something.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   143
    frameHolder notNil ifTrue:[
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   144
        frameHolder addDependent:self.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   145
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   146
    newValue := frameHolder value.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   147
    oldValue ~~ newValue ifTrue:[
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   148
        self update:#value with:newValue from:frameHolder.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   149
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   150
!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   151
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
instructionListHolder
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    "return/create the 'instructionListHolder' value holder (automatically generated)"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    instructionListHolder isNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        instructionListHolder := ValueHolder new.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
        instructionListHolder addDependent:self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    ^ instructionListHolder
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
instructionListHolder:valueModel
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    "set the 'instructionListHolder' value holder (automatically generated)"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    |oldValue newValue|
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    instructionListHolder notNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
        oldValue := instructionListHolder value.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
        instructionListHolder removeDependent:self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    instructionListHolder := valueModel.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    instructionListHolder notNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
        instructionListHolder addDependent:self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    newValue := instructionListHolder value.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    oldValue ~~ newValue ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
        self update:#value with:newValue from:instructionListHolder.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
selectedInstructionHolder
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    "return/create the 'selectedInstructionHolder' value holder (automatically generated)"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    selectedInstructionHolder isNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
        selectedInstructionHolder := ValueHolder new.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
        selectedInstructionHolder addDependent:self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    ^ selectedInstructionHolder
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
selectedInstructionHolder:valueModel
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
    "set the 'selectedInstructionHolder' value holder (automatically generated)"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
    |oldValue newValue|
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    selectedInstructionHolder notNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
        oldValue := selectedInstructionHolder value.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
        selectedInstructionHolder removeDependent:self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    selectedInstructionHolder := valueModel.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
    selectedInstructionHolder notNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
        selectedInstructionHolder addDependent:self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    newValue := selectedInstructionHolder value.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    oldValue ~~ newValue ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
        self update:#value with:newValue from:selectedInstructionHolder.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
!VDBInstructionListApplication methodsFor:'change & update'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   212
enqueueDelayedUpdateBasicBlocks
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   213
    self enqueueDelayedUpdate: #delayedUpdateBasicBlocks
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   214
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   215
    "Created: / 26-06-2018 / 12:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   216
!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   217
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
update:aspect with:param from:sender
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    "Invoked when an object that I depend upon sends a change notification."
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    sender == instructionListHolder ifTrue:[ 
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
         self enqueueDelayedUpdateInternalList.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
         ^ self.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    ].
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   225
    sender == frameHolder ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   226
         self updateAfterFrameChanged.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   227
         ^ self.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   228
    ].
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   229
    sender == selectedInstructionHolder ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   230
        self updateAfterSelectedInstructionChanged.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   231
    ].
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    super update:aspect with:param from:sender
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   234
    "Modified: / 06-08-2018 / 13:23:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   235
!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   236
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   237
updateAfterFrameChanged
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   238
    self debugger: self frame debugger
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   239
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   240
    "Created: / 06-08-2018 / 13:24:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   241
!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   242
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   243
updateAfterSelectedInstructionChanged
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   244
    | selected |
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   245
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   246
    selected := self selectedInstructionHolder value.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   247
    selected notNil ifTrue:[
93
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   248
        selected isBranch ifTrue:[ 
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   249
            selectedInstructionBranchTargetAddress := selected branchTarget.
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   250
        ] ifFalse:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   251
            selectedInstructionBranchTargetAddress := nil.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   252
        ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   253
        instructionBasicBlocks size > 1 ifTrue:[
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   254
            selectedInstructionBasicBlock := instructionBasicBlocks detect:[:e | e includesAddress: selected address ] ifNone: [ nil ]
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   255
        ] ifFalse:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   256
            selectedInstructionBasicBlock := nil.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   257
        ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   258
    ] ifFalse:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   259
        selectedInstructionBranchTargetAddress := nil.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   260
        selectedInstructionBasicBlock := nil.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   261
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   262
    ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   263
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   264
    self enqueueDelayedInvalidateInternalList.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   265
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   266
    "Created: / 26-06-2018 / 11:33:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   267
    "Modified: / 03-07-2018 / 14:56:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
!VDBInstructionListApplication methodsFor:'change & update-delayed'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   272
delayedUpdateBasicBlocks
93
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   273
    | instructions |
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   274
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   275
    instructions := OrderedCollection new.
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   276
    self instructionsDo: [ :e | instructions add: e ].
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   277
    instructionBasicBlocks := VDBInstructionBasicBlock analyze: instructions.
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   278
    self enqueueDelayedInvalidateInternalList.
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   279
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   280
    "Created: / 26-06-2018 / 12:20:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   281
    "Modified: / 16-08-2018 / 11:33:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   282
!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   283
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
delayedUpdateInternalList
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
    | root |
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
    root := self internalListHolder root.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
    root children:
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
   289
        ((self instructionListHolder value ? #()) collect:[:model | 
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
            (model isKindOf: GDBInstructionsAndSourceLine) ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
                (VDBInstructionsAndSourcePresenter new) setInstructionsAndSource: model;
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
                    parent:root;
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
                    yourself
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
            ] ifFalse:[ 
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
                (VDBInstructionPresenter new) setInstruction: model;
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
                    parent:root;
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
                    yourself
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
            ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
        ]).
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
    root expand.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
    root children do:[:each | each expand ].
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   302
    self frame notNil ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   303
        self scrollToAddress: self frame address.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   304
    ].
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
    internalListView notNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
        internalListView invalidate.
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   307
    ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   308
    self enqueueDelayedUpdateBasicBlocks.
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
    "Created: / 27-02-2015 / 15:47:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
94
e76206d071fc UX: Allow to set a font for text, list views and pinned menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
   311
    "Modified: / 16-08-2018 / 16:13:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
delayedUpdateSelection
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
    | internalSelection |
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
    internalSelection := self internalSelectionHolder value.
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
    internalSelection notNil ifTrue:[
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
        self selectedInstructionHolder value: internalSelection instruction
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
    ] ifFalse:[ 
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
        self selectedInstructionHolder value: nil
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
    ].
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    "Modified: / 22-06-2018 / 15:08:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   327
!VDBInstructionListApplication methodsFor:'event handling'!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   328
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   329
onStoppedEvent: aGDBStoppedEvent
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   330
    self frame notNil ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   331
        self enqueueDelayedInvalidateInternalList
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   332
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   333
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   334
    "Created: / 06-08-2018 / 14:45:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   335
! !
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   336
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   337
!VDBInstructionListApplication methodsFor:'initialization & release'!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   338
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   339
subscribe   
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   340
    "Register for debugger events. To be overrided by subclasses"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   341
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   342
    debugger announcer 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   343
        when: GDBStoppedEvent send: #onStoppedEvent: to: self.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   344
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   345
    "Created: / 06-08-2018 / 14:44:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   346
! !
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   347
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   348
!VDBInstructionListApplication methodsFor:'private'!
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   349
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   350
instructionPresentersDo: aBlock
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   351
    self internalListHolder root children do:[:each |
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   352
        each isInstructionPresenter ifTrue:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   353
            aBlock value: each
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   354
        ] ifFalse:[ 
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   355
            each children do: aBlock
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   356
        ].
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   357
    ]
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   358
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   359
    "Created: / 26-06-2018 / 12:30:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   360
!
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   361
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   362
instructionsDo: aBlock
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   363
    self instructionListHolder value ? #() do:[:each |
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   364
        each instructionsDo: aBlock
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   365
    ]
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   366
bd0a7febf26d UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
   367
    "Created: / 16-08-2018 / 11:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
80
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   368
! !
7a9cf1d6be50 UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   369
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
!VDBInstructionListApplication methodsFor:'queries'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
canSelect: anItem
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
    ^ anItem isInstructionPresenter
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
    "Created: / 22-06-2018 / 15:07:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
92
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   378
!VDBInstructionListApplication methodsFor:'scrolling'!
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   379
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   380
scrollToAddress: address
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   381
    internalListView isNil ifTrue:[ ^ self ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   382
    (self frame notNil and:[ self instructionList notEmptyOrNil ]) ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   383
        self instructionPresentersDo:[ :each |
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   384
            each address = address ifTrue:[ 
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   385
                self scrollToListItem: each.
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   386
            ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   387
        ]
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   388
    ].
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   389
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   390
    "Created: / 07-08-2018 / 13:36:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   391
! !
fa04de209c69 UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   392
77
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
!VDBInstructionListApplication class methodsFor:'documentation'!
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
version_HG
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
    ^ '$Changeset: <not expanded> $'
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
! !
163d914fae79 Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399