VirtualBox

Changeset 35697 in vbox


Ignore:
Timestamp:
Jan 24, 2011 6:13:26 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
69626
Message:

Debugger console: more cleaning up.

File:
1 edited

Legend:

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

    r35696 r35697  
    921921static DECLCALLBACK(int) dbgcCmdUnassemble(PCDBGCCMD pCmd, PDBGCCMDHLP pCmdHlp, PVM pVM, PCDBGCVAR paArgs, unsigned cArgs)
    922922{
    923     PDBGC   pDbgc = DBGC_CMDHLP2DBGC(pCmdHlp);
     923    PDBGC pDbgc = DBGC_CMDHLP2DBGC(pCmdHlp);
    924924
    925925    /*
    926926     * Validate input.
    927927     */
    928     if (    cArgs > 1
    929         ||  (cArgs == 1 && !DBGCVAR_ISPOINTER(paArgs[0].enmType)))
    930         return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "internal error: The parser doesn't do its job properly yet.. It might help to use the '%%' operator.\n");
    931     if (!pVM && !cArgs && !DBGCVAR_ISPOINTER(pDbgc->DisasmPos.enmType))
    932         return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: Don't know where to start disassembling...\n");
    933     if (!pVM && cArgs && DBGCVAR_ISGCPOINTER(paArgs[0].enmType))
    934         return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: GC address but no VM.\n");
    935 
     928    DBGC_CMDHLP_REQ_VM_RET(pCmdHlp, pCmd, pVM);
     929    DBGC_CMDHLP_ASSERT_PARSER_RET(pCmdHlp, pCmd, -1, cArgs <= 1);
     930    DBGC_CMDHLP_ASSERT_PARSER_RET(pCmdHlp, pCmd, 0, cArgs == 0 || DBGCVAR_ISPOINTER(paArgs[0].enmType));
     931
     932    if (!cArgs && !DBGCVAR_ISPOINTER(pDbgc->DisasmPos.enmType))
     933        return DBGCCmdHlpFail(pCmdHlp, pCmd, "Don't know where to start disassembling");
     934
     935    /*
     936     * Check the desired mode.
     937     */
    936938    unsigned fFlags = DBGF_DISAS_FLAGS_NO_ADDRESS;
    937 
    938     /*
    939      * Check the desired mode.
    940      */
    941939    switch (pCmd->pszCmd[1])
    942940    {
     
    956954        if (!DBGCVAR_ISPOINTER(pDbgc->DisasmPos.enmType))
    957955        {
     956            /** @todo Batch query CS, RIP & CPU mode. */
    958957            PVMCPU pVCpu = VMMGetCpuById(pVM, pDbgc->idCpu);
    959958            if (    pDbgc->fRegCtxGuest
     
    993992        case DBGCVAR_RANGE_ELEMENTS:
    994993            if (pDbgc->DisasmPos.u64Range > 2048)
    995                 return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: Too many lines requested. Max is 2048 lines.\n");
     994                return DBGCCmdHlpFail(pCmdHlp, pCmd, "Too many lines requested. Max is 2048 lines");
    996995            break;
    997996
    998997        case DBGCVAR_RANGE_BYTES:
    999998            if (pDbgc->DisasmPos.u64Range > 65536)
    1000                 return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: The requested range is too big. Max is 64KB.\n");
     999                return DBGCCmdHlpFail(pCmdHlp, pCmd, "The requested range is too big. Max is 64KB");
    10011000            break;
    10021001
    10031002        default:
    1004             return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "internal error: Unknown range type %d.\n", pDbgc->DisasmPos.enmRangeType);
     1003            return DBGCCmdHlpFail(pCmdHlp, pCmd, "Unknown range type %d", pDbgc->DisasmPos.enmRangeType);
    10051004    }
    10061005
     
    10211020            rc = DBGCCmdHlpEval(pCmdHlp, &VarTmp, "%%(%Dv)", &pDbgc->DisasmPos);
    10221021            if (RT_FAILURE(rc))
    1023                 return pCmdHlp->pfnPrintf(pCmdHlp, NULL, "error: failed to evaluate '%%(%Dv)' -> %Rrc .\n", &pDbgc->DisasmPos, rc);
     1022                return DBGCCmdHlpFailRc(pCmdHlp, pCmd, rc, "failed to evaluate '%%(%Dv)'", &pDbgc->DisasmPos);
    10241023            pDbgc->DisasmPos = VarTmp;
    10251024            break;
     
    10611060        {
    10621061            /* print it */
    1063             rc = pCmdHlp->pfnPrintf(pCmdHlp, NULL, "%-16DV %s\n", &pDbgc->DisasmPos, &szDis[0]);
     1062            rc = DBGCCmdHlpPrintf(pCmdHlp, "%-16DV %s\n", &pDbgc->DisasmPos, &szDis[0]);
    10641063            if (RT_FAILURE(rc))
    10651064                return rc;
     
    10681067        {
    10691068            /* bitch. */
    1070             rc = pCmdHlp->pfnPrintf(pCmdHlp, NULL, "Failed to disassemble instruction, skipping one byte.\n");
     1069            rc = DBGCCmdHlpPrintf(pCmdHlp, "Failed to disassemble instruction, skipping one byte.\n");
    10711070            if (RT_FAILURE(rc))
    10721071                return rc;
    10731072            if (cTries-- > 0)
    1074                 return pCmdHlp->pfnVBoxError(pCmdHlp, rc, "Too many disassembly failures. Giving up.\n");
     1073                return DBGCCmdHlpFailRc(pCmdHlp, pCmd, rc, "Too many disassembly failures. Giving up");
    10751074            cbInstr = 1;
    10761075        }
     
    10851084        rc = DBGCCmdHlpEval(pCmdHlp, &pDbgc->DisasmPos, "(%Dv) + %x", &pDbgc->DisasmPos, cbInstr);
    10861085        if (RT_FAILURE(rc))
    1087             return pCmdHlp->pfnVBoxError(pCmdHlp, rc, "Expression: (%Dv) + %x\n", &pDbgc->DisasmPos, cbInstr);
     1086            return DBGCCmdHlpFailRc(pCmdHlp, pCmd, rc, "DBGCCmdHlpEval(,,'(%Dv) + %x')", &pDbgc->DisasmPos, cbInstr);
    10881087        if (iRangeLeft <= 0)
    10891088            break;
     
    10921091
    10931092    NOREF(pCmd);
    1094     return 0;
     1093    return VINF_SUCCESS;
    10951094}
    10961095
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