summaryrefslogtreecommitdiffhomepage
path: root/include/mruby.h
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-06-15 13:32:15 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-06-15 13:32:15 +0900
commitbb1bfaa2fbc693a7185226737022d5d74b97a1de (patch)
tree89634199960195d18ecb739232dfd06f8bc29034 /include/mruby.h
parentb979226871ab4a0f9977720d2a1fbf278d446cd3 (diff)
downloadmruby-bb1bfaa2fbc693a7185226737022d5d74b97a1de.tar.gz
mruby-bb1bfaa2fbc693a7185226737022d5d74b97a1de.zip
Add helper functions to use gdb reverse-next.
On my machine, gdb reverse-next does not work with memcpy and memset. Add naive implementation of those functions to override.
Diffstat (limited to 'include/mruby.h')
-rw-r--r--include/mruby.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/mruby.h b/include/mruby.h
index bd824ea91..995e1a743 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -1178,6 +1178,33 @@ MRB_API void mrb_show_copyright(mrb_state *mrb);
MRB_API mrb_value mrb_format(mrb_state *mrb, const char *format, ...);
+#if 0
+/* memcpy and memset does not work with gdb reverse-next on my box */
+/* use naive memcpy and memset instead */
+#undef memcpy
+#undef memset
+static inline void*
+mrbmemcpy(void *dst, const void *src, size_t n)
+{
+ char *d = dst;
+ const char *s = src;
+ while (n--)
+ *d++ = *s++;
+ return d;
+}
+#define memcpy(a,b,c) mrbmemcpy(a,b,c)
+
+static inline void*
+mrbmemset(void *s, int c, size_t n)
+{
+ char *t = s;
+ while (n--)
+ *t++ = c;
+ return s;
+}
+#define memset(a,b,c) mrbmemset(a,b,c)
+#endif
+
MRB_END_DECL
#endif /* MRUBY_H */