irdump: dump interfaces take const ir_node* now
[libfirm] / ir / debug / debugger.h
1 /*
2  * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19
20 /**
21  * @file
22  * @brief     Helper function for integrated debug support
23  * @author    Michael Beck
24  * @date      2005
25  */
26 #ifndef FIRM_DEBUG_DEBUGGER_H
27 #define FIRM_DEBUG_DEBUGGER_H
28
29 #include "firm_types.h"
30
31 /** Break into the debugger. */
32 void firm_debug_break(void);
33
34 /**
35  * High level function to use from debugger interface
36  *
37  * Supported commands:
38  *  .create nr    break if node nr was created
39  *  .help         list all commands
40  */
41 void firm_break(const char *cmd);
42
43 /** Creates the debugger tables. */
44 void firm_init_debugger(void);
45
46 /**
47  * @defgroup external_debug    helper functions for debuggers
48  *
49  * @{
50  */
51
52 /**
53  * Returns non-zero, if the debug extension is active
54  */
55 int firm_debug_active(void);
56
57 /**
58  * Return the content of the debug text buffer.
59  *
60  * To be called from the debugger.
61  */
62 const char *firm_debug_text(void);
63
64 /**
65  * A gdb helper function to print tarvals.
66  */
67 const char *gdb_tarval_helper(void *tv_object);
68
69 /**
70  * A gdb helper to print all (new-style-) out edges of a node
71  */
72 const char *gdb_out_edge_helper(const ir_node *node);
73
74 /**
75  * High level function to use from debugger interface
76  *
77  * See show_commands() for supported commands.
78  */
79 void firm_debug(const char *cmd);
80
81 /**
82  * @}
83  */
84
85 #endif