Apple receive crash reports for at least some VM crashes on macOS.
But Apple's crash reporter tools don't gather hotspot error logs and sometimes the stack trace which they get is not very revealing about what happened
Eg:Thread 27 Crashed ↩:: Java: RMI TCP Connection(3)-127.0.0.1
0 libsystem_kernel.dylib 0x00000001be409a58 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001be43d218 pthread_kill + 288
2 libsystem_c.dylib 0x00000001be37a314 abort + 164
3 libjvm.dylib 0x00000001021c6e04 os::abort(bool, void*, void const*) + 28
4 libjvm.dylib 0x000000010230ab20 VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 2820
5 libjvm.dylib 0x000000010230a010 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 72
6 libjvm.dylib 0x000000010230ac38 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 36
7 libjvm.dylib 0x00000001021cb190 JVM_handle_bsd_signal + 620
8 libjvm.dylib 0x00000001021c8ce4 signalHandler(int, __siginfo*, void*) + 56
9 libsystem_platform.dylib 0x00000001be4544e4 _sigtramp + 56
10 ??? 0x0000000106431cac 0 + 4400028844
The issue here being that in frame 4, we have some rich data about the crash that we could report, but it gets lost in the call to os::abort(), which ends up just abort()ing, so that data isn't in the actual crash log.
Request from Apple :
====
Could you update VMError::report_and_die to include the error message in the crash log? You can do that using the (undocumented yet externally used) __crashreporter_info__ symbol
Or I (Apple) could provide you with some API in JavaRuntimeSupport (eg: +[JRSProcess setCrashlogInfo:(NSString *)additionalInformation] or void jrs_setCrashLogInfo(char *format, ...), or ?).
===
My quick take, although using an undocumented interface isn't ideal the JRS interface would be undocumented too, and we'd have to wait for it to be available. If further info is needed on how to do this I can help get it.