# This line is parsed by tools besides autoconf, such as msvc/mono.winconfig.targets.
# It should remain in the format they expect.
#
-MONO_CORLIB_VERSION=90c44d62-c1dd-4a52-bf0e-ac282fcc8be8
+MONO_CORLIB_VERSION=4FA4F5F2-3F97-4A19-9CEB-3AC7A9624CC7
#
# Put a quoted #define in config.h.
ICALL_EXPORT int ves_icall_System_Threading_Thread_SystemMaxStackSize (void);
ICALL_EXPORT int ves_icall_get_method_attributes (MonoMethod* method);
ICALL_EXPORT void ves_icall_Mono_Runtime_RegisterReportingForNativeLib (const char*, const char*);
+ICALL_EXPORT void ves_icall_Mono_Runtime_RegisterReportingForAllNativeLibs (void);
ICALL_EXPORT void ves_icall_System_Array_GetGenericValueImpl (MonoArray*, guint32, gpointer);
ICALL_EXPORT void ves_icall_System_Array_SetGenericValueImpl (MonoArray*, guint32, gpointer);
ICALL_EXPORT void ves_icall_System_Buffer_MemcpyInternal (gpointer dest, gconstpointer src, gint32 count);
HANDLES(RUNTIME_3, "ExceptionToState_internal", ves_icall_Mono_Runtime_ExceptionToState, MonoString, 3, (MonoException, guint64_ref, guint64_ref))
HANDLES(RUNTIME_4, "GetDisplayName", ves_icall_Mono_Runtime_GetDisplayName, MonoString, 0, ())
HANDLES(RUNTIME_12, "GetNativeStackTrace", ves_icall_Mono_Runtime_GetNativeStackTrace, MonoString, 1, (MonoException))
+NOHANDLES(ICALL(RUNTIME_21, "RegisterReportingForAllNativeLibs_internal", ves_icall_Mono_Runtime_RegisterReportingForAllNativeLibs))
NOHANDLES(ICALL(RUNTIME_17, "RegisterReportingForNativeLib_internal", ves_icall_Mono_Runtime_RegisterReportingForNativeLib))
HANDLES(RUNTIME_13, "SendMicrosoftTelemetry_internal", ves_icall_Mono_Runtime_SendMicrosoftTelemetry, void, 3, (const_char_ptr, guint64, guint64))
HANDLES(RUNTIME_14, "WriteStateToFile_internal", ves_icall_Mono_Runtime_DumpTelemetry, void, 3, (const_char_ptr, guint64, guint64))
HANDLES(RUNTIME_3, "ExceptionToState_internal", ves_icall_Mono_Runtime_ExceptionToState, MonoString, 3, (MonoException, guint64_ref, guint64_ref))
HANDLES(RUNTIME_4, "GetDisplayName", ves_icall_Mono_Runtime_GetDisplayName, MonoString, 0, ())
HANDLES(RUNTIME_12, "GetNativeStackTrace", ves_icall_Mono_Runtime_GetNativeStackTrace, MonoString, 1, (MonoException))
+NOHANDLES(ICALL(RUNTIME_21, "RegisterReportingForAllNativeLibs_internal", ves_icall_Mono_Runtime_RegisterReportingForAllNativeLibs))
NOHANDLES(ICALL(RUNTIME_17, "RegisterReportingForNativeLib_internal", ves_icall_Mono_Runtime_RegisterReportingForNativeLib))
HANDLES(RUNTIME_13, "SendMicrosoftTelemetry_internal", ves_icall_Mono_Runtime_SendMicrosoftTelemetry, void, 3, (const_char_ptr, guint64, guint64))
HANDLES(RUNTIME_14, "WriteStateToFile_internal", ves_icall_Mono_Runtime_DumpTelemetry, void, 3, (const_char_ptr, guint64, guint64))
}
void
+ves_icall_Mono_Runtime_RegisterReportingForAllNativeLibs ()
+{
+#ifndef DISABLE_CRASH_REPORTING
+ if (mono_get_eh_callbacks ()->mono_allow_all_native_libraries)
+ mono_get_eh_callbacks ()->mono_allow_all_native_libraries ();
+#endif
+}
+
+void
ves_icall_Mono_Runtime_EnableCrashReportingLog (const char *directory, MonoError *error)
{
#ifndef DISABLE_CRASH_REPORTING
void (*mono_summarize_unmanaged_stack) (MonoThreadSummary *out);
void (*mono_summarize_exception) (MonoException *exc, MonoThreadSummary *out);
void (*mono_register_native_library) (const char *module_path, const char *module_name);
+ void (*mono_allow_all_native_libraries) (void);
} MonoRuntimeExceptionHandlingCallbacks;
MONO_COLD void mono_set_pending_exception (MonoException *exc);
static void mono_summarize_unmanaged_stack (MonoThreadSummary *out);
static void mono_summarize_exception (MonoException *exc, MonoThreadSummary *out);
static void mono_crash_reporting_register_native_library (const char *module_path, const char *module_name);
+static void mono_crash_reporting_allow_all_native_libraries (void);
static gboolean
first_managed (MonoStackFrameInfo *frame, MonoContext *ctx, gpointer addr)
cbs.mono_summarize_unmanaged_stack = mono_summarize_unmanaged_stack;
cbs.mono_summarize_exception = mono_summarize_exception;
cbs.mono_register_native_library = mono_crash_reporting_register_native_library;
+ cbs.mono_allow_all_native_libraries = mono_crash_reporting_allow_all_native_libraries;
if (mono_llvm_only) {
cbs.mono_raise_exception = mono_llvm_raise_exception;
} MonoLibWhitelistEntry;
static GList *native_library_whitelist;
+static gboolean allow_all_native_libraries = FALSE;
static void
mono_crash_reporting_register_native_library (const char *module_path, const char *module_name)
native_library_whitelist = g_list_append (native_library_whitelist, entry);
}
+static void
+mono_crash_reporting_allow_all_native_libraries ()
+{
+ allow_all_native_libraries = TRUE;
+}
+
static gboolean
check_whitelisted_module (const char *in_name, const char **out_module)
{
#ifndef MONO_PRIVATE_CRASHES
return TRUE;
#else
+ if (allow_all_native_libraries)
+ return TRUE;
if (g_str_has_suffix (in_name, "mono-sgen")) {
if (out_module)
*out_module = "mono";