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

Staffan Larsen staffan.larsen at oracle.com
Thu Apr 5 09:32:58 PDT 2012


Isn't the problem with casting to (unsigned long) that this only a 32 bit type and size_t can be 64? 

/Staffan

On 5 apr 2012, at 16:54, Dmitry Samersoff wrote:

> Staffan,
> 
> OK for me.
> 
> But I would prefer to handle it standard rather than Linux specific way
> to benefit other possible ports.
> 
> i.e. %ld and (unsigned long) ph->core->map_array[j]->memsz
> 
> -Dmitry
> 
> On 2012-04-05 16:25, Staffan Larsen wrote:
>> 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);
>>        }
>>     }
> 
> 
> -- 
> Dmitry Samersoff
> Java Hotspot development team, SPB04
> * There will come soft rains ...



More information about the serviceability-dev mailing list