[interp] Fix resuming into interp frame during EH (#12092)
[mono-project.git] / mono / mini / interp-stubs.c
blob83aa8520d6eaabec9ad96ef4ac8dbf3a08ce4f7f
1 #include <config.h>
3 #include "interp/interp.h"
5 /* interpreter callback stubs */
7 static MonoJitInfo*
8 stub_find_jit_info (MonoDomain *domain, MonoMethod *method)
10 return NULL;
13 static void
14 stub_set_breakpoint (MonoJitInfo *jinfo, gpointer ip)
16 g_assert_not_reached ();
19 static void
20 stub_clear_breakpoint (MonoJitInfo *jinfo, gpointer ip)
22 g_assert_not_reached ();
25 static MonoJitInfo*
26 stub_frame_get_jit_info (MonoInterpFrameHandle frame)
28 g_assert_not_reached ();
29 return NULL;
32 static gpointer
33 stub_frame_get_ip (MonoInterpFrameHandle frame)
35 g_assert_not_reached ();
36 return NULL;
39 static gpointer
40 stub_frame_get_arg (MonoInterpFrameHandle frame, int pos)
42 g_assert_not_reached ();
43 return NULL;
46 static gpointer
47 stub_frame_get_local (MonoInterpFrameHandle frame, int pos)
49 g_assert_not_reached ();
50 return NULL;
53 static gpointer
54 stub_frame_get_this (MonoInterpFrameHandle frame)
56 g_assert_not_reached ();
57 return NULL;
60 static MonoInterpFrameHandle
61 stub_frame_get_parent (MonoInterpFrameHandle frame)
63 g_assert_not_reached ();
64 return NULL;
67 static void
68 stub_start_single_stepping (void)
72 static void
73 stub_stop_single_stepping (void)
77 static void
78 stub_set_resume_state (MonoJitTlsData *jit_tls, MonoException *ex, MonoJitExceptionInfo *ei, MonoInterpFrameHandle interp_frame, gpointer handler_ip)
80 g_assert_not_reached ();
83 static gboolean
84 stub_run_finally (StackFrameInfo *frame, int clause_index, gpointer handler_ip, gpointer handler_ip_end)
86 g_assert_not_reached ();
89 static gboolean
90 stub_run_filter (StackFrameInfo *frame, MonoException *ex, int clause_index, gpointer handler_ip, gpointer handler_ip_end)
92 g_assert_not_reached ();
93 return FALSE;
96 static void
97 stub_frame_iter_init (MonoInterpStackIter *iter, gpointer interp_exit_data)
99 g_assert_not_reached ();
102 static gboolean
103 stub_frame_iter_next (MonoInterpStackIter *iter, StackFrameInfo *frame)
105 g_assert_not_reached ();
106 return FALSE;
109 static gpointer
110 stub_create_method_pointer (MonoMethod *method, gboolean compile, MonoError *error)
112 g_assert_not_reached ();
113 return NULL;
116 static MonoObject*
117 stub_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc, MonoError *error)
119 g_assert_not_reached ();
120 return NULL;
123 static void
124 stub_init_delegate (MonoDelegate *del)
126 g_assert_not_reached ();
129 static gpointer
130 stub_get_remoting_invoke (gpointer imethod, MonoError *error)
132 g_assert_not_reached ();
133 return NULL;
136 static void
137 stub_delegate_ctor (MonoObjectHandle this_obj, MonoObjectHandle target, gpointer addr, MonoError *error)
139 g_assert_not_reached ();
142 void
143 mono_interp_stub_init (void)
145 if (mini_get_interp_callbacks ()->create_method_pointer)
146 /* already initialized */
147 return;
149 MonoEECallbacks c;
150 c.create_method_pointer = stub_create_method_pointer;
151 c.runtime_invoke = stub_runtime_invoke;
152 c.init_delegate = stub_init_delegate;
153 c.get_remoting_invoke = stub_get_remoting_invoke;
154 c.set_resume_state = stub_set_resume_state;
155 c.run_finally = stub_run_finally;
156 c.run_filter = stub_run_filter;
157 c.frame_iter_init = stub_frame_iter_init;
158 c.frame_iter_next = stub_frame_iter_next;
159 c.find_jit_info = stub_find_jit_info;
160 c.set_breakpoint = stub_set_breakpoint;
161 c.clear_breakpoint = stub_clear_breakpoint;
162 c.frame_get_jit_info = stub_frame_get_jit_info;
163 c.frame_get_ip = stub_frame_get_ip;
164 c.frame_get_arg = stub_frame_get_arg;
165 c.frame_get_local = stub_frame_get_local;
166 c.frame_get_this = stub_frame_get_this;
167 c.frame_get_parent = stub_frame_get_parent;
168 c.start_single_stepping = stub_start_single_stepping;
169 c.stop_single_stepping = stub_stop_single_stepping;
170 c.delegate_ctor = stub_delegate_ctor;
171 mini_install_interp_callbacks (&c);