plugins/bee/BeeSymbol.st
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--
plugins/bee: add support for setting a breakpoint
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
160
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:vdb/plugins/bee' }"
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     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
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'name addr size'
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'VDB-Plugin-Bee-Model'
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!BeeSymbol class methodsFor:'accessing-magritte'!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
descriptionContainer
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    ^ super descriptionContainer
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
        define: #addr as: Integer;
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
        define: #size as: Integer;
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
        yourself
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    "Created: / 07-06-2019 / 16:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
! !
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!BeeSymbol methodsFor:'accessing'!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
addr
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    ^ addr
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
addr:something
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    addr := something.
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
name
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    ^ name
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
name:something
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    name := something.
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
size
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    ^ size
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
size:something
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    size := something.
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
! !
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
!BeeSymbol methodsFor:'printing & storing'!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
printOn:aStream
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "append a printed representation of the receiver to the argument, aStream"
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    super printOn:aStream.
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    aStream nextPut:$(.
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    name printOn:aStream.
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    aStream nextPut:$).
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    "Modified: / 07-06-2019 / 14:32:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
! !
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!BeeSymbol class methodsFor:'documentation'!
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
version_HG
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    ^ '$Changeset: <not expanded> $'
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
! !
fea681d31a3c Initial shot on Bee plugin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91