On Tue, 20 Aug 2024 07:14:18 GMT, Thomas Stuefe <stu...@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

Reply via email to