RFR(XXS): 7133111: libsaproc debug print should be printed as unsigned long to fit large numbers on 64bit platform
Dmitry Samersoff
Dmitry.Samersoff at oracle.com
Thu Apr 5 11:01:49 PDT 2012
On 2012-04-05 20:32, Staffan Larsen wrote:
> Isn't the problem with casting to (unsigned long) that this only a 32 bit type and size_t can be 64?
Long scales with architecture as opposite to int.
printf("%d,%d,%d\n", sizeof(size_t), sizeof(long), sizeof(int) );
mircat(FreeBSD 64bit):dms#./test
8,8,4
-Dmitry
>
> /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 ...
>
--
Dmitry Samersoff
Java Hotspot development team, SPB04
* There will come soft rains ...
More information about the serviceability-dev
mailing list