VirtualBox

Changeset 45428 in vbox


Ignore:
Timestamp:
Apr 9, 2013 12:32:35 PM (11 years ago)
Author:
vboxsync
Message:

VMM: Propagate errors from PGM through the disassembler. Get rid of VERR_EM_INTERNAL_DISAS_ERROR and dependents.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/err.h

    r45385 r45428  
    238238#define VINF_EM_RAW_EMULATE_DBG_STEP        1151
    239239/** Patch TPR access instruction. */
    240 #define VINF_EM_HM_PATCH_TPR_INSTR      1152
    241 /** The EMInterpretDisasOne / EMInterpretDisasOneEx methods failed to
    242  * disassemble the instruction. */
    243 #define VERR_EM_INTERNAL_DISAS_ERROR        (-1153)
     240#define VINF_EM_HM_PATCH_TPR_INSTR          1152
    244241/** Unexpected guest mapping conflict detected. */
    245242#define VERR_EM_UNEXPECTED_MAPPING_CONFLICT (-1154)
     
    19691966/** Invalid parameter index. */
    19701967#define VERR_DIS_INVALID_PARAMETER                  (-4204)
    1971 /** Reading opcode bytes failed. */
    1972 #define VERR_DIS_MEM_READ                           (-4205)
    19731968/** The instruction is too long. */
    19741969#define VERR_DIS_TOO_LONG_INSTR                     (-4206)
  • trunk/src/VBox/Disassembler/DisasmCore.cpp

    r41886 r45428  
    293293    {
    294294        Log(("disReadMore failed with rc=%Rrc!!\n", rc));
    295         pDis->rc = VERR_DIS_MEM_READ;
     295        pDis->rc = rc;
    296296    }
    297297}
     
    26082608    {
    26092609        Log(("Initial read failed with rc=%Rrc!!\n", rc));
    2610         pDis->rc = VERR_DIS_MEM_READ;
     2610        pDis->rc = rc;
    26112611    }
    26122612}
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r45301 r45428  
    461461    if (RT_SUCCESS(rc))
    462462        return VINF_SUCCESS;
    463     AssertMsgFailed(("DISCoreOne failed to GCPtrInstr=%RGv rc=%Rrc\n", GCPtrInstr, rc));
    464     return VERR_EM_INTERNAL_DISAS_ERROR;
     463    AssertMsg(rc == VERR_PAGE_NOT_PRESENT || rc == VERR_PAGE_TABLE_NOT_PRESENT, ("DISCoreOne failed to GCPtrInstr=%RGv rc=%Rrc\n", GCPtrInstr, rc));
     464    return rc;
    465465}
    466466
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r44528 r45428  
    120120                }
    121121            }
    122             else if (RT_UNLIKELY(rc == VERR_EM_INTERNAL_DISAS_ERROR))
    123                 return rc;
    124122            break;
    125123        }
Note: See TracChangeset for help on using the changeset viewer.

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