VirtualBox

Changeset 56514 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jun 18, 2015 12:11:56 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
101133
Message:

VMM/DBGF: Dump guest core with a more standardized CPU dump including FPU/SSE/AVX state, version number of core format is bumped.

File:
1 edited

Legend:

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

    r56302 r56514  
    4848#define DBGFCORE_MAGIC          UINT32_C(0xc01ac0de)
    4949/** DBGCORECOREDESCRIPTOR::u32FmtVersion. */
    50 #define DBGFCORE_FMT_VERSION    UINT32_C(0x00010001)
     50#define DBGFCORE_FMT_VERSION    UINT32_C(0x00010002)
     51
     52/**
     53 * An x86 segment selector.
     54 */
     55typedef struct DBGFCORESEL
     56{
     57    uint64_t        uBase;
     58    uint32_t        uLimit;
     59    uint32_t        uAttr;
     60    uint16_t        uSel;
     61    uint16_t        uReserved;
     62} VBOXX86SEL;
     63AssertCompileSizeAlignment(DBGFCORESEL, 8);
     64
     65/**
     66 * A gdtr/ldtr descriptor.
     67 */
     68typedef struct DBGFCOREXDTR
     69{
     70    uint64_t        uAddr;
     71    uint32_t        cb;
     72    uint32_t        uReserved0;
     73} DBGFXDTR;
     74AssertCompileSizeAlignment(DBGFCORESEL, 8);
     75
     76/**
     77 * A simpler to parse CPU dump than CPUMCTX.
     78 *
     79 * Please bump DBGFCORE_FMT_VERSION by 1 if you make any changes to this
     80 * structure.
     81 */
     82typedef struct DBGFCORECPU
     83{
     84    uint64_t            rax;
     85    uint64_t            rbx;
     86    uint64_t            rcx;
     87    uint64_t            rdx;
     88    uint64_t            rsi;
     89    uint64_t            rdi;
     90    uint64_t            r8;
     91    uint64_t            r9;
     92    uint64_t            r10;
     93    uint64_t            r11;
     94    uint64_t            r12;
     95    uint64_t            r13;
     96    uint64_t            r14;
     97    uint64_t            r15;
     98    uint64_t            rip;
     99    uint64_t            rsp;
     100    uint64_t            rbp;
     101    DBGFCORESEL         cs;
     102    DBGFCORESEL         ds;
     103    DBGFCORESEL         es;
     104    DBGFCORESEL         fs;
     105    DBGFCORESEL         gs;
     106    DBGFCORESEL         ss;
     107    uint64_t            cr0;
     108    uint64_t            cr2;
     109    uint64_t            cr3;
     110    uint64_t            cr4;
     111    uint64_t            dr[8];
     112    DBGFCOREXDTR        gdtr;
     113    DBGFCOREXDTR        idtr;
     114    VBOXX86SEL          ldtr;
     115    VBOXX86SEL          tr;
     116    union
     117    {
     118        uint64_t        cs;
     119        uint64_t        eip;
     120        uint64_t        esp;
     121    } sysenter;
     122    uint64_t            msrEFER;
     123    uint64_t            msrSTAR;
     124    uint64_t            msrPAT;
     125    uint64_t            msrLSTAR;
     126    uint64_t            msrCSTAR;
     127    uint64_t            msrSFMASK;
     128    uint64_t            msrKernelGSBase;
     129    uint64_t            msrApicBase;
     130    uint64_t            aXcr[2];
     131    X86XSAVEAREA        ext;
     132} DBGFCORECPU;
     133/** Pointer to a DBGF-core CPU. */
     134typedef DBGFCORECPU *PDBGFCORECPU;
     135/** Pointer to the const DBGF-core CPU. */
     136typedef const DBGFCORECPU *PCDBGFCORECPU;
     137AssertCompileMemberAlignment(DBGFCORECPU, cr0,     8);
     138AssertCompileMemberAlignment(DBGFCORECPU, msrEFER, 8);
     139AssertCompileMemberAlignment(DBGFCORECPU, ext,     8);
     140AssertCompileSizeAlignment(DBGFCORECPU, 8);
    51141
    52142/**
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