VirtualBox

Changeset 100120 in vbox


Ignore:
Timestamp:
Jun 8, 2023 12:43:32 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157813
Message:

Debugger: Some register printing for ARMv8, bugref:10393

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Debugger/DBGCCmdHlp.cpp

    r98103 r100120  
    13681368        f64BitMode = DBGFR3CpuIsIn64BitCode(pDbgc->pUVM, idCpu);
    13691369
     1370#ifndef VBOX_VMM_TARGET_ARMV8
    13701371    if (fTerse)
    13711372    {
     
    14341435                                 );
    14351436    }
     1437#else
     1438    if (fTerse)
     1439    {
     1440        if (f64BitMode)
     1441            rc = DBGFR3RegPrintf(pDbgc->pUVM, idCpu, &szDisAndRegs[0], sizeof(szDisAndRegs),
     1442                                 "u %016VR{pc} L 0\n"
     1443                                 "x0=%016VR{x0} x1=%016VR{x1} x2=%016VR{x2} x3=%016VR{x3}\n"
     1444                                 "x4=%016VR{x4} x5=%016VR{x5} x6=%016VR{x6} x7=%016VR{x7}\n"
     1445                                 "x8=%016VR{x8} x9=%016VR{x9} x10=%016VR{x10} x11=%016VR{x11}\n"
     1446                                 "x12=%016VR{x12} x13=%016VR{x13} x14=%016VR{x14} x15=%016VR{x15}\n"
     1447                                 "x16=%016VR{x16} x17=%016VR{x17} x18=%016VR{x18} x19=%016VR{x19}\n"
     1448                                 "x20=%016VR{x20} x21=%016VR{x21} x22=%016VR{x22} x23=%016VR{x23}\n"
     1449                                 "x24=%016VR{x24} x25=%016VR{x25} x26=%016VR{x26} x27=%016VR{x27}\n"
     1450                                 "x28=%016VR{x28} x29=%016VR{x29} x30=%016VR{x30}\n"
     1451                                 "pc=%016VR{pc} pstate=%016VR{pstate}\n"
     1452                                 "sp_el0=%016VR{sp_el0} sp_el1=%016VR{sp_el1} elr_el1=%016VR{elr_el1}\n");
     1453        else
     1454            rc = DBGFR3RegPrintf(pDbgc->pUVM, idCpu, szDisAndRegs, sizeof(szDisAndRegs),
     1455                                 "u %08VR{pc} L 0\n"
     1456                                 "r0=%016VR{r0} r1=%016VR{r1} r2=%016VR{r2} r3=%016VR{r3}\n"
     1457                                 "r4=%016VR{r4} r5=%016VR{r5} r6=%016VR{r6} r7=%016VR{r7}\n"
     1458                                 "r8=%016VR{r8} r9=%016VR{r9} r10=%016VR{r10} r11=%016VR{r11}\n"
     1459                                 "pc=%016VR{pc} pstate=%016VR{pstate}\n");
     1460    }
     1461    else
     1462    {
     1463        if (f64BitMode)
     1464            rc = DBGFR3RegPrintf(pDbgc->pUVM, idCpu, &szDisAndRegs[0], sizeof(szDisAndRegs),
     1465                                 "u %016VR{pc} L 0\n"
     1466                                 "x0=%016VR{x0} x1=%016VR{x1} x2=%016VR{x2} x3=%016VR{x3}\n"
     1467                                 "x4=%016VR{x4} x5=%016VR{x5} x6=%016VR{x6} x7=%016VR{x7}\n"
     1468                                 "x8=%016VR{x8} x9=%016VR{x9} x10=%016VR{x10} x11=%016VR{x11}\n"
     1469                                 "x12=%016VR{x12} x13=%016VR{x13} x14=%016VR{x14} x15=%016VR{x15}\n"
     1470                                 "x16=%016VR{x16} x17=%016VR{x17} x18=%016VR{x18} x19=%016VR{x19}\n"
     1471                                 "x20=%016VR{x20} x21=%016VR{x21} x22=%016VR{x22} x23=%016VR{x23}\n"
     1472                                 "x24=%016VR{x24} x25=%016VR{x25} x26=%016VR{x26} x27=%016VR{x27}\n"
     1473                                 "x28=%016VR{x28} x29=%016VR{x29} x30=%016VR{x30}\n"
     1474                                 "pc=%016VR{pc} pstate=%016VR{pstate}\n"
     1475                                 "sp_el0=%016VR{sp_el0} sp_el1=%016VR{sp_el1} elr_el1=%016VR{elr_el1}\n"
     1476                                 "sctlr_el1=%016VR{sctlr_el1} tcr_el1=%016VR{tcr_el1}\n"
     1477                                 "ttbr0_el1=%016VR{ttbr0_el1} ttbr1_el1=%016VR{ttbr1_el1}\n"
     1478                                 "vbar_el1=%016VR{vbar_el1}\n");
     1479        else
     1480            rc = DBGFR3RegPrintf(pDbgc->pUVM, idCpu, szDisAndRegs, sizeof(szDisAndRegs),
     1481                                 "u %08VR{pc} L 0\n"
     1482                                 "r0=%016VR{r0} r1=%016VR{r1} r2=%016VR{r2} r3=%016VR{r3}\n"
     1483                                 "r4=%016VR{r4} r5=%016VR{r5} r6=%016VR{r6} r7=%016VR{r7}\n"
     1484                                 "r8=%016VR{r8} r9=%016VR{r9} r10=%016VR{r10} r11=%016VR{r11}\n"
     1485                                 "pc=%016VR{pc} pstate=%016VR{pstate}\n");
     1486    }
     1487#endif
    14361488    if (RT_FAILURE(rc))
    14371489        return DBGCCmdHlpVBoxError(pCmdHlp, rc, "DBGFR3RegPrintf failed");
     
    14431495     * Disassemble one instruction at cs:[r|e]ip.
    14441496     */
     1497#ifndef VBOX_VMM_TARGET_ARMV8
    14451498    if (!f64BitMode && strstr(pszRegs, " vm ")) /* a bit ugly... */
    14461499        return pCmdHlp->pfnExec(pCmdHlp, "uv86 %s", szDisAndRegs + 2);
     1500#endif
    14471501    return pCmdHlp->pfnExec(pCmdHlp, "%s", szDisAndRegs);
    14481502}
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette