mbed I/F binding for mruby
Dependents: mruby_mbed_web mirb_mbed
debug.h
00001 /* 00002 ** mruby/debug.h - mruby debug info 00003 ** 00004 ** See Copyright Notice in mruby.h 00005 */ 00006 00007 #ifndef MRUBY_DEBUG_H 00008 #define MRUBY_DEBUG_H 00009 00010 #if defined(__cplusplus) 00011 extern "C" { 00012 #endif 00013 00014 typedef enum mrb_debug_line_type { 00015 mrb_debug_line_ary = 0, 00016 mrb_debug_line_flat_map = 1 00017 } mrb_debug_line_type; 00018 00019 typedef struct mrb_irep_debug_info_line { 00020 uint32_t start_pos; 00021 uint16_t line; 00022 } mrb_irep_debug_info_line; 00023 00024 typedef struct mrb_irep_debug_info_file { 00025 uint32_t start_pos; 00026 const char *filename; 00027 mrb_sym filename_sym; 00028 uint32_t line_entry_count; 00029 mrb_debug_line_type line_type; 00030 union { 00031 void *ptr; 00032 mrb_irep_debug_info_line *flat_map; 00033 uint16_t *ary; 00034 } lines; 00035 } mrb_irep_debug_info_file; 00036 00037 typedef struct mrb_irep_debug_info { 00038 uint32_t pc_count; 00039 uint16_t flen; 00040 mrb_irep_debug_info_file **files; 00041 } mrb_irep_debug_info; 00042 00043 /* 00044 * get line from irep's debug info and program counter 00045 * @return returns NULL if not found 00046 */ 00047 MRB_API const char *mrb_debug_get_filename(mrb_irep *irep, uint32_t pc); 00048 00049 /* 00050 * get line from irep's debug info and program counter 00051 * @return returns -1 if not found 00052 */ 00053 MRB_API int32_t mrb_debug_get_line(mrb_irep *irep, uint32_t pc); 00054 00055 MRB_API mrb_irep_debug_info_file *mrb_debug_info_append_file( 00056 mrb_state *mrb, mrb_irep *irep, 00057 uint32_t start_pos, uint32_t end_pos); 00058 MRB_API mrb_irep_debug_info *mrb_debug_info_alloc(mrb_state *mrb, mrb_irep *irep); 00059 MRB_API void mrb_debug_info_free(mrb_state *mrb, mrb_irep_debug_info *d); 00060 00061 #if defined(__cplusplus) 00062 } /* extern "C" { */ 00063 #endif 00064 00065 #endif /* MRUBY_DEBUG_H */ 00066
Generated on Tue Jul 12 2022 18:00:34 by 1.7.2