RFR: 8319873: Add windows implementation for jcmd System.map and System.dump_map [v5]
Simon Tooke
stooke at openjdk.org
Thu Aug 22 16:33:05 UTC 2024
On Tue, 20 Aug 2024 07:14:18 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
>> src/hotspot/os/windows/memMapPrinter_windows.cpp line 98:
>>
>>> 96: buffer[idx++] = 'n';
>>> 97: } else if (prot != 0) {
>>> 98: snprintf(buffer, bufsiz, "(0x%x)", prot);
>>
>> This could truncate for the longest possible value (16+4 chars).
>
> But (here and in other places) raw-printing the unknown constant may not be the best way. Chances are this code is executed rarely and most people will just be perplexed at the weird printouts.
>
> We could assert here: After all, we expect to handle all possible values; if we see an unknown constant, then we either have a bug in the code and what we read here is no protection value, or Microsoft added new constants. In both cases, a code fix is needed. Asserts would fire up in automatic regression tests.
>
> The alternative is to print an '?'. And possibly scan for that in regression tests too.
>
> I leave this decision up to you.
I now handle less cases but will assert() if unimplemented bits are encountered. I have currently only implemented this for protection bits, but I'm still thinking what's best and intent to handle unknown cases identically for the other two functions.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20597#discussion_r1727467806
More information about the serviceability-dev
mailing list