Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
Macros | Typedefs | Functions
event.h File Reference

Debugging and tracing APIs. More...

#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"

Go to the source code of this file.

Macros

#define RUBY_EVENT_NONE   0x0000
 
#define RUBY_EVENT_LINE   0x0001
 
#define RUBY_EVENT_CLASS   0x0002
 
#define RUBY_EVENT_END   0x0004
 
#define RUBY_EVENT_CALL   0x0008
 
#define RUBY_EVENT_RETURN   0x0010
 
#define RUBY_EVENT_C_CALL   0x0020
 
#define RUBY_EVENT_C_RETURN   0x0040
 
#define RUBY_EVENT_RAISE   0x0080
 
#define RUBY_EVENT_ALL   0x00ff
 
#define RUBY_EVENT_B_CALL   0x0100
 
#define RUBY_EVENT_B_RETURN   0x0200
 
#define RUBY_EVENT_THREAD_BEGIN   0x0400
 
#define RUBY_EVENT_THREAD_END   0x0800
 
#define RUBY_EVENT_FIBER_SWITCH   0x1000
 
#define RUBY_EVENT_SCRIPT_COMPILED   0x2000
 
#define RUBY_EVENT_TRACEPOINT_ALL   0xffff
 
#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE   0x030000
 
#define RUBY_INTERNAL_EVENT_SWITCH   0x040000
 
#define RUBY_EVENT_SWITCH   0x040000 /* obsolete name. this macro is for compatibility */
 
#define RUBY_INTERNAL_EVENT_NEWOBJ   0x100000
 
#define RUBY_INTERNAL_EVENT_FREEOBJ   0x200000
 
#define RUBY_INTERNAL_EVENT_GC_START   0x400000
 
#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_OBJSPACE_MASK   0x7f00000
 
#define RUBY_INTERNAL_EVENT_MASK   0xffff0000
 
#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA   1
 

Typedefs

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)
 

Functions

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)
 

Detailed Description

Debugging and tracing APIs.

Author
Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org
Warning
Symbols prefixed with either RBIMPL or rbimpl are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will.
Note
To ruby-core: remember that this header can be possibly recursively included from extension libraries written in C++. Do not expect for instance __VA_ARGS__ is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98.

Definition in file event.h.

Macro Definition Documentation

◆ RB_EVENT_HOOKS_HAVE_CALLBACK_DATA

#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA   1

Definition at line 69 of file event.h.

◆ RUBY_EVENT_ALL

#define RUBY_EVENT_ALL   0x00ff

Definition at line 38 of file event.h.

◆ RUBY_EVENT_B_CALL

#define RUBY_EVENT_B_CALL   0x0100

Definition at line 41 of file event.h.

◆ RUBY_EVENT_B_RETURN

#define RUBY_EVENT_B_RETURN   0x0200

Definition at line 42 of file event.h.

◆ RUBY_EVENT_C_CALL

#define RUBY_EVENT_C_CALL   0x0020

Definition at line 35 of file event.h.

◆ RUBY_EVENT_C_RETURN

#define RUBY_EVENT_C_RETURN   0x0040

Definition at line 36 of file event.h.

◆ RUBY_EVENT_CALL

#define RUBY_EVENT_CALL   0x0008

Definition at line 33 of file event.h.

◆ RUBY_EVENT_CLASS

#define RUBY_EVENT_CLASS   0x0002

Definition at line 31 of file event.h.

◆ RUBY_EVENT_END

#define RUBY_EVENT_END   0x0004

Definition at line 32 of file event.h.

◆ RUBY_EVENT_FIBER_SWITCH

#define RUBY_EVENT_FIBER_SWITCH   0x1000

Definition at line 45 of file event.h.

◆ RUBY_EVENT_LINE

#define RUBY_EVENT_LINE   0x0001

Definition at line 30 of file event.h.

◆ RUBY_EVENT_NONE

#define RUBY_EVENT_NONE   0x0000

Definition at line 29 of file event.h.

◆ RUBY_EVENT_RAISE

#define RUBY_EVENT_RAISE   0x0080

Definition at line 37 of file event.h.

◆ RUBY_EVENT_RESERVED_FOR_INTERNAL_USE

#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE   0x030000

Definition at line 50 of file event.h.

◆ RUBY_EVENT_RETURN

#define RUBY_EVENT_RETURN   0x0010

Definition at line 34 of file event.h.

◆ RUBY_EVENT_SCRIPT_COMPILED

#define RUBY_EVENT_SCRIPT_COMPILED   0x2000

Definition at line 46 of file event.h.

◆ RUBY_EVENT_SWITCH

#define RUBY_EVENT_SWITCH   0x040000 /* obsolete name. this macro is for compatibility */

Definition at line 54 of file event.h.

◆ RUBY_EVENT_THREAD_BEGIN

#define RUBY_EVENT_THREAD_BEGIN   0x0400

Definition at line 43 of file event.h.

◆ RUBY_EVENT_THREAD_END

#define RUBY_EVENT_THREAD_END   0x0800

Definition at line 44 of file event.h.

◆ RUBY_EVENT_TRACEPOINT_ALL

#define RUBY_EVENT_TRACEPOINT_ALL   0xffff

Definition at line 47 of file event.h.

◆ RUBY_INTERNAL_EVENT_FREEOBJ

#define RUBY_INTERNAL_EVENT_FREEOBJ   0x200000

Definition at line 57 of file event.h.

◆ RUBY_INTERNAL_EVENT_GC_END_MARK

#define RUBY_INTERNAL_EVENT_GC_END_MARK   0x800000

Definition at line 59 of file event.h.

◆ RUBY_INTERNAL_EVENT_GC_END_SWEEP

#define RUBY_INTERNAL_EVENT_GC_END_SWEEP   0x1000000

Definition at line 60 of file event.h.

◆ RUBY_INTERNAL_EVENT_GC_ENTER

#define RUBY_INTERNAL_EVENT_GC_ENTER   0x2000000

Definition at line 61 of file event.h.

◆ RUBY_INTERNAL_EVENT_GC_EXIT

#define RUBY_INTERNAL_EVENT_GC_EXIT   0x4000000

Definition at line 62 of file event.h.

◆ RUBY_INTERNAL_EVENT_GC_START

#define RUBY_INTERNAL_EVENT_GC_START   0x400000

Definition at line 58 of file event.h.

◆ RUBY_INTERNAL_EVENT_MASK

#define RUBY_INTERNAL_EVENT_MASK   0xffff0000

Definition at line 64 of file event.h.

◆ RUBY_INTERNAL_EVENT_NEWOBJ

#define RUBY_INTERNAL_EVENT_NEWOBJ   0x100000

Definition at line 56 of file event.h.

◆ RUBY_INTERNAL_EVENT_OBJSPACE_MASK

#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK   0x7f00000

Definition at line 63 of file event.h.

◆ RUBY_INTERNAL_EVENT_SWITCH

#define RUBY_INTERNAL_EVENT_SWITCH   0x040000

Definition at line 53 of file event.h.

Typedef Documentation

◆ rb_event_flag_t

Definition at line 66 of file event.h.

◆ rb_event_hook_func_t

typedef void(* rb_event_hook_func_t) (rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass)

Definition at line 67 of file event.h.

Function Documentation

◆ rb_add_event_hook()

void rb_add_event_hook ( rb_event_hook_func_t  func,
rb_event_flag_t  events,
VALUE  data 
)

Definition at line 161 of file vm_trace.c.

◆ rb_remove_event_hook()

int rb_remove_event_hook ( rb_event_hook_func_t  func)

Definition at line 265 of file vm_trace.c.