Skip to content
Snippets Groups Projects
  • Peter Maydell's avatar
    c888f7e0
    target/arm: Use correct GDB XML for M-profile cores · c888f7e0
    Peter Maydell authored
    GDB's remote protocol requires M-profile cores to use the feature
    name 'org.gnu.gdb.arm.m-profile' instead of the 'org.gnu.gdb.arm.core'
    feature used for A- and R-profile cores. We weren't doing this, which
    meant GDB treated our M-profile cores like A-profile ones. This mostly
    doesn't matter, but for instance means that it doesn't correctly
    handle backtraces where an M-profile exception frame is involved.
    
    Ship a copy of GDB's arm-m-profile.xml and use it on the M-profile
    cores.  The integer registers have the same offsets as the
    arm-core.xml, but register 25 is the M-profile XPSR rather than the
    A-profile CPSR, so we need to update arm_cpu_gdb_read_register() and
    arm_cpu_gdb_write_register() to handle XSPR reads and writes.
    
    Fixes: https://bugs.launchpad.net/qemu/+bug/1877136
    
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Message-id: 20200507134755.13997-1-peter.maydell@linaro.org
    c888f7e0
    History
    target/arm: Use correct GDB XML for M-profile cores
    Peter Maydell authored
    GDB's remote protocol requires M-profile cores to use the feature
    name 'org.gnu.gdb.arm.m-profile' instead of the 'org.gnu.gdb.arm.core'
    feature used for A- and R-profile cores. We weren't doing this, which
    meant GDB treated our M-profile cores like A-profile ones. This mostly
    doesn't matter, but for instance means that it doesn't correctly
    handle backtraces where an M-profile exception frame is involved.
    
    Ship a copy of GDB's arm-m-profile.xml and use it on the M-profile
    cores.  The integer registers have the same offsets as the
    arm-core.xml, but register 25 is the M-profile XPSR rather than the
    A-profile CPSR, so we need to update arm_cpu_gdb_read_register() and
    arm_cpu_gdb_write_register() to handle XSPR reads and writes.
    
    Fixes: https://bugs.launchpad.net/qemu/+bug/1877136
    
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Message-id: 20200507134755.13997-1-peter.maydell@linaro.org