Index: /trunk/src/VBox/ValidationKit/common/utils.py
===================================================================
--- /trunk/src/VBox/ValidationKit/common/utils.py	(revision 65334)
+++ /trunk/src/VBox/ValidationKit/common/utils.py	(revision 65335)
@@ -749,5 +749,5 @@
     return fRc;
 
-def processGetInfo(uPid):
+def processGetInfo(uPid, fSudo = False):
     """
     Tries to acquire state information of the given process.
@@ -763,40 +763,44 @@
         return None;
 
-    if sys.platform in ('linux2', ):
+    sHostOs = getHostOs();
+    if sHostOs in [ 'linux',]:
         sGdb = '/usr/bin/gdb';
         if not os.path.isfile(sGdb): sGdb = '/usr/local/bin/gdb';
         if not os.path.isfile(sGdb): sGdb = 'gdb';
         aasCmd = [
-                     [sGdb, '-batch', '-ex', 'thread apply all bt',
-                                      '-ex', 'info proc mapping',
-                                      '-ex', 'info sharedlibrary',
-                                      '-p', '%u' % (uPid,)]
-                 ];
-    elif sys.platform in ('darwin', ):
+            [ sGdb, '-batch',
+              '-ex', 'thread apply all bt',
+              '-ex', 'info proc mapping',
+              '-ex', 'info sharedlibrary',
+              '-p', '%u' % (uPid,), ],
+        ];
+    elif sHostOs == 'darwin':
         # LLDB doesn't work in batch mode when attaching to a process, at least
-        # with macOS Sierra (10.12). GDB might not be installed. Use the sample tool
-        # instead with a 1 second duration and 1000ms sampling interval to get one stack trace.
-        # For the process mappings use vmmap.
-        aasCmd = [ \
-                     ['/usr/bin/sample', '-mayDie', '%u' % (uPid,), '1', '1000'],
-                     ['/usr/bin/vmmap', '%u' % (uPid,)]
-                 ];
-    elif sys.platform in ('sunos5',):
-        aasCmd = [ \
-                     ['/usr/bin/pstack', '%u' % (uPid,)],
-                     ['/usr/bin/pmap', '%u' % (uPid,)]
-                 ];
+        # with macOS Sierra (10.12). GDB might not be installed. Use the sample
+        # tool instead with a 1 second duration and 1000ms sampling interval to
+        # get one stack trace.  For the process mappings use vmmap.
+        aasCmd = [
+            [ '/usr/bin/sample', '-mayDie', '%u' % (uPid,), '1', '1000', ],
+            [ '/usr/bin/vmmap', '%u' % (uPid,), ],
+        ];
+    elif sHostOs == 'solaris':
+        aasCmd = [
+            [ '/usr/bin/pstack', '%u' % (uPid,), ],
+            [ '/usr/bin/pmap', '%u' % (uPid,), ],
+        ];
     else:
-        aasCmd = None;
+        aasCmd = [];
 
     sInfo = '';
-    if aasCmd is not None:
-        for asCmd in aasCmd:
-            try:
+    for asCmd in aasCmd:
+        try:
+            if fSudo:
                 sThisInfo = sudoProcessOutputChecked(asCmd);
-                if sThisInfo is not None:
-                    sInfo += sThisInfo;
-            except:
-                pass;
+            else:
+                sThisInfo = processOutputChecked(asCmd);
+            if sThisInfo is not None:
+                sInfo += sThisInfo;
+        except:
+            pass;
     if not sInfo:
         sInfo = None;
Index: /trunk/src/VBox/ValidationKit/testdriver/vbox.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testdriver/vbox.py	(revision 65334)
+++ /trunk/src/VBox/ValidationKit/testdriver/vbox.py	(revision 65335)
@@ -2576,15 +2576,15 @@
         # requires memory too and seems to wedge.
         #
+        sHostProcessInfo    = None;
         sLastScreenshotPath = None;
         sOsKernelLog        = None;
         sVgaText            = None;
         asMiscInfos         = [];
-        sHostProcessInfo    = None;
-
-        # Try to fetch the VM process info before meddling with its state.
-        if self.fAlwaysUploadLogs or reporter.testErrorCount() > 0:
-            sHostProcessInfo = utils.processGetInfo(oSession.getPid());
 
         if not oSession.fHostMemoryLow:
+            # Try to fetch the VM process info before meddling with its state.
+            if self.fAlwaysUploadLogs or reporter.testErrorCount() > 0:
+                sHostProcessInfo = utils.processGetInfo(oSession.getPid(), fSudo = True);
+
             #
             # Pause the VM if we're going to take any screenshots or dig into the
@@ -2742,5 +2742,5 @@
         # Add the host process info if we were able to retrieve it.
         if sHostProcessInfo is not None:
-            reporter.addLogString(sHostProcessInfo, 'vmprocess.log', 'log/host/vmprocess', 'VM process state');
+            reporter.addLogString(sHostProcessInfo, 'vmprocess.log', 'process/report/vm', 'VM process state');
 
         return fRc;
Index: /trunk/src/VBox/ValidationKit/testmanager/core/testboxcontroller.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testmanager/core/testboxcontroller.py	(revision 65334)
+++ /trunk/src/VBox/ValidationKit/testmanager/core/testboxcontroller.py	(revision 65335)
@@ -46,5 +46,5 @@
 from testmanager.core.testboxstatus     import TestBoxStatusData, TestBoxStatusLogic;
 from testmanager.core.testbox           import TestBoxData, TestBoxLogic;
-from testmanager.core.testresults       import TestResultLogic;
+from testmanager.core.testresults       import TestResultLogic, TestResultFileData;
 from testmanager.core.testset           import TestSetData, TestSetLogic;
 from testmanager.core.systemlog         import SystemLogData, SystemLogLogic;
@@ -704,27 +704,5 @@
             raise TestBoxControllerException('Invalid MIME type "%s"' % (sMime,));
 
-        if sKind not in [ 'log/release/vm',
-                          'log/debug/vm',
-                          'log/release/svc',
-                          'log/debug/svc',
-                          'log/release/client',
-                          'log/debug/client',
-                          'log/installer',
-                          'log/uninstaller',
-                          'log/guest/kernel',
-                          'log/host/vmprocess',
-                          'crash/report/vm',
-                          'crash/dump/vm',
-                          'crash/report/svc',
-                          'crash/dump/svc',
-                          'crash/report/client',
-                          'crash/dump/client',
-                          'info/collection',
-                          'info/vgatext',
-                          'misc/other',
-                          'screenshot/failure',
-                          'screenshot/success',
-                          #'screencapture/failure',
-                          ]:
+        if sKind not in TestResultFileData.kasKinds:
             raise TestBoxControllerException('Invalid kind "%s"' % (sKind,));
 
Index: /trunk/src/VBox/ValidationKit/testmanager/core/testresults.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testmanager/core/testresults.py	(revision 65334)
+++ /trunk/src/VBox/ValidationKit/testmanager/core/testresults.py	(revision 65335)
@@ -401,5 +401,5 @@
     ksKind_LogUninstaller       = 'log/uninstaller';
     ksKind_LogGuestKernel       = 'log/guest/kernel';
-    ksKind_LogHostVmProcess     = 'log/host/vmprocess';
+    ksKind_ProcessReportVm      = 'process/report/vm';
     ksKind_CrashReportVm        = 'crash/report/vm';
     ksKind_CrashDumpVm          = 'crash/dump/vm';
@@ -413,6 +413,31 @@
     ksKind_ScreenshotFailure    = 'screenshot/failure';
     ksKind_ScreenshotSuccesss   = 'screenshot/success';
-    #kSkind_ScreenCaptureFailure = 'screencapture/failure';
+    #kskind_ScreenCaptureFailure = 'screencapture/failure';
     ## @}
+
+    kasKinds = [
+        ksKind_LogReleaseVm,
+        ksKind_LogDebugVm,
+        ksKind_LogReleaseSvc,
+        ksKind_LogRebugSvc,
+        ksKind_LogReleaseClient,
+        ksKind_LogDebugClient,
+        ksKind_LogInstaller,
+        ksKind_LogUninstaller,
+        ksKind_LogGuestKernel,
+        ksKind_ProcessReportVm,
+        ksKind_CrashReportVm,
+        ksKind_CrashDumpVm,
+        ksKind_CrashReportSvc,
+        ksKind_CrashDumpSvc,
+        ksKind_CrashReportClient,
+        ksKind_CrashDumpClient,
+        ksKind_InfoCollection,
+        ksKind_InfoVgaText,
+        ksKind_MiscOther,
+        ksKind_ScreenshotFailure,
+        ksKind_ScreenshotSuccesss,
+        #kskind_ScreenCaptureFailure,
+    ];
 
     kasAllowNullAttributes      = [ 'idTestSet', ];
