X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmono-debug.h;h=daba9e2ee1cdf81f35105014fd1b097b0bd296e0;hb=157cb97206f627685c15410953d2767146f6e426;hp=35e73cf91fda87edae501b4d1580cd30ea1f9519;hpb=8c3df7bf87da63f1d6ad449df7ed34debc0fbce0;p=mono.git diff --git a/mono/metadata/mono-debug.h b/mono/metadata/mono-debug.h index 35e73cf91fd..daba9e2ee1c 100644 --- a/mono/metadata/mono-debug.h +++ b/mono/metadata/mono-debug.h @@ -6,11 +6,12 @@ #ifndef __MONO_DEBUG_H__ #define __MONO_DEBUG_H__ -#include /* GHashTable dep below */ #include #include #include +MONO_BEGIN_DECLS + typedef struct _MonoSymbolTable MonoSymbolTable; typedef struct _MonoDebugDataTable MonoDebugDataTable; @@ -27,6 +28,7 @@ typedef struct _MonoDebugMethodAddressList MonoDebugMethodAddressList; typedef struct _MonoDebugClassEntry MonoDebugClassEntry; typedef struct _MonoDebugMethodInfo MonoDebugMethodInfo; +typedef struct _MonoDebugLocalsInfo MonoDebugLocalsInfo; typedef struct _MonoDebugSourceLocation MonoDebugSourceLocation; typedef struct _MonoDebugList MonoDebugList; @@ -48,7 +50,7 @@ struct _MonoDebugList { }; struct _MonoSymbolTable { - guint64 magic; + uint64_t magic; uint32_t version; uint32_t total_size; @@ -86,6 +88,8 @@ struct _MonoDebugMethodJitInfo { MonoDebugVarInfo *params; uint32_t num_locals; MonoDebugVarInfo *locals; + MonoDebugVarInfo *gsharedvt_info_var; + MonoDebugVarInfo *gsharedvt_locals_var; }; struct _MonoDebugMethodAddressList { @@ -120,6 +124,12 @@ struct _MonoDebugSourceLocation { /* The variable is dead. */ #define MONO_DEBUG_VAR_ADDRESS_MODE_DEAD 0x30000000 +/* Same as REGOFFSET, but do an indirection */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_REGOFFSET_INDIR 0x40000000 + +/* gsharedvt local */ +#define MONO_DEBUG_VAR_ADDRESS_MODE_GSHAREDVT_LOCAL 0x50000000 + struct _MonoDebugVarInfo { uint32_t index; uint32_t offset; @@ -130,12 +140,11 @@ struct _MonoDebugVarInfo { }; #define MONO_DEBUGGER_MAJOR_VERSION 81 -#define MONO_DEBUGGER_MINOR_VERSION 4 +#define MONO_DEBUGGER_MINOR_VERSION 6 #define MONO_DEBUGGER_MAGIC 0x7aff65af4253d427ULL extern MonoSymbolTable *mono_symbol_table; extern MonoDebugFormat mono_debug_format; -extern GHashTable *mono_debug_handles; extern int32_t mono_debug_debugger_version; extern int32_t _mono_debug_using_mono_debugger; @@ -156,6 +165,9 @@ mono_bool mono_debug_using_mono_debugger (void); MonoDebugMethodAddress * mono_debug_add_method (MonoMethod *method, MonoDebugMethodJitInfo *jit, MonoDomain *domain); +void +mono_debug_remove_method (MonoMethod *method, MonoDomain *domain); + MonoDebugMethodInfo * mono_debug_lookup_method (MonoMethod *method); @@ -172,8 +184,8 @@ mono_debug_free_method_jit_info (MonoDebugMethodJitInfo *jit); void mono_debug_add_delegate_trampoline (void* code, int size); -int -mono_debug_lookup_locals (MonoMethod *method, char ***names, int **indexes); +MonoDebugLocalsInfo* +mono_debug_lookup_locals (MonoMethod *method); /* * Line number support. @@ -203,4 +215,6 @@ int mono_debugger_insert_breakpoint (const char *method_na void mono_set_is_debugger_attached (mono_bool attached); mono_bool mono_is_debugger_attached (void); +MONO_END_DECLS + #endif /* __MONO_DEBUG_H__ */