RFR(XXS): 7133111: libsaproc debug print should be printed as unsigned long to fit large numbers on 64bit platform

Markus Grönlund markus.gronlund at oracle.com
Thu Apr 5 07:15:42 PDT 2012


Staffan,

Is this code only going to be built/executed on a Linux system (i.e. gcc compiled)? I guess so (since it says src/os/linux/) - I think %zd is a gcc specific extension right? 

(Visual C++ for instance uses %lu and %ld respectively where gcc has %zu and %zd)

Is that a problem that we might be using C++ compilers not adhering to C99/or gcc extensions on other platforms (don't know if/how we cross-compile)?

/Markus

> -----Original Message-----
> From: Staffan Larsen
> Sent: den 5 april 2012 14:25
> To: serviceability-dev
> Subject: RFR(XXS): 7133111: libsaproc debug print should be printed as
> unsigned long to fit large numbers on 64bit platform
> 
> Please review the following one-character fix to a printf format
> string. A 'z' is added to the printout of a size_t field.
> 
> Thanks,
> /Staffan
> 
> 
> diff --git a/agent/src/os/linux/ps_core.c
> b/agent/src/os/linux/ps_core.c
> --- a/agent/src/os/linux/ps_core.c
> +++ b/agent/src/os/linux/ps_core.c
> @@ -440,7 +440,7 @@
>        int j = 0;
>        print_debug("---- sorted virtual address map ----\n");
>        for (j = 0; j < ph->core->num_maps; j++) {
> -        print_debug("base = 0x%lx\tsize = %d\n", ph->core-
> >map_array[j]->vaddr,
> +        print_debug("base = 0x%lx\tsize = %zd\n", ph->core-
> >map_array[j]->vaddr,
>                                           ph->core->map_array[j]-
> >memsz);
>        }
>     }


More information about the serviceability-dev mailing list