From 1dacd41094ecfc24b213f301003eb60aa2b38654 Mon Sep 17 00:00:00 2001 From: Aleksey Kliger Date: Fri, 12 Nov 2021 13:13:09 -0500 Subject: [PATCH] [mini] Allow MONO_VERBOSE_METHOD='*:*' Implement method name wildcard matching for method descriptions Globbing doesn't work because we don't have g_pattern_match_simple in eglib. But a plain '*' wildcard does work. --- src/mono/mono/metadata/debug-helpers.c | 7 +++++++ src/mono/mono/mini/mini.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/metadata/debug-helpers.c b/src/mono/mono/metadata/debug-helpers.c index 2eddf8a35103a..c294477458f23 100644 --- a/src/mono/mono/metadata/debug-helpers.c +++ b/src/mono/mono/metadata/debug-helpers.c @@ -470,6 +470,13 @@ mono_method_desc_match (MonoMethodDesc *desc, MonoMethod *method) char *sig; gboolean name_match; + if (desc->name_glob && !strcmp (desc->name, "*")) + return TRUE; +#if 0 + /* FIXME: implement g_pattern_match_simple in eglib */ + if (desc->name_glob && g_pattern_match_simple (desc->name, method->name)) + return TRUE; +#endif name_match = strcmp (desc->name, method->name) == 0; if (!name_match) return FALSE; diff --git a/src/mono/mono/mini/mini.c b/src/mono/mono/mini/mini.c index 0ad288fd0fca4..c9486dce45c48 100644 --- a/src/mono/mono/mini/mini.c +++ b/src/mono/mono/mini/mini.c @@ -3403,7 +3403,7 @@ mini_method_compile (MonoMethod *method, guint32 opts, JitFlags flags, int parts for (i = 0; verbose_method_names [i] != NULL; i++){ const char *name = verbose_method_names [i]; - if ((strchr (name, '.') > name) || strchr (name, ':')) { + if ((strchr (name, '.') > name) || strchr (name, ':') || strchr (name, '*')) { MonoMethodDesc *desc; desc = mono_method_desc_new (name, TRUE);