]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Thu Apr 23 12:27:43 1998 Philippe De Muyter <phdm@macqel.be>
authorJason Molenda <jmolenda@apple.com>
Thu, 23 Apr 1998 19:31:51 +0000 (19:31 +0000)
committerJason Molenda <jmolenda@apple.com>
Thu, 23 Apr 1998 19:31:51 +0000 (19:31 +0000)
        * symfile.c (simple_overlay_update_1): Do not prefix array address
        by `&'.
        * bcache.h (BCACHE_DATA_ALIGNMENT): Ditto.
        * tracepoint.c (encode_actions): Ditto.
        * language.c, complaints.c, utils.c (varargs.h): Do not include that
        file here, it is already included indirectly by defs.h.
        * dbxread.c (dbx_symfile_init, process_one_symbol): Cast xmalloc return
        value to the appropriate pointer type.
        * utils.c (floatformat_from_doublest): Ditto.
        * tracepoint.c (read_actions, _initialize_tracepoint): Ditto.
        (add_memrange): Likewise with xrealloc return value.
        * stabsread.c (ref_add): Ditto.
        * coffread.c (coff_symfile_init): Likewise for xmmalloc return value.
        * elfread.c (elf_symfile_read): Ditto.
        * os9kread.c (os9k_symfile_init): Ditto.

gdb/ChangeLog
gdb/bcache.h
gdb/complaints.c
gdb/elfread.c
gdb/language.c
gdb/os9kread.c
gdb/stabsread.c
gdb/symfile.c
gdb/tracepoint.c

index 257464f6228f407e33e907e2cb7926dbcdbdc60f..6bc63d49a5c3e795e1174eb2411ff8825e8fe4c0 100644 (file)
@@ -1,3 +1,21 @@
+Thu Apr 23 12:27:43 1998  Philippe De Muyter  <phdm@macqel.be>
+
+        * symfile.c (simple_overlay_update_1): Do not prefix array address
+        by `&'.
+        * bcache.h (BCACHE_DATA_ALIGNMENT): Ditto.
+        * tracepoint.c (encode_actions): Ditto.
+        * language.c, complaints.c, utils.c (varargs.h): Do not include that
+        file here, it is already included indirectly by defs.h.
+        * dbxread.c (dbx_symfile_init, process_one_symbol): Cast xmalloc return
+        value to the appropriate pointer type.
+        * utils.c (floatformat_from_doublest): Ditto.
+        * tracepoint.c (read_actions, _initialize_tracepoint): Ditto.
+        (add_memrange): Likewise with xrealloc return value.
+        * stabsread.c (ref_add): Ditto.
+        * coffread.c (coff_symfile_init): Likewise for xmmalloc return value.
+        * elfread.c (elf_symfile_read): Ditto.
+        * os9kread.c (os9k_symfile_init): Ditto.
+
 Thu Apr 23 00:32:08 1998  Tom Tromey  <tromey@cygnus.com>
 
        * config.in: Rebuilt.
index 48b71e28cf0af9f1d752b8815be363a3337f2c7e..cf0c62eeda1a7ab24e5f29390e29298eea4e4104 100644 (file)
@@ -47,7 +47,7 @@ struct hashlink {
    a hashlink struct to hold the next pointer and the data. */
 
 #define BCACHE_DATA_ALIGNMENT \
-       (((char *) &BCACHE_DATA((struct hashlink*) 0) - (char *) 0))
+       (((char *) BCACHE_DATA((struct hashlink*) 0) - (char *) 0))
 
 struct bcache {
   struct obstack cache;
index 9db8b4a20bd92edc271222dabed8691b19e15d63..e38038d26fb338979e7f5855cb402d6c3c47fc96 100644 (file)
@@ -20,11 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "defs.h"
 #include "complaints.h"
 #include "gdbcmd.h"
-#ifdef ANSI_PROTOTYPES
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
 
 /* Structure to manage complaints about symbol file contents.  */
 
index d5f810eb9a1bfa306df136400a4ebb94ea4ae192..95e905fd05283e2315562b4654327e771502808b 100644 (file)
@@ -596,7 +596,7 @@ elf_symfile_read (objfile, section_offsets, mainline)
   memset ((char *) &ei, 0, sizeof (ei));
 
   /* Allocate struct to keep track of the symfile */
-  objfile->sym_stab_info = (PTR)
+  objfile->sym_stab_info = (struct dbx_symfile_info *)
     xmmalloc (objfile -> md, sizeof (struct dbx_symfile_info));
   memset ((char *) objfile->sym_stab_info, 0, sizeof (struct dbx_symfile_info));
   make_cleanup (free_elfinfo, (PTR) objfile);
index 17ab815fae015dbad47d9913e74890dd689599ff..2a4a1b3ee9785ed34b3bf58c39ff51fcfc186cb3 100644 (file)
@@ -30,11 +30,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "defs.h"
 #include <ctype.h>
 #include "gdb_string.h"
-#ifdef ANSI_PROTOTYPES
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
 
 #include "symtab.h"
 #include "gdbtypes.h"
index e143090e13ddde79a987e7eae476ed643734ed47..17eaf0b97f2fda58712649dfe631ccfd10db33c2 100644 (file)
@@ -400,7 +400,7 @@ os9k_symfile_init (objfile)
   objfile->auxf1 = minfile;
 
   /* Allocate struct to keep track of the symfile */
-  objfile->sym_stab_info = (PTR)
+  objfile->sym_stab_info = (struct dbx_symfile_info *)
     xmmalloc (objfile -> md, sizeof (struct dbx_symfile_info));
   DBX_SYMFILE_INFO (objfile)->stab_section_info = NULL;
 
index bfbcc016c382c8fcd794991ef67c1f47a57b0539..ba1f6f4806820ca283364df1882198307b8ace35 100644 (file)
@@ -1194,7 +1194,8 @@ ref_add (refnum, sym, stabs, value)
     {
       int new_slots = ref_count - ref_chunk * MAX_CHUNK_REFS; 
       int new_chunks = new_slots / MAX_CHUNK_REFS + 1;
-      ref_map = xrealloc (ref_map, REF_MAP_SIZE(ref_chunk + new_chunks));
+      ref_map = (struct ref_map_s *)
+       xrealloc (ref_map, REF_MAP_SIZE(ref_chunk + new_chunks));
       if (!ref_map) 
        error ("no more free slots in chain\n");
       memset (ref_map + REF_MAP_SIZE(ref_chunk), 0, new_chunks * REF_CHUNK_SIZE);
index 936ffc9dd51d04f939a4f60101964b5ffb468272..6f3d3077444784f11606c5658ac7415aca35c923 100644 (file)
@@ -53,6 +53,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #endif
 
 int (*ui_load_progress_hook) PARAMS ((char *, unsigned long));
+void (*pre_add_symbol_hook) PARAMS ((char *));
+void (*post_add_symbol_hook) PARAMS ((void));
 
 /* Global variables owned by this file */
 int readnow_symbol_files;              /* Read full symbols immediately */
@@ -656,9 +658,14 @@ symbol_file_add (name, from_tty, addr, mainline, mapped, readnow)
         performed, or need to read an unmapped symbol table. */
       if (from_tty || info_verbose)
        {
-         printf_filtered ("Reading symbols from %s...", name);
-         wrap_here ("");
-         gdb_flush (gdb_stdout);
+      if (pre_add_symbol_hook)
+        pre_add_symbol_hook (name);
+      else
+        {
+          printf_filtered ("Reading symbols from %s...", name);
+          wrap_here ("");
+          gdb_flush (gdb_stdout);
+        }
        }
       syms_from_objfile (objfile, addr, mainline, from_tty);
     }      
@@ -687,8 +694,13 @@ symbol_file_add (name, from_tty, addr, mainline, mapped, readnow)
 
   if (from_tty || info_verbose)
     {
-      printf_filtered ("done.\n");
-      gdb_flush (gdb_stdout);
+      if (post_add_symbol_hook)
+        post_add_symbol_hook ();
+      else
+        {
+          printf_filtered ("done.\n");
+          gdb_flush (gdb_stdout);
+        }
     }
 
   new_symfile_objfile (objfile, mainline, from_tty);
@@ -957,6 +969,8 @@ load_command (arg, from_tty)
    to worry about finding it, and (b) On VMS, fork() is very slow and so
    we don't want to run a subprocess.  On the other hand, I'm not sure how
    performance compares.  */
+#define GENERIC_LOAD_CHUNK 256
+#define VALIDATE_DOWNLOAD 0
 void
 generic_load (filename, from_tty)
     char *filename;
@@ -969,7 +983,10 @@ generic_load (filename, from_tty)
   unsigned long data_count = 0;        /* Number of bytes transferred to memory */
   int n; 
   unsigned long load_offset = 0;       /* offset to add to vma for each section */
-  char buf[128];
+  char buf[GENERIC_LOAD_CHUNK+8];
+#if VALIDATE_DOWNLOAD  
+  char verify_buffer[GENERIC_LOAD_CHUNK+8] ;
+#endif  
 
   /* enable user to specify address for downloading as 2nd arg to load */
   n = sscanf(filename, "%s 0x%lx", buf, &load_offset);
@@ -1009,14 +1026,13 @@ generic_load (filename, from_tty)
               char *buffer;
               struct cleanup *old_chain;
               bfd_vma lma;
-              unsigned long l = size / 100;
+              unsigned long l = size ;
               int err;
               char *sect;
               unsigned long sent;
               unsigned long len;
              
-             l = l > 100 ? l : 100;
-              data_count += size;
+             l = l > GENERIC_LOAD_CHUNK ? GENERIC_LOAD_CHUNK : l ;
 
               buffer = xmalloc (size);
               old_chain = make_cleanup (free, buffer);
@@ -1034,8 +1050,8 @@ generic_load (filename, from_tty)
 
               bfd_get_section_contents (loadfile_bfd, s, buffer, 0, size);
 
-              sect = bfd_get_section_name (loadfile_bfd, s);
-              sent = 0;          
+              sect = (char *) bfd_get_section_name (loadfile_bfd, s);
+              sent = 0;
               do
                 {            
                   len = (size - sent) < l ? (size - sent) : l;
@@ -1044,9 +1060,24 @@ generic_load (filename, from_tty)
                   if (ui_load_progress_hook)
                     if (ui_load_progress_hook (sect, sent))
                      error ("Canceled the download");
+#if VALIDATE_DOWNLOAD
+                 /* Broken memories and broken monitors manifest themselves
+                    here when bring new computers to life.
+                    This doubles already slow downloads.
+                 */
+                 if (err) break ;
+                 {
+                   target_read_memory(lma,verify_buffer,len) ;
+                   if (0 != bcmp(buffer,verify_buffer,len))
+                     error("Download verify failed at %08x",
+                           (unsigned long)lma) ;
+                 }
+
+#endif
+                 data_count += len ;
                   lma  += len;
                   buffer += len;
-                }
+                } /* od */
               while (err == 0 && sent < size);
 
               if (err != 0)
@@ -1059,12 +1090,14 @@ generic_load (filename, from_tty)
     }
 
   end_time = time (NULL);
-
-  printf_filtered ("Start address 0x%lx\n", loadfile_bfd->start_address);
-
-  /* We were doing this in remote-mips.c, I suspect it is right
-     for other targets too.  */
-  write_pc (loadfile_bfd->start_address);
+  {
+    unsigned long entry ;
+    entry = bfd_get_start_address(loadfile_bfd) ;
+    printf_filtered ("Start address 0x%lx , load size %d\n", entry,data_count);
+    /* We were doing this in remote-mips.c, I suspect it is right
+       for other targets too.  */
+    write_pc (entry);
+  }
 
   /* FIXME: are we supposed to call symbol_file_add or not?  According to
      a comment from remote-mips.c (where a call to symbol_file_add was
@@ -2401,7 +2434,7 @@ static CORE_ADDR cache_ovly_table_base = 0;
 static CORE_ADDR cache_ovly_region_table_base = 0;
 #endif
 enum   ovly_index { VMA, SIZE, LMA, MAPPED};
-#define TARGET_INT_BYTES (TARGET_INT_BIT / TARGET_CHAR_BIT)
+#define TARGET_LONG_BYTES (TARGET_LONG_BIT / TARGET_CHAR_BIT)
 
 /* Throw away the cached copy of _ovly_table */
 static void
@@ -2430,18 +2463,18 @@ simple_free_overlay_region_table ()
 /* Read an array of ints from the target into a local buffer.
    Convert to host order.  int LEN is number of ints  */
 static void
-read_target_int_array (memaddr, myaddr, len)
+read_target_long_array (memaddr, myaddr, len)
      CORE_ADDR     memaddr;
      unsigned int *myaddr;
      int           len;
 {
-  char *buf = alloca (len * TARGET_INT_BYTES);
+  char *buf = alloca (len * TARGET_LONG_BYTES);
   int           i;
 
-  read_memory (memaddr, buf, len * TARGET_INT_BYTES);
+  read_memory (memaddr, buf, len * TARGET_LONG_BYTES);
   for (i = 0; i < len; i++)
-    myaddr[i] = extract_unsigned_integer (TARGET_INT_BYTES * i + buf, 
-                                         TARGET_INT_BYTES);
+    myaddr[i] = extract_unsigned_integer (TARGET_LONG_BYTES * i + buf, 
+                                         TARGET_LONG_BYTES);
 }
 
 /* Find and grab a copy of the target _ovly_table
@@ -2464,9 +2497,9 @@ simple_read_overlay_table ()
       if (msym != NULL)
        {
          cache_ovly_table_base = SYMBOL_VALUE_ADDRESS (msym);
-         read_target_int_array (cache_ovly_table_base, 
-                                (int *) cache_ovly_table, 
-                                cache_novlys * 4);
+         read_target_long_array (cache_ovly_table_base, 
+                                 (int *) cache_ovly_table, 
+                                 cache_novlys * 4);
        }
       else 
        return 0;       /* failure */
@@ -2497,9 +2530,9 @@ simple_read_overlay_region_table ()
       if (msym != NULL)
        {
          cache_ovly_region_table_base = SYMBOL_VALUE_ADDRESS (msym);
-         read_target_int_array (cache_ovly_region_table_base, 
-                                (int *) cache_ovly_region_table, 
-                                cache_novly_regions * 3);
+         read_target_long_array (cache_ovly_region_table_base, 
+                                 (int *) cache_ovly_region_table, 
+                                 cache_novly_regions * 3);
        }
       else 
        return 0;       /* failure */
@@ -2530,8 +2563,8 @@ simple_overlay_update_1 (osect)
        cache_ovly_table[i][LMA]  == osect->the_bfd_section->lma /* &&
        cache_ovly_table[i][SIZE] == size */)
       {
-       read_target_int_array (cache_ovly_table_base + i * TARGET_INT_BYTES,
-                              (int *) &cache_ovly_table[i], 4);
+       read_target_long_array (cache_ovly_table_base + i * TARGET_LONG_BYTES,
+                               (int *) cache_ovly_table[i], 4);
        if (cache_ovly_table[i][VMA]  == osect->the_bfd_section->vma &&
            cache_ovly_table[i][LMA]  == osect->the_bfd_section->lma /* &&
            cache_ovly_table[i][SIZE] == size */)
index e6bf60f825f743cd9c72f58bc6662234c263a292..468324d5e58071cf28de9eba7fcdeb031f922a4f 100644 (file)
@@ -842,7 +842,7 @@ read_actions (t)
       if (linetype == BADLINE)
        continue;       /* already warned -- collect another line */
 
-      temp = xmalloc (sizeof (struct action_line));
+      temp = (struct action_line *) xmalloc (sizeof (struct action_line));
       temp->next = NULL;
       temp->action = line;
 
@@ -1169,7 +1169,7 @@ add_memrange (memranges, type, base, len)
   if (memranges->next_memrange >= memranges->listsize)
     {
       memranges->listsize *= 2;
-      memranges->list = xrealloc (memranges->list, 
+      memranges->list = (struct memrange *) xrealloc (memranges->list, 
                                  memranges->listsize);
     }
 
@@ -1502,8 +1502,8 @@ encode_actions (t, tdp_actions, step_count, stepping_actions)
   memrange_sortmerge (&tracepoint_list); 
   memrange_sortmerge (&stepping_list); 
 
-  *tdp_actions      = stringify_collection_list (&tracepoint_list, &tdp_buff);
-  *stepping_actions = stringify_collection_list (&stepping_list,   &step_buff);
+  *tdp_actions      = stringify_collection_list (&tracepoint_list, tdp_buff);
+  *stepping_actions = stringify_collection_list (&stepping_list,   step_buff);
 }
 
 static char target_buf[2048];
@@ -2435,13 +2435,13 @@ _initialize_tracepoint ()
   if (tracepoint_list.list == NULL)
     {
       tracepoint_list.listsize = 128;
-      tracepoint_list.list = xmalloc 
+      tracepoint_list.list = (struct memrange *) xmalloc 
        (tracepoint_list.listsize * sizeof (struct memrange));
     }
   if (stepping_list.list == NULL)
     {
       stepping_list.listsize = 128;
-      stepping_list.list = xmalloc 
+      stepping_list.list = (struct memrange *) xmalloc 
        (stepping_list.listsize * sizeof (struct memrange));
     }