author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 11 Jun 2019 11:40:12 +0100 | |
changeset 167 | 16cd2d937309 |
parent 165 | 1e2a4cb4afdd |
permissions | -rw-r--r-- |
160 | 1 |
"{ Package: 'jv:vdb/plugins/bee' }" |
2 |
||
3 |
"{ NameSpace: Smalltalk }" |
|
4 |
||
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
5 |
GDBDebuggerObject subclass:#BeeSymbol |
160 | 6 |
instanceVariableNames:'name addr size' |
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
9 |
category:'VDB-Plugin-Bee-Model' |
|
10 |
! |
|
11 |
||
12 |
||
13 |
!BeeSymbol class methodsFor:'accessing-magritte'! |
|
14 |
||
15 |
descriptionContainer |
|
16 |
^ super descriptionContainer |
|
17 |
define: #addr as: Integer; |
|
18 |
define: #size as: Integer; |
|
19 |
yourself |
|
20 |
||
21 |
"Created: / 07-06-2019 / 16:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
22 |
! ! |
|
23 |
||
24 |
!BeeSymbol methodsFor:'accessing'! |
|
25 |
||
26 |
addr |
|
27 |
^ addr |
|
28 |
! |
|
29 |
||
30 |
addr:something |
|
31 |
addr := something. |
|
32 |
! |
|
33 |
||
167
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
34 |
breakpoints |
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
35 |
"Return a list of breakpoints on this symbol" |
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
36 |
|
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
37 |
^ debugger breakpoints select:[:each | each addr between: addr and: addr + size ] as: OrderedCollection |
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
38 |
|
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
39 |
"Created: / 10-06-2019 / 15:40:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
40 |
! |
16cd2d937309
plugins/bee: add support for setting a breakpoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
41 |
|
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
42 |
disassemble |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
43 |
| result disassembly arch | |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
44 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
45 |
result := debugger send: (GDBMI_data_disassemble arguments: (Array with: '-s' with: addr with: '-e' with: addr + size with: '--' with: 5)). |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
46 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
47 |
disassembly := result propertyAt: 'asm_insns'. |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
48 |
arch := GDBArchitecture named: 'i386:x86-64'. |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
49 |
disassembly do:[:each | each setDebugger: debugger; setArchitecture: arch ]. |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
50 |
^ disassembly |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
51 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
52 |
"Created: / 10-06-2019 / 10:30:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
53 |
"Modified: / 10-06-2019 / 11:34:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
54 |
! |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
55 |
|
160 | 56 |
name |
57 |
^ name |
|
58 |
! |
|
59 |
||
60 |
name:something |
|
61 |
name := something. |
|
62 |
! |
|
63 |
||
64 |
size |
|
65 |
^ size |
|
66 |
! |
|
67 |
||
68 |
size:something |
|
69 |
size := something. |
|
70 |
! ! |
|
71 |
||
72 |
!BeeSymbol methodsFor:'printing & storing'! |
|
73 |
||
74 |
printOn:aStream |
|
75 |
"append a printed representation of the receiver to the argument, aStream" |
|
76 |
||
77 |
super printOn:aStream. |
|
78 |
aStream nextPut:$(. |
|
79 |
name printOn:aStream. |
|
80 |
aStream nextPut:$). |
|
81 |
||
82 |
"Modified: / 07-06-2019 / 14:32:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
83 |
! ! |
|
84 |
||
85 |
!BeeSymbol class methodsFor:'documentation'! |
|
86 |
||
87 |
version_HG |
|
88 |
||
89 |
^ '$Changeset: <not expanded> $' |
|
90 |
! ! |
|
91 |