debug-helpers.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * \file
  3. */
  4. #ifndef __MONO_DEBUG_HELPERS_H__
  5. #define __MONO_DEBUG_HELPERS_H__
  6. #include <mono/metadata/class.h>
  7. MONO_BEGIN_DECLS
  8. typedef struct MonoDisHelper MonoDisHelper;
  9. typedef char* (*MonoDisIndenter) (MonoDisHelper *dh, MonoMethod *method, uint32_t ip_offset);
  10. typedef char* (*MonoDisTokener) (MonoDisHelper *dh, MonoMethod *method, uint32_t token);
  11. struct MonoDisHelper {
  12. const char *newline;
  13. const char *label_format;
  14. const char *label_target;
  15. MonoDisIndenter indenter;
  16. MonoDisTokener tokener;
  17. void* user_data;
  18. };
  19. MONO_API char* mono_disasm_code_one (MonoDisHelper *dh, MonoMethod *method, const mono_byte *ip, const mono_byte** endp);
  20. MONO_API char* mono_disasm_code (MonoDisHelper *dh, MonoMethod *method, const mono_byte *ip, const mono_byte* end);
  21. typedef struct MonoMethodDesc MonoMethodDesc;
  22. MONO_API char* mono_type_full_name (MonoType *type);
  23. MONO_API char* mono_signature_get_desc (MonoMethodSignature *sig, mono_bool include_namespace);
  24. MONO_API char* mono_context_get_desc (MonoGenericContext *context);
  25. MONO_API MonoMethodDesc* mono_method_desc_new (const char *name, mono_bool include_namespace);
  26. MONO_API MonoMethodDesc* mono_method_desc_from_method (MonoMethod *method);
  27. MONO_API void mono_method_desc_free (MonoMethodDesc *desc);
  28. MONO_API mono_bool mono_method_desc_match (MonoMethodDesc *desc, MonoMethod *method);
  29. MONO_API mono_bool mono_method_desc_is_full (MonoMethodDesc *desc);
  30. MONO_API mono_bool mono_method_desc_full_match (MonoMethodDesc *desc, MonoMethod *method);
  31. MONO_API MonoMethod* mono_method_desc_search_in_class (MonoMethodDesc *desc, MonoClass *klass);
  32. MONO_API MonoMethod* mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image);
  33. MONO_API char* mono_method_full_name (MonoMethod *method, mono_bool signature);
  34. MONO_API char* mono_method_get_reflection_name (MonoMethod *method);
  35. MONO_API char* mono_field_full_name (MonoClassField *field);
  36. MONO_END_DECLS
  37. #endif /* __MONO_DEBUG_HELPERS_H__ */