VirtualBox

Changeset 73417 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Aug 1, 2018 11:09:23 AM (6 years ago)
Author:
vboxsync
Message:

VMM/DBGF: Implemented DBGFR3RegNmQueryXdtr and fixed exports, including DBGFR3ModInMem which is needed by previous commit.

Location:
trunk/src/VBox/VMM/VMMR3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/DBGFReg.cpp

    r73097 r73417  
    10501050    return rc;
    10511051}
     1052
     1053
     1054/**
     1055 * Queries a descriptor table register value.
     1056 *
     1057 * @retval  VINF_SUCCESS
     1058 * @retval  VERR_INVALID_VM_HANDLE
     1059 * @retval  VERR_INVALID_CPU_ID
     1060 * @retval  VERR_DBGF_REGISTER_NOT_FOUND
     1061 * @retval  VERR_DBGF_UNSUPPORTED_CAST
     1062 * @retval  VINF_DBGF_TRUNCATED_REGISTER
     1063 * @retval  VINF_DBGF_ZERO_EXTENDED_REGISTER
     1064 *
     1065 * @param   pUVM                The user mode VM handle.
     1066 * @param   idCpu               The target CPU ID.  Can be OR'ed with
     1067 *                              DBGFREG_HYPER_VMCPUID.
     1068 * @param   enmReg              The register that's being queried.
     1069 * @param   pu64Base            Where to store the register base value.
     1070 * @param   pu16Limit           Where to store the register limit value.
     1071 */
     1072VMMR3DECL(int) DBGFR3RegCpuQueryXdtr(PUVM pUVM, VMCPUID idCpu, DBGFREG enmReg, uint64_t *pu64Base, uint16_t *pu16Limit)
     1073{
     1074    DBGFREGVAL Value;
     1075    int rc = dbgfR3RegCpuQueryWorker(pUVM, idCpu, enmReg, DBGFREGVALTYPE_DTR, &Value);
     1076    if (RT_SUCCESS(rc))
     1077    {
     1078        *pu64Base  = Value.dtr.u64Base;
     1079        *pu16Limit = Value.dtr.u32Limit;
     1080    }
     1081    else
     1082    {
     1083        *pu64Base  = 0;
     1084        *pu16Limit = 0;
     1085    }
     1086    return rc;
     1087}
     1088
    10521089
    10531090#if 0 /* rewrite / remove */
     
    17701807 *                              "set.reg[.sub]".
    17711808 * @param   pu64Base            Where to store the register base value.
    1772  * @param   pu32Limit           Where to store the register limit value.
    1773  */
    1774 VMMR3DECL(int) DBGFR3RegNmQueryXdtr(PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, uint64_t *pu64Base, uint32_t *pu32Limit)
     1809 * @param   pu16Limit           Where to store the register limit value.
     1810 */
     1811VMMR3DECL(int) DBGFR3RegNmQueryXdtr(PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, uint64_t *pu64Base, uint16_t *pu16Limit)
    17751812{
    17761813    DBGFREGVAL Value;
     
    17791816    {
    17801817        *pu64Base  = Value.dtr.u64Base;
    1781         *pu32Limit = Value.dtr.u32Limit;
     1818        *pu16Limit = Value.dtr.u32Limit;
    17821819    }
    17831820    else
    17841821    {
    17851822        *pu64Base  = 0;
    1786         *pu32Limit = 0;
     1823        *pu16Limit = 0;
    17871824    }
    17881825    return rc;
  • trunk/src/VBox/VMM/VMMR3/VMMR3.def

    r72327 r73417  
    110110    DBGFR3OSDetect
    111111    DBGFR3OSQueryNameAndVersion
     112    DBGFR3RegCpuQueryU8
     113    DBGFR3RegCpuQueryU16
    112114    DBGFR3RegCpuQueryU32
     115    DBGFR3RegCpuQueryU64
     116    DBGFR3RegCpuQueryXdtr
     117    DBGFR3RegCpuQueryLrd
    113118    DBGFR3RegFormatValue
    114119    DBGFR3RegNmQuery
     
    121126    DBGFR3MemRead
    122127    DBGFR3MemScan
     128    DBGFR3ModInMem
    123129    DBGFR3AddrFromFlat
    124130    DBGFR3AsSymbolByName
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