VMMGuruMeditation.cpp revision ff88d4153cd65650577e8c2d1a5a3fdfa0404a80
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * VMM - The Virtual Machine Monitor, Guru Meditation Code.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * available from http://www.virtualbox.org. This file is free software;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * you can redistribute it and/or modify it under the terms of the GNU
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * General Public License (GPL) as published by the Free Software
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * additional information or have any questions.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*******************************************************************************
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync* Header Files *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync*******************************************************************************/
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*******************************************************************************
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync* Structures and Typedefs *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync*******************************************************************************/
typedef struct VMMR3FATALDUMPINFOHLP
bool fStdErr;
static DECLCALLBACK(void) vmmR3FatalDumpInfoHlp_pfnPrintf(PCDBGFINFOHLP pHlp, const char *pszFormat, ...)
static DECLCALLBACK(void) vmmR3FatalDumpInfoHlp_pfnPrintfV(PCDBGFINFOHLP pHlp, const char *pszFormat, va_list args)
#ifndef LOG_ENABLED
#ifndef DEBUG_sandervl
#ifdef DEBUG_sandervl
pHlp->fStdErr = (!pHlp->pRelLogger || !(pHlp->pRelLogger->fDestFlags & (RTLOGDEST_STDOUT | RTLOGDEST_STDERR)))
bool fDoneHyper = false;
switch (rcErr)
case VERR_VMM_RING0_ASSERTION:
pszMsg1++;
pszMsg2++;
pszMsg2);
if ( !pszMsg2
|| !*pszMsg2
case VERR_TRPM_DONT_PANIC:
case VERR_TRPM_PANIC:
case VINF_EM_RAW_IRET_TRAP:
uEIP);
rc2 = DBGFR3DisasInstrEx(pVM, 0, 0, DBGF_DISAS_FLAGS_CURRENT_HYPER, &szInstr[0], sizeof(szInstr), NULL);
fDoneHyper = true;
if (offDisp > 0)
else if (offDisp < 0)
const char *pszInfo;
const char *pszArgs;
} const aInfo[] =