JDK-8343756 : CAN_SHOW_REGISTERS_ON_ASSERT for Windows
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows
  • Submitted: 2024-11-07
  • Updated: 2025-09-03
  • Resolved: 2024-11-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 24
24 b26Fixed
Related Reports
Causes :  
Causes :  
Relates :  
Relates :  
Description
Problem summary:

1. On asserts or guarantees, Windows debug builds do not print registers and context in the hs_err_pid<pid>.log.
2. The associated hs_err_pid<pid>.mdmp has no exception record associated with the assert.
   A lot of manual labor and backtracking is required to locate the assert context in a debugger.

Problem details:

1. Here is an example hs_err_pid12856.log:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (<path>\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp:660), pid=12856, tid=35792
#  assert(_global_mspace->live_list_is_empty()) failed: invariant
#
# JRE version: Java(TM) SE Runtime Environment (24.0) (slowdebug build 24-internal-2024-10-08-1448147.mgronlun...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 24-internal-2024-10-08-1448147.mgronlun..., mixed mode, tiered, g1 gc, windows-amd64)
# Core dump will be written. Default location:<path>\hs_err_pid11692.mdmp
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x000002bd966cd410):  JavaThread "JFR Recorder Thread" daemon [_thread_in_native, id=35792, stack(0x000000ee54d00000,0x000000ee54e00000) (1024K)]

Stack: [0x000000ee54d00000,0x000000ee54e00000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xfc5973]  os::win32::platform_print_native_stack+0x63  (os_windows_x86.cpp:235)
V  [jvm.dll+0x6df0bb]  os::platform_print_native_stack+0x3b  (os_windows_x86.inline.hpp:36)
V  [jvm.dll+0x12a96b4]  VMError::report+0x18f4  (vmError.cpp:1015)
V  [jvm.dll+0x12ace0e]  VMError::report_and_die+0x7ae  (vmError.cpp:1846)
V  [jvm.dll+0x6dd139]  report_vm_error+0xc9  (debug.cpp:201)
V  [jvm.dll+0xad67f8]  JfrCheckpointManager::flush_type_set+0x188  (jfrCheckpointManager.cpp:660)
V  [jvm.dll+0xb3f3f6]  Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set>::process+0x16  (jfrRecorderService.cpp:158)
V  [jvm.dll+0xb3f967]  WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> >::process+0x17  (jfrRecorderService.cpp:186)
V  [jvm.dll+0xb3d6c3]  invoke<WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> > >+0x13  (jfrRecorderService.cpp:277)
V  [jvm.dll+0xb3d69b]  flush_typeset+0x3b  (jfrRecorderService.cpp:366)
V  [jvm.dll+0xb3ce63]  JfrRecorderService::flush+0xc3  (jfrRecorderService.cpp:657)
V  [jvm.dll+0xb3f426]  Content<JfrRecorderService,&JfrRecorderService::flush>::process+0x16  (jfrRecorderService.cpp:158)
V  [jvm.dll+0xb3f9c7]  WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> >::process+0x17  (jfrRecorderService.cpp:186)
V  [jvm.dll+0xb3de43]  invoke<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x13  (jfrRecorderService.cpp:277)
V  [jvm.dll+0xb3dd5b]  invoke_with_flush_event<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x2b  (jfrRecorderService.cpp:282)
V  [jvm.dll+0xb3c762]  JfrRecorderService::invoke_flush+0x102  (jfrRecorderService.cpp:672)
V  [jvm.dll+0xb3cf6f]  JfrRecorderService::flushpoint+0x3f  (jfrRecorderService.cpp:682)
V  [jvm.dll+0xb409c7]  recorderthread_entry+0x187  (jfrRecorderThreadLoop.cpp:85)
V  [jvm.dll+0xacafc6]  JavaThread::thread_main_inner+0x146  (javaThread.cpp:759)
V  [jvm.dll+0xacae71]  JavaThread::run+0x181  (javaThread.cpp:744)
V  [jvm.dll+0x11f9a3a]  Thread::call_run+0x18a  (thread.cpp:237)
V  [jvm.dll+0xfc06e9]  thread_native_entry+0x129  (os_windows.cpp:554)
C  [ucrtbase.dll+0x21bb2]  (no source info available)
C  [KERNEL32.DLL+0x17344]  (no source info available)
C  [ntdll.dll+0x526b1]  (no source info available)

[ NO REGISTER INFORMATION ] <<---


2. Here is the associated hs_err_pid12856.mdmp file loaded into Windbg:

Microsoft (R) Windows Debugger Version 10.0.22000.194 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [<path>\hs_err_pid12856.mdmp]
User Mini Dump File with Full Memory: Only application data is available

Executable search path is: 
Windows 10 Version 19045 MP (16 procs) Free x64
Product: WinNt, suite: SingleUserTS
Edition build lab: 19041.1.amd64fre.vb_release.191206-1406

.................................................
For analysis of this file, run !analyze -v
ntdll!NtWaitForSingleObject+0x14:
00007ff9`659ad064 c3              ret

2.1. Try to get the exception context:

0:000> .excr
Minidump doesn't have an exception context
Unable to get exception context, HRESULT 0x80004002

2.2. The .mdmp file does not contain an exception context (EXCEPTION_RECORD).

2.3. To get something meaningful from the .mdmp file,
        you will have to do manual work to locate something that looks associated with the assert; a process similar to what follows.

2.3.1. Take the thread id (tid) from the hs_err_pid12856.log:

#  Internal Error (<path>\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp:660), pid=12856, tid=35792

2.3.2. The tid listed in the hs_err_pid12856.log is in decimal, convert to hex;

.formats 0n35792
Evaluate expression:
  Hex:     00000000`00008bd0
  Decimal: 35792
  Octal:   0000000000000000105720
  Binary:  00000000 00000000 00000000 00000000 00000000 00000000 10001011 11010000
  Chars:   ........
  Time:    Thu Jan  1 10:56:32 1970
  Float:   low 5.01553e-041 high 0
  Double:  1.76836e-319

2.3.3. List all threads.

0:000> ~
.  0  Id: 2dac.953c Suspend: 0 Teb: 000000ee`5352d000 Unfrozen
   1  Id: 2dac.1388 Suspend: 0 Teb: 000000ee`5352f000 Unfrozen
   2  Id: 2dac.8cd0 Suspend: 0 Teb: 000000ee`53531000 Unfrozen
   3  Id: 2dac.ba4c Suspend: 0 Teb: 000000ee`53533000 Unfrozen
   4  Id: 2dac.5258 Suspend: 0 Teb: 000000ee`53535000 Unfrozen
   5  Id: 2dac.a394 Suspend: 0 Teb: 000000ee`53537000 Unfrozen ""
   6  Id: 2dac.8f4 Suspend: 0 Teb: 000000ee`53539000 Unfrozen ""
   7  Id: 2dac.7480 Suspend: 0 Teb: 000000ee`5353b000 Unfrozen ""
   8  Id: 2dac.b704 Suspend: 0 Teb: 000000ee`5353d000 Unfrozen ""
   9  Id: 2dac.6a6c Suspend: 0 Teb: 000000ee`5353f000 Unfrozen ""
  10  Id: 2dac.a1c0 Suspend: 0 Teb: 000000ee`53541000 Unfrozen ""
  11  Id: 2dac.82f8 Suspend: 0 Teb: 000000ee`53543000 Unfrozen ""
  12  Id: 2dac.97fc Suspend: 0 Teb: 000000ee`53545000 Unfrozen ""
  13  Id: 2dac.a260 Suspend: 0 Teb: 000000ee`53547000 Unfrozen ""
  14  Id: 2dac.6b00 Suspend: 0 Teb: 000000ee`53549000 Unfrozen ""
  15  Id: 2dac.70cc Suspend: 1 Teb: 000000ee`5354b000 Unfrozen ""
  16  Id: 2dac.5be0 Suspend: 0 Teb: 000000ee`5354d000 Unfrozen ""
  17  Id: 2dac.97b8 Suspend: 0 Teb: 000000ee`5354f000 Unfrozen ""
  18  Id: 2dac.16dc Suspend: 0 Teb: 000000ee`53551000 Unfrozen ""
  19  Id: 2dac.5324 Suspend: 0 Teb: 000000ee`53553000 Unfrozen ""
  20  Id: 2dac.4c48 Suspend: 0 Teb: 000000ee`53555000 Unfrozen ""
  21  Id: 2dac.3a84 Suspend: 0 Teb: 000000ee`53557000 Unfrozen ""
  22  Id: 2dac.46dc Suspend: 0 Teb: 000000ee`53559000 Unfrozen ""
  23  Id: 2dac.8bd0 Suspend: 0 Teb: 000000ee`5356f000 Unfrozen "" <<-- 0x8bd0
  24  Id: 2dac.1ee4 Suspend: 0 Teb: 000000ee`53581000 Unfrozen ""
  25  Id: 2dac.287c Suspend: 0 Teb: 000000ee`53583000 Unfrozen ""
  26  Id: 2dac.2290 Suspend: 0 Teb: 000000ee`53585000 Unfrozen ""
  27  Id: 2dac.9dc4 Suspend: 0 Teb: 000000ee`53587000 Unfrozen ""
  28  Id: 2dac.57fc Suspend: 0 Teb: 000000ee`53589000 Unfrozen ""
  29  Id: 2dac.85dc Suspend: 0 Teb: 000000ee`5358b000 Unfrozen ""
  30  Id: 2dac.4280 Suspend: 0 Teb: 000000ee`5358d000 Unfrozen ""
  31  Id: 2dac.73e8 Suspend: 0 Teb: 000000ee`5358f000 Unfrozen ""
  32  Id: 2dac.a518 Suspend: 0 Teb: 000000ee`53591000 Unfrozen ""
  33  Id: 2dac.56d8 Suspend: 0 Teb: 000000ee`53593000 Unfrozen ""
  34  Id: 2dac.90dc Suspend: 0 Teb: 000000ee`53595000 Unfrozen ""
  35  Id: 2dac.7444 Suspend: 0 Teb: 000000ee`53597000 Unfrozen ""
  36  Id: 2dac.a64c Suspend: 0 Teb: 000000ee`5359d000 Unfrozen ""
  37  Id: 2dac.8858 Suspend: 0 Teb: 000000ee`535a1000 Unfrozen ""


2.3.4. Switch to thread 23.

~23s

ntdll!NtGetContextThread+0x14:
00007ff9`659aee34 c3              ret


2.3.5. Manually inspect the stack to find something
          that looks somewhat related to the assert:

Manually searching the stack for something interesting...

0:023> dps @rsp
000000ee`54dfd2e8  000002bd`f3001c18
000000ee`54dfd2f0  00000000`50280163
000000ee`54dfd2f8  00000000`00000000
000000ee`54dfd300  00000000`00000030
000000ee`54dfd308  00000000`00000000
000000ee`54dfd310  00000000`00000001
000000ee`54dfd318  000002bd`f3100000
000000ee`54dfd320  000002bd`99d20000
000000ee`54dfd328  00007ff9`65a0a386 ntdll!RtlpValidateHeap+0x32
000000ee`54dfd330  000002bd`99d20000
000000ee`54dfd338  00000000`00000000
000000ee`54dfd340  00000000`00000020
000000ee`54dfd348  00000000`00000050
000000ee`54dfd350  00000000`00000000
000000ee`54dfd358  000000ee`54dfd364
000000ee`54dfd360  00000004`54dfd3b1
000000ee`54dfd368  000000ee`54dfd490
000000ee`54dfd370  000000ee`54dfd3cc
000000ee`54dfd378  000002bd`99d20000
000000ee`54dfd380  00000000`00000100
000000ee`54dfd388  00000000`00000000
000000ee`54dfd390  00000000`00000110
000000ee`54dfd398  00000000`00000001
000000ee`54dfd3a0  000002bd`99d20000
000000ee`54dfd3a8  00000000`00000000
000000ee`54dfd3b0  000002bd`99d20000
000000ee`54dfd3b8  00007ff9`65a08a86 ntdll!RtlDebugAllocateHeap+0x366
000000ee`54dfd3c0  000002bd`99d20750
000000ee`54dfd3c8  00000000`00000000
000000ee`54dfd3d0  000002bd`99d20750
000000ee`54dfd3d8  00000000`00000000
000000ee`54dfd3e0  000000ee`54dfd601

...

2.3.6. At a suspected point, backtracking is necessary to understand the assert context.

dps 000000ee`54dff0e8

000000ee`54dff0e8  00007ff9`18aa8af2 jvm!os::abort+0x102 [<path>\src\hotspot\os\windows\os_windows.cpp @ 1369]
000000ee`54dff0f0  ffffffff`ffffffff
000000ee`54dff0f8  00007ff9`00002dac
000000ee`54dff100  00000000`000004d8
000000ee`54dff108  00007ff9`00001826
000000ee`54dff110  00000000`00000000
000000ee`54dff118  00000000`00000000
000000ee`54dff120  00000000`00000000
000000ee`54dff128  00007ff9`197fb104 jvm!ZPointerLoadShiftTable+0x7e4
000000ee`54dff130  00001826`00002dac
000000ee`54dff138  00007ff9`18d9dfb7 jvm!print_bug_submit_message+0xf7 [<path>\src\hotspot\share\utilities\vmError.cpp @ 180]
000000ee`54dff140  00000000`00000000
000000ee`54dff148  ffffffff`ffffffff
000000ee`54dff150  00000000`00000001
000000ee`54dff158  000000ee`54dff020
000000ee`54dff160  000002bd`00000001
0:023> 
000000ee`54dff168  00000000`00000000
000000ee`54dff170  00000000`00000000
000000ee`54dff178  00007ff9`18d9d39a jvm!VMError::report_and_die+0xd3a [<path>\src\hotspot\share\utilities\vmError.cpp @ 1953]
000000ee`54dff180  000000ee`e0000001
000000ee`54dff188  00000000`00000000
000000ee`54dff190  00000000`00000000
000000ee`54dff198  00000000`00000000
000000ee`54dff1a0  00000000`000007d0
000000ee`54dff1a8  00007ff9`1837c887
000000ee`54dff1b0  000000ee`54dff1d0
000000ee`54dff1b8  000002bf`ffb46aa0
000000ee`54dff1c0  00000000`00000001
000000ee`54dff1c8  00007ff9`17b0f463 jvm!ScopedFence<0>::prefix+0x13 [<path>\src\hotspot\share\runtime\atomic.hpp @ 855]
000000ee`54dff1d0  000000ee`54dff201
000000ee`54dff1d8  00000000`00000000
000000ee`54dff1e0  00000000`0000000a
0:023> 
000000ee`54dff1e8  00000000`00008bd0
000000ee`54dff1f0  000000ee`54dff210
000000ee`54dff1f8  000002bf`ffb46aa0
000000ee`54dff200  00007ff9`19638b50 jvm!fdStream::`vftable'
000000ee`54dff208  00000200`00000000
000000ee`54dff210  000002bf`00000000
000000ee`54dff218  00000000`000003ce
000000ee`54dff220  00000000`00000001
000000ee`54dff228  00007ff9`19cb21b0 jvm!buffer
000000ee`54dff230  00000000`000007d0
000000ee`54dff238  00000000`00000001
000000ee`54dff240  000000ee`00000000
000000ee`54dff248  00000000`00000000
000000ee`54dff250  000002bf`ffb4652a
000000ee`54dff258  00007ff9`185d3efb jvm!JfrVersionSystem::Node::remove_ref+0x7b [<path>\src\hotspot\share\jfr\utilities\jfrVersionSystem.inline.hpp @ 110]
000000ee`54dff260  000002bf`ffb46a90
0:023> 
000000ee`54dff268  00000000`00000000
000000ee`54dff270  000002bf`ffb46528
000000ee`54dff278  00007ff9`17b0ecc8 jvm!Atomic::load_acquire<Method *>+0x18 [<path>\src\hotspot\share\runtime\atomic.hpp @ 888]
000000ee`54dff280  000000ee`54dff2a0
000000ee`54dff288  00007ff9`17e09c67
000000ee`54dff290  00007ff9`19638b50 jvm!fdStream::`vftable'
000000ee`54dff298  00000000`00000000
000000ee`54dff2a0  000002bf`00000000
000000ee`54dff2a8  00000000`0001107b
000000ee`54dff2b0  00000000`00000001
000000ee`54dff2b8  00007ff9`19cb21b0 jvm!buffer
000000ee`54dff2c0  00000000`000007d0
000000ee`54dff2c8  000002bf`ffffffff
000000ee`54dff2d0  00000000`00000001
000000ee`54dff2d8  000000ee`00000008
000000ee`54dff2e0  000000ee`54dff2f0
0:023> 
000000ee`54dff2e8  00000000`00000001
000000ee`54dff2f0  00000000`00000000
000000ee`54dff2f8  00000000`00000000
000000ee`54dff300  00000000`00000000
000000ee`54dff308  00000000`00000000
000000ee`54dff310  00000710`fffffb30
000000ee`54dff318  000004d0`fffffb30
000000ee`54dff320  00000150`000000f0
000000ee`54dff328  00007ff9`180fbb41 jvm!Atomic::inc<unsigned __int64>+0x21 [<path>\src\hotspot\share\runtime\atomic.hpp @ 632]
000000ee`54dff330  00000000`c0000005
000000ee`54dff338  00000000`00000000
000000ee`54dff340  00007ff9`185c67d6 jvm!JfrCheckpointManager::flush_type_set+0x166 [<path>src\hotspot\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp @ 660]
000000ee`54dff348  00000000`00000002
000000ee`54dff350  00000000`00000001
000000ee`54dff358  000002bd`f3250000
000000ee`54dff360  00000000`00000000

To say this is tedious and time-consuming is an understatement,
 and is especially irritating since this is a debug build, meaning all
   details are available; it's just that they are not provided.

Proposal:

Build CAN_SHOW_REGISTERS_ON_ASSERT support also for Windows and ensure a proper EXCEPTION_RECORD is provided in the .mdmp file.

Results:

1. Here is an example for the new hs_err_pid12016.log:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (<path>\open\src\hotspot\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp:660), pid=12016, tid=20240
#  guarantee(_global_mspace->live_list_is_empty()) failed: invariant
#
# JRE version: Java(TM) SE Runtime Environment (24.0) (slowdebug build 24-internal-2024-10-28-1355460.mgronlun...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 24-internal-2024-10-28-1355460.mgronlun..., interpreted mode, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# V  [jvm.dll+0xad5a94]  JfrCheckpointManager::flush_type_set+0x154
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x000001a2457d3200):  JavaThread "JFR Recorder Thread" daemon [_thread_in_native, id=20240, stack(0x0000001690700000,0x0000001690800000) (1024K)]

Stack: [0x0000001690700000,0x0000001690800000],  sp=0x00000016907ff7c0,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xad5a94]  JfrCheckpointManager::flush_type_set+0x154  (jfrCheckpointManager.cpp:660)
V  [jvm.dll+0xb40c06]  Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set>::process+0x16  (jfrRecorderService.cpp:158)
V  [jvm.dll+0xb41177]  WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> >::process+0x17  (jfrRecorderService.cpp:186)
V  [jvm.dll+0xb3eed3]  invoke<WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> > >+0x13  (jfrRecorderService.cpp:277)
V  [jvm.dll+0xb3eeab]  flush_typeset+0x3b  (jfrRecorderService.cpp:366)
V  [jvm.dll+0xb3e673]  JfrRecorderService::flush+0xc3  (jfrRecorderService.cpp:657)
V  [jvm.dll+0xb40c36]  Content<JfrRecorderService,&JfrRecorderService::flush>::process+0x16  (jfrRecorderService.cpp:158)
V  [jvm.dll+0xb411d7]  WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> >::process+0x17  (jfrRecorderService.cpp:186)
V  [jvm.dll+0xb3f653]  invoke<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x13  (jfrRecorderService.cpp:277)
V  [jvm.dll+0xb3f56b]  invoke_with_flush_event<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x2b  (jfrRecorderService.cpp:282)
V  [jvm.dll+0xb3df72]  JfrRecorderService::invoke_flush+0x102  (jfrRecorderService.cpp:672)
V  [jvm.dll+0xb3e77f]  JfrRecorderService::flushpoint+0x3f  (jfrRecorderService.cpp:682)
V  [jvm.dll+0xb42107]  recorderthread_entry+0x187  (jfrRecorderThreadLoop.cpp:85)
V  [jvm.dll+0xacc2b6]  JavaThread::thread_main_inner+0x146  (javaThread.cpp:759)
V  [jvm.dll+0xacc161]  JavaThread::run+0x181  (javaThread.cpp:744)
V  [jvm.dll+0x11f7e4a]  Thread::call_run+0x18a  (thread.cpp:237)
V  [jvm.dll+0xfbeb09]  thread_native_entry+0x129  (os_windows.cpp:555)
C  [ucrtbase.dll+0x21bb2]  (no source info available)
C  [KERNEL32.DLL+0x17344]  (no source info available)
C  [ntdll.dll+0x526b1]  (no source info available)

Registers:
RAX=0x000001a22d1d0000, RBX=0x000001a245211320, RCX=0x00000016907ff680, RDX=0x000001a240550ee0
RSP=0x00000016907ff7c0, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000000000
R8 =0x0000000000000001, R9 =0x0000000000000008, R10=0x0000000000000000, R11=0x00000016907ff3b0
R12=0x0000000000000000, R13=0x0000000000000000, R14=0x0000000000000000, R15=0x0000000000000000
RIP=0x00007ff8b94b5a94, EFLAGS=0x0000000000010246

XMM[0]=0x0000000000000000 0x0000001f00000000
XMM[1]=0x0000000000000000 0x0000000000000000
XMM[2]=0x0000000000000000 0x0000000000000000
XMM[3]=0x0000000000000000 0x0000000000000000
XMM[4]=0x0000000000000000 0x0000000000000000
XMM[5]=0x0000000000000000 0x0000000000000000
XMM[6]=0x0000000000000000 0x0000000000000000
XMM[7]=0x0000000000000000 0x0000000000000000
XMM[8]=0x0000000000000000 0x0000000000000000
XMM[9]=0x0000000000000000 0x0000000000000000
XMM[10]=0x0000000000000000 0x0000000000000000
XMM[11]=0x0000000000000000 0x0000000000000000
XMM[12]=0x0000000000000000 0x0000000000000000
XMM[13]=0x0000000000000000 0x0000000000000000
XMM[14]=0x0000000000000000 0x0000000000000000
XMM[15]=0x0000000000000000 0x0000000000000000
  MXCSR=0x00001fa0


Register to memory mapping:

RAX=0x000001a22d1d0000 in mmap'd memory region [0x000001a22d1d0000 - 0x000001a22d1d1000], tag mtInternal
[0x00007ff8b90be146]initialize_assert_poison+0x16   (debug.cpp:718)
[0x00007ff8b9be7c4b]Threads::create_vm+0x20b   (threads.cpp:498)
[0x00007ff8b95787fc]JNI_CreateJavaVM_inner+0x7c   (jni.cpp:3596)
[0x00007ff8b955bd9f]JNI_CreateJavaVM+0x2f   (jni.cpp:3687)

RBX=0x000001a245211320 points into unknown readable memory: 0x00007ff8b999e9e0 | e0 e9 99 b9 f8 7f 00 00
RCX=0x00000016907ff680 is pointing into the stack for thread: 0x000001a2457d3200
RDX=0x000001a240550ee0 into live malloced block starting at 0x000001a240550ed0, size 56, tag mtTracing
[0x00007ff8b94b139a]JfrCHeapObj::operator new+0x1a   (jfrAllocation.cpp:96)[0x00007ff8b94b5c62]create_mspace<JfrMemorySpace<JfrCheckpointManager,JfrMspaceRetrieval,JfrLinkedList<JfrBuffer,JfrCHeapObj>,JfrLinkedList<JfrBuffer,JfrCHeapObj>,1>,JfrCheckpointManager>+0x22   (jfrMemorySpace.inline.hpp:310)[0x00007ff8b94b3f17]JfrCheckpointManager::initialize_early+0x77   (jfrCheckpointManager.cpp:104)[0x00007ff8b951bd01]JfrRecorder::create_checkpoint_manager+0x71   (jfrRecorder.cpp:361)

RSP=0x00000016907ff7c0 is pointing into the stack for thread: 0x000001a2457d3200
RBP=0x0 is null
RSI=0x0 is null
RDI=0x0 is null
R8 =0x0000000000000001 is an unknown value
R9 =0x0000000000000008 is an unknown value
R10=0x0 is null
R11=0x00000016907ff3b0 is pointing into the stack for thread: 0x000001a2457d3200
R12=0x0 is null
R13=0x0 is null
R14=0x0 is null
R15=0x0 is null

Top of Stack: (sp=0x00000016907ff7c0)
0x00000016907ff7c0:   00007ff8ba3ec4c0 0000001600000294   ..>.............
0x00000016907ff7d0:   00007ff8ba3ebbc8 00007ff8ba3ec4b0   ..>.......>.....
0x00000016907ff7e0:   000001a2457d3200 00000000000000f8   .2}E............
0x00000016907ff7f0:   00000016907ff810 00007ff8b95200d0   ..........R.....
0x00000016907ff800:   000001a2457d3200 00007ff800000001   .2}E............
0x00000016907ff810:   000001a245033110 00000000000000f0   .1.E............
0x00000016907ff820:   000001a245232320 000000000002c793    ##E............
0x00000016907ff830:   000000000002c8c3 00007ff8b9beb415   ................
0x00000016907ff840:   00000016907ff930 00007ff8b95214d4   0.........R.....
0x00000016907ff850:   000001a245033110 00007ff8b9520c06   .1.E......R.....
0x00000016907ff860:   000001a2405580d0 00007ff8b94bf943   ..U@....C.K.....
0x00000016907ff870:   000001a245033110 00007ff8b952114f   .1.E....O.R.....
0x00000016907ff880:   0000001600000001 00007ff8b9521177   ........w.R.....
0x00000016907ff890:   00000016907ff920 00007ff8b94c1543    .......C.L.....
0x00000016907ff8a0:   000001a245033110 00007ff8bab54a30   .1.E....0J......
0x00000016907ff8b0:   0000000000000000 00007ff8b951eb7d   ........}.Q.....
0x00000016907ff8c0:   00000016907ff930 00007ff8b951eed3   0.........Q.....
0x00000016907ff8d0:   00000016907ff930 000001a245033110   0........1.E....
0x00000016907ff8e0:   00000016907ff920 00007ff8b951eb52    .......R.Q.....
0x00000016907ff8f0:   00000016907ff930 00007ff8b951eeab   0.........Q.....
0x00000016907ff900:   00000016907ff930 000001a245033110   0........1.E....
0x00000016907ff910:   00000016907ff920 000001a245033110    ........1.E....
0x00000016907ff920:   000001a2405580d0 000001a200000000   ..U@............
0x00000016907ff930:   0000001183fc962a 0000000000000000   *...............
0x00000016907ff940:   000001a245033110 00000016907ff920   .1.E.... .......
0x00000016907ff950:   000000000002c8c3 00000000000000cb   ................
0x00000016907ff960:   00000016907ff980 00007ff8b951e673   ........s.Q.....
0x00000016907ff970:   000001a2405580d0 000001a245033110   ..U@.....1.E....
0x00000016907ff980:   000001a2457b8c90 000001a2457d3200   ..{E.....2}E....
0x00000016907ff990:   0000000000000011 00007ff8b8ccd2bb   ................
0x00000016907ff9a0:   00000016907ff9c0 00007ff8b9520c36   ........6.R.....
0x00000016907ff9b0:   00000016907ffbf8 000001a2407ef570   ........p.~@....

Instructions: (pc=0x00007ff8b94b5a94)
  0x00007ff8b94b5994:   e8 77 39 98 ff 48 8b 4c 24 20 e8 7d 14 00 00 48
  0x00007ff8b94b59a4:   89 44 24 28 48 8d 4c 24 40 e8 ce 42 98 ff eb 0f
  0x00007ff8b94b59b4:   48 8b 4c 24 20 e8 62 14 00 00 48 89 44 24 28 48
  0x00007ff8b94b59c4:   8d 0d de c9 68 01 e8 31 bb 00 00 0f b6 c0 85 c0
  0x00007ff8b94b59d4:   0f 84 46 01 00 00 48 8b 8c 24 a0 00 00 00 e8 a9
  0x00007ff8b94b59e4:   e8 ff ff 48 8b d0 48 8d 4c 24 50 e8 5c 87 00 00
  0x00007ff8b94b59f4:   48 8d 54 24 50 48 8d 4c 24 30 e8 cd d5 54 ff 45
  0x00007ff8b94b5a04:   33 c0 48 8d 54 24 30 48 8b 84 24 a0 00 00 00 48
  0x00007ff8b94b5a14:   8b 48 08 e8 44 3e 00 00 33 c0 85 c0 75 0c e8 49
  0x00007ff8b94b5a24:   5d 54 ff 0f b6 c0 85 c0 75 40 48 8b 84 24 a0 00
  0x00007ff8b94b5a34:   00 00 48 8b 08 e8 a2 ab 00 00 0f b6 c0 85 c0 75
  0x00007ff8b94b5a44:   29 48 8b 05 e4 09 5c 01 c6 00 58 4c 8d 0d ea 69
  0x00007ff8b94b5a54:   f3 00 4c 8d 05 9b 60 f3 00 ba 93 02 00 00 48 8d
  0x00007ff8b94b5a64:   0d e7 69 f3 00 e8 e2 88 c0 ff 33 c0 85 c0 75 a8
  0x00007ff8b94b5a74:   33 d2 48 8b 84 24 a0 00 00 00 48 8b 08 e8 ea bb
  0x00007ff8b94b5a84:   00 00 0f b6 c0 85 c0 75 29 48 8b 05 9c 09 5c 01
=>0x00007ff8b94b5a94:   c6 00 58 4c 8d 0d 12 6a f3 00 4c 8d 05 23 61 f3
  0x00007ff8b94b5aa4:   00 ba 94 02 00 00 48 8d 0d 0f 6a f3 00 e8 9a 88
  0x00007ff8b94b5ab4:   c0 ff 33 c0 85 c0 75 b8 45 33 c0 48 8b 84 24 a0
  0x00007ff8b94b5ac4:   00 00 00 48 8b 10 48 8d 4c 24 30 e8 1c 52 00 00
  0x00007ff8b94b5ad4:   48 8b 8c 24 a0 00 00 00 e8 af e7 ff ff 48 8b d0
  0x00007ff8b94b5ae4:   48 8d 4c 24 60 e8 f2 8a 00 00 48 8d 54 24 60 48
  0x00007ff8b94b5af4:   8d 4c 24 38 e8 d3 d4 54 ff 45 33 c0 48 8d 54 24
  0x00007ff8b94b5b04:   38 48 8b 84 24 a0 00 00 00 48 8b 48 10 e8 9a 3e
  0x00007ff8b94b5b14:   00 00 48 8d 4c 24 60 e8 40 8d 00 00 48 8b 44 24
  0x00007ff8b94b5b24:   28 48 81 c4 98 00 00 00 c3 cc cc cc cc cc cc cc
  0x00007ff8b94b5b34:   cc cc cc cc cc cc cc cc cc cc cc cc 48 89 54 24
  0x00007ff8b94b5b44:   10 48 89 4c 24 08 48 83 ec 48 48 b8 00 00 00 00
  0x00007ff8b94b5b54:   00 00 00 80 48 39 44 24 50 76 55 33 c0 85 c0 75
  0x00007ff8b94b5b64:   0c e8 06 5c 54 ff 0f b6 c0 85 c0 75 39 33 c0 85
  0x00007ff8b94b5b74:   c0 75 33 48 8b 05 b2 08 5c 01 c6 00 58 48 8b 44
  0x00007ff8b94b5b84:   24 50 48 89 44 24 20 4c 8d 0d 56 86 f3 00 4c 8d


Stack slot to memory mapping:

stack at sp + 0 slots: 0x00007ff8ba3ec4c0 jvm.dll::ZPointerLoadShiftTable + 0x38d8
stack at sp + 1 slots: 0x0000001600000294 is an unknown value
stack at sp + 2 slots: 0x00007ff8ba3ebbc8 jvm.dll::ZPointerLoadShiftTable + 0x2fe0
stack at sp + 3 slots: 0x00007ff8ba3ec4b0 jvm.dll::ZPointerLoadShiftTable + 0x38c8
stack at sp + 4 slots: 0x000001a2457d3200 is a thread
stack at sp + 5 slots: 0x00000000000000f8 is an unknown value
stack at sp + 6 slots: 0x00000016907ff810 is pointing into the stack for thread: 0x000001a2457d3200
stack at sp + 7 slots: 0x00007ff8b95200d0 jvm.dll::WriterHost<EncoderHost<BigEndianEncoderImpl,BigEndianEncoderImpl>,EncoderHost<Varint128EncoderImpl,BigEndianEncoderImpl>,StreamWriterHost<MallocAdapter<1048576>,JfrCHeapObj> >::write_padded_at_offset<unsigned __int64> + 0x60

Lock stack of current Java thread (top to bottom):

2. Here is the new associated hs_err_pid12016.mdmp file loaded into Windbg:

Microsoft (R) Windows Debugger Version 10.0.22000.194 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [<path>\hs_err_pid12016.mdmp]
User Mini Dump File with Full Memory: Only application data is available

Executable search path is: 
Windows 10 Version 19045 MP (16 procs) Free x64
Product: WinNt, suite: SingleUserTS
Edition build lab: 19041.1.amd64fre.vb_release.191206-1406
.................................................
This dump file has an exception of interest stored in it.                      <<<----- HERE -------
The stored exception information can be accessed via .ecxr.
(2ef0.4f10): Access violation - code c0000005 (first/second chance not available)
For analysis of this file, run !analyze -v
ntdll!NtGetContextThread+0x14:
00007ff9`659aee34 c3              ret


2.1. Try to get the exception context (EXCEPTION_RECORD):

0:019> .ecxr
*** WARNING: Unable to verify checksum for jvm.dll
rax=000001a22d1d0000 rbx=000001a245211320 rcx=00000016907ff680
rdx=000001a240550ee0 rsi=0000000000000000 rdi=0000000000000000
rip=00007ff8b94b5a94 rsp=00000016907ff7c0 rbp=0000000000000000
 r8=0000000000000001  r9=0000000000000008 r10=0000000000000000
r11=00000016907ff3b0 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei pl zr na po nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010246
jvm!JfrCheckpointManager::flush_type_set+0x154:
00007ff8`b94b5a94 c60058          mov     byte ptr [rax],58h ds:000001a2`2d1d0000=58

2.2 Exception context in .mdmp located, loaded and presented.

0:019> kb
  *** Stack trace for last set context - .thread/.cxr resets it
 # RetAddr               : Args to Child                                                           : Call Site
00 00007ff8`b9520c06     : 000001a2`405580d0 00007ff8`b94bf943 000001a2`45033110 00007ff8`b952114f : jvm!JfrCheckpointManager::flush_type_set+0x154 [<path>\open\src\hotspot\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp @ 660] 
01 00007ff8`b9521177     : 00000016`907ff920 00007ff8`b94c1543 000001a2`45033110 00007ff8`bab54a30 : jvm!Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set>::process+0x16 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 158] 
02 00007ff8`b951eed3     : 00000016`907ff930 000001a2`45033110 00000016`907ff920 00007ff8`b951eb52 : jvm!WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> >::process+0x17 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 186] 
03 00007ff8`b951eeab     : 00000016`907ff930 000001a2`45033110 00000016`907ff920 000001a2`45033110 : jvm!invoke<WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> > >+0x13 [<path>\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 277] 
04 00007ff8`b951e673     : 000001a2`405580d0 000001a2`45033110 000001a2`457b8c90 000001a2`457d3200 : jvm!flush_typeset+0x3b [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 366] 
05 00007ff8`b9520c36     : 00000016`907ffbf8 000001a2`407ef570 000001a2`457b8ca0 000001a2`457b8cc0 : jvm!JfrRecorderService::flush+0xc3 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 657] 
06 00007ff8`b95211d7     : 00000016`907ffb18 000001a2`457b8ca0 000001a2`457b8cc0 00007ff8`b9a360c9 : jvm!Content<JfrRecorderService,&JfrRecorderService::flush>::process+0x16 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 158] 
07 00007ff8`b951f653     : 00000016`907ffb28 00007ff8`b9beb415 00000016`907ffb28 00007ff8`bab44980 : jvm!WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> >::process+0x17 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 186] 
08 00007ff8`b951f56b     : 00000016`907ffb28 00007ff8`b94bf943 000001a2`45033110 000001a2`457b8cc0 : jvm!invoke<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x13 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 277] 
09 00007ff8`b951df72     : 00000016`907ffb28 000001a2`45033110 00000016`907ffb18 00007ff8`b94e7e4a : jvm!invoke_with_flush_event<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x2b [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 282] 
0a 00007ff8`b951e77f     : 00000016`907ffbf8 00007ff8`b951e824 000001a2`45033110 00007ff8`bab6b4b0 : jvm!JfrRecorderService::invoke_flush+0x102 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 672] 
0b 00007ff8`b9522107     : 00000016`907ffbf8 00007ff8`bab6b4b0 00000000`00000001 000001a2`4082adc0 : jvm!JfrRecorderService::flushpoint+0x3f [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 682] 
0c 00007ff8`b94ac2b6     : 000001a2`457d3200 000001a2`457d3200 000001a2`00000000 00007ff8`b8fe2971 : jvm!recorderthread_entry+0x187 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderThreadLoop.cpp @ 85] 
0d 00007ff8`b94ac161     : 000001a2`457d3200 000001a2`407ce3e0 00000000`00100000 00000016`90800000 : jvm!JavaThread::thread_main_inner+0x146 [<path>\open\src\hotspot\share\runtime\javaThread.cpp @ 759] 
0e 00007ff8`b9bd7e4a     : 000001a2`457d3200 00007ff8`00000003 000001a2`457d3708 00007ff8`b9bd7bd4 : jvm!JavaThread::run+0x181 [<path>\open\src\hotspot\share\runtime\javaThread.cpp @ 744] 
0f 00007ff8`b999eb09     : 000001a2`457d3200 00000000`00000000 000056ca`b22dc1df 00000000`00000000 : jvm!Thread::call_run+0x18a [<path>\open\src\hotspot\share\runtime\thread.cpp @ 237] 
10 00007ff9`636b1bb2     : 000001a2`457d3200 00000000`00000000 00000000`00000000 00000000`00000000 : jvm!thread_native_entry+0x129 [<path>\open\src\hotspot\os\windows\os_windows.cpp @ 555] 
11 00007ff9`65827344     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42
12 00007ff9`659626b1     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
13 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21





Comments
Changeset: 0054bbed Branch: master Author: Markus Grönlund <mgronlun@openjdk.org> Date: 2024-11-26 10:50:20 +0000 URL: https://git.openjdk.org/jdk/commit/0054bbed7fce5b8566655d6910b09b10c952e609
26-11-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/21994 Date: 2024-11-08 21:36:38 +0000
08-11-2024