VirtualBox

Changeset 12479 in vbox for trunk/src


Ignore:
Timestamp:
Sep 16, 2008 9:14:29 AM (16 years ago)
Author:
vboxsync
Message:

Also print ring 0 release assertion messages to the release log. Now we get meaningless
VINF_EM_DBG_HYPER_ASSERTION guru meditations.

Bumped the minor version of the support driver, because of new exports.

Location:
trunk/src/VBox
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/SUPDrv.c

    r12293 r12479  
    387387    { "AssertMsg1",                             (void *)UNWIND_WRAP(AssertMsg1) },
    388388    { "AssertMsg2",                             (void *)AssertMsg2 }, /** @todo replace this by RTAssertMsg2V */
     389    { "RTStrPrintf",                            (void *)RTStrPrintf },
     390    { "RTStrPrintfV",                           (void *)RTStrPrintfV },
    389391};
    390392
  • trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h

    r10805 r12479  
    182182 * The upper 16-bit is the major version, the the lower the minor version.
    183183 * When incompatible changes are made, the upper major number has to be changed. */
    184 #define SUPDRV_IOC_VERSION                              0x00090000
     184#define SUPDRV_IOC_VERSION                              0x00090001
    185185
    186186/** SUP_IOCTL_COOKIE. */
  • trunk/src/VBox/HostDrivers/Support/SUPR0.def

    r12100 r12479  
    115115    AssertMsg1
    116116    AssertMsg2
     117    RTStrPrintf
     118    RTStrPrintfV
     119   
    117120
    118121    ; data
  • trunk/src/VBox/VMM/VMM.cpp

    r11945 r12479  
    22752275            pVM->vmm.s.CallHostR0JmpBuf.rip = 0;
    22762276#endif
     2277            LogRel((pVM->vmm.s.szRing0AssertMsg1));
     2278            LogRel((pVM->vmm.s.szRing0AssertMsg2));
    22772279            return VINF_EM_DBG_HYPER_ASSERTION;
    22782280
  • trunk/src/VBox/VMM/VMMInternal.h

    r11474 r12479  
    250250    /** The Ring-0 jmp buffer. */
    251251    VMMR0JMPBUF                 CallHostR0JmpBuf;
     252    /** Buffer for storing ring 0 assertion output, so we can reroute it to the release log. */
     253    char                        szRing0AssertMsg1[256];
     254    char                        szRing0AssertMsg2[256];
    252255    /** @} */
    253256
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r10844 r12479  
    4545#include <iprt/stdarg.h>
    4646#include <iprt/mp.h>
     47#include <iprt/string.h>
    4748
    4849#if defined(_MSC_VER) && defined(RT_ARCH_AMD64) /** @todo check this with with VC7! */
     
    11551156               "Location  : %s(%d) %s\n",
    11561157               pszExpr, pszFile, uLine, pszFunction));
     1158
     1159    PVM pVM = GVMMR0GetVMByEMT(NIL_RTNATIVETHREAD);
     1160    if (pVM)
     1161        RTStrPrintf(pVM->vmm.s.szRing0AssertMsg1, sizeof(pVM->vmm.s.szRing0AssertMsg1),
     1162                    "\n!!R0-Assertion Failed!!\n"
     1163                    "Expression: %s\n"
     1164                    "Location  : %s(%d) %s\n",
     1165                    pszExpr, pszFile, uLine, pszFunction);
    11571166}
    11581167
     
    11851194        va_start(args, pszFormat);
    11861195        RTLogFormatV(rtLogOutput, pLog, pszFormat, args);
     1196        PVM pVM = GVMMR0GetVMByEMT(NIL_RTNATIVETHREAD);
     1197        if (pVM)
     1198            RTStrPrintfV(pVM->vmm.s.szRing0AssertMsg2, sizeof(pVM->vmm.s.szRing0AssertMsg2), pszFormat, args);
    11871199        va_end(args);
    11881200    }
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