Move linux-nat.c:status_to_str to nat/linux-waitpid.c.

So that gdbserver's Linux backend can use it too.

gdb/
2014-02-27  Pedro Alves  <palves@redhat.com>

	PR 12702
	* linux-nat.c (status_to_str): Moved to nat/linux-waitpid.c.
	* nat/linux-waitpid.c: Include string.h.
	(status_to_str): Moved here and made extern.
	* nat/linux-waitpid.h (status_to_str): New declaration.
This commit is contained in:
Pedro Alves 2014-02-27 14:30:08 +00:00
parent 2ebd5a3520
commit d632a0971c
4 changed files with 40 additions and 25 deletions

View File

@ -1,3 +1,11 @@
2014-02-27 Pedro Alves <palves@redhat.com>
PR 12702
* linux-nat.c (status_to_str): Moved to nat/linux-waitpid.c.
* nat/linux-waitpid.c: Include string.h.
(status_to_str): Moved here and made extern.
* nat/linux-waitpid.h (status_to_str): New declaration.
2014-02-27 Hui Zhu <hui@codesourcery.com>
PR 12702

View File

@ -848,31 +848,6 @@ static int linux_thread_alive (ptid_t ptid);
static char *linux_child_pid_to_exec_file (struct target_ops *self, int pid);
/* Convert wait status STATUS to a string. Used for printing debug
messages only. */
static char *
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));
else
snprintf (buf, sizeof (buf), "%s (stopped)",
strsignal (WSTOPSIG (status)));
}
else if (WIFSIGNALED (status))
snprintf (buf, sizeof (buf), "%s (terminated)",
strsignal (WTERMSIG (status)));
else
snprintf (buf, sizeof (buf), "%d (exited)", WEXITSTATUS (status));
return buf;
}
/* Destroy and free LP. */

View File

@ -28,6 +28,8 @@
#include "nat/linux-waitpid.h"
#include "gdb_wait.h"
#include <string.h>
/* Print debugging output based on the format string FORMAT and
its parameters. */
@ -47,6 +49,32 @@ linux_debug (const char *format, ...)
#endif
}
/* Convert wait status STATUS to a string. Used for printing debug
messages only. */
char *
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));
else
snprintf (buf, sizeof (buf), "%s (stopped)",
strsignal (WSTOPSIG (status)));
}
else if (WIFSIGNALED (status))
snprintf (buf, sizeof (buf), "%s (terminated)",
strsignal (WTERMSIG (status)));
else
snprintf (buf, sizeof (buf), "%d (exited)", WEXITSTATUS (status));
return buf;
}
/* Wrapper function for waitpid which handles EINTR, and emulates
__WALL for systems where that is not available. */

View File

@ -24,4 +24,8 @@
__WALL for systems where that is not available. */
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);
#endif /* LINUX_WAITPID_H */