#include <mono/metadata/object.h>
#include <mono/metadata/domain-internals.h>
#include <mono/metadata/class-internals.h>
+#include <mono/metadata/debug-internals.h>
#include "config.h"
enum {
union {
gint32 i;
gint64 l;
+ struct {
+ gint32 lo;
+ gint32 hi;
+ } pair;
double f;
/* native size integer and pointer types */
gpointer p;
gpointer jit_entry;
MonoType *rtype;
MonoType **param_types;
+ MonoJitInfo *jinfo;
+ MonoDomain *domain;
} RuntimeMethod;
struct _MonoInvocation {
stackval *stack_args; /* parent */
stackval *stack;
stackval *sp; /* For GC stack marking */
+ unsigned char *locals;
/* exception info */
unsigned char invoke_trap;
const unsigned short *ip;
};
typedef struct {
- MonoDomain *domain;
+ MonoDomain *original_domain;
MonoInvocation *base_frame;
MonoInvocation *current_frame;
MonoInvocation *env_frame;
jmp_buf *current_env;
unsigned char search_for_handler;
unsigned char managed_code;
+
+ /* Resume state for resuming execution in mixed mode */
+ gboolean has_resume_state;
+ /* Frame to resume execution at */
+ MonoInvocation *handler_frame;
+ /* IP to resume execution at */
+ gpointer handler_ip;
} ThreadContext;
extern int mono_interp_traceopt;