summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h b/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h
new file mode 100644
index 00000000..d1de3488
--- /dev/null
+++ b/web/server/h2o/libh2o/deps/mruby/include/mruby/debug.h
@@ -0,0 +1,66 @@
+/*
+** mruby/debug.h - mruby debug info
+**
+** See Copyright Notice in mruby.h
+*/
+
+#ifndef MRUBY_DEBUG_H
+#define MRUBY_DEBUG_H
+
+#include "common.h"
+
+/**
+ * MRuby Debugging.
+ */
+MRB_BEGIN_DECL
+
+typedef enum mrb_debug_line_type {
+ mrb_debug_line_ary = 0,
+ mrb_debug_line_flat_map = 1
+} mrb_debug_line_type;
+
+typedef struct mrb_irep_debug_info_line {
+ uint32_t start_pos;
+ uint16_t line;
+} mrb_irep_debug_info_line;
+
+typedef struct mrb_irep_debug_info_file {
+ uint32_t start_pos;
+ const char *filename;
+ mrb_sym filename_sym;
+ uint32_t line_entry_count;
+ mrb_debug_line_type line_type;
+ union {
+ void *ptr;
+ mrb_irep_debug_info_line *flat_map;
+ uint16_t *ary;
+ } lines;
+} mrb_irep_debug_info_file;
+
+typedef struct mrb_irep_debug_info {
+ uint32_t pc_count;
+ uint16_t flen;
+ mrb_irep_debug_info_file **files;
+} mrb_irep_debug_info;
+
+/*
+ * get line from irep's debug info and program counter
+ * @return returns NULL if not found
+ */
+MRB_API const char *mrb_debug_get_filename(mrb_irep *irep, ptrdiff_t pc);
+
+/*
+ * get line from irep's debug info and program counter
+ * @return returns -1 if not found
+ */
+MRB_API int32_t mrb_debug_get_line(mrb_irep *irep, ptrdiff_t pc);
+
+MRB_API mrb_irep_debug_info_file *mrb_debug_info_append_file(
+ mrb_state *mrb, mrb_irep *irep,
+ uint32_t start_pos, uint32_t end_pos);
+MRB_API mrb_irep_debug_info *mrb_debug_info_alloc(mrb_state *mrb, mrb_irep *irep);
+MRB_API void mrb_debug_info_free(mrb_state *mrb, mrb_irep_debug_info *d);
+
+MRB_END_DECL
+
+#endif /* MRUBY_DEBUG_H */