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