projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cache .gnu_debugdata BFD
[deliverable/binutils-gdb.git]
/
gdb
/
go-lang.c
diff --git
a/gdb/go-lang.c
b/gdb/go-lang.c
index 49a6b9efca0a6d1bb38b24fab367b25138f38208..9ad456f72e8e49877f41a14113d67cce17230c04 100644
(file)
--- a/
gdb/go-lang.c
+++ b/
gdb/go-lang.c
@@
-1,6
+1,6
@@
/* Go language support routines for GDB, the GNU debugger.
/* Go language support routines for GDB, the GNU debugger.
- Copyright (C) 2012-20
18
Free Software Foundation, Inc.
+ Copyright (C) 2012-20
20
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-40,6
+40,7
@@
#include "go-lang.h"
#include "c-lang.h"
#include "parser-defs.h"
#include "go-lang.h"
#include "c-lang.h"
#include "parser-defs.h"
+#include "gdbarch.h"
#include <ctype.h>
#include <ctype.h>
@@
-130,6
+131,16
@@
go_classify_struct_type (struct type *type)
return GO_TYPE_NONE;
}
return GO_TYPE_NONE;
}
+/* Return true if TYPE is a string. */
+
+static bool
+go_is_string_type_p (struct type *type)
+{
+ type = check_typedef (type);
+ return (TYPE_CODE (type) == TYPE_CODE_STRUCT
+ && go_classify_struct_type (type) == GO_TYPE_STRING);
+}
+
/* Subroutine of unpack_mangled_go_symbol to simplify it.
Given "[foo.]bar.baz", store "bar" in *PACKAGEP and "baz" in *OBJECTP.
We stomp on the last '.' to nul-terminate "bar".
/* Subroutine of unpack_mangled_go_symbol to simplify it.
Given "[foo.]bar.baz", store "bar" in *PACKAGEP and "baz" in *OBJECTP.
We stomp on the last '.' to nul-terminate "bar".
@@
-400,7
+411,7
@@
go_sniff_from_mangled_name (const char *mangled, char **demangled)
char *
go_symbol_package_name (const struct symbol *sym)
{
char *
go_symbol_package_name (const struct symbol *sym)
{
- const char *mangled_name =
SYMBOL_LINKAGE_NAME (sym
);
+ const char *mangled_name =
sym->linkage_name (
);
const char *package_name;
const char *object_name;
const char *method_type_package_name;
const char *package_name;
const char *object_name;
const char *method_type_package_name;
@@
-409,7
+420,7
@@
go_symbol_package_name (const struct symbol *sym)
char *name_buf;
char *result;
char *name_buf;
char *result;
- gdb_assert (
SYMBOL_LANGUAGE (sym
) == language_go);
+ gdb_assert (
sym->language (
) == language_go);
name_buf = unpack_mangled_go_symbol (mangled_name,
&package_name, &object_name,
&method_type_package_name,
name_buf = unpack_mangled_go_symbol (mangled_name,
&package_name, &object_name,
&method_type_package_name,
@@
-604,7
+615,6
@@
extern const struct language_defn go_language_defn =
go_language_arch_info,
default_print_array_index,
default_pass_by_reference,
go_language_arch_info,
default_print_array_index,
default_pass_by_reference,
- c_get_string,
c_watch_location_expression,
NULL, /* la_get_symbol_name_matcher */
iterate_over_symbols,
c_watch_location_expression,
NULL, /* la_get_symbol_name_matcher */
iterate_over_symbols,
@@
-612,7
+622,8
@@
extern const struct language_defn go_language_defn =
&default_varobj_ops,
NULL,
NULL,
&default_varobj_ops,
NULL,
NULL,
- LANG_MAGIC
+ go_is_string_type_p,
+ "{...}" /* la_struct_too_deep_ellipsis */
};
static void *
};
static void *
@@
-671,8
+682,9
@@
builtin_go_type (struct gdbarch *gdbarch)
return (const struct builtin_go_type *) gdbarch_data (gdbarch, go_type_data);
}
return (const struct builtin_go_type *) gdbarch_data (gdbarch, go_type_data);
}
+void _initialize_go_language ();
void
void
-_initialize_go_language (
void
)
+_initialize_go_language ()
{
go_type_data = gdbarch_data_register_post_init (build_go_types);
}
{
go_type_data = gdbarch_data_register_post_init (build_go_types);
}
This page took
0.025672 seconds
and
4
git commands to generate.