#include "ruby/ruby.h"#include "ruby/encoding.h"#include "ruby/debug.h"#include "internal.h"#include "vm_core.h"#include "eval_intern.h"#include "iseq.h"Go to the source code of this file.
Data Structures | |
| struct | rb_backtrace_location_struct |
| struct | valued_frame_info |
| struct | rb_backtrace_struct |
| struct | bt_iter_arg |
| struct | oldbt_arg |
| struct | rb_debug_inspector_struct |
| struct | collect_caller_bindings_data |
Defines | |
| #define | frame2iseq(frame) frame |
Typedefs | |
| typedef struct rb_backtrace_location_struct | rb_backtrace_location_t |
| typedef struct rb_backtrace_struct | rb_backtrace_t |
Enumerations | |
| enum | { CALLER_BINDING_SELF, CALLER_BINDING_CLASS, CALLER_BINDING_BINDING, CALLER_BINDING_ISEQ, CALLER_BINDING_CFP } |
Functions | |
| static int | calc_lineno (const rb_iseq_t *iseq, const VALUE *pc) |
| int | rb_vm_get_sourceline (const rb_control_frame_t *cfp) |
| static void | location_mark (void *ptr) |
| static void | location_mark_entry (rb_backtrace_location_t *fi) |
| static void | location_free (void *ptr) |
| static size_t | location_memsize (const void *ptr) |
| static rb_backtrace_location_t * | location_ptr (VALUE locobj) |
| static int | location_lineno (rb_backtrace_location_t *loc) |
| static VALUE | location_lineno_m (VALUE self) |
| static VALUE | location_label (rb_backtrace_location_t *loc) |
| static VALUE | location_label_m (VALUE self) |
| static VALUE | location_base_label (rb_backtrace_location_t *loc) |
| static VALUE | location_base_label_m (VALUE self) |
| static VALUE | location_path (rb_backtrace_location_t *loc) |
| static VALUE | location_path_m (VALUE self) |
| static VALUE | location_absolute_path (rb_backtrace_location_t *loc) |
| static VALUE | location_absolute_path_m (VALUE self) |
| static VALUE | location_format (VALUE file, int lineno, VALUE name) |
| static VALUE | location_to_str (rb_backtrace_location_t *loc) |
| static VALUE | location_to_str_m (VALUE self) |
| static VALUE | location_inspect_m (VALUE self) |
| static void | backtrace_mark (void *ptr) |
| static void | backtrace_free (void *ptr) |
| static size_t | backtrace_memsize (const void *ptr) |
| int | rb_backtrace_p (VALUE obj) |
| static VALUE | backtrace_alloc (VALUE klass) |
| static void | backtrace_each (rb_thread_t *th, void(*init)(void *arg, size_t size), void(*iter_iseq)(void *arg, const rb_control_frame_t *cfp), void(*iter_cfunc)(void *arg, const rb_control_frame_t *cfp, ID mid), void *arg) |
| static void | bt_init (void *ptr, size_t size) |
| static void | bt_iter_iseq (void *ptr, const rb_control_frame_t *cfp) |
| static void | bt_iter_cfunc (void *ptr, const rb_control_frame_t *cfp, ID mid) |
| static VALUE | backtrace_object (rb_thread_t *th) |
| VALUE | rb_vm_backtrace_object (void) |
| static VALUE | backtrace_collect (rb_backtrace_t *bt, long lev, long n, VALUE(*func)(rb_backtrace_location_t *, void *arg), void *arg) |
| static VALUE | location_to_str_dmyarg (rb_backtrace_location_t *loc, void *dmy) |
| static VALUE | backtrace_to_str_ary (VALUE self, long lev, long n) |
| VALUE | rb_backtrace_to_str_ary (VALUE self) |
| static VALUE | location_create (rb_backtrace_location_t *srcloc, void *btobj) |
| static VALUE | backtrace_to_location_ary (VALUE self, long lev, long n) |
| VALUE | rb_backtrace_to_location_ary (VALUE self) |
| static VALUE | backtrace_dump_data (VALUE self) |
| static VALUE | backtrace_load_data (VALUE self, VALUE str) |
| VALUE | rb_vm_backtrace_str_ary (rb_thread_t *th, long lev, long n) |
| VALUE | rb_vm_backtrace_location_ary (rb_thread_t *th, long lev, long n) |
| static void | oldbt_init (void *ptr, size_t dmy) |
| static void | oldbt_iter_iseq (void *ptr, const rb_control_frame_t *cfp) |
| static void | oldbt_iter_cfunc (void *ptr, const rb_control_frame_t *cfp, ID mid) |
| static void | oldbt_print (void *data, VALUE file, int lineno, VALUE name) |
| static void | vm_backtrace_print (FILE *fp) |
| static void | oldbt_bugreport (void *arg, VALUE file, int line, VALUE method) |
| void | rb_backtrace_print_as_bugreport (void) |
| void | rb_backtrace (void) |
| static void | oldbt_print_to (void *data, VALUE file, int lineno, VALUE name) |
| void | rb_backtrace_print_to (VALUE output) |
| VALUE | rb_make_backtrace (void) |
| static VALUE | vm_backtrace_to_ary (rb_thread_t *th, int argc, VALUE *argv, int lev_default, int lev_plus, int to_str) |
| static VALUE | thread_backtrace_to_ary (int argc, VALUE *argv, VALUE thval, int to_str) |
| VALUE | rb_vm_thread_backtrace (int argc, VALUE *argv, VALUE thval) |
| VALUE | rb_vm_thread_backtrace_locations (int argc, VALUE *argv, VALUE thval) |
| static VALUE | rb_f_caller (int argc, VALUE *argv) |
| static VALUE | rb_f_caller_locations (int argc, VALUE *argv) |
| void | Init_vm_backtrace (void) |
| static void | collect_caller_bindings_init (void *arg, size_t size) |
| static VALUE | get_klass (const rb_control_frame_t *cfp) |
| static void | collect_caller_bindings_iseq (void *arg, const rb_control_frame_t *cfp) |
| static void | collect_caller_bindings_cfunc (void *arg, const rb_control_frame_t *cfp, ID mid) |
| static VALUE | collect_caller_bindings (rb_thread_t *th) |
| VALUE | rb_debug_inspector_open (rb_debug_inspector_func_t func, void *data) |
| static VALUE | frame_get (const rb_debug_inspector_t *dc, long index) |
| VALUE | rb_debug_inspector_frame_self_get (const rb_debug_inspector_t *dc, long index) |
| VALUE | rb_debug_inspector_frame_class_get (const rb_debug_inspector_t *dc, long index) |
| VALUE | rb_debug_inspector_frame_binding_get (const rb_debug_inspector_t *dc, long index) |
| VALUE | rb_debug_inspector_frame_iseq_get (const rb_debug_inspector_t *dc, long index) |
| VALUE | rb_debug_inspector_backtrace_locations (const rb_debug_inspector_t *dc) |
| int | rb_profile_frames (int start, int limit, VALUE *buff, int *lines) |
| VALUE | rb_profile_frame_path (VALUE frame) |
| VALUE | rb_profile_frame_absolute_path (VALUE frame) |
| VALUE | rb_profile_frame_label (VALUE frame) |
| VALUE | rb_profile_frame_base_label (VALUE frame) |
| VALUE | rb_profile_frame_first_lineno (VALUE frame) |
| VALUE | rb_profile_frame_classpath (VALUE frame) |
| VALUE | rb_profile_frame_singleton_method_p (VALUE frame) |
| VALUE | rb_profile_frame_method_name (VALUE frame) |
| VALUE | rb_profile_frame_qualified_method_name (VALUE frame) |
| VALUE | rb_profile_frame_full_label (VALUE frame) |
Variables | |
| static VALUE | rb_cBacktrace |
| static VALUE | rb_cBacktraceLocation |
| VALUE | ruby_engine_name |
| static const rb_data_type_t | location_data_type |
| static const rb_data_type_t | backtrace_data_type |
| #define frame2iseq | ( | frame | ) | frame |
Definition at line 1273 of file vm_backtrace.c.
Referenced by rb_profile_frame_absolute_path(), rb_profile_frame_base_label(), rb_profile_frame_classpath(), rb_profile_frame_first_lineno(), rb_profile_frame_label(), rb_profile_frame_method_name(), rb_profile_frame_path(), rb_profile_frame_qualified_method_name(), and rb_profile_frame_singleton_method_p().
| typedef struct rb_backtrace_location_struct rb_backtrace_location_t |
| typedef struct rb_backtrace_struct rb_backtrace_t |
| anonymous enum |
| CALLER_BINDING_SELF | |
| CALLER_BINDING_CLASS | |
| CALLER_BINDING_BINDING | |
| CALLER_BINDING_ISEQ | |
| CALLER_BINDING_CFP |
Definition at line 1075 of file vm_backtrace.c.
| static VALUE backtrace_alloc | ( | VALUE | klass | ) | [static] |
Definition at line 423 of file vm_backtrace.c.
References backtrace_data_type, and TypedData_Make_Struct.
Referenced by bt_init(), and Init_vm_backtrace().
| static VALUE backtrace_collect | ( | rb_backtrace_t * | bt, | |
| long | lev, | |||
| long | n, | |||
| VALUE(*)(rb_backtrace_location_t *, void *arg) | func, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 542 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace, rb_backtrace_struct::backtrace_size, func, rb_ary_new(), rb_ary_push(), rb_bug(), and UNLIKELY.
Referenced by backtrace_to_location_ary(), and backtrace_to_str_ary().
| static VALUE backtrace_dump_data | ( | VALUE | self | ) | [static] |
Definition at line 649 of file vm_backtrace.c.
References rb_backtrace_to_str_ary().
Referenced by Init_vm_backtrace().
| static void backtrace_each | ( | rb_thread_t * | th, | |
| void(*)(void *arg, size_t size) | init, | |||
| void(*)(void *arg, const rb_control_frame_t *cfp) | iter_iseq, | |||
| void(*)(void *arg, const rb_control_frame_t *cfp, ID mid) | iter_cfunc, | |||
| void * | arg | |||
| ) | [static] |
Definition at line 431 of file vm_backtrace.c.
References rb_thread_struct::cfp, RUBY_VM_END_CONTROL_FRAME, RUBY_VM_NEXT_CONTROL_FRAME, and RUBYVM_CFUNC_FRAME_P.
Referenced by backtrace_object(), collect_caller_bindings(), rb_backtrace_print_as_bugreport(), rb_backtrace_print_to(), and vm_backtrace_print().
| static void backtrace_free | ( | void * | ptr | ) | [static] |
Definition at line 394 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace, rb_backtrace_struct::backtrace_base, and ruby_xfree().
| static VALUE backtrace_load_data | ( | VALUE | self, | |
| VALUE | str | |||
| ) | [static] |
Definition at line 656 of file vm_backtrace.c.
References GetCoreDataFromValue, and rb_backtrace_struct::strary.
Referenced by Init_vm_backtrace().
| static void backtrace_mark | ( | void * | ptr | ) | [static] |
Definition at line 379 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace, rb_backtrace_struct::backtrace_size, rb_backtrace_struct::locary, location_mark_entry(), rb_gc_mark(), and rb_backtrace_struct::strary.
| static size_t backtrace_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 404 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace_size.
| static VALUE backtrace_object | ( | rb_thread_t * | th | ) | [static] |
Definition at line 521 of file vm_backtrace.c.
References backtrace_each(), bt_init(), bt_iter_cfunc(), bt_iter_iseq(), bt_iter_arg::btobj, and bt_iter_arg::prev_loc.
Referenced by rb_vm_backtrace_location_ary(), rb_vm_backtrace_object(), rb_vm_backtrace_str_ary(), and vm_backtrace_to_ary().
| static VALUE backtrace_to_location_ary | ( | VALUE | self, | |
| long | lev, | |||
| long | n | |||
| ) | [static] |
Definition at line 615 of file vm_backtrace.c.
References backtrace_collect(), rb_backtrace_struct::backtrace_size, GetCoreDataFromValue, location_create(), Qnil, and RB_GC_GUARD.
Referenced by rb_backtrace_to_location_ary(), rb_vm_backtrace_location_ary(), and vm_backtrace_to_ary().
| static VALUE backtrace_to_str_ary | ( | VALUE | self, | |
| long | lev, | |||
| long | n | |||
| ) | [static] |
Definition at line 568 of file vm_backtrace.c.
References backtrace_collect(), rb_backtrace_struct::backtrace_size, GetCoreDataFromValue, location_to_str_dmyarg(), Qnil, and RB_GC_GUARD.
Referenced by rb_backtrace_to_str_ary(), rb_vm_backtrace_str_ary(), and vm_backtrace_to_ary().
| static void bt_init | ( | void * | ptr, | |
| size_t | size | |||
| ) | [static] |
Definition at line 488 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace, backtrace_alloc(), rb_backtrace_struct::backtrace_base, rb_backtrace_struct::backtrace_size, bt_iter_arg::bt, bt_iter_arg::btobj, GetCoreDataFromValue, rb_cBacktrace, and ruby_xmalloc().
Referenced by backtrace_object().
| static void bt_iter_cfunc | ( | void * | ptr, | |
| const rb_control_frame_t * | cfp, | |||
| ID | mid | |||
| ) | [static] |
Definition at line 511 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace, rb_backtrace_struct::backtrace_size, rb_backtrace_location_struct::body, bt_iter_arg::bt, rb_backtrace_location_struct::cfunc, bt_iter_arg::prev_loc, and rb_backtrace_location_struct::type.
Referenced by backtrace_object().
| static void bt_iter_iseq | ( | void * | ptr, | |
| const rb_control_frame_t * | cfp | |||
| ) | [static] |
Definition at line 498 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace, rb_backtrace_struct::backtrace_size, rb_backtrace_location_struct::body, bt_iter_arg::bt, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, rb_control_frame_struct::iseq, rb_control_frame_struct::pc, bt_iter_arg::prev_loc, and rb_backtrace_location_struct::type.
Referenced by backtrace_object().
| static int calc_lineno | ( | const rb_iseq_t * | iseq, | |
| const VALUE * | pc | |||
| ) | [inline, static] |
Definition at line 27 of file vm_backtrace.c.
References rb_iseq_struct::iseq_encoded, and rb_iseq_line_no().
Referenced by location_lineno(), location_to_str(), oldbt_iter_iseq(), rb_profile_frames(), and rb_vm_get_sourceline().
| static VALUE collect_caller_bindings | ( | rb_thread_t * | th | ) | [static] |
Definition at line 1141 of file vm_backtrace.c.
References collect_caller_bindings_data::ary, backtrace_each(), CALLER_BINDING_BINDING, collect_caller_bindings_cfunc(), collect_caller_bindings_init(), collect_caller_bindings_iseq(), GC_GUARDED_PTR_REF, NIL_P, RARRAY_LEN, rb_ary_entry(), rb_ary_new(), rb_ary_reverse(), rb_ary_store(), rb_binding_new_with_cfp(), and result.
Referenced by rb_debug_inspector_open().
| static void collect_caller_bindings_cfunc | ( | void * | arg, | |
| const rb_control_frame_t * | cfp, | |||
| ID | mid | |||
| ) | [static] |
Definition at line 1126 of file vm_backtrace.c.
References collect_caller_bindings_data::ary, CALLER_BINDING_BINDING, CALLER_BINDING_CFP, CALLER_BINDING_CLASS, CALLER_BINDING_ISEQ, CALLER_BINDING_SELF, GC_GUARDED_PTR, get_klass(), Qnil, rb_ary_new2, rb_ary_push(), rb_ary_store(), and rb_control_frame_struct::self.
Referenced by collect_caller_bindings().
| static void collect_caller_bindings_init | ( | void * | arg, | |
| size_t | size | |||
| ) | [static] |
Definition at line 1088 of file vm_backtrace.c.
Referenced by collect_caller_bindings().
| static void collect_caller_bindings_iseq | ( | void * | arg, | |
| const rb_control_frame_t * | cfp | |||
| ) | [static] |
Definition at line 1111 of file vm_backtrace.c.
References collect_caller_bindings_data::ary, CALLER_BINDING_BINDING, CALLER_BINDING_CFP, CALLER_BINDING_CLASS, CALLER_BINDING_ISEQ, CALLER_BINDING_SELF, GC_GUARDED_PTR, get_klass(), rb_control_frame_struct::iseq, Qnil, rb_ary_new2, rb_ary_push(), rb_ary_store(), rb_iseq_struct::self, and rb_control_frame_struct::self.
Referenced by collect_caller_bindings().
| static VALUE frame_get | ( | const rb_debug_inspector_t * | dc, | |
| long | index | |||
| ) | [static] |
Definition at line 1206 of file vm_backtrace.c.
References rb_debug_inspector_struct::backtrace_size, rb_debug_inspector_struct::contexts, rb_ary_entry(), rb_eArgError, and rb_raise().
Referenced by rb_debug_inspector_frame_binding_get(), rb_debug_inspector_frame_class_get(), rb_debug_inspector_frame_iseq_get(), and rb_debug_inspector_frame_self_get().
| static VALUE get_klass | ( | const rb_control_frame_t * | cfp | ) | [static] |
Definition at line 1094 of file vm_backtrace.c.
References Qnil, RB_TYPE_P, rb_vm_control_frame_id_and_class(), RBASIC, and T_ICLASS.
Referenced by collect_caller_bindings_cfunc(), and collect_caller_bindings_iseq().
| void Init_vm_backtrace | ( | void | ) |
Definition at line 991 of file vm_backtrace.c.
References backtrace_alloc(), backtrace_dump_data(), backtrace_load_data(), CLASS_OF, location_absolute_path_m(), location_base_label_m(), location_inspect_m(), location_label_m(), location_lineno_m(), location_path_m(), location_to_str_m(), rb_cArray, rb_cBacktrace, rb_cBacktraceLocation, rb_cObject, rb_cThread, rb_define_alloc_func(), rb_define_class_under(), rb_define_global_function(), rb_define_method(), rb_f_caller(), rb_f_caller_locations(), rb_marshal_define_compat(), rb_undef_alloc_func(), and rb_undef_method().
Referenced by Init_VM().
| static VALUE location_absolute_path | ( | rb_backtrace_location_t * | loc | ) | [static] |
Definition at line 270 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, rb_backtrace_location_struct::cfunc, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, Qnil, rb_bug(), rb_backtrace_location_struct::type, and UNREACHABLE.
Referenced by location_absolute_path_m().
| static VALUE location_absolute_path_m | ( | VALUE | self | ) | [static] |
Definition at line 294 of file vm_backtrace.c.
References location_absolute_path(), and location_ptr().
Referenced by Init_vm_backtrace().
| static VALUE location_base_label | ( | rb_backtrace_location_t * | loc | ) | [static] |
Definition at line 210 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, rb_backtrace_location_struct::cfunc, ID2SYM, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, rb_bug(), rb_sym_to_s(), rb_backtrace_location_struct::type, and UNREACHABLE.
Referenced by location_base_label_m().
| static VALUE location_base_label_m | ( | VALUE | self | ) | [static] |
Definition at line 231 of file vm_backtrace.c.
References location_base_label(), and location_ptr().
Referenced by Init_vm_backtrace().
| static VALUE location_create | ( | rb_backtrace_location_t * | srcloc, | |
| void * | btobj | |||
| ) | [static] |
Definition at line 602 of file vm_backtrace.c.
References valued_frame_info::btobj, valued_frame_info::loc, location_data_type, rb_cBacktraceLocation, and TypedData_Make_Struct.
Referenced by backtrace_to_location_ary().
| static VALUE location_format | ( | VALUE | file, | |
| int | lineno, | |||
| VALUE | name | |||
| ) | [static] |
Definition at line 300 of file vm_backtrace.c.
References rb_enc_compatible(), rb_enc_sprintf(), and RSTRING_PTR.
Referenced by location_to_str().
| static void location_free | ( | void * | ptr | ) | [static] |
Definition at line 97 of file vm_backtrace.c.
References ruby_xfree().
| static VALUE location_inspect_m | ( | VALUE | self | ) | [static] |
Definition at line 365 of file vm_backtrace.c.
References location_ptr(), location_to_str(), and rb_str_inspect().
Referenced by Init_vm_backtrace().
| static VALUE location_label | ( | rb_backtrace_location_t * | loc | ) | [static] |
Definition at line 161 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, rb_backtrace_location_struct::cfunc, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, rb_bug(), rb_id2str(), rb_backtrace_location_struct::type, and UNREACHABLE.
Referenced by location_label_m().
| static VALUE location_label_m | ( | VALUE | self | ) | [static] |
Definition at line 204 of file vm_backtrace.c.
References location_label(), and location_ptr().
Referenced by Init_vm_backtrace().
| static int location_lineno | ( | rb_backtrace_location_t * | loc | ) | [static] |
Definition at line 127 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, calc_lineno(), rb_backtrace_location_struct::cfunc, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, rb_bug(), rb_backtrace_location_struct::type, and UNREACHABLE.
Referenced by location_lineno_m(), and location_to_str().
| static VALUE location_lineno_m | ( | VALUE | self | ) | [static] |
Definition at line 155 of file vm_backtrace.c.
References INT2FIX, location_lineno(), and location_ptr().
Referenced by Init_vm_backtrace().
| static void location_mark | ( | void * | ptr | ) | [static] |
Definition at line 73 of file vm_backtrace.c.
References valued_frame_info::btobj, and rb_gc_mark().
| static void location_mark_entry | ( | rb_backtrace_location_t * | fi | ) | [static] |
Definition at line 82 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, rb_gc_mark(), and rb_backtrace_location_struct::type.
Referenced by backtrace_mark().
| static size_t location_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 106 of file vm_backtrace.c.
| static VALUE location_path | ( | rb_backtrace_location_t * | loc | ) | [static] |
Definition at line 237 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, rb_backtrace_location_struct::cfunc, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, Qnil, rb_bug(), rb_backtrace_location_struct::type, and UNREACHABLE.
Referenced by location_path_m().
| static VALUE location_path_m | ( | VALUE | self | ) | [static] |
Definition at line 264 of file vm_backtrace.c.
References location_path(), and location_ptr().
Referenced by Init_vm_backtrace().
| static rb_backtrace_location_t* location_ptr | ( | VALUE | locobj | ) | [inline, static] |
Definition at line 119 of file vm_backtrace.c.
References GetCoreDataFromValue, and valued_frame_info::loc.
Referenced by location_absolute_path_m(), location_base_label_m(), location_inspect_m(), location_label_m(), location_lineno_m(), location_path_m(), and location_to_str_m().
| static VALUE location_to_str | ( | rb_backtrace_location_t * | loc | ) | [static] |
Definition at line 313 of file vm_backtrace.c.
References rb_backtrace_location_struct::body, calc_lineno(), rb_backtrace_location_struct::cfunc, GET_THREAD(), INT2FIX, rb_iseq_struct::iseq, rb_backtrace_location_struct::iseq, location_format(), location_lineno(), name, rb_vm_struct::progname, rb_bug(), rb_id2str(), ruby_engine_name, rb_backtrace_location_struct::type, and rb_thread_struct::vm.
Referenced by location_inspect_m(), location_to_str_dmyarg(), and location_to_str_m().
| static VALUE location_to_str_dmyarg | ( | rb_backtrace_location_t * | loc, | |
| void * | dmy | |||
| ) | [static] |
Definition at line 562 of file vm_backtrace.c.
References location_to_str().
Referenced by backtrace_to_str_ary().
| static VALUE location_to_str_m | ( | VALUE | self | ) | [static] |
Definition at line 355 of file vm_backtrace.c.
References location_ptr(), and location_to_str().
Referenced by Init_vm_backtrace().
| static void oldbt_bugreport | ( | void * | arg, | |
| VALUE | file, | |||
| int | line, | |||
| VALUE | method | |||
| ) | [static] |
Definition at line 749 of file vm_backtrace.c.
References oldbt_arg::filename, NIL_P, and RSTRING_PTR.
Referenced by rb_backtrace_print_as_bugreport().
| static void oldbt_init | ( | void * | ptr, | |
| size_t | dmy | |||
| ) | [static] |
Definition at line 686 of file vm_backtrace.c.
References oldbt_arg::filename, GET_THREAD(), oldbt_arg::lineno, rb_vm_struct::progname, ruby_engine_name, and rb_thread_struct::vm.
Referenced by rb_backtrace_print_as_bugreport(), rb_backtrace_print_to(), and vm_backtrace_print().
| static void oldbt_iter_cfunc | ( | void * | ptr, | |
| const rb_control_frame_t * | cfp, | |||
| ID | mid | |||
| ) | [static] |
Definition at line 709 of file vm_backtrace.c.
References oldbt_arg::data, oldbt_arg::filename, oldbt_arg::func, oldbt_arg::lineno, name, and rb_id2str().
Referenced by rb_backtrace_print_as_bugreport(), rb_backtrace_print_to(), and vm_backtrace_print().
| static void oldbt_iter_iseq | ( | void * | ptr, | |
| const rb_control_frame_t * | cfp | |||
| ) | [static] |
Definition at line 696 of file vm_backtrace.c.
References calc_lineno(), oldbt_arg::data, oldbt_arg::filename, oldbt_arg::func, rb_control_frame_struct::iseq, rb_iseq_location_struct::label, oldbt_arg::lineno, rb_iseq_struct::location, name, rb_iseq_location_struct::path, and rb_control_frame_struct::pc.
Referenced by rb_backtrace_print_as_bugreport(), rb_backtrace_print_to(), and vm_backtrace_print().
| static void oldbt_print | ( | void * | data, | |
| VALUE | file, | |||
| int | lineno, | |||
| VALUE | name | |||
| ) | [static] |
Definition at line 720 of file vm_backtrace.c.
References NIL_P, and RSTRING_PTR.
Referenced by vm_backtrace_print().
| static void oldbt_print_to | ( | void * | data, | |
| VALUE | file, | |||
| int | lineno, | |||
| VALUE | name | |||
| ) | [static] |
Definition at line 788 of file vm_backtrace.c.
References NIL_P, output, PRIsVALUE, rb_io_write(), rb_sprintf(), rb_str_cat2(), and rb_str_catf().
Referenced by rb_backtrace_print_to().
| void rb_backtrace | ( | void | ) |
Definition at line 782 of file vm_backtrace.c.
References vm_backtrace_print().
Referenced by rescue_callback().
| int rb_backtrace_p | ( | VALUE | obj | ) |
Definition at line 417 of file vm_backtrace.c.
References backtrace_data_type, and rb_typeddata_is_kind_of().
Referenced by exc_backtrace(), rb_check_backtrace(), and set_backtrace().
| void rb_backtrace_print_as_bugreport | ( | void | ) |
Definition at line 766 of file vm_backtrace.c.
References backtrace_each(), oldbt_arg::data, oldbt_arg::func, GET_THREAD(), oldbt_bugreport(), oldbt_init(), oldbt_iter_cfunc(), and oldbt_iter_iseq().
Referenced by rb_vm_bugreport().
| void rb_backtrace_print_to | ( | VALUE | output | ) |
Definition at line 803 of file vm_backtrace.c.
References backtrace_each(), oldbt_arg::data, oldbt_arg::func, GET_THREAD(), oldbt_init(), oldbt_iter_cfunc(), oldbt_iter_iseq(), and oldbt_print_to().
Referenced by load_lock().
| VALUE rb_backtrace_to_location_ary | ( | VALUE | self | ) |
Definition at line 637 of file vm_backtrace.c.
References backtrace_to_location_ary(), GetCoreDataFromValue, and rb_backtrace_struct::locary.
Referenced by exc_backtrace_locations().
| VALUE rb_backtrace_to_str_ary | ( | VALUE | self | ) |
Definition at line 590 of file vm_backtrace.c.
References rb_backtrace_struct::backtrace_size, backtrace_to_str_ary(), GetCoreDataFromValue, and rb_backtrace_struct::strary.
Referenced by backtrace_dump_data(), exc_backtrace(), and set_backtrace().
| VALUE rb_debug_inspector_backtrace_locations | ( | const rb_debug_inspector_t * | dc | ) |
Definition at line 1243 of file vm_backtrace.c.
References rb_debug_inspector_struct::backtrace.
| VALUE rb_debug_inspector_frame_binding_get | ( | const rb_debug_inspector_t * | dc, | |
| long | index | |||
| ) |
Definition at line 1229 of file vm_backtrace.c.
References CALLER_BINDING_BINDING, frame_get(), and rb_ary_entry().
| VALUE rb_debug_inspector_frame_class_get | ( | const rb_debug_inspector_t * | dc, | |
| long | index | |||
| ) |
Definition at line 1222 of file vm_backtrace.c.
References CALLER_BINDING_CLASS, frame_get(), and rb_ary_entry().
| VALUE rb_debug_inspector_frame_iseq_get | ( | const rb_debug_inspector_t * | dc, | |
| long | index | |||
| ) |
Definition at line 1236 of file vm_backtrace.c.
References CALLER_BINDING_ISEQ, frame_get(), and rb_ary_entry().
| VALUE rb_debug_inspector_frame_self_get | ( | const rb_debug_inspector_t * | dc, | |
| long | index | |||
| ) |
Definition at line 1215 of file vm_backtrace.c.
References CALLER_BINDING_SELF, frame_get(), and rb_ary_entry().
| VALUE rb_debug_inspector_open | ( | rb_debug_inspector_func_t | func, | |
| void * | data | |||
| ) |
Definition at line 1177 of file vm_backtrace.c.
References rb_debug_inspector_struct::backtrace, rb_debug_inspector_struct::backtrace_size, rb_thread_struct::cfp, rb_debug_inspector_struct::cfp, collect_caller_bindings(), rb_debug_inspector_struct::contexts, EXEC_TAG, GET_THREAD(), JUMP_TAG, RARRAY_LEN, rb_vm_backtrace_location_ary(), result, rb_debug_inspector_struct::th, TH_POP_TAG, TH_PUSH_TAG, and UNINITIALIZED_VAR.
| static VALUE rb_f_caller | ( | int | argc, | |
| VALUE * | argv | |||
| ) | [static] |
Definition at line 956 of file vm_backtrace.c.
References GET_THREAD(), and vm_backtrace_to_ary().
Referenced by Init_vm_backtrace().
| static VALUE rb_f_caller_locations | ( | int | argc, | |
| VALUE * | argv | |||
| ) | [static] |
Definition at line 984 of file vm_backtrace.c.
References GET_THREAD(), and vm_backtrace_to_ary().
Referenced by Init_vm_backtrace().
| VALUE rb_make_backtrace | ( | void | ) |
Definition at line 817 of file vm_backtrace.c.
References GET_THREAD(), and rb_vm_backtrace_str_ary().
Referenced by parser_set_encode().
| VALUE rb_profile_frame_absolute_path | ( | VALUE | frame | ) |
Definition at line 1282 of file vm_backtrace.c.
References frame2iseq, and rb_iseq_absolute_path().
| VALUE rb_profile_frame_base_label | ( | VALUE | frame | ) |
Definition at line 1294 of file vm_backtrace.c.
References frame2iseq, and rb_iseq_base_label().
Referenced by rb_profile_frame_full_label().
| VALUE rb_profile_frame_classpath | ( | VALUE | frame | ) |
Definition at line 1306 of file vm_backtrace.c.
References FL_SINGLETON, FL_TEST, frame2iseq, NIL_P, Qnil, rb_class2name(), rb_class_path(), rb_iseq_klass(), rb_ivar_get(), rb_obj_class(), rb_sprintf(), RB_TYPE_P, RBASIC, T_CLASS, and T_ICLASS.
Referenced by rb_profile_frame_qualified_method_name().
| VALUE rb_profile_frame_first_lineno | ( | VALUE | frame | ) |
Definition at line 1300 of file vm_backtrace.c.
References frame2iseq, and rb_iseq_first_lineno().
| VALUE rb_profile_frame_full_label | ( | VALUE | frame | ) |
Definition at line 1366 of file vm_backtrace.c.
References NIL_P, PRIsVALUE, rb_long2int, rb_profile_frame_base_label(), rb_profile_frame_label(), rb_profile_frame_qualified_method_name(), rb_sprintf(), RSTRING_LEN, and RSTRING_PTR.
| VALUE rb_profile_frame_label | ( | VALUE | frame | ) |
Definition at line 1288 of file vm_backtrace.c.
References frame2iseq, and rb_iseq_label().
Referenced by rb_profile_frame_full_label().
| VALUE rb_profile_frame_method_name | ( | VALUE | frame | ) |
Definition at line 1339 of file vm_backtrace.c.
References frame2iseq, and rb_iseq_method_name().
| VALUE rb_profile_frame_path | ( | VALUE | frame | ) |
Definition at line 1276 of file vm_backtrace.c.
References frame2iseq, and rb_iseq_path().
| VALUE rb_profile_frame_qualified_method_name | ( | VALUE | frame | ) |
Definition at line 1345 of file vm_backtrace.c.
References classpath, frame2iseq, method_name(), PRIsVALUE, Qnil, Qtrue, rb_iseq_method_name(), rb_profile_frame_classpath(), rb_profile_frame_singleton_method_p(), and rb_sprintf().
Referenced by rb_profile_frame_full_label().
| VALUE rb_profile_frame_singleton_method_p | ( | VALUE | frame | ) |
Definition at line 1327 of file vm_backtrace.c.
References FL_SINGLETON, FL_TEST, frame2iseq, NIL_P, Qfalse, Qtrue, and rb_iseq_klass().
Referenced by rb_profile_frame_qualified_method_name().
| int rb_profile_frames | ( | int | start, | |
| int | limit, | |||
| VALUE * | buff, | |||
| int * | lines | |||
| ) |
Definition at line 1249 of file vm_backtrace.c.
References calc_lineno(), rb_thread_struct::cfp, GET_THREAD(), rb_control_frame_struct::iseq, rb_control_frame_struct::pc, RUBY_VM_END_CONTROL_FRAME, RUBY_VM_PREVIOUS_CONTROL_FRAME, and rb_iseq_struct::self.
| VALUE rb_vm_backtrace_location_ary | ( | rb_thread_t * | th, | |
| long | lev, | |||
| long | n | |||
| ) |
Definition at line 671 of file vm_backtrace.c.
References backtrace_object(), and backtrace_to_location_ary().
Referenced by rb_debug_inspector_open().
| VALUE rb_vm_backtrace_object | ( | void | ) |
Definition at line 536 of file vm_backtrace.c.
References backtrace_object(), and GET_THREAD().
Referenced by argument_error(), and setup_exception().
| VALUE rb_vm_backtrace_str_ary | ( | rb_thread_t * | th, | |
| long | lev, | |||
| long | n | |||
| ) |
Definition at line 665 of file vm_backtrace.c.
References backtrace_object(), and backtrace_to_str_ary().
Referenced by eval_string_with_cref(), and rb_make_backtrace().
| int rb_vm_get_sourceline | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 33 of file vm_backtrace.c.
References calc_lineno(), rb_control_frame_struct::iseq, rb_control_frame_struct::pc, and RUBY_VM_NORMAL_ISEQ_P.
Referenced by control_frame_dump(), fill_path_and_lineno(), rb_add_method(), rb_sourceline(), rb_thread_current_status(), and rb_vm_make_binding().
| VALUE rb_vm_thread_backtrace | ( | int | argc, | |
| VALUE * | argv, | |||
| VALUE | thval | |||
| ) |
Definition at line 906 of file vm_backtrace.c.
References thread_backtrace_to_ary().
Referenced by rb_thread_backtrace_m().
| VALUE rb_vm_thread_backtrace_locations | ( | int | argc, | |
| VALUE * | argv, | |||
| VALUE | thval | |||
| ) |
Definition at line 912 of file vm_backtrace.c.
References thread_backtrace_to_ary().
Referenced by rb_thread_backtrace_locations_m().
| static VALUE thread_backtrace_to_ary | ( | int | argc, | |
| VALUE * | argv, | |||
| VALUE | thval, | |||
| int | to_str | |||
| ) | [static] |
Definition at line 894 of file vm_backtrace.c.
References GetThreadPtr, Qnil, rb_thread_struct::status, THREAD_KILLED, rb_thread_struct::to_kill, and vm_backtrace_to_ary().
Referenced by rb_vm_thread_backtrace(), and rb_vm_thread_backtrace_locations().
| static void vm_backtrace_print | ( | FILE * | fp | ) | [static] |
Definition at line 735 of file vm_backtrace.c.
References backtrace_each(), oldbt_arg::data, oldbt_arg::func, GET_THREAD(), oldbt_init(), oldbt_iter_cfunc(), oldbt_iter_iseq(), and oldbt_print().
Referenced by rb_backtrace().
| static VALUE vm_backtrace_to_ary | ( | rb_thread_t * | th, | |
| int | argc, | |||
| VALUE * | argv, | |||
| int | lev_default, | |||
| int | lev_plus, | |||
| int | to_str | |||
| ) | [static] |
Definition at line 823 of file vm_backtrace.c.
References backtrace_object(), rb_backtrace_struct::backtrace_size, backtrace_to_location_ary(), backtrace_to_str_ary(), GetCoreDataFromValue, level, NIL_P, NUM2LONG, Qfalse, Qnil, rb_ary_new(), rb_eArgError, RB_GC_GUARD, rb_raise(), rb_range_beg_len(), and rb_scan_args().
Referenced by rb_f_caller(), rb_f_caller_locations(), and thread_backtrace_to_ary().
const rb_data_type_t backtrace_data_type [static] |
{
"backtrace",
{backtrace_mark, backtrace_free, backtrace_memsize,},
NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
}
Definition at line 410 of file vm_backtrace.c.
Referenced by backtrace_alloc(), and rb_backtrace_p().
const rb_data_type_t location_data_type [static] |
{
"frame_info",
{location_mark, location_free, location_memsize,},
NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
}
Definition at line 112 of file vm_backtrace.c.
Referenced by location_create().
VALUE rb_cBacktrace [static] |
Definition at line 21 of file vm_backtrace.c.
Referenced by bt_init(), and Init_vm_backtrace().
VALUE rb_cBacktraceLocation [static] |
Definition at line 22 of file vm_backtrace.c.
Referenced by Init_vm_backtrace(), and location_create().
| VALUE ruby_engine_name |
Definition at line 35 of file version.c.
Referenced by Init_version(), location_to_str(), and oldbt_init().
1.6.1