2012-01-27 Pedro Alves <palves@redhat.com>
* linux-low.c (linux_child_pid_to_exec_file): Delete. (elf_64_file_p): Make static. (linux_pid_exe_is_elf_64_file): New. * linux-low.h (linux_child_pid_to_exec_file, elf_64_file_p): Delete declarations. (linux_pid_exe_is_elf_64_file): Declare. * linux-x86-low.c (x86_arch_setup): Use linux_pid_exe_is_elf_64_file.
This commit is contained in:
parent
8c85a4e2f7
commit
be07f1a20c
|
@ -1,3 +1,14 @@
|
|||
2012-01-27 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* linux-low.c (linux_child_pid_to_exec_file): Delete.
|
||||
(elf_64_file_p): Make static.
|
||||
(linux_pid_exe_is_elf_64_file): New.
|
||||
* linux-low.h (linux_child_pid_to_exec_file, elf_64_file_p):
|
||||
Delete declarations.
|
||||
(linux_pid_exe_is_elf_64_file): Declare.
|
||||
* linux-x86-low.c (x86_arch_setup): Use
|
||||
linux_pid_exe_is_elf_64_file.
|
||||
|
||||
2012-01-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* linux-low.c (linux_wait_for_event_1): Rename to ...
|
||||
|
|
|
@ -186,32 +186,6 @@ static int linux_event_pipe[2] = { -1, -1 };
|
|||
static void send_sigstop (struct lwp_info *lwp);
|
||||
static void wait_for_sigstop (struct inferior_list_entry *entry);
|
||||
|
||||
/* Accepts an integer PID; Returns a string representing a file that
|
||||
can be opened to get info for the child process.
|
||||
Space for the result is malloc'd, caller must free. */
|
||||
|
||||
char *
|
||||
linux_child_pid_to_exec_file (int pid)
|
||||
{
|
||||
char *name1, *name2;
|
||||
|
||||
name1 = xmalloc (MAXPATHLEN);
|
||||
name2 = xmalloc (MAXPATHLEN);
|
||||
memset (name2, 0, MAXPATHLEN);
|
||||
|
||||
sprintf (name1, "/proc/%d/exe", pid);
|
||||
if (readlink (name1, name2, MAXPATHLEN) > 0)
|
||||
{
|
||||
free (name1);
|
||||
return name2;
|
||||
}
|
||||
else
|
||||
{
|
||||
free (name2);
|
||||
return name1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Return non-zero if HEADER is a 64-bit ELF file. */
|
||||
|
||||
static int
|
||||
|
@ -228,7 +202,7 @@ elf_64_header_p (const Elf64_Ehdr *header)
|
|||
zero if the file is not a 64-bit ELF file,
|
||||
and -1 if the file is not accessible or doesn't exist. */
|
||||
|
||||
int
|
||||
static int
|
||||
elf_64_file_p (const char *file)
|
||||
{
|
||||
Elf64_Ehdr header;
|
||||
|
@ -248,6 +222,18 @@ elf_64_file_p (const char *file)
|
|||
return elf_64_header_p (&header);
|
||||
}
|
||||
|
||||
/* Accepts an integer PID; Returns true if the executable PID is
|
||||
running is a 64-bit ELF file.. */
|
||||
|
||||
int
|
||||
linux_pid_exe_is_elf_64_file (int pid)
|
||||
{
|
||||
char file[MAXPATHLEN];
|
||||
|
||||
sprintf (file, "/proc/%d/exe", pid);
|
||||
return elf_64_file_p (file);
|
||||
}
|
||||
|
||||
static void
|
||||
delete_lwp (struct lwp_info *lwp)
|
||||
{
|
||||
|
|
|
@ -265,8 +265,7 @@ struct lwp_info
|
|||
|
||||
extern struct inferior_list all_lwps;
|
||||
|
||||
char *linux_child_pid_to_exec_file (int pid);
|
||||
int elf_64_file_p (const char *file);
|
||||
int linux_pid_exe_is_elf_64_file (int pid);
|
||||
|
||||
void linux_attach_lwp (unsigned long pid);
|
||||
struct lwp_info *find_lwp_pid (ptid_t ptid);
|
||||
|
|
|
@ -1106,10 +1106,7 @@ x86_arch_setup (void)
|
|||
{
|
||||
#ifdef __x86_64__
|
||||
int pid = pid_of (get_thread_lwp (current_inferior));
|
||||
char *file = linux_child_pid_to_exec_file (pid);
|
||||
int use_64bit = elf_64_file_p (file);
|
||||
|
||||
free (file);
|
||||
int use_64bit = linux_pid_exe_is_elf_64_file (pid);
|
||||
|
||||
if (use_64bit < 0)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue