16 RUBY_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))
25 VALUE ruby_debug_print_value(
int level,
int debug_level,
const char *header,
VALUE v);
26 ID ruby_debug_print_id(
int level,
int debug_level,
const char *header,
ID id);
27 struct RNode *ruby_debug_print_node(
int level,
int debug_level,
const char *header,
const struct RNode *node);
28 int ruby_debug_print_indent(
int level,
int debug_level,
int indent_level);
29 void ruby_debug_gc_check_func(
void);
30 void ruby_set_debug_option(
const char *str);
32 RUBY_SYMBOL_EXPORT_END
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
88 extern 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,
93 } ruby_debug_log_mode;
96 void ruby_debug_log(const
char *file,
int line, const
char *func_name, const
char *fmt, ...);
97 void ruby_debug_log_print(
unsigned int n);
98 bool 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, ...)
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.