Module: wine Branch: master Commit: ccac8a455b6a3eb95cc637b3d30f320dab491249 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ccac8a455b6a3eb95cc637b3d3...
Author: Vincent Povirk vincent@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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);