Move the thread_section_name class to gdbcore.h.
This allows it to be used outside of corelow.c.
This commit is contained in:
parent
929edea98d
commit
6e5eab33ab
|
@ -1,3 +1,8 @@
|
||||||
|
2017-07-07 John Baldwin <jhb@FreeBSD.org>
|
||||||
|
|
||||||
|
* corelow.c (thread_section_name): Move to ...
|
||||||
|
* gdbcore.h (thread_section_name): ... here.
|
||||||
|
|
||||||
2017-07-07 John Baldwin <jhb@FreeBSD.org>
|
2017-07-07 John Baldwin <jhb@FreeBSD.org>
|
||||||
|
|
||||||
* fbsd-nat.c [PT_LWPINFO && __LP64__] (union sigval32)
|
* fbsd-nat.c [PT_LWPINFO && __LP64__] (union sigval32)
|
||||||
|
|
|
@ -485,51 +485,6 @@ core_detach (struct target_ops *ops, const char *args, int from_tty)
|
||||||
printf_filtered (_("No core file now.\n"));
|
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
|
/* Try to retrieve registers from a section in core_bfd, and supply
|
||||||
them to core_vec->core_read_registers, as the register set numbered
|
them to core_vec->core_read_registers, as the register set numbered
|
||||||
WHICH.
|
WHICH.
|
||||||
|
|
|
@ -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
|
/* NOTE: cagney/2004-04-05: Replaced by "regset.h" and
|
||||||
regset_from_core_section(). */
|
regset_from_core_section(). */
|
||||||
extern void deprecated_add_core_fns (struct core_fns *cf);
|
extern void deprecated_add_core_fns (struct core_fns *cf);
|
||||||
|
|
Loading…
Reference in New Issue