in mono/mono/mini:
[mono.git] / mono / metadata / debug-helpers.h
1 #ifndef __MONO_DEBUG_HELPERS_H__
2 #define __MONO_DEBUG_HELPERS_H__
3
4 #include <glib.h>
5 #include <mono/metadata/class.h>
6
7 G_BEGIN_DECLS
8
9 typedef struct MonoDisHelper MonoDisHelper;
10
11 typedef char* (*MonoDisIndenter) (MonoDisHelper *dh, MonoMethod *method, guint32 ip_offset);
12 typedef char* (*MonoDisTokener)  (MonoDisHelper *dh, MonoMethod *method, guint32 token);
13
14 struct MonoDisHelper {
15         const char *newline;
16         const char *label_format;
17         const char *label_target;
18         MonoDisIndenter indenter;
19         MonoDisTokener  tokener;
20         gpointer user_data;
21 };
22
23 char* mono_disasm_code_one (MonoDisHelper *dh, MonoMethod *method, const guchar *ip, const guchar** endp);
24 char* mono_disasm_code     (MonoDisHelper *dh, MonoMethod *method, const guchar *ip, const guchar* end);
25
26 typedef struct MonoMethodDesc MonoMethodDesc;
27
28 void            mono_type_get_desc (GString *res, MonoType *type, gboolean include_namespace);
29 char*           mono_type_full_name (MonoType *type);
30
31 char*           mono_signature_get_desc (MonoMethodSignature *sig, gboolean include_namespace);
32
33 MonoMethodDesc* mono_method_desc_new (const char *name, gboolean include_namespace);
34 MonoMethodDesc*mono_method_desc_from_method (MonoMethod *method);
35 void            mono_method_desc_free (MonoMethodDesc *desc);
36 gboolean        mono_method_desc_match (MonoMethodDesc *desc, MonoMethod *method);
37 gboolean        mono_method_desc_full_match (MonoMethodDesc *desc, MonoMethod *method);
38 MonoMethod*     mono_method_desc_search_in_class (MonoMethodDesc *desc, MonoClass *klass);
39 MonoMethod*     mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image);
40
41 char*           mono_method_full_name (MonoMethod *method, gboolean signature);
42
43 char*           mono_field_full_name (MonoClassField *field);
44
45 G_END_DECLS
46
47 #endif /* __MONO_DEBUG_HELPERS_H__ */
48