gdb, gdbserver: make status_to_str return std::string

Instead of using a static buffer.  This is safer, and we don't really
mind about any extra dynamic allocation here, since it's only used for
debug purposes.

gdb/ChangeLog:

	* nat/linux-waitpid.c (status_to_str): Return std::string.
	* nat/linux-waitpid.h (status_to_str): Likewise.
	* linux-nat.c (linux_nat_post_attach_wait): Adjust.
	(linux_nat_target::attach): Adjust.
	(linux_handle_extended_wait): Adjust.
	(wait_lwp): Adjust.
	(stop_wait_callback): Adjust.
	(linux_nat_filter_event): Adjust.
	(linux_nat_wait_1): Adjust.
	* nat/linux-waitpid.c (status_to_str): Adjust.
	* nat/linux-waitpid.h (status_to_str): Adjust.

gdbserver/ChangeLog:

	* linux-low.cc (linux_process_target::wait_for_event_filtered):
	Adjust to status_to_str returning std::string.

Change-Id: Ia8aead70270438a5690f243e6faafff6c38ff757
This commit is contained in:
Simon Marchi
2021-05-08 21:06:41 -04:00
parent 550e9289ab
commit 8d06918ff5
6 changed files with 41 additions and 25 deletions

View File

@@ -1061,7 +1061,7 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled)
{
/* The pid we tried to attach has apparently just exited. */
linux_nat_debug_printf ("Failed to stop %d: %s", pid,
status_to_str (status));
status_to_str (status).c_str ());
return status;
}
@@ -1069,7 +1069,7 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled)
{
*signalled = 1;
linux_nat_debug_printf ("Received %s after attaching",
status_to_str (status));
status_to_str (status).c_str ());
}
return status;
@@ -1239,7 +1239,8 @@ linux_nat_target::attach (const char *args, int from_tty)
/* Save the wait status to report later. */
lp->resumed = 1;
linux_nat_debug_printf ("waitpid %ld, saving status %s",
(long) lp->ptid.pid (), status_to_str (status));
(long) lp->ptid.pid (),
status_to_str (status).c_str ());
lp->status = status;
@@ -2005,7 +2006,7 @@ linux_handle_extended_wait (struct lwp_info *lp, int status)
/* Save the wait status to report later. */
linux_nat_debug_printf
("waitpid of new LWP %ld, saving status %s",
(long) new_lp->ptid.lwp (), status_to_str (status));
(long) new_lp->ptid.lwp (), status_to_str (status).c_str ());
new_lp->status = status;
}
else if (report_thread_events)
@@ -2153,7 +2154,7 @@ wait_lwp (struct lwp_info *lp)
linux_nat_debug_printf ("waitpid %s received %s",
target_pid_to_str (lp->ptid).c_str (),
status_to_str (status));
status_to_str (status).c_str ());
/* Check if the thread has exited. */
if (WIFEXITED (status) || WIFSIGNALED (status))
@@ -2440,7 +2441,7 @@ stop_wait_callback (struct lwp_info *lp)
/* The thread was stopped with a signal other than SIGSTOP. */
linux_nat_debug_printf ("Pending event %s in %s",
status_to_str ((int) status),
status_to_str ((int) status).c_str (),
target_pid_to_str (lp->ptid).c_str ());
/* Save the sigtrap event. */
@@ -2859,7 +2860,7 @@ linux_nat_filter_event (int lwpid, int status)
if (WIFSTOPPED (status) && !lp)
{
linux_nat_debug_printf ("saving LWP %ld status %s in stopped_pids list",
(long) lwpid, status_to_str (status));
(long) lwpid, status_to_str (status).c_str ());
add_to_pid_list (&stopped_pids, lwpid, status);
return;
}
@@ -3152,7 +3153,7 @@ linux_nat_wait_1 (ptid_t ptid, struct target_waitstatus *ourstatus,
if (lp != NULL)
{
linux_nat_debug_printf ("Using pending wait status %s for %s.",
status_to_str (lp->status),
status_to_str (lp->status).c_str (),
target_pid_to_str (lp->ptid).c_str ());
}
@@ -3187,7 +3188,8 @@ linux_nat_wait_1 (ptid_t ptid, struct target_waitstatus *ourstatus,
if (lwpid > 0)
{
linux_nat_debug_printf ("waitpid %ld received %s",
(long) lwpid, status_to_str (status));
(long) lwpid,
status_to_str (status).c_str ());
linux_nat_filter_event (lwpid, status);
/* Retry until nothing comes out of waitpid. A single