Improve error message.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2736 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_main.c b/coregrind/vg_main.c
index 0bfa60b..5c701e8 100644
--- a/coregrind/vg_main.c
+++ b/coregrind/vg_main.c
@@ -458,9 +458,17 @@
                   MAP_PRIVATE|MAP_ANON|MAP_FIXED|MAP_NORESERVE, -1, 0);
       if ((void*)-1 == vres) {
          fprintf(stderr, 
-          "valgrind: Couldn't allocate address space for shadow memory\n"
-          "valgrind: Are you using a kernel with a small user address space,\n"
-          "valgrind: or do you have your virtual memory size limited?\n");
+          "valgrind: Could not allocate address space (%p bytes)\n"
+          "valgrind:   for shadow memory\n"
+          "valgrind: Possible causes:\n"
+          "valgrind: - For some systems (especially under RedHat 8), Valgrind\n"
+          "valgrind:   needs at least 1.5GB swap space.\n"
+          "valgrind: - Or, your virtual memory size may be limited (check\n"
+          "valgrind:   with 'ulimit -v').\n"
+          "valgrind: - Or, your system may use a kernel that provides only a\n" 
+          "valgrind:   too-small (eg. 2GB) user address space.\n"
+          , (void*)shadow_size
+         ); 
          exit(1);
       }
    }