1/**********************************************************************
2
3  vm_debug.h - YARV Debug function interface
4
5  $Author: ko1 $
6  created at: 04/08/25 02:33:49 JST
7
8  Copyright (C) 2004-2007 Koichi Sasada
9
10**********************************************************************/
11
12#ifndef RUBY_DEBUG_H
13#define RUBY_DEBUG_H
14
15#include "ruby/ruby.h"
16#include "node.h"
17
18#if defined __GNUC__ && __GNUC__ >= 4
19#pragma GCC visibility push(default)
20#endif
21
22#define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v))
23#define dp(v)    ruby_debug_print_value(-1, 0, "", (v))
24#define dpi(i)   ruby_debug_print_id(-1, 0, "", (i))
25#define dpn(n)   ruby_debug_print_node(-1, 0, "", (n))
26
27#define bp()     ruby_debug_breakpoint()
28
29VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v);
30ID    ruby_debug_print_id(int level, int debug_level, const char *header, ID id);
31NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node);
32int   ruby_debug_print_indent(int level, int debug_level, int indent_level);
33void  ruby_debug_breakpoint(void);
34void  ruby_debug_gc_check_func(void);
35void ruby_set_debug_option(const char *str);
36
37#if defined __GNUC__ && __GNUC__ >= 4
38#pragma GCC visibility pop
39#endif
40
41#endif /* RUBY_DEBUG_H */
42