Ruby  2.5.0dev(2017-10-22revision60238)
Macros | Functions | Variables
debug.c File Reference
#include "ruby/ruby.h"
#include "ruby/encoding.h"
#include "ruby/util.h"
#include "vm_debug.h"
#include "eval_intern.h"
#include "vm_core.h"
#include "id.h"
#include "gc.h"

Go to the source code of this file.

Macros

#define SET_WHEN(name, var, val)
 
#define NAME_MATCH_VALUE(name)
 
#define SET_UINT(val)
 
#define SET_UINT_LIST(name, vals, num)
 
#define SET_WHEN_UINT(name, vals, num, req)   if (NAME_MATCH_VALUE(name)) SET_UINT_LIST(name, vals, num);
 

Functions

int ruby_debug_print_indent (int level, int debug_level, int indent_level)
 
void ruby_debug_printf (const char *format,...)
 
VALUE ruby_debug_print_value (int level, int debug_level, const char *header, VALUE obj)
 
void ruby_debug_print_v (VALUE v)
 
ID ruby_debug_print_id (int level, int debug_level, const char *header, ID id)
 
NODEruby_debug_print_node (int level, int debug_level, const char *header, const NODE *node)
 
void ruby_debug_breakpoint (void)
 
int ruby_env_debug_option (const char *str, int len, void *arg)
 
void ruby_set_debug_option (const char *str)
 

Variables

union {
enum  {
  RUBY_FMODE_READABLE = FMODE_READABLE, RUBY_FMODE_WRITABLE = FMODE_WRITABLE, RUBY_FMODE_READWRITE = FMODE_READWRITE, RUBY_FMODE_BINMODE = FMODE_BINMODE,
  RUBY_FMODE_SYNC = FMODE_SYNC, RUBY_FMODE_TTY = FMODE_TTY, RUBY_FMODE_DUPLEX = FMODE_DUPLEX, RUBY_FMODE_APPEND = FMODE_APPEND,
  RUBY_FMODE_CREATE = FMODE_CREATE, RUBY_FMODE_NOREVLOOKUP = 0x00000100, RUBY_FMODE_TRUNC = FMODE_TRUNC, RUBY_FMODE_TEXTMODE = FMODE_TEXTMODE,
  RUBY_FMODE_PREP = 0x00010000, RUBY_FMODE_SETENC_BY_BOM = FMODE_SETENC_BY_BOM, RUBY_FMODE_UNIX = 0x00200000, RUBY_FMODE_INET = 0x00400000,
  RUBY_FMODE_INET6 = 0x00800000, RUBY_NODE_TYPESHIFT = NODE_TYPESHIFT, RUBY_NODE_TYPEMASK = NODE_TYPEMASK, RUBY_NODE_LSHIFT = NODE_LSHIFT,
  RUBY_NODE_FL_NEWLINE = NODE_FL_NEWLINE
}
 
   enum ruby_special_consts   special_consts
 
   enum ruby_value_type   value_type
 
   enum ruby_tag_type   tag_type
 
   enum node_type   node_type
 
   enum ruby_method_ids   method_ids
 
   enum ruby_id_types   id_types
 
   enum ruby_fl_type   fl_types
 
   enum ruby_encoding_consts   encoding_consts
 
   enum ruby_coderange_type   enc_coderange_types
 
   enum ruby_econv_flag_type   econv_flag_types
 
   enum ruby_robject_flags   robject_flags
 
   enum ruby_rmodule_flags   rmodule_flags
 
   enum ruby_rstring_flags   rstring_flags
 
   enum ruby_rarray_flags   rarray_flags
 
   enum { ... }    various
 
ruby_dummy_gdb_enums
 
const SIGNED_VALUE RUBY_NODE_LMASK = NODE_LMASK
 
int ruby_rgengc_debug
 

Macro Definition Documentation

◆ NAME_MATCH_VALUE

#define NAME_MATCH_VALUE (   name)
Value:
((size_t)len >= sizeof(name)-1 && \
strncmp(str, (name), sizeof(name)-1) == 0 && \
((len == sizeof(name)-1 && !(len = 0)) || \
(str[sizeof(name)-1] == '=' && \
(str += sizeof(name), len -= sizeof(name), 1))))
register unsigned int len
Definition: zonetab.h:51
const char * name
Definition: nkf.c:208

Referenced by ruby_env_debug_option().

◆ SET_UINT

#define SET_UINT (   val)
Value:
do { \
n = ruby_scan_digits(str, len, 10, &retlen, &ov); \
if (!ov && retlen) { \
val = (unsigned int)n; \
} \
str += retlen; \
len -= retlen; \
} while (0)
RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
Definition: util.c:84
register unsigned int len
Definition: zonetab.h:51

◆ SET_UINT_LIST

#define SET_UINT_LIST (   name,
  vals,
  num 
)
Value:
do { \
int i; \
for (i = 0; i < (num); ++i) { \
SET_UINT((vals)[i]); \
if (!len || *str != ':') break; \
++str; \
--len; \
} \
if (len > 0) { \
fprintf(stderr, "ignored "name" option: `%.*s'\n", len, str); \
} \
} while (0)
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: zonetab.h:883
register unsigned int len
Definition: zonetab.h:51
const char * name
Definition: nkf.c:208

Referenced by ruby_env_debug_option().

◆ SET_WHEN

#define SET_WHEN (   name,
  var,
  val 
)
Value:
do { \
if (len == sizeof(name) - 1 && \
strncmp(str, (name), len) == 0) { \
(var) = (val); \
return 1; \
} \
} while (0)
#define val
register unsigned int len
Definition: zonetab.h:51
const char * name
Definition: nkf.c:208

Referenced by ruby_env_debug_option().

◆ SET_WHEN_UINT

#define SET_WHEN_UINT (   name,
  vals,
  num,
  req 
)    if (NAME_MATCH_VALUE(name)) SET_UINT_LIST(name, vals, num);

Function Documentation

◆ ruby_debug_breakpoint()

void ruby_debug_breakpoint ( void  )

Definition at line 126 of file debug.c.

References ruby_rgengc_debug.

◆ ruby_debug_print_id()

ID ruby_debug_print_id ( int  level,
int  debug_level,
const char *  header,
ID  id 
)

Definition at line 106 of file debug.c.

References id, and rb_id2name().

◆ ruby_debug_print_indent()

int ruby_debug_print_indent ( int  level,
int  debug_level,
int  indent_level 
)

Definition at line 65 of file debug.c.

References FALSE, and TRUE.

◆ ruby_debug_print_node()

NODE* ruby_debug_print_node ( int  level,
int  debug_level,
const char *  header,
const NODE node 
)

Definition at line 116 of file debug.c.

References nd_line, nd_type, and ruby_node_name().

◆ ruby_debug_print_v()

void ruby_debug_print_v ( VALUE  v)

Definition at line 100 of file debug.c.

References ruby_debug_print_value().

◆ ruby_debug_print_value()

VALUE ruby_debug_print_value ( int  level,
int  debug_level,
const char *  header,
VALUE  obj 
)

Definition at line 87 of file debug.c.

References rb_raw_obj_info().

Referenced by ruby_debug_print_v().

◆ ruby_debug_printf()

void ruby_debug_printf ( const char *  format,
  ... 
)

Definition at line 76 of file debug.c.

◆ ruby_env_debug_option()

int ruby_env_debug_option ( const char *  str,
int  len,
void *  arg 
)

◆ ruby_set_debug_option()

void ruby_set_debug_option ( const char *  str)

Definition at line 215 of file debug.c.

References ruby_each_words().

Referenced by main().

Variable Documentation

◆ econv_flag_types

enum ruby_econv_flag_type econv_flag_types

Definition at line 31 of file debug.c.

◆ enc_coderange_types

enum ruby_coderange_type enc_coderange_types

Definition at line 30 of file debug.c.

◆ encoding_consts

enum ruby_encoding_consts encoding_consts

Definition at line 29 of file debug.c.

◆ fl_types

enum ruby_fl_type fl_types

Definition at line 28 of file debug.c.

◆ id_types

enum ruby_id_types id_types

Definition at line 27 of file debug.c.

◆ method_ids

enum ruby_method_ids method_ids

Definition at line 26 of file debug.c.

◆ node_type

Definition at line 25 of file debug.c.

◆ rarray_flags

enum ruby_rarray_flags rarray_flags

Definition at line 35 of file debug.c.

◆ rmodule_flags

enum ruby_rmodule_flags rmodule_flags

Definition at line 33 of file debug.c.

◆ robject_flags

enum ruby_robject_flags robject_flags

Definition at line 32 of file debug.c.

◆ rstring_flags

enum ruby_rstring_flags rstring_flags

Definition at line 34 of file debug.c.

◆ ruby_dummy_gdb_enums

const { ... } ruby_dummy_gdb_enums

◆ RUBY_NODE_LMASK

const SIGNED_VALUE RUBY_NODE_LMASK = NODE_LMASK

Definition at line 62 of file debug.c.

◆ ruby_rgengc_debug

int ruby_rgengc_debug

Definition at line 235 of file gc.c.

Referenced by ruby_debug_breakpoint(), and ruby_env_debug_option().

◆ special_consts

enum ruby_special_consts special_consts

Definition at line 22 of file debug.c.

◆ tag_type

enum ruby_tag_type tag_type

Definition at line 24 of file debug.c.

◆ value_type

enum ruby_value_type value_type

Definition at line 23 of file debug.c.

◆ various

enum { ... } various