diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index 3b753a44cb0d44..4d27652a69cb44 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -3534,7 +3534,17 @@ mono_aot_find_jit_info (MonoImage *image, gpointer addr) else code_len = amodule->llvm_code_end - code; } else { - code_len = (guint8*)methods [pos + 1] - (guint8*)methods [pos]; + guint8* code_end = (guint8*)methods [pos + 1]; + + if (code >= amodule->jit_code_start && code < amodule->jit_code_end && code_end > amodule->jit_code_end) { + code_end = amodule->jit_code_end; + } + + if (code >= amodule->llvm_code_start && code < amodule->llvm_code_end && code_end > amodule->llvm_code_end) { + code_end = amodule->llvm_code_end; + } + + code_len = code_end - code; } #endif