diff --git a/llvm/utils/lit/lit/formats/googletest.py b/llvm/utils/lit/lit/formats/googletest.py
--- a/llvm/utils/lit/lit/formats/googletest.py
+++ b/llvm/utils/lit/lit/formats/googletest.py
@@ -133,17 +133,19 @@
         shard_header = get_shard_header(shard_env)
 
         try:
-            _, _, exitCode = lit.util.executeCommand(
+            out, err, exitCode = lit.util.executeCommand(
                 cmd, env=test.config.environment,
                 timeout=litConfig.maxIndividualTestTime)
-        except lit.util.ExecuteCommandTimeoutException:
-            return (lit.Test.TIMEOUT, f'{shard_header}Reached timeout of '
-                    f'{litConfig.maxIndividualTestTime} seconds')
+        except lit.util.ExecuteCommandTimeoutException as e:
+            stream_msg = f"\n{e.out}\n--\n{e.err}\n--\nexit: {e.exitCode}\n--\n"
+            return (lit.Test.TIMEOUT, f'{shard_header}{stream_msg}Reached '
+                    f'timeout of {litConfig.maxIndividualTestTime} seconds')
 
+        stream_msg = f"\n{out}\n--\n{err}\n--\nexit: {exitCode}\n--\n"
         if not os.path.exists(test.gtest_json_file):
             errmsg = f"shard JSON output does not exist: %s" % (
                 test.gtest_json_file)
-            return lit.Test.FAIL, shard_header + errmsg
+            return lit.Test.FAIL, shard_header + stream_msg + errmsg
 
         if exitCode == 0:
             return lit.Test.PASS, ''
@@ -153,7 +155,7 @@
 
             if use_shuffle:
                 shard_env['GTEST_RANDOM_SEED'] = str(jf['random_seed'])
-            output = get_shard_header(shard_env) + '\n'
+            output = get_shard_header(shard_env) + stream_msg + '\n'
 
             for testcase in jf['testsuites']:
                 for testinfo in testcase['testsuite']: