From d4c9a4f87ddbbb79d852f59ee1723e03294540c2 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 26 Feb 2020 09:35:22 -0500 Subject: [PATCH] Move more declarations from dwarf2/loc.h to dwarf2/read.h All these functions have their implementations in dwarf2/read.c, so move their declarations to dwarf2/read.h. Move the doc to the header, at the same time. gdb/ChangeLog: * dwarf2/loc.h (dwarf2_fetch_die_loc_sect_off, dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes, dwarf2_fetch_die_type_sect_off): Move to... * dwarf2/read.h (dwarf2_fetch_die_loc_sect_off, dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes, dwarf2_fetch_die_type_sect_off): ... here. * dwarf2/read.c (dwarf2_fetch_die_loc_sect_off, dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes, dwarf2_fetch_die_type_sect_off): Move doc to header file. --- gdb/ChangeLog | 12 ++++++++++++ gdb/dwarf2/loc.h | 18 ------------------ gdb/dwarf2/read.c | 26 +++++++++----------------- gdb/dwarf2/read.h | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 35 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fb4cc033a9..33f7bc8707 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2020-02-26 Simon Marchi + + * dwarf2/loc.h (dwarf2_fetch_die_loc_sect_off, + dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes, + dwarf2_fetch_die_type_sect_off): Move to... + * dwarf2/read.h (dwarf2_fetch_die_loc_sect_off, + dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes, + dwarf2_fetch_die_type_sect_off): ... here. + * dwarf2/read.c (dwarf2_fetch_die_loc_sect_off, + dwarf2_fetch_die_loc_cu_off, dwarf2_fetch_constant_bytes, + dwarf2_fetch_die_type_sect_off): Move doc to header file. + 2020-02-26 Tom de Vries PR gdb/25603 diff --git a/gdb/dwarf2/loc.h b/gdb/dwarf2/loc.h index dfb6f05525..98a7d8a606 100644 --- a/gdb/dwarf2/loc.h +++ b/gdb/dwarf2/loc.h @@ -41,24 +41,6 @@ const gdb_byte *dwarf2_find_location_expression size_t *locexpr_length, CORE_ADDR pc); -struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off - (sect_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu, - CORE_ADDR (*get_frame_pc) (void *baton), - void *baton, bool resolve_abstract_p = false); - -struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off - (cu_offset offset_in_cu, struct dwarf2_per_cu_data *per_cu, - CORE_ADDR (*get_frame_pc) (void *baton), - void *baton); - -extern const gdb_byte *dwarf2_fetch_constant_bytes (sect_offset, - struct dwarf2_per_cu_data *, - struct obstack *, - LONGEST *); - -struct type *dwarf2_fetch_die_type_sect_off (sect_offset, - struct dwarf2_per_cu_data *); - /* Find the frame base information for FRAMEFUNC at PC. START is an out parameter which is set to point to the DWARF expression to compute. LENGTH is an out parameter which is set to the length of diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 37d4af14ea..6849644748 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -22211,14 +22211,11 @@ follow_die_ref (struct die_info *src_die, const struct attribute *attr, return die; } -/* Return DWARF block referenced by DW_AT_location of DIE at SECT_OFF at PER_CU. - Returned value is intended for DW_OP_call*. Returned - dwarf2_locexpr_baton->data has lifetime of - PER_CU->DWARF2_PER_OBJFILE->OBJFILE. */ +/* See read.h. */ struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off (sect_offset sect_off, - struct dwarf2_per_cu_data *per_cu, + dwarf2_per_cu_data *per_cu, CORE_ADDR (*get_frame_pc) (void *baton), void *baton, bool resolve_abstract_p) { @@ -22317,12 +22314,11 @@ dwarf2_fetch_die_loc_sect_off (sect_offset sect_off, return retval; } -/* Like dwarf2_fetch_die_loc_sect_off, but take a CU - offset. */ +/* See read.h. */ struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off (cu_offset offset_in_cu, - struct dwarf2_per_cu_data *per_cu, + dwarf2_per_cu_data *per_cu, CORE_ADDR (*get_frame_pc) (void *baton), void *baton) { @@ -22350,15 +22346,12 @@ write_constant_as_bytes (struct obstack *obstack, return result; } -/* If the DIE at OFFSET in PER_CU has a DW_AT_const_value, return a - pointer to the constant bytes and set LEN to the length of the - data. If memory is needed, allocate it on OBSTACK. If the DIE - does not have a DW_AT_const_value, return NULL. */ +/* See read.h. */ const gdb_byte * dwarf2_fetch_constant_bytes (sect_offset sect_off, - struct dwarf2_per_cu_data *per_cu, - struct obstack *obstack, + dwarf2_per_cu_data *per_cu, + obstack *obstack, LONGEST *len) { struct dwarf2_cu *cu; @@ -22483,12 +22476,11 @@ dwarf2_fetch_constant_bytes (sect_offset sect_off, return result; } -/* Return the type of the die at OFFSET in PER_CU. Return NULL if no - valid type for this die is found. */ +/* See read.h. */ struct type * dwarf2_fetch_die_type_sect_off (sect_offset sect_off, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu) { struct dwarf2_cu *cu; struct die_info *die; diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index a3ae412379..00652c2b45 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -537,6 +537,39 @@ struct type *dwarf2_get_die_type (cu_offset die_offset, CORE_ADDR dwarf2_read_addr_index (dwarf2_per_cu_data *per_cu, unsigned int addr_index); +/* Return DWARF block referenced by DW_AT_location of DIE at SECT_OFF at PER_CU. + Returned value is intended for DW_OP_call*. Returned + dwarf2_locexpr_baton->data has lifetime of + PER_CU->DWARF2_PER_OBJFILE->OBJFILE. */ + +struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off + (sect_offset sect_off, dwarf2_per_cu_data *per_cu, + CORE_ADDR (*get_frame_pc) (void *baton), + void *baton, bool resolve_abstract_p = false); + +/* Like dwarf2_fetch_die_loc_sect_off, but take a CU + offset. */ + +struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off + (cu_offset offset_in_cu, dwarf2_per_cu_data *per_cu, + CORE_ADDR (*get_frame_pc) (void *baton), + void *baton); + +/* If the DIE at SECT_OFF in PER_CU has a DW_AT_const_value, return a + pointer to the constant bytes and set LEN to the length of the + data. If memory is needed, allocate it on OBSTACK. If the DIE + does not have a DW_AT_const_value, return NULL. */ + +extern const gdb_byte *dwarf2_fetch_constant_bytes + (sect_offset sect_off, dwarf2_per_cu_data *per_cu, obstack *obstack, + LONGEST *len); + +/* Return the type of the die at SECT_OFF in PER_CU. Return NULL if no + valid type for this die is found. */ + +struct type *dwarf2_fetch_die_type_sect_off + (sect_offset sect_off, dwarf2_per_cu_data *per_cu); + /* When non-zero, dump line number entries as they are read in. */ extern unsigned int dwarf_line_debug; -- 2.34.1