varobj/Ada: Missing children for interface-wide tagged types
[deliverable/binutils-gdb.git] / gdb / auxv.c
index 934441b8969fc6b57626ecc9f1ad04fc036206f8..b08f1d5e4663669802f6bcff7aeedec7da0f90bd 100644 (file)
@@ -1,7 +1,6 @@
 /* Auxiliary vector support for GDB, the GNU debugger.
 
-   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 2004-2014 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,6 +26,7 @@
 #include "gdb_assert.h"
 #include "gdbcore.h"
 #include "observer.h"
+#include "filestuff.h"
 
 #include "auxv.h"
 #include "elf/common.h"
@@ -48,8 +48,8 @@ procfs_xfer_auxv (gdb_byte *readbuf,
   int fd;
   LONGEST n;
 
-  pathname = xstrprintf ("/proc/%d/auxv", PIDGET (inferior_ptid));
-  fd = open (pathname, writebuf != NULL ? O_WRONLY : O_RDONLY);
+  pathname = xstrprintf ("/proc/%d/auxv", ptid_get_pid (inferior_ptid));
+  fd = gdb_open_cloexec (pathname, writebuf != NULL ? O_WRONLY : O_RDONLY, 0);
   xfree (pathname);
   if (fd < 0)
     return -1;
@@ -77,7 +77,7 @@ ld_so_xfer_auxv (gdb_byte *readbuf,
 {
   struct minimal_symbol *msym;
   CORE_ADDR data_address, pointer_address;
-  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
+  struct type *ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
   size_t ptr_size = TYPE_LENGTH (ptr_type);
   size_t auxv_pair_size = 2 * ptr_size;
   gdb_byte *ptr_buf = alloca (ptr_size);
@@ -241,9 +241,9 @@ static int
 default_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
                   gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp)
 {
-  const int sizeof_auxv_field = gdbarch_ptr_bit (target_gdbarch)
+  const int sizeof_auxv_field = gdbarch_ptr_bit (target_gdbarch ())
                                / TARGET_CHAR_BIT;
-  const enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+  const enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   gdb_byte *ptr = *readptr;
 
   if (endptr == ptr)
@@ -446,6 +446,10 @@ fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
          TAG (AT_SECURE, _("Boolean, was exec setuid-like?"), dec);
          TAG (AT_SYSINFO, _("Special system info/entry points"), hex);
          TAG (AT_SYSINFO_EHDR, _("System-supplied DSO's ELF header"), hex);
+         TAG (AT_L1I_CACHESHAPE, _("L1 Instruction cache information"), hex);
+         TAG (AT_L1D_CACHESHAPE, _("L1 Data cache information"), hex);
+         TAG (AT_L2_CACHESHAPE, _("L2 cache information"), hex);
+         TAG (AT_L3_CACHESHAPE, _("L3 cache information"), hex);
          TAG (AT_SUN_UID, _("Effective user ID"), dec);
          TAG (AT_SUN_RUID, _("Real user ID"), dec);
          TAG (AT_SUN_GID, _("Effective group ID"), dec);
@@ -476,7 +480,7 @@ fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
          fprintf_filtered (file, "%s\n", plongest (val));
          break;
        case hex:
-         fprintf_filtered (file, "%s\n", paddress (target_gdbarch, val));
+         fprintf_filtered (file, "%s\n", paddress (target_gdbarch (), val));
          break;
        case str:
          {
@@ -484,8 +488,8 @@ fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
 
            get_user_print_options (&opts);
            if (opts.addressprint)
-             fprintf_filtered (file, "%s", paddress (target_gdbarch, val));
-           val_print_string (builtin_type (target_gdbarch)->builtin_char,
+             fprintf_filtered (file, "%s ", paddress (target_gdbarch (), val));
+           val_print_string (builtin_type (target_gdbarch ())->builtin_char,
                              NULL, val, -1, file, &opts);
            fprintf_filtered (file, "\n");
          }
@@ -527,7 +531,7 @@ This is information provided by the operating system at program startup."));
 
   /* Set an auxv cache per-inferior.  */
   auxv_inferior_data
-    = register_inferior_data_with_cleanup (auxv_inferior_data_cleanup);
+    = register_inferior_data_with_cleanup (NULL, auxv_inferior_data_cleanup);
 
   /* Observers used to invalidate the auxv cache when needed.  */
   observer_attach_inferior_exit (invalidate_auxv_cache_inf);
This page took 0.026815 seconds and 4 git commands to generate.