VirtualBox

Changeset 102092 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Nov 14, 2023 11:53:15 PM (15 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160209
Message:

VMM/DBGF,DBGC,Main: Added DBGFR3RegNmQueryEx and fixed some issues with DBGFR3RegNmQueryAll that lead to assertions in Main and empty entries in VBoxManage output. Extended the 'r' and 'rg' debugger commands to make use of the two APIs, the first by appending '.' to a register (e.g. r @cr0.) and the latter by using 'all' as the register name.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/dbgf.h

    r100118 r102092  
    24482448    /** The size of the value in bytes. */
    24492449    DBGFREGVALTYPE  enmType;
     2450    /** Extra info returned by queries, ignored by setters. */
     2451    union
     2452    {
     2453        uint32_t    uInfo;
     2454        struct
     2455        {
     2456            /** The actual value width in bits (if zero, check enmType).
     2457             * DBGFREGSUBFIELD::cBits + DBGFREGSUBFIELD::cShift  */
     2458            uint32_t        cBits     : 10;
     2459            /** Set if this is an alias entry.   */
     2460            uint32_t        fAlias    : 1;
     2461            /** Set if this is the main register. */
     2462            uint32_t        fMain     : 1;
     2463            /** Set if this is a sub-field. */
     2464            uint32_t        fSubField : 1;
     2465            /** Unused, reserved for later. */
     2466            uint32_t        fReserved : 19;
     2467        } s;
     2468    } u;
    24502469    /** The register value. The valid view is indicated by enmType. */
    24512470    DBGFREGVAL      Val;
     
    24552474/** Pointer to a const named register entry in a batch operation. */
    24562475typedef DBGFREGENTRYNM const *PCDBGFREGENTRYNM;
     2476
     2477/** @name DBGFR3REG_QUERY_EX_F_XXX - Flags for DBGFR3RegNmQueryEx
     2478 * @{ */
     2479/** Include subfields in the result.   */
     2480#define DBGFR3REG_QUERY_EX_F_SUBFIELDS      RT_BIT_32(0)
     2481/** Include aliases in the result.   */
     2482#define DBGFR3REG_QUERY_EX_F_ALIASES        RT_BIT_32(1)
     2483/** Mask with the valid bits.   */
     2484#define DBGFR3REG_QUERY_EX_F_VALID_MASK     UINT32_C(0x00000003)
     2485/** @} */
    24572486
    24582487VMMR3DECL(int) DBGFR3RegNmValidate( PUVM pUVM, VMCPUID idDefCpu, const char *pszReg);
     
    24662495/*VMMR3DECL(int) DBGFR3RegNmQueryLrd( PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, long double *plrd);*/
    24672496VMMR3DECL(int) DBGFR3RegNmQueryXdtr(PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, uint64_t *pu64Base, uint16_t *pu16Limit);
     2497VMMR3DECL(int) DBGFR3RegNmQueryEx(  PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, uint32_t fFlags, PDBGFREGENTRYNM paRegs, size_t *pcRegs);
    24682498VMMR3DECL(int) DBGFR3RegNmQueryBatch(PUVM pUVM,VMCPUID idDefCpu, PDBGFREGENTRYNM paRegs, size_t cRegs);
    24692499VMMR3DECL(int) DBGFR3RegNmQueryAllCount(PUVM pUVM, size_t *pcRegs);
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