+ if (mono_llvm_only) {
+ GSList *l, *ips;
+
+ if (async)
+ return;
+
+ ips = get_unwind_backtrace ();
+ for (l = ips; l; l = l->next) {
+ guint8 *ip = (guint8*)l->data;
+ memset (&frame, 0, sizeof (StackFrameInfo));
+ frame.ji = mini_jit_info_table_find (domain, (char*)ip, &frame.domain);
+ if (!frame.ji || frame.ji->is_trampoline)
+ continue;
+ frame.type = FRAME_TYPE_MANAGED;
+ frame.method = jinfo_get_method (frame.ji);
+ // FIXME: Cannot lookup the actual method
+ frame.actual_method = frame.method;
+ if (frame.type == FRAME_TYPE_MANAGED) {
+ if (!frame.method->wrapper_type || frame.method->wrapper_type == MONO_WRAPPER_DYNAMIC_METHOD)
+ frame.managed = TRUE;
+ }
+ frame.native_offset = ip - (guint8*)frame.ji->code_start;
+ frame.il_offset = -1;
+
+ if (func (&frame, NULL, user_data))
+ break;
+ }
+ g_free (ips);
+ return;
+ }
+