Vincent Povirk : mscoree: Enable crash chaining in Mono.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Mar 31 11:42:55 CDT 2016


Module: wine
Branch: master
Commit: ccac8a455b6a3eb95cc637b3d30f320dab491249
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ccac8a455b6a3eb95cc637b3d30f320dab491249

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Wed Mar 30 12:17:34 2016 -0500

mscoree: Enable crash chaining in Mono.

This allows winedbg to handle crashes and print native stack traces,
after Mono has attempted to print a managed stack trace.

Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mscoree/metahost.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c
index ca6914e..252740d 100644
--- a/dlls/mscoree/metahost.c
+++ b/dlls/mscoree/metahost.c
@@ -100,6 +100,7 @@ MonoType* (CDECL *mono_reflection_type_from_name)(char *name, MonoImage *image);
 MonoObject* (CDECL *mono_runtime_invoke)(MonoMethod *method, void *obj, void **params, MonoObject **exc);
 void (CDECL *mono_runtime_object_init)(MonoObject *this_obj);
 void (CDECL *mono_runtime_quit)(void);
+static void (CDECL *mono_set_crash_chaining)(BOOL chain_signals);
 static void (CDECL *mono_set_dirs)(const char *assembly_dir, const char *config_dir);
 static void (CDECL *mono_set_verbose_level)(DWORD level);
 MonoString* (CDECL *mono_string_new)(MonoDomain *domain, const char *str);
@@ -126,6 +127,10 @@ static MonoImage* CDECL image_open_module_handle_dummy(HMODULE module_handle,
     return mono_image_open(fname, status);
 }
 
+static void CDECL set_crash_chaining_dummy(BOOL crash_chaining)
+{
+}
+
 static void CDECL set_print_handler_dummy(MonoPrintCallback callback)
 {
 }
@@ -217,6 +222,7 @@ static HRESULT load_mono(LPCWSTR mono_path)
 } while (0);
 
         LOAD_OPT_MONO_FUNCTION(mono_image_open_from_module_handle, image_open_module_handle_dummy);
+        LOAD_OPT_MONO_FUNCTION(mono_set_crash_chaining, set_crash_chaining_dummy);
         LOAD_OPT_MONO_FUNCTION(mono_trace_set_print_handler, set_print_handler_dummy);
         LOAD_OPT_MONO_FUNCTION(mono_trace_set_printerr_handler, set_print_handler_dummy);
 
@@ -224,6 +230,8 @@ static HRESULT load_mono(LPCWSTR mono_path)
 
         mono_profiler_install(NULL, mono_shutdown_callback_fn);
 
+        mono_set_crash_chaining(TRUE);
+
         mono_trace_set_print_handler(mono_print_handler_fn);
         mono_trace_set_printerr_handler(mono_print_handler_fn);
 




More information about the wine-cvs mailing list