author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Fri, 21 Jun 2019 22:54:50 +0100 | |
changeset 175 | a304c250e889 |
parent 158 | 9915317c3a62 |
child 249 | 1a76ea72b44b |
permissions | -rw-r--r-- |
49
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
1 |
" |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
2 |
jv:vdb - Visual / VM Debugger |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
3 |
Copyright (C) 2015-now Jan Vrany |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
4 |
|
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
5 |
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License' |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
6 |
|
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
7 |
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/ |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
8 |
" |
46
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
"{ Package: 'jv:vdb' }" |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
"{ NameSpace: Smalltalk }" |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
13 |
VDBAbstractPresenter subclass:#VDBBreakpointPresenter |
46
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
instanceVariableNames:'breakpoint' |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
classVariableNames:'' |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
poolDictionaries:'' |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
category:'VDB-Presentation' |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
|
49
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
20 |
!VDBBreakpointPresenter class methodsFor:'documentation'! |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
21 |
|
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
22 |
copyright |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
23 |
" |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
24 |
jv:vdb - Visual / VM Debugger |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
25 |
Copyright (C) 2015-now Jan Vrany |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
26 |
|
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
27 |
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License' |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
28 |
|
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
29 |
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/ |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
30 |
" |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
31 |
! ! |
2ec7f7ed9242
License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
46
diff
changeset
|
32 |
|
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
33 |
!VDBBreakpointPresenter class methodsFor:'menu specs'! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
34 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
35 |
contextMenu |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
36 |
"This resource specification was automatically generated |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
37 |
by the MenuEditor of ST/X." |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
38 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
39 |
"Do not manually edit this!! If it is corrupted, |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
40 |
the MenuEditor may not be able to read the specification." |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
41 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
42 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
43 |
" |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
44 |
MenuEditor new openOnClass:VDBBreakpointPresenter andSelector:#contextMenu |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
45 |
(Menu new fromLiteralArrayEncoding:(VDBBreakpointPresenter contextMenu)) startUp |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
46 |
" |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
47 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
48 |
<resource: #menu> |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
49 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
50 |
^ |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
51 |
#(Menu |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
52 |
( |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
53 |
(MenuItem |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
54 |
enabled: canEnable |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
55 |
label: 'Enable' |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
56 |
itemValue: doEnable |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
57 |
isVisible: isDisabled |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
58 |
) |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
59 |
(MenuItem |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
60 |
enabled: canDisable |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
61 |
label: 'Disable' |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
62 |
itemValue: doDisable |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
63 |
isVisible: isEnabled |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
64 |
) |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
65 |
) |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
66 |
nil |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
67 |
nil |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
68 |
) |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
69 |
! ! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
70 |
|
46
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
!VDBBreakpointPresenter methodsFor:'accessing'! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
breakpoint |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
^ breakpoint |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
label |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
^ String streamContents:[ :aStream | |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
aStream nextPutAll:(breakpoint enabled ifTrue:[ 'e ' ] ifFalse:[ 'd ' ]). |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
80 |
|
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
81 |
(breakpoint type = 'watchpoint' or:[ breakpoint type = 'hw watchpoint' ]) ifTrue:[ |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
82 |
| location | |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
83 |
|
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
84 |
aStream nextPutAll: 'W '. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
85 |
breakpoint number printOn:aStream. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
86 |
aStream nextPutAll:', '. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
87 |
|
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
88 |
aStream nextPutAll:'at '. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
89 |
location := breakpoint propertyAt: 'what'. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
90 |
aStream nextPutAll: location ? '??'. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
91 |
] ifFalse:[ |
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
92 |
| func | |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
93 |
aStream nextPutAll: 'B '. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
94 |
breakpoint number printOn:aStream. |
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
95 |
aStream nextPutAll:', '. |
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
96 |
|
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
97 |
func := breakpoint func. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
98 |
func isNil and:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
99 |
func := breakpoint propertyAt:'original-location' |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
100 |
]. |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
101 |
|
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
102 |
func notNil ifTrue:[ |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
103 |
aStream nextPutAll:'in '. |
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
104 |
func printOn:aStream. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
105 |
"/ I (JV) prefer to have () after plain C function names. GDB seems to |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
106 |
"/ to add them for C functions but does add them for C++ functions / methods |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
107 |
"/ (well. perhaps this is compile who does that, does not matter). |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
108 |
"/ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
109 |
"/ So, if there's no $(, assume it's a C function and add () at the end. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
110 |
"/ We'll see how this works... |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
111 |
(func includes: $() ifFalse:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
112 |
aStream nextPutAll:'()'. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
113 |
]. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
114 |
aStream nextPutAll:', ' |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
115 |
]. |
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
116 |
breakpoint hasMultipleLocations ifTrue:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
117 |
breakpoint locations size printOn: aStream. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
118 |
aStream nextPutAll: ' locations'. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
119 |
] ifFalse:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
120 |
breakpoint file notNil ifTrue:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
121 |
breakpoint file printOn:aStream. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
122 |
aStream nextPut:$:. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
123 |
breakpoint line printOn:aStream. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
124 |
] ifFalse:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
125 |
| addr | |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
126 |
|
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
127 |
addr := breakpoint addr. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
128 |
addr isNil ifTrue:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
129 |
aStream nextPutAll:'at ??'. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
130 |
] ifFalse:[addr isInteger ifTrue:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
131 |
aStream nextPutAll:'at 0x'. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
132 |
addr printOn: aStream radix: 16 |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
133 |
] ifFalse:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
134 |
addr printOn: aStream |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
135 |
]]. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
136 |
]. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
137 |
]. |
140
3009b7498176
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
134
diff
changeset
|
138 |
] |
46
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
]. |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
"Created: / 10-07-2017 / 13:30:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
142 |
"Modified: / 26-03-2019 / 10:58:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
143 |
! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
144 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
145 |
subject |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
146 |
"Return an instance of GDB object that this presenter displays." |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
147 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
148 |
^ breakpoint |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
149 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
150 |
"Modified: / 05-02-2018 / 13:08:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
46
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
! ! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
!VDBBreakpointPresenter methodsFor:'initialization'! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
154 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
setBreakpoint: aGDBBreakpoint |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
156 |
breakpoint := aGDBBreakpoint |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
157 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
158 |
"Created: / 10-07-2017 / 13:29:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
159 |
! ! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
160 |
|
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
161 |
!VDBBreakpointPresenter methodsFor:'menu-actions'! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
162 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
163 |
doDisable |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
164 |
breakpoint enabled: false |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
165 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
166 |
"Created: / 05-02-2018 / 12:25:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
167 |
! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
168 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
169 |
doEnable |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
170 |
breakpoint enabled: true |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
171 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
172 |
"Created: / 05-02-2018 / 12:25:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
173 |
! ! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
174 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
175 |
!VDBBreakpointPresenter methodsFor:'menu-queries'! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
176 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
177 |
canDisable |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
178 |
^ breakpoint enabled and: [breakpoint debugger selectedInferior isStopped] |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
179 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
180 |
"Created: / 05-02-2018 / 12:27:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
181 |
"Modified: / 13-05-2019 / 10:38:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
182 |
! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
183 |
|
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
184 |
canEnable |
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
185 |
^ breakpoint enabled not and: [breakpoint debugger selectedInferior isStopped] |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
186 |
|
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
187 |
"Created: / 05-02-2018 / 12:26:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
188 |
"Modified: / 13-05-2019 / 10:38:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
189 |
! |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
190 |
|
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
191 |
isDisabled |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
192 |
^ breakpoint enabled not |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
193 |
|
158
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
194 |
"Created: / 13-05-2019 / 10:39:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
195 |
! |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
196 |
|
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
197 |
isEnabled |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
198 |
^ breakpoint enabled |
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
199 |
|
9915317c3a62
UX: diallow breakpoint "Enable" / "Disable" menu items when inferior is running
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
200 |
"Created: / 13-05-2019 / 10:39:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
60
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
201 |
! ! |
bcdb393c956f
Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
49
diff
changeset
|
202 |
|
153
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
203 |
!VDBBreakpointPresenter methodsFor:'private'! |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
204 |
|
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
205 |
fetchChildren |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
206 |
breakpoint hasMultipleLocations ifTrue:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
207 |
^ breakpoint locations collect:[ :l | VDBBreakpointPresenter new setBreakpoint: l; parent: self ] |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
208 |
] ifFalse:[ |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
209 |
^ #() |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
210 |
]. |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
211 |
|
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
212 |
"Created: / 26-03-2019 / 10:10:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
213 |
! ! |
063fd7d1d5be
UI: add support for multi-location breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
140
diff
changeset
|
214 |
|
46
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
215 |
!VDBBreakpointPresenter methodsFor:'testing'! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
216 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
217 |
isBreakpointPresenter |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
^ true |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
|
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
220 |
"Created: / 11-07-2017 / 11:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
221 |
! ! |
6b857f3cec8c
Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
222 |
|
134
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
223 |
!VDBBreakpointPresenter class methodsFor:'documentation'! |
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
224 |
|
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
225 |
version_HG |
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
226 |
|
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
227 |
^ '$Changeset: <not expanded> $' |
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
228 |
! ! |
dda03c08ee5b
UI: Show breakpoint address in hex
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
60
diff
changeset
|
229 |