author | Jan Vrany <jan.vrany@labware.com> |
Tue, 26 Jul 2022 15:01:33 +0100 | |
changeset 265 | f2470f0dd9cd |
parent 264 | 23960fcb9dac |
child 266 | e21d777d076e |
permissions | -rw-r--r-- |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
" |
264
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
2 |
jv:libgdbs - GNU Debugger Interface Library |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
Copyright (C) 2015-now Jan Vrany |
248
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
4 |
Copyright (C) 2020-2022 LabWare |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
|
264
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
6 |
Permission is hereby granted, free of charge, to any person obtaining a copy |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
7 |
of this software and associated documentation files (the 'Software'), to deal |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
8 |
in the Software without restriction, including without limitation the rights |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
9 |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
10 |
copies of the Software, and to permit persons to whom the Software is |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
11 |
furnished to do so, subject to the following conditions: |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
264
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
13 |
The above copyright notice and this permission notice shall be included in all |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
14 |
copies or substantial portions of the Software. |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
15 |
|
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
16 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
17 |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
18 |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
19 |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
20 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
21 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
22 |
SOFTWARE. |
77
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 |
"{ Package: 'jv:vdb' }" |
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 |
"{ NameSpace: Smalltalk }" |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
VDBAbstractTreeApplication subclass:#VDBInstructionListApplication |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
29 |
instanceVariableNames:'instructionListHolder instructionBasicBlocks |
262
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
30 |
instructionBasicBlocksAnalyzerJob selectedInstructionHolder |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
31 |
selectedInstructionBranchTargetAddress |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
32 |
selectedInstructionBasicBlock disassemblableHolder frameHolder |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
33 |
canExecStepOverInstructionHolder canExecStepIntoInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
34 |
canExecBackOverInstructionHolder canExecBackIntoInstructionHolder' |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
35 |
classVariableNames:'InstructionListCache InstructionBasicBlocksCache' |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
poolDictionaries:'' |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
category:'VDB-UI-Others' |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
! |
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 |
!VDBInstructionListApplication class methodsFor:'documentation'! |
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 |
copyright |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
" |
264
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
44 |
jv:libgdbs - GNU Debugger Interface Library |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
Copyright (C) 2015-now Jan Vrany |
248
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
46 |
Copyright (C) 2020-2022 LabWare |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
|
264
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
48 |
Permission is hereby granted, free of charge, to any person obtaining a copy |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
49 |
of this software and associated documentation files (the 'Software'), to deal |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
50 |
in the Software without restriction, including without limitation the rights |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
51 |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
52 |
copies of the Software, and to permit persons to whom the Software is |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
53 |
furnished to do so, subject to the following conditions: |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
|
264
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
55 |
The above copyright notice and this permission notice shall be included in all |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
56 |
copies or substantial portions of the Software. |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
57 |
|
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
58 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
59 |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
60 |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
61 |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
62 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
63 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
23960fcb9dac
Relicense under MIT license.
Jan Vrany <jan.vrany@labware.com>
parents:
262
diff
changeset
|
64 |
SOFTWARE. |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
" |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
|
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
68 |
!VDBInstructionListApplication class methodsFor:'initialization'! |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
69 |
|
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
70 |
initialize |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
71 |
"Invoked at system start or when the class is dynamically loaded." |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
72 |
|
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
73 |
"/ please change as required (and remove this comment) |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
74 |
|
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
75 |
InstructionListCache := CacheDictionary new: 8. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
76 |
InstructionBasicBlocksCache := CacheDictionary new: 8. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
77 |
! ! |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
78 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
!VDBInstructionListApplication class methodsFor:'accessing'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
|
115
0dd989ce3ae7
Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
113
diff
changeset
|
81 |
defaultWindowTitle |
0dd989ce3ae7
Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
113
diff
changeset
|
82 |
^ self resources string:'Assembly' |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
"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
|
85 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
|
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
87 |
!VDBInstructionListApplication class methodsFor:'menu specs'! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
88 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
89 |
contextMenu |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
90 |
"This resource specification was automatically generated |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
91 |
by the MenuEditor of ST/X." |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
92 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
93 |
"Do not manually edit this!! If it is corrupted, |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
94 |
the MenuEditor may not be able to read the specification." |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
95 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
96 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
97 |
" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
98 |
MenuEditor new openOnClass:VDBInstructionListApplication andSelector:#contextMenu |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
99 |
(Menu new fromLiteralArrayEncoding:(VDBInstructionListApplication contextMenu)) startUp |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
100 |
" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
101 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
102 |
<resource: #menu> |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
103 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
104 |
^ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
105 |
#(Menu |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
106 |
( |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
107 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
108 |
label: 'Context Menu Slice' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
109 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
110 |
submenuChannel: contextMenuApplSlice |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
111 |
isMenuSlice: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
112 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
113 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
114 |
label: 'Item Menu Slice' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
115 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
116 |
submenuChannel: contextMenuItemSlice |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
117 |
isMenuSlice: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
118 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
119 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
120 |
label: 'Copy Menu Slice' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
121 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
122 |
submenuChannel: contextMenuCopySlice |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
123 |
isMenuSlice: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
124 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
125 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
126 |
label: '-' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
127 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
128 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
129 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
130 |
label: 'Inspect Menu Slice' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
131 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
132 |
submenuChannel: contextMenuInspectSlice |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
133 |
isMenuSlice: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
134 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
135 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
136 |
label: '-' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
137 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
138 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
139 |
label: 'Pin Menu' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
140 |
itemValue: doPinMenuAs:item: |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
141 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
142 |
labelImage: (ResourceRetriever VDBIconLibrary pin 'Pin Menu') |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
143 |
argument: 'Disassembly Actions' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
144 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
145 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
146 |
nil |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
147 |
nil |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
148 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
149 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
150 |
"Modified: / 01-09-2018 / 14:55:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
151 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
152 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
153 |
contextMenuApplSlice |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
154 |
"This resource specification was automatically generated |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
155 |
by the MenuEditor of ST/X." |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
156 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
157 |
"Do not manually edit this!! If it is corrupted, |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
158 |
the MenuEditor may not be able to read the specification." |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
159 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
160 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
161 |
" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
162 |
MenuEditor new openOnClass:VDBInstructionListApplication andSelector:#contextMenuApplSlice |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
163 |
(Menu new fromLiteralArrayEncoding:(VDBInstructionListApplication contextMenuApplSlice)) startUp |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
164 |
" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
165 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
166 |
<resource: #menu> |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
167 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
168 |
^ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
169 |
#(Menu |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
170 |
( |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
171 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
172 |
enabled: canShowCurrentHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
173 |
label: 'Show Current Instruction' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
174 |
itemValue: doShowCurrent |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
175 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
176 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
177 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
178 |
enabled: canShowBranchTargetHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
179 |
label: 'Show Branch Traget' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
180 |
itemValue: doShowBranchTarget |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
181 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
182 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
183 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
184 |
enabled: canShowSelectionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
185 |
label: 'Show Selection' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
186 |
itemValue: doShowSelection |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
187 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
188 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
189 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
190 |
label: '-' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
191 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
192 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
193 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
194 |
enabled: canExecStepOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
195 |
label: 'Step Over' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
196 |
itemValue: doExecStepOverInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
197 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
198 |
labelImage: (ResourceRetriever VDBIconLibrary actionStepOver6x16 'Step Over One Instruction') |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
199 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
200 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
201 |
enabled: canExecStepIntoInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
202 |
label: 'Step Into' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
203 |
itemValue: doExecStepIntoInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
204 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
205 |
labelImage: (ResourceRetriever VDBIconLibrary actionStepInto6x16 'Step Into One Instruction') |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
206 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
207 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
208 |
label: '-' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
209 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
210 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
211 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
212 |
enabled: canExecBackOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
213 |
label: 'Back Over' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
214 |
itemValue: doExecBackOverInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
215 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
216 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
217 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
218 |
enabled: canExecBackIntoInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
219 |
label: 'Back Into' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
220 |
itemValue: doExecBackIntoInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
221 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
222 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
223 |
(MenuItem |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
224 |
label: '-' |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
225 |
isVisible: true |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
226 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
227 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
228 |
nil |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
229 |
nil |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
230 |
) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
231 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
232 |
"Modified: / 01-09-2018 / 22:02:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
233 |
! ! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
234 |
|
188
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
235 |
!VDBInstructionListApplication class methodsFor:'plugIn spec'! |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
236 |
|
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
237 |
aspectSelectors |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
238 |
"This resource specification was automatically generated |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
239 |
by the UIPainter of ST/X." |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
240 |
|
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
241 |
"Do not manually edit this. If it is corrupted, |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
242 |
the UIPainter may not be able to read the specification." |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
243 |
|
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
244 |
"Return a description of exported aspects; |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
245 |
these can be connected to aspects of an embedding application |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
246 |
(if this app is embedded in a subCanvas)." |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
247 |
|
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
248 |
^ #( |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
249 |
#debuggerHolder |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
250 |
#disassemblableHolder |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
251 |
#frameHolder |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
252 |
). |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
253 |
|
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
254 |
"Created: / 20-10-2019 / 23:35:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
255 |
! ! |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
256 |
|
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
257 |
!VDBInstructionListApplication class methodsFor:'utilities'! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
258 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
259 |
instructions: aCollection title: aString |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
260 |
^ self new |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
261 |
instructionList: aCollection; |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
262 |
title: aString; |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
263 |
yourself |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
264 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
265 |
"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
|
266 |
! ! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
267 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
268 |
!VDBInstructionListApplication methodsFor:'accessing'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
269 |
|
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
270 |
disassemblable |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
271 |
^ self disassemblableHolder value |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
272 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
273 |
"Created: / 10-06-2019 / 10:06:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
274 |
! |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
275 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
276 |
disassemblable: anObject |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
277 |
self disassemblableHolder value: anObject |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
278 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
279 |
"Created: / 10-06-2019 / 10:06:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
280 |
! |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
281 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
282 |
frame |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
283 |
^ self frameHolder value |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
284 |
|
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
285 |
"Created: / 10-06-2019 / 12:44:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
286 |
! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
287 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
288 |
frame: aGDBFrame |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
289 |
^ self frameHolder value: aGDBFrame |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
290 |
|
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
291 |
"Created: / 10-06-2019 / 12:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
292 |
! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
293 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
294 |
instructionList |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
295 |
^ self instructionListHolder value |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
296 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
297 |
"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
|
298 |
! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
299 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
300 |
instructionList: aCollection |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
301 |
self instructionListHolder value: aCollection |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
302 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
303 |
"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
|
304 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
305 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
306 |
!VDBInstructionListApplication methodsFor:'aspects'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
307 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
308 |
backgroundColorFor: aVDBPresenter |
232
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
309 |
<resource: #style (#'instructionListApplication.currentInstructionBackgroundColor' |
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
310 |
#'instructionListApplication.branchTargetBackgroundColor' |
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
311 |
#'instructionListApplication.currentBasicBlockBackgroundColor' |
237
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
312 |
#'instructionListApplication.successor1BasicBlockBackgroundColor' |
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
313 |
#'instructionListApplication.successor2BasicBlockBackgroundColor' |
232
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
314 |
)> |
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
315 |
|
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
316 |
(self frame notNil and:[aVDBPresenter isInstructionPresenter]) ifTrue:[ |
188
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
317 |
(frameHolder value notNil and:[frameHolder value address == aVDBPresenter address]) ifTrue:[ |
232
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
318 |
^ self styleSheet colorAt: 'instructionListApplication.currentInstructionBackgroundColor' default:[ Color green ]. |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
319 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
320 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
321 |
|
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
322 |
selectedInstructionBranchTargetAddress notNil ifTrue:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
323 |
aVDBPresenter isInstructionPresenter ifTrue:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
324 |
aVDBPresenter instruction address = selectedInstructionBranchTargetAddress ifTrue:[ |
232
55486086aa29
UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
204
diff
changeset
|
325 |
^ self styleSheet colorAt: 'instructionListApplication.branchTargetBackgroundColor' default:[ Color blue lighter lighter ] |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
326 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
327 |
]. |
93
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
328 |
selectedInstructionBasicBlock notNil ifTrue:[ |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
329 |
| successor2 | |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
330 |
|
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
331 |
successor2 := selectedInstructionBasicBlock successor2. |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
332 |
(successor2 notNil and:[ successor2 includesAddress: aVDBPresenter address] ) ifTrue:[ |
237
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
333 |
^ self styleSheet colorAt: 'instructionListApplication.successor2BasicBlockBackgroundColor' default:[ Color blue lighter lighter lighter ] |
93
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
334 |
]. |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
335 |
]. |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
336 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
337 |
selectedInstructionBasicBlock notNil ifTrue:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
338 |
(selectedInstructionBasicBlock includesAddress: aVDBPresenter address) ifTrue:[ |
237
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
339 |
^ self styleSheet colorAt: 'instructionListApplication.currentBasicBlockBackgroundColor' default:[ Color yellow lighter lighter ]. |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
340 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
341 |
]. |
237
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
342 |
|
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
343 |
" |
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
344 |
VDBInstructionListApplication flushDefaultStyleSheet; defaultStyleSheet |
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
345 |
" |
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
346 |
|
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
347 |
^ nil |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
348 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
349 |
"Created: / 26-06-2018 / 11:26:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
188
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
350 |
"Modified: / 21-10-2019 / 01:10:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
237
53a7322c7128
FIXUP: UI: add theme support to instruction list
Jan Vrany <jan.vrany@labware.com>
parents:
236
diff
changeset
|
351 |
"Modified (comment): / 29-10-2021 / 12:07:31 / Jan Vrany <jan.vrany@labware.com>" |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
352 |
! |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
353 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
354 |
disassemblableHolder |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
355 |
disassemblableHolder isNil ifTrue:[ |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
356 |
disassemblableHolder := ValueHolder new. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
357 |
disassemblableHolder addDependent:self. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
358 |
]. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
359 |
^ disassemblableHolder |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
360 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
361 |
"Created: / 10-06-2019 / 10:03:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
362 |
! |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
363 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
364 |
disassemblableHolder:something |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
365 |
"set the 'frameHolder' value holder (automatically generated)" |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
366 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
367 |
|oldValue newValue| |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
368 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
369 |
disassemblableHolder notNil ifTrue:[ |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
370 |
oldValue := disassemblableHolder value. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
371 |
disassemblableHolder removeDependent:self. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
372 |
]. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
373 |
disassemblableHolder := something. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
374 |
disassemblableHolder notNil ifTrue:[ |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
375 |
disassemblableHolder addDependent:self. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
376 |
]. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
377 |
newValue := disassemblableHolder value. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
378 |
oldValue ~~ newValue ifTrue:[ |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
379 |
self update:#value with:newValue from:disassemblableHolder. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
380 |
]. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
381 |
|
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
382 |
"Created: / 10-06-2019 / 10:03:44 / 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
|
383 |
! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
384 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
385 |
foregroundColorFor: aVDBAbstractPresenter |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
386 |
^ aVDBAbstractPresenter isInstructionsAndSourcePresenter |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
387 |
ifTrue:[ Color gray ] |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
388 |
ifFalse:[ nil ] |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
389 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
390 |
"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
|
391 |
! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
392 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
393 |
frameHolder |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
394 |
"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
|
395 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
396 |
frameHolder isNil ifTrue:[ |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
397 |
frameHolder := ValueHolder new. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
398 |
frameHolder addDependent:self. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
399 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
400 |
^ frameHolder |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
401 |
! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
402 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
403 |
frameHolder:something |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
404 |
"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
|
405 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
406 |
|oldValue newValue| |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
407 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
408 |
frameHolder notNil ifTrue:[ |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
409 |
oldValue := frameHolder value. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
410 |
frameHolder removeDependent:self. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
411 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
412 |
frameHolder := something. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
413 |
frameHolder notNil ifTrue:[ |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
414 |
frameHolder addDependent:self. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
415 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
416 |
newValue := frameHolder value. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
417 |
oldValue ~~ newValue ifTrue:[ |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
418 |
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
|
419 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
420 |
! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
421 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
422 |
instructionListHolder |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
423 |
"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
|
424 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
425 |
instructionListHolder isNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
426 |
instructionListHolder := ValueHolder new. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
427 |
instructionListHolder addDependent:self. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
428 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
429 |
^ instructionListHolder |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
430 |
! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
431 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
432 |
instructionListHolder:valueModel |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
433 |
"set the 'instructionListHolder' value holder (automatically generated)" |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
434 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
435 |
|oldValue newValue| |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
436 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
437 |
instructionListHolder notNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
438 |
oldValue := instructionListHolder value. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
439 |
instructionListHolder removeDependent:self. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
440 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
441 |
instructionListHolder := valueModel. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
442 |
instructionListHolder notNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
443 |
instructionListHolder addDependent:self. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
444 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
445 |
newValue := instructionListHolder value. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
446 |
oldValue ~~ newValue ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
447 |
self update:#value with:newValue from:instructionListHolder. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
448 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
449 |
! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
450 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
451 |
selectedInstructionHolder |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
452 |
"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
|
453 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
454 |
selectedInstructionHolder isNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
455 |
selectedInstructionHolder := ValueHolder new. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
456 |
selectedInstructionHolder addDependent:self. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
457 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
458 |
^ selectedInstructionHolder |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
459 |
! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
460 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
461 |
selectedInstructionHolder:valueModel |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
462 |
"set the 'selectedInstructionHolder' value holder (automatically generated)" |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
463 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
464 |
|oldValue newValue| |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
465 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
466 |
selectedInstructionHolder notNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
467 |
oldValue := selectedInstructionHolder value. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
468 |
selectedInstructionHolder removeDependent:self. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
469 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
470 |
selectedInstructionHolder := valueModel. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
471 |
selectedInstructionHolder notNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
472 |
selectedInstructionHolder addDependent:self. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
473 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
474 |
newValue := selectedInstructionHolder value. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
475 |
oldValue ~~ newValue ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
476 |
self update:#value with:newValue from:selectedInstructionHolder. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
477 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
478 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
479 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
480 |
!VDBInstructionListApplication methodsFor:'change & update'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
481 |
|
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
482 |
enqueueDelayedUpdateBasicBlocks |
154
26937faa5a97
Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
151
diff
changeset
|
483 |
self enqueueMessage: #delayedUpdateBasicBlocks |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
484 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
485 |
"Created: / 26-06-2018 / 12:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
154
26937faa5a97
Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
151
diff
changeset
|
486 |
"Modified: / 18-02-2019 / 10:23:43 / 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
|
487 |
! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
488 |
|
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
489 |
enqueueDelayedUpdateButtonEnablements |
154
26937faa5a97
Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
151
diff
changeset
|
490 |
self enqueueMessage: #delayedUpdateButtonEnablements |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
491 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
492 |
"Created: / 03-10-2018 / 12:12:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
154
26937faa5a97
Use standard `#enqueueMessage:` mechanism to enqueue delayed updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
151
diff
changeset
|
493 |
"Modified: / 18-02-2019 / 10:23:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
494 |
! |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
495 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
496 |
update:aspect with:param from:sender |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
497 |
"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
|
498 |
|
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
499 |
sender == instructionListHolder ifTrue:[ |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
500 |
self enqueueDelayedUpdateInternalList. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
501 |
^ self. |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
502 |
]. |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
503 |
sender == disassemblableHolder ifTrue:[ |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
504 |
self enqueueDelayedUpdateContents. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
505 |
^ self. |
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
506 |
]. |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
507 |
sender == frameHolder ifTrue:[ |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
508 |
self enqueueDelayedInvalidateInternalList. |
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
509 |
^ self. |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
510 |
]. |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
511 |
sender == selectedInstructionHolder ifTrue:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
512 |
self updateAfterSelectedInstructionChanged. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
513 |
]. |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
514 |
super update:aspect with:param from:sender |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
515 |
|
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
516 |
"Modified: / 23-01-2019 / 16:37:11 / jv" |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
517 |
"Modified: / 10-06-2019 / 12:43:11 / 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
|
518 |
! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
519 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
520 |
updateAfterSelectedInstructionChanged |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
521 |
| selected | |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
522 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
523 |
selected := self selectedInstructionHolder value. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
524 |
selected notNil ifTrue:[ |
93
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
525 |
selected isBranch ifTrue:[ |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
526 |
selectedInstructionBranchTargetAddress := selected branchTarget. |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
527 |
] ifFalse:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
528 |
selectedInstructionBranchTargetAddress := nil. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
529 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
530 |
instructionBasicBlocks size > 1 ifTrue:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
531 |
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
|
532 |
] ifFalse:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
533 |
selectedInstructionBasicBlock := nil. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
534 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
535 |
] ifFalse:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
536 |
selectedInstructionBranchTargetAddress := nil. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
537 |
selectedInstructionBasicBlock := nil. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
538 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
539 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
540 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
541 |
self enqueueDelayedInvalidateInternalList. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
542 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
543 |
"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
|
544 |
"Modified: / 03-07-2018 / 14:56:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
545 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
546 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
547 |
updateButtonEnablements |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
548 |
self enqueueDelayedUpdateButtonEnablements |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
549 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
550 |
"Created: / 01-09-2018 / 14:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
551 |
"Modified: / 10-06-2019 / 10:11:50 / 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
|
552 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
553 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
554 |
!VDBInstructionListApplication methodsFor:'change & update-delayed'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
555 |
|
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
556 |
delayedInvalidateInternalList |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
557 |
| frame | |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
558 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
559 |
"/ First, force update of )cached) frames to get |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
560 |
"/ updated PC. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
561 |
frame := self frame. |
168
6a4863394260
Fix `VDBInstructionListApplication` update w.r.t running threads
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
164
diff
changeset
|
562 |
(frame notNil and:[frame thread isRunning not]) ifTrue:[ |
6a4863394260
Fix `VDBInstructionListApplication` update w.r.t running threads
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
164
diff
changeset
|
563 |
GDBError catch: [ frame thread stack ] |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
564 |
]. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
565 |
super delayedInvalidateInternalList |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
566 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
567 |
"Created: / 03-10-2018 / 12:10:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
168
6a4863394260
Fix `VDBInstructionListApplication` update w.r.t running threads
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
164
diff
changeset
|
568 |
"Modified: / 12-06-2019 / 15:59:22 / jv" |
6a4863394260
Fix `VDBInstructionListApplication` update w.r.t running threads
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
164
diff
changeset
|
569 |
"Modified: / 12-06-2019 / 16:26:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
570 |
! |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
571 |
|
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
572 |
delayedUpdateBasicBlocks |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
573 |
| disassemblable | |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
574 |
|
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
575 |
disassemblable := self disassemblable. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
576 |
disassemblable notNil ifTrue: [ |
262
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
577 |
instructionBasicBlocks := InstructionBasicBlocksCache at: disassemblable ifAbsent: nil. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
578 |
instructionBasicBlocks isNil ifTrue: [ instructionBasicBlocksAnalyzerJob restart ]. |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
579 |
self enqueueDelayedInvalidateInternalList. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
580 |
]. |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
581 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
582 |
"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
|
583 |
"Modified: / 16-08-2018 / 11:33:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
262
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
584 |
"Modified: / 26-05-2022 / 13:54:05 / Jan Vrany <jan.vrany@labware.com>" |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
585 |
! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
586 |
|
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
587 |
delayedUpdateButtonEnablements |
188
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
588 |
| frame thread threadIsStopped canReverse | |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
589 |
|
188
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
590 |
frame := self frame. |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
591 |
(frame notNil and:[frame respondsTo: #thread]) ifTrue:[ |
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
592 |
thread := frame thread. |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
593 |
]. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
594 |
threadIsStopped := thread notNil and:[ thread isStopped ]. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
595 |
canReverse := debugger notNil and:[ debugger hasFeature: 'reverse' ]. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
596 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
597 |
self canExecStepIntoInstructionHolder value: threadIsStopped. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
598 |
self canExecStepOverInstructionHolder value: threadIsStopped. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
599 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
600 |
self canExecBackIntoInstructionHolder value: threadIsStopped & canReverse. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
601 |
self canExecBackOverInstructionHolder value: threadIsStopped & canReverse. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
602 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
603 |
"Created: / 03-10-2018 / 12:12:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
188
7080f4698aec
UI: add `VDBDisassemblyApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
604 |
"Modified: / 21-10-2019 / 01:13:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
605 |
! |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
606 |
|
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
607 |
delayedUpdateContents |
238
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
608 |
| disassemblable frame instructions | |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
609 |
|
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
610 |
disassemblable := self disassemblable. |
238
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
611 |
frame := self frame. |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
612 |
|
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
613 |
"/ If there's no disassemblable nor frame, there's nothing |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
614 |
"/ to update from. In this case, just show a bunch of instruction |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
615 |
"/ someone may have set. |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
616 |
(disassemblable isNil and: [ frame isNil ]) ifTrue: [ |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
617 |
self hideMessage. |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
618 |
contentsValid := true. |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
619 |
^ self. |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
620 |
]. |
579e6282cfdc
Do not update contents of instruction list when there's no "source"
Jan Vrany <jan.vrany@labware.com>
parents:
237
diff
changeset
|
621 |
|
162
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
622 |
instructions := #(). |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
623 |
(disassemblable notNil "and:[ disassemblable hasSymbol ]") ifTrue:[ |
162
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
624 |
[ |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
625 |
instructions := InstructionListCache at: disassemblable ifAbsentPut: [disassemblable disassemble]. |
162
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
626 |
self hideMessage. |
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
627 |
] on: GDBError do:[:ex | |
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
628 |
self showMessage: (self resources string: (ex parameter propertyAt: #msg)). |
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
629 |
]. |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
630 |
]. |
162
1c78b5a2747d
UX: display error message when a function cannot be disassembled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
154
diff
changeset
|
631 |
self instructionList: instructions. |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
632 |
self updateButtonEnablements. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
633 |
|
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
634 |
"Created: / 01-10-2018 / 12:55:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
635 |
"Modified: / 10-06-2019 / 10:50:34 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
636 |
"Modified: / 26-05-2022 / 10:57:42 / Jan Vrany <jan.vrany@labware.com>" |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
637 |
! |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
638 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
639 |
delayedUpdateInternalList |
236
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
640 |
| address root | |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
641 |
|
236
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
642 |
address := 0. |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
643 |
root := self internalListHolder root. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
644 |
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
|
645 |
((self instructionListHolder value ? #()) collect:[:model | |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
646 |
(model isKindOf: GDBInstructionsAndSourceLine) ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
647 |
(VDBInstructionsAndSourcePresenter new) setInstructionsAndSource: model; |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
648 |
parent:root; |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
649 |
yourself |
236
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
650 |
] ifFalse:[ |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
651 |
| instruction | |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
652 |
|
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
653 |
instruction := model. |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
654 |
instruction address isNil ifTrue: [ |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
655 |
"/ If the instruction has no address (for example, when VDBInstructionList |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
656 |
"/ is used out of VDB for displaying code buffer, then compute an address |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
657 |
"/ as offset from the beggining. |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
658 |
instruction propertyAt: #address put: address. |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
659 |
address := address + instruction opcodes size. |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
660 |
] ifFalse: [ |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
661 |
address := instruction address. |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
662 |
]. |
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
663 |
|
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
664 |
(VDBInstructionPresenter new) setInstruction: instruction; |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
665 |
parent:root; |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
666 |
yourself |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
667 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
668 |
]). |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
669 |
root expand. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
670 |
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
|
671 |
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
|
672 |
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
|
673 |
]. |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
674 |
internalListView notNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
675 |
internalListView invalidate. |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
676 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
677 |
self enqueueDelayedUpdateBasicBlocks. |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
678 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
679 |
"Created: / 27-02-2015 / 15:47:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
680 |
"Modified: / 10-06-2019 / 12:45:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
236
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
681 |
"Modified: / 29-10-2021 / 11:40:26 / Jan Vrany <jan.vrany@labware.com>" |
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
682 |
! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
683 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
684 |
delayedUpdateSelection |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
685 |
| internalSelection | |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
686 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
687 |
internalSelection := self internalSelectionHolder value. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
688 |
internalSelection notNil ifTrue:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
689 |
self selectedInstructionHolder value: internalSelection instruction |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
690 |
] ifFalse:[ |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
691 |
self selectedInstructionHolder value: nil |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
692 |
]. |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
693 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
694 |
"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
|
695 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
696 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
697 |
!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
|
698 |
|
248
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
699 |
onBreakpointEvent: aGDBBreakpointEvent |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
700 |
|
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
701 |
"/ The list shows breakpoints, if a breakpoint is set on |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
702 |
"/ shown instruction. Therefore we need to redraw the list |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
703 |
"/ when breakpoint is added/removed or modified (disabled/enabled) |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
704 |
self enqueueDelayedInvalidateInternalList. |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
705 |
|
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
706 |
"Created: / 07-01-2022 / 20:19:21 / Jan Vrany <jan.vrany@labware.com>" |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
707 |
! |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
708 |
|
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
709 |
onCommandResultEvent: aGDBStoppedEvent |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
710 |
self updateButtonEnablements |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
711 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
712 |
"Created: / 01-06-2017 / 23:43:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
713 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
714 |
|
245
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
715 |
onMemoryChangedEvent: aGDBMemoryChangedEvent |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
716 |
| instructions | |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
717 |
|
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
718 |
"/ Flush caches (maybe not needed, but just ot be on the |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
719 |
"/ safe side) |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
720 |
InstructionListCache removeAll. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
721 |
InstructionBasicBlocksCache removeAll. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
722 |
|
245
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
723 |
instructions := self instructionList. |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
724 |
instructions notEmptyOrNil ifTrue: [ |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
725 |
| instructionRange memoryRange | |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
726 |
|
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
727 |
instructionRange := instructions first address to: instructions last address. |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
728 |
memoryRange := aGDBMemoryChangedEvent addr to: aGDBMemoryChangedEvent addr + aGDBMemoryChangedEvent len. |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
729 |
|
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
730 |
(instructionRange intersect: memoryRange) notEmpty ifTrue: [ |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
731 |
self enqueueDelayedUpdateContents. |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
732 |
]. |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
733 |
]. |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
734 |
|
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
735 |
"Created: / 18-11-2021 / 23:25:51 / Jan Vrany <jan.vrany@labware.com>" |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
736 |
"Modified: / 26-05-2022 / 11:03:11 / Jan Vrany <jan.vrany@labware.com>" |
245
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
737 |
! |
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
738 |
|
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
739 |
onRunningEvent: aGDBStoppedEvent |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
740 |
self enqueueDelayedUpdateButtonEnablements |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
741 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
742 |
"Created: / 21-09-2014 / 22:44:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
743 |
"Modified: / 03-10-2018 / 12:12:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
744 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
745 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
746 |
onStoppedEvent: aGDBStoppedEvent |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
747 |
"/ Flush caches (maybe not needed, but just ot be on the |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
748 |
"/ safe side) |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
749 |
InstructionListCache removeAll. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
750 |
InstructionBasicBlocksCache removeAll. |
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
751 |
|
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
752 |
self frame notNil ifTrue:[ |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
753 |
self enqueueDelayedInvalidateInternalList. |
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
754 |
self enqueueDelayedUpdateButtonEnablements. |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
755 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
756 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
757 |
"Created: / 06-08-2018 / 14:45:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
113
1a40f33af921
UI: Show disassembly along with source code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
111
diff
changeset
|
758 |
"Modified: / 03-10-2018 / 12:13:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
759 |
"Modified: / 26-05-2022 / 11:03:32 / Jan Vrany <jan.vrany@labware.com>" |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
760 |
! ! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
761 |
|
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
762 |
!VDBInstructionListApplication methodsFor:'hooks'! |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
763 |
|
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
764 |
postBuildInternalListView: aView |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
765 |
super postBuildInternalListView: aView. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
766 |
internalListView addDependent: self. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
767 |
|
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
768 |
"Created: / 23-01-2019 / 16:10:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
769 |
! ! |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
770 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
771 |
!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
|
772 |
|
262
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
773 |
initialize |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
774 |
super initialize. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
775 |
instructionBasicBlocksAnalyzerJob := |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
776 |
BackgroundJob named: 'VDB basic block analyzer' |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
777 |
on:[self instructionsAnalyze]. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
778 |
|
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
779 |
"Created: / 26-05-2022 / 12:41:53 / Jan Vrany <jan.vrany@labware.com>" |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
780 |
! |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
781 |
|
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
782 |
release |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
783 |
super release. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
784 |
internalListView notNil ifTrue:[ |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
785 |
internalListView removeDependent: self. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
786 |
]. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
787 |
|
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
788 |
"Created: / 23-01-2019 / 16:11:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
789 |
! |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
790 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
791 |
subscribe |
241
9996050286c5
Always call `super subscribe` when overriding
Jan Vrany <jan.vrany@labware.com>
parents:
238
diff
changeset
|
792 |
super subscribe. |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
793 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
794 |
debugger announcer |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
795 |
when: GDBStoppedEvent send: #onStoppedEvent: to: self; |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
796 |
when: GDBRunningEvent send: #onRunningEvent: to: self; |
245
fadf64d40195
UX: refresh instruction list when instruction memory has changed
Jan Vrany <jan.vrany@labware.com>
parents:
241
diff
changeset
|
797 |
when: GDBMemoryChangedEvent send: #onMemoryChangedEvent: to: self; |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
798 |
"/when: GDBExitEvent send: #onExitEvent: to: self; |
248
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
799 |
when: GDBCommandResultEvent send: #onCommandResultEvent: to: self; |
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
800 |
when: GDBBreakpointEvent send: #onBreakpointEvent: to: self. |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
801 |
|
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
802 |
contentsValid := false. |
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
803 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
804 |
"Created: / 06-08-2018 / 14:44:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
151
bc7626f46210
Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
805 |
"Modified: / 23-01-2019 / 14:29:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
248
57722bcd0474
UI: update instruction list when breakpoint is added/removed/updated
Jan Vrany <jan.vrany@labware.com>
parents:
245
diff
changeset
|
806 |
"Modified: / 07-01-2022 / 20:20:01 / Jan Vrany <jan.vrany@labware.com>" |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
807 |
! ! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
808 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
809 |
!VDBInstructionListApplication methodsFor:'menu actions'! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
810 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
811 |
doShowBranchTarget |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
812 |
| selection | |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
813 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
814 |
selection := self selectedInstructionHolder value. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
815 |
(selection notNil and:[selection isBranch]) ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
816 |
| branchTarget | |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
817 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
818 |
branchTarget := selection branchTarget. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
819 |
"/ For indirect jumps, `branchTarget` is `nil`. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
820 |
branchTarget notNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
821 |
self doShowInstructionAtAddress: branchTarget |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
822 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
823 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
824 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
825 |
"Modified: / 01-09-2018 / 14:32:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
826 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
827 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
828 |
doShowCurrent |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
829 |
| frame | |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
830 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
831 |
frame := self frameHolder value. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
832 |
frame notNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
833 |
self doShowInstructionAtAddress: frame address |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
834 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
835 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
836 |
"Modified: / 01-09-2018 / 14:27:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
837 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
838 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
839 |
doShowInstructionAtAddress: address |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
840 |
self scrollToAddress: address |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
841 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
842 |
"Created: / 01-09-2018 / 14:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
843 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
844 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
845 |
doShowSelection |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
846 |
| selection | |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
847 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
848 |
selection := self selectedInstructionHolder value. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
849 |
selection notNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
850 |
self doShowInstructionAtAddress: selection address |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
851 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
852 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
853 |
"Modified: / 01-09-2018 / 14:32:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
854 |
! ! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
855 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
856 |
!VDBInstructionListApplication methodsFor:'menu actions-exec'! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
857 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
858 |
doExec: command |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
859 |
debugger send: command andWait: false. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
860 |
self enqueueDelayedInvalidateInternalList |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
861 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
862 |
"Created: / 21-09-2014 / 21:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
863 |
"Modified: / 26-03-2018 / 17:57:15 / jv" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
864 |
"Modified: / 01-09-2018 / 22:33:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
865 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
866 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
867 |
doExecBackIntoInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
868 |
self doExec:(GDBMI_exec_step_instruction arguments:#('--reverse')) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
869 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
870 |
"Modified: / 01-09-2018 / 22:16:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
871 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
872 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
873 |
doExecBackOverInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
874 |
self doExec:(GDBMI_exec_next_instruction arguments:#('--reverse')) |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
875 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
876 |
"Modified: / 01-09-2018 / 22:16:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
877 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
878 |
|
204
fbf9eff7df60
Fix `Step Into` in assembly view
Jan Vrany <jan.vrany@labware.com>
parents:
188
diff
changeset
|
879 |
doExecStepIntoInstruction |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
880 |
self doExec:GDBMI_exec_step_instruction new |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
881 |
|
204
fbf9eff7df60
Fix `Step Into` in assembly view
Jan Vrany <jan.vrany@labware.com>
parents:
188
diff
changeset
|
882 |
"Created: / 17-11-2020 / 19:38:43 / Jan Vrany <jan.vrany@labware.com>" |
101
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
883 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
884 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
885 |
doExecStepOverInstruction |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
886 |
self doExec:GDBMI_exec_next_instruction new |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
887 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
888 |
"Modified: / 01-09-2018 / 21:59:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
889 |
! ! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
890 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
891 |
!VDBInstructionListApplication methodsFor:'menu aspects'! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
892 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
893 |
canShowBranchTargetHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
894 |
^ BlockValue |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
895 |
with:[ :selection | selection value notNil and:[selection value isBranch and:[selection value branchTarget notNil]]] |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
896 |
argument: self selectedInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
897 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
898 |
"Modified: / 01-09-2018 / 15:32:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
899 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
900 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
901 |
canShowCurrentHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
902 |
^ BlockValue |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
903 |
with:[ :frame | frame value notNil and:[frame value address notNil ]] |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
904 |
argument: self frameHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
905 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
906 |
"Modified: / 01-09-2018 / 15:33:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
907 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
908 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
909 |
canShowSelectionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
910 |
^ BlockValue |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
911 |
with:[ :selection | selection value notNil ] |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
912 |
argument: self selectedInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
913 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
914 |
"Modified: / 01-09-2018 / 15:33:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
915 |
! ! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
916 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
917 |
!VDBInstructionListApplication methodsFor:'menu aspects-exec'! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
918 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
919 |
canExecBackIntoInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
920 |
canExecBackIntoInstructionHolder isNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
921 |
canExecBackIntoInstructionHolder := ValueHolder with: false. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
922 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
923 |
^ canExecBackIntoInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
924 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
925 |
"Modified: / 01-09-2018 / 22:07:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
926 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
927 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
928 |
canExecBackOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
929 |
canExecBackOverInstructionHolder isNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
930 |
canExecBackOverInstructionHolder := ValueHolder with: false. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
931 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
932 |
^ canExecBackOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
933 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
934 |
"Modified: / 01-09-2018 / 22:07:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
935 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
936 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
937 |
canExecStepIntoInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
938 |
canExecStepOverInstructionHolder isNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
939 |
canExecStepOverInstructionHolder := ValueHolder with: false. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
940 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
941 |
^ canExecStepOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
942 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
943 |
"Modified: / 01-09-2018 / 22:08:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
944 |
! |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
945 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
946 |
canExecStepOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
947 |
canExecStepOverInstructionHolder isNil ifTrue:[ |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
948 |
canExecStepOverInstructionHolder := ValueHolder with: false. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
949 |
]. |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
950 |
^ canExecStepOverInstructionHolder |
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
951 |
|
ef31619bc09c
UX: improve navigation and single-stepping in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
94
diff
changeset
|
952 |
"Modified: / 01-09-2018 / 22:08:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
953 |
! ! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
954 |
|
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
955 |
!VDBInstructionListApplication methodsFor:'private'! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
956 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
957 |
instructionPresentersDo: aBlock |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
958 |
self internalListHolder root children do:[:each | |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
959 |
each isInstructionPresenter ifTrue:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
960 |
aBlock value: each |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
961 |
] ifFalse:[ |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
962 |
each children do: aBlock |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
963 |
]. |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
964 |
] |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
965 |
|
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
966 |
"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
|
967 |
! |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
968 |
|
262
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
969 |
instructionsAnalyze |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
970 |
"Analyze instructions (if any) and build basic blocks" |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
971 |
| disassemblable instructions | |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
972 |
|
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
973 |
disassemblable := self disassemblable. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
974 |
instructions := OrderedCollection new. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
975 |
self instructionsDo: [ :e | instructions add: e ]. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
976 |
instructionBasicBlocks := VDBInstructionBasicBlock analyze: instructions. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
977 |
disassemblable == self disassemblable ifTrue: [ |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
978 |
InstructionBasicBlocksCache at: disassemblable put: instructionBasicBlocks. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
979 |
]. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
980 |
self enqueueDelayedInvalidateInternalList. |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
981 |
|
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
982 |
"Created: / 26-05-2022 / 12:41:34 / Jan Vrany <jan.vrany@labware.com>" |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
983 |
"Modified: / 26-05-2022 / 14:05:42 / Jan Vrany <jan.vrany@labware.com>" |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
984 |
! |
bf8e5f87474e
UX: analyze basic block in a background job
Jan Vrany <jan.vrany@labware.com>
parents:
261
diff
changeset
|
985 |
|
93
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
986 |
instructionsDo: aBlock |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
987 |
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
|
988 |
each instructionsDo: aBlock |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
989 |
] |
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
990 |
|
bd0a7febf26d
UI: Highlight target basic block in disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
92
diff
changeset
|
991 |
"Created: / 16-08-2018 / 11:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
236
8dc597a5d1bf
UI: when creating a presenters, make sure instruction has an address
Jan Vrany <jan.vrany@labware.com>
parents:
232
diff
changeset
|
992 |
"Modified: / 29-10-2021 / 11:40:30 / Jan Vrany <jan.vrany@labware.com>" |
80
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
993 |
! ! |
7a9cf1d6be50
UX: improvements in disasembly view (`VDBInstructionListApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
994 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
995 |
!VDBInstructionListApplication methodsFor:'queries'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
996 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
997 |
canSelect: anItem |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
998 |
^ anItem isInstructionPresenter |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
999 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1000 |
"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
|
1001 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1002 |
|
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1003 |
!VDBInstructionListApplication methodsFor:'scrolling'! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1004 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1005 |
scrollToAddress: address |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1006 |
internalListView isNil ifTrue:[ ^ self ]. |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
1007 |
(self disassemblable notNil and:[ self instructionList notEmptyOrNil ]) ifTrue:[ |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1008 |
self instructionPresentersDo:[ :each | |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1009 |
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
|
1010 |
self scrollToListItem: each. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1011 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1012 |
] |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1013 |
]. |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1014 |
|
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1015 |
"Created: / 07-08-2018 / 13:36:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
164
364ebdd1d42c
Generalize `VDBInstructionListView`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
162
diff
changeset
|
1016 |
"Modified: / 10-06-2019 / 10:16:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
92
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1017 |
! ! |
fa04de209c69
UI: highlight currently executed instruction in frame disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
80
diff
changeset
|
1018 |
|
77
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1019 |
!VDBInstructionListApplication class methodsFor:'documentation'! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1020 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1021 |
version_HG |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1022 |
|
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1023 |
^ '$Changeset: <not expanded> $' |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1024 |
! ! |
163d914fae79
Add initial support for disassembly view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1025 |
|
261
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
1026 |
|
fa23191023ca
UX: cache disassembly and basic blocks
Jan Vrany <jan.vrany@labware.com>
parents:
248
diff
changeset
|
1027 |
VDBInstructionListApplication initialize! |