Ruby
2.1.3p242(2014-09-19revision47630)
Main Page
Modules
Data Structures
Files
File List
Globals
include
ruby
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)
16
extern
"C"
{
17
#if 0
18
}
/* satisfy cc-mode */
19
#endif
20
#endif
21
22
RUBY_SYMBOL_EXPORT_BEGIN
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 */
29
int
rb_profile_frames
(
int
start,
int
limit,
VALUE
*buff,
int
*lines);
30
VALUE
rb_profile_frame_path
(
VALUE
frame);
31
VALUE
rb_profile_frame_absolute_path
(
VALUE
frame);
32
VALUE
rb_profile_frame_label
(
VALUE
frame);
33
VALUE
rb_profile_frame_base_label
(
VALUE
frame);
34
VALUE
rb_profile_frame_full_label
(
VALUE
frame);
35
VALUE
rb_profile_frame_first_lineno
(
VALUE
frame);
36
VALUE
rb_profile_frame_classpath
(
VALUE
frame);
37
VALUE
rb_profile_frame_singleton_method_p
(
VALUE
frame);
38
VALUE
rb_profile_frame_method_name
(
VALUE
frame);
39
VALUE
rb_profile_frame_qualified_method_name
(
VALUE
frame);
40
41
/* debug inspector APIs */
42
typedef
struct
rb_debug_inspector_struct
rb_debug_inspector_t
;
43
typedef
VALUE
(*
rb_debug_inspector_func_t
)(
const
rb_debug_inspector_t
*,
void
*);
44
45
VALUE
rb_debug_inspector_open
(
rb_debug_inspector_func_t
func
,
void
*data);
46
VALUE
rb_debug_inspector_frame_self_get
(
const
rb_debug_inspector_t
*dc,
long
index);
47
VALUE
rb_debug_inspector_frame_class_get
(
const
rb_debug_inspector_t
*dc,
long
index);
48
VALUE
rb_debug_inspector_frame_binding_get
(
const
rb_debug_inspector_t
*dc,
long
index);
49
VALUE
rb_debug_inspector_frame_iseq_get
(
const
rb_debug_inspector_t
*dc,
long
index);
50
VALUE
rb_debug_inspector_backtrace_locations
(
const
rb_debug_inspector_t
*dc);
51
52
/* Old style set_trace_func APIs */
53
54
/* duplicated def of include/ruby/ruby.h */
55
void
rb_add_event_hook
(
rb_event_hook_func_t
func
,
rb_event_flag_t
events,
VALUE
data);
56
int
rb_remove_event_hook
(
rb_event_hook_func_t
func
);
57
58
int
rb_remove_event_hook_with_data
(
rb_event_hook_func_t
func
,
VALUE
data);
59
void
rb_thread_add_event_hook
(
VALUE
thval,
rb_event_hook_func_t
func
,
rb_event_flag_t
events,
VALUE
data);
60
int
rb_thread_remove_event_hook
(
VALUE
thval,
rb_event_hook_func_t
func
);
61
int
rb_thread_remove_event_hook_with_data
(
VALUE
thval,
rb_event_hook_func_t
func
,
VALUE
data);
62
63
/* TracePoint APIs */
64
65
VALUE
rb_tracepoint_new
(
VALUE
target_thread_not_supported_yet,
rb_event_flag_t
events,
void
(*
func
)(
VALUE
,
void
*),
void
*data);
66
VALUE
rb_tracepoint_enable
(
VALUE
tpval);
67
VALUE
rb_tracepoint_disable
(
VALUE
tpval);
68
VALUE
rb_tracepoint_enabled_p
(
VALUE
tpval);
69
70
typedef
struct
rb_trace_arg_struct
rb_trace_arg_t
;
71
rb_trace_arg_t
*
rb_tracearg_from_tracepoint
(
VALUE
tpval);
72
73
rb_event_flag_t
rb_tracearg_event_flag
(
rb_trace_arg_t
*trace_arg);
74
VALUE
rb_tracearg_event
(
rb_trace_arg_t
*trace_arg);
75
VALUE
rb_tracearg_lineno
(
rb_trace_arg_t
*trace_arg);
76
VALUE
rb_tracearg_path
(
rb_trace_arg_t
*trace_arg);
77
VALUE
rb_tracearg_method_id
(
rb_trace_arg_t
*trace_arg);
78
VALUE
rb_tracearg_defined_class
(
rb_trace_arg_t
*trace_arg);
79
VALUE
rb_tracearg_binding
(
rb_trace_arg_t
*trace_arg);
80
VALUE
rb_tracearg_self
(
rb_trace_arg_t
*trace_arg);
81
VALUE
rb_tracearg_return_value
(
rb_trace_arg_t
*trace_arg);
82
VALUE
rb_tracearg_raised_exception
(
rb_trace_arg_t
*trace_arg);
83
VALUE
rb_tracearg_object
(
rb_trace_arg_t
*trace_arg);
84
85
/* Postponed Job API */
86
typedef
void (*
rb_postponed_job_func_t
)(
void
*
arg
);
87
int
rb_postponed_job_register
(
unsigned
int
flags,
rb_postponed_job_func_t
func
,
void
*
data
);
88
int
rb_postponed_job_register_one
(
unsigned
int
flags,
rb_postponed_job_func_t
func
,
void
*
data
);
89
90
/* undocumented advanced tracing APIs */
91
92
typedef
enum
{
93
RUBY_EVENT_HOOK_FLAG_SAFE
= 0x01,
94
RUBY_EVENT_HOOK_FLAG_DELETED
= 0x02,
95
RUBY_EVENT_HOOK_FLAG_RAW_ARG
= 0x04
96
}
rb_event_hook_flag_t
;
97
98
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);
99
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);
100
101
RUBY_SYMBOL_EXPORT_END
102
103
#if defined(__cplusplus)
104
#if 0
105
{
/* satisfy cc-mode */
106
#endif
107
}
/* extern "C" { */
108
#endif
109
110
#endif
/* RUBY_DEBUG_H */
111
Generated on Mon Sep 22 2014 11:05:32 for Ruby by
1.8.2