Closed XVilka closed 3 years ago
We need to check how registers are printed in visual mode. dr
is supposed to output "GPR"(General purpose Registers) registers, so those additional things should not be printed, I think.
This is what QEMU's own gdbserver sends to the Rizin:
<feature name="org.gnu.gdb.aarch64.core">
<reg name="x0" bitsize="64"/>
<reg name="x1" bitsize="64"/>
<reg name="x2" bitsize="64"/>
<reg name="x3" bitsize="64"/>
<reg name="x4" bitsize="64"/>
<reg name="x5" bitsize="64"/>
<reg name="x6" bitsize="64"/>
<reg name="x7" bitsize="64"/>
<reg name="x8" bitsize="64"/>
<reg name="x9" bitsize="64"/>
<reg name="x10" bitsize="64"/>
<reg name="x11" bitsize="64"/>
<reg name="x12" bitsize="64"/>
<reg name="x13" bitsize="64"/>
<reg name="x14" bitsize="64"/>
<reg name="x15" bitsize="64"/>
<reg name="x16" bitsize="64"/>
<reg name="x17" bitsize="64"/>
<reg name="x18" bitsize="64"/>
<reg name="x19" bitsize="64"/>
<reg name="x20" bitsize="64"/>
<reg name="x21" bitsize="64"/>
<reg name="x22" bitsize="64"/>
<reg name="x23" bitsize="64"/>
<reg name="x24" bitsize="64"/>
<reg name="x25" bitsize="64"/>
<reg name="x26" bitsize="64"/>
<reg name="x27" bitsize="64"/>
<reg name="x28" bitsize="64"/>
<reg name="x29" bitsize="64"/>
<reg name="x30" bitsize="64"/>
<reg name="sp" bitsize="64" type="data_ptr"/>
<reg name="pc" bitsize="64" type="code_ptr"/>
<reg name="cpsr" bitsize="32"/>
</feature>
<?xml version="1.0"?><!DOCTYPE target SYSTEM "gdb-target.dtd"><feature name="org.qemu.gdb.aarch64.sve"><vector id="vq16qu" type="uint128" count="16"/><vector id="vq16qs" type="int128" count="16"/><vector id="vq32du" type="uint64" count="32"/><vector id="vq32ds" type="int64" count="32"/><vector id="vq32df" type="ieee_double" count="32"/><vector id="vq64su" type="uint32" count="64"/><vector id="vq64ss" type="int32" count="64"/><vector id="vq64sf" type="ieee_single" count="64"/><vector id="vq128hu" type="uint16" count="128"/><vector id="vq128hs" type="int16" count="128"/><vector id="vq256bu" type="uint8" count="256"/><vector id="vq256bs" type="int8" count="256"/><union id="vq16n"><field name="u" type="vq16qu"/><field name="s" type="vq16qs"/></union><union id="vq32n"><field name="u" type="vq32du"/><field name="s" type="vq32ds"/><field name="f" type="vq32df"/></union><union id="vq64n"><field name="u" type="vq64su"/><field name="s" type="vq64ss"/><field name="f" type="vq64sf"/></union><union id="vq128n"><field name="u" type="vq128hu"/><field name="s" type="vq128hs"/></union><union id="vq256n"><field name="u" type="vq256bu"/><field name="s" type="vq256bs"/></union><union id="vq"><field name="q" type="vq16n"/><field name="d" type="vq32n"/><field name="s" type="vq64n"/><field name="h" type="vq128n"/><field name="b" type="vq256n"/></union><reg name="z0" bitsize="2048" regnum="34" group="vector" type="vq"/><reg name="z1" bitsize="2048" regnum="35" group="vector" type="vq"/><reg name="z2" bitsize="2048" regnum="36" group="vector" type="vq"/><reg name="z3" bitsize="2048" regnum="37" group="vector" type="vq"/><reg name="z4" bitsize="2048" regnum="38" group="vector" type="vq"/><reg name="z5" bitsize="2048" regnum="39" group="vector" type="vq"/><reg name="z6" bitsize="2048" regnum="40" group="vector" type="vq"/><reg name="z7" bitsize="2048" regnum="41" group="vector" type="vq"/><reg name="z8" bitsize="2048" regnum="42" group="vector" type="vq"/><reg name="z9" bitsize="2048" regnum="43" group="vector" type="vq"/><reg name="z10" bitsize="2048" regnum="44" group="vector" type="vq"/><reg name="z11" bitsize="2048" regnum="45" group="vector" type="vq"/><reg name="z12" bitsize="2048" regnum="46" group="vector" type="vq"/><reg name="z13" bitsize="2048" regnum="47" group="vector" type="vq"/><reg name="z14" bitsize="2048" regnum="48" group="vector" type="vq"/><reg name="z15" bitsize="2048" regnum="49" group="vector" type="vq"/><reg name="z16" bitsize="2048" regnum="50" group="vector" type="vq"/><reg name="z17" bitsize="2048" regnum="51" group="vector" type="vq"/><reg name="z18" bitsize="2048" regnum="52" group="vector" type="vq"/><reg name="z19" bitsize="2048" regnum="53" group="vector" type="vq"/><reg name="z20" bitsize="2048" regnum="54" group="vector" type="vq"/><reg name="z21" bitsize="2048" regnum="55" group="vector" type="vq"/><reg name="z22" bitsize="2048" regnum="56" group="vector" type="vq"/><reg name="z23" bitsize="2048" regnum="57" group="vector" type="vq"/><reg name="z24" bitsize="2048" regnum="58" group="vector" type="vq"/><reg name="z25" bitsize="2048" regnum="59" group="vector" type="vq"/><reg name="z26" bitsize="2048" regnum="60" group="vector" type="vq"/><reg name="z27" bitsize="2048" regnum="61" group="vector" type="vq"/><reg name="z28" bitsize="2048" regnum="62" group="vector" type="vq"/><reg name="z29" bitsize="2048" regnum="63" group="vector" type="vq"/><reg name="z30" bitsize="2048" regnum="64" group="vector" type="vq"/><reg name="z31" bitsize="2048" regnum="65" group="vector" type="vq"/><reg name="fpsr" bitsize="32" regnum="66" group="float" type="int"/><reg name="fpcr" bitsize="32" regnum="67" group="float" type="int"/><vector id="vqp" type="uint16" count="16"/><reg name="p0" bitsize="256" regnum="68" group="vector" type="vqp"/><reg name="p1" bitsize="256" regnum="69" group="vector" type="vqp"/><reg name="p2" bitsize="256" regnum="70" group="vector" type="vqp"/><reg name="p3" bitsize="256" regnum="71" group="vector" type="vqp"/><reg name="p4" bitsize="256" regnum="72" group="vector" type="vqp"/><reg name="p5" bitsize="256" regnum="73" group="vector" type="vqp"/><reg name="p6" bitsize="256" regnum="74" group="vector" type="vqp"/><reg name="p7" bitsize="256" regnum="75" group="vector" type="vqp"/><reg name="p8" bitsize="256" regnum="76" group="vector" type="vqp"/><reg name="p9" bitsize="256" regnum="77" group="vector" type="vqp"/><reg name="p10" bitsize="256" regnum="78" group="vector" type="vqp"/><reg name="p11" bitsize="256" regnum="79" group="vector" type="vqp"/><reg name="p12" bitsize="256" regnum="80" group="vector" type="vqp"/><reg name="p13" bitsize="256" regnum="81" group="vector" type="vqp"/><reg name="p14" bitsize="256" regnum="82" group="vector" type="vqp"/><reg name="p15" bitsize="256" regnum="83" group="vector" type="vqp"/><reg name="ffr" bitsize="256" regnum="84" group="vector" type="vqp"/><reg name="vg" bitsize="64" regnum="85" group="vector" type="uint32"/></feature><?xml version="1.0"?><!DOCTYPE target SYSTEM "gdb-target.dtd"><feature name="org.qemu.gdb.arm.sys.regs"><reg name="MVFR6_EL1_RESERVED" bitsize="64" regnum="86" group="cp_regs"/><reg name="MVFR7_EL1_RESERVED" bitsize="64" regnum="87" group="cp_regs"/><reg name="ID_AA64PFR0_EL1" bitsize="64" regnum="88" group="cp_regs"/><reg name="MAIR_EL3" bitsize="64" regnum="89" group="cp_regs"/><reg name="ID_AA64PFR1_EL1" bitsize="64" regnum="90" group="cp_regs"/><reg name="ID_AA64PFR2_EL1_RESERVED" bitsize="64" regnum="91" group="cp_regs"/><reg name="ID_AA64PFR3_EL1_RESERVED" bitsize="64" regnum="92" group="cp_regs"/><reg name="SCTLR" bitsize="64" regnum="93" group="cp_regs"/><reg name="ID_AA64ZFR0_EL1" bitsize="64" regnum="94" group="cp_regs"/><reg name="ACTLR_EL1" bitsize="64" regnum="95" group="cp_regs"/><reg name="DACR32_EL2" bitsize="64" regnum="96" group="cp_regs"/><reg name="ID_AA64PFR5_EL1_RESERVED" bitsize="64" regnum="97" group="cp_regs"/><reg name="CPACR" bitsize="64" regnum="98" group="cp_regs"/><reg name="ID_AA64PFR6_EL1_RESERVED" bitsize="64" regnum="99" group="cp_regs"/><reg name="FPEXC32_EL2" bitsize="64" regnum="100" group="cp_regs"/><reg name="TFSR_EL1" bitsize="64" regnum="101" group="cp_regs"/><reg name="ID_AA64PFR7_EL1_RESERVED" bitsize="64" regnum="102" group="cp_regs"/><reg name="TFSRE0_EL1" bitsize="64" regnum="103" group="cp_regs"/><reg name="ID_AA64DFR0_EL1" bitsize="64" regnum="104" group="cp_regs"/><reg name="RGSR_EL1" bitsize="64" regnum="105" group="cp_regs"/><reg name="ID_AA64DFR1_EL1" bitsize="64" regnum="106" group="cp_regs"/><reg name="GCR_EL1" bitsize="64" regnum="107" group="cp_regs"/><reg name="ID_AA64DFR2_EL1_RESERVED" bitsize="64" regnum="108" group="cp_regs"/><reg name="ID_AA64DFR3_EL1_RESERVED" bitsize="64" regnum="109" group="cp_regs"/><reg name="ID_AA64AFR0_EL1" bitsize="64" regnum="110" group="cp_regs"/><reg name="ID_AA64AFR1_EL1" bitsize="64" regnum="111" group="cp_regs"/><reg name="ID_AA64AFR2_EL1_RESERVED" bitsize="64" regnum="112" group="cp_regs"/><reg name="CNTFRQ_EL0" bitsize="64" regnum="113" group="cp_regs"/><reg name="ID_AA64AFR3_EL1_RESERVED" bitsize="64" regnum="114" group="cp_regs"/><reg name="SPSR_EL1" bitsize="64" regnum="115" group="cp_regs"/><reg name="ID_AA64ISAR0_EL1" bitsize="64" regnum="116" group="cp_regs"/><reg name="DBGBVR" bitsize="64" regnum="117" group="cp_regs"/><reg name="ELR_EL1" bitsize="64" regnum="118" group="cp_regs"/><reg name="ID_AA64ISAR1_EL1" bitsize="64" regnum="119" group="cp_regs"/><reg name="PMEVTYPER0_EL0" bitsize="64" regnum="120" group="cp_regs"/><reg name="DBGBCR" bitsize="64" regnum="121" group="cp_regs"/><reg name="ID_AA64ISAR2_EL1_RESERVED" bitsize="64" regnum="122" group="cp_regs"/><reg name="PMEVTYPER1_EL0" bitsize="64" regnum="123" group="cp_regs"/><reg name="DBGWVR" bitsize="64" regnum="124" group="cp_regs"/><reg name="ID_AA64ISAR3_EL1_RESERVED" bitsize="64" regnum="125" group="cp_regs"/><reg name="ZCR_EL1" bitsize="64" regnum="126" group="cp_regs"/><reg name="DBGWCR" bitsize="64" regnum="127" group="cp_regs"/><reg name="RVBAR_EL1" bitsize="64" regnum="128" group="cp_regs"/><reg name="ID_AA64ISAR4_EL1_RESERVED" bitsize="64" regnum="129" group="cp_regs"/><reg name="PMEVTYPER2_EL0" bitsize="64" regnum="130" group="cp_regs"/><reg name="PMEVTYPER3_EL0" bitsize="64" regnum="131" group="cp_regs"/><reg name="MDCCSR_EL0" bitsize="64" regnum="132" group="cp_regs"/><reg name="ID_AA64ISAR5_EL1_RESERVED" bitsize="64" regnum="133" group="cp_regs"/><reg name="ID_AA64ISAR6_EL1_RESERVED" bitsize="64" regnum="134" group="cp_regs"/><reg name="VBAR" bitsize="64" regnum="135" group="cp_regs"/><reg name="ID_AA64ISAR7_EL1_RESERVED" bitsize="64" regnum="136" group="cp_regs"/><reg name="SP_EL0" bitsize="64" regnum="137" group="cp_regs"/><reg name="ID_AA64MMFR0_EL1" bitsize="64" regnum="138" group="cp_regs"/><reg name="DBGBVR" bitsize="64" regnum="139" group="cp_regs"/><reg name="ID_AA64MMFR1_EL1" bitsize="64" regnum="140" group="cp_regs"/><reg name="DBGBCR" bitsize="64" regnum="141" group="cp_regs"/><reg name="ID_AA64MMFR2_EL1" bitsize="64" regnum="142" group="cp_regs"/><reg name="PMINTENSET_EL1" bitsize="64" regnum="143" group="cp_regs"/><reg name="DBGWVR" bitsize="64" regnum="144" group="cp_regs"/><reg name="ID_AA64MMFR3_EL1_RESERVED" bitsize="64" regnum="145" group="cp_regs"/><reg name="DBGWCR" bitsize="64" regnum="146" group="cp_regs"/><reg name="ID_AA64MMFR4_EL1_RESERVED" bitsize="64" regnum="147" group="cp_regs"/><reg name="PMCNTENSET_EL0" bitsize="64" regnum="148" group="cp_regs"/><reg name="ACTLR_EL2" bitsize="64" regnum="149" group="cp_regs"/><reg name="PMCR_EL0" bitsize="64" regnum="150" group="cp_regs"/><reg name="ID_AA64MMFR5_EL1_RESERVED" bitsize="64" regnum="151" group="cp_regs"/><reg name="PMCNTENCLR_EL0" bitsize="64" regnum="152" group="cp_regs"/><reg name="ID_AA64MMFR6_EL1_RESERVED" bitsize="64" regnum="153" group="cp_regs"/><reg name="PMOVSCLR_EL0" bitsize="64" regnum="154" group="cp_regs"/><reg name="TFSR_EL2" bitsize="64" regnum="155" group="cp_regs"/><reg name="MDSCR_EL1" bitsize="64" regnum="156" group="cp_regs"/><reg name="ID_AA64MMFR7_EL1_RESERVED" bitsize="64" regnum="157" group="cp_regs"/><reg name="PMMIR_EL1" bitsize="64" regnum="158" group="cp_regs"/><reg name="PMSELR_EL0" bitsize="64" regnum="159" group="cp_regs"/><reg name="DBGBVR" bitsize="64" regnum="160" group="cp_regs"/><reg name="PMCEID0_EL0" bitsize="64" regnum="161" group="cp_regs"/><reg name="DBGBCR" bitsize="64" regnum="162" group="cp_regs"/><reg name="PMCEID1_EL0" bitsize="64" regnum="163" group="cp_regs"/><reg name="DBGWVR" bitsize="64" regnum="164" group="cp_regs"/><reg name="PMCCNTR_EL0" bitsize="64" regnum="165" group="cp_regs"/><reg name="DBGWCR" bitsize="64" regnum="166" group="cp_regs"/><reg name="L2ACTLR" bitsize="64" regnum="167" group="cp_regs"/><reg name="TTBR0_EL1" bitsize="64" regnum="168" group="cp_regs"/><reg name="TTBR1_EL1" bitsize="64" regnum="169" group="cp_regs"/><reg name="TCR_EL1" bitsize="64" regnum="170" group="cp_regs"/><reg name="ACTLR_EL3" bitsize="64" regnum="171" group="cp_regs"/><reg name="DBGBVR" bitsize="64" regnum="172" group="cp_regs"/><reg name="DBGBCR" bitsize="64" regnum="173" group="cp_regs"/><reg name="TFSR_EL3" bitsize="64" regnum="174" group="cp_regs"/><reg name="DBGWVR" bitsize="64" regnum="175" group="cp_regs"/><reg name="ZCR_EL2" bitsize="64" regnum="176" group="cp_regs"/><reg name="PMUSERENR_EL0" bitsize="64" regnum="177" group="cp_regs"/><reg name="DBGWCR" bitsize="64" regnum="178" group="cp_regs"/><reg name="PMOVSSET_EL0" bitsize="64" regnum="179" group="cp_regs"/><reg name="APIAKEYLO_EL1" bitsize="64" regnum="180" group="cp_regs"/><reg name="APIAKEYHI_EL1" bitsize="64" regnum="181" group="cp_regs"/><reg name="SP_EL1" bitsize="64" regnum="182" group="cp_regs"/><reg name="MDRAR_EL1" bitsize="64" regnum="183" group="cp_regs"/><reg name="APIBKEYLO_EL1" bitsize="64" regnum="184" group="cp_regs"/><reg name="PMCCFILTR_EL0" bitsize="64" regnum="185" group="cp_regs"/><reg name="DBGBVR" bitsize="64" regnum="186" group="cp_regs"/><reg name="APIBKEYHI_EL1" bitsize="64" regnum="187" group="cp_regs"/><reg name="DBGBCR" bitsize="64" regnum="188" group="cp_regs"/><reg name="CPUACTLR_EL1" bitsize="64" regnum="189" group="cp_regs"/><reg name="APDAKEYLO_EL1" bitsize="64" regnum="190" group="cp_regs"/><reg name="CPUECTLR_EL1" bitsize="64" regnum="191" group="cp_regs"/><reg name="CONTEXTIDR_EL1" bitsize="64" regnum="192" group="cp_regs"/><reg name="APDAKEYHI_EL1" bitsize="64" regnum="193" group="cp_regs"/><reg name="CPUMERRSR_EL1" bitsize="64" regnum="194" group="cp_regs"/><reg name="APDBKEYLO_EL1" bitsize="64" regnum="195" group="cp_regs"/><reg name="L2MERRSR_EL1" bitsize="64" regnum="196" group="cp_regs"/><reg name="DBGBVR" bitsize="64" regnum="197" group="cp_regs"/><reg name="MAIR_EL1" bitsize="64" regnum="198" group="cp_regs"/><reg name="APDBKEYHI_EL1" bitsize="64" regnum="199" group="cp_regs"/><reg name="DBGBCR" bitsize="64" regnum="200" group="cp_regs"/><reg name="TPIDR_EL1" bitsize="64" regnum="201" group="cp_regs"/><reg name="AFSR0_EL1" bitsize="64" regnum="202" group="cp_regs"/><reg name="OSLSR_EL1" bitsize="64" regnum="203" group="cp_regs"/><reg name="AFSR1_EL1" bitsize="64" regnum="204" group="cp_regs"/><reg name="MIDR_EL1" bitsize="64" regnum="205" group="cp_regs"/><reg name="CBAR_EL1" bitsize="64" regnum="206" group="cp_regs"/><reg name="APGAKEYLO_EL1" bitsize="64" regnum="207" group="cp_regs"/><reg name="APGAKEYHI_EL1" bitsize="64" regnum="208" group="cp_regs"/><reg name="SPSR_IRQ" bitsize="64" regnum="209" group="cp_regs"/><reg name="MDCR_EL3" bitsize="64" regnum="210" group="cp_regs"/><reg name="SPSR_ABT" bitsize="64" regnum="211" group="cp_regs"/><reg name="AMAIR0" bitsize="64" regnum="212" group="cp_regs"/><reg name="SPSR_UND" bitsize="64" regnum="213" group="cp_regs"/><reg name="FPCR" bitsize="64" regnum="214" group="cp_regs"/><reg name="FPSR" bitsize="64" regnum="215" group="cp_regs"/><reg name="ESR_EL1" bitsize="64" regnum="216" group="cp_regs"/><reg name="REVIDR_EL1" bitsize="64" regnum="217" group="cp_regs"/><reg name="CLIDR" bitsize="64" regnum="218" group="cp_regs"/><reg name="SPSR_FIQ" bitsize="64" regnum="219" group="cp_regs"/><reg name="ID_PFR0" bitsize="64" regnum="220" group="cp_regs"/><reg name="ID_DFR0" bitsize="64" regnum="221" group="cp_regs"/><reg name="GMID_EL1" bitsize="64" regnum="222" group="cp_regs"/><reg name="ID_AFR0" bitsize="64" regnum="223" group="cp_regs"/><reg name="ID_MMFR0" bitsize="64" regnum="224" group="cp_regs"/><reg name="CSSELR" bitsize="64" regnum="225" group="cp_regs"/><reg name="LORSA_EL1" bitsize="64" regnum="226" group="cp_regs"/><reg name="ID_MMFR1" bitsize="64" regnum="227" group="cp_regs"/><reg name="AIDR" bitsize="64" regnum="228" group="cp_regs"/><reg name="TPIDR_EL0" bitsize="64" regnum="229" group="cp_regs"/><reg name="LOREA_EL1" bitsize="64" regnum="230" group="cp_regs"/><reg name="ID_MMFR2" bitsize="64" regnum="231" group="cp_regs"/><reg name="TPIDRRO_EL0" bitsize="64" regnum="232" group="cp_regs"/><reg name="MPIDR_EL1" bitsize="64" regnum="233" group="cp_regs"/><reg name="LORN_EL1" bitsize="64" regnum="234" group="cp_regs"/><reg name="ID_MMFR3" bitsize="64" regnum="235" group="cp_regs"/><reg name="IFSR32_EL2" bitsize="64" regnum="236" group="cp_regs"/><reg name="LORC_EL1" bitsize="64" regnum="237" group="cp_regs"/><reg name="ID_ISAR0" bitsize="64" regnum="238" group="cp_regs"/><reg name="ID_ISAR1" bitsize="64" regnum="239" group="cp_regs"/><reg name="PMEVCNTR0_EL0" bitsize="64" regnum="240" group="cp_regs"/><reg name="ID_ISAR2" bitsize="64" regnum="241" group="cp_regs"/><reg name="PMEVCNTR1_EL0" bitsize="64" regnum="242" group="cp_regs"/><reg name="ID_ISAR3" bitsize="64" regnum="243" group="cp_regs"/><reg name="CTR_EL0" bitsize="64" regnum="244" group="cp_regs"/><reg name="LORID_EL1" bitsize="64" regnum="245" group="cp_regs"/><reg name="PMEVCNTR2_EL0" bitsize="64" regnum="246" group="cp_regs"/><reg name="ID_ISAR4" bitsize="64" regnum="247" group="cp_regs"/><reg name="PMEVCNTR3_EL0" bitsize="64" regnum="248" group="cp_regs"/><reg name="ID_ISAR5" bitsize="64" regnum="249" group="cp_regs"/><reg name="ID_MMFR4" bitsize="64" regnum="250" group="cp_regs"/><reg name="ID_ISAR6" bitsize="64" regnum="251" group="cp_regs"/><reg name="MVFR0_EL1" bitsize="64" regnum="252" group="cp_regs"/><reg name="L2ECTLR_EL1" bitsize="64" regnum="253" group="cp_regs"/><reg name="FAR_EL1" bitsize="64" regnum="254" group="cp_regs"/><reg name="MVFR1_EL1" bitsize="64" regnum="255" group="cp_regs"/><reg name="MVFR2_EL1" bitsize="64" regnum="256" group="cp_regs"/><reg name="MVFR3_EL1_RESERVED" bitsize="64" regnum="257" group="cp_regs"/><reg name="MVFR4_EL1_RESERVED" bitsize="64" regnum="258" group="cp_regs"/><reg name="MVFR5_EL1_RESERVED" bitsize="64" regnum="259" group="cp_regs"/></feature></target>"
Work environment
rizin -v
full output, not truncated (mandatory)commit: 09d5b01b67c640c1fafde9b3434ade342a225b32, build: 2021-09-18__12:22:59
Expected behavior
Do not print those special registers probably, to avoid cluttering,
Actual behavior
It also prints the same content with
dr
. I am not sure if they should be kept indr
output as well, probably better to keep them, but certainly not in the visual mode.Steps to reproduce the behavior
qemu-aarch64 -g 12345 mra
rizin -a arm -b 64 -d gdb://localhost:12345
ds; Vpp
Additional Logs, screenshots, source code, configuration dump, ...
See https://github.com/rizinorg/cutter/issues/2687