Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

Macros | Functions | Variables
vm_dump.c File Reference
`#include "internal.h"`
`#include "addr2line.h"`
`#include "vm_core.h"`
`#include "iseq.h"`
`#include "gc.h"`

Go to the source code of this file.

## Macros
#define | MAX_POSBUF 128
#define | VM_CFP_CNT(ec, cfp)
#define | RUBY_VM_IFUNC_P(ptr) imemo_type_p((VALUE)ptr, imemo_ifunc)
#define | HAVE_BACKTRACE 0
#define | rb_dump_machine_register(ctx) ((void)0)
#define | LIMITED_NAME_LENGTH(s) (((len = RSTRING_LEN(s)) > max_name_length) ? max_name_length : (int)len)

## Functions
const char * | rb_method_type_name (rb_method_type_t type)
void | rb_vmdebug_stack_dump_raw (const rb_execution_context_t *ec, const rb_control_frame_t *cfp)
void | rb_vmdebug_stack_dump_raw_current (void)
void | rb_vmdebug_env_dump_raw (const rb_env_t *env, const VALUE *ep)
void | rb_vmdebug_proc_dump_raw (rb_proc_t *proc)
void | rb_vmdebug_stack_dump_th (VALUE thval)
void | rb_vmdebug_debug_print_register (const rb_execution_context_t *ec)
void | rb_vmdebug_thread_dump_regs (VALUE thval)
void | rb_vmdebug_debug_print_pre (const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE *_pc)
void | rb_vmdebug_debug_print_post (const rb_execution_context_t *ec, const rb_control_frame_t *cfp)
VALUE | rb_vmdebug_thread_dump_state (VALUE self)
void | rb_print_backtrace (void)
void | rb_vm_bugreport (const void *ctx)
void | rb_vmdebug_stack_dump_all_threads (void)

## Variables
int | ruby_on_ci

## Macro Definition Documentation

## ◆ HAVE_BACKTRACE

#define HAVE_BACKTRACE 0

Definition at line 576 of file vm_dump.c.

## ◆ LIMITED_NAME_LENGTH

#define LIMITED_NAME_LENGTH | ( |  | s | ) | (((len = RSTRING_LEN(s)) > max_name_length) ? max_name_length : (int)len)

## ◆ MAX_POSBUF

#define MAX_POSBUF 128

Definition at line 37 of file vm_dump.c.

## ◆ rb_dump_machine_register

#define rb_dump_machine_register | ( |  | ctx | ) | ((void)0)

Definition at line 914 of file vm_dump.c.

## ◆ RUBY_VM_IFUNC_P

#define RUBY_VM_IFUNC_P | ( |  | ptr | ) | imemo_type_p((VALUE)ptr, imemo_ifunc)

## ◆ VM_CFP_CNT

#define VM_CFP_CNT | ( |  | ec,
|  |  | cfp
| ) |  |

Value:
((rb_control_frame_t *)((ec)->vm_stack + (ec)->vm_stack_size) - \
(rb_control_frame_t *)(cfp))

Definition at line 39 of file vm_dump.c.

## Function Documentation

## ◆ rb_method_type_name()

const char* rb_method_type_name | ( | rb_method_type_t | type | ) |

Definition at line 11378 of file gc.c.

References rb_bug(), VM_METHOD_TYPE_ALIAS, VM_METHOD_TYPE_ATTRSET, VM_METHOD_TYPE_BMETHOD, VM_METHOD_TYPE_CFUNC, VM_METHOD_TYPE_ISEQ, VM_METHOD_TYPE_IVAR, VM_METHOD_TYPE_MISSING, VM_METHOD_TYPE_NOTIMPLEMENTED, VM_METHOD_TYPE_OPTIMIZED, VM_METHOD_TYPE_REFINED, VM_METHOD_TYPE_UNDEF, and VM_METHOD_TYPE_ZSUPER.

## ◆ rb_print_backtrace()

void rb_print_backtrace | ( | void |  | ) |

Definition at line 750 of file vm_dump.c.

References fprintf(), free, i, int, n, and stderr.

Referenced by rb_fatal(), and rb_vm_bugreport().

## ◆ rb_vm_bugreport()

void rb_vm_bugreport | ( | const void * | ctx | ) |

Definition at line 918 of file vm_dump.c.

References CLASS_OF, count, fclose(), feof(), fopen(), fprintf(), fputs(), fread(), fwrite(), GET_VM, getpid(), i, klass, len, LIMITED_NAME_LENGTH, rb_vm_struct::loaded_features, name, NULL, PATH_MAX, perror(), procstat_vm(), 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, size, stderr, T_CLASS, T_MODULE, and T_STRING.

## ◆ rb_vmdebug_debug_print_post()

void rb_vmdebug_debug_print_post | ( | const rb_execution_context_t * | ec,
|  | const rb_control_frame_t * | cfp
| ) |  |

Definition at line 414 of file vm_dump.c.

References rb_execution_context_struct::cfp, cfp, rb_trace_arg_struct::ec, fprintf(), printf(), rb_inspect(), rb_vmdebug_debug_print_register(), SDR2, stderr, and StringValueCStr.

## ◆ rb_vmdebug_debug_print_pre()

void rb_vmdebug_debug_print_pre | ( | const rb_execution_context_t * | ec,
|  | const rb_control_frame_t * | cfp,
|  | const VALUE * | _pc
| ) |  |

Definition at line 385 of file vm_dump.c.

References rb_iseq_struct::body, cfp, rb_trace_arg_struct::ec, fprintf(), i, int, rb_control_frame_struct::iseq, iseq, rb_iseq_constant_body::iseq_encoded, pc, printf(), rb_iseq_disasm_insn(), rb_iseq_original_iseq(), rb_vmdebug_debug_print_register(), rb_control_frame_struct::sp, stderr, VM_CFP_CNT, and rb_execution_context_struct::vm_stack.

## ◆ rb_vmdebug_debug_print_register()

void rb_vmdebug_debug_print_register | ( | const rb_execution_context_t * | ec | ) |

Definition at line 358 of file vm_dump.c.

References rb_execution_context_struct::cfp, cfp, rb_trace_arg_struct::ec, rb_control_frame_struct::ep, pc, and rb_execution_context_struct::vm_stack.

Referenced by rb_vmdebug_debug_print_post(), rb_vmdebug_debug_print_pre(), and rb_vmdebug_thread_dump_regs().

## ◆ rb_vmdebug_env_dump_raw()

void rb_vmdebug_env_dump_raw | ( | const rb_env_t * | env,
|  | const VALUE * | ep
| ) |  |

Definition at line 232 of file vm_dump.c.

References env, fprintf(), i, PRIxVALUE, rb_vm_env_prev_env(), and stderr.

## ◆ rb_vmdebug_proc_dump_raw()

void rb_vmdebug_proc_dump_raw | ( | rb_proc_t * | proc | ) |

Definition at line 251 of file vm_dump.c.

References env, and rb_inspect().

## ◆ rb_vmdebug_stack_dump_all_threads()

void rb_vmdebug_stack_dump_all_threads | ( | void |  | ) |

Definition at line 1079 of file vm_dump.c.

References buf, fprintf(), GET_VM, list_for_each, rb_vm_struct::living_threads, NULL, rb_vmdebug_stack_dump_raw(), stderr, and rb_thread_struct::thread_id.

## ◆ rb_vmdebug_stack_dump_raw()

void rb_vmdebug_stack_dump_raw | ( | const rb_execution_context_t * | ec,
|  | const rb_control_frame_t * | cfp
| ) |  |

Definition at line 192 of file vm_dump.c.

References cfp, rb_trace_arg_struct::ec, rb_control_frame_struct::ep, fprintf(), GC_GUARDED_PTR_REF, PRIxVALUE, rb_control_frame_struct::sp, st, stderr, 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().

## ◆ rb_vmdebug_stack_dump_raw_current()

void rb_vmdebug_stack_dump_raw_current | ( | void |  | ) |

Definition at line 225 of file vm_dump.c.

References rb_execution_context_struct::cfp, rb_trace_arg_struct::ec, GET_EC, and rb_vmdebug_stack_dump_raw().

## ◆ rb_vmdebug_stack_dump_th()

void rb_vmdebug_stack_dump_th | ( | VALUE | thval | ) |

Definition at line 265 of file vm_dump.c.

## ◆ rb_vmdebug_thread_dump_regs()

void rb_vmdebug_thread_dump_regs | ( | VALUE | thval | ) |

Definition at line 379 of file vm_dump.c.

References rb_vmdebug_debug_print_register().

## ◆ rb_vmdebug_thread_dump_state()

VALUE rb_vmdebug_thread_dump_state | ( | VALUE | self | ) |

Definition at line 449 of file vm_dump.c.

## Variable Documentation

## ◆ ruby_on_ci

int ruby_on_ci

Definition at line 44 of file vm_dump.c.

Referenced by ruby_env_debug_option().

rb_control_frame_struct
Definition: vm_core.h:760
cfp
rb_control_frame_t * cfp
Definition: rb_mjit_min_header-2.7.0.h:14544