"{ 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> $'
! !