Ruby  3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
Data Structures | Macros | Typedefs | Enumerations | Functions
vm_backtrace.c File Reference

(b76ad15ed0da636161de0243c547ee1e6fc95681)

#include "eval_intern.h"
#include "internal.h"
#include "internal/error.h"
#include "internal/vm.h"
#include "iseq.h"
#include "ruby/debug.h"
#include "ruby/encoding.h"
#include "vm_core.h"
Include dependency graph for vm_backtrace.c:

Go to the source code of this file.

Data Structures

struct  rb_backtrace_location_struct
 
struct  valued_frame_info
 
struct  rb_backtrace_struct
 
struct  oldbt_arg
 
struct  print_to_arg
 
struct  rb_debug_inspector_struct
 
struct  collect_caller_bindings_data
 

Macros

#define rb_id2str(id)   id2str(id)
 
#define BACKTRACE_START   0
 
#define ALL_BACKTRACE_LINES   -1
 

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

int rb_vm_get_sourceline (const rb_control_frame_t *cfp)
 
int rb_frame_info_p (VALUE obj)
 
void rb_frame_info_get (VALUE obj, VALUE *path, int *node_id)
 
int rb_backtrace_p (VALUE obj)
 
VALUE rb_ec_backtrace_object (const rb_execution_context_t *ec)
 
VALUE rb_backtrace_to_str_ary (VALUE self)
 
void rb_backtrace_use_iseq_first_lineno_for_last_location (VALUE self)
 
VALUE rb_backtrace_to_location_ary (VALUE self)
 
VALUE rb_ec_backtrace_str_ary (const rb_execution_context_t *ec, long lev, long n)
 
VALUE rb_ec_backtrace_location_ary (const rb_execution_context_t *ec, long lev, long n, bool skip_internal)
 
void rb_backtrace_print_as_bugreport (void)
 
void rb_backtrace (void)
 
void rb_backtrace_each (VALUE(*iter)(VALUE recv, VALUE str), VALUE output)
 
VALUE rb_make_backtrace (void)
 
VALUE rb_vm_thread_backtrace (int argc, const VALUE *argv, VALUE thval)
 
VALUE rb_vm_thread_backtrace_locations (int argc, const VALUE *argv, VALUE thval)
 
VALUE rb_vm_backtrace (int argc, const VALUE *argv, struct rb_execution_context_struct *ec)
 
VALUE rb_vm_backtrace_locations (int argc, const VALUE *argv, struct rb_execution_context_struct *ec)
 
void Init_vm_backtrace (void)
 
VALUE rb_debug_inspector_open (rb_debug_inspector_func_t func, void *data)
 
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)
 

Macro Definition Documentation

◆ ALL_BACKTRACE_LINES

#define ALL_BACKTRACE_LINES   -1

Definition at line 34 of file vm_backtrace.c.

◆ BACKTRACE_START

#define BACKTRACE_START   0

Definition at line 33 of file vm_backtrace.c.

◆ rb_id2str

#define rb_id2str (   id)    id2str(id)

Definition at line 31 of file vm_backtrace.c.

Typedef Documentation

◆ rb_backtrace_location_t

◆ rb_backtrace_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CALLER_BINDING_SELF 
CALLER_BINDING_CLASS 
CALLER_BINDING_BINDING 
CALLER_BINDING_ISEQ 
CALLER_BINDING_CFP 

Definition at line 1275 of file vm_backtrace.c.

Function Documentation

◆ Init_vm_backtrace()

void Init_vm_backtrace ( void  )

Definition at line 1190 of file vm_backtrace.c.

◆ rb_backtrace()

void rb_backtrace ( void  )

Definition at line 960 of file vm_backtrace.c.

◆ rb_backtrace_each()

void rb_backtrace_each ( VALUE(*)(VALUE recv, VALUE str iter,
VALUE  output 
)

Definition at line 986 of file vm_backtrace.c.

◆ rb_backtrace_p()

int rb_backtrace_p ( VALUE  obj)

Definition at line 518 of file vm_backtrace.c.

References rb_typeddata_is_kind_of().

◆ rb_backtrace_print_as_bugreport()

void rb_backtrace_print_as_bugreport ( void  )

Definition at line 944 of file vm_backtrace.c.

References oldbt_arg::func.

◆ rb_backtrace_to_location_ary()

VALUE rb_backtrace_to_location_ary ( VALUE  self)

Definition at line 753 of file vm_backtrace.c.

References GetCoreDataFromValue, and rb_backtrace_struct::locary.

◆ rb_backtrace_to_str_ary()

VALUE rb_backtrace_to_str_ary ( VALUE  self)

Definition at line 701 of file vm_backtrace.c.

References GetCoreDataFromValue, and rb_backtrace_struct::strary.

◆ rb_backtrace_use_iseq_first_lineno_for_last_location()

void rb_backtrace_use_iseq_first_lineno_for_last_location ( VALUE  self)

◆ rb_debug_inspector_backtrace_locations()

VALUE rb_debug_inspector_backtrace_locations ( const rb_debug_inspector_t dc)

Definition at line 1448 of file vm_backtrace.c.

References rb_debug_inspector_struct::backtrace.

◆ rb_debug_inspector_frame_binding_get()

VALUE rb_debug_inspector_frame_binding_get ( const rb_debug_inspector_t dc,
long  index 
)

Definition at line 1432 of file vm_backtrace.c.

◆ rb_debug_inspector_frame_class_get()

VALUE rb_debug_inspector_frame_class_get ( const rb_debug_inspector_t dc,
long  index 
)

Definition at line 1425 of file vm_backtrace.c.

◆ rb_debug_inspector_frame_iseq_get()

VALUE rb_debug_inspector_frame_iseq_get ( const rb_debug_inspector_t dc,
long  index 
)

Definition at line 1439 of file vm_backtrace.c.

◆ rb_debug_inspector_frame_self_get()

VALUE rb_debug_inspector_frame_self_get ( const rb_debug_inspector_t dc,
long  index 
)

Definition at line 1418 of file vm_backtrace.c.

◆ rb_debug_inspector_open()

VALUE rb_debug_inspector_open ( rb_debug_inspector_func_t  func,
void *  data 
)

Definition at line 1377 of file vm_backtrace.c.

References GET_EC, and MAYBE_UNUSED.

◆ rb_ec_backtrace_object()

VALUE rb_ec_backtrace_object ( const rb_execution_context_t ec)

Definition at line 662 of file vm_backtrace.c.

◆ rb_ec_backtrace_str_ary()

VALUE rb_ec_backtrace_str_ary ( const rb_execution_context_t ec,
long  lev,
long  n 
)

Definition at line 787 of file vm_backtrace.c.

Referenced by rb_make_backtrace().

◆ rb_frame_info_get()

void rb_frame_info_get ( VALUE  obj,
VALUE path,
int *  node_id 
)

Definition at line 339 of file vm_backtrace.c.

References valued_frame_info::loc.

◆ rb_frame_info_p()

int rb_frame_info_p ( VALUE  obj)

Definition at line 170 of file vm_backtrace.c.

References rb_typeddata_is_kind_of().

◆ rb_make_backtrace()

VALUE rb_make_backtrace ( void  )

◆ rb_profile_frame_absolute_path()

VALUE rb_profile_frame_absolute_path ( VALUE  frame)

Definition at line 1554 of file vm_backtrace.c.

◆ rb_profile_frame_base_label()

VALUE rb_profile_frame_base_label ( VALUE  frame)

Definition at line 1576 of file vm_backtrace.c.

◆ rb_profile_frame_classpath()

VALUE rb_profile_frame_classpath ( VALUE  frame)

Definition at line 1605 of file vm_backtrace.c.

◆ rb_profile_frame_first_lineno()

VALUE rb_profile_frame_first_lineno ( VALUE  frame)

Definition at line 1583 of file vm_backtrace.c.

◆ rb_profile_frame_full_label()

VALUE rb_profile_frame_full_label ( VALUE  frame)

Definition at line 1674 of file vm_backtrace.c.

◆ rb_profile_frame_label()

VALUE rb_profile_frame_label ( VALUE  frame)

Definition at line 1569 of file vm_backtrace.c.

◆ rb_profile_frame_method_name()

VALUE rb_profile_frame_method_name ( VALUE  frame)

Definition at line 1634 of file vm_backtrace.c.

◆ rb_profile_frame_path()

VALUE rb_profile_frame_path ( VALUE  frame)

Definition at line 1522 of file vm_backtrace.c.

◆ rb_profile_frame_qualified_method_name()

VALUE rb_profile_frame_qualified_method_name ( VALUE  frame)

Definition at line 1666 of file vm_backtrace.c.

◆ rb_profile_frame_singleton_method_p()

VALUE rb_profile_frame_singleton_method_p ( VALUE  frame)

Definition at line 1626 of file vm_backtrace.c.

◆ rb_profile_frames()

int rb_profile_frames ( int  start,
int  limit,
VALUE buff,
int *  lines 
)

Definition at line 1454 of file vm_backtrace.c.

References rb_execution_context_struct::cfp, and GET_EC.

◆ rb_vm_backtrace()

VALUE rb_vm_backtrace ( int  argc,
const VALUE argv,
struct rb_execution_context_struct ec 
)

Definition at line 1106 of file vm_backtrace.c.

◆ rb_vm_backtrace_locations()

VALUE rb_vm_backtrace_locations ( int  argc,
const VALUE argv,
struct rb_execution_context_struct ec 
)

Definition at line 1111 of file vm_backtrace.c.

◆ rb_vm_get_sourceline()

int rb_vm_get_sourceline ( const rb_control_frame_t cfp)

Definition at line 99 of file vm_backtrace.c.

Referenced by rb_sourceline().

◆ rb_vm_thread_backtrace()

VALUE rb_vm_thread_backtrace ( int  argc,
const VALUE argv,
VALUE  thval 
)

Definition at line 1095 of file vm_backtrace.c.

◆ rb_vm_thread_backtrace_locations()

VALUE rb_vm_thread_backtrace_locations ( int  argc,
const VALUE argv,
VALUE  thval 
)

Definition at line 1101 of file vm_backtrace.c.