Change some arguments to gdb::string_view instead of name+len
Just some code cleanup. This change has a few benefits: - Shorter argument list in the functions - If the caller needs to calculate the string, they no longer need to explicitly call strlen - It is easy to pass std::string to this (done in one place currently) This also updates a couple of places that were passing 0/1 to a bool parameter. gdb/ChangeLog: 2019-10-29 Christian Biesinger <cbiesinger@google.com> * coffread.c (record_minimal_symbol): Update. (process_coff_symbol): Update. * dbxread.c (read_dbx_symtab): Update. * dwarf2read.c (add_partial_symbol): Update. (fixup_go_packaging): Update. (load_partial_dies): Update. (new_symbol): Update. * elfread.c (record_minimal_symbol): Change signature to use gdb::string_view instead of name+len. (elf_symtab_read): Update. (elf_rel_plt_read): Update. * mdebugread.c (parse_partial_symbols): Update. (handle_psymbol_enumerators): Update. (new_symbol): Update. * minsyms.c (minimal_symbol_reader::record_full): Change signature to use gdb::string_view instead of name+len. * minsyms.h (class minimal_symbol_reader) <record_full>: Likewise. * psympriv.h (add_psymbol_to_list): Likewise. * psymtab.c (add_psymbol_to_bcache): Likewise. (add_psymbol_to_list): Likewise. * stabsread.c (define_symbol): Update. * symtab.c (symbol_set_names): Change signature to use gdb::string_view. * symtab.h (SYMBOL_SET_NAMES): Likewise. (symbol_set_names): Likewise. * xcoffread.c (scan_xcoff_symtab): Update. Change-Id: I2675c6865e0368f9c755a1081088a53aa54dda4c
This commit is contained in:
parent
0c921b219c
commit
31edb80295
@ -1,3 +1,31 @@
|
|||||||
|
2019-10-29 Christian Biesinger <cbiesinger@google.com>
|
||||||
|
|
||||||
|
* coffread.c (record_minimal_symbol): Update.
|
||||||
|
(process_coff_symbol): Update.
|
||||||
|
* dbxread.c (read_dbx_symtab): Update.
|
||||||
|
* dwarf2read.c (add_partial_symbol): Update.
|
||||||
|
(fixup_go_packaging): Update.
|
||||||
|
(load_partial_dies): Update.
|
||||||
|
(new_symbol): Update.
|
||||||
|
* elfread.c (record_minimal_symbol): Change signature to use
|
||||||
|
gdb::string_view instead of name+len.
|
||||||
|
(elf_symtab_read): Update.
|
||||||
|
(elf_rel_plt_read): Update.
|
||||||
|
* mdebugread.c (parse_partial_symbols): Update.
|
||||||
|
(handle_psymbol_enumerators): Update.
|
||||||
|
(new_symbol): Update.
|
||||||
|
* minsyms.c (minimal_symbol_reader::record_full): Change signature
|
||||||
|
to use gdb::string_view instead of name+len.
|
||||||
|
* minsyms.h (class minimal_symbol_reader) <record_full>: Likewise.
|
||||||
|
* psympriv.h (add_psymbol_to_list): Likewise.
|
||||||
|
* psymtab.c (add_psymbol_to_bcache): Likewise.
|
||||||
|
(add_psymbol_to_list): Likewise.
|
||||||
|
* stabsread.c (define_symbol): Update.
|
||||||
|
* symtab.c (symbol_set_names): Change signature to use gdb::string_view.
|
||||||
|
* symtab.h (SYMBOL_SET_NAMES): Likewise.
|
||||||
|
(symbol_set_names): Likewise.
|
||||||
|
* xcoffread.c (scan_xcoff_symtab): Update.
|
||||||
|
|
||||||
2019-10-29 Christian Biesinger <cbiesinger@google.com>
|
2019-10-29 Christian Biesinger <cbiesinger@google.com>
|
||||||
|
|
||||||
* symtab.h (symbol_set_names): Document that copy_name must be
|
* symtab.h (symbol_set_names): Document that copy_name must be
|
||||||
|
@ -462,8 +462,7 @@ record_minimal_symbol (minimal_symbol_reader &reader,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return reader.record_full (cs->c_name, strlen (cs->c_name), true, address,
|
return reader.record_full (cs->c_name, true, address, type, section);
|
||||||
type, section);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* coff_symfile_init ()
|
/* coff_symfile_init ()
|
||||||
@ -1569,7 +1568,7 @@ process_coff_symbol (struct coff_symbol *cs,
|
|||||||
name = EXTERNAL_NAME (name, objfile->obfd);
|
name = EXTERNAL_NAME (name, objfile->obfd);
|
||||||
SYMBOL_SET_LANGUAGE (sym, get_current_subfile ()->language,
|
SYMBOL_SET_LANGUAGE (sym, get_current_subfile ()->language,
|
||||||
&objfile->objfile_obstack);
|
&objfile->objfile_obstack);
|
||||||
SYMBOL_SET_NAMES (sym, name, strlen (name), 1, objfile);
|
SYMBOL_SET_NAMES (sym, name, true, objfile);
|
||||||
|
|
||||||
/* default assumptions */
|
/* default assumptions */
|
||||||
SYMBOL_VALUE (sym) = cs->c_value;
|
SYMBOL_VALUE (sym) = cs->c_value;
|
||||||
|
@ -380,7 +380,7 @@ ctf_add_enum_member_cb (const char *name, int enum_value, void *arg)
|
|||||||
OBJSTAT (ccp->of, n_syms++);
|
OBJSTAT (ccp->of, n_syms++);
|
||||||
|
|
||||||
SYMBOL_SET_LANGUAGE (sym, language_c, &ccp->of->objfile_obstack);
|
SYMBOL_SET_LANGUAGE (sym, language_c, &ccp->of->objfile_obstack);
|
||||||
SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of);
|
SYMBOL_SET_NAMES (sym, name, false, ccp->of);
|
||||||
SYMBOL_ACLASS_INDEX (sym) = LOC_CONST;
|
SYMBOL_ACLASS_INDEX (sym) = LOC_CONST;
|
||||||
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
|
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
|
||||||
SYMBOL_TYPE (sym) = fip->ptype;
|
SYMBOL_TYPE (sym) = fip->ptype;
|
||||||
@ -409,7 +409,7 @@ new_symbol (ctf_context_t *ccp, struct type *type, ctf_id_t tid)
|
|||||||
OBJSTAT (objfile, n_syms++);
|
OBJSTAT (objfile, n_syms++);
|
||||||
|
|
||||||
SYMBOL_SET_LANGUAGE (sym, language_c, &objfile->objfile_obstack);
|
SYMBOL_SET_LANGUAGE (sym, language_c, &objfile->objfile_obstack);
|
||||||
SYMBOL_SET_NAMES (sym, name.get (), strlen (name.get ()), 1, objfile);
|
SYMBOL_SET_NAMES (sym, name.get (), true, objfile);
|
||||||
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
|
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
|
||||||
SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
|
SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
|
||||||
|
|
||||||
@ -1029,7 +1029,7 @@ ctf_add_var_cb (const char *name, ctf_id_t id, void *arg)
|
|||||||
if (type)
|
if (type)
|
||||||
{
|
{
|
||||||
sym = new_symbol (ccp, type, id);
|
sym = new_symbol (ccp, type, id);
|
||||||
SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of);
|
SYMBOL_SET_NAMES (sym, name, false, ccp->of);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CTF_K_STRUCT:
|
case CTF_K_STRUCT:
|
||||||
@ -1045,7 +1045,7 @@ ctf_add_var_cb (const char *name, ctf_id_t id, void *arg)
|
|||||||
SYMBOL_TYPE (sym) = type;
|
SYMBOL_TYPE (sym) = type;
|
||||||
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
|
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
|
||||||
SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
|
SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
|
||||||
SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of);
|
SYMBOL_SET_NAMES (sym, name, false, ccp->of);
|
||||||
add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
|
add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -1365,7 +1365,7 @@ ctf_psymtab_type_cb (ctf_id_t tid, void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
add_psymbol_to_list (name.get (), strlen (name.get ()), true,
|
add_psymbol_to_list (name.get (), true,
|
||||||
domain, aclass, section,
|
domain, aclass, section,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
0, language_c, ccp->of);
|
0, language_c, ccp->of);
|
||||||
@ -1380,7 +1380,7 @@ ctf_psymtab_var_cb (const char *name, ctf_id_t id, void *arg)
|
|||||||
{
|
{
|
||||||
ctf_context_t *ccp = (ctf_context_t *) arg;
|
ctf_context_t *ccp = (ctf_context_t *) arg;
|
||||||
|
|
||||||
add_psymbol_to_list (name, strlen (name), true,
|
add_psymbol_to_list (name, true,
|
||||||
VAR_DOMAIN, LOC_STATIC, -1,
|
VAR_DOMAIN, LOC_STATIC, -1,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
0, language_c, ccp->of);
|
0, language_c, ccp->of);
|
||||||
@ -1445,7 +1445,7 @@ scan_partial_symbols (ctf_file_t *cfp, struct objfile *of)
|
|||||||
else
|
else
|
||||||
aclass = LOC_TYPEDEF;
|
aclass = LOC_TYPEDEF;
|
||||||
|
|
||||||
add_psymbol_to_list (tname.get (), strlen (tname.get ()), true,
|
add_psymbol_to_list (tname.get (), true,
|
||||||
tdomain, aclass, -1,
|
tdomain, aclass, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, language_c, of);
|
0, language_c, of);
|
||||||
|
@ -1464,7 +1464,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
if (gdbarch_static_transform_name_p (gdbarch))
|
if (gdbarch_static_transform_name_p (gdbarch))
|
||||||
gdbarch_static_transform_name (gdbarch, namestring);
|
gdbarch_static_transform_name (gdbarch, namestring);
|
||||||
|
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
VAR_DOMAIN, LOC_STATIC,
|
||||||
data_sect_index,
|
data_sect_index,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
@ -1474,7 +1474,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
case 'G':
|
case 'G':
|
||||||
/* The addresses in these entries are reported to be
|
/* The addresses in these entries are reported to be
|
||||||
wrong. See the code that reads 'G's for symtabs. */
|
wrong. See the code that reads 'G's for symtabs. */
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
VAR_DOMAIN, LOC_STATIC,
|
||||||
data_sect_index,
|
data_sect_index,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
@ -1492,15 +1492,15 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
|| (p == namestring + 1
|
|| (p == namestring + 1
|
||||||
&& namestring[0] != ' '))
|
&& namestring[0] != ' '))
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len),
|
||||||
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
true, STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
if (p[2] == 't')
|
if (p[2] == 't')
|
||||||
{
|
{
|
||||||
/* Also a typedef with the same name. */
|
/* Also a typedef with the same name. */
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len),
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
true, VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
p += 1;
|
p += 1;
|
||||||
@ -1511,8 +1511,8 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
case 't':
|
case 't':
|
||||||
if (p != namestring) /* a name is there, not just :T... */
|
if (p != namestring) /* a name is there, not just :T... */
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len),
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
true, VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
}
|
}
|
||||||
@ -1572,7 +1572,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
;
|
;
|
||||||
/* Note that the value doesn't matter for
|
/* Note that the value doesn't matter for
|
||||||
enum constants in psymtabs, just in symtabs. */
|
enum constants in psymtabs, just in symtabs. */
|
||||||
add_psymbol_to_list (p, q - p, true,
|
add_psymbol_to_list (gdb::string_view (p, q - p), true,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
VAR_DOMAIN, LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC, 0,
|
psymbol_placement::STATIC, 0,
|
||||||
psymtab_language, objfile);
|
psymtab_language, objfile);
|
||||||
@ -1590,7 +1590,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
|
|
||||||
case 'c':
|
case 'c':
|
||||||
/* Constant, e.g. from "const" in Pascal. */
|
/* Constant, e.g. from "const" in Pascal. */
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
VAR_DOMAIN, LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC, 0,
|
psymbol_placement::STATIC, 0,
|
||||||
psymtab_language, objfile);
|
psymtab_language, objfile);
|
||||||
@ -1645,7 +1645,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
pst->set_text_low (nlist.n_value);
|
pst->set_text_low (nlist.n_value);
|
||||||
textlow_not_set = 0;
|
textlow_not_set = 0;
|
||||||
}
|
}
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
@ -1704,7 +1704,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|
|||||||
pst->set_text_low (nlist.n_value);
|
pst->set_text_low (nlist.n_value);
|
||||||
textlow_not_set = 0;
|
textlow_not_set = 0;
|
||||||
}
|
}
|
||||||
add_psymbol_to_list (sym_name, sym_len, true,
|
add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
|
@ -8952,7 +8952,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
But in Ada and Fortran, we want to be able to access nested
|
But in Ada and Fortran, we want to be able to access nested
|
||||||
procedures globally. So all Ada and Fortran subprograms are
|
procedures globally. So all Ada and Fortran subprograms are
|
||||||
stored in the global scope. */
|
stored in the global scope. */
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
@ -8962,7 +8962,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
@ -8974,7 +8974,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
set_objfile_main_name (objfile, actual_name, cu->language);
|
set_objfile_main_name (objfile, actual_name, cu->language);
|
||||||
break;
|
break;
|
||||||
case DW_TAG_constant:
|
case DW_TAG_constant:
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL, VAR_DOMAIN, LOC_STATIC,
|
built_actual_name != NULL, VAR_DOMAIN, LOC_STATIC,
|
||||||
-1, (pdi->is_external
|
-1, (pdi->is_external
|
||||||
? psymbol_placement::GLOBAL
|
? psymbol_placement::GLOBAL
|
||||||
@ -9010,7 +9010,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
table building. */
|
table building. */
|
||||||
|
|
||||||
if (pdi->d.locdesc || pdi->has_type)
|
if (pdi->d.locdesc || pdi->has_type)
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
VAR_DOMAIN, LOC_STATIC,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
@ -9029,7 +9029,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
VAR_DOMAIN, LOC_STATIC,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
@ -9041,7 +9041,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
case DW_TAG_typedef:
|
case DW_TAG_typedef:
|
||||||
case DW_TAG_base_type:
|
case DW_TAG_base_type:
|
||||||
case DW_TAG_subrange_type:
|
case DW_TAG_subrange_type:
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
@ -9049,7 +9049,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
break;
|
break;
|
||||||
case DW_TAG_imported_declaration:
|
case DW_TAG_imported_declaration:
|
||||||
case DW_TAG_namespace:
|
case DW_TAG_namespace:
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
@ -9060,7 +9060,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
available without any name. If so, we skip the module as it
|
available without any name. If so, we skip the module as it
|
||||||
doesn't bring any value. */
|
doesn't bring any value. */
|
||||||
if (actual_name != nullptr)
|
if (actual_name != nullptr)
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
MODULE_DOMAIN, LOC_TYPEDEF, -1,
|
MODULE_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
@ -9084,7 +9084,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
|
|
||||||
/* NOTE: carlton/2003-10-07: See comment in new_symbol about
|
/* NOTE: carlton/2003-10-07: See comment in new_symbol about
|
||||||
static vs. global. */
|
static vs. global. */
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
cu->language == language_cplus
|
cu->language == language_cplus
|
||||||
@ -9094,7 +9094,7 @@ add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case DW_TAG_enumerator:
|
case DW_TAG_enumerator:
|
||||||
add_psymbol_to_list (actual_name, strlen (actual_name),
|
add_psymbol_to_list (actual_name,
|
||||||
built_actual_name != NULL,
|
built_actual_name != NULL,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
VAR_DOMAIN, LOC_CONST, -1,
|
||||||
cu->language == language_cplus
|
cu->language == language_cplus
|
||||||
@ -9924,8 +9924,7 @@ fixup_go_packaging (struct dwarf2_cu *cu)
|
|||||||
|
|
||||||
sym = allocate_symbol (objfile);
|
sym = allocate_symbol (objfile);
|
||||||
SYMBOL_SET_LANGUAGE (sym, language_go, &objfile->objfile_obstack);
|
SYMBOL_SET_LANGUAGE (sym, language_go, &objfile->objfile_obstack);
|
||||||
SYMBOL_SET_NAMES (sym, saved_package_name,
|
SYMBOL_SET_NAMES (sym, saved_package_name, false, objfile);
|
||||||
strlen (saved_package_name), 0, objfile);
|
|
||||||
/* This is not VAR_DOMAIN because we want a way to ensure a lookup of,
|
/* This is not VAR_DOMAIN because we want a way to ensure a lookup of,
|
||||||
e.g., "main" finds the "main" module and not C's main(). */
|
e.g., "main" finds the "main" module and not C's main(). */
|
||||||
SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN;
|
SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN;
|
||||||
@ -18566,7 +18565,7 @@ load_partial_dies (const struct die_reader_specs *reader,
|
|||||||
|| pdi.tag == DW_TAG_subrange_type))
|
|| pdi.tag == DW_TAG_subrange_type))
|
||||||
{
|
{
|
||||||
if (building_psymtab && pdi.name != NULL)
|
if (building_psymtab && pdi.name != NULL)
|
||||||
add_psymbol_to_list (pdi.name, strlen (pdi.name), false,
|
add_psymbol_to_list (pdi.name, false,
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, cu->language, objfile);
|
0, cu->language, objfile);
|
||||||
@ -18600,7 +18599,7 @@ load_partial_dies (const struct die_reader_specs *reader,
|
|||||||
if (pdi.name == NULL)
|
if (pdi.name == NULL)
|
||||||
complaint (_("malformed enumerator DIE ignored"));
|
complaint (_("malformed enumerator DIE ignored"));
|
||||||
else if (building_psymtab)
|
else if (building_psymtab)
|
||||||
add_psymbol_to_list (pdi.name, strlen (pdi.name), false,
|
add_psymbol_to_list (pdi.name, false,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
VAR_DOMAIN, LOC_CONST, -1,
|
||||||
cu->language == language_cplus
|
cu->language == language_cplus
|
||||||
? psymbol_placement::GLOBAL
|
? psymbol_placement::GLOBAL
|
||||||
@ -21606,7 +21605,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
|||||||
/* Cache this symbol's name and the name's demangled form (if any). */
|
/* Cache this symbol's name and the name's demangled form (if any). */
|
||||||
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
|
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
|
||||||
linkagename = dwarf2_physname (name, die, cu);
|
linkagename = dwarf2_physname (name, die, cu);
|
||||||
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
|
SYMBOL_SET_NAMES (sym, linkagename, false, objfile);
|
||||||
|
|
||||||
/* Fortran does not have mangling standard and the mangling does differ
|
/* Fortran does not have mangling standard and the mangling does differ
|
||||||
between gfortran, iFort etc. */
|
between gfortran, iFort etc. */
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
#include "auxv.h"
|
#include "auxv.h"
|
||||||
#include "mdebugread.h"
|
#include "mdebugread.h"
|
||||||
#include "ctfread.h"
|
#include "ctfread.h"
|
||||||
|
#include "gdbsupport/gdb_string_view.h"
|
||||||
|
|
||||||
/* Forward declarations. */
|
/* Forward declarations. */
|
||||||
extern const struct sym_fns elf_sym_fns_gdb_index;
|
extern const struct sym_fns elf_sym_fns_gdb_index;
|
||||||
@ -198,7 +199,7 @@ elf_locate_sections (bfd *ignore_abfd, asection *sectp, void *eip)
|
|||||||
|
|
||||||
static struct minimal_symbol *
|
static struct minimal_symbol *
|
||||||
record_minimal_symbol (minimal_symbol_reader &reader,
|
record_minimal_symbol (minimal_symbol_reader &reader,
|
||||||
const char *name, int name_len, bool copy_name,
|
gdb::string_view name, bool copy_name,
|
||||||
CORE_ADDR address,
|
CORE_ADDR address,
|
||||||
enum minimal_symbol_type ms_type,
|
enum minimal_symbol_type ms_type,
|
||||||
asection *bfd_section, struct objfile *objfile)
|
asection *bfd_section, struct objfile *objfile)
|
||||||
@ -210,7 +211,7 @@ record_minimal_symbol (minimal_symbol_reader &reader,
|
|||||||
address = gdbarch_addr_bits_remove (gdbarch, address);
|
address = gdbarch_addr_bits_remove (gdbarch, address);
|
||||||
|
|
||||||
struct minimal_symbol *result
|
struct minimal_symbol *result
|
||||||
= reader.record_full (name, name_len, copy_name, address,
|
= reader.record_full (name, copy_name, address,
|
||||||
ms_type,
|
ms_type,
|
||||||
gdb_bfd_section_index (objfile->obfd,
|
gdb_bfd_section_index (objfile->obfd,
|
||||||
bfd_section));
|
bfd_section));
|
||||||
@ -330,7 +331,7 @@ elf_symtab_read (minimal_symbol_reader &reader,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
msym = record_minimal_symbol
|
msym = record_minimal_symbol
|
||||||
(reader, sym->name, strlen (sym->name), copy_names,
|
(reader, sym->name, copy_names,
|
||||||
symaddr, mst_solib_trampoline, sect, objfile);
|
symaddr, mst_solib_trampoline, sect, objfile);
|
||||||
if (msym != NULL)
|
if (msym != NULL)
|
||||||
{
|
{
|
||||||
@ -474,7 +475,7 @@ elf_symtab_read (minimal_symbol_reader &reader,
|
|||||||
continue; /* Skip this symbol. */
|
continue; /* Skip this symbol. */
|
||||||
}
|
}
|
||||||
msym = record_minimal_symbol
|
msym = record_minimal_symbol
|
||||||
(reader, sym->name, strlen (sym->name), copy_names, symaddr,
|
(reader, sym->name, copy_names, symaddr,
|
||||||
ms_type, sym->section, objfile);
|
ms_type, sym->section, objfile);
|
||||||
|
|
||||||
if (msym)
|
if (msym)
|
||||||
@ -503,8 +504,10 @@ elf_symtab_read (minimal_symbol_reader &reader,
|
|||||||
{
|
{
|
||||||
int len = atsign - sym->name;
|
int len = atsign - sym->name;
|
||||||
|
|
||||||
record_minimal_symbol (reader, sym->name, len, true, symaddr,
|
record_minimal_symbol (reader,
|
||||||
ms_type, sym->section, objfile);
|
gdb::string_view (sym->name, len),
|
||||||
|
true, symaddr, ms_type, sym->section,
|
||||||
|
objfile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -520,10 +523,9 @@ elf_symtab_read (minimal_symbol_reader &reader,
|
|||||||
{
|
{
|
||||||
struct minimal_symbol *mtramp;
|
struct minimal_symbol *mtramp;
|
||||||
|
|
||||||
mtramp = record_minimal_symbol (reader, sym->name, len - 4,
|
mtramp = record_minimal_symbol
|
||||||
true, symaddr,
|
(reader, gdb::string_view (sym->name, len - 4), true,
|
||||||
mst_solib_trampoline,
|
symaddr, mst_solib_trampoline, sym->section, objfile);
|
||||||
sym->section, objfile);
|
|
||||||
if (mtramp)
|
if (mtramp)
|
||||||
{
|
{
|
||||||
SET_MSYMBOL_SIZE (mtramp, MSYMBOL_SIZE (msym));
|
SET_MSYMBOL_SIZE (mtramp, MSYMBOL_SIZE (msym));
|
||||||
@ -639,8 +641,7 @@ elf_rel_plt_read (minimal_symbol_reader &reader,
|
|||||||
string_buffer.assign (name);
|
string_buffer.assign (name);
|
||||||
string_buffer.append (got_suffix, got_suffix + got_suffix_len);
|
string_buffer.append (got_suffix, got_suffix + got_suffix_len);
|
||||||
|
|
||||||
msym = record_minimal_symbol (reader, string_buffer.c_str (),
|
msym = record_minimal_symbol (reader, string_buffer,
|
||||||
string_buffer.size (),
|
|
||||||
true, address, mst_slot_got_plt,
|
true, address, mst_slot_got_plt,
|
||||||
msym_section, objfile);
|
msym_section, objfile);
|
||||||
if (msym)
|
if (msym)
|
||||||
|
@ -3050,8 +3050,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
namestring = gdbarch_static_transform_name
|
namestring = gdbarch_static_transform_name
|
||||||
(gdbarch, namestring);
|
(gdbarch, namestring);
|
||||||
|
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_STATIC,
|
||||||
SECT_OFF_DATA (objfile),
|
SECT_OFF_DATA (objfile),
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
sh.value,
|
sh.value,
|
||||||
@ -3061,8 +3062,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
/* The addresses in these entries are reported
|
/* The addresses in these entries are reported
|
||||||
to be wrong. See the code that reads 'G's
|
to be wrong. See the code that reads 'G's
|
||||||
for symtabs. */
|
for symtabs. */
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_STATIC,
|
||||||
SECT_OFF_DATA (objfile),
|
SECT_OFF_DATA (objfile),
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
sh.value,
|
sh.value,
|
||||||
@ -3080,21 +3082,20 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
|| (p == namestring + 1
|
|| (p == namestring + 1
|
||||||
&& namestring[0] != ' '))
|
&& namestring[0] != ' '))
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list
|
||||||
STRUCT_DOMAIN, LOC_TYPEDEF,
|
(gdb::string_view (namestring, p - namestring),
|
||||||
-1,
|
true, STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC, 0, psymtab_language,
|
||||||
0, psymtab_language, objfile);
|
objfile);
|
||||||
if (p[2] == 't')
|
if (p[2] == 't')
|
||||||
{
|
{
|
||||||
/* Also a typedef with the same name. */
|
/* Also a typedef with the same name. */
|
||||||
add_psymbol_to_list (namestring,
|
add_psymbol_to_list
|
||||||
p - namestring, true,
|
(gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_TYPEDEF,
|
p - namestring),
|
||||||
-1,
|
true, VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC, 0,
|
||||||
0, psymtab_language,
|
psymtab_language, objfile);
|
||||||
objfile);
|
|
||||||
p += 1;
|
p += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3103,11 +3104,12 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
if (p != namestring) /* a name is there, not
|
if (p != namestring) /* a name is there, not
|
||||||
just :T... */
|
just :T... */
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (namestring, p - namestring,
|
add_psymbol_to_list
|
||||||
true, VAR_DOMAIN, LOC_TYPEDEF,
|
(gdb::string_view (namestring,
|
||||||
-1,
|
p - namestring),
|
||||||
psymbol_placement::STATIC,
|
true, VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
0, psymtab_language, objfile);
|
psymbol_placement::STATIC, 0, psymtab_language,
|
||||||
|
objfile);
|
||||||
}
|
}
|
||||||
check_enum:
|
check_enum:
|
||||||
/* If this is an enumerated type, we need to add
|
/* If this is an enumerated type, we need to add
|
||||||
@ -3168,9 +3170,10 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
/* Note that the value doesn't matter for
|
/* Note that the value doesn't matter for
|
||||||
enum constants in psymtabs, just in
|
enum constants in psymtabs, just in
|
||||||
symtabs. */
|
symtabs. */
|
||||||
add_psymbol_to_list (p, q - p, true,
|
add_psymbol_to_list (gdb::string_view (p,
|
||||||
VAR_DOMAIN, LOC_CONST,
|
q - p),
|
||||||
-1,
|
true, VAR_DOMAIN,
|
||||||
|
LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language,
|
0, psymtab_language,
|
||||||
objfile);
|
objfile);
|
||||||
@ -3187,8 +3190,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
continue;
|
continue;
|
||||||
case 'c':
|
case 'c':
|
||||||
/* Constant, e.g. from "const" in Pascal. */
|
/* Constant, e.g. from "const" in Pascal. */
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
continue;
|
continue;
|
||||||
@ -3200,8 +3204,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
function_outside_compilation_unit_complaint
|
function_outside_compilation_unit_complaint
|
||||||
(copy.c_str ());
|
(copy.c_str ());
|
||||||
}
|
}
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
sh.value,
|
sh.value,
|
||||||
@ -3219,8 +3224,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
function_outside_compilation_unit_complaint
|
function_outside_compilation_unit_complaint
|
||||||
(copy.c_str ());
|
(copy.c_str ());
|
||||||
}
|
}
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
sh.value,
|
sh.value,
|
||||||
@ -3454,13 +3460,13 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
symbol table, and the MAIN__ symbol via the minimal
|
symbol table, and the MAIN__ symbol via the minimal
|
||||||
symbol table. */
|
symbol table. */
|
||||||
if (sh.st == stProc)
|
if (sh.st == stProc)
|
||||||
add_psymbol_to_list (sym_name, strlen (sym_name), true,
|
add_psymbol_to_list (sym_name, true,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
VAR_DOMAIN, LOC_BLOCK,
|
||||||
section,
|
section,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
sh.value, psymtab_language, objfile);
|
sh.value, psymtab_language, objfile);
|
||||||
else
|
else
|
||||||
add_psymbol_to_list (sym_name, strlen (sym_name), true,
|
add_psymbol_to_list (sym_name, true,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
VAR_DOMAIN, LOC_BLOCK,
|
||||||
section,
|
section,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
@ -3527,7 +3533,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
&& sh.iss != 0
|
&& sh.iss != 0
|
||||||
&& sh.index != cur_sdx + 2)
|
&& sh.index != cur_sdx + 2)
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (sym_name, strlen (sym_name), true,
|
add_psymbol_to_list (sym_name, true,
|
||||||
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
@ -3567,7 +3573,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Use this gdb symbol. */
|
/* Use this gdb symbol. */
|
||||||
add_psymbol_to_list (sym_name, strlen (sym_name), true,
|
add_psymbol_to_list (sym_name, true,
|
||||||
VAR_DOMAIN, theclass, section,
|
VAR_DOMAIN, theclass, section,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
sh.value, psymtab_language, objfile);
|
sh.value, psymtab_language, objfile);
|
||||||
@ -3646,7 +3652,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
char *sym_name = debug_info->ssext + psh->iss;
|
char *sym_name = debug_info->ssext + psh->iss;
|
||||||
add_psymbol_to_list (sym_name, strlen (sym_name), true,
|
add_psymbol_to_list (sym_name, true,
|
||||||
VAR_DOMAIN, theclass,
|
VAR_DOMAIN, theclass,
|
||||||
section,
|
section,
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
@ -3809,7 +3815,7 @@ handle_psymbol_enumerators (struct objfile *objfile, FDR *fh, int stype,
|
|||||||
|
|
||||||
/* Note that the value doesn't matter for enum constants
|
/* Note that the value doesn't matter for enum constants
|
||||||
in psymtabs, just in symtabs. */
|
in psymtabs, just in symtabs. */
|
||||||
add_psymbol_to_list (name, strlen (name), true,
|
add_psymbol_to_list (name, true,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
VAR_DOMAIN, LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC, 0,
|
psymbol_placement::STATIC, 0,
|
||||||
psymtab_language, objfile);
|
psymtab_language, objfile);
|
||||||
@ -4758,7 +4764,7 @@ new_symbol (const char *name)
|
|||||||
|
|
||||||
SYMBOL_SET_LANGUAGE (s, psymtab_language,
|
SYMBOL_SET_LANGUAGE (s, psymtab_language,
|
||||||
&mdebugread_objfile->objfile_obstack);
|
&mdebugread_objfile->objfile_obstack);
|
||||||
SYMBOL_SET_NAMES (s, name, strlen (name), 1, mdebugread_objfile);
|
SYMBOL_SET_NAMES (s, name, true, mdebugread_objfile);
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1086,7 +1086,7 @@ mst_str (minimal_symbol_type t)
|
|||||||
/* See minsyms.h. */
|
/* See minsyms.h. */
|
||||||
|
|
||||||
struct minimal_symbol *
|
struct minimal_symbol *
|
||||||
minimal_symbol_reader::record_full (const char *name, int name_len,
|
minimal_symbol_reader::record_full (gdb::string_view name,
|
||||||
bool copy_name, CORE_ADDR address,
|
bool copy_name, CORE_ADDR address,
|
||||||
enum minimal_symbol_type ms_type,
|
enum minimal_symbol_type ms_type,
|
||||||
int section)
|
int section)
|
||||||
@ -1100,24 +1100,22 @@ minimal_symbol_reader::record_full (const char *name, int name_len,
|
|||||||
lookup_minimal_symbol_by_pc would have no way of getting the
|
lookup_minimal_symbol_by_pc would have no way of getting the
|
||||||
right one. */
|
right one. */
|
||||||
if (ms_type == mst_file_text && name[0] == 'g'
|
if (ms_type == mst_file_text && name[0] == 'g'
|
||||||
&& (strcmp (name, GCC_COMPILED_FLAG_SYMBOL) == 0
|
&& (name == GCC_COMPILED_FLAG_SYMBOL
|
||||||
|| strcmp (name, GCC2_COMPILED_FLAG_SYMBOL) == 0))
|
|| name == GCC2_COMPILED_FLAG_SYMBOL))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
|
||||||
/* It's safe to strip the leading char here once, since the name
|
/* It's safe to strip the leading char here once, since the name
|
||||||
is also stored stripped in the minimal symbol table. */
|
is also stored stripped in the minimal symbol table. */
|
||||||
if (name[0] == get_symbol_leading_char (m_objfile->obfd))
|
if (name[0] == get_symbol_leading_char (m_objfile->obfd))
|
||||||
{
|
name = name.substr (1);
|
||||||
++name;
|
|
||||||
--name_len;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ms_type == mst_file_text && startswith (name, "__gnu_compiled"))
|
if (ms_type == mst_file_text && startswith (name, "__gnu_compiled"))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
|
||||||
if (symtab_create_debug >= 2)
|
if (symtab_create_debug >= 2)
|
||||||
printf_unfiltered ("Recording minsym: %-21s %18s %4d %s\n",
|
printf_unfiltered ("Recording minsym: %-21s %18s %4d %.*s\n",
|
||||||
mst_str (ms_type), hex_string (address), section, name);
|
mst_str (ms_type), hex_string (address), section,
|
||||||
|
(int) name.size (), name.data ());
|
||||||
|
|
||||||
if (m_msym_bunch_index == BUNCH_SIZE)
|
if (m_msym_bunch_index == BUNCH_SIZE)
|
||||||
{
|
{
|
||||||
@ -1129,7 +1127,7 @@ minimal_symbol_reader::record_full (const char *name, int name_len,
|
|||||||
msymbol = &m_msym_bunch->contents[m_msym_bunch_index];
|
msymbol = &m_msym_bunch->contents[m_msym_bunch_index];
|
||||||
symbol_set_language (msymbol, language_auto,
|
symbol_set_language (msymbol, language_auto,
|
||||||
&m_objfile->per_bfd->storage_obstack);
|
&m_objfile->per_bfd->storage_obstack);
|
||||||
symbol_set_names (msymbol, name, name_len, copy_name, m_objfile->per_bfd);
|
symbol_set_names (msymbol, name, copy_name, m_objfile->per_bfd);
|
||||||
|
|
||||||
SET_MSYMBOL_VALUE_ADDRESS (msymbol, address);
|
SET_MSYMBOL_VALUE_ADDRESS (msymbol, address);
|
||||||
MSYMBOL_SECTION (msymbol) = section;
|
MSYMBOL_SECTION (msymbol) = section;
|
||||||
|
@ -88,7 +88,6 @@ class minimal_symbol_reader
|
|||||||
Arguments are:
|
Arguments are:
|
||||||
|
|
||||||
NAME - the symbol's name
|
NAME - the symbol's name
|
||||||
NAME_LEN - the length of the name
|
|
||||||
COPY_NAME - if true, the minsym code must make a copy of NAME. If
|
COPY_NAME - if true, the minsym code must make a copy of NAME. If
|
||||||
false, then NAME must be NUL-terminated, and must have a lifetime
|
false, then NAME must be NUL-terminated, and must have a lifetime
|
||||||
that is at least as long as OBJFILE's lifetime.
|
that is at least as long as OBJFILE's lifetime.
|
||||||
@ -97,15 +96,14 @@ class minimal_symbol_reader
|
|||||||
SECTION - the symbol's section
|
SECTION - the symbol's section
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct minimal_symbol *record_full (const char *name,
|
struct minimal_symbol *record_full (gdb::string_view name,
|
||||||
int name_len,
|
|
||||||
bool copy_name,
|
bool copy_name,
|
||||||
CORE_ADDR address,
|
CORE_ADDR address,
|
||||||
enum minimal_symbol_type ms_type,
|
enum minimal_symbol_type ms_type,
|
||||||
int section);
|
int section);
|
||||||
|
|
||||||
/* Like record_full, but:
|
/* Like record_full, but:
|
||||||
- uses strlen to compute NAME_LEN,
|
- computes the length of NAME
|
||||||
- passes COPY_NAME = true,
|
- passes COPY_NAME = true,
|
||||||
- and passes a default SECTION, depending on the type
|
- and passes a default SECTION, depending on the type
|
||||||
|
|
||||||
@ -115,7 +113,7 @@ class minimal_symbol_reader
|
|||||||
enum minimal_symbol_type ms_type);
|
enum minimal_symbol_type ms_type);
|
||||||
|
|
||||||
/* Like record_full, but:
|
/* Like record_full, but:
|
||||||
- uses strlen to compute NAME_LEN,
|
- computes the length of NAME
|
||||||
- passes COPY_NAME = true.
|
- passes COPY_NAME = true.
|
||||||
|
|
||||||
This variant does not return the new symbol. */
|
This variant does not return the new symbol. */
|
||||||
@ -124,7 +122,7 @@ class minimal_symbol_reader
|
|||||||
enum minimal_symbol_type ms_type,
|
enum minimal_symbol_type ms_type,
|
||||||
int section)
|
int section)
|
||||||
{
|
{
|
||||||
record_full (name, strlen (name), true, address, ms_type, section);
|
record_full (name, true, address, ms_type, section);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include "psymtab.h"
|
#include "psymtab.h"
|
||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
|
#include "gdbsupport/gdb_string_view.h"
|
||||||
|
|
||||||
/* A partial_symbol records the name, domain, and address class of
|
/* A partial_symbol records the name, domain, and address class of
|
||||||
symbols whose types we have not parsed yet. For functions, it also
|
symbols whose types we have not parsed yet. For functions, it also
|
||||||
@ -304,7 +305,7 @@ enum class psymbol_placement
|
|||||||
LANGUAGE is the language from which the symbol originates. This will
|
LANGUAGE is the language from which the symbol originates. This will
|
||||||
influence, amongst other things, how the symbol name is demangled. */
|
influence, amongst other things, how the symbol name is demangled. */
|
||||||
|
|
||||||
extern void add_psymbol_to_list (const char *name, int namelength,
|
extern void add_psymbol_to_list (gdb::string_view name,
|
||||||
bool copy_name, domain_enum domain,
|
bool copy_name, domain_enum domain,
|
||||||
enum address_class theclass,
|
enum address_class theclass,
|
||||||
short section,
|
short section,
|
||||||
|
@ -1568,7 +1568,7 @@ psymbol_compare (const void *addr1, const void *addr2, int length)
|
|||||||
different domain (or address) is possible and correct. */
|
different domain (or address) is possible and correct. */
|
||||||
|
|
||||||
static struct partial_symbol *
|
static struct partial_symbol *
|
||||||
add_psymbol_to_bcache (const char *name, int namelength, bool copy_name,
|
add_psymbol_to_bcache (gdb::string_view name, bool copy_name,
|
||||||
domain_enum domain,
|
domain_enum domain,
|
||||||
enum address_class theclass,
|
enum address_class theclass,
|
||||||
short section,
|
short section,
|
||||||
@ -1585,7 +1585,7 @@ add_psymbol_to_bcache (const char *name, int namelength, bool copy_name,
|
|||||||
psymbol.aclass = theclass;
|
psymbol.aclass = theclass;
|
||||||
symbol_set_language (&psymbol.ginfo, language,
|
symbol_set_language (&psymbol.ginfo, language,
|
||||||
objfile->partial_symtabs->obstack ());
|
objfile->partial_symtabs->obstack ());
|
||||||
symbol_set_names (&psymbol.ginfo, name, namelength, copy_name,
|
symbol_set_names (&psymbol.ginfo, name, copy_name,
|
||||||
objfile->per_bfd);
|
objfile->per_bfd);
|
||||||
|
|
||||||
/* Stash the partial symbol away in the cache. */
|
/* Stash the partial symbol away in the cache. */
|
||||||
@ -1608,7 +1608,7 @@ append_psymbol_to_list (std::vector<partial_symbol *> *list,
|
|||||||
/* See psympriv.h. */
|
/* See psympriv.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
add_psymbol_to_list (const char *name, int namelength, bool copy_name,
|
add_psymbol_to_list (gdb::string_view name, bool copy_name,
|
||||||
domain_enum domain,
|
domain_enum domain,
|
||||||
enum address_class theclass,
|
enum address_class theclass,
|
||||||
short section,
|
short section,
|
||||||
@ -1621,7 +1621,7 @@ add_psymbol_to_list (const char *name, int namelength, bool copy_name,
|
|||||||
int added;
|
int added;
|
||||||
|
|
||||||
/* Stash the partial symbol away in the cache. */
|
/* Stash the partial symbol away in the cache. */
|
||||||
psym = add_psymbol_to_bcache (name, namelength, copy_name, domain, theclass,
|
psym = add_psymbol_to_bcache (name, copy_name, domain, theclass,
|
||||||
section, coreaddr, language, objfile, &added);
|
section, coreaddr, language, objfile, &added);
|
||||||
|
|
||||||
/* Do not duplicate global partial symbols. */
|
/* Do not duplicate global partial symbols. */
|
||||||
|
@ -752,11 +752,12 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
|
|||||||
if (!new_name.empty ())
|
if (!new_name.empty ())
|
||||||
{
|
{
|
||||||
SYMBOL_SET_NAMES (sym,
|
SYMBOL_SET_NAMES (sym,
|
||||||
new_name.c_str (), new_name.length (),
|
new_name,
|
||||||
1, objfile);
|
1, objfile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
SYMBOL_SET_NAMES (sym, string, p - string, 1, objfile);
|
SYMBOL_SET_NAMES (sym, gdb::string_view (string, p - string), true,
|
||||||
|
objfile);
|
||||||
|
|
||||||
if (SYMBOL_LANGUAGE (sym) == language_cplus)
|
if (SYMBOL_LANGUAGE (sym) == language_cplus)
|
||||||
cp_scan_for_anonymous_namespaces (get_buildsym_compunit (), sym,
|
cp_scan_for_anonymous_namespaces (get_buildsym_compunit (), sym,
|
||||||
|
37
gdb/symtab.c
37
gdb/symtab.c
@ -828,7 +828,7 @@ symbol_find_demangled_name (struct general_symbol_info *gsymbol,
|
|||||||
|
|
||||||
void
|
void
|
||||||
symbol_set_names (struct general_symbol_info *gsymbol,
|
symbol_set_names (struct general_symbol_info *gsymbol,
|
||||||
const char *linkage_name, int len, bool copy_name,
|
gdb::string_view linkage_name, bool copy_name,
|
||||||
struct objfile_per_bfd_storage *per_bfd)
|
struct objfile_per_bfd_storage *per_bfd)
|
||||||
{
|
{
|
||||||
struct demangled_name_entry **slot;
|
struct demangled_name_entry **slot;
|
||||||
@ -838,14 +838,14 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
|||||||
/* In Ada, we do the symbol lookups using the mangled name, so
|
/* In Ada, we do the symbol lookups using the mangled name, so
|
||||||
we can save some space by not storing the demangled name. */
|
we can save some space by not storing the demangled name. */
|
||||||
if (!copy_name)
|
if (!copy_name)
|
||||||
gsymbol->name = linkage_name;
|
gsymbol->name = linkage_name.data ();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *name = (char *) obstack_alloc (&per_bfd->storage_obstack,
|
char *name = (char *) obstack_alloc (&per_bfd->storage_obstack,
|
||||||
len + 1);
|
linkage_name.length () + 1);
|
||||||
|
|
||||||
memcpy (name, linkage_name, len);
|
memcpy (name, linkage_name.data (), linkage_name.length ());
|
||||||
name[len] = '\0';
|
name[linkage_name.length ()] = '\0';
|
||||||
gsymbol->name = name;
|
gsymbol->name = name;
|
||||||
}
|
}
|
||||||
symbol_set_demangled_name (gsymbol, NULL, &per_bfd->storage_obstack);
|
symbol_set_demangled_name (gsymbol, NULL, &per_bfd->storage_obstack);
|
||||||
@ -856,7 +856,7 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
|||||||
if (per_bfd->demangled_names_hash == NULL)
|
if (per_bfd->demangled_names_hash == NULL)
|
||||||
create_demangled_names_hash (per_bfd);
|
create_demangled_names_hash (per_bfd);
|
||||||
|
|
||||||
struct demangled_name_entry entry (gdb::string_view (linkage_name, len));
|
struct demangled_name_entry entry (linkage_name);
|
||||||
slot = ((struct demangled_name_entry **)
|
slot = ((struct demangled_name_entry **)
|
||||||
htab_find_slot (per_bfd->demangled_names_hash.get (),
|
htab_find_slot (per_bfd->demangled_names_hash.get (),
|
||||||
&entry, INSERT));
|
&entry, INSERT));
|
||||||
@ -870,20 +870,21 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
|||||||
/* A 0-terminated copy of the linkage name. Callers must set COPY_NAME
|
/* A 0-terminated copy of the linkage name. Callers must set COPY_NAME
|
||||||
to true if the string might not be nullterminated. We have to make
|
to true if the string might not be nullterminated. We have to make
|
||||||
this copy because demangling needs a nullterminated string. */
|
this copy because demangling needs a nullterminated string. */
|
||||||
const char *linkage_name_copy;
|
gdb::string_view linkage_name_copy;
|
||||||
if (copy_name)
|
if (copy_name)
|
||||||
{
|
{
|
||||||
char *alloc_name = (char *) alloca (len + 1);
|
char *alloc_name = (char *) alloca (linkage_name.length () + 1);
|
||||||
memcpy (alloc_name, linkage_name, len);
|
memcpy (alloc_name, linkage_name.data (), linkage_name.length ());
|
||||||
alloc_name[len] = '\0';
|
alloc_name[linkage_name.length ()] = '\0';
|
||||||
|
|
||||||
linkage_name_copy = alloc_name;
|
linkage_name_copy = gdb::string_view (alloc_name,
|
||||||
|
linkage_name.length ());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
linkage_name_copy = linkage_name;
|
linkage_name_copy = linkage_name;
|
||||||
|
|
||||||
gdb::unique_xmalloc_ptr<char> demangled_name_ptr
|
gdb::unique_xmalloc_ptr<char> demangled_name_ptr
|
||||||
(symbol_find_demangled_name (gsymbol, linkage_name_copy));
|
(symbol_find_demangled_name (gsymbol, linkage_name_copy.data ()));
|
||||||
|
|
||||||
/* Suppose we have demangled_name==NULL, copy_name==0, and
|
/* Suppose we have demangled_name==NULL, copy_name==0, and
|
||||||
linkage_name_copy==linkage_name. In this case, we already have the
|
linkage_name_copy==linkage_name. In this case, we already have the
|
||||||
@ -900,8 +901,7 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
|||||||
= ((struct demangled_name_entry *)
|
= ((struct demangled_name_entry *)
|
||||||
obstack_alloc (&per_bfd->storage_obstack,
|
obstack_alloc (&per_bfd->storage_obstack,
|
||||||
sizeof (demangled_name_entry)));
|
sizeof (demangled_name_entry)));
|
||||||
new (*slot) demangled_name_entry
|
new (*slot) demangled_name_entry (linkage_name);
|
||||||
(gdb::string_view (linkage_name, len));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -910,12 +910,13 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
|||||||
*slot
|
*slot
|
||||||
= ((struct demangled_name_entry *)
|
= ((struct demangled_name_entry *)
|
||||||
obstack_alloc (&per_bfd->storage_obstack,
|
obstack_alloc (&per_bfd->storage_obstack,
|
||||||
sizeof (demangled_name_entry) + len + 1));
|
sizeof (demangled_name_entry)
|
||||||
|
+ linkage_name.length () + 1));
|
||||||
char *mangled_ptr = reinterpret_cast<char *> (*slot + 1);
|
char *mangled_ptr = reinterpret_cast<char *> (*slot + 1);
|
||||||
memcpy (mangled_ptr, linkage_name, len);
|
memcpy (mangled_ptr, linkage_name.data (), linkage_name.length ());
|
||||||
mangled_ptr [len] = '\0';
|
mangled_ptr [linkage_name.length ()] = '\0';
|
||||||
new (*slot) demangled_name_entry
|
new (*slot) demangled_name_entry
|
||||||
(gdb::string_view (mangled_ptr, len));
|
(gdb::string_view (mangled_ptr, linkage_name.length ()));
|
||||||
}
|
}
|
||||||
(*slot)->demangled = std::move (demangled_name_ptr);
|
(*slot)->demangled = std::move (demangled_name_ptr);
|
||||||
(*slot)->language = gsymbol->language;
|
(*slot)->language = gsymbol->language;
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "gdbsupport/enum-flags.h"
|
#include "gdbsupport/enum-flags.h"
|
||||||
#include "gdbsupport/function-view.h"
|
#include "gdbsupport/function-view.h"
|
||||||
#include "gdbsupport/gdb_optional.h"
|
#include "gdbsupport/gdb_optional.h"
|
||||||
|
#include "gdbsupport/gdb_string_view.h"
|
||||||
#include "gdbsupport/next-iterator.h"
|
#include "gdbsupport/next-iterator.h"
|
||||||
#include "completer.h"
|
#include "completer.h"
|
||||||
|
|
||||||
@ -506,11 +507,11 @@ extern void symbol_set_language (struct general_symbol_info *symbol,
|
|||||||
/* Set the linkage and natural names of a symbol, by demangling
|
/* Set the linkage and natural names of a symbol, by demangling
|
||||||
the linkage name. If linkage_name may not be nullterminated,
|
the linkage name. If linkage_name may not be nullterminated,
|
||||||
copy_name must be set to true. */
|
copy_name must be set to true. */
|
||||||
#define SYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile) \
|
#define SYMBOL_SET_NAMES(symbol,linkage_name,copy_name,objfile) \
|
||||||
symbol_set_names (&(symbol)->ginfo, linkage_name, len, copy_name, \
|
symbol_set_names (&(symbol)->ginfo, linkage_name, copy_name, \
|
||||||
(objfile)->per_bfd)
|
(objfile)->per_bfd)
|
||||||
extern void symbol_set_names (struct general_symbol_info *symbol,
|
extern void symbol_set_names (struct general_symbol_info *symbol,
|
||||||
const char *linkage_name, int len, bool copy_name,
|
gdb::string_view linkage_name, bool copy_name,
|
||||||
struct objfile_per_bfd_storage *per_bfd);
|
struct objfile_per_bfd_storage *per_bfd);
|
||||||
|
|
||||||
/* Now come lots of name accessor macros. Short version as to when to
|
/* Now come lots of name accessor macros. Short version as to when to
|
||||||
|
@ -2634,8 +2634,9 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
namestring = gdbarch_static_transform_name
|
namestring = gdbarch_static_transform_name
|
||||||
(gdbarch, namestring);
|
(gdbarch, namestring);
|
||||||
|
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_STATIC,
|
||||||
SECT_OFF_DATA (objfile),
|
SECT_OFF_DATA (objfile),
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
symbol.n_value,
|
symbol.n_value,
|
||||||
@ -2645,8 +2646,9 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
case 'G':
|
case 'G':
|
||||||
/* The addresses in these entries are reported to be
|
/* The addresses in these entries are reported to be
|
||||||
wrong. See the code that reads 'G's for symtabs. */
|
wrong. See the code that reads 'G's for symtabs. */
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_STATIC,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_STATIC,
|
||||||
SECT_OFF_DATA (objfile),
|
SECT_OFF_DATA (objfile),
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
symbol.n_value,
|
symbol.n_value,
|
||||||
@ -2664,15 +2666,17 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
|| (p == namestring + 1
|
|| (p == namestring + 1
|
||||||
&& namestring[0] != ' '))
|
&& namestring[0] != ' '))
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
p - namestring),
|
||||||
|
true, STRUCT_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
if (p[2] == 't')
|
if (p[2] == 't')
|
||||||
{
|
{
|
||||||
/* Also a typedef with the same name. */
|
/* Also a typedef with the same name. */
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
p += 1;
|
p += 1;
|
||||||
@ -2683,8 +2687,9 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
case 't':
|
case 't':
|
||||||
if (p != namestring) /* a name is there, not just :T... */
|
if (p != namestring) /* a name is there, not just :T... */
|
||||||
{
|
{
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_TYPEDEF, -1,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_TYPEDEF, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
}
|
}
|
||||||
@ -2745,7 +2750,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
;
|
;
|
||||||
/* Note that the value doesn't matter for
|
/* Note that the value doesn't matter for
|
||||||
enum constants in psymtabs, just in symtabs. */
|
enum constants in psymtabs, just in symtabs. */
|
||||||
add_psymbol_to_list (p, q - p, true,
|
add_psymbol_to_list (gdb::string_view (p, q - p), true,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
VAR_DOMAIN, LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
@ -2763,8 +2768,9 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
|
|
||||||
case 'c':
|
case 'c':
|
||||||
/* Constant, e.g. from "const" in Pascal. */
|
/* Constant, e.g. from "const" in Pascal. */
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_CONST, -1,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_CONST, -1,
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
0, psymtab_language, objfile);
|
0, psymtab_language, objfile);
|
||||||
continue;
|
continue;
|
||||||
@ -2780,8 +2786,9 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
function_outside_compilation_unit_complaint (name);
|
function_outside_compilation_unit_complaint (name);
|
||||||
xfree (name);
|
xfree (name);
|
||||||
}
|
}
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
psymbol_placement::STATIC,
|
psymbol_placement::STATIC,
|
||||||
symbol.n_value,
|
symbol.n_value,
|
||||||
@ -2810,8 +2817,9 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|
|||||||
if (startswith (namestring, "@FIX"))
|
if (startswith (namestring, "@FIX"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
add_psymbol_to_list (namestring, p - namestring, true,
|
add_psymbol_to_list (gdb::string_view (namestring,
|
||||||
VAR_DOMAIN, LOC_BLOCK,
|
p - namestring),
|
||||||
|
true, VAR_DOMAIN, LOC_BLOCK,
|
||||||
SECT_OFF_TEXT (objfile),
|
SECT_OFF_TEXT (objfile),
|
||||||
psymbol_placement::GLOBAL,
|
psymbol_placement::GLOBAL,
|
||||||
symbol.n_value,
|
symbol.n_value,
|
||||||
|
Loading…
Reference in New Issue
Block a user