16RUBY_SYMBOL_EXPORT_BEGIN
18#define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v))
19#define dp(v) ruby_debug_print_value(-1, 0, "", (v))
20#define dpi(i) ruby_debug_print_id(-1, 0, "", (i))
21#define dpn(n) ruby_debug_print_node(-1, 0, "", (n))
25VALUE ruby_debug_print_value(
int level,
int debug_level,
const char *header, VALUE v);
26ID ruby_debug_print_id(
int level,
int debug_level,
const char *header, ID
id);
27struct RNode *ruby_debug_print_node(
int level,
int debug_level,
const char *header,
const struct RNode *node);
28int ruby_debug_print_indent(
int level,
int debug_level,
int indent_level);
29void ruby_debug_gc_check_func(
void);
30void ruby_set_debug_option(
const char *str);
39#ifndef USE_RUBY_DEBUG_LOG
40#define USE_RUBY_DEBUG_LOG 0
44#ifdef USE_RUBY_DEBUG_LOG
45#undef USE_RUBY_DEBUG_LOG
88extern enum ruby_debug_log_mode {
89 ruby_debug_log_disabled = 0x00,
90 ruby_debug_log_memory = 0x01,
91 ruby_debug_log_stderr = 0x02,
92 ruby_debug_log_file = 0x04,
96void ruby_debug_log(const
char *file,
int line, const
char *func_name, const
char *fmt, ...);
97void ruby_debug_log_print(
unsigned int n);
98bool ruby_debug_log_filter(const
char *func_name);
102#define _RUBY_DEBUG_LOG(...) ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__)
104#if defined(USE_RUBY_DEBUG_LOG) && USE_RUBY_DEBUG_LOG
105# define RUBY_DEBUG_LOG_ENABLED(func_name) \
106 (ruby_debug_log_mode && ruby_debug_log_filter(func_name))
108#define RUBY_DEBUG_LOG(...) do { \
109 if (RUBY_DEBUG_LOG_ENABLED(RUBY_FUNCTION_NAME_STRING)) \
110 ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__); \
113#define RUBY_DEBUG_LOG2(file, line, ...) do { \
114 if (RUBY_DEBUG_LOG_ENABLED(RUBY_FUNCTION_NAME_STRING)) \
115 ruby_debug_log(file, line, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__); \
120#define RUBY_DEBUG_LOG(...)
121#define RUBY_DEBUG_LOG2(file, line, ...)