44 #define MAX_EVENT_NUM 32
70 if (events & (1 << i)) {
86 if (events & (1 << i)) {
172 if (func == 0 || hook->
func == func) {
241 while ((hook = *nextp) != 0) {
259 for (hook = list->
hooks; hook; hook = hook->
next) {
274 if ((list->
events & trace_arg->
event) == 0)
return 0;
337 const int outer_state = th->
state;
348 if (state)
goto terminate;
352 if (state)
goto terminate;
370 th->
state = outer_state;
391 volatile int outer_state;
395 const int tracing = th->
trace_arg ? 1 : 0;
397 dummy_trace_arg.
event = 0;
403 outer_state = th->
state;
408 result = (*func)(
arg);
423 th->
state = outer_state;
587 #define C(name, NAME) case RUBY_EVENT_##NAME: CONST_ID(id, #name); return id;
594 C(c_return, C_RETURN);
597 C(b_return, B_RETURN);
598 C(thread_begin, THREAD_BEGIN);
599 C(thread_end, THREAD_END);
600 C(specified_line, SPECIFIED_LINE);
624 klass =
RBASIC(klass)->klass;
636 argv[5] = klass ? klass :
Qnil;
690 #define C(name, NAME) CONST_ID(id, #name); if (sym == ID2SYM(id)) return RUBY_EVENT_##NAME
697 C(c_return, C_RETURN);
700 C(b_return, B_RETURN);
701 C(thread_begin, THREAD_BEGIN);
702 C(thread_end, THREAD_END);
703 C(specified_line, SPECIFIED_LINE);
722 if (trace_arg == 0) {
737 return trace_arg->
event;
773 return trace_arg->
path;
780 if (!trace_arg->
klass) {
784 if (trace_arg->
klass) {
808 return trace_arg->
klass;
828 return trace_arg->
self;
841 rb_bug(
"tp_attr_return_value_m: unreachable");
843 return trace_arg->
data;
856 rb_bug(
"tp_attr_raised_exception_m: unreachable");
858 return trace_arg->
data;
871 rb_bug(
"tp_attr_raised_exception_m: unreachable");
873 return trace_arg->
data;
1083 int previous_tracing = tp->
tracing;
1134 int previous_tracing = tp->
tracing;
1180 if (
RTEST(target_thval)) {
1243 for (i=0; i<
argc; i++) {
1281 switch (trace_arg->
event) {
1305 return rb_sprintf(
"#<TracePoint:%"PRIsVALUE
" %"PRIsVALUE
">",
1310 return rb_sprintf(
"#<TracePoint:%"PRIsVALUE
"@%"PRIsVALUE
":%d>",
1426 #define MAX_POSTPONED_JOB 1000
1427 #define MAX_POSTPONED_JOB_SPECIAL_ADDITION 24
1449 if (expected_index >= max)
return PJRR_FULL;
1458 pjob->
flags = flags;
1481 default:
rb_bug(
"unreachable\n");
1496 for (i=0; i<index; i++) {
1498 if (pjob->
func == func) {
1507 default:
rb_bug(
"unreachable\n");