diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2021-05-08 21:06:41 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-05-08 21:07:20 -0400 |
commit | 8d06918ff58452cb17d1bdfbde7187f45933f42e (patch) | |
tree | b265047ba289878cb96ae446b8451a87b16a1c1f /gdb/nat | |
parent | 550e9289ab4f7ec1092a9c0ee202bbe0ba7fb9f5 (diff) | |
download | gdb-8d06918ff58452cb17d1bdfbde7187f45933f42e.zip gdb-8d06918ff58452cb17d1bdfbde7187f45933f42e.tar.gz gdb-8d06918ff58452cb17d1bdfbde7187f45933f42e.tar.bz2 |
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
Diffstat (limited to 'gdb/nat')
-rw-r--r-- | gdb/nat/linux-waitpid.c | 23 | ||||
-rw-r--r-- | gdb/nat/linux-waitpid.h | 2 |
2 files changed, 10 insertions, 15 deletions
diff --git a/gdb/nat/linux-waitpid.c b/gdb/nat/linux-waitpid.c index 2d4c8eb..f205df7 100644 --- a/gdb/nat/linux-waitpid.c +++ b/gdb/nat/linux-waitpid.c @@ -24,30 +24,25 @@ #include "gdbsupport/gdb_wait.h" #include "gdbsupport/eintr.h" -/* Convert wait status STATUS to a string. Used for printing debug - messages only. */ +/* See linux-waitpid.h. */ -char * +std::string status_to_str (int status) { - static char buf[64]; - if (WIFSTOPPED (status)) { if (WSTOPSIG (status) == SYSCALL_SIGTRAP) - snprintf (buf, sizeof (buf), "%s (stopped at syscall)", - strsignal (SIGTRAP)); + return string_printf ("%s (stopped at syscall)", + strsignal (SIGTRAP)); else - snprintf (buf, sizeof (buf), "%s (stopped)", - strsignal (WSTOPSIG (status))); + return string_printf ("%s (stopped)", + strsignal (WSTOPSIG (status))); } else if (WIFSIGNALED (status)) - snprintf (buf, sizeof (buf), "%s (terminated)", - strsignal (WTERMSIG (status))); + return string_printf ("%s (terminated)", + strsignal (WTERMSIG (status))); else - snprintf (buf, sizeof (buf), "%d (exited)", WEXITSTATUS (status)); - - return buf; + return string_printf ("%d (exited)", WEXITSTATUS (status)); } /* See linux-waitpid.h. */ diff --git a/gdb/nat/linux-waitpid.h b/gdb/nat/linux-waitpid.h index 7805645..fe2383f 100644 --- a/gdb/nat/linux-waitpid.h +++ b/gdb/nat/linux-waitpid.h @@ -25,6 +25,6 @@ extern int my_waitpid (int pid, int *status, int flags); /* Convert wait status STATUS to a string. Used for printing debug messages only. */ -extern char *status_to_str (int status); +extern std::string status_to_str (int status); #endif /* NAT_LINUX_WAITPID_H */ |