GDBArch_RV64.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 14 Oct 2021 00:21:40 +0200
changeset 241 286aa6020b9e
parent 206 3d4aca3ff608
child 259 651864c2aa29
permissions -rw-r--r--
Update only "displayed" registers ...even if -data-list-changed-registers returns more. On some buggy architectures and/or simulators (e.g., RISC-V on QEMU as of today), -data-list-changed-registers return registers that fail to be subsequently fetched by -data-list-register-values. This commit workarounds it by filtering out all registers not found in `#registerNumbersToDisplayUsing:` introduced in commit 3d4aca3ff608.

"
jv:libgdbs - GNU Debugger Interface Library
Copyright (C) 2015-now Jan Vrany
Copyright (C) 2021 LabWare

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License. 

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
"{ Package: 'jv:libgdbs' }"

"{ NameSpace: Smalltalk }"

GDBArchitecture subclass:#GDBArch_RV64
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'GDB-Core'
!

!GDBArch_RV64 class methodsFor:'documentation'!

copyright
"
jv:libgdbs - GNU Debugger Interface Library
Copyright (C) 2015-now Jan Vrany
Copyright (C) 2021 LabWare

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License. 

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
! !

!GDBArch_RV64 methodsFor:'accessing'!

name
    ^ 'RISC-V 64'

    "Created: / 22-05-2020 / 13:12:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

registerNamesToDisplay
    "Returns a list of register names to display in register view (VDBRegisterListApplication)
     or `nil` if all available registers are to be displayed.

     This is used on platforms for limit the number of registers, usually
     because either (i) it is too long and has a lots of 'uninterested' registers
     or (ii) some registers are not supported by gdbserver / QEMU or whatever
     and this is used to avoid errors while still displaying 'interesting' registers.

     Essentially a hack.
    "
    ^ #('pc' 'zero' 'ra' 'sp' 'gp' 'tp' 't0' 't1' 't2' 'fp' 's1' 'a0' 'a1' 'a2' 'a3' 'a4' 'a5' 'a6' 'a7' 's2' 's3' 's4' 's5' 's6' 's7' 's8' 's9' 's10' 's11' 't3' 't4' 't5' 't6' 'ft0' 'ft1' 'ft2' 'ft3' 'ft4' 'ft5' 'ft6' 'ft7' 'fs0' 'fs1' 'fa0' 'fa1' 'fa2' 'fa3' 'fa4' 'fa5' 'fa6' 'fa7' 'fs2' 'fs3' 'fs4' 'fs5' 'fs6' 'fs7' 'fs8' 'fs9' 'fs10' 'fs11' 'ft8' 'ft9' 'ft10' 'ft11')

    "Created: / 22-05-2020 / 13:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!GDBArch_RV64 methodsFor:'queries'!

sizeofPointer
    ^ 8

    "Created: / 22-05-2020 / 13:12:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!GDBArch_RV64 class methodsFor:'documentation'!

version_HG

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