Ruby: include/ruby/internal/event.h File Reference

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

Copyright
  This file is a part of the programming language Ruby. Permission is hereby granted, to either redistribute and/or modify this file, provided that the conditions mentioned in the file COPYING are met. Consult the file for details.

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

typedef uint32_t 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.