From: Andrew Burgess <andrew.burgess@embecosm.com>
To: Tom Tromey <tom@tromey.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 6/6] Change target_section_table to std::vector alias
Date: Sun, 4 Oct 2020 09:46:04 +0100 [thread overview]
Message-ID: <20201004084604.GE605036@embecosm.com> (raw)
In-Reply-To: <20201003193735.2532-7-tom@tromey.com>
* Tom Tromey <tom@tromey.com> [2020-10-03 13:37:35 -0600]:
> Because target_section_table only holds a vector, and because it is
> used in an "open" way, this patch makes it just be an alias for the
> std::vector specialization. This makes the code less wordy. If we do
> ever want to add more specialized behavior to this type, it's simple
> enough to convert it back to a struct with the few needed methods
> implied by this change.
Sounds good.
Thanks,
Andrew
>
> 2020-10-03 Tom Tromey <tom@tromey.com>
>
> * target.h (struct target_ops) <get_section_table>: Update.
> (target_get_section_table): Update.
> * target.c (target_get_section_table, target_section_by_addr)
> (memory_xfer_partial_1): Update.
> * target-section.h (target_section_table): Now an alias.
> * target-delegates.c: Rebuild.
> * target-debug.h (target_debug_print_target_section_table_p):
> Rename from target_debug_print_struct_target_section_table_p.
> * symfile.c (build_section_addr_info_from_section_table): Update.
> * solib.c (solib_map_sections, solib_contains_address_p): Update.
> * solib-svr4.c (scan_dyntag): Update.
> * solib-dsbt.c (scan_dyntag): Update.
> * remote.c (remote_target::remote_xfer_live_readonly_partial):
> Update.
> * record-full.c (record_full_core_target::xfer_partial): Update.
> * progspace.h (struct program_space) <target_sections>: Update.
> * exec.h (print_section_info): Update.
> * exec.c (exec_target::close, build_section_table)
> (add_target_sections, add_target_sections_of_objfile)
> (remove_target_sections, exec_on_vfork)
> (section_table_available_memory)
> (section_table_xfer_memory_partial)
> (exec_target::get_section_table, exec_target::xfer_partial)
> (print_section_info, set_section_command)
> (exec_set_section_address, exec_target::has_memory): Update.
> * corelow.c (core_target::build_file_mappings)
> (core_target::xfer_partial, core_target::info_proc_mappings)
> (core_target::info_proc_mappings): Update.
> * bfd-target.c (class target_bfd): Update
> ---
> gdb/ChangeLog | 32 +++++++++++++++++++++
> gdb/bfd-target.c | 2 +-
> gdb/corelow.c | 10 +++----
> gdb/exec.c | 63 +++++++++++++++++++-----------------------
> gdb/exec.h | 2 +-
> gdb/progspace.h | 2 +-
> gdb/record-full.c | 2 +-
> gdb/remote.c | 6 ++--
> gdb/solib-dsbt.c | 2 +-
> gdb/solib-svr4.c | 2 +-
> gdb/solib.c | 4 +--
> gdb/symfile.c | 4 +--
> gdb/target-debug.h | 2 +-
> gdb/target-delegates.c | 14 +++++-----
> gdb/target-section.h | 5 +---
> gdb/target.c | 12 ++++----
> gdb/target.h | 5 ++--
> 17 files changed, 94 insertions(+), 75 deletions(-)
>
> diff --git a/gdb/bfd-target.c b/gdb/bfd-target.c
> index d5defab9a80..bf4a98594bd 100644
> --- a/gdb/bfd-target.c
> +++ b/gdb/bfd-target.c
> @@ -59,7 +59,7 @@ class target_bfd : public target_ops
> /* The section table build from the ALLOC sections in BFD. Note
> that we can't rely on extracting the BFD from a random section in
> the table, since the table can be legitimately empty. */
> - struct target_section_table m_table;
> + target_section_table m_table;
> };
>
> target_xfer_status
> diff --git a/gdb/corelow.c b/gdb/corelow.c
> index 193dccbeeb5..d557475e06f 100644
> --- a/gdb/corelow.c
> +++ b/gdb/corelow.c
> @@ -266,8 +266,8 @@ core_target::build_file_mappings ()
> bfd_set_section_alignment (sec, 2);
>
> /* Set target_section fields. */
> - m_core_file_mappings.sections.emplace_back ();
> - target_section &ts = m_core_file_mappings.sections.back ();
> + m_core_file_mappings.emplace_back ();
> + target_section &ts = m_core_file_mappings.back ();
> ts.addr = start;
> ts.endaddr = end;
> ts.owner = nullptr;
> @@ -814,7 +814,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
> or the like) as this should provide a more accurate
> result. If not, check the stratum beneath us, which should
> be the file stratum. */
> - if (!m_core_file_mappings.sections.empty ())
> + if (!m_core_file_mappings.empty ())
> xfer_status = xfer_memory_via_mappings (readbuf, writebuf, offset,
> len, xfered_len);
> else
> @@ -1098,7 +1098,7 @@ get_current_core_target ()
> void
> core_target::info_proc_mappings (struct gdbarch *gdbarch)
> {
> - if (!m_core_file_mappings.sections.empty ())
> + if (!m_core_file_mappings.empty ())
> {
> printf_filtered (_("Mapped address spaces:\n\n"));
> if (gdbarch_addr_bit (gdbarch) == 32)
> @@ -1117,7 +1117,7 @@ core_target::info_proc_mappings (struct gdbarch *gdbarch)
> }
> }
>
> - for (const target_section &tsp : m_core_file_mappings.sections)
> + for (const target_section &tsp : m_core_file_mappings)
> {
> ULONGEST start = tsp.addr;
> ULONGEST end = tsp.endaddr;
> diff --git a/gdb/exec.c b/gdb/exec.c
> index ab47757c2b4..dd322129139 100644
> --- a/gdb/exec.c
> +++ b/gdb/exec.c
> @@ -75,7 +75,7 @@ struct exec_target final : public target_ops
> const gdb_byte *writebuf,
> ULONGEST offset, ULONGEST len,
> ULONGEST *xfered_len) override;
> - struct target_section_table *get_section_table () override;
> + target_section_table *get_section_table () override;
> void files_info () override;
>
> bool has_memory () override;
> @@ -183,7 +183,7 @@ exec_target::close ()
> for (struct program_space *ss : program_spaces)
> {
> set_current_program_space (ss);
> - current_target_sections->sections.clear ();
> + current_target_sections->clear ();
> exec_close ();
> }
> }
> @@ -598,8 +598,8 @@ build_section_table (struct bfd *some_bfd)
> if (!(aflag & SEC_ALLOC))
> continue;
>
> - table.sections.emplace_back ();
> - target_section § = table.sections.back ();
> + table.emplace_back ();
> + target_section § = table.back ();
> sect.owner = NULL;
> sect.the_bfd_section = asect;
> sect.addr = bfd_section_vma (asect);
> @@ -616,14 +616,14 @@ void
> add_target_sections (void *owner,
> const target_section_table §ions)
> {
> - struct target_section_table *table = current_target_sections;
> + target_section_table *table = current_target_sections;
>
> - if (!sections.sections.empty ())
> + if (!sections.empty ())
> {
> - for (const target_section &s : sections.sections)
> + for (const target_section &s : sections)
> {
> - table->sections.push_back (s);
> - table->sections.back ().owner = owner;
> + table->push_back (s);
> + table->back ().owner = owner;
> }
>
> scoped_restore_current_pspace_and_thread restore_pspace_thread;
> @@ -651,7 +651,7 @@ add_target_sections (void *owner,
> void
> add_target_sections_of_objfile (struct objfile *objfile)
> {
> - struct target_section_table *table = current_target_sections;
> + target_section_table *table = current_target_sections;
> struct obj_section *osect;
>
> gdb_assert (objfile != nullptr);
> @@ -662,8 +662,8 @@ add_target_sections_of_objfile (struct objfile *objfile)
> if (bfd_section_size (osect->the_bfd_section) == 0)
> continue;
>
> - table->sections.emplace_back ();
> - target_section &ts = table->sections.back ();
> + table->emplace_back ();
> + target_section &ts = table->back ();
> ts.addr = obj_section_addr (osect);
> ts.endaddr = obj_section_endaddr (osect);
> ts.the_bfd_section = osect->the_bfd_section;
> @@ -677,22 +677,22 @@ add_target_sections_of_objfile (struct objfile *objfile)
> void
> remove_target_sections (void *owner)
> {
> - struct target_section_table *table = current_target_sections;
> + target_section_table *table = current_target_sections;
>
> gdb_assert (owner != NULL);
>
> - auto it = std::remove_if (table->sections.begin (),
> - table->sections.end (),
> + auto it = std::remove_if (table->begin (),
> + table->end (),
> [&] (target_section §)
> {
> return sect.owner == owner;
> });
> - table->sections.erase (it, table->sections.end ());
> + table->erase (it, table->end ());
>
> /* If we don't have any more sections to read memory from,
> remove the file_stratum target from the stack of each
> inferior sharing the program space. */
> - if (table->sections.empty ())
> + if (table->empty ())
> {
> scoped_restore_current_pspace_and_thread restore_pspace_thread;
> program_space *curr_pspace = current_program_space;
> @@ -702,7 +702,7 @@ remove_target_sections (void *owner)
> if (inf->pspace != curr_pspace)
> continue;
>
> - if (!inf->pspace->target_sections.sections.empty ())
> + if (!inf->pspace->target_sections.empty ())
> continue;
>
> switch_to_inferior_no_thread (inf);
> @@ -716,7 +716,7 @@ remove_target_sections (void *owner)
> void
> exec_on_vfork ()
> {
> - if (!current_program_space->target_sections.sections.empty ())
> + if (!current_program_space->target_sections.empty ())
> push_target (&exec_ops);
> }
>
> @@ -779,7 +779,7 @@ section_table_available_memory (CORE_ADDR memaddr, ULONGEST len,
> {
> std::vector<mem_range> memory;
>
> - for (const target_section &p : sections.sections)
> + for (const target_section &p : sections)
> {
> if ((bfd_section_flags (p.the_bfd_section) & SEC_READONLY) == 0)
> continue;
> @@ -858,7 +858,7 @@ section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf,
>
> gdb_assert (len != 0);
>
> - for (const target_section &p : sections.sections)
> + for (const target_section &p : sections)
> {
> struct bfd_section *asect = p.the_bfd_section;
> bfd *abfd = asect->owner;
> @@ -918,7 +918,7 @@ section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf,
> return TARGET_XFER_EOF; /* We can't help. */
> }
>
> -struct target_section_table *
> +target_section_table *
> exec_target::get_section_table ()
> {
> return current_target_sections;
> @@ -930,7 +930,7 @@ exec_target::xfer_partial (enum target_object object,
> const gdb_byte *writebuf,
> ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
> {
> - struct target_section_table *table = get_section_table ();
> + target_section_table *table = get_section_table ();
>
> if (object == TARGET_OBJECT_MEMORY)
> return section_table_xfer_memory_partial (readbuf, writebuf,
> @@ -942,7 +942,7 @@ exec_target::xfer_partial (enum target_object object,
> \f
>
> void
> -print_section_info (struct target_section_table *t, bfd *abfd)
> +print_section_info (target_section_table *t, bfd *abfd)
> {
> struct gdbarch *gdbarch = gdbarch_from_bfd (abfd);
> /* FIXME: 16 is not wide enough when gdbarch_addr_bit > 64. */
> @@ -961,7 +961,7 @@ print_section_info (struct target_section_table *t, bfd *abfd)
> bfd_vma entry_point;
> bool found = false;
>
> - for (const target_section &p : t->sections)
> + for (const target_section &p : *t)
> {
> struct bfd_section *psect = p.the_bfd_section;
>
> @@ -989,7 +989,7 @@ print_section_info (struct target_section_table *t, bfd *abfd)
> printf_filtered (_("\tEntry point: %s\n"),
> paddress (gdbarch, entry_point));
> }
> - for (const target_section &p : t->sections)
> + for (const target_section &p : *t)
> {
> struct bfd_section *psect = p.the_bfd_section;
> bfd *pbfd = psect->owner;
> @@ -1032,7 +1032,6 @@ set_section_command (const char *args, int from_tty)
> unsigned long secaddr;
> char secprint[100];
> long offset;
> - struct target_section_table *table;
>
> if (args == 0)
> error (_("Must specify section name and its virtual address"));
> @@ -1044,8 +1043,7 @@ set_section_command (const char *args, int from_tty)
> /* Parse out new virtual address. */
> secaddr = parse_and_eval_address (args);
>
> - table = current_target_sections;
> - for (target_section &p : table->sections)
> + for (target_section &p : *current_target_sections)
> {
> if (!strncmp (secname, bfd_section_name (p.the_bfd_section), seclen)
> && bfd_section_name (p.the_bfd_section)[seclen] == '\0')
> @@ -1071,10 +1069,7 @@ set_section_command (const char *args, int from_tty)
> void
> exec_set_section_address (const char *filename, int index, CORE_ADDR address)
> {
> - struct target_section_table *table;
> -
> - table = current_target_sections;
> - for (target_section &p : table->sections)
> + for (target_section &p : *current_target_sections)
> {
> if (filename_cmp (filename,
> bfd_get_filename (p.the_bfd_section->owner)) == 0
> @@ -1091,7 +1086,7 @@ exec_target::has_memory ()
> {
> /* We can provide memory if we have any file/target sections to read
> from. */
> - return !current_target_sections->sections.empty ();
> + return !current_target_sections->empty ();
> }
>
> char *
> diff --git a/gdb/exec.h b/gdb/exec.h
> index f28a033428d..24489654ddc 100644
> --- a/gdb/exec.h
> +++ b/gdb/exec.h
> @@ -115,7 +115,7 @@ extern void add_target_sections_of_objfile (struct objfile *objfile);
> special cased --- it's filename is omitted; if it is the executable
> file, its entry point is printed. */
>
> -extern void print_section_info (struct target_section_table *table,
> +extern void print_section_info (target_section_table *table,
> bfd *abfd);
>
> extern void exec_close (void);
> diff --git a/gdb/progspace.h b/gdb/progspace.h
> index 099b4dc0b3a..6a0e9036399 100644
> --- a/gdb/progspace.h
> +++ b/gdb/progspace.h
> @@ -325,7 +325,7 @@ struct program_space
>
> /* The set of target sections matching the sections mapped into
> this program space. Managed by both exec_ops and solib.c. */
> - struct target_section_table target_sections {};
> + target_section_table target_sections;
>
> /* List of shared objects mapped into this space. Managed by
> solib.c. */
> diff --git a/gdb/record-full.c b/gdb/record-full.c
> index 40740f216ce..b5447e5a9a6 100644
> --- a/gdb/record-full.c
> +++ b/gdb/record-full.c
> @@ -2138,7 +2138,7 @@ record_full_core_target::xfer_partial (enum target_object object,
> {
> if (record_full_gdb_operation_disable || !writebuf)
> {
> - for (target_section &p : record_full_core_sections.sections)
> + for (target_section &p : record_full_core_sections)
> {
> if (offset >= p.addr)
> {
> diff --git a/gdb/remote.c b/gdb/remote.c
> index c9c5ed03ea2..29c7ee64614 100644
> --- a/gdb/remote.c
> +++ b/gdb/remote.c
> @@ -8889,7 +8889,6 @@ remote_target::remote_xfer_live_readonly_partial (gdb_byte *readbuf,
> ULONGEST *xfered_len)
> {
> struct target_section *secp;
> - struct target_section_table *table;
>
> secp = target_section_by_addr (this, memaddr);
> if (secp != NULL
> @@ -8897,9 +8896,8 @@ remote_target::remote_xfer_live_readonly_partial (gdb_byte *readbuf,
> {
> ULONGEST memend = memaddr + len;
>
> - table = target_get_section_table (this);
> -
> - for (target_section &p : table->sections)
> + target_section_table *table = target_get_section_table (this);
> + for (target_section &p : *table)
> {
> if (memaddr >= p.addr)
> {
> diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
> index 59089216314..57c7ab18430 100644
> --- a/gdb/solib-dsbt.c
> +++ b/gdb/solib-dsbt.c
> @@ -424,7 +424,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr)
> return 0;
>
> bool found = false;
> - for (target_section &target_section : current_target_sections->sections)
> + for (target_section &target_section : *current_target_sections)
> if (sect == target_section.the_bfd_section)
> {
> dyn_addr = target_section.addr;
> diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
> index 9bb728ae9b9..a780f8d3467 100644
> --- a/gdb/solib-svr4.c
> +++ b/gdb/solib-svr4.c
> @@ -608,7 +608,7 @@ scan_dyntag (const int desired_dyntag, bfd *abfd, CORE_ADDR *ptr,
> return 0;
>
> bool found = false;
> - for (target_section &target_section : current_target_sections->sections)
> + for (target_section &target_section : *current_target_sections)
> if (sect == target_section.the_bfd_section)
> {
> dyn_addr = target_section.addr;
> diff --git a/gdb/solib.c b/gdb/solib.c
> index bd6a27d8983..b4864429e9a 100644
> --- a/gdb/solib.c
> +++ b/gdb/solib.c
> @@ -556,7 +556,7 @@ solib_map_sections (struct so_list *so)
> so->sections = new target_section_table;
> *so->sections = build_section_table (so->abfd);
>
> - for (target_section &p : so->sections->sections)
> + for (target_section &p : *so->sections)
> {
> /* Relocate the section binding addresses as recorded in the shared
> object's file by the base address to which the object was actually
> @@ -1113,7 +1113,7 @@ bool
> solib_contains_address_p (const struct so_list *const solib,
> CORE_ADDR address)
> {
> - for (target_section &p : solib->sections->sections)
> + for (target_section &p : *solib->sections)
> if (p.addr <= address && address < p.endaddr)
> return true;
>
> diff --git a/gdb/symfile.c b/gdb/symfile.c
> index f4acec50cca..3332e7f69ff 100644
> --- a/gdb/symfile.c
> +++ b/gdb/symfile.c
> @@ -216,13 +216,13 @@ build_section_addr_info_from_section_table (const target_section_table &table)
> {
> section_addr_info sap;
>
> - for (const target_section &stp : table.sections)
> + for (const target_section &stp : table)
> {
> struct bfd_section *asect = stp.the_bfd_section;
> bfd *abfd = asect->owner;
>
> if (bfd_section_flags (asect) & (SEC_ALLOC | SEC_LOAD)
> - && sap.size () < table.sections.size ())
> + && sap.size () < table.size ())
> sap.emplace_back (stp.addr,
> bfd_section_name (asect),
> gdb_bfd_section_index (abfd, asect));
> diff --git a/gdb/target-debug.h b/gdb/target-debug.h
> index 1b2feb2c7fb..65a14c41787 100644
> --- a/gdb/target-debug.h
> +++ b/gdb/target-debug.h
> @@ -106,7 +106,7 @@
> target_debug_do_print (host_address_to_string (X))
> #define target_debug_print_struct_ui_file_p(X) \
> target_debug_do_print (host_address_to_string (X))
> -#define target_debug_print_struct_target_section_table_p(X) \
> +#define target_debug_print_target_section_table_p(X) \
> target_debug_do_print (host_address_to_string (X))
> #define target_debug_print_async_callback_ftype_p(X) \
> target_debug_do_print (host_address_to_string (X))
> diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
> index c0968e2040e..e9c349fb7ba 100644
> --- a/gdb/target-delegates.c
> +++ b/gdb/target-delegates.c
> @@ -77,7 +77,7 @@ struct dummy_target : public target_ops
> void rcmd (const char *arg0, struct ui_file *arg1) override;
> char *pid_to_exec_file (int arg0) override;
> void log_command (const char *arg0) override;
> - struct target_section_table *get_section_table () override;
> + target_section_table *get_section_table () override;
> thread_control_capabilities get_thread_control_capabilities () override;
> bool attach_no_wait () override;
> bool can_async_p () override;
> @@ -248,7 +248,7 @@ struct debug_target : public target_ops
> void rcmd (const char *arg0, struct ui_file *arg1) override;
> char *pid_to_exec_file (int arg0) override;
> void log_command (const char *arg0) override;
> - struct target_section_table *get_section_table () override;
> + target_section_table *get_section_table () override;
> thread_control_capabilities get_thread_control_capabilities () override;
> bool attach_no_wait () override;
> bool can_async_p () override;
> @@ -2021,27 +2021,27 @@ debug_target::log_command (const char *arg0)
> fputs_unfiltered (")\n", gdb_stdlog);
> }
>
> -struct target_section_table *
> +target_section_table *
> target_ops::get_section_table ()
> {
> return this->beneath ()->get_section_table ();
> }
>
> -struct target_section_table *
> +target_section_table *
> dummy_target::get_section_table ()
> {
> return NULL;
> }
>
> -struct target_section_table *
> +target_section_table *
> debug_target::get_section_table ()
> {
> - struct target_section_table * result;
> + target_section_table * result;
> fprintf_unfiltered (gdb_stdlog, "-> %s->get_section_table (...)\n", this->beneath ()->shortname ());
> result = this->beneath ()->get_section_table ();
> fprintf_unfiltered (gdb_stdlog, "<- %s->get_section_table (", this->beneath ()->shortname ());
> fputs_unfiltered (") = ", gdb_stdlog);
> - target_debug_print_struct_target_section_table_p (result);
> + target_debug_print_target_section_table_p (result);
> fputs_unfiltered ("\n", gdb_stdlog);
> return result;
> }
> diff --git a/gdb/target-section.h b/gdb/target-section.h
> index 8c81f3d79ba..fc4c800158d 100644
> --- a/gdb/target-section.h
> +++ b/gdb/target-section.h
> @@ -41,9 +41,6 @@ struct target_section
>
> /* Holds an array of target sections. */
>
> -struct target_section_table
> -{
> - std::vector<struct target_section> sections;
> -};
> +using target_section_table = std::vector<target_section>;
>
> #endif /* GDB_TARGET_SECTION_H */
> diff --git a/gdb/target.c b/gdb/target.c
> index f828d3d6cc3..e3b561649ed 100644
> --- a/gdb/target.c
> +++ b/gdb/target.c
> @@ -811,7 +811,7 @@ target_read_string (CORE_ADDR memaddr, int len, int *bytes_read)
> return gdb::unique_xmalloc_ptr<char> ((char *) buffer.release ());
> }
>
> -struct target_section_table *
> +target_section_table *
> target_get_section_table (struct target_ops *target)
> {
> return target->get_section_table ();
> @@ -822,12 +822,12 @@ target_get_section_table (struct target_ops *target)
> struct target_section *
> target_section_by_addr (struct target_ops *target, CORE_ADDR addr)
> {
> - struct target_section_table *table = target_get_section_table (target);
> + target_section_table *table = target_get_section_table (target);
>
> if (table == NULL)
> return NULL;
>
> - for (target_section &secp : table->sections)
> + for (target_section &secp : *table)
> {
> if (addr >= secp.addr && addr < secp.endaddr)
> return &secp;
> @@ -964,8 +964,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object,
>
> if (pc_in_unmapped_range (memaddr, section))
> {
> - struct target_section_table *table
> - = target_get_section_table (ops);
> + target_section_table *table = target_get_section_table (ops);
> const char *section_name = section->the_bfd_section->name;
>
> memaddr = overlay_mapped_address (memaddr, section);
> @@ -985,13 +984,12 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object,
> if (readbuf != NULL && trust_readonly)
> {
> struct target_section *secp;
> - struct target_section_table *table;
>
> secp = target_section_by_addr (ops, memaddr);
> if (secp != NULL
> && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
> {
> - table = target_get_section_table (ops);
> + target_section_table *table = target_get_section_table (ops);
> return section_table_xfer_memory_partial (readbuf, writebuf,
> memaddr, len, xfered_len,
> *table);
> diff --git a/gdb/target.h b/gdb/target.h
> index 369394aa929..5eca0e27ef3 100644
> --- a/gdb/target.h
> +++ b/gdb/target.h
> @@ -29,7 +29,6 @@ struct target_ops;
> struct bp_location;
> struct bp_target_info;
> struct regcache;
> -struct target_section_table;
> struct trace_state_variable;
> struct trace_status;
> struct uploaded_tsv;
> @@ -681,7 +680,7 @@ struct target_ops
> TARGET_DEFAULT_RETURN (NULL);
> virtual void log_command (const char *)
> TARGET_DEFAULT_IGNORE ();
> - virtual struct target_section_table *get_section_table ()
> + virtual target_section_table *get_section_table ()
> TARGET_DEFAULT_RETURN (NULL);
>
> /* Provide default values for all "must have" methods. */
> @@ -2421,7 +2420,7 @@ struct target_section *target_section_by_addr (struct target_ops *target,
> /* Return the target section table this target (or the targets
> beneath) currently manipulate. */
>
> -extern struct target_section_table *target_get_section_table
> +extern target_section_table *target_get_section_table
> (struct target_ops *target);
>
> /* From mem-break.c */
> --
> 2.17.2
>
next prev parent reply other threads:[~2020-10-04 8:46 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-03 19:37 [PATCH 0/6] Change target section table management Tom Tromey
2020-10-03 19:37 ` [PATCH 1/6] Introduce target-section.h Tom Tromey
2020-10-04 8:29 ` Andrew Burgess
2020-10-09 1:17 ` Tom Tromey
2020-10-03 19:37 ` [PATCH 2/6] Use a std::vector in target_section_table Tom Tromey
2020-10-13 16:41 ` Luis Machado
2020-10-13 20:35 ` Tom Tromey
2020-10-13 22:48 ` Luis Machado
2020-10-14 12:58 ` Tom Tromey
2020-10-14 13:01 ` Luis Machado
2020-10-14 13:18 ` Tom Tromey
2020-10-14 13:23 ` Luis Machado
2020-10-14 14:06 ` Simon Marchi
2020-10-14 9:09 ` Tom de Vries
2020-11-10 17:38 ` Simon Marchi
2020-10-03 19:37 ` [PATCH 3/6] build_section_table cannot fail Tom Tromey
2020-10-04 8:38 ` Andrew Burgess
2020-10-03 19:37 ` [PATCH 4/6] Simplify add_target_sections_of_objfile Tom Tromey
2020-10-04 8:40 ` Andrew Burgess
2020-10-03 19:37 ` [PATCH 5/6] Remove clear_section_table Tom Tromey
2020-10-04 8:44 ` Andrew Burgess
2020-10-03 19:37 ` [PATCH 6/6] Change target_section_table to std::vector alias Tom Tromey
2020-10-04 8:46 ` Andrew Burgess [this message]
2020-10-13 2:19 ` [PATCH 0/6] Change target section table management Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201004084604.GE605036@embecosm.com \
--to=andrew.burgess@embecosm.com \
--cc=gdb-patches@sourceware.org \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).