2012-01-27 Pedro Alves <palves@redhat.com>
authorPedro Alves <palves@redhat.com>
Fri, 27 Jan 2012 19:23:43 +0000 (19:23 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 27 Jan 2012 19:23:43 +0000 (19:23 +0000)
* 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.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c
gdb/gdbserver/linux-low.h
gdb/gdbserver/linux-x86-low.c

index 83af7f8b8a45ed361be6d7033a5bc83097d062cb..0aa5a834f1015594576936cf79ba310a992b627b 100644 (file)
@@ -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 ...
index 45aeb731c75434bae1443de4aa0dbd19880f9a76..0a8b3de83c42adb63c48f1bcb2b44ff9c2bca37a 100644 (file)
@@ -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)
 {
index 2befc48ada632245915c5a4859e950314c3fad53..3ba004c1ea9aa0f5deeb99e78ba4dd025ee97df6 100644 (file)
@@ -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);
index 5e4f87ab151271031421f543faa1a2e5e938015c..365cd52d90af8850fdea7d7cb5111fa882432ca8 100644 (file)
@@ -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)
     {