Index: /trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c	(revision 6146)
+++ /trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-solaris.c	(revision 6147)
@@ -30,4 +30,7 @@
 #undef u /* /usr/include/sys/user.h:249:1 is where this is defined to (curproc->p_user). very cool. */
 
+#if defined(DEBUG_ramshankar) && !defined(LOG_ENABLED)
+#define LOG_ENABLED
+#endif
 #include "VBoxGuestInternal.h"
 #include <VBox/log.h>
@@ -46,9 +49,4 @@
 /** The module description as seen in 'modinfo'. */
 #define DEVICE_DESC              "VirtualBox Guest Additions Driver"
-/** @name R0 Log helpers.
- * @{ */
-#define VBA_LOGCONT(...)         cmn_err(CE_CONT, "vboxadd: " __VA_ARGS__);
-#define VBA_LOGNOTE(...)         cmn_err(CE_NOTE, "vboxadd: " __VA_ARGS__);
-/** @} */
 
 
@@ -193,6 +191,5 @@
 int _init(void)
 {
-    VBA_LOGCONT("_init\n");
-
+    LogFlow((DEVICE_NAME ":_init\n"));
     int rc = ddi_soft_state_init(&g_pVBoxAddSolarisState, sizeof(VBoxAddDevState), 1);
     if (!rc)
@@ -208,6 +205,5 @@
 int _fini(void)
 {
-    VBA_LOGCONT("_fini\n");
-
+    LogFlow((DEVICE_NAME ":_fini\n"));
     int rc = mod_remove(&g_VBoxAddSolarisModLinkage);
     if (!rc)
@@ -219,5 +215,5 @@
 int _info(struct modinfo *pModInfo)
 {
-    VBA_LOGCONT("_info\n");
+    LogFlow((DEVICE_NAME ":_info\n"));
     return mod_info(&g_VBoxAddSolarisModLinkage, pModInfo);
 }
@@ -234,5 +230,5 @@
 static int VBoxAddSolarisAttach(dev_info_t *pDip, ddi_attach_cmd_t enmCmd)
 {
-    VBA_LOGCONT("VBoxAddSolarisAttach\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisAttach\n"));
     switch (enmCmd)
     {
@@ -248,5 +244,5 @@
             if (rc != DDI_SUCCESS)
             {
-                VBA_LOGNOTE("ddi_soft_state_zalloc failed.\n");
+                Log((DEVICE_NAME ":ddi_soft_state_zalloc failed.\n"));
                 return DDI_FAILURE;
             }
@@ -256,5 +252,5 @@
             {
                 ddi_soft_state_free(g_pVBoxAddSolarisState, instance);
-                VBA_LOGNOTE("ddi_get_soft_state for instance %d failed\n", instance);
+                Log((DEVICE_NAME ":ddi_get_soft_state for instance %d failed\n", instance));
                 return DDI_FAILURE;
             }
@@ -263,5 +259,5 @@
             if (!pState)
             {
-                VBA_LOGNOTE("RTMemAllocZ failed to allocate %d bytes\n", sizeof(VBoxAddDevState));
+                Log((DEVICE_NAME ":RTMemAllocZ failed to allocate %d bytes\n", sizeof(VBoxAddDevState)));
                 return DDI_FAILURE;
             }
@@ -274,5 +270,5 @@
             if (RT_FAILURE(rc))
             {
-                VBA_LOGNOTE("RTR0Init failed.\n");
+                Log((DEVICE_NAME ":RTR0Init failed.\n"));
                 return DDI_FAILURE;
             }
@@ -352,38 +348,38 @@
                                                 }
 
-                                                VBA_LOGNOTE("ddi_create_minor_node failed.\n");
+                                                LogRel((DEVICE_NAME ":ddi_create_minor_node failed.\n"));
                                             }
                                             else
-                                                VBA_LOGNOTE("VBoxGuestInitDevExt failed.\n");
+                                                Log((DEVICE_NAME ":VBoxGuestInitDevExt failed.\n"));
                                             VBoxGuestSolarisRemoveIRQ(pDip, pState);
                                         }
                                         else
-                                            VBA_LOGNOTE("VBoxGuestSolarisAddIRQ failed.\n");
+                                            LogRel((DEVICE_NAME ":VBoxGuestSolarisAddIRQ failed.\n"));
                                         ddi_regs_map_free(&pState->PciMMIOHandle);
                                     }
                                     else
-                                        VBA_LOGNOTE("ddi_regs_map_setup for MMIO region failed.\n");
+                                        Log((DEVICE_NAME ":ddi_regs_map_setup for MMIO region failed.\n"));
                                 }
                                 else
-                                    VBA_LOGNOTE("ddi_dev_regsize for MMIO region failed.\n");
-                                    ddi_regs_map_free(&pState->PciIOHandle);
+                                    Log((DEVICE_NAME ":ddi_dev_regsize for MMIO region failed.\n"));
+                                ddi_regs_map_free(&pState->PciIOHandle);
                             }
                             else
-                                VBA_LOGNOTE("ddi_regs_map_setup for IOport failed.\n");
+                                Log((DEVICE_NAME ":ddi_regs_map_setup for IOport failed.\n"));
                         }
                         else
-                            VBA_LOGNOTE("PCI class/sub-class does not match.\n");
+                            Log((DEVICE_NAME ":PCI class/sub-class does not match.\n"));
                     }
                     else
-                        VBA_LOGNOTE("PCI vendorID, deviceID does not match.\n");
+                        Log((DEVICE_NAME ":PCI vendorID, deviceID does not match.\n"));
                     pci_config_teardown(&pState->PciHandle);
                 }
                 else
-                    VBA_LOGNOTE("pci_config_setup failed rc=%d.\n", rc);
+                    LogRel((DEVICE_NAME ":pci_config_setup failed rc=%d.\n", rc));
                 RTSpinlockDestroy(g_Spinlock);
                 g_Spinlock = NIL_RTSPINLOCK;
             }
             else
-                VBA_LOGNOTE("RTSpinlockCreate failed.\n");
+                Log((DEVICE_NAME ":RTSpinlockCreate failed.\n"));
 
             RTR0Term();
@@ -413,5 +409,5 @@
 static int VBoxAddSolarisDetach(dev_info_t *pDip, ddi_detach_cmd_t enmCmd)
 {
-    VBA_LOGCONT("VBoxAddSolarisDetach\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisDetach\n"));
     switch (enmCmd)
     {
@@ -444,5 +440,5 @@
                 return DDI_SUCCESS;
             }
-            VBA_LOGNOTE("ddi_get_soft_state failed. Cannot detach instance %d\n", instance);
+            Log((DEVICE_NAME ":ddi_get_soft_state failed. Cannot detach instance %d\n", instance));
             return DDI_FAILURE;
         }
@@ -472,5 +468,5 @@
 static int VBoxAddSolarisGetInfo(dev_info_t *pDip, ddi_info_cmd_t enmCmd, void *pArg, void **ppResult)
 {
-    VBA_LOGCONT("VBoxAddSolarisGetInfo\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisGetInfo\n"));
 
     int rc = DDI_SUCCESS;
@@ -501,5 +497,5 @@
     PVBOXGUESTSESSION   pSession;
 
-    VBA_LOGCONT("VBoxAddSolarisOpen\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisOpen\n"));
 
 #ifndef USE_SESSION_HASH
@@ -517,5 +513,5 @@
     if (!pState)
     {
-        VBA_LOGNOTE("VBoxAddSolarisOpen: too many open instances.");
+        Log((DEVICE_NAME ":VBoxAddSolarisOpen: too many open instances."));
         return ENXIO;
     }
@@ -528,5 +524,5 @@
     {
         pState->pSession = pSession;
-        VBA_LOGCONT("VBoxAddSolarisOpen: pSession=%p pState=%p\n", pSession, pState);
+        Log((DEVICE_NAME "VBoxAddSolarisOpen: pSession=%p pState=%p\n", pSession, pState));
         return 0;
     }
@@ -551,10 +547,9 @@
         RTSpinlockReleaseNoInts(g_Spinlock, &Tmp);
 
-        VBA_LOGCONT("VBoxAddSolarisOpen: pid=%d\n", (int)RTProcSelf());
-        Log(("VBoxAddSolarisOpen: g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf()));
+        Log((DEVICE_NAME "VBoxAddSolarisOpen: g_DevExt=%p pSession=%p rc=%d pid=%d\n", &g_DevExt, pSession, rc, (int)RTProcSelf()));
         return 0;
     }
 #endif
-    LogRel(("VBoxAddSolarisOpen: VBoxGuestCreateUserSession failed. rc=%d\n", rc));
+    LogRel((DEVICE_NAME "VBoxAddSolarisOpen: VBoxGuestCreateUserSession failed. rc=%d\n", rc));
     return rc;
 }
@@ -563,5 +558,5 @@
 static int VBoxAddSolarisClose(dev_t Dev, int flag, int fType, cred_t *pCred)
 {
-    VBA_LOGCONT("VBoxAddSolarisClose pid=%d\n", (int)RTProcSelf());
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisClose pid=%d\n", (int)RTProcSelf()));
 
 #ifdef USE_SESSION_HASH
@@ -605,5 +600,5 @@
     if (!pSession)
     {
-        Log(("VBoxGuestIoctl: WHUT?!? pSession == NULL! This must be a mistake... pid=%d", (int)Process));
+        Log((DEVICE_NAME ":VBoxGuestIoctl: WHUT?!? pSession == NULL! This must be a mistake... pid=%d", (int)Process));
         return VERR_INVALID_PARAMETER;
     }
@@ -613,5 +608,5 @@
     if (!pState)
     {
-        VBA_LOGNOTE("VBoxAddSolarisClose: failed to get pState.\n");
+        Log((DEVICE_NAME ":VBoxAddSolarisClose: failed to get pState.\n"));
         return DDI_FAILURE;
     }
@@ -622,5 +617,5 @@
     if (!pSession)
     {
-        VBA_LOGNOTE("VBoxAddSolarisClose: failed to get pSession.\n");
+        Log((DEVICE_NAME ":VBoxAddSolarisClose: failed to get pSession.\n"));
         return DDI_FAILURE;
     }
@@ -637,5 +632,5 @@
 static int VBoxAddSolarisRead(dev_t Dev, struct uio *pUio, cred_t *pCred)
 {
-    VBA_LOGCONT("VBoxAddSolarisRead\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisRead\n"));
     return DDI_SUCCESS;
 }
@@ -644,5 +639,5 @@
 static int VBoxAddSolarisWrite(dev_t Dev, struct uio *pUio, cred_t *pCred)
 {
-    VBA_LOGCONT("VBoxAddSolarisWrite\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisWrite\n"));
     return DDI_SUCCESS;
 }
@@ -670,5 +665,5 @@
 static int VBoxAddSolarisIOCtl(dev_t Dev, int Cmd, intptr_t pArg, int Mode, cred_t *pCred, int *pVal)
 {
-    VBA_LOGCONT("VBoxAddSolarisIOCtl\n");
+    LogFlow((DEVICE_NAME ":VBoxAddSolarisIOCtl\n"));
 
     /** @todo use the faster way to find pSession (using the soft state) */
@@ -692,6 +687,5 @@
     if (!pSession)
     {
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: WHAT?!? pSession == NULL! This must be a mistake... pid=%d iCmd=%#x\n",
-                    (int)Process, Cmd);
+        Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: WHAT?!? pSession == NULL! This must be a mistake... pid=%d iCmd=%#x\n", (int)Process, Cmd));
         return EINVAL;
     }
@@ -703,5 +697,5 @@
     if (!pState)
     {
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: no state data for %d\n", getminor(Dev));
+        Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: no state data for %d\n", getminor(Dev)));
         return EINVAL;
     }
@@ -710,5 +704,5 @@
     if (!pSession)
     {
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: no session data for %d\n", getminor(Dev));
+        Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: no session data for %d\n", getminor(Dev)));
         return DDI_SUCCESS;
     }
@@ -721,5 +715,5 @@
     {
         cbBuf = sizeof(VMMDevRequestHeader);
-        VBA_LOGCONT("VBOXGUEST_IOCTL_VMMREQUEST");
+        LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_VMMREQUEST"));
     }
 #ifdef VBOX_HGCM
@@ -728,5 +722,5 @@
     {
         cbBuf = sizeof(VBoxGuestHGCMCallInfo);
-        VBA_LOGCONT("VBOXGUEST_IOCTL_HGCM_CALL");
+        LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_HGCM_CALL"));
     }
 #endif /* VBOX_HGCM */
@@ -737,15 +731,15 @@
             case VBOXGUEST_IOCTL_GETVMMDEVPORT:
                 cbBuf = sizeof(VBoxGuestPortInfo);
-                VBA_LOGCONT("VBOXGUEST_IOCTL_GETVMMDEVPORT");
+                LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_GETVMMDEVPORT"));
                 break;
 
             case VBOXGUEST_IOCTL_WAITEVENT:
                 cbBuf = sizeof(VBoxGuestWaitEventInfo);
-                VBA_LOGCONT("VBOXGUEST_IOCTL_WAITEVENT");
+                LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_WAITEVENT"));
                 break;
 
             case VBOXGUEST_IOCTL_CTL_FILTER_MASK:
                 cbBuf = sizeof(VBoxGuestFilterMaskInfo);
-                VBA_LOGCONT("VBOXGUEST_IOCTL_CTL_FILTER_MASK");
+                LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_CTL_FILTER_MASK"));
                 break;
 
@@ -753,15 +747,15 @@
             case VBOXGUEST_IOCTL_HGCM_CONNECT:
                 cbBuf = sizeof(VBoxGuestHGCMConnectInfo);
-                VBA_LOGCONT("VBOXGUEST_IOCTL_HGCM_CONNECT");
+                LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_HGCM_CONNECT"));
                 break;
 
             case VBOXGUEST_IOCTL_HGCM_DISCONNECT:
                 cbBuf = sizeof(VBoxGuestHGCMDisconnectInfo);
-                VBA_LOGCONT("VBOXGUEST_IOCTL_HGCM_DISCONNECT");
+                LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_HGCM_DISCONNECT"));
                 break;
 
             case VBOXGUEST_IOCTL_CLIPBOARD_CONNECT:
                 cbBuf = sizeof(uint32_t);
-                VBA_LOGCONT("VBOXGUEST_IOCTL_CLIPBOARD_CONNECT");
+                LogFlow((DEVICE_NAME ":VBOXGUEST_IOCTL_CLIPBOARD_CONNECT"));
                 break;
 #endif /* VBOX_HGCM */
@@ -769,5 +763,5 @@
             default:
             {
-                VBA_LOGNOTE("VBoxAddSolarisIOCtl: Unkown request %d\n", Cmd);
+                LogRel((DEVICE_NAME ":VBoxAddSolarisIOCtl: Unkown request %d\n", Cmd));
                 return VERR_NOT_SUPPORTED;
             }
@@ -780,5 +774,5 @@
     if (RT_UNLIKELY(cbBuf != IOCPARM_LEN(Cmd)))
     {
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: buffer size mismatch. size=%d expected=%d.\n", IOCPARM_LEN(Cmd), cbBuf);
+        LogRel((DEVICE_NAME ":VBoxAddSolarisIOCtl: buffer size mismatch. size=%d expected=%d.\n", IOCPARM_LEN(Cmd), cbBuf));
         return EINVAL;
     }
@@ -789,5 +783,5 @@
     if (RT_UNLIKELY(!pvBuf))
     {
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: RTMemTmpAlloc failed to alloc %d bytes.\n", cbBuf);
+        Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: RTMemTmpAlloc failed to alloc %d bytes.\n", cbBuf));
         return ENOMEM;
     }
@@ -797,5 +791,5 @@
     {
         RTMemTmpFree(pvBuf);
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: ddi_copyin failed; pvBuf=%p pArg=%p Cmd=%d. rc=%d\n", pvBuf, pArg, Cmd, rc);
+        Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: ddi_copyin failed; pvBuf=%p pArg=%p Cmd=%d. rc=%d\n", pvBuf, pArg, Cmd, rc));
         return EFAULT;
     }
@@ -803,5 +797,5 @@
     {
         RTMemTmpFree(pvBuf);
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: pvBuf invalid pointer %p\n", pvBuf);
+        Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: pvBuf invalid pointer %p\n", pvBuf));
     }
 
@@ -812,5 +806,5 @@
         if (RT_UNLIKELY(cbDataReturned > cbBuf))
         {
-            VBA_LOGNOTE("VBoxAddSolarisIOCtl: too much output data %d expected %d\n", cbDataReturned, cbBuf);
+            Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: too much output data %d expected %d\n", cbDataReturned, cbBuf));
             cbDataReturned = cbBuf;
         }
@@ -818,5 +812,5 @@
         if (RT_UNLIKELY(rc))
         {
-            VBA_LOGNOTE("VBoxAddSolarisIOCtl: ddi_copyout failed; pvBuf=%p pArg=%p Cmd=%d. rc=%d\n", pvBuf, pArg, Cmd, rc);
+            Log((DEVICE_NAME ":VBoxAddSolarisIOCtl: ddi_copyout failed; pvBuf=%p pArg=%p Cmd=%d. rc=%d\n", pvBuf, pArg, Cmd, rc));
             rc = EFAULT;
         }
@@ -824,5 +818,5 @@
     else
     {
-        VBA_LOGNOTE("VBoxAddSolarisIOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc);
+        LogRel((DEVICE_NAME ":VBoxAddSolarisIOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc));
         rc = EFAULT;
     }
@@ -844,5 +838,5 @@
     int rc;
     VBoxAddDevState *pState = (VBoxAddDevState *)pvState;
-    VBA_LOGCONT("VBoxGuestSolarisAddIRQ\n");
+    LogFlow((DEVICE_NAME "VBoxGuestSolarisAddIRQ\n"));
 
     /*
@@ -857,8 +851,8 @@
         rc = ddi_add_intr(pDip, 0, &pState->BlockCookie, NULL, VBoxGuestSolarisISR, (caddr_t)pState);
         if (rc != DDI_SUCCESS)
-            VBA_LOGNOTE("ddi_add_intr failed. Cannot set IRQ for VMMDev.\n");
+            Log((DEVICE_NAME ":ddi_add_intr failed. Cannot set IRQ for VMMDev.\n"));
     }
     else
-        VBA_LOGNOTE("ddi_get_iblock_cookie failed. Cannot set IRQ for VMMDev.\n");
+        Log((DEVICE_NAME ":ddi_get_iblock_cookie failed. Cannot set IRQ for VMMDev.\n"));
     return rc;
 }
@@ -873,5 +867,5 @@
 static void VBoxGuestSolarisRemoveIRQ(dev_info_t *pDip, void *pvState)
 {
-    VBA_LOGCONT("VBoxGuestSolarisRemoveIRQ\n");
+    LogFlow((DEVICE_NAME ":VBoxGuestSolarisRemoveIRQ\n"));
 
     VBoxAddDevState *pState = (VBoxAddDevState *)pvState;
@@ -888,5 +882,5 @@
 static uint_t VBoxGuestSolarisISR(caddr_t Arg)
 {
-    VBA_LOGCONT("VBoxGuestSolarisISR\n");
+    LogFlow((DEVICE_NAME ":VBoxGuestSolarisISR\n"));
 
     VBoxAddDevState *pState = (VBoxAddDevState *)Arg;
@@ -911,5 +905,5 @@
 DECLVBGL(int) VBoxGuestSolarisServiceCall(void *pvSession, unsigned iCmd, void *pvData, size_t cbData, size_t *pcbDataReturned)
 {
-    VBA_LOGCONT("VBoxGuestSolarisServiceCall\n");
+    LogFlow((DEVICE_NAME ":VBoxGuestSolarisServiceCall\n"));
 
     PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pvSession;
@@ -930,5 +924,5 @@
 DECLVBGL(void *) VBoxGuestSolarisServiceOpen(uint32_t *pu32Version)
 {
-    VBA_LOGCONT("VBoxGuestSolarisServiceOpen\n");
+    LogFlow((DEVICE_NAME ":VBoxGuestSolarisServiceOpen\n"));
 
     AssertPtrReturn(pu32Version, NULL);
@@ -940,5 +934,5 @@
         return pSession;
     }
-    VBA_LOGNOTE("VBoxGuestCreateKernelSession failed. rc=%d\n", rc);
+    LogRel((DEVICE_NAME ":VBoxGuestCreateKernelSession failed. rc=%d\n", rc));
     return NULL;
 }
@@ -953,5 +947,5 @@
 DECLVBGL(int) VBoxGuestSolarisServiceClose(void *pvSession)
 {
-    VBA_LOGCONT("VBoxGuestSolarisServiceClose\n");
+    LogFlow((DEVICE_NAME ":VBoxGuestSolarisServiceClose\n"));
 
     PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pvSession;
@@ -962,5 +956,5 @@
         return VINF_SUCCESS;
     }
-    VBA_LOGNOTE("Invalid pSession.\n");
+    LogRel((DEVICE_NAME ":Invalid pSession.\n"));
     return VERR_INVALID_HANDLE;
 }
Index: /trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Runtime/Makefile.kmk	(revision 6146)
+++ /trunk/src/VBox/Runtime/Makefile.kmk	(revision 6147)
@@ -938,5 +938,4 @@
 	common/string/memchr.asm \
 	generic/RTAssertDoBreakpoint-generic.cpp \
-	generic/RTLogWriteDebugger-generic.cpp \
 	generic/RTTimerCreate-generic.cpp \
 	r0drv/memobj-r0drv.cpp \
@@ -946,4 +945,5 @@
 	r0drv/solaris/memobj-r0drv-solaris.c \
 	r0drv/solaris/process-r0drv-solaris.c \
+	r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
 	r0drv/solaris/semevent-r0drv-solaris.c \
 	r0drv/solaris/semeventmulti-r0drv-solaris.c \
Index: /trunk/src/VBox/Runtime/VBox/log-vbox.cpp
===================================================================
--- /trunk/src/VBox/Runtime/VBox/log-vbox.cpp	(revision 6146)
+++ /trunk/src/VBox/Runtime/VBox/log-vbox.cpp	(revision 6147)
@@ -389,4 +389,9 @@
         pLogger->fDestFlags |= RTLOGDEST_DEBUGGER;
 # endif
+# if defined(DEBUG_ramshankar)  /* Guest ring-0 as well */
+        RTLogGroupSettings(pLogger, "+all.e.l.f");
+        RTLogFlags(pLogger, "enabled unbuffered");
+        pLogger->fDestFlags |= RTLOGDEST_DEBUGGER;
+# endif
 
     }
Index: /trunk/src/VBox/Runtime/r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c	(revision 6147)
+++ /trunk/src/VBox/Runtime/r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c	(revision 6147)
@@ -0,0 +1,39 @@
+/* $Id$ */
+/** @file
+ * innotek Portable Runtime - Log To Debugger, Ring-0 Driver, Solaris.
+ */
+
+/*
+ * Copyright (C) 2006-2007 innotek GmbH
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * The contents of this file may alternatively be used under the terms
+ * of the Common Development and Distribution License Version 1.0
+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+ * VirtualBox OSE distribution, in which case the provisions of the
+ * CDDL are applicable instead of those of the GPL.
+ *
+ * You may elect to license modified versions of this file under the
+ * terms and conditions of either the GPL or the CDDL or both.
+ */
+
+#include "the-solaris-kernel.h"
+#include <iprt/log.h>
+#include <iprt/assert.h>
+
+
+RTDECL(void) RTLogWriteDebugger(const char *pch, size_t cb)
+{
+    if (pch[cb] != '\0')
+        AssertBreakpoint();
+    cmn_err(CE_CONT, pch);
+    return;
+}
+
Index: /trunk/src/VBox/Runtime/r0drv/solaris/the-solaris-kernel.h
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/solaris/the-solaris-kernel.h	(revision 6146)
+++ /trunk/src/VBox/Runtime/r0drv/solaris/the-solaris-kernel.h	(revision 6147)
@@ -38,4 +38,5 @@
 #include <sys/time.h>
 #include <sys/sysmacros.h>
+#include <sys/cmn_err.h>
 #include <sys/vmsystm.h>
 #include <sys/cyclic.h>
