From 6e5eab33abe09041b29e0ce484f684ad0ffe80a5 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 28 Jun 2017 10:41:57 -0700 Subject: [PATCH] Move the thread_section_name class to gdbcore.h. This allows it to be used outside of corelow.c. --- gdb/ChangeLog | 5 +++++ gdb/corelow.c | 45 --------------------------------------------- gdb/gdbcore.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1809ebaf77..9c00622469 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-07-07 John Baldwin + + * corelow.c (thread_section_name): Move to ... + * gdbcore.h (thread_section_name): ... here. + 2017-07-07 John Baldwin * fbsd-nat.c [PT_LWPINFO && __LP64__] (union sigval32) diff --git a/gdb/corelow.c b/gdb/corelow.c index 0aff02d4db..578c910bb5 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -485,51 +485,6 @@ core_detach (struct target_ops *ops, const char *args, int from_tty) printf_filtered (_("No core file now.\n")); } -/* Build either a single-thread or multi-threaded section name for - PTID. - - If ptid's lwp member is zero, we want to do the single-threaded - thing: look for a section named NAME (as passed to the - constructor). If ptid's lwp member is non-zero, we'll want do the - multi-threaded thing: look for a section named "NAME/LWP", where - LWP is the shortest ASCII decimal representation of ptid's lwp - member. */ - -class thread_section_name -{ -public: - /* NAME is the single-threaded section name. If PTID represents an - LWP, then the build section name is "NAME/LWP", otherwise it's - just "NAME" unmodified. */ - thread_section_name (const char *name, ptid_t ptid) - { - if (ptid.lwp_p ()) - { - m_storage = string_printf ("%s/%ld", name, ptid.lwp ()); - m_section_name = m_storage.c_str (); - } - else - m_section_name = name; - } - - /* Return the computed section name. The result is valid as long as - this thread_section_name object is live. */ - const char *c_str () const - { return m_section_name; } - - /* Disable copy. */ - thread_section_name (const thread_section_name &) = delete; - void operator= (const thread_section_name &) = delete; - -private: - /* Either a pointer into M_STORAGE, or a pointer to the name passed - as parameter to the constructor. */ - const char *m_section_name; - /* If we need to build a new section name, this is where we store - it. */ - std::string m_storage; -}; - /* Try to retrieve registers from a section in core_bfd, and supply them to core_vec->core_read_registers, as the register set numbered WHICH. diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h index e3eed0395d..87f3dcd64d 100644 --- a/gdb/gdbcore.h +++ b/gdb/gdbcore.h @@ -226,6 +226,51 @@ struct core_fns }; +/* Build either a single-thread or multi-threaded section name for + PTID. + + If ptid's lwp member is zero, we want to do the single-threaded + thing: look for a section named NAME (as passed to the + constructor). If ptid's lwp member is non-zero, we'll want do the + multi-threaded thing: look for a section named "NAME/LWP", where + LWP is the shortest ASCII decimal representation of ptid's lwp + member. */ + +class thread_section_name +{ +public: + /* NAME is the single-threaded section name. If PTID represents an + LWP, then the build section name is "NAME/LWP", otherwise it's + just "NAME" unmodified. */ + thread_section_name (const char *name, ptid_t ptid) + { + if (ptid.lwp_p ()) + { + m_storage = string_printf ("%s/%ld", name, ptid.lwp ()); + m_section_name = m_storage.c_str (); + } + else + m_section_name = name; + } + + /* Return the computed section name. The result is valid as long as + this thread_section_name object is live. */ + const char *c_str () const + { return m_section_name; } + + /* Disable copy. */ + thread_section_name (const thread_section_name &) = delete; + void operator= (const thread_section_name &) = delete; + +private: + /* Either a pointer into M_STORAGE, or a pointer to the name passed + as parameter to the constructor. */ + const char *m_section_name; + /* If we need to build a new section name, this is where we store + it. */ + std::string m_storage; +}; + /* NOTE: cagney/2004-04-05: Replaced by "regset.h" and regset_from_core_section(). */ extern void deprecated_add_core_fns (struct core_fns *cf);