VirtualBox

Changeset 73351 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jul 25, 2018 1:02:11 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123965
Message:

VBoxGuest,VMMDev,DBGF,VM: Added bug check report to VBoxGuest/VMMDev and hooked it up to DBGF. Made DBGF remember the last reported bug check, adding an info handler for displaying it. Added VM reset counters w/ getters for use in bug check reporting.

Location:
trunk/include/VBox
Files:
5 edited

Legend:

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

    r73097 r73351  
    187187    VMMDevReq_GuestHeartbeat             = 219,
    188188    VMMDevReq_HeartbeatConfigure         = 220,
     189    VMMDevReq_NtBugCheck                 = 221,
    189190    VMMDevReq_SizeHack                   = 0x7fffffff
    190191} VMMDevRequestType;
     
    15161517AssertCompileSize(VMMDevReqWriteCoreDump, 24+4);
    15171518
    1518 /** Heart beat check state structure.
    1519  *  Used by VMMDevReq_HeartbeatConfigure. */
     1519
     1520/**
     1521 * Heart beat check state structure.
     1522 * Used by VMMDevReq_HeartbeatConfigure.
     1523 */
    15201524typedef struct
    15211525{
     
    15281532} VMMDevReqHeartbeat;
    15291533AssertCompileSize(VMMDevReqHeartbeat, 24+12);
     1534
     1535
     1536/**
     1537 * NT bug check report.
     1538 * Used by VMMDevReq_NtBugCheck.
     1539 * @remarks  Can be issued with just the header if no more data is available.
     1540 */
     1541typedef struct
     1542{
     1543    /** Header. */
     1544    VMMDevRequestHeader         header;
     1545    /** The bug check number (P0). */
     1546    uint64_t                    uBugCheck;
     1547    /** The four bug check parameters. */
     1548    uint64_t                    auParameters[4];
     1549} VMMDevReqNtBugCheck;
     1550AssertCompileSize(VMMDevReqNtBugCheck, 24+40);
    15301551
    15311552
  • trunk/include/VBox/vmm/dbgf.h

    r73348 r73351  
    419419    /** Windows guest reported BSOD via EFI variables. */
    420420    DBGFEVENT_BSOD_EFI,
     421    /** Windows guest reported BSOD via VMMDev. */
     422    DBGFEVENT_BSOD_VMMDEV,
    421423
    422424    /** End of valid event values. */
     
    27162718/** @defgroup grp_dbgf_misc  Misc DBGF interfaces.
    27172719 * @{ */
     2720VMMR3DECL(VBOXSTRICTRC)      DBGFR3ReportBugCheck(PVM pVM, PVMCPU pVCpu, DBGFEVENTTYPE enmEvent, uint64_t uBugCheck,
     2721                                                  uint64_t uP1, uint64_t uP2, uint64_t uP3, uint64_t uP4);
    27182722VMMR3DECL(int)               DBGFR3FormatBugCheck(PUVM pUVM, char *pszDetails, size_t cbDetails,
    27192723                                                  uint64_t uP0, uint64_t uP1, uint64_t uP2, uint64_t uP3, uint64_t uP4);
  • trunk/include/VBox/vmm/vm.h

    r73073 r73351  
    13351335        } const     ro;
    13361336#endif
    1337         uint8_t     padding[2368];      /* multiple of 64 */
     1337        uint8_t     padding[2432];      /* multiple of 64 */
    13381338    } dbgf;
    13391339
     
    14111411        struct VMINT s;
    14121412#endif
    1413         uint8_t     padding[24];        /* multiple of 8 */
     1413        uint8_t     padding[32];        /* multiple of 8 */
    14141414    } vm;
    14151415
     
    14251425    /** Padding for aligning the cpu array on a page boundary. */
    14261426#if defined(VBOX_WITH_REM) && defined(VBOX_WITH_RAW_MODE)
    1427     uint8_t         abAlignment2[3742];
     1427    uint8_t         abAlignment2[3670];
    14281428#elif defined(VBOX_WITH_REM) && !defined(VBOX_WITH_RAW_MODE)
    1429     uint8_t         abAlignment2[1502];
     1429    uint8_t         abAlignment2[1430];
    14301430#elif !defined(VBOX_WITH_REM) && defined(VBOX_WITH_RAW_MODE)
    1431     uint8_t         abAlignment2[3998];
    1432 #else
    1433     uint8_t         abAlignment2[1758];
     1431    uint8_t         abAlignment2[3926];
     1432#else
     1433    uint8_t         abAlignment2[1686];
    14341434#endif
    14351435
  • trunk/include/VBox/vmm/vm.mac

    r72569 r73351  
    164164    .nem                    resb 128
    165165    .tm                     resb 2496
    166     .dbgf                   resb 2368
     166    .dbgf                   resb 2432
    167167    .ssm                    resb 128
    168168    .ftm                    resb 512
     
    176176    .gim                    resb 448
    177177    .apic                   resb 128
    178     .vm                     resb 24
     178    .vm                     resb 32
    179179    .cfgm                   resb 8
    180180    alignb 4096
  • trunk/include/VBox/vmm/vmapi.h

    r72327 r73351  
    210210typedef FNVMATSTATE *PFNVMATSTATE;
    211211
    212 VMMDECL(const char *) VMGetStateName(VMSTATE enmState);
     212VMMDECL(const char *)   VMGetStateName(VMSTATE enmState);
     213
     214VMMDECL(uint32_t)       VMGetResetCount(PVM pVM);
     215VMMDECL(uint32_t)       VMGetSoftResetCount(PVM pVM);
     216VMMDECL(uint32_t)       VMGetHardResetCount(PVM pVM);
    213217
    214218
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