plugins/bee/BeeSymbol.st
author Jan Vrany <jan.vrany@labware.com>
Mon, 08 Aug 2022 12:27:57 +0100
changeset 268 47653b528e7b
parent 167 16cd2d937309
permissions -rw-r--r--
Update README.md

"{ Package: 'jv:vdb/plugins/bee' }"

"{ NameSpace: Smalltalk }"

GDBDebuggerObject subclass:#BeeSymbol
	instanceVariableNames:'name addr size'
	classVariableNames:''
	poolDictionaries:''
	category:'VDB-Plugin-Bee-Model'
!


!BeeSymbol class methodsFor:'accessing-magritte'!

descriptionContainer
    ^ super descriptionContainer
        define: #addr as: Integer;
        define: #size as: Integer;
        yourself

    "Created: / 07-06-2019 / 16:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!BeeSymbol methodsFor:'accessing'!

addr
    ^ addr
!

addr:something
    addr := something.
!

breakpoints
    "Return a list of breakpoints on this symbol"

    ^ debugger breakpoints select:[:each | each addr between: addr and: addr + size ] as: OrderedCollection

    "Created: / 10-06-2019 / 15:40:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

disassemble
    | result disassembly arch |

    result := debugger send: (GDBMI_data_disassemble arguments: (Array with: '-s' with: addr with: '-e' with: addr + size with: '--' with: 5)).

    disassembly := result propertyAt: 'asm_insns'.
    arch := GDBArchitecture named: 'i386:x86-64'.    
    disassembly do:[:each | each setDebugger: debugger; setArchitecture: arch ].
    ^ disassembly

    "Created: / 10-06-2019 / 10:30:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 10-06-2019 / 11:34:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

name
    ^ name
!

name:something
    name := something.
!

size
    ^ size
!

size:something
    size := something.
! !

!BeeSymbol methodsFor:'printing & storing'!

printOn:aStream
    "append a printed representation of the receiver to the argument, aStream"

    super printOn:aStream.
    aStream nextPut:$(.
    name printOn:aStream.
    aStream nextPut:$).

    "Modified: / 07-06-2019 / 14:32:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!BeeSymbol class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !