xref: /openbsd-src/gnu/usr.bin/binutils/gdb/varobj.h (revision 15135fad20e50182f0393627abde324de2099a40)
1b725ae77Skettenis /* GDB variable objects API.
2b725ae77Skettenis    Copyright 1999, 2000 Free Software Foundation, Inc.
3b725ae77Skettenis 
4b725ae77Skettenis    This program is free software; you can redistribute it and/or modify
5b725ae77Skettenis    it under the terms of the GNU General Public License as published by
6b725ae77Skettenis    the Free Software Foundation; either version 2 of the License, or
7b725ae77Skettenis    (at your option) any later version.
8b725ae77Skettenis 
9b725ae77Skettenis    This program is distributed in the hope that it will be useful,
10b725ae77Skettenis    but WITHOUT ANY WARRANTY; without even the implied warranty of
11b725ae77Skettenis    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12b725ae77Skettenis    GNU General Public License for more details.
13b725ae77Skettenis 
14b725ae77Skettenis    You should have received a copy of the GNU General Public License
15b725ae77Skettenis    along with this program; if not, write to the Free Software
16b725ae77Skettenis    Foundation, Inc., 59 Temple Place - Suite 330,
17b725ae77Skettenis    Boston, MA 02111-1307, USA.  */
18b725ae77Skettenis 
19b725ae77Skettenis #ifndef VAROBJ_H
20b725ae77Skettenis #define VAROBJ_H 1
21b725ae77Skettenis 
22b725ae77Skettenis #include "symtab.h"
23b725ae77Skettenis #include "gdbtypes.h"
24b725ae77Skettenis 
25b725ae77Skettenis /* Enumeration for the format types */
26b725ae77Skettenis enum varobj_display_formats
27b725ae77Skettenis   {
28b725ae77Skettenis     FORMAT_NATURAL,		/* What gdb actually calls 'natural' */
29b725ae77Skettenis     FORMAT_BINARY,		/* Binary display                    */
30b725ae77Skettenis     FORMAT_DECIMAL,		/* Decimal display                   */
31b725ae77Skettenis     FORMAT_HEXADECIMAL,		/* Hex display                       */
32b725ae77Skettenis     FORMAT_OCTAL		/* Octal display                     */
33b725ae77Skettenis   };
34b725ae77Skettenis 
35b725ae77Skettenis enum varobj_type
36b725ae77Skettenis   {
37b725ae77Skettenis     USE_SPECIFIED_FRAME,        /* Use the frame passed to varobj_create */
38b725ae77Skettenis     USE_CURRENT_FRAME,          /* Use the current frame */
39b725ae77Skettenis     USE_SELECTED_FRAME          /* Always reevaluate in selected frame */
40b725ae77Skettenis   };
41b725ae77Skettenis 
42b725ae77Skettenis /* String representations of gdb's format codes (defined in varobj.c) */
43b725ae77Skettenis extern char *varobj_format_string[];
44b725ae77Skettenis 
45b725ae77Skettenis /* Languages supported by this variable objects system. */
46b725ae77Skettenis enum varobj_languages
47b725ae77Skettenis   {
48b725ae77Skettenis     vlang_unknown = 0, vlang_c, vlang_cplus, vlang_java, vlang_end
49b725ae77Skettenis   };
50b725ae77Skettenis 
51b725ae77Skettenis /* String representations of gdb's known languages (defined in varobj.c) */
52b725ae77Skettenis extern char *varobj_language_string[];
53b725ae77Skettenis 
54b725ae77Skettenis /* Struct thar describes a variable object instance */
55b725ae77Skettenis struct varobj;
56b725ae77Skettenis 
57b725ae77Skettenis /* API functions */
58b725ae77Skettenis 
59b725ae77Skettenis extern struct varobj *varobj_create (char *objname,
60b725ae77Skettenis 				     char *expression, CORE_ADDR frame,
61b725ae77Skettenis 				     enum varobj_type type);
62b725ae77Skettenis 
63b725ae77Skettenis extern char *varobj_gen_name (void);
64b725ae77Skettenis 
65b725ae77Skettenis extern struct varobj *varobj_get_handle (char *name);
66b725ae77Skettenis 
67b725ae77Skettenis extern char *varobj_get_objname (struct varobj *var);
68b725ae77Skettenis 
69b725ae77Skettenis extern char *varobj_get_expression (struct varobj *var);
70b725ae77Skettenis 
71b725ae77Skettenis extern int varobj_delete (struct varobj *var, char ***dellist,
72b725ae77Skettenis 			  int only_children);
73b725ae77Skettenis 
74b725ae77Skettenis extern enum varobj_display_formats varobj_set_display_format (
75b725ae77Skettenis 							 struct varobj *var,
76b725ae77Skettenis 					enum varobj_display_formats format);
77b725ae77Skettenis 
78b725ae77Skettenis extern enum varobj_display_formats varobj_get_display_format (
79b725ae77Skettenis 							struct varobj *var);
80b725ae77Skettenis 
81b725ae77Skettenis extern int varobj_get_num_children (struct varobj *var);
82b725ae77Skettenis 
83b725ae77Skettenis extern int varobj_list_children (struct varobj *var,
84b725ae77Skettenis 				 struct varobj ***childlist);
85b725ae77Skettenis 
86b725ae77Skettenis extern char *varobj_get_type (struct varobj *var);
87b725ae77Skettenis 
88b725ae77Skettenis extern enum varobj_languages varobj_get_language (struct varobj *var);
89b725ae77Skettenis 
90b725ae77Skettenis extern int varobj_get_attributes (struct varobj *var);
91b725ae77Skettenis 
92b725ae77Skettenis extern char *varobj_get_value (struct varobj *var);
93b725ae77Skettenis 
94b725ae77Skettenis extern int varobj_set_value (struct varobj *var, char *expression);
95b725ae77Skettenis 
96b725ae77Skettenis extern int varobj_list (struct varobj ***rootlist);
97b725ae77Skettenis 
98b725ae77Skettenis extern int varobj_update (struct varobj **varp, struct varobj ***changelist);
99b725ae77Skettenis 
100*15135fadSkurt extern void varobj_refresh(void);
101*15135fadSkurt 
102b725ae77Skettenis #endif /* VAROBJ_H */
103