ruby-changes:25708
From: ko1 <ko1@a...>
Date: Tue, 20 Nov 2012 21:58:01 +0900 (JST)
Subject: [ruby-changes:25708] ko1:r37765 (trunk): * include/ruby/debug.h: introdudced.
ko1 2012-11-20 21:57:49 +0900 (Tue, 20 Nov 2012) New Revision: 37765 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37765 Log: * include/ruby/debug.h: introdudced. Debugging/profiling features will be located. * vm_trace.c: expose C-level TracePoint APIs. Note that they are experimental. * vm_trace.c, include/ruby/debug.h: rename `rb_hook_flag_t' to `rb_event_hook_flag_t'. Macro names `RUBY_HOOK_FLAG_*' are also renamed to `RUBY_EVENT_HOOK_FLAG_*'. * debug.h, vm_debug.h: rename debug.h to vm_debug.h. * common.mk: ditto. * debug.c, main.c, vm_core.h: ditto. Added files: trunk/include/ruby/debug.h trunk/vm_debug.h Removed files: trunk/debug.h Modified files: trunk/ChangeLog trunk/common.mk trunk/debug.c trunk/main.c trunk/vm_core.h trunk/vm_trace.c Index: debug.h =================================================================== --- debug.h (revision 37764) +++ debug.h (revision 37765) @@ -1,41 +0,0 @@ -/********************************************************************** - - debug.h - YARV Debug function interface - - $Author$ - created at: 04/08/25 02:33:49 JST - - Copyright (C) 2004-2007 Koichi Sasada - -**********************************************************************/ - -#ifndef RUBY_DEBUG_H -#define RUBY_DEBUG_H - -#include "ruby/ruby.h" -#include "node.h" - -#if defined __GNUC__ && __GNUC__ >= 4 -#pragma GCC visibility push(default) -#endif - -#define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v)) -#define dp(v) ruby_debug_print_value(-1, 0, "", (v)) -#define dpi(i) ruby_debug_print_id(-1, 0, "", (i)) -#define dpn(n) ruby_debug_print_node(-1, 0, "", (n)) - -#define bp() ruby_debug_breakpoint() - -VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v); -ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id); -NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node); -int ruby_debug_print_indent(int level, int debug_level, int indent_level); -void ruby_debug_breakpoint(void); -void ruby_debug_gc_check_func(void); -void ruby_set_debug_option(const char *str); - -#if defined __GNUC__ && __GNUC__ >= 4 -#pragma GCC visibility pop -#endif - -#endif /* RUBY_DEBUG_H */ Index: debug.c =================================================================== --- debug.c (revision 37764) +++ debug.c (revision 37765) @@ -12,7 +12,7 @@ #include "ruby/ruby.h" #include "ruby/encoding.h" #include "ruby/util.h" -#include "debug.h" +#include "vm_debug.h" #include "eval_intern.h" #include "vm_core.h" #include "id.h" Index: include/ruby/debug.h =================================================================== --- include/ruby/debug.h (revision 0) +++ include/ruby/debug.h (revision 37765) @@ -0,0 +1,75 @@ +/********************************************************************** + + ruby/debug.h - + + $Author: ko1 $ + created at: Tue Nov 20 20:35:08 2012 + + Copyright (C) 2012 Yukihiro Matsumoto + +**********************************************************************/ + +#ifndef RB_DEBUG_H +#define RB_DEBUG_H 1 + +#if defined(__cplusplus) +extern "C" { +#if 0 +} /* satisfy cc-mode */ +#endif +#endif + +#if defined __GNUC__ && __GNUC__ >= 4 +#pragma GCC visibility push(default) +#endif + +/* Note: This file contains experimental APIs. */ +/* APIs can be replaced at Ruby 2.0.1 or later */ + +typedef enum { + RUBY_EVENT_HOOK_FLAG_SAFE = 0x01, + RUBY_EVENT_HOOK_FLAG_DELETED = 0x02, + RUBY_EVENT_HOOK_FLAG_RAW_ARG = 0x04 +} rb_event_hook_flag_t; + +/* Safe API. Callback will be called under PUSH_TAG() */ +void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); +int rb_remove_event_hook(rb_event_hook_func_t func); +int rb_remove_event_hook_with_data(rb_event_hook_func_t func, VALUE data); +void rb_thread_add_event_hook(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); +int rb_thread_remove_event_hook(VALUE thval, rb_event_hook_func_t func); +int rb_thread_remove_event_hook_with_data(VALUE thval, rb_event_hook_func_t func, VALUE data); + +/* advanced version */ +void rb_add_event_hook2(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flag); +void rb_thread_add_event_hook2(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flag); + +/* TracePoint APIs */ + +VALUE rb_tracepoint_new(VALUE target_thread_not_supported_yet, rb_event_flag_t events, void (*func)(VALUE, void *), void *data); +VALUE rb_tracepoint_enable(VALUE tpval); +VALUE rb_tracepoint_disable(VALUE tpval); +VALUE rb_tracepoint_enabled_p(VALUE tpval); + +VALUE rb_tracepoint_attr_event(VALUE tpval); +VALUE rb_tracepoint_attr_line(VALUE tpval); +VALUE rb_tracepoint_attr_file(VALUE tpval); +VALUE rb_tracepoint_attr_id(VALUE tpval); +VALUE rb_tracepoint_attr_klass(VALUE tpval); +VALUE rb_tracepoint_attr_binding(VALUE tpval); +VALUE rb_tracepoint_attr_self(VALUE tpval); +VALUE rb_tracepoint_attr_return_value(VALUE tpval); +VALUE rb_tracepoint_attr_raised_exception(VALUE tpval); + +#if defined __GNUC__ && __GNUC__ >= 4 +#pragma GCC visibility pop +#endif + +#if defined(__cplusplus) +#if 0 +{ /* satisfy cc-mode */ +#endif +} /* extern "C" { */ +#endif + +#endif /* RUBY_DEBUG_H */ Index: ChangeLog =================================================================== --- ChangeLog (revision 37764) +++ ChangeLog (revision 37765) @@ -1,3 +1,22 @@ +Tue Nov 20 21:41:04 2012 Koichi Sasada <ko1@a...> + + * include/ruby/debug.h: introdudced. + Debugging/profiling features will be located. + + * vm_trace.c: expose C-level TracePoint APIs. + Note that they are experimental. + + * vm_trace.c, include/ruby/debug.h: rename `rb_hook_flag_t' + to `rb_event_hook_flag_t'. + Macro names `RUBY_HOOK_FLAG_*' are also renamed to + `RUBY_EVENT_HOOK_FLAG_*'. + + * debug.h, vm_debug.h: rename debug.h to vm_debug.h. + + * common.mk: ditto. + + * debug.c, main.c, vm_core.h: ditto. + Tue Nov 20 21:12:37 2012 NARUSE, Yui <naruse@r...> * configure.in (RUBY_DTRACE_AVAILABLE): only check dtrace availability. Index: vm_debug.h =================================================================== --- vm_debug.h (revision 0) +++ vm_debug.h (revision 37765) @@ -0,0 +1,41 @@ +/********************************************************************** + + vm_debug.h - YARV Debug function interface + + $Author$ + created at: 04/08/25 02:33:49 JST + + Copyright (C) 2004-2007 Koichi Sasada + +**********************************************************************/ + +#ifndef RUBY_DEBUG_H +#define RUBY_DEBUG_H + +#include "ruby/ruby.h" +#include "node.h" + +#if defined __GNUC__ && __GNUC__ >= 4 +#pragma GCC visibility push(default) +#endif + +#define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v)) +#define dp(v) ruby_debug_print_value(-1, 0, "", (v)) +#define dpi(i) ruby_debug_print_id(-1, 0, "", (i)) +#define dpn(n) ruby_debug_print_node(-1, 0, "", (n)) + +#define bp() ruby_debug_breakpoint() + +VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v); +ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id); +NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node); +int ruby_debug_print_indent(int level, int debug_level, int indent_level); +void ruby_debug_breakpoint(void); +void ruby_debug_gc_check_func(void); +void ruby_set_debug_option(const char *str); + +#if defined __GNUC__ && __GNUC__ >= 4 +#pragma GCC visibility pop +#endif + +#endif /* RUBY_DEBUG_H */ Property changes on: vm_debug.h ___________________________________________________________________ Added: svn:eol-style + LF Added: svn:keywords + Author Index: vm_core.h =================================================================== --- vm_core.h (revision 37764) +++ vm_core.h (revision 37765) @@ -18,7 +18,7 @@ #include "ruby/st.h" #include "node.h" -#include "debug.h" +#include "vm_debug.h" #include "vm_opts.h" #include "id.h" #include "method.h" Index: common.mk =================================================================== --- common.mk (revision 37764) +++ common.mk (revision 37765) @@ -612,7 +612,7 @@ PROBES_H_INCLUDES = {$(VPATH)}probes.h VM_CORE_H_INCLUDES = {$(VPATH)}vm_core.h {$(VPATH)}thread_$(THREAD_MODEL).h \ {$(VPATH)}node.h {$(VPATH)}method.h {$(VPATH)}ruby_atomic.h \ - $(ID_H_INCLUDES) + {$(VPATH)}vm_debug.h $(ID_H_INCLUDES) addr2line.$(OBJEXT): {$(VPATH)}addr2line.c {$(VPATH)}addr2line.h {$(VPATH)}config.h array.$(OBJEXT): {$(VPATH)}array.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ @@ -620,8 +620,7 @@ bignum.$(OBJEXT): {$(VPATH)}bignum.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ {$(VPATH)}thread.h {$(VPATH)}internal.h class.$(OBJEXT): {$(VPATH)}class.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h \ - {$(VPATH)}constant.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h {$(VPATH)}constant.h compar.$(OBJEXT): {$(VPATH)}compar.c $(RUBY_H_INCLUDES) complex.$(OBJEXT): {$(VPATH)}complex.c $(RUBY_H_INCLUDES) \ {$(VPATH)}internal.h @@ -644,23 +643,21 @@ {$(VPATH)}internal.h error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}known_errors.inc \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) $(ENCODING_H_INCLUDES) \ - {$(VPATH)}debug.h \ {$(VPATH)}internal.h eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}eval_intern.h {$(VPATH)}vm.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_error.c \ - {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}gc.h {$(VPATH)}iseq.h \ + {$(VPATH)}eval_jump.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h $(PROBES_H_INCLUDES) load.$(OBJEXT): {$(VPATH)}load.c {$(VPATH)}eval_intern.h \ {$(VPATH)}util.h $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}dln.h {$(VPATH)}debug.h \ - {$(VPATH)}internal.h $(PROBES_H_INCLUDES) + {$(VPATH)}dln.h {$(VPATH)}internal.h $(PROBES_H_INCLUDES) file.$(OBJEXT): {$(VPATH)}file.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}dln.h \ {$(VPATH)}internal.h gc.$(OBJEXT): {$(VPATH)}gc.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \ {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) \ {$(VPATH)}gc.h {$(VPATH)}io.h {$(VPATH)}eval_intern.h {$(VPATH)}util.h \ - {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}constant.h \ + {$(VPATH)}internal.h {$(VPATH)}constant.h \ {$(VPATH)}thread.h $(PROBES_H_INCLUDES) hash.$(OBJEXT): {$(VPATH)}hash.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h $(PROBES_H_INCLUDES) @@ -669,14 +666,13 @@ io.$(OBJEXT): {$(VPATH)}io.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \ {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h \ {$(VPATH)}internal.h {$(VPATH)}thread.h -main.$(OBJEXT): {$(VPATH)}main.c $(RUBY_H_INCLUDES) {$(VPATH)}debug.h \ - {$(VPATH)}node.h +main.$(OBJEXT): {$(VPATH)}main.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h {$(VPATH)}vm_debug.h marshal.$(OBJEXT): {$(VPATH)}marshal.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}internal.h math.$(OBJEXT): {$(VPATH)}math.c $(RUBY_H_INCLUDES) \ {$(VPATH)}internal.h node.$(OBJEXT): {$(VPATH)}node.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) numeric.$(OBJEXT): {$(VPATH)}numeric.c $(RUBY_H_INCLUDES) \ {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h object.$(OBJEXT): {$(VPATH)}object.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ @@ -691,10 +687,10 @@ {$(VPATH)}internal.h $(PROBES_H_INCLUDES) proc.$(OBJEXT): {$(VPATH)}proc.c {$(VPATH)}eval_intern.h \ $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}iseq.h + {$(VPATH)}internal.h {$(VPATH)}iseq.h process.$(OBJEXT): {$(VPATH)}process.c $(RUBY_H_INCLUDES) \ {$(VPATH)}util.h {$(VPATH)}io.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h \ + $(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h \ {$(VPATH)}thread.h random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES) \ {$(VPATH)}siphash.c {$(VPATH)}siphash.h @@ -720,11 +716,10 @@ {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES) ruby.$(OBJEXT): {$(VPATH)}ruby.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ $(ENCODING_H_INCLUDES) {$(VPATH)}eval_intern.h $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}dln.h {$(VPATH)}debug.h {$(VPATH)}internal.h -safe.$(OBJEXT): {$(VPATH)}safe.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + {$(VPATH)}dln.h {$(VPATH)}internal.h +safe.$(OBJEXT): {$(VPATH)}safe.c $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) signal.$(OBJEXT): {$(VPATH)}signal.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h + $(VM_CORE_H_INCLUDES) sprintf.$(OBJEXT): {$(VPATH)}sprintf.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \ {$(VPATH)}regex.h {$(VPATH)}vsnprintf.c $(ENCODING_H_INCLUDES) st.$(OBJEXT): {$(VPATH)}st.c $(RUBY_H_INCLUDES) @@ -735,13 +730,13 @@ struct.$(OBJEXT): {$(VPATH)}struct.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h thread.$(OBJEXT): {$(VPATH)}thread.c {$(VPATH)}eval_intern.h \ $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \ - {$(VPATH)}debug.h {$(VPATH)}thread_$(THREAD_MODEL).c $(ENCODING_H_INCLUDES) \ + {$(VPATH)}thread_$(THREAD_MODEL).c $(ENCODING_H_INCLUDES) \ {$(VPATH)}internal.h {$(VPATH)}io.h {$(VPATH)}thread.h transcode.$(OBJEXT): {$(VPATH)}transcode.c $(RUBY_H_INCLUDES) \ $(ENCODING_H_INCLUDES) {$(VPATH)}transcode_data.h {$(VPATH)}internal.h cont.$(OBJEXT): {$(VPATH)}cont.c $(RUBY_H_INCLUDES) \ $(VM_CORE_H_INCLUDES) {$(VPATH)}gc.h {$(VPATH)}eval_intern.h \ - {$(VPATH)}debug.h {$(VPATH)}internal.h + {$(VPATH)}internal.h time.$(OBJEXT): {$(VPATH)}time.c $(RUBY_H_INCLUDES) \ $(ENCODING_H_INCLUDES) {$(VPATH)}timev.h {$(VPATH)}internal.h util.$(OBJEXT): {$(VPATH)}util.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \ @@ -756,41 +751,41 @@ compile.$(OBJEXT): {$(VPATH)}compile.c {$(VPATH)}iseq.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \ - {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc {$(VPATH)}debug.h \ + {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc \ {$(VPATH)}optunifs.inc {$(VPATH)}opt_sc.inc {$(VPATH)}insns.inc \ {$(VPATH)}internal.h iseq.$(OBJEXT): {$(VPATH)}iseq.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \ $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \ - {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h {$(VPATH)}internal.h + {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}internal.h vm.$(OBJEXT): {$(VPATH)}vm.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \ {$(VPATH)}eval_intern.h $(RUBY_H_INCLUDES) $(ENCODING_H_INCLUDES) \ $(VM_CORE_H_INCLUDES) {$(VPATH)}vm_method.c {$(VPATH)}vm_eval.c \ {$(VPATH)}vm_insnhelper.c {$(VPATH)}vm_insnhelper.h {$(VPATH)}vm_exec.c \ {$(VPATH)}vm_exec.h {$(VPATH)}insns.def {$(VPATH)}vmtc.inc \ - {$(VPATH)}vm.inc {$(VPATH)}insns.inc {$(VPATH)}debug.h \ + {$(VPATH)}vm.inc {$(VPATH)}insns.inc \ {$(VPATH)}internal.h {$(VPATH)}vm.h {$(VPATH)}constant.h \ $(PROBES_H_INCLUDES) {$(VPATH)}probes_helper.h vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}addr2line.h \ + $(VM_CORE_H_INCLUDES) {$(VPATH)}addr2line.h \ {$(VPATH)}internal.h debug.$(OBJEXT): {$(VPATH)}debug.c $(RUBY_H_INCLUDES) \ $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_intern.h \ - {$(VPATH)}util.h {$(VPATH)}debug.h + {$(VPATH)}util.h id.$(OBJEXT): {$(VPATH)}id.c $(RUBY_H_INCLUDES) $(ID_H_INCLUDES) {$(VPATH)}vm_opts.h vm_backtrace.$(OBJEXT): {$(VPATH)}vm_backtrace.c \ $(VM_CORE_H_INCLUDES) $(RUBY_H_INCLUDES) $(ENCODING_H_INCLUDES) \ {$(VPATH)}internal.h {$(VPATH)}iseq.h vm_trace.$(OBJEXT): {$(VPATH)}vm_trace.c $(ENCODING_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) $(RUBY_H_INCLUDES) \ + $(VM_CORE_H_INCLUDES) $(RUBY_H_INCLUDES) {$(VPATH)}debug.h \ {$(VPATH)}internal.h miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h prelude.$(OBJEXT): {$(VPATH)}prelude.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c $(RUBY_H_INCLUDES) \ - $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h + $(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h goruby.$(OBJEXT): {$(VPATH)}goruby.c {$(VPATH)}main.c $(RUBY_H_INCLUDES) \ - {$(VPATH)}debug.h {$(VPATH)}node.h + {$(VPATH)}vm_debug.h {$(VPATH)}node.h ascii.$(OBJEXT): {$(VPATH)}ascii.c {$(VPATH)}regenc.h {$(VPATH)}config.h \ {$(VPATH)}oniguruma.h {$(VPATH)}missing.h $(RUBY_H_INCLUDES) Index: main.c =================================================================== --- main.c (revision 37764) +++ main.c (revision 37765) @@ -11,7 +11,7 @@ #undef RUBY_EXPORT #include "ruby.h" -#include "debug.h" +#include "vm_debug.h" #ifdef HAVE_LOCALE_H #include <locale.h> #endif Index: vm_trace.c =================================================================== --- vm_trace.c (revision 37764) +++ vm_trace.c (revision 37765) @@ -22,6 +22,7 @@ */ #include "ruby/ruby.h" +#include "ruby/debug.h" #include "ruby/encoding.h" #include "internal.h" @@ -30,14 +31,8 @@ /* (1) trace mechanisms */ -typedef enum { - RUBY_HOOK_FLAG_SAFE = 0x01, - RUBY_HOOK_FLAG_DELETED = 0x02, - RUBY_HOOK_FLAG_RAW_ARG = 0x04 -} rb_hook_flag_t; - typedef struct rb_event_hook_struct { - rb_hook_flag_t hook_flags; + rb_event_hook_flag_t hook_flags; rb_event_flag_t events; rb_event_hook_func_t func; VALUE data; @@ -50,18 +45,6 @@ static int ruby_event_flag_count[MAX_EVENT_NUM] = {0}; -/* Safe API. Callback will be called under PUSH_TAG() */ -void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); -int rb_remove_event_hook(rb_event_hook_func_t func); -int rb_remove_event_hook_with_data(rb_event_hook_func_t func, VALUE data); -void rb_thread_add_event_hook(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data); -int rb_thread_remove_event_hook(VALUE thval, rb_event_hook_func_t func); -int rb_thread_remove_event_hook_with_data(VALUE thval, rb_event_hook_func_t func, VALUE data); - -/* advanced version */ -void rb_add_event_hook2(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_hook_flag_t hook_flag); -void rb_thread_add_event_hook2(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_hook_flag_t hook_flag); - /* called from vm.c */ void @@ -116,7 +99,7 @@ } static rb_event_hook_t * -alloc_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_hook_flag_t hook_flags) +alloc_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flags) { rb_event_hook_t *hook = ALLOC(rb_event_hook_t); hook->hook_flags = hook_flags; @@ -136,7 +119,7 @@ } static void -rb_threadptr_add_event_hook(rb_thread_t *th, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_hook_flag_t hook_flags) +rb_threadptr_add_event_hook(rb_thread_t *th, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flags) { rb_event_hook_t *hook = alloc_event_hook(func, events, data, hook_flags); connect_event_hook(&th->event_hooks, hook); @@ -145,24 +128,24 @@ void rb_thread_add_event_hook(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data) { - rb_threadptr_add_event_hook(thval2thread_t(thval), func, events, data, RUBY_HOOK_FLAG_SAFE); + rb_threadptr_add_event_hook(thval2thread_t(thval), func, events, data, RUBY_EVENT_HOOK_FLAG_SAFE); } void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data) { - rb_event_hook_t *hook = alloc_event_hook(func, events, data, RUBY_HOOK_FLAG_SAFE); + rb_event_hook_t *hook = alloc_event_hook(func, events, data, RUBY_EVENT_HOOK_FLAG_SAFE); connect_event_hook(&GET_VM()->event_hooks, hook); } void -rb_thread_add_event_hook2(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_hook_flag_t hook_flags) +rb_thread_add_event_hook2(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flags) { rb_threadptr_add_event_hook(thval2thread_t(thval), func, events, data, hook_flags); } void -rb_add_event_h (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/