|
Ruby 3.4.5p51 (2025-07-16 revision 20cda200d3ce092571d0b5d342dadca69636cb0f)
|
Debugging and tracing APIs. More...
Go to the source code of this file.
Macros | |
| #define | RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1 |
Traditional set_trace_func events | |
| #define | RUBY_EVENT_NONE 0x0000 |
| No events. | |
| #define | RUBY_EVENT_LINE 0x0001 |
| Encountered a new line. | |
| #define | RUBY_EVENT_CLASS 0x0002 |
| Encountered a new class. | |
| #define | RUBY_EVENT_END 0x0004 |
| Encountered an end of a class clause. | |
| #define | RUBY_EVENT_CALL 0x0008 |
| A method, written in Ruby, is called. | |
| #define | RUBY_EVENT_RETURN 0x0010 |
| Encountered a return statement. | |
| #define | RUBY_EVENT_C_CALL 0x0020 |
| A method, written in C, is called. | |
| #define | RUBY_EVENT_C_RETURN 0x0040 |
| Return from a method, written in C. | |
| #define | RUBY_EVENT_RAISE 0x0080 |
| Encountered a raise statement. | |
| #define | RUBY_EVENT_ALL 0x00ff |
| Bitmask of traditional events. | |
TracePoint extended events | |
| #define | RUBY_EVENT_B_CALL 0x0100 |
| Encountered an yield statement. | |
| #define | RUBY_EVENT_B_RETURN 0x0200 |
| Encountered a next statement. | |
| #define | RUBY_EVENT_THREAD_BEGIN 0x0400 |
| Encountered a new thread. | |
| #define | RUBY_EVENT_THREAD_END 0x0800 |
| Encountered an end of a thread. | |
| #define | RUBY_EVENT_FIBER_SWITCH 0x1000 |
| Encountered a Fiber#yield. | |
| #define | RUBY_EVENT_SCRIPT_COMPILED 0x2000 |
| Encountered an eval. | |
| #define | RUBY_EVENT_RESCUE 0x4000 |
| Encountered a rescue statement. | |
| #define | RUBY_EVENT_TRACEPOINT_ALL 0xffff |
| Bitmask of extended events. | |
Special events | |
| #define | RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 |
| Opaque bits. | |
Internal events | |
@shyouhei 's understanding is that some of them are visible from extension libraries because of ext/objspace. But it seems that doesn't describe everything? The ultimate reason why they are here remains unclear. | |
| #define | RUBY_INTERNAL_EVENT_SWITCH 0x040000 |
| Thread switched. | |
| #define | RUBY_EVENT_SWITCH 0x040000 |
| Old name of RUBY_INTERNAL_EVENT_SWITCH. | |
| #define | RUBY_INTERNAL_EVENT_NEWOBJ 0x100000 |
| Object allocated. | |
| #define | RUBY_INTERNAL_EVENT_FREEOBJ 0x200000 |
| Object swept. | |
| #define | RUBY_INTERNAL_EVENT_GC_START 0x400000 |
| GC started. | |
| #define | RUBY_INTERNAL_EVENT_GC_END_MARK 0x800000 |
| GC ended mark phase. | |
| #define | RUBY_INTERNAL_EVENT_GC_END_SWEEP 0x1000000 |
| GC ended sweep phase. | |
| #define | RUBY_INTERNAL_EVENT_GC_ENTER 0x2000000 |
| gc_enter() is called. | |
| #define | RUBY_INTERNAL_EVENT_GC_EXIT 0x4000000 |
| gc_exit() is called. | |
| #define | RUBY_INTERNAL_EVENT_OBJSPACE_MASK 0x7f00000 |
| Bitmask of GC events. | |
| #define | RUBY_INTERNAL_EVENT_MASK 0xffff0000 |
| Bitmask of internal events. | |
Typedefs | |
| typedef uint32_t | rb_event_flag_t |
| Represents event(s). | |
| typedef void(* | rb_event_hook_func_t) (rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass) |
| Type of event hooks. | |
Functions | |
| void | rb_add_event_hook (rb_event_hook_func_t func, rb_event_flag_t events, VALUE data) |
| Registers an event hook function. | |
| int | rb_remove_event_hook (rb_event_hook_func_t func) |
| Removes the passed function from the list of event hooks. | |
Debugging and tracing APIs.
Definition in file event.h.
| #define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1 |
| #define RUBY_EVENT_B_CALL 0x0100 |
| #define RUBY_EVENT_B_RETURN 0x0200 |
Encountered a next statement.
Definition at line 56 of file event.h.
Referenced by rb_tracearg_return_value().
| #define RUBY_EVENT_C_CALL 0x0020 |
A method, written in C, is called.
Definition at line 43 of file event.h.
Referenced by rb_tracearg_binding().
| #define RUBY_EVENT_C_RETURN 0x0040 |
Return from a method, written in C.
Definition at line 44 of file event.h.
Referenced by rb_tracearg_binding(), and rb_tracearg_return_value().
| #define RUBY_EVENT_CALL 0x0008 |
| #define RUBY_EVENT_END 0x0004 |
| #define RUBY_EVENT_FIBER_SWITCH 0x1000 |
| #define RUBY_EVENT_RAISE 0x0080 |
Encountered a raise statement.
Definition at line 45 of file event.h.
Referenced by rb_tracearg_raised_exception().
| #define RUBY_EVENT_RESCUE 0x4000 |
Encountered a rescue statement.
Definition at line 61 of file event.h.
Referenced by rb_tracearg_raised_exception().
| #define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 |
| #define RUBY_EVENT_RETURN 0x0010 |
Encountered a return statement.
Definition at line 42 of file event.h.
Referenced by rb_tracearg_return_value().
| #define RUBY_EVENT_SCRIPT_COMPILED 0x2000 |
| #define RUBY_EVENT_THREAD_BEGIN 0x0400 |
| #define RUBY_EVENT_THREAD_END 0x0800 |
| #define RUBY_EVENT_TRACEPOINT_ALL 0xffff |
| #define RUBY_INTERNAL_EVENT_FREEOBJ 0x200000 |
| #define RUBY_INTERNAL_EVENT_GC_END_MARK 0x800000 |
| #define RUBY_INTERNAL_EVENT_GC_END_SWEEP 0x1000000 |
| #define RUBY_INTERNAL_EVENT_GC_ENTER 0x2000000 |
| #define RUBY_INTERNAL_EVENT_GC_EXIT 0x4000000 |
| #define RUBY_INTERNAL_EVENT_MASK 0xffff0000 |
| #define RUBY_INTERNAL_EVENT_NEWOBJ 0x100000 |
| #define RUBY_INTERNAL_EVENT_OBJSPACE_MASK 0x7f00000 |
| typedef uint32_t rb_event_flag_t |
| typedef void(* rb_event_hook_func_t) (rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass) |
Type of event hooks.
When an event happens registered functions are kicked with appropriate parameters.
| [in] | evflag | The kind of event that happened. |
| [in] | data | The data passed to rb_add_event_hook(). |
| [in] | self | Current receiver. |
| [in] | mid | Name of the current method. |
| [in] | klass | Current class. |
| void rb_add_event_hook | ( | rb_event_hook_func_t | func, |
| rb_event_flag_t | events, | ||
| VALUE | data ) |
Registers an event hook function.
| [in] | func | A callback. |
| [in] | events | A set of events that func should run. |
| [in] | data | Passed as-is to func. |
Definition at line 207 of file vm_trace.c.
Referenced by rb_add_event_hook().
| int rb_remove_event_hook | ( | rb_event_hook_func_t | func | ) |
Removes the passed function from the list of event hooks.
| [in] | func | A callback. |
Definition at line 315 of file vm_trace.c.
Referenced by rb_remove_event_hook().