Ruby
2.5.0dev(2017-10-22revision60238)
|
#include "ruby_assert.h"
#include "ruby/ruby.h"
#include "ruby/st.h"
#include "node.h"
#include "vm_debug.h"
#include "vm_opts.h"
#include "id.h"
#include "method.h"
#include "ruby_atomic.h"
#include "ccan/list/list.h"
#include "ruby/thread_native.h"
#include <setjmp.h>
#include <signal.h>
#include <varargs.h>
Go to the source code of this file.
Data Structures | |
struct | iseq_inline_cache_entry |
union | iseq_inline_storage_entry |
struct | rb_call_info |
struct | rb_call_info_kw_arg |
struct | rb_call_info_with_kwarg |
struct | rb_calling_info |
struct | rb_call_cache |
struct | rb_iseq_location_struct |
struct | rb_iseq_constant_body |
struct | rb_iseq_struct |
struct | rb_at_exit_list |
struct | rb_hook_list_struct |
struct | rb_vm_struct |
struct | rb_captured_block |
struct | rb_block |
struct | rb_control_frame_struct |
struct | rb_vm_tag |
struct | rb_vm_protect_tag |
struct | rb_unblock_callback |
struct | rb_thread_list_struct |
struct | rb_ensure_entry |
struct | rb_ensure_list |
struct | rb_execution_context_struct |
struct | rb_thread_struct |
struct | rb_proc_t |
struct | rb_env_t |
struct | rb_binding_t |
struct | rb_trace_arg_struct |
Macros | |
#define | VM_CHECK_MODE 0 |
#define | VMDEBUG 0 |
VM Debug Level. More... | |
#define | VM_ASSERT(expr) ((void)0) |
#define | VM_UNREACHABLE(func) UNREACHABLE |
#define | RUBY_VM_THREAD_MODEL 2 |
#define | ENABLE_VM_OBJSPACE 1 |
#define | NSIG (_SIGMAX + 1) /* For QNX */ |
#define | RUBY_NSIG NSIG |
#define | va_init_list(a, b) va_start((a)) |
#define | TAG_NONE RUBY_TAG_NONE |
#define | TAG_RETURN RUBY_TAG_RETURN |
#define | TAG_BREAK RUBY_TAG_BREAK |
#define | TAG_NEXT RUBY_TAG_NEXT |
#define | TAG_RETRY RUBY_TAG_RETRY |
#define | TAG_REDO RUBY_TAG_REDO |
#define | TAG_RAISE RUBY_TAG_RAISE |
#define | TAG_THROW RUBY_TAG_THROW |
#define | TAG_FATAL RUBY_TAG_FATAL |
#define | TAG_MASK RUBY_TAG_MASK |
#define | CoreDataFromValue(obj, type) (type*)DATA_PTR(obj) |
#define | GetCoreDataFromValue(obj, type, ptr) ((ptr) = CoreDataFromValue((obj), type)) |
#define | PATHOBJ_PATH 0 |
#define | PATHOBJ_REALPATH 1 |
#define | USE_LAZY_LOAD 0 |
#define | GetVMPtr(obj, ptr) GetCoreDataFromValue((obj), rb_vm_t, (ptr)) |
#define | RUBY_VM_SIZE_ALIGN 4096 |
#define | RUBY_VM_THREAD_VM_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
#define | RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
#define | RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
#define | RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define | RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define | RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
#define | RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) /* 256 KB or 512 KB */ |
#define | RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define | INTEGER_REDEFINED_OP_FLAG (1 << 0) |
#define | FLOAT_REDEFINED_OP_FLAG (1 << 1) |
#define | STRING_REDEFINED_OP_FLAG (1 << 2) |
#define | ARRAY_REDEFINED_OP_FLAG (1 << 3) |
#define | HASH_REDEFINED_OP_FLAG (1 << 4) |
#define | SYMBOL_REDEFINED_OP_FLAG (1 << 6) |
#define | TIME_REDEFINED_OP_FLAG (1 << 7) |
#define | REGEXP_REDEFINED_OP_FLAG (1 << 8) |
#define | NIL_REDEFINED_OP_FLAG (1 << 9) |
#define | TRUE_REDEFINED_OP_FLAG (1 << 10) |
#define | FALSE_REDEFINED_OP_FLAG (1 << 11) |
#define | BASIC_OP_UNREDEFINED_P(op, klass) (LIKELY((GET_VM()->redefined_flag[(op)]&(klass)) == 0)) |
#define | VM_DEBUG_BP_CHECK 0 |
#define | VM_DEBUG_VERIFY_METHOD_CACHE (VM_DEBUG_MODE != 0) |
#define | VM_DEFINECLASS_TYPE(x) ((rb_vm_defineclass_type_t)(x) & VM_DEFINECLASS_TYPE_MASK) |
#define | VM_DEFINECLASS_FLAG_SCOPED 0x08 |
#define | VM_DEFINECLASS_FLAG_HAS_SUPERCLASS 0x10 |
#define | VM_DEFINECLASS_SCOPED_P(x) ((x) & VM_DEFINECLASS_FLAG_SCOPED) |
#define | VM_DEFINECLASS_HAS_SUPERCLASS_P(x) ((x) & VM_DEFINECLASS_FLAG_HAS_SUPERCLASS) |
#define | GetProcPtr(obj, ptr) GetCoreDataFromValue((obj), rb_proc_t, (ptr)) |
#define | GetBindingPtr(obj, ptr) GetCoreDataFromValue((obj), rb_binding_t, (ptr)) |
#define | VM_CHECKMATCH_TYPE_MASK 0x03 |
#define | VM_CHECKMATCH_ARRAY 0x04 |
#define | VM_CALL_ARGS_SPLAT (0x01 << VM_CALL_ARGS_SPLAT_bit) |
#define | VM_CALL_ARGS_BLOCKARG (0x01 << VM_CALL_ARGS_BLOCKARG_bit) |
#define | VM_CALL_FCALL (0x01 << VM_CALL_FCALL_bit) |
#define | VM_CALL_VCALL (0x01 << VM_CALL_VCALL_bit) |
#define | VM_CALL_ARGS_SIMPLE (0x01 << VM_CALL_ARGS_SIMPLE_bit) |
#define | VM_CALL_BLOCKISEQ (0x01 << VM_CALL_BLOCKISEQ_bit) |
#define | VM_CALL_KWARG (0x01 << VM_CALL_KWARG_bit) |
#define | VM_CALL_KW_SPLAT (0x01 << VM_CALL_KW_SPLAT_bit) |
#define | VM_CALL_TAILCALL (0x01 << VM_CALL_TAILCALL_bit) |
#define | VM_CALL_SUPER (0x01 << VM_CALL_SUPER_bit) |
#define | VM_CALL_OPT_SEND (0x01 << VM_CALL_OPT_SEND_bit) |
#define | FUNC_FASTCALL(x) x |
#define | VM_TAGGED_PTR_SET(p, tag) ((VALUE)(p) | (tag)) |
#define | VM_TAGGED_PTR_REF(v, mask) ((void *)((v) & ~mask)) |
#define | GC_GUARDED_PTR(p) VM_TAGGED_PTR_SET((p), 0x01) |
#define | GC_GUARDED_PTR_REF(p) VM_TAGGED_PTR_REF((p), 0x03) |
#define | GC_GUARDED_PTR_P(p) (((VALUE)(p)) & 0x01) |
#define | VM_ENV_DATA_SIZE ( 3) |
#define | VM_ENV_DATA_INDEX_ME_CREF (-2) /* ep[-2] */ |
#define | VM_ENV_DATA_INDEX_SPECVAL (-1) /* ep[-1] */ |
#define | VM_ENV_DATA_INDEX_FLAGS ( 0) /* ep[ 0] */ |
#define | VM_ENV_DATA_INDEX_ENV ( 1) /* ep[ 1] */ |
#define | VM_ENV_DATA_INDEX_ENV_PROC ( 2) /* ep[ 2] */ |
#define | VM_ENV_INDEX_LAST_LVAR (-VM_ENV_DATA_SIZE) |
#define | RUBYVM_CFUNC_FRAME_P(cfp) (VM_FRAME_TYPE(cfp) == VM_FRAME_MAGIC_CFUNC) |
#define | VM_GUARDED_PREV_EP(ep) GC_GUARDED_PTR(ep) |
#define | VM_BLOCK_HANDLER_NONE 0 |
#define | RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp) ((cfp)+1) |
#define | RUBY_VM_NEXT_CONTROL_FRAME(cfp) ((cfp)-1) |
#define | RUBY_VM_END_CONTROL_FRAME(th) ((rb_control_frame_t *)((th)->ec.vm_stack + (th)->ec.vm_stack_size)) |
#define | RUBY_VM_VALID_CONTROL_FRAME_P(cfp, ecfp) ((void *)(ecfp) > (void *)(cfp)) |
#define | RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp) (!RUBY_VM_VALID_CONTROL_FRAME_P((cfp), RUBY_VM_END_CONTROL_FRAME(th))) |
#define | SDR() rb_vmdebug_stack_dump_raw(GET_THREAD(), GET_THREAD()->ec.cfp) |
#define | SDR2(cfp) rb_vmdebug_stack_dump_raw(GET_THREAD(), (cfp)) |
#define | rb_vm_register_special_exception(sp, e, m) rb_vm_register_special_exception_str(sp, e, rb_usascii_str_new_static((m), (long)rb_strlen_lit(m))) |
#define | sysstack_error GET_VM()->special_exceptions[ruby_error_sysstack] |
#define | RUBY_CONST_ASSERT(expr) (1/!!(expr)) /* expr must be a compile-time constant */ |
#define | VM_STACK_OVERFLOWED_P(cfp, sp, margin) |
#define | WHEN_VM_STACK_OVERFLOWED(cfp, sp, margin) if (LIKELY(!VM_STACK_OVERFLOWED_P(cfp, sp, margin))) {(void)0;} else /* overflowed */ |
#define | CHECK_VM_STACK_OVERFLOW0(cfp, sp, margin) WHEN_VM_STACK_OVERFLOWED(cfp, sp, margin) vm_stackoverflow() |
#define | CHECK_VM_STACK_OVERFLOW(cfp, margin) WHEN_VM_STACK_OVERFLOWED(cfp, (cfp)->sp, margin) vm_stackoverflow() |
#define | GET_VM() ruby_current_vm |
#define | GET_THREAD() ruby_current_thread |
#define | rb_thread_set_current_raw(th) (void)(ruby_current_thread = (th)) |
#define | rb_thread_set_current(th) |
#define | RUBY_VM_SET_TIMER_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, TIMER_INTERRUPT_MASK) |
#define | RUBY_VM_SET_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, PENDING_INTERRUPT_MASK) |
#define | RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, POSTPONED_JOB_INTERRUPT_MASK) |
#define | RUBY_VM_SET_TRAP_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, TRAP_INTERRUPT_MASK) |
#define | RUBY_VM_INTERRUPTED(th) ((th)->interrupt_flag & ~(th)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK)) |
#define | RUBY_VM_INTERRUPTED_ANY(th) ((th)->interrupt_flag & ~(th)->interrupt_mask) |
#define | RUBY_VM_CHECK_INTS(th) ruby_vm_check_ints(th) |
#define | EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, pop_p_) |
#define | EXEC_EVENT_HOOK(th_, flag_, self_, id_, called_id_, klass_, data_) EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 0) |
#define | EXEC_EVENT_HOOK_AND_POP_FRAME(th_, flag_, self_, id_, called_id_, klass_, data_) EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 1) |
#define CHECK_VM_STACK_OVERFLOW | ( | cfp, | |
margin | |||
) | WHEN_VM_STACK_OVERFLOWED(cfp, (cfp)->sp, margin) vm_stackoverflow() |
#define CHECK_VM_STACK_OVERFLOW0 | ( | cfp, | |
sp, | |||
margin | |||
) | WHEN_VM_STACK_OVERFLOWED(cfp, sp, margin) vm_stackoverflow() |
#define CoreDataFromValue | ( | obj, | |
type | |||
) | (type*)DATA_PTR(obj) |
#define EXEC_EVENT_HOOK | ( | th_, | |
flag_, | |||
self_, | |||
id_, | |||
called_id_, | |||
klass_, | |||
data_ | |||
) | EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 0) |
Definition at line 1686 of file vm_core.h.
Referenced by rb_fiber_start(), and rb_vm_pop_cfunc_frame().
#define EXEC_EVENT_HOOK_AND_POP_FRAME | ( | th_, | |
flag_, | |||
self_, | |||
id_, | |||
called_id_, | |||
klass_, | |||
data_ | |||
) | EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 1) |
#define EXEC_EVENT_HOOK_ORIG | ( | th_, | |
flag_, | |||
self_, | |||
id_, | |||
called_id_, | |||
klass_, | |||
data_, | |||
pop_p_ | |||
) |
#define GC_GUARDED_PTR | ( | p | ) | VM_TAGGED_PTR_SET((p), 0x01) |
#define GC_GUARDED_PTR_REF | ( | p | ) | VM_TAGGED_PTR_REF((p), 0x03) |
Definition at line 1008 of file vm_core.h.
Referenced by rb_vmdebug_stack_dump_raw().
#define GET_THREAD | ( | ) | ruby_current_thread |
Definition at line 1583 of file vm_core.h.
Referenced by Init_Cont(), Init_Thread(), rb_binding_new(), rb_block_given_p(), rb_block_min_max_arity(), rb_bug(), rb_bug_context(), rb_call_super(), rb_catch_obj(), rb_check_funcall_default(), rb_check_funcall_with_hook(), rb_current_realfilepath(), rb_current_receiver(), rb_debug_inspector_open(), rb_errinfo(), rb_eval_cmd(), rb_eval_string_wrap(), rb_exec_end_proc(), rb_exit(), rb_f_abort(), rb_f_block_given_p(), rb_fiber_start(), rb_frame_last_func(), rb_frame_method_id_and_class(), rb_funcall_with_block(), rb_gc_register_mark_object(), rb_iseq_compile_with_option(), rb_iseq_eval(), rb_iseq_eval_main(), rb_last_status_clear(), rb_last_status_get(), rb_last_status_set(), rb_make_backtrace(), rb_memerror(), rb_method_call_with_block(), rb_mutex_lock(), rb_mutex_owned_p(), rb_mutex_trylock(), rb_notify_fd_close(), rb_obj_respond_to(), rb_postponed_job_flush(), rb_postponed_job_register(), rb_postponed_job_register_one(), rb_proc_call(), rb_proc_call_with_block(), rb_proc_create(), rb_proc_create_from_captured(), rb_profile_frames(), rb_require_internal(), rb_rescue2(), rb_safe_level(), rb_set_end_proc(), rb_set_errinfo(), rb_set_safe_level(), rb_set_safe_level_force(), rb_source_location(), rb_sourcefile(), rb_sourcefilename(), rb_sourceline(), rb_thread_check_ints(), rb_thread_current(), rb_thread_io_blocking_region(), rb_thread_list(), rb_thread_main(), rb_thread_schedule(), rb_thread_shield_wait(), rb_thread_terminate_all(), rb_thread_wait_for(), rb_throw_obj(), rb_uninterruptible(), rb_vm_call_cfunc(), rb_vm_cbase(), rb_vm_cref(), rb_vm_cref_in_context(), rb_vm_cref_replace_with_duplicated_cref(), rb_vm_make_jump_tag_but_local_jump(), rb_vm_pop_cfunc_frame(), rb_vmdebug_stack_dump_all_threads(), rb_vmdebug_stack_dump_raw_current(), rb_yield_refine_block(), ruby_cleanup(), ruby_options(), ruby_stack_length(), and ruby_th_dtrace_setup().
#define GET_VM | ( | ) | ruby_current_vm |
Definition at line 1582 of file vm_core.h.
Referenced by Init_load(), Init_top_self(), Init_vm_objects(), rb_clear_trace_func(), rb_get_coverages(), rb_get_expanded_load_path(), rb_get_load_path(), rb_iseq_defined_string(), rb_set_coverages(), rb_signal_exec(), rb_thread_io_blocking_region(), rb_trap_exit(), rb_vm_add_root_module(), rb_vm_bugreport(), rb_vm_fstring_table(), rb_vm_register_special_exception_str(), rb_vm_set_progname(), rb_vm_top_self(), ruby_register_rollback_func_for_ensure(), ruby_setup(), and ruby_vm_at_exit().
#define GetBindingPtr | ( | obj, | |
ptr | |||
) | GetCoreDataFromValue((obj), rb_binding_t, (ptr)) |
#define GetCoreDataFromValue | ( | obj, | |
type, | |||
ptr | |||
) | ((ptr) = CoreDataFromValue((obj), type)) |
Definition at line 264 of file vm_core.h.
Referenced by rb_backtrace_to_location_ary(), and rb_backtrace_to_str_ary().
#define GetProcPtr | ( | obj, | |
ptr | |||
) | GetCoreDataFromValue((obj), rb_proc_t, (ptr)) |
Definition at line 907 of file vm_core.h.
Referenced by rb_fiber_start(), rb_proc_call(), rb_proc_call_with_block(), rb_proc_get_iseq(), and rb_proc_lambda_p().
#define GetVMPtr | ( | obj, | |
ptr | |||
) | GetCoreDataFromValue((obj), rb_vm_t, (ptr)) |
#define rb_thread_set_current | ( | th | ) |
#define rb_thread_set_current_raw | ( | th | ) | (void)(ruby_current_thread = (th)) |
Definition at line 1585 of file vm_core.h.
Referenced by Init_BareVM().
#define rb_vm_register_special_exception | ( | sp, | |
e, | |||
m | |||
) | rb_vm_register_special_exception_str(sp, e, rb_usascii_str_new_static((m), (long)rb_strlen_lit(m))) |
#define RUBY_CONST_ASSERT | ( | expr | ) | (1/!!(expr)) /* expr must be a compile-time constant */ |
#define RUBY_NSIG NSIG |
Definition at line 97 of file vm_core.h.
Referenced by rb_vm_mark().
#define RUBY_VM_CHECK_INTS | ( | th | ) | ruby_vm_check_ints(th) |
Definition at line 1627 of file vm_core.h.
Referenced by ruby_cleanup().
#define RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P | ( | th, | |
cfp | |||
) | (!RUBY_VM_VALID_CONTROL_FRAME_P((cfp), RUBY_VM_END_CONTROL_FRAME(th))) |
Definition at line 1244 of file vm_core.h.
Referenced by rb_vm_get_binding_creatable_next_cfp(), and rb_vm_get_ruby_level_next_cfp().
#define RUBY_VM_END_CONTROL_FRAME | ( | th | ) | ((rb_control_frame_t *)((th)->ec.vm_stack + (th)->ec.vm_stack_size)) |
Definition at line 1240 of file vm_core.h.
Referenced by rb_profile_frames().
#define RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) /* 256 KB or 512 KB */ |
#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
#define RUBY_VM_INTERRUPTED | ( | th | ) | ((th)->interrupt_flag & ~(th)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK)) |
Definition at line 1609 of file vm_core.h.
Referenced by rb_thread_interrupted().
#define RUBY_VM_INTERRUPTED_ANY | ( | th | ) | ((th)->interrupt_flag & ~(th)->interrupt_mask) |
#define RUBY_VM_PREVIOUS_CONTROL_FRAME | ( | cfp | ) | ((cfp)+1) |
Definition at line 1238 of file vm_core.h.
Referenced by rb_vm_get_binding_creatable_next_cfp().
#define RUBY_VM_SET_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, PENDING_INTERRUPT_MASK) |
Definition at line 1606 of file vm_core.h.
Referenced by rb_fiber_start().
#define RUBY_VM_SET_POSTPONED_JOB_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, POSTPONED_JOB_INTERRUPT_MASK) |
Definition at line 1607 of file vm_core.h.
Referenced by rb_postponed_job_register_one().
#define RUBY_VM_SET_TIMER_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, TIMER_INTERRUPT_MASK) |
#define RUBY_VM_SET_TRAP_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, TRAP_INTERRUPT_MASK) |
#define RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define RUBY_VM_THREAD_VM_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
#define RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
#define RUBY_VM_VALID_CONTROL_FRAME_P | ( | cfp, | |
ecfp | |||
) | ((void *)(ecfp) > (void *)(cfp)) |
#define RUBYVM_CFUNC_FRAME_P | ( | cfp | ) | (VM_FRAME_TYPE(cfp) == VM_FRAME_MAGIC_CFUNC) |
#define SDR | ( | ) | rb_vmdebug_stack_dump_raw(GET_THREAD(), GET_THREAD()->ec.cfp) |
Definition at line 1473 of file vm_core.h.
Referenced by rb_vm_bugreport().
#define SDR2 | ( | cfp | ) | rb_vmdebug_stack_dump_raw(GET_THREAD(), (cfp)) |
Definition at line 1474 of file vm_core.h.
Referenced by rb_vmdebug_debug_print_post().
#define sysstack_error GET_VM()->special_exceptions[ruby_error_sysstack] |
#define TAG_BREAK RUBY_TAG_BREAK |
Definition at line 166 of file vm_core.h.
Referenced by rb_vm_make_jump_tag_but_local_jump().
#define TAG_FATAL RUBY_TAG_FATAL |
Definition at line 172 of file vm_core.h.
Referenced by rb_fiber_start(), and rb_jump_tag().
#define TAG_MASK RUBY_TAG_MASK |
#define TAG_NEXT RUBY_TAG_NEXT |
Definition at line 167 of file vm_core.h.
Referenced by rb_vm_make_jump_tag_but_local_jump().
#define TAG_NONE RUBY_TAG_NONE |
Definition at line 164 of file vm_core.h.
Referenced by rb_eval_cmd(), rb_eval_string_wrap(), rb_exec_end_proc(), rb_fiber_start(), rb_load_protect(), rb_postponed_job_flush(), rb_require_internal(), rb_thread_io_blocking_region(), rb_thread_terminate_all(), rb_threadptr_error_print(), ruby_cleanup(), ruby_options(), and ruby_setup().
#define TAG_RAISE RUBY_TAG_RAISE |
Definition at line 170 of file vm_core.h.
Referenced by rb_fiber_start(), rb_require_safe(), and rb_threadptr_stack_overflow().
#define TAG_REDO RUBY_TAG_REDO |
Definition at line 169 of file vm_core.h.
Referenced by rb_vm_make_jump_tag_but_local_jump().
#define TAG_RETRY RUBY_TAG_RETRY |
Definition at line 168 of file vm_core.h.
Referenced by rb_vm_make_jump_tag_but_local_jump().
#define TAG_RETURN RUBY_TAG_RETURN |
Definition at line 165 of file vm_core.h.
Referenced by rb_require_safe(), rb_vm_make_jump_tag_but_local_jump(), and ruby_require_internal().
#define TAG_THROW RUBY_TAG_THROW |
#define VM_ASSERT | ( | expr | ) | ((void)0) |
Definition at line 53 of file vm_core.h.
Referenced by rb_execution_context_mark(), rb_fiber_start(), rb_iseq_pathobj_new(), rb_proc_create(), rb_proc_create_from_captured(), and rb_thread_recycle_stack_release().
#define VM_BLOCK_HANDLER_NONE 0 |
Definition at line 1135 of file vm_core.h.
Referenced by rb_block_given_p(), rb_block_min_max_arity(), rb_fiber_start(), and rb_proc_call().
#define VM_CALL_ARGS_BLOCKARG (0x01 << VM_CALL_ARGS_BLOCKARG_bit) |
#define VM_CALL_ARGS_SIMPLE (0x01 << VM_CALL_ARGS_SIMPLE_bit) |
#define VM_CALL_ARGS_SPLAT (0x01 << VM_CALL_ARGS_SPLAT_bit) |
#define VM_DEFINECLASS_HAS_SUPERCLASS_P | ( | x | ) | ((x) & VM_DEFINECLASS_FLAG_HAS_SUPERCLASS) |
#define VM_DEFINECLASS_SCOPED_P | ( | x | ) | ((x) & VM_DEFINECLASS_FLAG_SCOPED) |
#define VM_DEFINECLASS_TYPE | ( | x | ) | ((rb_vm_defineclass_type_t)(x) & VM_DEFINECLASS_TYPE_MASK) |
#define VM_ENV_DATA_SIZE ( 3) |
Definition at line 1047 of file vm_core.h.
Referenced by rb_insn_operand_intern().
#define VM_ENV_INDEX_LAST_LVAR (-VM_ENV_DATA_SIZE) |
#define VM_GUARDED_PREV_EP | ( | ep | ) | GC_GUARDED_PTR(ep) |
#define VM_STACK_OVERFLOWED_P | ( | cfp, | |
sp, | |||
margin | |||
) |
#define VM_TAGGED_PTR_REF | ( | v, | |
mask | |||
) | ((void *)((v) & ~mask)) |
#define VM_TAGGED_PTR_SET | ( | p, | |
tag | |||
) | ((VALUE)(p) | (tag)) |
#define VM_UNREACHABLE | ( | func | ) | UNREACHABLE |
#define VMDEBUG 0 |
#define WHEN_VM_STACK_OVERFLOWED | ( | cfp, | |
sp, | |||
margin | |||
) | if (LIKELY(!VM_STACK_OVERFLOWED_P(cfp, sp, margin))) {(void)0;} else /* overflowed */ |
typedef struct rb_call_cache* CALL_CACHE |
typedef struct rb_call_info* CALL_INFO |
typedef struct iseq_inline_cache_entry* IC |
typedef struct rb_at_exit_list rb_at_exit_list |
typedef struct rb_compile_option_struct rb_compile_option_t |
typedef struct rb_control_frame_struct rb_control_frame_t |
typedef struct rb_ensure_entry rb_ensure_entry_t |
typedef struct rb_ensure_list rb_ensure_list_t |
typedef struct rb_execution_context_struct rb_execution_context_t |
typedef struct rb_fiber_struct rb_fiber_t |
typedef struct rb_hook_list_struct rb_hook_list_t |
typedef rb_control_frame_t* FUNC_FASTCALL rb_insn_func_t(rb_thread_t *, rb_control_frame_t *) |
typedef struct rb_iseq_location_struct rb_iseq_location_t |
typedef RUBY_JMP_BUF rb_jmpbuf_t |
typedef char rb_thread_id_string_t[sizeof(rb_nativethread_id_t) *2+3] |
typedef struct rb_thread_list_struct rb_thread_list_t |
typedef struct rb_thread_struct rb_thread_t |
typedef void rb_vm_at_exit_func(struct rb_vm_struct *) |
typedef struct rb_vm_struct rb_vm_t |
typedef VALUE(* vm_call_handler) (struct rb_thread_struct *th, struct rb_control_frame_struct *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc) |
anonymous enum |
anonymous enum |
enum rb_block_type |
enum rb_thread_status |
enum ruby_basic_operators |
enum ruby_tag_type |
enum ruby_vm_throw_flags |
enum vm_call_flag_bits |
enum vm_check_match_type |
enum vm_svar_index |
NORETURN | ( | void | rb_bug_contextconst void *, const char *fmt,... | ) |
Definition at line 2015 of file variable.c.
const VALUE* rb_binding_add_dynavars | ( | VALUE | bindval, |
rb_binding_t * | bind, | ||
int | dyncount, | ||
const ID * | dynvars | ||
) |
Definition at line 926 of file vm.c.
References rb_binding_t::pathobj.
Definition at line 300 of file proc.c.
References TypedData_Make_Struct.
VALUE rb_catch_protect | ( | VALUE | t, |
rb_block_call_func * | func, | ||
VALUE | data, | ||
enum ruby_tag_type * | stateptr | ||
) |
void rb_execution_context_mark | ( | const rb_execution_context_t * | ec | ) |
Definition at line 2371 of file vm.c.
References rb_execution_context_struct::cfp, rb_control_frame_struct::ep, rb_gc_mark_values(), rb_control_frame_struct::sp, VM_ASSERT, rb_execution_context_struct::vm_stack, and rb_execution_context_struct::vm_stack_size.
Referenced by rb_thread_mark().
void rb_gc_mark_machine_stack | ( | const rb_execution_context_t * | ec | ) |
Definition at line 4274 of file gc.c.
References GET_STACK_BOUNDS, and rb_objspace.
VALUE rb_get_coverages | ( | void | ) |
Definition at line 680 of file iseq.c.
References Qnil, and rb_iseq_compile_with_option().
rb_iseq_t* rb_iseq_compile_on_base | ( | VALUE | src, |
VALUE | file, | ||
VALUE | line, | ||
const struct rb_block * | base_block | ||
) |
Definition at line 686 of file iseq.c.
References Qnil, and rb_iseq_compile_with_option().
rb_iseq_t* rb_iseq_compile_with_option | ( | VALUE | src, |
VALUE | file, | ||
VALUE | realpath, | ||
VALUE | line, | ||
const struct rb_block * | base_block, | ||
VALUE | opt | ||
) |
Definition at line 632 of file iseq.c.
References GET_THREAD, and NULL.
Referenced by rb_iseq_compile(), and rb_iseq_compile_on_base().
Definition at line 743 of file iseq.c.
References ISEQ_COVERAGE.
Definition at line 1515 of file iseq.c.
References rb_iseq_struct::body, rb_iseq_constant_body::iseq_size, rb_ary_tmp_new(), rb_secure(), rb_str_cat2(), rb_str_concat(), rb_str_new(), and size.
int rb_iseq_disasm_insn | ( | VALUE | str, |
const VALUE * | iseqval, | ||
size_t | pos, | ||
const rb_iseq_t * | iseq, | ||
VALUE | child | ||
) |
Disassemble a instruction Iseq -> Iseq inspect object.
Definition at line 1431 of file iseq.c.
References len, PRIuSIZE, rb_insn_operand_intern(), rb_str_cat2(), rb_str_catf(), rb_str_concat(), and rb_str_new().
Referenced by rb_vmdebug_debug_print_pre().
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_iseq_eval | ( | const rb_iseq_t * | iseq | ) |
Definition at line 2027 of file vm.c.
References GET_THREAD, and rb_captured_block::val.
Definition at line 2037 of file vm.c.
References GET_THREAD, and rb_captured_block::val.
RUBY_SYMBOL_EXPORT_BEGIN rb_iseq_t* rb_iseq_new | ( | NODE * | node, |
VALUE | name, | ||
VALUE | path, | ||
VALUE | realpath, | ||
const rb_iseq_t * | parent, | ||
enum | iseq_type | ||
) |
Definition at line 458 of file iseq.c.
References INT2FIX, and rb_iseq_new_with_opt().
Referenced by rb_vm_call_cfunc().
Definition at line 473 of file iseq.c.
References INT2FIX, rb_fstring_cstr(), and rb_iseq_new_with_opt().
rb_iseq_t* rb_iseq_new_top | ( | NODE * | node, |
VALUE | name, | ||
VALUE | path, | ||
VALUE | realpath, | ||
const rb_iseq_t * | parent | ||
) |
Definition at line 466 of file iseq.c.
References INT2FIX, and rb_iseq_new_with_opt().
rb_iseq_t* rb_iseq_new_with_opt | ( | NODE * | node, |
VALUE | name, | ||
VALUE | path, | ||
VALUE | realpath, | ||
VALUE | first_lineno, | ||
const rb_iseq_t * | parent, | ||
enum | iseq_type, | ||
const rb_compile_option_t * | |||
) |
Definition at line 495 of file iseq.c.
References iseq_alloc().
Referenced by rb_iseq_new(), rb_iseq_new_main(), and rb_iseq_new_top().
Definition at line 692 of file iseq.c.
Referenced by rb_source_location(), rb_sourcefile(), rb_sourcefilename(), and rb_thread_current_status().
RUBY_SYMBOL_EXPORT_END VALUE rb_iseq_pathobj_new | ( | VALUE | path, |
VALUE | realpath | ||
) |
Definition at line 217 of file iseq.c.
References NIL_P, Qnil, rb_ary_new_from_args(), rb_fstring(), rb_obj_freeze(), rb_str_cmp(), RB_TYPE_P, T_STRING, and VM_ASSERT.
Referenced by rb_iseq_pathobj_set().
Definition at line 236 of file iseq.c.
References rb_iseq_struct::body, rb_iseq_constant_body::location, rb_iseq_location_struct::pathobj, rb_iseq_pathobj_new(), and RB_OBJ_WRITE.
Referenced by rb_vm_set_progname().
Definition at line 698 of file iseq.c.
Referenced by rb_iseq_absolute_path(), and rb_vm_set_progname().
struct rb_objspace* rb_objspace_alloc | ( | void | ) |
Definition at line 1327 of file gc.c.
References calloc, malloc_limit, ruby_gc_params_t::malloc_limit_min, and rb_objspace.
void rb_objspace_free | ( | struct rb_objspace * | ) |
Definition at line 1343 of file gc.c.
References free(), global_list, heap_allocated_pages, heap_eden, heap_pages_sorted, is_lazy_sweeping, list, gc_list::next, rb_objspace::profile, rb_bug(), rb_objspace::records, and xfree().
void rb_postponed_job_flush | ( | rb_vm_t * | vm | ) |
Definition at line 1592 of file vm_trace.c.
References ATOMIC_CAS, rb_postponed_job_struct::data, rb_thread_struct::ec, rb_execution_context_struct::errinfo, EXEC_TAG, rb_postponed_job_struct::func, GET_THREAD, rb_thread_struct::interrupt_mask, rb_vm_struct::postponed_job_buffer, rb_vm_struct::postponed_job_index, POSTPONED_JOB_INTERRUPT_MASK, Qnil, TAG_NONE, TH_POP_TAG, TH_PUSH_TAG, and TRAP_INTERRUPT_MASK.
Definition at line 109 of file proc.c.
References TypedData_Make_Struct.
Referenced by rb_proc_create(), and rb_proc_create_from_captured().
void rb_reset_coverages | ( | void | ) |
Definition at line 5072 of file thread.c.
References rb_get_coverages(), rb_hash_tbl_raw(), and st_foreach.
void rb_set_coverages | ( | VALUE | , |
int | |||
) |
Definition at line 5050 of file thread.c.
References GET_VM, and rb_add_event_hook2().
int rb_signal_buff_size | ( | void | ) |
Definition at line 711 of file signal.c.
Referenced by rb_thread_check_trap_pending(), and rb_threadptr_check_signal().
void rb_signal_exec | ( | rb_thread_t * | th, |
int | sig | ||
) |
Definition at line 1036 of file signal.c.
References rb_vm_struct::cmd, GET_VM, Qundef, rb_interrupt(), rb_threadptr_signal_exit(), rb_threadptr_signal_raise(), rb_vm_struct::safe, SIGINT, and rb_vm_struct::trap_list.
RUBY_SYMBOL_EXPORT_BEGIN int rb_thread_check_trap_pending | ( | void | ) |
Definition at line 1230 of file thread.c.
References rb_signal_buff_size().
int rb_thread_method_id_and_class | ( | rb_thread_t * | th, |
ID * | idp, | ||
ID * | called_idp, | ||
VALUE * | klassp | ||
) |
Definition at line 2064 of file vm.c.
References rb_execution_context_struct::cfp, rb_thread_struct::ec, and rb_vm_control_frame_id_and_class().
Referenced by rb_frame_method_id_and_class(), and ruby_th_dtrace_setup().
void rb_thread_wakeup_timer_thread | ( | void | ) |
void rb_threadptr_check_signal | ( | rb_thread_t * | mth | ) |
Definition at line 4029 of file thread.c.
References rb_signal_buff_size(), and rb_threadptr_trap_interrupt().
Referenced by ruby_cleanup().
void rb_threadptr_error_print | ( | rb_thread_t *volatile | th, |
volatile VALUE | errinfo | ||
) |
Definition at line 167 of file eval_error.c.
References CLASS_OF, rb_thread_struct::ec, NIL_P, Qnil, Qundef, rb_execution_context_struct::raised_flag, rb_check_funcall(), rb_check_string_type(), rb_get_backtrace(), rb_intern, rb_stderr_tty_p(), rb_thread_raised_clear, RB_TYPE_P, T_STRING, TAG_NONE, TH_EXEC_TAG, TH_PUSH_TAG, and warn_print.
Referenced by rb_f_abort().
void rb_threadptr_exec_event_hooks | ( | struct rb_trace_arg_struct * | trace_arg | ) |
Definition at line 370 of file vm_trace.c.
void rb_threadptr_exec_event_hooks_and_pop_frame | ( | struct rb_trace_arg_struct * | trace_arg | ) |
Definition at line 364 of file vm_trace.c.
void rb_threadptr_execute_interrupts | ( | rb_thread_t * | , |
int | |||
) |
Definition at line 2029 of file thread.c.
References rb_thread_struct::ec, and rb_execution_context_struct::raised_flag.
Referenced by rb_thread_execute_interrupts().
void rb_threadptr_interrupt | ( | rb_thread_t * | th | ) |
Definition at line 433 of file thread.c.
Referenced by rb_notify_fd_close(), and ruby_cleanup().
int rb_threadptr_pending_interrupt_active_p | ( | rb_thread_t * | th | ) |
Definition at line 1716 of file thread.c.
References rb_thread_struct::pending_interrupt_queue_checked.
void rb_threadptr_pending_interrupt_clear | ( | rb_thread_t * | th | ) |
Definition at line 1589 of file thread.c.
References rb_thread_struct::pending_interrupt_queue, and rb_ary_clear().
void rb_threadptr_pending_interrupt_enque | ( | rb_thread_t * | th, |
VALUE | v | ||
) |
Definition at line 1595 of file thread.c.
References rb_thread_struct::pending_interrupt_queue, rb_thread_struct::pending_interrupt_queue_checked, and rb_ary_push().
Referenced by rb_fiber_start(), and rb_notify_fd_close().
void rb_threadptr_signal_exit | ( | rb_thread_t * | th | ) |
Definition at line 2159 of file thread.c.
References rb_eSystemExit, and rb_str_new2.
Referenced by rb_signal_exec().
void rb_threadptr_signal_raise | ( | rb_thread_t * | th, |
int | sig | ||
) |
Definition at line 2149 of file thread.c.
References INT2FIX, and rb_eSignal.
Referenced by rb_signal_exec().
void rb_threadptr_unlock_all_locking_mutexes | ( | rb_thread_t * | th | ) |
Definition at line 462 of file thread.c.
References err, rb_thread_struct::keeping_mutexes, and rb_mutex_struct::next_mutex.
Referenced by rb_thread_terminate_all().
Definition at line 271 of file vm.c.
References rb_block::as, rb_block::captured, rb_captured_block::ep, Qundef, and RB_OBJ_WRITTEN.
Referenced by rb_proc_create_from_captured().
void rb_vm_bugreport | ( | const void * | ) |
Definition at line 950 of file vm_dump.c.
References buf, CLASS_OF, feof, GET_VM, rb_trace_arg_struct::klass, len, LIMITED_NAME_LENGTH, rb_vm_struct::loaded_features, name, NULL, rb_vm_struct::progname, RARRAY_AREF, RARRAY_LEN, rb_backtrace_print_as_bugreport(), rb_class_real(), rb_dump_machine_register, rb_obj_class(), rb_print_backtrace(), rb_search_class_path(), RB_TYPE_P, RSTRING_PTR, SDR, T_CLASS, T_MODULE, and T_STRING.
VALUE rb_vm_call | ( | rb_thread_t * | th, |
VALUE | recv, | ||
VALUE | id, | ||
int | argc, | ||
const VALUE * | argv, | ||
const rb_callable_method_entry_t * | me | ||
) |
void rb_vm_change_state | ( | void | ) |
int rb_vm_control_frame_id_and_class | ( | const rb_control_frame_t * | cfp, |
ID * | idp, | ||
ID * | called_idp, | ||
VALUE * | klassp | ||
) |
Definition at line 2048 of file vm.c.
References rb_callable_method_entry_struct::called_id, rb_callable_method_entry_struct::def, FALSE, rb_callable_method_entry_struct::owner, rb_vm_frame_method_entry(), and TRUE.
Referenced by rb_thread_method_id_and_class().
Definition at line 741 of file vm.c.
References rb_env_t::ep.
Referenced by rb_vmdebug_env_dump_raw().
VALUE rb_vm_frame_block_handler | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 82 of file vm.c.
Referenced by rb_block_given_p(), and rb_block_min_max_arity().
const rb_callable_method_entry_t* rb_vm_frame_method_entry | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 536 of file vm_insnhelper.c.
References rb_control_frame_struct::ep.
Referenced by rb_profile_frames(), rb_thread_current_status(), rb_vm_control_frame_id_and_class(), and rb_vm_pop_cfunc_frame().
rb_control_frame_t* rb_vm_get_binding_creatable_next_cfp | ( | const rb_thread_t * | th, |
const rb_control_frame_t * | cfp | ||
) |
Definition at line 486 of file vm.c.
References rb_control_frame_struct::iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by rb_tracearg_binding(), rb_vm_make_binding(), and rb_vm_stack_to_heap().
rb_control_frame_t* rb_vm_get_ruby_level_next_cfp | ( | const rb_thread_t * | th, |
const rb_control_frame_t * | cfp | ||
) |
Definition at line 498 of file vm.c.
References RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P.
Referenced by rb_source_location(), rb_sourcefile(), rb_sourcefilename(), rb_sourceline(), rb_vm_cbase(), rb_vm_cref(), rb_vm_cref_in_context(), rb_vm_cref_replace_with_duplicated_cref(), and rb_vm_make_binding().
int rb_vm_get_sourceline | ( | const rb_control_frame_t * | ) |
Definition at line 38 of file vm_backtrace.c.
Referenced by rb_source_location(), rb_sourceline(), and rb_thread_current_status().
void rb_vm_gvl_destroy | ( | rb_vm_t * | vm | ) |
Definition at line 348 of file thread.c.
References rb_vm_struct::thread_destruct_lock.
void rb_vm_inc_const_missing_count | ( | void | ) |
Definition at line 330 of file vm.c.
References rb_class_path_no_cache().
VALUE rb_vm_invoke_proc | ( | rb_thread_t * | th, |
rb_proc_t * | proc, | ||
int | argc, | ||
const VALUE * | argv, | ||
VALUE | block_handler | ||
) |
Definition at line 1172 of file vm.c.
Referenced by rb_fiber_start(), rb_proc_call(), and rb_proc_call_with_block().
VALUE rb_vm_make_binding | ( | rb_thread_t * | th, |
const rb_control_frame_t * | src_cfp | ||
) |
Definition at line 895 of file vm.c.
References rb_eRuntimeError, rb_raise(), rb_vm_get_binding_creatable_next_cfp(), and rb_vm_get_ruby_level_next_cfp().
Referenced by rb_binding_new(), and rb_tracearg_binding().
VALUE rb_vm_make_proc | ( | rb_thread_t * | th, |
const struct rb_captured_block * | captured, | ||
VALUE | klass | ||
) |
Definition at line 868 of file vm.c.
References FALSE, and rb_vm_make_proc_lambda().
VALUE rb_vm_make_proc_lambda | ( | rb_thread_t * | th, |
const struct rb_captured_block * | captured, | ||
VALUE | klass, | ||
int8_t | is_lambda | ||
) |
Definition at line 874 of file vm.c.
Referenced by rb_vm_make_proc().
void rb_vm_pop_frame | ( | rb_thread_t * | th | ) |
Definition at line 302 of file vm_insnhelper.c.
Definition at line 565 of file thread.c.
Referenced by rb_fiber_start().
void rb_vm_register_special_exception_str | ( | enum ruby_special_exceptions | sp, |
VALUE | exception_class, | ||
VALUE | mesg | ||
) |
Definition at line 2161 of file vm.c.
References GET_VM, OBJ_FREEZE, OBJ_TAINT, rb_exc_new3, rb_gc_register_mark_object(), rb_obj_freeze(), and rb_vm_struct::special_exceptions.
void rb_vm_rewind_cfp | ( | rb_thread_t * | th, |
rb_control_frame_t * | cfp | ||
) |
Definition at line 544 of file vm.c.
References rb_execution_context_struct::cfp, and rb_thread_struct::ec.
void rb_vm_rewrite_cref | ( | rb_cref_t * | node, |
VALUE | old_klass, | ||
VALUE | new_klass, | ||
rb_cref_t ** | new_cref_ptr | ||
) |
Definition at line 713 of file vm_insnhelper.c.
void rb_vm_stack_to_heap | ( | rb_thread_t * | th | ) |
Definition at line 731 of file vm.c.
References rb_execution_context_struct::cfp, rb_thread_struct::ec, and rb_vm_get_binding_creatable_next_cfp().
void rb_vmdebug_debug_print_post | ( | rb_thread_t * | th, |
rb_control_frame_t * | cfp | ||
) |
Definition at line 362 of file vm_dump.c.
References rb_execution_context_struct::cfp, rb_thread_struct::ec, rb_inspect(), rb_vmdebug_debug_print_register(), SDR2, and StringValueCStr.
void rb_vmdebug_debug_print_pre | ( | rb_thread_t * | th, |
rb_control_frame_t * | cfp, | ||
const VALUE * | _pc | ||
) |
Definition at line 333 of file vm_dump.c.
References rb_iseq_struct::body, rb_thread_struct::ec, rb_control_frame_struct::iseq, rb_iseq_constant_body::iseq_encoded, rb_iseq_disasm_insn(), rb_iseq_original_iseq(), rb_vmdebug_debug_print_register(), rb_control_frame_struct::sp, VM_CFP_CNT, and rb_execution_context_struct::vm_stack.
void rb_vmdebug_stack_dump_raw | ( | rb_thread_t * | , |
rb_control_frame_t * | |||
) |
Definition at line 141 of file vm_dump.c.
References rb_thread_struct::ec, rb_control_frame_struct::ep, GC_GUARDED_PTR_REF, PRIxVALUE, rb_control_frame_struct::sp, rb_execution_context_struct::vm_stack, and rb_execution_context_struct::vm_stack_size.
Referenced by rb_vmdebug_stack_dump_all_threads(), and rb_vmdebug_stack_dump_raw_current().
const char* ruby_node_name | ( | int | node | ) |
void ruby_thread_init_stack | ( | rb_thread_t * | th | ) |
STATIC_ASSERT | ( | rb_vm_tag_buf_end | ) |
RUBY_EXTERN VALUE rb_cISeq |
RUBY_EXTERN VALUE rb_cRubyVM |
RUBY_EXTERN VALUE rb_mRubyVMFrozenCore |
const rb_data_type_t ruby_binding_data_type |
RUBY_SYMBOL_EXPORT_BEGIN rb_thread_t* ruby_current_thread |
const rb_data_type_t ruby_threadptr_data_type |
rb_event_flag_t ruby_vm_event_flags |