GDB (API)
/home/stan/gdb/src/gdb/go-lang.h
Go to the documentation of this file.
00001 /* Go language support definitions for GDB, the GNU debugger.
00002 
00003    Copyright (C) 2012-2013 Free Software Foundation, Inc.
00004 
00005    This file is part of GDB.
00006 
00007    This program is free software; you can redistribute it and/or modify
00008    it under the terms of the GNU General Public License as published by
00009    the Free Software Foundation; either version 3 of the License, or
00010    (at your option) any later version.
00011 
00012    This program is distributed in the hope that it will be useful,
00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015    GNU General Public License for more details.
00016 
00017    You should have received a copy of the GNU General Public License
00018    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
00019 
00020 #if !defined (GO_LANG_H)
00021 #define GO_LANG_H 1
00022 
00023 struct type_print_options;
00024 
00025 #include "gdbtypes.h"
00026 #include "symtab.h"
00027 #include "value.h"
00028 
00029 struct builtin_go_type
00030 {
00031   struct type *builtin_void;
00032   struct type *builtin_char;
00033   struct type *builtin_bool;
00034   struct type *builtin_int;
00035   struct type *builtin_uint;
00036   struct type *builtin_uintptr;
00037   struct type *builtin_int8;
00038   struct type *builtin_int16;
00039   struct type *builtin_int32;
00040   struct type *builtin_int64;
00041   struct type *builtin_uint8;
00042   struct type *builtin_uint16;
00043   struct type *builtin_uint32;
00044   struct type *builtin_uint64;
00045   struct type *builtin_float32;
00046   struct type *builtin_float64;
00047   struct type *builtin_complex64;
00048   struct type *builtin_complex128;
00049 };
00050 
00051 enum go_type
00052 {
00053   GO_TYPE_NONE, /* Not a Go object.  */
00054   GO_TYPE_STRING
00055 };
00056 
00057 /* Defined in go-exp.y.  */
00058 
00059 extern int go_parse (void);
00060 
00061 extern void go_error (char *);
00062 
00063 /* Defined in go-lang.c.  */
00064 
00065 extern const char *go_main_name (void);
00066 
00067 extern enum go_type go_classify_struct_type (struct type *type);
00068 
00069 extern char *go_demangle (const char *mangled, int options);
00070 
00071 extern char *go_symbol_package_name (const struct symbol *sym);
00072 
00073 extern char *go_block_package_name (const struct block *block);
00074 
00075 extern const struct builtin_go_type *builtin_go_type (struct gdbarch *);
00076 
00077 /* Defined in go-typeprint.c.  */
00078 
00079 extern void go_print_type (struct type *type, const char *varstring,
00080                            struct ui_file *stream, int show, int level,
00081                            const struct type_print_options *flags);
00082 
00083 /* Defined in go-valprint.c.  */
00084 
00085 extern void go_val_print (struct type *type, const gdb_byte *valaddr,
00086                           int embedded_offset, CORE_ADDR address,
00087                           struct ui_file *stream, int recurse,
00088                           const struct value *val,
00089                           const struct value_print_options *options);
00090 
00091 #endif /* !defined (GO_LANG_H) */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines