src/os/linux/vm/os_linux.cpp

changeset 948
2328d1d3f8cf
parent 912
24fda36852ce
child 951
fc7ab6287598
     1.1 --- a/src/os/linux/vm/os_linux.cpp	Wed Dec 24 13:06:09 2008 -0800
     1.2 +++ b/src/os/linux/vm/os_linux.cpp	Wed Dec 24 19:13:53 2008 -0800
     1.3 @@ -1160,7 +1160,10 @@
     1.4  
     1.5          /*                                     1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2 */
     1.6          /*              3  4  5  6  7  8   9   0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5   6   7   8 */
     1.7 -        i = sscanf(s, "%c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu %ld %ld %ld %ld %ld %ld %lu %lu %ld %lu %lu %lu %lu",
     1.8 +        i = sscanf(s, "%c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu %ld %ld %ld %ld %ld %ld "
     1.9 +                   UINTX_FORMAT UINTX_FORMAT UINTX_FORMAT
    1.10 +                   " %lu "
    1.11 +                   UINTX_FORMAT UINTX_FORMAT UINTX_FORMAT,
    1.12               &state,          /* 3  %c  */
    1.13               &ppid,           /* 4  %d  */
    1.14               &pgrp,           /* 5  %d  */
    1.15 @@ -1180,13 +1183,13 @@
    1.16               &nice,           /* 19 %ld  */
    1.17               &junk,           /* 20 %ld  */
    1.18               &it_real,        /* 21 %ld  */
    1.19 -             &start,          /* 22 %lu  */
    1.20 -             &vsize,          /* 23 %lu  */
    1.21 -             &rss,            /* 24 %ld  */
    1.22 +             &start,          /* 22 UINTX_FORMAT  */
    1.23 +             &vsize,          /* 23 UINTX_FORMAT  */
    1.24 +             &rss,            /* 24 UINTX_FORMAT  */
    1.25               &rsslim,         /* 25 %lu  */
    1.26 -             &scodes,         /* 26 %lu  */
    1.27 -             &ecode,          /* 27 %lu  */
    1.28 -             &stack_start);   /* 28 %lu  */
    1.29 +             &scodes,         /* 26 UINTX_FORMAT  */
    1.30 +             &ecode,          /* 27 UINTX_FORMAT  */
    1.31 +             &stack_start);   /* 28 UINTX_FORMAT  */
    1.32        }
    1.33  
    1.34        if (i != 28 - 2) {
    1.35 @@ -2024,7 +2027,8 @@
    1.36                  CAST_FROM_FN_PTR(address, os::jvm_path),
    1.37                  dli_fname, sizeof(dli_fname), NULL);
    1.38    assert(ret != 0, "cannot locate libjvm");
    1.39 -  realpath(dli_fname, buf);
    1.40 +  if (realpath(dli_fname, buf) == NULL)
    1.41 +    return;
    1.42  
    1.43    if (strcmp(Arguments::sun_java_launcher(), "gamma") == 0) {
    1.44      // Support for the gamma launcher.  Typical value for buf is
    1.45 @@ -2048,7 +2052,8 @@
    1.46          assert(strstr(p, "/libjvm") == p, "invalid library name");
    1.47          p = strstr(p, "_g") ? "_g" : "";
    1.48  
    1.49 -        realpath(java_home_var, buf);
    1.50 +        if (realpath(java_home_var, buf) == NULL)
    1.51 +          return;
    1.52          sprintf(buf + strlen(buf), "/jre/lib/%s", cpu_arch);
    1.53          if (0 == access(buf, F_OK)) {
    1.54            // Use current module name "libjvm[_g].so" instead of
    1.55 @@ -2059,7 +2064,8 @@
    1.56            sprintf(buf + strlen(buf), "/hotspot/libjvm%s.so", p);
    1.57          } else {
    1.58            // Go back to path of .so
    1.59 -          realpath(dli_fname, buf);
    1.60 +          if (realpath(dli_fname, buf) == NULL)
    1.61 +            return;
    1.62          }
    1.63        }
    1.64      }
    1.65 @@ -4184,11 +4190,11 @@
    1.66    // Skip blank chars
    1.67    do s++; while (isspace(*s));
    1.68  
    1.69 -  count = sscanf(s,"%c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu",
    1.70 -                 &idummy, &idummy, &idummy, &idummy, &idummy, &idummy,
    1.71 +  count = sscanf(s,"%*c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu",
    1.72 +                 &idummy, &idummy, &idummy, &idummy, &idummy,
    1.73                   &ldummy, &ldummy, &ldummy, &ldummy, &ldummy,
    1.74                   &user_time, &sys_time);
    1.75 -  if ( count != 13 ) return -1;
    1.76 +  if ( count != 12 ) return -1;
    1.77    if (user_sys_cpu_time) {
    1.78      return ((jlong)sys_time + (jlong)user_time) * (1000000000 / clock_tics_per_sec);
    1.79    } else {

mercurial