Fri Apr 15 11:53:46 1994 Stan Shebs (shebs@andros.cygnus.com)
* source.c (DIRNAME_SEPARATOR): New macro, replaces all references to : in search path processing. * defs.h (qsort): Rename argument in prototype. * symtab.h (SAYMBOL_VALUE): Rename value field, avoids bugs in some compilers. * breakpoint.c, exec.c, mdebugread.c, mipsread.c, xcoffexec.c (false): Eliminate usages.
This commit is contained in:
parent
97ea252ef8
commit
fad466eb6d
|
@ -1,3 +1,13 @@
|
|||
Fri Apr 15 11:53:46 1994 Stan Shebs (shebs@andros.cygnus.com)
|
||||
|
||||
* source.c (DIRNAME_SEPARATOR): New macro, replaces all references
|
||||
to : in search path processing.
|
||||
* defs.h (qsort): Rename argument in prototype.
|
||||
* symtab.h (SAYMBOL_VALUE): Rename value field, avoids bugs in
|
||||
some compilers.
|
||||
* breakpoint.c, exec.c, mdebugread.c, mipsread.c, xcoffexec.c
|
||||
(false): Eliminate usages.
|
||||
|
||||
Fri Apr 15 11:35:19 1994 Steve Chamberlain (sac@cygnus.com)
|
||||
|
||||
* h8500-tdep.c (initialize_h8500_tdep, large_command):
|
||||
|
|
|
@ -2293,7 +2293,7 @@ can_use_hardware_watchpoint (b)
|
|||
if (!(v->lval == lval_memory)
|
||||
|| v->lval == not_lval
|
||||
|| (v->lval != not_lval
|
||||
&& v->modifiable == false))
|
||||
&& v->modifiable == 0))
|
||||
return 0;
|
||||
else
|
||||
if (v->lval == lval_memory)
|
||||
|
|
26
gdb/defs.h
26
gdb/defs.h
|
@ -520,24 +520,24 @@ enum val_prettyprint
|
|||
|
||||
#else /* No BFD64 */
|
||||
|
||||
/* Default to support for "long long" if the host compiler being used is gcc.
|
||||
Config files must define CC_HAS_LONG_LONG to use other host compilers
|
||||
that are capable of supporting "long long", and to cause gdb to use that
|
||||
support. Not defining CC_HAS_LONG_LONG will suppress use of "long long"
|
||||
regardless of what compiler is used.
|
||||
/* If all compilers for this host support "long long" and we want to
|
||||
use it for LONGEST (the performance hit is about 10% on a testsuite
|
||||
run based on one DECstation test), then the xm.h file can define
|
||||
CC_HAS_LONG_LONG.
|
||||
|
||||
FIXME: For now, automatic selection of "long long" as the default when
|
||||
gcc is used is disabled, pending further testing. Concerns include the
|
||||
impact on gdb performance and the universality of bugfree long long
|
||||
support on platforms that do have gcc. Compiling with FORCE_LONG_LONG
|
||||
will select "long long" use for testing purposes. -fnf */
|
||||
Using GCC 1.39 on BSDI with long long causes about 700 new
|
||||
testsuite failures. Using long long for LONGEST on the DECstation
|
||||
causes 3 new FAILs in the testsuite and many heuristic fencepost
|
||||
warnings. These are not investigated, but a first guess would be
|
||||
that the BSDI problems are GCC bugs in long long support and the
|
||||
latter are GDB bugs. */
|
||||
|
||||
#ifndef CC_HAS_LONG_LONG
|
||||
# if defined (__GNUC__) /*&& defined (FORCE_LONG_LONG)*/ /* See FIXME above */
|
||||
# if defined (__GNUC__) && defined (FORCE_LONG_LONG)
|
||||
# define CC_HAS_LONG_LONG 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/* LONGEST should not be a typedef, because "unsigned LONGEST" needs to work.
|
||||
CC_HAS_LONG_LONG is defined if the host compiler supports "long long"
|
||||
variables and we wish to make use of that support. */
|
||||
|
@ -739,7 +739,7 @@ free PARAMS ((void *)); /* 4.10.3.2 */
|
|||
extern void
|
||||
qsort PARAMS ((void *base, size_t nmemb, /* 4.10.5.2 */
|
||||
size_t size,
|
||||
int (*comp)(const void *, const void *)));
|
||||
int (*compar)(const void *, const void *)));
|
||||
|
||||
#ifndef MEM_FNS_DECLARED /* Some non-ANSI use void *, not char *. */
|
||||
extern PTR
|
||||
|
|
|
@ -3767,8 +3767,8 @@ elfmdebug_build_psymtabs (objfile, swap, sec, section_offsets)
|
|||
struct ecoff_debug_info *info;
|
||||
|
||||
buf = alloca (swap->external_hdr_size);
|
||||
if (bfd_get_section_contents (abfd, sec, buf, (file_ptr) 0,
|
||||
swap->external_hdr_size) == false)
|
||||
if (!bfd_get_section_contents (abfd, sec, buf, (file_ptr) 0,
|
||||
swap->external_hdr_size))
|
||||
perror_with_name (bfd_get_filename (abfd));
|
||||
|
||||
info = ((struct ecoff_debug_info *)
|
||||
|
|
62
gdb/source.c
62
gdb/source.c
|
@ -25,10 +25,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "gdbcmd.h"
|
||||
#include "frame.h"
|
||||
|
||||
#ifdef USG
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -38,6 +35,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "symfile.h"
|
||||
#include "objfiles.h"
|
||||
|
||||
#ifndef DIRNAME_SEPARATOR
|
||||
#define DIRNAME_SEPARATOR ':'
|
||||
#endif
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
|
||||
static int
|
||||
|
@ -237,7 +238,10 @@ forget_cached_source_info ()
|
|||
void
|
||||
init_source_path ()
|
||||
{
|
||||
source_path = savestring ("$cdir:$cwd", /* strlen of it */ 10);
|
||||
char buf[20];
|
||||
|
||||
sprintf (buf, "$cdir%c$cwd", DIRNAME_SEPARATOR);
|
||||
source_path = strsave (buf);
|
||||
forget_cached_source_info ();
|
||||
}
|
||||
|
||||
|
@ -288,7 +292,7 @@ mod_path (dirname, which_path)
|
|||
struct stat st;
|
||||
|
||||
{
|
||||
char *colon = strchr (name, ':');
|
||||
char *colon = strchr (name, DIRNAME_SEPARATOR);
|
||||
char *space = strchr (name, ' ');
|
||||
char *tab = strchr (name, '\t');
|
||||
if (colon == 0 && space == 0 && tab == 0)
|
||||
|
@ -303,7 +307,7 @@ mod_path (dirname, which_path)
|
|||
if (tab != 0 && (p == 0 || tab < p))
|
||||
p = tab;
|
||||
dirname = p + 1;
|
||||
while (*dirname == ':' || *dirname == ' ' || *dirname == '\t')
|
||||
while (*dirname == DIRNAME_SEPARATOR || *dirname == ' ' || *dirname == '\t')
|
||||
++dirname;
|
||||
}
|
||||
}
|
||||
|
@ -378,7 +382,7 @@ mod_path (dirname, which_path)
|
|||
while (1)
|
||||
{
|
||||
if (!strncmp (p, name, len)
|
||||
&& (p[len] == '\0' || p[len] == ':'))
|
||||
&& (p[len] == '\0' || p[len] == DIRNAME_SEPARATOR))
|
||||
{
|
||||
/* Found it in the search path, remove old copy */
|
||||
if (p > *which_path)
|
||||
|
@ -387,7 +391,7 @@ mod_path (dirname, which_path)
|
|||
goto skip_dup; /* Same dir twice in one cmd */
|
||||
strcpy (p, &p[len+1]); /* Copy from next \0 or : */
|
||||
}
|
||||
p = strchr (p, ':');
|
||||
p = strchr (p, DIRNAME_SEPARATOR);
|
||||
if (p != 0)
|
||||
++p;
|
||||
else
|
||||
|
@ -395,6 +399,11 @@ mod_path (dirname, which_path)
|
|||
}
|
||||
if (p == 0)
|
||||
{
|
||||
char tinybuf[2];
|
||||
|
||||
tinybuf[0] = DIRNAME_SEPARATOR;
|
||||
tinybuf[1] = '\0';
|
||||
|
||||
/* If we have already tacked on a name(s) in this command, be sure they stay on the front as we tack on some more. */
|
||||
if (prefix)
|
||||
{
|
||||
|
@ -402,7 +411,7 @@ mod_path (dirname, which_path)
|
|||
|
||||
c = old[prefix];
|
||||
old[prefix] = '\0';
|
||||
temp = concat (old, ":", name, NULL);
|
||||
temp = concat (old, tinybuf, name, NULL);
|
||||
old[prefix] = c;
|
||||
*which_path = concat (temp, "", &old[prefix], NULL);
|
||||
prefix = strlen (temp);
|
||||
|
@ -410,7 +419,7 @@ mod_path (dirname, which_path)
|
|||
}
|
||||
else
|
||||
{
|
||||
*which_path = concat (name, (old[0]? ":" : old), old, NULL);
|
||||
*which_path = concat (name, (old[0] ? tinybuf : old), old, NULL);
|
||||
prefix = strlen (name);
|
||||
}
|
||||
free (old);
|
||||
|
@ -448,7 +457,7 @@ source_info (ignore, from_tty)
|
|||
|
||||
|
||||
|
||||
/* Open a file named STRING, searching path PATH (dir names sep by colons)
|
||||
/* Open a file named STRING, searching path PATH (dir names sep by some char)
|
||||
using mode MODE and protection bits PROT in the calls to open.
|
||||
|
||||
If TRY_CWD_FIRST, try to open ./STRING before searching PATH.
|
||||
|
@ -503,7 +512,7 @@ openp (path, try_cwd_first, string, mode, prot, filename_opened)
|
|||
fd = -1;
|
||||
for (p = path; p; p = p1 ? p1 + 1 : 0)
|
||||
{
|
||||
p1 = (char *) strchr (p, ':');
|
||||
p1 = (char *) strchr (p, DIRNAME_SEPARATOR);
|
||||
if (p1)
|
||||
len = p1 - p;
|
||||
else
|
||||
|
@ -535,7 +544,7 @@ openp (path, try_cwd_first, string, mode, prot, filename_opened)
|
|||
strcat (filename+len, "/");
|
||||
strcat (filename, string);
|
||||
|
||||
fd = open (filename, mode, prot);
|
||||
fd = open (filename, mode);
|
||||
if (fd >= 0) break;
|
||||
}
|
||||
|
||||
|
@ -587,8 +596,8 @@ open_source_file (s)
|
|||
/* We cast strstr's result in case an ANSIhole has made it const,
|
||||
which produces a "required warning" when assigned to a nonconst. */
|
||||
p = (char *)strstr (source_path, "$cdir");
|
||||
if (p && (p == path || p[-1] == ':')
|
||||
&& (p[cdir_len] == ':' || p[cdir_len] == '\0')) {
|
||||
if (p && (p == path || p[-1] == DIRNAME_SEPARATOR)
|
||||
&& (p[cdir_len] == DIRNAME_SEPARATOR || p[cdir_len] == '\0')) {
|
||||
int len;
|
||||
|
||||
path = (char *)
|
||||
|
@ -606,12 +615,12 @@ open_source_file (s)
|
|||
/* Didn't work. Try using just the basename. */
|
||||
p = basename (s->filename);
|
||||
if (p != s->filename)
|
||||
result = openp(path, 0, p, O_RDONLY,0, &s->fullname);
|
||||
result = openp (path, 0, p, O_RDONLY, 0, &s->fullname);
|
||||
}
|
||||
if (result >= 0)
|
||||
{
|
||||
fullname = s -> fullname;
|
||||
s -> fullname = mstrsave (s -> objfile -> md, s -> fullname);
|
||||
fullname = s->fullname;
|
||||
s->fullname = mstrsave (s->objfile->md, s->fullname);
|
||||
free (fullname);
|
||||
}
|
||||
return result;
|
||||
|
@ -804,6 +813,8 @@ identify_source_line (s, line, mid_statement, pc)
|
|||
if (line > s->nlines)
|
||||
/* Don't index off the end of the line_charpos array. */
|
||||
return 0;
|
||||
/* FIXME-32x64: Need a version of print_address_numeric which does
|
||||
not pass use_local to print_longest. */
|
||||
printf_unfiltered ("\032\032%s:%d:%d:%s:0x%lx\n", s->fullname,
|
||||
line, s->line_charpos[line - 1],
|
||||
mid_statement ? "middle" : "beg",
|
||||
|
@ -1025,20 +1036,23 @@ list_command (arg, from_tty)
|
|||
if (*arg == '*')
|
||||
{
|
||||
if (sal.symtab == 0)
|
||||
/* FIXME-32x64--assumes sal.pc fits in long. */
|
||||
error ("No source file for address %s.",
|
||||
local_hex_string((unsigned long) sal.pc));
|
||||
sym = find_pc_function (sal.pc);
|
||||
if (sym)
|
||||
{
|
||||
printf_filtered ("%s is in ",
|
||||
local_hex_string((unsigned long) sal.pc));
|
||||
print_address_numeric (sal.pc, gdb_stdout);
|
||||
printf_filtered (" is in ");
|
||||
fputs_filtered (SYMBOL_SOURCE_NAME (sym), gdb_stdout);
|
||||
printf_filtered (" (%s:%d).\n", sal.symtab->filename, sal.line);
|
||||
}
|
||||
else
|
||||
printf_filtered ("%s is at %s:%d.\n",
|
||||
local_hex_string((unsigned long) sal.pc),
|
||||
sal.symtab->filename, sal.line);
|
||||
{
|
||||
print_address_numeric (sal.pc, gdb_stdout);
|
||||
printf_filtered (" is at %s:%d.\n",
|
||||
sal.symtab->filename, sal.line);
|
||||
}
|
||||
}
|
||||
|
||||
/* If line was not specified by just a line number,
|
||||
|
@ -1125,7 +1139,7 @@ line_info (arg, from_tty)
|
|||
printf_filtered ("\n");
|
||||
}
|
||||
else if (sal.line > 0
|
||||
&& find_line_pc_range (sal.symtab, sal.line, &start_pc, &end_pc))
|
||||
&& find_line_pc_range (sal, &start_pc, &end_pc))
|
||||
{
|
||||
if (start_pc == end_pc)
|
||||
{
|
||||
|
|
|
@ -64,7 +64,7 @@ struct general_symbol_info
|
|||
/* The fact that this is a long not a LONGEST mainly limits the
|
||||
range of a LOC_CONST. Since LOC_CONST_BYTES exists, I'm not
|
||||
sure that is a big deal. */
|
||||
long value;
|
||||
long ivalue;
|
||||
|
||||
struct block *block;
|
||||
|
||||
|
@ -110,7 +110,7 @@ struct general_symbol_info
|
|||
};
|
||||
|
||||
#define SYMBOL_NAME(symbol) (symbol)->ginfo.name
|
||||
#define SYMBOL_VALUE(symbol) (symbol)->ginfo.value.value
|
||||
#define SYMBOL_VALUE(symbol) (symbol)->ginfo.value.ivalue
|
||||
#define SYMBOL_VALUE_ADDRESS(symbol) (symbol)->ginfo.value.address
|
||||
#define SYMBOL_VALUE_BYTES(symbol) (symbol)->ginfo.value.bytes
|
||||
#define SYMBOL_BLOCK_VALUE(symbol) (symbol)->ginfo.value.block
|
||||
|
|
|
@ -358,7 +358,7 @@ xfer_memory (memaddr, myaddr, len, write, target)
|
|||
{
|
||||
/* Entire transfer is within this section. */
|
||||
res = xfer_fn (p->bfd, p->the_bfd_section, myaddr, memaddr - p->addr, len);
|
||||
return (res != false)? len: 0;
|
||||
return (res != 0) ? len : 0;
|
||||
}
|
||||
else if (p->endaddr <= memaddr)
|
||||
{
|
||||
|
@ -370,7 +370,7 @@ xfer_memory (memaddr, myaddr, len, write, target)
|
|||
/* This section overlaps the transfer. Just do half. */
|
||||
len = p->endaddr - memaddr;
|
||||
res = xfer_fn (p->bfd, p->the_bfd_section, myaddr, memaddr - p->addr, len);
|
||||
return (res != false)? len: 0;
|
||||
return (res != 0) ? len : 0;
|
||||
}
|
||||
else if (p->addr < nextsectaddr)
|
||||
nextsectaddr = p->addr;
|
||||
|
|
Loading…
Reference in New Issue