aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog18
-rw-r--r--gdb/bcache.h2
-rw-r--r--gdb/complaints.c5
-rw-r--r--gdb/elfread.c2
-rw-r--r--gdb/language.c5
-rw-r--r--gdb/os9kread.c2
-rw-r--r--gdb/stabsread.c3
-rw-r--r--gdb/symfile.c97
-rw-r--r--gdb/tracepoint.c12
9 files changed, 94 insertions, 52 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 257464f..6bc63d4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/bcache.h b/gdb/bcache.h
index 48b71e2..cf0c62e 100644
--- a/gdb/bcache.h
+++ b/gdb/bcache.h
@@ -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;
diff --git a/gdb/complaints.c b/gdb/complaints.c
index 9db8b4a..e38038d 100644
--- a/gdb/complaints.c
+++ b/gdb/complaints.c
@@ -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. */
diff --git a/gdb/elfread.c b/gdb/elfread.c
index d5f810e..95e905f 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -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);
diff --git a/gdb/language.c b/gdb/language.c
index 17ab815..2a4a1b3 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -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"
diff --git a/gdb/os9kread.c b/gdb/os9kread.c
index e143090..17eaf0b 100644
--- a/gdb/os9kread.c
+++ b/gdb/os9kread.c
@@ -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;
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index bfbcc01..ba1f6f4 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -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);
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 936ffc9..6f3d307 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -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 */)
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index e6bf60f..468324d 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -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));
}