Ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5ad0e4688e963d9de019557c78feed9)
debug.h
Go to the documentation of this file.
1/**********************************************************************
2
3 ruby/debug.h -
4
5 $Author: ko1 $
6 created at: Tue Nov 20 20:35:08 2012
7
8 Copyright (C) 2012 Yukihiro Matsumoto
9
10**********************************************************************/
11
12#ifndef RB_DEBUG_H
13#define RB_DEBUG_H 1
14
15#if defined(__cplusplus)
16extern "C" {
17#if 0
18} /* satisfy cc-mode */
19#endif
20#endif
21
23
24/* Note: This file contains experimental APIs. */
25/* APIs can be replaced at Ruby 2.0.1 or later */
26
27
28/* profile frames APIs */
29int rb_profile_frames(int start, int limit, VALUE *buff, int *lines);
40
41/* debug inspector APIs */
44
51
52/* Old style set_trace_func APIs */
53
54/* duplicated def of include/ruby/ruby.h */
57
62
63/* TracePoint APIs */
64
65VALUE rb_tracepoint_new(VALUE target_thread_not_supported_yet, rb_event_flag_t events, void (*func)(VALUE, void *), void *data);
69
72
85
86/*
87 * Postponed Job API
88 * rb_postponed_job_register and rb_postponed_job_register_one are
89 * async-signal-safe and used via SIGPROF by the "stackprof" RubyGem
90 */
92int rb_postponed_job_register(unsigned int flags, rb_postponed_job_func_t func, void *data);
93int rb_postponed_job_register_one(unsigned int flags, rb_postponed_job_func_t func, void *data);
94
95/* undocumented advanced tracing APIs */
96
97typedef enum {
102
105
107
108#if defined(__cplusplus)
109#if 0
110{ /* satisfy cc-mode */
111#endif
112} /* extern "C" { */
113#endif
114
115#endif /* RUBY_DEBUG_H */
VALUE rb_profile_frame_full_label(VALUE frame)
VALUE rb_tracearg_binding(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:913
void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
Definition: vm_trace.c:157
VALUE rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, long index)
VALUE rb_tracepoint_enabled_p(VALUE tpval)
Definition: vm_trace.c:1341
VALUE rb_tracearg_object(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:1014
VALUE rb_tracearg_callee_id(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:899
VALUE rb_profile_frame_method_name(VALUE frame)
VALUE rb_tracearg_defined_class(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:906
VALUE rb_tracepoint_new(VALUE target_thread_not_supported_yet, rb_event_flag_t events, void(*func)(VALUE, void *), void *data)
Definition: vm_trace.c:1400
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)
Definition: vm_trace.c:164
VALUE rb_tracearg_raised_exception(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:948
void rb_thread_add_event_hook(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
Definition: vm_trace.c:151
VALUE rb_profile_frame_qualified_method_name(VALUE frame)
VALUE rb_profile_frame_label(VALUE frame)
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)
Definition: vm_trace.c:170
VALUE rb_tracepoint_disable(VALUE tpval)
Definition: vm_trace.c:1227
int rb_remove_event_hook(rb_event_hook_func_t func)
Definition: vm_trace.c:262
VALUE rb_tracearg_self(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:927
int rb_thread_remove_event_hook(VALUE thval, rb_event_hook_func_t func)
Definition: vm_trace.c:250
VALUE rb_profile_frame_singleton_method_p(VALUE frame)
VALUE rb_debug_inspector_backtrace_locations(const rb_debug_inspector_t *dc)
VALUE rb_profile_frame_absolute_path(VALUE frame)
int rb_postponed_job_register_one(unsigned int flags, rb_postponed_job_func_t func, void *data)
Definition: vm_trace.c:1614
VALUE rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data)
VALUE rb_tracearg_return_value(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:933
rb_event_flag_t rb_tracearg_event_flag(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:798
VALUE rb_debug_inspector_frame_self_get(const rb_debug_inspector_t *dc, long index)
VALUE rb_tracearg_path(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:824
int rb_thread_remove_event_hook_with_data(VALUE thval, rb_event_hook_func_t func, VALUE data)
Definition: vm_trace.c:256
VALUE rb_tracepoint_enable(VALUE tpval)
Definition: vm_trace.c:1119
VALUE(* rb_debug_inspector_func_t)(const rb_debug_inspector_t *, void *)
Definition: debug.h:43
VALUE rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, long index)
rb_event_hook_flag_t
Definition: debug.h:97
@ RUBY_EVENT_HOOK_FLAG_DELETED
Definition: debug.h:99
@ RUBY_EVENT_HOOK_FLAG_SAFE
Definition: debug.h:98
@ RUBY_EVENT_HOOK_FLAG_RAW_ARG
Definition: debug.h:100
int rb_postponed_job_register(unsigned int flags, rb_postponed_job_func_t func, void *data)
Definition: vm_trace.c:1595
VALUE rb_tracearg_method_id(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:892
VALUE rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, long index)
int rb_remove_event_hook_with_data(rb_event_hook_func_t func, VALUE data)
Definition: vm_trace.c:268
VALUE rb_profile_frame_classpath(VALUE frame)
rb_trace_arg_t * rb_tracearg_from_tracepoint(VALUE tpval)
Definition: vm_trace.c:792
VALUE rb_profile_frame_path(VALUE frame)
RUBY_SYMBOL_EXPORT_BEGIN int rb_profile_frames(int start, int limit, VALUE *buff, int *lines)
VALUE rb_profile_frame_first_lineno(VALUE frame)
VALUE rb_tracearg_lineno(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:818
void(* rb_postponed_job_func_t)(void *arg)
Definition: debug.h:91
VALUE rb_profile_frame_base_label(VALUE frame)
VALUE rb_tracearg_event(rb_trace_arg_t *trace_arg)
Definition: vm_trace.c:804
#define RUBY_SYMBOL_EXPORT_BEGIN
unsigned long VALUE
void(* rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass)
#define RUBY_SYMBOL_EXPORT_END
uint32_t rb_event_flag_t