1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-10-08 19:33:19 +03:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Stan Shebs
af9010d115 import gdb-19990504 snapshot 1999-05-05 21:44:03 +00:00
Stan Shebs
aad9afaeb8 import gdb-19990504 snapshot 1999-05-05 14:42:03 +00:00
88 changed files with 2744 additions and 626 deletions

View File

@@ -1,3 +1,133 @@
1999-05-04 DJ Delorie <dj@cygnus.com>
DJGPP changes from Robert Hoehne <robert.hoehne@gmx.net>
* ser-go32.c: correct includes
* source.c (openp): use ROOTED_P instead of SLASH_P
* go32-nat.c: enhance exception and NPX handling
(go32_kill_inferior): fix small bug killing inferior
* configure.in: don't look for termcap with djgpp
* configure: rebuild
1999-05-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* main.c (main): Comment out unused and undocumented command line
option '-'.
1999-04-30 Jim Blandy <jimb@zwingli.cygnus.com>
Cleanup from Philippe De Muyter:
* configure.in (BFD_NEED_DECLARATION): Check also for strstr.
* acconfig.h (NEED_DECLARATION_MALLOC, NEED_DECLARATION_REALLOC,
NEED_DECLARATION_FREE, NEED_DECLARATION_STRERROR): Define slots
removed; they are now generated automatically.
* gdb_string.h (strstr): Provide function prototype if
NEED_DECLARATION_STRSTR.
* configure, config.in: Regenerated.
Fri Apr 30 11:16:09 1999 Michael Snyder <msnyder@cleaver.cygnus.com>
* target.h (to_find_new_threads): new target ops vector.
(target_find_new_threads): define.
* target.c (update_current_target): inherit new target ops vector.
* remote.c: Setup to_find_new_threads vector.
* sol-thread.c: ditto.
* thread.c (target_find_new_threads): rename: local_find_new_threads.
(info_threads_command): call target_find_new_threads by new method,
as a target ops vector, rather than previous macro definition method.
* infcmd.c (go_command): define only if in xdb mode.
* procfs.c: fix typo in comment.
Fri Apr 30 01:02:05 1999 Jeffrey A Law (law@cygnus.com)
* hppah-nat.c: Fix various coding convention violations introduced
by HP.
(child_acknowledge_created_inferior): Do nothing if PT_SET_EVENT_MASK
is not defined.
1999-04-28 Stan Shebs <shebs@andros.cygnus.com>
* TODO: Add some items inspired by review of the manual.
Tue Apr 27 17:38:19 1999 Andrew Cagney <cagney@b1.cygnus.com>
* config/z8k/tm-z8k.h, config/v850/tm-v850.h,
config/tic80/tm-tic80.h, config/sparc/tm-sparc.h,
config/sh/tm-sh.h, config/pyr/tm-pyr.h, config/pa/tm-hppa.h,
config/mn10300/tm-mn10300.h, config/mn10200/tm-mn10200.h,
config/mips/tm-mips.h, config/m88k/tm-m88k.h,
config/m68k/tm-m68k.h, config/m32r/tm-m32r.h,
config/i960/tm-i960.h, config/i386/tm-i386.h,
config/h8500/tm-h8500.h, config/h8300/tm-h8300.h,
config/fr30/tm-fr30.h, config/d30v/tm-d30v.h,
config/d10v/tm-d10v.h, config/alpha/tm-alpha.h,
config/arm/tm-arm.h, config/a29k/tm-a29k.h, config/arc/tm-arc.h:
Change SKIP_PROLOGUE and SKIP_PROLOGUE_FRAMELESS_P macros so that
they return the new address.
* sparc-tdep.c (sparc_skip_prologue), hppa-tdep.c
(hppa_skip_prologue), m88k-tdep.c
(m88k_skip_prologue), i960-tdep.c
(i960_skip_prologue), arc-tdep.c
(arc_skip_prologue), a29k-tdep.c (a29k_skip_prologue): Rename
skip_prologue function.
* config/m68k/tm-isi.h: Convert macro SKIP_PROLOGUE into a new
function.
* m68k-tdep.c (isi_skip_prologue): That new function.
* vax-tdep.c (vax_skip_prologue), config/vax/tm-vax.h: Ditto.
* tahoe-tdep.c (tahoe_skip_prologue), config/tahoe/tm-tahoe.h: Ditto.
* rs6000-tdep.c (rs6000_skip_prologue), config/rs6000/tm-rs6000.h:
Ditto.
* ns32k-tdep.c (umax_skip_prologue), config/ns32k/tm-umax.h: Ditto.
* config/ns32k/tm-merlin.h, ns32k-tdep.c (merlin_skip_prologue):
Ditto.
* config/m68k/tm-altos.h, m68k-tdep.c (altos_skip_prologue): Ditto.
* config/convex/tm-convex.h, convex-tdep.c (convex_skip_prologue):
Ditto.
* symtab.c (in_prologue, find_function_start_sal, decode_line_1),
infrun.c (wait_for_inferior), blockframe.c
(frameless_look_for_prologue): Update.
* config/fr30/tm-fr30.h (FRAMELESS_FUNCTION_INVOCATION): Update.
1999-04-27 Stan Shebs <shebs@andros.cygnus.com>
* TODO: Remove item about DEBUG_EXPRESSIONS, no longer meaningful.
* infrun.c (enum wfi_state): New enum.
(wait_for_inferior): Merge all but one of the target_wait calls
into a single call, add a wfi_state variable to encode which of
the calls is being made.
1999-04-26 Jim Blandy <jimb@zwingli.cygnus.com>
Fix from Dave Holcomb.
* hpux-thread.c (init_hpux_thread_ops): Use the right function
name when initializing hpux_thread_ops.to_thread_alive.
* coffread.c (coff_symfile_read): If we have a `.stab' section,
but no `.stabstr' section, then print an error message; don't
crash.
1999-04-26 Jim Blandy <jimb@zwingli.cygnus.com>
1999-04-25 Mark Kettenis <kettenis@gnu.org>
* gnu-nat.c (gnu_attach): Call target_terminal_init before calling
inf_set_traced, since that function calls code that might try to
restore the terminal settings.
Mon Apr 26 08:55:46 1999 Andrew Cagney <cagney@b1.cygnus.com>
* gdbarch.h, gdbarch.c: More format cleanups.
Fri Apr 23 15:00:25 1999 Andrew Cagney <cagney@b1.cygnus.com>
* gdbarch.c (arch_ok): New function. Fix logic test for a valid
architecture.
(set_arch): Use.
1999-04-22 Jason Molenda (jsm@bugshack.cygnus.com)
* README: Note that readline is not installed as a part of

View File

@@ -217,7 +217,7 @@ CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
VERSION = 19990422
VERSION = 19990504
DIST=gdb
LINT=/usr/5bin/lint

View File

@@ -9,6 +9,20 @@ General To Do List
This list is probably not up to date, and opinions vary about the
importance or even desirability of some of the items.
Document trace machinery.
Document overlay machinery.
Extend .gdbinit mechanism to specify name on command line, allow for
lists of files to load, include function of --tclcommand.
@c This does not work (yet if ever). FIXME.
@c @item --parse=@var{lang} @dots{}
@c Configure the @value{GDBN} expression parser to parse the listed languages.
@c @samp{all} configures @value{GDBN} for all supported languages. To get a
@c list of all supported languages, omit the argument. Without this
@c option, @value{GDBN} is configured to parse all supported languages.
Add an "info bfd" command that displays supported object formats,
similarly to objdump -i.
@@ -382,9 +396,6 @@ Why do we allow a target to omit standard register names (NO_STD_REGS
in tm-z8k.h)? I thought the standard register names were supposed to
be just that, standard.
Make DEBUG_EXPRESSIONS a maintenance command, dependent on
MAINTENANCE_COMMANDS.
Allow core file without exec file on RS/6000.
Make sure "shell" with no arguments works right on DOS.
@@ -466,6 +477,9 @@ Add a command for searching memory, a la adb. It specifies size,
mask, value, start address. ADB searches until it finds it or hits
an error (or is interrupted).
Remove the range and type checking code and documentation, if not
going to implement.
# Local Variables:
# mode: text
# End:

View File

@@ -337,7 +337,7 @@ examine_prologue (pc, rsize, msize, mfp_used)
to reach some "real" code. */
CORE_ADDR
skip_prologue (pc)
a29k_skip_prologue (pc)
CORE_ADDR pc;
{
return examine_prologue (pc, NULL, NULL, NULL);

View File

@@ -1,17 +1,3 @@
/* Whether malloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_MALLOC
/* Whether realloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_REALLOC
/* Whether free must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_FREE
/* Whether strerror must be declared even if <string.h> is included. */
#undef NEED_DECLARATION_STRERROR
@TOP@
/* Define if pstatus_t type is available */
#undef HAVE_PSTATUS_T

View File

@@ -108,8 +108,11 @@ static unsigned int heuristic_fence_post = 0;
*/
#define PROC_LOW_ADDR(proc) ((proc)->pdr.adr) /* least address */
/* These next two fields are kind of being hijacked. I wonder if
iline is too small for the values it needs to hold, if GDB is
running on a 32-bit host. */
#define PROC_HIGH_ADDR(proc) ((proc)->pdr.iline) /* upper address bound */
#define PROC_DUMMY_FRAME(proc) ((proc)->pdr.iopt) /* frame for CALL_DUMMY */
#define PROC_DUMMY_FRAME(proc) ((proc)->pdr.cbLineOffset) /*CALL_DUMMY frame */
#define PROC_FRAME_OFFSET(proc) ((proc)->pdr.frameoffset)
#define PROC_FRAME_REG(proc) ((proc)->pdr.framereg)
#define PROC_REG_MASK(proc) ((proc)->pdr.regmask)

View File

@@ -264,7 +264,7 @@ arc_get_frame_setup (pc)
This allows a quicker answer. */
CORE_ADDR
skip_prologue (pc, frameless_p)
arc_skip_prologue (pc, frameless_p)
CORE_ADDR pc;
int frameless_p;
{

View File

@@ -307,9 +307,9 @@ frameless_look_for_prologue (frame)
#ifdef SKIP_PROLOGUE_FRAMELESS_P
/* This is faster, since only care whether there *is* a prologue,
not how long it is. */
SKIP_PROLOGUE_FRAMELESS_P (after_prologue);
after_prologue = SKIP_PROLOGUE_FRAMELESS_P (after_prologue);
#else
SKIP_PROLOGUE (after_prologue);
after_prologue = SKIP_PROLOGUE (after_prologue);
#endif
return after_prologue == func_start;
}

View File

@@ -686,6 +686,17 @@ coff_symfile_read (objfile, section_offsets, mainline)
if (info->stabsects)
{
if (! info->stabstrsect)
{
error_begin ();
fprintf_filtered
(gdb_stderr,
("The debugging information in `%s' is corrupted.\n"
"The file has a `.stabs' section, but no `.stabstr' section.\n"),
name);
return_to_top_level (RETURN_ERROR);
}
/* FIXME: dubious. Why can't we use something normal like
bfd_get_section_contents? */
bfd_seek (abfd, abfd->where, 0);

View File

@@ -1,17 +1,5 @@
/* config.in. Generated automatically from configure.in by autoheader. */
/* Whether malloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_MALLOC
/* Whether realloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_REALLOC
/* Whether free must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_FREE
/* Whether strerror must be declared even if <string.h> is included. */
#undef NEED_DECLARATION_STRERROR
/* Define if on AIX 3.
System headers sometimes define this.
We just want to avoid a redefinition error message. */
@@ -321,6 +309,9 @@
/* Define if strdup is not declared in system header files. */
#undef NEED_DECLARATION_STRDUP
/* Define if strstr is not declared in system header files. */
#undef NEED_DECLARATION_STRSTR
/* Define if <sys/procfs.h> has pstatus_t. */
#undef HAVE_PSTATUS_T

View File

@@ -43,9 +43,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ pc = skip_prologue (pc); }
CORE_ADDR skip_prologue ();
#define SKIP_PROLOGUE(pc) (a29k_skip_prologue (pc))
CORE_ADDR a29k_skip_prologue ();
/* Immediately after a function call, return the saved pc.
Can't go through the frames for this because on some machines

View File

@@ -59,7 +59,7 @@ struct symbol;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) pc = alpha_skip_prologue(pc, 0)
#define SKIP_PROLOGUE(pc) (alpha_skip_prologue(pc, 0))
extern CORE_ADDR alpha_skip_prologue PARAMS ((CORE_ADDR addr, int lenient));
/* Immediately after a function call, return the saved pc.

View File

@@ -37,11 +37,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
knows that the function has a frame. Its result is equal
to its input PC if the function is frameless, unequal otherwise. */
#define SKIP_PROLOGUE(pc) \
{ pc = skip_prologue (pc, 0); }
#define SKIP_PROLOGUE_FRAMELESS_P(pc) \
{ pc = skip_prologue (pc, 1); }
extern CORE_ADDR skip_prologue PARAMS ((CORE_ADDR, int));
#define SKIP_PROLOGUE(pc) (arc_skip_prologue (pc, 0))
#define SKIP_PROLOGUE_FRAMELESS_P(pc) (arc_skip_prologue (pc, 1))
extern CORE_ADDR arc_skip_prologue PARAMS ((CORE_ADDR, int));
/* Sequence of bytes for breakpoint instruction.
??? The current value is "sr -1,[-1]" and is for the simulator only.

View File

@@ -56,7 +56,7 @@ CORE_ADDR arm_addr_bits_remove PARAMS ((CORE_ADDR));
extern CORE_ADDR arm_skip_prologue PARAMS ((CORE_ADDR pc));
#define SKIP_PROLOGUE(pc) { pc = arm_skip_prologue (pc); }
#define SKIP_PROLOGUE(pc) (arm_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines

View File

@@ -52,26 +52,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
[ld.- -(ap),-] pcc/gcc register arg loads
*/
#define SKIP_PROLOGUE(pc) \
{ int op, ix; \
op = read_memory_integer (pc, 2); \
if ((op & 0xffc7) == 0x5ac0) pc += 2; \
else if (op == 0x1580) pc += 4; \
else if (op == 0x15c0) pc += 6; \
if ((read_memory_integer (pc, 2) & 0xfff8) == 0x7c40 \
&& (read_memory_integer (pc + 2, 2) & 0xfff8) == 0x1240 \
&& (read_memory_integer (pc + 8, 2) & 0xfff8) == 0x7c48) \
pc += 10; \
if (read_memory_integer (pc, 2) == 0x1240) pc += 6; \
for (;;) { \
op = read_memory_integer (pc, 2); \
ix = (op >> 3) & 7; \
if (ix != 6) break; \
if ((op & 0xfcc0) == 0x3000) pc += 4; \
else if ((op & 0xfcc0) == 0x3040) pc += 6; \
else if ((op & 0xfcc0) == 0x2800) pc += 4; \
else if ((op & 0xfcc0) == 0x2840) pc += 6; \
else break;}}
extern CORE_ADDR convex_skip_prologue PARAMS ((CORE_ADDR pc));
#define SKIP_PROLOGUE(pc) (convex_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
(ignore frame and return *$sp so we can handle both calls and callq) */

View File

@@ -48,8 +48,7 @@ struct value;
to reach some "real" code. */
extern CORE_ADDR d10v_skip_prologue ();
#define SKIP_PROLOGUE(ip) \
{(ip) = d10v_skip_prologue(ip);}
#define SKIP_PROLOGUE(ip) (d10v_skip_prologue (ip))
/* Stack grows downward. */

View File

@@ -46,9 +46,8 @@ struct value;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
extern CORE_ADDR d30v_skip_prologue ();
#define SKIP_PROLOGUE(ip) \
{(ip) = d30v_skip_prologue(ip);}
extern CORE_ADDR d30v_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(ip) (d30v_skip_prologue (ip))
/* Stack grows downward. */

View File

@@ -159,7 +159,7 @@ extern CORE_ADDR fr30_frame_saved_pc PARAMS ((struct frame_info *));
#define SAVED_PC_AFTER_CALL(fi) read_register (RP_REGNUM)
extern CORE_ADDR fr30_skip_prologue PARAMS ((CORE_ADDR pc));
#define SKIP_PROLOGUE(pc) pc = fr30_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (fr30_skip_prologue (pc))
/* Write into appropriate registers a function return value of type
TYPE, given in virtual format. VALBUF is in the target byte order;
@@ -199,7 +199,7 @@ extern void fr30_store_return_value PARAMS ((struct type *type, char *valbuf));
func_start = (get_pc_function_start ((FI)->pc) + \
FUNCTION_START_OFFSET); \
after_prologue = func_start; \
SKIP_PROLOGUE (after_prologue); \
after_prologue = SKIP_PROLOGUE (after_prologue); \
(FRAMELESS) = (after_prologue == func_start); \
}

View File

@@ -69,7 +69,7 @@ extern void h8300_init_extra_frame_info ();
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) {(ip) = h8300_skip_prologue(ip);}
#define SKIP_PROLOGUE(ip) (h8300_skip_prologue(ip))
extern CORE_ADDR h8300_skip_prologue ();
/* Immediately after a function call, return the saved pc.

View File

@@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) { (ip) = h8500_skip_prologue(ip); }
#define SKIP_PROLOGUE(ip) (h8500_skip_prologue (ip))
extern CORE_ADDR h8500_skip_prologue PARAMS ((CORE_ADDR));
/* Immediately after a function call, return the saved pc.

View File

@@ -47,7 +47,7 @@ struct type;
/* Advance PC across any function entry prologue instructions to reach some
"real" code. */
#define SKIP_PROLOGUE(frompc) {(frompc) = i386_skip_prologue((frompc));}
#define SKIP_PROLOGUE(frompc) (i386_skip_prologue (frompc))
extern int i386_skip_prologue PARAMS ((int));

View File

@@ -49,8 +49,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance ip across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) { ip = skip_prologue (ip); }
extern CORE_ADDR skip_prologue ();
#define SKIP_PROLOGUE(ip) (i960_skip_prologue (ip))
extern CORE_ADDR i960_skip_prologue ();
/* Immediately after a function call, return the saved ip.
Can't always go through the frames for this because on some machines

View File

@@ -155,7 +155,7 @@ extern CORE_ADDR m32r_frame_saved_pc PARAMS((struct frame_info *));
extern CORE_ADDR m32r_skip_prologue PARAMS ((CORE_ADDR pc));
/* mvs_check SKIP_PROLOGUE */
#define SKIP_PROLOGUE(pc) pc = m32r_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (m32r_skip_prologue (pc))
/* mvs_no_check FRAME_ARGS_SKIP */
#define FRAME_ARGS_SKIP 0

View File

@@ -38,20 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* The only reason this is here is the tm-altos.h reference below. It
was moved back here from tm-m68k.h. FIXME? */
#define SKIP_PROLOGUE(pc) \
{ register int op = read_memory_integer (pc, 2); \
if (op == 0047126) \
pc += 4; /* Skip link #word */ \
else if (op == 0044016) \
pc += 6; /* Skip link #long */ \
/* Not sure why branches are here. */ \
/* From tm-isi.h, tm-altos.h */ \
else if (op == 0060000) \
pc += 4; /* Skip bra #word */ \
else if (op == 00600377) \
pc += 6; /* skip bra #long */ \
else if ((op & 0177400) == 0060000) \
pc += 2; /* skip bra #char */ \
}
extern CORE_ADDR altos_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (altos_skip_prologue (pc))
#include "m68k/tm-m68k.h"

View File

@@ -131,20 +131,7 @@ retry: \
/* The only reason this is here is the tm-isi.h reference below. It
was moved back here from tm-m68k.h. FIXME? */
#define SKIP_PROLOGUE(pc) \
{ register int op = read_memory_integer (pc, 2); \
if (op == 0047126) \
pc += 4; /* Skip link #word */ \
else if (op == 0044016) \
pc += 6; /* Skip link #long */ \
/* Not sure why branches are here. */ \
/* From tm-isi.h, tm-altos.h */ \
else if (op == 0060000) \
pc += 4; /* Skip bra #word */ \
else if (op == 00600377) \
pc += 6; /* skip bra #long */ \
else if ((op & 0177400) == 0060000) \
pc += 2; /* skip bra #char */ \
}
extern CORE_ADDR isi_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (isi_skip_prologue (pc))
#include "m68k/tm-m68k.h"

View File

@@ -33,9 +33,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
to reach some "real" code. */
#if !defined(SKIP_PROLOGUE)
#define SKIP_PROLOGUE(ip) {(ip) = m68k_skip_prologue(ip);}
extern CORE_ADDR m68k_skip_prologue PARAMS ((CORE_ADDR ip));
#define SKIP_PROLOGUE(ip) (m68k_skip_prologue (ip))
#endif
extern CORE_ADDR m68k_skip_prologue PARAMS ((CORE_ADDR ip));
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines

View File

@@ -52,9 +52,8 @@ extern void init_extra_frame_info ();
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(frompc) \
{ (frompc) = skip_prologue (frompc); }
extern CORE_ADDR skip_prologue ();
extern CORE_ADDR m88k_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(frompc) (m88k_skip_prologue (frompc))
/* The m88k kernel aligns all instructions on 4-byte boundaries. The
kernel also uses the least significant two bits for its own hocus

View File

@@ -83,7 +83,7 @@ CORE_ADDR mips_addr_bits_remove PARAMS ((CORE_ADDR addr));
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) pc = mips_skip_prologue (pc, 0)
#define SKIP_PROLOGUE(pc) (mips_skip_prologue (pc, 0))
extern CORE_ADDR mips_skip_prologue PARAMS ((CORE_ADDR addr, int lenient));
/* Return non-zero if PC points to an instruction which will cause a step

View File

@@ -166,7 +166,7 @@ extern CORE_ADDR mn10200_frame_saved_pc PARAMS ((struct frame_info *));
(SP) = mn10200_store_struct_return (STRUCT_ADDR, SP)
extern CORE_ADDR mn10200_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) pc = mn10200_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (mn10200_skip_prologue (pc))
#define FRAME_ARGS_SKIP 0

View File

@@ -113,7 +113,7 @@ extern CORE_ADDR mn10300_frame_saved_pc PARAMS ((struct frame_info *));
(SP) = mn10300_store_struct_return (STRUCT_ADDR, SP)
extern CORE_ADDR mn10300_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) pc = mn10300_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (mn10300_skip_prologue (pc))
#define FRAME_ARGS_SKIP 0

View File

@@ -27,14 +27,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ register int op = read_memory_integer (pc, 1); \
if (op == 0x82) \
{ op = read_memory_integer (pc+2,1); \
if ((op & 0x80) == 0) pc += 3; \
else if ((op & 0xc0) == 0x80) pc += 4; \
else pc += 6; \
}}
extern CORE_ADDR merlin_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (merlin_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines

View File

@@ -33,14 +33,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ register unsigned char op = read_memory_integer (pc, 1); \
if (op == 0x82) { op = read_memory_integer (pc+2,1); \
if ((op & 0x80) == 0) pc += 3; \
else if ((op & 0xc0) == 0x80) pc += 4; \
else pc += 6; \
} \
}
extern CORE_ADDR umax_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (umax_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines

View File

@@ -72,8 +72,8 @@ struct inferior_status;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) pc = skip_prologue (pc)
extern CORE_ADDR skip_prologue PARAMS ((CORE_ADDR));
extern CORE_ADDR hppa_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (hppa_skip_prologue (pc))
/* If PC is in some function-call trampoline code, return the PC
where the function itself actually starts. If not, return NULL. */

View File

@@ -56,7 +56,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
If so, what do they look like?
This is becoming harder, since tege@sics.SE wants to change
gcc to not output a prologue when no frame is needed. */
#define SKIP_PROLOGUE(pc) do {} while (0)
#define SKIP_PROLOGUE(pc) (pc)
/* Immediately after a function call, return the saved pc.

View File

@@ -97,11 +97,8 @@ struct rs6000_framedata {
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
do { \
struct rs6000_framedata _frame; \
pc = skip_prologue (pc, &_frame); \
} while (0)
extern CORE_ADDR rs6000_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (rs6000_skip_prologue (pc))
extern CORE_ADDR skip_prologue PARAMS((CORE_ADDR, struct rs6000_framedata *));

View File

@@ -43,9 +43,8 @@ struct type;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
extern CORE_ADDR sh_skip_prologue ();
#define SKIP_PROLOGUE(ip) \
{(ip) = sh_skip_prologue(ip);}
extern CORE_ADDR sh_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(ip) (sh_skip_prologue (ip))
/* Immediately after a function call, return the saved pc.

View File

@@ -88,11 +88,9 @@ struct value;
knows that the function has a frame. Its result is equal
to its input PC if the function is frameless, unequal otherwise. */
#define SKIP_PROLOGUE(pc) \
{ pc = skip_prologue (pc, 0); }
#define SKIP_PROLOGUE_FRAMELESS_P(pc) \
{ pc = skip_prologue (pc, 1); }
extern CORE_ADDR skip_prologue PARAMS ((CORE_ADDR, int));
#define SKIP_PROLOGUE(pc) (sparc_skip_prologue (pc, 0))
#define SKIP_PROLOGUE_FRAMELESS_P(pc) (sparc_skip_prologue (pc, 1))
extern CORE_ADDR sparc_skip_prologue PARAMS ((CORE_ADDR, int));
/* Immediately after a function call, return the saved pc.
Can't go through the frames for this because on some machines

View File

@@ -33,26 +33,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ register int op = (unsigned char) read_memory_integer (pc, 1); \
if (op == 0x11) pc += 2; /* skip brb */ \
if (op == 0x13) pc += 3; /* skip brw */ \
if (op == 0x2c && \
((unsigned char) read_memory_integer (pc+2, 1)) == 0x5e) \
pc += 3; /* skip subl2 */ \
if (op == 0xe9 && \
((unsigned char) read_memory_integer (pc+1, 1)) == 0xae && \
((unsigned char) read_memory_integer(pc+3, 1)) == 0x5e) \
pc += 4; /* skip movab */ \
if (op == 0xe9 && \
((unsigned char) read_memory_integer (pc+1, 1)) == 0xce && \
((unsigned char) read_memory_integer(pc+4, 1)) == 0x5e) \
pc += 5; /* skip movab */ \
if (op == 0xe9 && \
((unsigned char) read_memory_integer (pc+1, 1)) == 0xee && \
((unsigned char) read_memory_integer(pc+6, 1)) == 0x5e) \
pc += 7; /* skip movab */ \
}
extern CORE_ADDR tahoe_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (tahoe_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines

View File

@@ -171,7 +171,7 @@ extern void tic80_frame_find_saved_regs PARAMS ((struct frame_info *, struct fra
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) { (pc) = tic80_skip_prologue (pc); }
#define SKIP_PROLOGUE(pc) (tic80_skip_prologue (pc))
extern CORE_ADDR tic80_skip_prologue PARAMS ((CORE_ADDR pc));
/* Immediately after a function call, return the saved pc.

View File

@@ -126,7 +126,7 @@ extern CORE_ADDR v850_frame_saved_pc PARAMS ((struct frame_info *));
write_register_bytes(REGISTER_BYTE (V0_REGNUM), VALBUF, TYPE_LENGTH (TYPE));
extern CORE_ADDR v850_skip_prologue PARAMS ((CORE_ADDR pc));
#define SKIP_PROLOGUE(pc) pc = v850_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (v850_skip_prologue (pc))
#define FRAME_ARGS_SKIP 0

View File

@@ -28,26 +28,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ register int op = (unsigned char) read_memory_integer (pc, 1); \
if (op == 0x11) pc += 2; /* skip brb */ \
if (op == 0x31) pc += 3; /* skip brw */ \
if (op == 0xC2 && \
((unsigned char) read_memory_integer (pc+2, 1)) == 0x5E) \
pc += 3; /* skip subl2 */ \
if (op == 0x9E && \
((unsigned char) read_memory_integer (pc+1, 1)) == 0xAE && \
((unsigned char) read_memory_integer(pc+3, 1)) == 0x5E) \
pc += 4; /* skip movab */ \
if (op == 0x9E && \
((unsigned char) read_memory_integer (pc+1, 1)) == 0xCE && \
((unsigned char) read_memory_integer(pc+4, 1)) == 0x5E) \
pc += 5; /* skip movab */ \
if (op == 0x9E && \
((unsigned char) read_memory_integer (pc+1, 1)) == 0xEE && \
((unsigned char) read_memory_integer(pc+6, 1)) == 0x5E) \
pc += 7; /* skip movab */ \
}
extern CORE_ADDR vax_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (vax_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines

View File

@@ -40,7 +40,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) {(ip) = z8k_skip_prologue(ip);}
#define SKIP_PROLOGUE(ip) (z8k_skip_prologue (ip))
extern CORE_ADDR mz8k_skip_prologue PARAMS ((CORE_ADDR ip));

243
gdb/configure vendored
View File

@@ -3896,6 +3896,53 @@ EOF
fi
echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
echo "configure:3901: checking whether strstr must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3906 "configure"
#include "confdefs.h"
#include <stdio.h>
#ifdef HAVE_STRING_H
#include <string.h>
#else
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
int main() {
char *(*pfn) = (char *(*)) strstr
; return 0; }
EOF
if { (eval echo configure:3927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_strstr=no
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
bfd_cv_decl_needed_strstr=yes
fi
rm -f conftest*
fi
echo "$ac_t""$bfd_cv_decl_needed_strstr" 1>&6
if test $bfd_cv_decl_needed_strstr = yes; then
cat >> confdefs.h <<\EOF
#define NEED_DECLARATION_STRSTR 1
EOF
fi
# The following save_state_t checkery is only necessary for HPUX
@@ -3903,9 +3950,9 @@ fi
# could be expunged. --jsm 1999-03-22
echo $ac_n "checking for HPUX save_state structure""... $ac_c" 1>&6
echo "configure:3907: checking for HPUX save_state structure" >&5
echo "configure:3954: checking for HPUX save_state structure" >&5
cat > conftest.$ac_ext <<EOF
#line 3909 "configure"
#line 3956 "configure"
#include "confdefs.h"
#include <machine/save_state.h>
EOF
@@ -3920,7 +3967,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
#line 3924 "configure"
#line 3971 "configure"
#include "confdefs.h"
#include <machine/save_state.h>
EOF
@@ -3972,7 +4019,7 @@ EOF
gdb_cv_hostos_is_solaris=yes ;;
esac
echo $ac_n "checking for directory proc entries""... $ac_c" 1>&6
echo "configure:3976: checking for directory proc entries" >&5
echo "configure:4023: checking for directory proc entries" >&5
# The [gdb_host != sun4sol2] hack is because Solaris does provide the
# multiple procfs files as of Solaris 2.6, but GDB can't use it right now.
if test "$ac_cv_header_sys_procfs_h" = yes -a \
@@ -3994,19 +4041,19 @@ fi
if test "$ac_cv_header_sys_procfs_h" = yes; then
echo $ac_n "checking for pstatus_t in sys/procfs.h""... $ac_c" 1>&6
echo "configure:3998: checking for pstatus_t in sys/procfs.h" >&5
echo "configure:4045: checking for pstatus_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4003 "configure"
#line 4050 "configure"
#include "confdefs.h"
#include <sys/procfs.h>
int main() {
pstatus_t avar
; return 0; }
EOF
if { (eval echo configure:4010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_pstatus_t=yes
else
@@ -4028,19 +4075,19 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus_t" 1>&6
echo $ac_n "checking for prrun_t in sys/procfs.h""... $ac_c" 1>&6
echo "configure:4032: checking for prrun_t in sys/procfs.h" >&5
echo "configure:4079: checking for prrun_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prrun_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4037 "configure"
#line 4084 "configure"
#include "confdefs.h"
#include <sys/procfs.h>
int main() {
prrun_t avar
; return 0; }
EOF
if { (eval echo configure:4044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_prrun_t=yes
else
@@ -4062,19 +4109,19 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_prrun_t" 1>&6
echo $ac_n "checking for gregset_t in sys/procfs.h""... $ac_c" 1>&6
echo "configure:4066: checking for gregset_t in sys/procfs.h" >&5
echo "configure:4113: checking for gregset_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_gregset_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4071 "configure"
#line 4118 "configure"
#include "confdefs.h"
#include <sys/procfs.h>
int main() {
gregset_t avar
; return 0; }
EOF
if { (eval echo configure:4078: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_gregset_t=yes
else
@@ -4096,19 +4143,19 @@ EOF
echo "$ac_t""$bfd_cv_have_sys_procfs_type_gregset_t" 1>&6
echo $ac_n "checking for fpregset_t in sys/procfs.h""... $ac_c" 1>&6
echo "configure:4100: checking for fpregset_t in sys/procfs.h" >&5
echo "configure:4147: checking for fpregset_t in sys/procfs.h" >&5
if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_fpregset_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4105 "configure"
#line 4152 "configure"
#include "confdefs.h"
#include <sys/procfs.h>
int main() {
fpregset_t avar
; return 0; }
EOF
if { (eval echo configure:4112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_have_sys_procfs_type_fpregset_t=yes
else
@@ -4132,12 +4179,12 @@ EOF
echo $ac_n "checking for PIOCSET ioctl entry in sys/procfs.h""... $ac_c" 1>&6
echo "configure:4136: checking for PIOCSET ioctl entry in sys/procfs.h" >&5
echo "configure:4183: checking for PIOCSET ioctl entry in sys/procfs.h" >&5
if eval "test \"`echo '$''{'gdb_cv_have_procfs_piocset'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4141 "configure"
#line 4188 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/types.h>
@@ -4150,7 +4197,7 @@ int main() {
; return 0; }
EOF
if { (eval echo configure:4154: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gdb_cv_have_procfs_piocset=yes
else
@@ -4172,7 +4219,7 @@ EOF
fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
echo "configure:4176: checking for main in -lm" >&5
echo "configure:4223: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4180,14 +4227,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4184 "configure"
#line 4231 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
if { (eval echo configure:4191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4216,7 +4263,7 @@ fi
echo $ac_n "checking for wctype in -lc""... $ac_c" 1>&6
echo "configure:4220: checking for wctype in -lc" >&5
echo "configure:4267: checking for wctype in -lc" >&5
ac_lib_var=`echo c'_'wctype | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4224,7 +4271,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lc $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4228 "configure"
#line 4275 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4235,7 +4282,7 @@ int main() {
wctype()
; return 0; }
EOF
if { (eval echo configure:4239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4254,7 +4301,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for wctype in -lw""... $ac_c" 1>&6
echo "configure:4258: checking for wctype in -lw" >&5
echo "configure:4305: checking for wctype in -lw" >&5
ac_lib_var=`echo w'_'wctype | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4262,7 +4309,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lw $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4266 "configure"
#line 4313 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4273,7 +4320,7 @@ int main() {
wctype()
; return 0; }
EOF
if { (eval echo configure:4277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4305,12 +4352,12 @@ fi
echo $ac_n "checking for long long support in compiler""... $ac_c" 1>&6
echo "configure:4309: checking for long long support in compiler" >&5
echo "configure:4356: checking for long long support in compiler" >&5
if eval "test \"`echo '$''{'gdb_cv_c_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4314 "configure"
#line 4361 "configure"
#include "confdefs.h"
int main() {
@@ -4320,7 +4367,7 @@ int main() {
; return 0; }
EOF
if { (eval echo configure:4324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gdb_cv_c_long_long=yes
else
@@ -4342,7 +4389,7 @@ fi
echo $ac_n "checking for long long support in printf""... $ac_c" 1>&6
echo "configure:4346: checking for long long support in printf" >&5
echo "configure:4393: checking for long long support in printf" >&5
if eval "test \"`echo '$''{'gdb_cv_printf_has_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4350,7 +4397,7 @@ else
gdb_cv_printf_has_long_long=no
else
cat > conftest.$ac_ext <<EOF
#line 4354 "configure"
#line 4401 "configure"
#include "confdefs.h"
int main () {
@@ -4364,7 +4411,7 @@ int main () {
return (strcmp ("0x0123456789abcdef", buf));
}
EOF
if { (eval echo configure:4368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
gdb_cv_printf_has_long_long=yes
else
@@ -4388,19 +4435,19 @@ echo "$ac_t""$gdb_cv_printf_has_long_long" 1>&6
echo $ac_n "checking for long double support in compiler""... $ac_c" 1>&6
echo "configure:4392: checking for long double support in compiler" >&5
echo "configure:4439: checking for long double support in compiler" >&5
if eval "test \"`echo '$''{'ac_cv_c_long_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4397 "configure"
#line 4444 "configure"
#include "confdefs.h"
int main() {
long double foo;
; return 0; }
EOF
if { (eval echo configure:4404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4451: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_long_double=yes
else
@@ -4422,7 +4469,7 @@ fi
echo $ac_n "checking for long double support in printf""... $ac_c" 1>&6
echo "configure:4426: checking for long double support in printf" >&5
echo "configure:4473: checking for long double support in printf" >&5
if eval "test \"`echo '$''{'gdb_cv_printf_has_long_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4430,7 +4477,7 @@ else
gdb_cv_printf_has_long_double=no
else
cat > conftest.$ac_ext <<EOF
#line 4434 "configure"
#line 4481 "configure"
#include "confdefs.h"
int main () {
@@ -4440,7 +4487,7 @@ int main () {
return (strncmp ("3.14159", buf, 7));
}
EOF
if { (eval echo configure:4444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
gdb_cv_printf_has_long_double=yes
else
@@ -4464,7 +4511,7 @@ echo "$ac_t""$gdb_cv_printf_has_long_double" 1>&6
echo $ac_n "checking for long double support in scanf""... $ac_c" 1>&6
echo "configure:4468: checking for long double support in scanf" >&5
echo "configure:4515: checking for long double support in scanf" >&5
if eval "test \"`echo '$''{'gdb_cv_scanf_has_long_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4472,7 +4519,7 @@ else
gdb_cv_scanf_has_long_double=no
else
cat > conftest.$ac_ext <<EOF
#line 4476 "configure"
#line 4523 "configure"
#include "confdefs.h"
int main () {
@@ -4482,7 +4529,7 @@ int main () {
return !(f > 3.14159 && f < 3.14160);
}
EOF
if { (eval echo configure:4486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
gdb_cv_scanf_has_long_double=yes
else
@@ -4508,17 +4555,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4512: checking for $ac_hdr" >&5
echo "configure:4559: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4517 "configure"
#line 4564 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4547,12 +4594,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4551: checking for $ac_func" >&5
echo "configure:4598: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4556 "configure"
#line 4603 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4575,7 +4622,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:4579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4600,7 +4647,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
echo "configure:4604: checking for working mmap" >&5
echo "configure:4651: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4608,7 +4655,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
#line 4612 "configure"
#line 4659 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -4748,7 +4795,7 @@ main()
}
EOF
if { (eval echo configure:4752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:4799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -4777,7 +4824,7 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
case ${host_os} in
hpux*)
echo $ac_n "checking for HPUX/OSF thread support""... $ac_c" 1>&6
echo "configure:4781: checking for HPUX/OSF thread support" >&5
echo "configure:4828: checking for HPUX/OSF thread support" >&5
if test -f /usr/include/dce/cma_config.h ; then
if test "$GCC" = "yes" ; then
echo "$ac_t""yes" 1>&6
@@ -4796,7 +4843,7 @@ EOF
;;
solaris*)
echo $ac_n "checking for Solaris thread debugging library""... $ac_c" 1>&6
echo "configure:4800: checking for Solaris thread debugging library" >&5
echo "configure:4847: checking for Solaris thread debugging library" >&5
if test -f /usr/lib/libthread_db.so.1 ; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
@@ -4806,7 +4853,7 @@ EOF
CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "configure:4810: checking for dlopen in -ldl" >&5
echo "configure:4857: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4814,7 +4861,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4818 "configure"
#line 4865 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4825,7 +4872,7 @@ int main() {
dlopen()
; return 0; }
EOF
if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4857,17 +4904,17 @@ fi
# all symbols visible in the dynamic symbol table.
hold_ldflags=$LDFLAGS
echo $ac_n "checking for the ld -export-dynamic flag""... $ac_c" 1>&6
echo "configure:4861: checking for the ld -export-dynamic flag" >&5
echo "configure:4908: checking for the ld -export-dynamic flag" >&5
LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
cat > conftest.$ac_ext <<EOF
#line 4864 "configure"
#line 4911 "configure"
#include "confdefs.h"
int main() {
int i;
; return 0; }
EOF
if { (eval echo configure:4871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
found=yes
else
@@ -4886,13 +4933,13 @@ rm -f conftest*
# Sun randomly tweaked the prototypes in <proc_service.h>
# at one point.
echo $ac_n "checking if <proc_service.h> is old""... $ac_c" 1>&6
echo "configure:4890: checking if <proc_service.h> is old" >&5
echo "configure:4937: checking if <proc_service.h> is old" >&5
if eval "test \"`echo '$''{'gdb_cv_proc_service_is_old'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4896 "configure"
#line 4943 "configure"
#include "confdefs.h"
#include <proc_service.h>
@@ -4903,7 +4950,7 @@ int main() {
; return 0; }
EOF
if { (eval echo configure:4907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gdb_cv_proc_service_is_old=no
else
@@ -5038,12 +5085,12 @@ fi
# In the Cygwin environment, we need some additional flags.
echo $ac_n "checking for cygwin""... $ac_c" 1>&6
echo "configure:5165: checking for cygwin" >&5
echo "configure:5212: checking for cygwin" >&5
if eval "test \"`echo '$''{'gdb_cv_os_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5170 "configure"
#line 5217 "configure"
#include "confdefs.h"
#if defined (__CYGWIN__) || defined (__CYGWIN32__)
@@ -5069,12 +5116,15 @@ WINDRES=${WINDRES-windres}
if test x$gdb_host = xgo32; then
TERM_LIB=
else
if test x$gdb_cv_os_cygwin = xyes; then
TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
else
TERM_LIB=
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
echo "configure:5201: checking for tgetent in -lncurses" >&5
echo "configure:5251: checking for tgetent in -lncurses" >&5
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5082,7 +5132,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5209 "configure"
#line 5259 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5093,7 +5143,7 @@ int main() {
tgetent()
; return 0; }
EOF
if { (eval echo configure:5220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5112,7 +5162,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lHcurses""... $ac_c" 1>&6
echo "configure:5239: checking for tgetent in -lHcurses" >&5
echo "configure:5289: checking for tgetent in -lHcurses" >&5
ac_lib_var=`echo Hcurses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5120,7 +5170,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lHcurses $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5247 "configure"
#line 5297 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5131,7 +5181,7 @@ int main() {
tgetent()
; return 0; }
EOF
if { (eval echo configure:5258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5150,7 +5200,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -ltermlib""... $ac_c" 1>&6
echo "configure:5277: checking for tgetent in -ltermlib" >&5
echo "configure:5327: checking for tgetent in -ltermlib" >&5
ac_lib_var=`echo termlib'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5158,7 +5208,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltermlib $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5285 "configure"
#line 5335 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5169,7 +5219,7 @@ int main() {
tgetent()
; return 0; }
EOF
if { (eval echo configure:5296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5188,7 +5238,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
echo "configure:5315: checking for tgetent in -ltermcap" >&5
echo "configure:5365: checking for tgetent in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5196,7 +5246,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltermcap $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5323 "configure"
#line 5373 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5207,7 +5257,7 @@ int main() {
tgetent()
; return 0; }
EOF
if { (eval echo configure:5334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5226,7 +5276,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
echo "configure:5353: checking for tgetent in -lcurses" >&5
echo "configure:5403: checking for tgetent in -lcurses" >&5
ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5234,7 +5284,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcurses $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5361 "configure"
#line 5411 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5245,7 +5295,7 @@ int main() {
tgetent()
; return 0; }
EOF
if { (eval echo configure:5372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5264,7 +5314,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lterminfo""... $ac_c" 1>&6
echo "configure:5391: checking for tgetent in -lterminfo" >&5
echo "configure:5441: checking for tgetent in -lterminfo" >&5
ac_lib_var=`echo terminfo'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5272,7 +5322,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lterminfo $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5399 "configure"
#line 5449 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5283,7 +5333,7 @@ int main() {
tgetent()
; return 0; }
EOF
if { (eval echo configure:5410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5319,6 +5369,7 @@ fi
{ echo "configure: error: Could not find a term library" 1>&2; exit 1; }
fi
fi
fi
@@ -5329,7 +5380,7 @@ fi
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
echo $ac_n "checking for X""... $ac_c" 1>&6
echo "configure:6542: checking for X" >&5
echo "configure:6593: checking for X" >&5
# Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then
@@ -5391,12 +5442,12 @@ if test "$ac_x_includes" = NO; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
#line 6604 "configure"
#line 6655 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:6609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:6660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5465,14 +5516,14 @@ if test "$ac_x_libraries" = NO; then
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
#line 6678 "configure"
#line 6729 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
if { (eval echo configure:6685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:6736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
LIBS="$ac_save_LIBS"
# We can link X programs with no special library path.
@@ -5745,12 +5796,12 @@ fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
echo "configure:7029: checking for Cygwin environment" >&5
echo "configure:7080: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 7034 "configure"
#line 7085 "configure"
#include "confdefs.h"
int main() {
@@ -5761,7 +5812,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
if { (eval echo configure:7045: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:7096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -5778,19 +5829,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
echo "configure:7062: checking for mingw32 environment" >&5
echo "configure:7113: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 7067 "configure"
#line 7118 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
if { (eval echo configure:7074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:7125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -5809,7 +5860,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
echo "configure:7093: checking for executable suffix" >&5
echo "configure:7144: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5819,7 +5870,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
if { (eval echo configure:7103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
if { (eval echo configure:7154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj | *.ilk | *.pdb) ;;

View File

@@ -83,6 +83,7 @@ BFD_NEED_DECLARATION(realloc)
BFD_NEED_DECLARATION(free)
BFD_NEED_DECLARATION(strerror)
BFD_NEED_DECLARATION(strdup)
BFD_NEED_DECLARATION(strstr)
# The following save_state_t checkery is only necessary for HPUX
@@ -424,6 +425,9 @@ AC_SUBST(DLLTOOL)
AC_SUBST(WINDRES)
dnl Figure out which term library to use.
if test x$gdb_host = xgo32; then
TERM_LIB=
else
if test x$gdb_cv_os_cygwin = xyes; then
TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
else
@@ -440,6 +444,7 @@ else
AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
fi
fi
fi
AC_SUBST(TERM_LIB)

View File

@@ -42,6 +42,45 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "gdbcmd.h"
CORE_ADDR
convex_skip_prologue (pc)
CORE_ADDR pc;
{
int op, ix;
op = read_memory_integer (pc, 2);
if ((op & 0xffc7) == 0x5ac0)
pc += 2;
else if (op == 0x1580)
pc += 4;
else if (op == 0x15c0)
pc += 6;
if ((read_memory_integer (pc, 2) & 0xfff8) == 0x7c40
&& (read_memory_integer (pc + 2, 2) & 0xfff8) == 0x1240
&& (read_memory_integer (pc + 8, 2) & 0xfff8) == 0x7c48)
pc += 10;
if (read_memory_integer (pc, 2) == 0x1240)
pc += 6;
for (;;)
{
op = read_memory_integer (pc, 2);
ix = (op >> 3) & 7;
if (ix != 6)
break;
if ((op & 0xfcc0) == 0x3000)
pc += 4;
else if ((op & 0xfcc0) == 0x3040)
pc += 6;
else if ((op & 0xfcc0) == 0x2800)
pc += 4;
else if ((op & 0xfcc0) == 0x2840)
pc += 6;
else
break;
}
return pc;
}
exec_file_command (filename, from_tty)
char *filename;
int from_tty;

View File

@@ -1,3 +1,8 @@
Tue Apr 27 19:14:20 1999 Andrew Cagney <cagney@b1.cygnus.com>
* gdbint.texinfo (SKIP_PROLOGUE, SKIP_PROLOGUE_FRAMELESS_P):
Update.
Thu Apr 22 13:07:37 1999 Andrew Cagney <cagney@b1.cygnus.com>
* gdbint.texinfo (USE_GENERIC_DUMMY_FRAMES): Document.

View File

@@ -1557,12 +1557,12 @@ defined, no conversion will be done.
(Only used for m88k targets.)
@item SKIP_PROLOGUE (pc)
A C statement that advances the @var{pc} across any function entry
prologue instructions so as to reach ``real'' code.
A C expression that returns the address of the ``real'' code beyond the
function entry prologue found at @var{pc}.
@item SKIP_PROLOGUE_FRAMELESS_P
A C statement that should behave similarly, but that can stop as soon as
the function is known to have a frame. If not defined,
A C expression that should behave similarly, but that can stop as soon
as the function is known to have a frame. If not defined,
@code{SKIP_PROLOGUE} will be used instead.
@item SKIP_TRAMPOLINE_CODE (pc)

View File

@@ -37,10 +37,6 @@ extern char *strchr PARAMS ((const char *, int)); /* X3.159-1989 4.11.5.2 */
extern char *strrchr PARAMS ((const char *, int)); /* X3.159-1989 4.11.5.5 */
#endif
#ifndef strstr
extern char *strstr PARAMS ((const char *, const char *)); /* X3.159-1989 4.11.5.7 */
#endif
#ifndef strtok
extern char *strtok PARAMS ((char *, const char *)); /* X3.159-1989 4.11.5.8 */
#endif
@@ -65,4 +61,10 @@ extern char *strerror PARAMS ((int)); /* X3.159-1989 4.11.6.2 */
extern char *strdup (); /* full prototype collides w/ some OSes (AIX 3.2.5) */
#endif
#ifdef NEED_DECLARATION_STRSTR
#ifndef strstr
extern char *strstr PARAMS ((const char *, const char *)); /* X3.159-1989 4.11.5.7 */
#endif
#endif
#endif /* !defined(GDB_STRING_H) */

View File

@@ -1,5 +1,5 @@
/* Semi-dynamic architecture support for GDB, the GNU debugger.
Copyright 1998, Free Software Foundation, Inc.
Copyright 1998-1999, Free Software Foundation, Inc.
This file is part of GDB.
@@ -196,27 +196,36 @@ const struct bfd_arch_info *target_architecture = &bfd_default_arch_struct;
int (*target_architecture_hook) PARAMS ((const struct bfd_arch_info *ap));
/* Do the real work of changing the current architecture */
static int arch_valid PARAMS ((const struct bfd_arch_info *arch));
static int
arch_ok (arch)
const struct bfd_arch_info *arch;
{
/* Should be performing the more basic check that the binary is
compatible with GDB. */
/* Check with the target that the architecture is valid. */
return (target_architecture_hook == NULL
|| target_architecture_hook (arch));
}
enum set_arch { set_arch_auto, set_arch_manual };
static void
set_arch (arch, type)
const struct bfd_arch_info *arch;
enum set_arch type;
{
/* FIXME: Should be performing the more basic check that the binary
is compatible with GDB. */
/* Check with the target that the architecture is valid. */
int arch_valid = (target_architecture_hook != NULL
&& !target_architecture_hook (arch));
switch (type)
{
case set_arch_auto:
if (!arch_valid)
if (!arch_ok (arch))
warning ("Target may not support %s architecture",
arch->printable_name);
target_architecture = arch;
break;
case set_arch_manual:
if (!arch_valid)
if (!arch_ok (arch))
{
printf_unfiltered ("Target does not support `%s' architecture.\n",
arch->printable_name);

View File

@@ -1,5 +1,5 @@
/* Architecture commands for GDB, the GNU debugger.
Copyright 1998, Free Software Foundation, Inc.
Copyright 1998-1999, Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* The target-system-dependant byte order is dynamic */
/* TARGET_BYTE_ORDER_SELECTABLE_P determines if the target endianness
is selectable at runtime. The user can use the `set endian'
is selectable at runtime. The user can use the ``set endian''
command to change it. TARGET_BYTE_ORDER_AUTO is nonzero when
target_byte_order should be auto-detected (from the program image
say). */

View File

@@ -2004,6 +2004,10 @@ gnu_attach (args, from_tty)
attach_flag = 1;
push_target (&gnu_ops);
/* We have to initialize the terminal settings now, since the code
below might try to restore them. */
target_terminal_init ();
inf_update_signal_thread (inf);
inf_set_traced (inf, inf->want_signals);

View File

@@ -29,12 +29,72 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "command.h"
#include "floatformat.h"
#include <stdio.h> /* required for __DJGPP_MINOR__ */
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <debug/v2load.h>
#include <debug/dbgcom.h>
#if __DJGPP_MINOR__ < 3
/* This code will be provided from DJGPP 2.03 on. Until then I code it
here */
typedef struct {
unsigned short sig0;
unsigned short sig1;
unsigned short sig2;
unsigned short sig3;
unsigned short exponent:15;
unsigned short sign:1;
} NPXREG;
typedef struct {
unsigned int control;
unsigned int status;
unsigned int tag;
unsigned int eip;
unsigned int cs;
unsigned int dataptr;
unsigned int datasel;
NPXREG reg[8];
} NPX;
static NPX npx;
static void save_npx (void); /* Save the FPU of the debugged program */
static void load_npx (void); /* Restore the FPU of the debugged program */
/* ------------------------------------------------------------------------- */
/* Store the contents of the NPX in the global variable `npx'. */
static void
save_npx (void)
{
asm ("inb $0xa0, %%al
testb $0x20, %%al
jz 1f
xorb %%al, %%al
outb %%al, $0xf0
movb $0x20, %%al
outb %%al, $0xa0
outb %%al, $0x20
1:
fnsave %0
fwait"
: "=m" (npx)
: /* No input */
: "%eax");
}
/* ------------------------------------------------------------------------- */
/* Reload the contents of the NPX from the global variable `npx'. */
static void
load_npx (void)
{
asm ("frstor %0" : "=m" (npx));
}
#endif /* __DJGPP_MINOR < 3 */
extern void _initialize_go32_nat (void);
struct env387
@@ -58,9 +118,54 @@ extern char **environ;
#define SOME_PID 42
/* FIXME add decls of all static functions here */
static int prog_has_started = 0;
static void
print_387_status (unsigned short status, struct env387 *ep);
static void
go32_open (char *name, int from_tty);
static void
go32_close (int quitting);
static void
go32_attach (char *args, int from_tty);
static void
go32_detach (char *args, int from_tty);
static void
go32_resume (int pid, int step, enum target_signal siggnal);
static int
go32_wait (int pid, struct target_waitstatus *status);
static void
go32_fetch_registers (int regno);
static void
store_register (int regno);
static void
go32_store_registers (int regno);
static void
go32_prepare_to_store (void);
static int
go32_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
struct target_ops *target);
static void
go32_files_info (struct target_ops *target);
static void
go32_stop (void);
static void
go32_kill_inferior (void);
static void
go32_create_inferior (char *exec_file, char *args, char **env);
static void
go32_mourn_inferior (void);
static int
go32_can_run (void);
static void
ignore (void);
static void
ignore2 (char *a, int b);
static int go32_insert_aligned_watchpoint (int pid, CORE_ADDR waddr,
CORE_ADDR addr, int len, int rw);
static int go32_insert_nonaligned_watchpoint (int pid, CORE_ADDR waddr,
CORE_ADDR addr, int len, int rw);
static struct target_ops go32_ops;
static void
print_387_status (unsigned short status, struct env387 *ep)
@@ -245,7 +350,13 @@ go32_wait (int pid, struct target_waitstatus *status)
else
a_tss.tss_eflags &= 0xfeff;
#if __DJGPP_MINOR__ < 3
save_npx ();
#endif
run_child ();
#if __DJGPP_MINOR__ < 3
load_npx ();
#endif
if (a_tss.tss_irqn == 0x21)
{
@@ -388,7 +499,6 @@ go32_stop (void)
static void
go32_kill_inferior (void)
{
go32_stop ();
unpush_target (&go32_ops);
}
@@ -401,6 +511,7 @@ go32_create_inferior (char *exec_file, char *args, char **env)
if (prog_has_started)
{
go32_stop ();
go32_kill_inferior ();
}
@@ -426,6 +537,7 @@ go32_create_inferior (char *exec_file, char *args, char **env)
clear_proceed_status ();
insert_breakpoints ();
proceed ((CORE_ADDR) - 1, TARGET_SIGNAL_0, 0);
prog_has_started = 1;
}
static void
@@ -522,12 +634,6 @@ do { \
#define SHOW_DR(text) do {} while (0)
#endif
static int go32_insert_aligned_watchpoint (int pid, CORE_ADDR waddr,
CORE_ADDR addr, int len, int rw);
static int go32_insert_nonaligned_watchpoint (int pid, CORE_ADDR waddr,
CORE_ADDR addr, int len, int rw);
/* Insert a watchpoint. */
int
@@ -706,8 +812,6 @@ go32_insert_hw_breakpoint (CORE_ADDR addr, CORE_ADDR shadow)
return 0;
}
static struct target_ops go32_ops;
static void
init_go32_ops (void)
{

View File

@@ -3513,7 +3513,7 @@ after_prologue (pc)
stuff some day. */
CORE_ADDR
skip_prologue (pc)
hppa_skip_prologue (pc)
CORE_ADDR pc;
{
unsigned long inst;

View File

@@ -1,5 +1,5 @@
/* Native support code for HPUX PA-RISC.
Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1998
Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1998, 1999
Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
@@ -66,24 +66,24 @@ store_inferior_registers (regno)
regaddr = register_addr (regno, offset);
errno = 0;
if (regno == PCOQ_HEAD_REGNUM || regno == PCOQ_TAIL_REGNUM)
{
scratch = *(int *) &registers[REGISTER_BYTE (regno)] | 0x3;
call_ptrace (PT_WUREGS, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
scratch);
if (errno != 0)
{
{
scratch = *(int *) &registers[REGISTER_BYTE (regno)] | 0x3;
call_ptrace (PT_WUREGS, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
scratch);
if (errno != 0)
{
/* Error, even if attached. Failing to write these two
registers is pretty serious. */
sprintf (buf, "writing register number %d", regno);
perror_with_name (buf);
}
}
sprintf (buf, "writing register number %d", regno);
perror_with_name (buf);
}
}
else
for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
{
errno = 0;
call_ptrace (PT_WUREGS, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
*(int *) &registers[REGISTER_BYTE (regno) + i]);
*(int *) &registers[REGISTER_BYTE (regno) + i]);
if (errno != 0)
{
/* Warning, not error, in case we are attached; sometimes the
@@ -123,13 +123,12 @@ fetch_register (regno)
{
errno = 0;
*(int *) &buf[i] = call_ptrace (PT_RUREGS, inferior_pid,
(PTRACE_ARG3_TYPE) regaddr, 0);
(PTRACE_ARG3_TYPE) regaddr, 0);
regaddr += sizeof (int);
if (errno != 0)
{
/* Warning, not error, in case we are attached; sometimes the
* kernel doesn't let us at the registers.
*/
kernel doesn't let us at the registers. */
char *err = safe_strerror (errno);
char *msg = alloca (strlen (err) + 128);
sprintf (msg, "reading register %s: %s", REGISTER_NAME (regno), err);
@@ -167,77 +166,75 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
register int count
= (((memaddr + len) - addr) + sizeof (int) - 1) / sizeof (int);
/* Allocate buffer of that many longwords. */
/* Note (RT) - This code formerly used alloca, which I have
* replaced with xmalloc and a matching free() at the end.
* The problem with alloca() is that there is no guarantee of
* when it'll be freed, and we were seeing cases of memory
* leaks on:
* (gdb) watch x
* (gdb) cont
* where the piled-up alloca's for the child_xfer_memory buffers
* were not getting freed.
*/
/* Allocate buffer of that many longwords.
Note -- do not use alloca to allocate this buffer since there is no
guarantee of when the buffer will actually be deallocated.
This routine can be called over and over with the same call chain;
this (in effect) would pile up all those alloca requests until a call
to alloca was made from a point higher than this routine in the
call chain. */
register int *buffer = (int *) xmalloc (count * sizeof (int));
if (write)
{
/* Fill start and end extra bytes of buffer with existing memory data. */
if (addr != memaddr || len < (int)sizeof (int)) {
/* Need part of initial word -- fetch it. */
buffer[0] = call_ptrace (addr < text_end ? PT_RIUSER : PT_RDUSER,
inferior_pid, (PTRACE_ARG3_TYPE) addr, 0);
}
if (addr != memaddr || len < (int)sizeof (int))
{
/* Need part of initial word -- fetch it. */
buffer[0] = call_ptrace (addr < text_end ? PT_RIUSER : PT_RDUSER,
inferior_pid, (PTRACE_ARG3_TYPE) addr, 0);
}
if (count > 1) /* FIXME, avoid if even boundary */
{
buffer[count - 1]
= call_ptrace (addr < text_end ? PT_RIUSER : PT_RDUSER, inferior_pid,
(PTRACE_ARG3_TYPE) (addr + (count - 1) * sizeof (int)),
0);
= call_ptrace (addr < text_end ? PT_RIUSER : PT_RDUSER,
inferior_pid,
(PTRACE_ARG3_TYPE) (addr
+ (count - 1) * sizeof (int)),
0);
}
/* Copy data to be written over corresponding part of buffer */
memcpy ((char *) buffer + (memaddr & (sizeof (int) - 1)), myaddr, len);
/* Write the entire buffer. */
for (i = 0; i < count; i++, addr += sizeof (int))
{
int pt_status;
int pt_request;
/* The HP-UX kernel crashes if you use PT_WDUSER to write into the text
segment. FIXME -- does it work to write into the data segment using
WIUSER, or do these idiots really expect us to figure out which segment
the address is in, so we can use a separate system call for it??! */
int pt_status;
int pt_request;
/* The HP-UX kernel crashes if you use PT_WDUSER to write into the
text segment. FIXME -- does it work to write into the data
segment using WIUSER, or do these idiots really expect us to
figure out which segment the address is in, so we can use a
separate system call for it??! */
errno = 0;
pt_request = (addr < text_end) ? PT_WIUSER : PT_WDUSER;
pt_request = (addr < text_end) ? PT_WIUSER : PT_WDUSER;
pt_status = call_ptrace (pt_request,
inferior_pid,
(PTRACE_ARG3_TYPE) addr,
buffer[i]);
inferior_pid,
(PTRACE_ARG3_TYPE) addr,
buffer[i]);
/* Did we fail? Might we've guessed wrong about which
segment this address resides in? Try the other request,
and see if that works...
*/
if ((pt_status == -1) && errno) {
errno = 0;
pt_request = (pt_request == PT_WIUSER) ? PT_WDUSER : PT_WIUSER;
pt_status = call_ptrace (pt_request,
inferior_pid,
(PTRACE_ARG3_TYPE) addr,
buffer[i]);
/* Did we fail? Might we've guessed wrong about which
segment this address resides in? Try the other request,
and see if that works... */
if ((pt_status == -1) && errno)
{
errno = 0;
pt_request = (pt_request == PT_WIUSER) ? PT_WDUSER : PT_WIUSER;
pt_status = call_ptrace (pt_request,
inferior_pid,
(PTRACE_ARG3_TYPE) addr,
buffer[i]);
/* No, we still fail. Okay, time to punt. */
if ((pt_status == -1) && errno)
{
free(buffer);
return 0;
}
}
/* No, we still fail. Okay, time to punt. */
if ((pt_status == -1) && errno)
{
free(buffer);
return 0;
}
}
}
}
else
@@ -247,11 +244,12 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
{
errno = 0;
buffer[i] = call_ptrace (addr < text_end ? PT_RIUSER : PT_RDUSER,
inferior_pid, (PTRACE_ARG3_TYPE) addr, 0);
if (errno) {
free(buffer);
return 0;
}
inferior_pid, (PTRACE_ARG3_TYPE) addr, 0);
if (errno)
{
free(buffer);
return 0;
}
QUIT;
}
@@ -266,7 +264,7 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
void
child_post_follow_inferior_by_clone ()
{
int status;
int status;
/* This function is used when following both the parent and child
of a fork. In this case, the debugger clones itself. The original
@@ -283,12 +281,11 @@ child_post_follow_inferior_by_clone ()
void
child_post_follow_vfork (parent_pid, followed_parent, child_pid, followed_child)
int parent_pid;
int followed_parent;
int child_pid;
int followed_child;
int parent_pid;
int followed_parent;
int child_pid;
int followed_child;
{
/* Are we a debugger that followed the parent of a vfork? If so,
then recall that the child's vfork event was delivered to us
first. And, that the parent was suspended by the OS until the
@@ -312,48 +309,46 @@ child_post_follow_vfork (parent_pid, followed_parent, child_pid, followed_child)
/* Are we a debugger that followed the child of a vfork? If so,
then recall that we don't actually acquire control of the child
until after it has exec'd or exited.
*/
until after it has exec'd or exited. */
if (followed_child)
{
/* If the child has exited, then there's nothing for us to do.
In the case of an exec event, we'll let that be handled by
the normal mechanism that notices and handles exec events, in
resume(). */
In the case of an exec event, we'll let that be handled by
the normal mechanism that notices and handles exec events, in
resume(). */
}
}
/* Format a process id, given a pid. Be sure to terminate
* this with a null--it's going to be printed via a "%s".
*/
/* Format a process id, given PID. Be sure to terminate
this with a null--it's going to be printed via a "%s". */
char *
hppa_pid_to_str( pid )
hppa_pid_to_str (pid)
pid_t pid;
{
static char buf[30]; /* Static because address returned */
/* Static because address returned */
static char buf[30];
sprintf( buf, "process %d\0\0\0\0", pid );
/* Extra NULLs for paranoia's sake */
/* Extra NULLs for paranoia's sake */
sprintf (buf, "process %d\0\0\0\0", pid);
return buf;
}
/* Format a thread id, given a tid. Be sure to terminate
* this with a null--it's going to be printed via a "%s".
*
* Note: This is a core-gdb tid, not the actual system tid.
* See infttrace.c for details.
*/
/* Format a thread id, given TID. Be sure to terminate
this with a null--it's going to be printed via a "%s".
Note: This is a core-gdb tid, not the actual system tid.
See infttrace.c for details. */
char *
hppa_tid_to_str( tid )
hppa_tid_to_str (tid)
pid_t tid;
{
static char buf[30]; /* Static because address returned */
/* Static because address returned */
static char buf[30];
sprintf( buf, "system thread %d\0\0\0\0", tid );
/* Extra NULLs for paranoia's sake */
/* Extra NULLs for paranoia's sake */
sprintf (buf, "system thread %d\0\0\0\0", tid);
return buf;
}
@@ -420,13 +415,13 @@ parent_attach_all (pid, addr, data)
/* Notify the parent that we're potentially ready to exec(). */
write (startup_semaphore.child_channel[SEM_TALK],
&tc_magic_child,
sizeof (tc_magic_child));
&tc_magic_child,
sizeof (tc_magic_child));
/* Wait for acknowledgement from the parent. */
read (startup_semaphore.parent_channel[SEM_LISTEN],
&tc_magic_parent,
sizeof (tc_magic_parent));
&tc_magic_parent,
sizeof (tc_magic_parent));
if (tc_magic_child != tc_magic_parent)
warning ("mismatched semaphore magic");
@@ -446,8 +441,8 @@ hppa_require_attach (pid)
int pid;
{
int pt_status;
CORE_ADDR pc;
CORE_ADDR pc_addr;
CORE_ADDR pc;
CORE_ADDR pc_addr;
unsigned int regs_offset;
/* Are we already attached? There appears to be no explicit way to
@@ -466,7 +461,7 @@ hppa_require_attach (pid)
pt_status = call_ptrace (PT_ATTACH, pid, (PTRACE_ARG3_TYPE) 0, 0);
if (errno)
return -1;
return -1;
/* Now we really are attached. */
errno = 0;
@@ -580,7 +575,7 @@ hppa_resume_execd_vforking_child_to_get_parent_vfork ()
void
require_notification_of_events (pid)
int pid;
int pid;
{
#if defined(PT_SET_EVENT_MASK)
int pt_status;
@@ -589,15 +584,13 @@ require_notification_of_events (pid)
/* Instruct the kernel as to the set of events we wish to be
informed of. (This support does not exist before HPUX 10.0.
We'll assume if PT_SET_EVENT_MASK has not been defined by
<sys/ptrace.h>, then we're being built on pre-10.0.)
*/
<sys/ptrace.h>, then we're being built on pre-10.0.) */
memset (&ptrace_events, 0, sizeof (ptrace_events));
/* Note: By default, all signals are visible to us. If we wish
the kernel to keep certain signals hidden from us, we do it
by calling sigdelset (ptrace_events.pe_signals, signal) for
each such signal here, before doing PT_SET_EVENT_MASK.
*/
each such signal here, before doing PT_SET_EVENT_MASK. */
sigemptyset (&ptrace_events.pe_signals);
ptrace_events.pe_set_event = 0;
@@ -612,9 +605,9 @@ require_notification_of_events (pid)
errno = 0;
pt_status = call_ptrace (PT_SET_EVENT_MASK,
pid,
(PTRACE_ARG3_TYPE) &ptrace_events,
sizeof (ptrace_events));
pid,
(PTRACE_ARG3_TYPE) &ptrace_events,
sizeof (ptrace_events));
if (errno)
perror_with_name ("ptrace");
if (pt_status < 0)
@@ -624,7 +617,7 @@ require_notification_of_events (pid)
void
require_notification_of_exec_events (pid)
int pid;
int pid;
{
#if defined(PT_SET_EVENT_MASK)
int pt_status;
@@ -633,15 +626,13 @@ require_notification_of_exec_events (pid)
/* Instruct the kernel as to the set of events we wish to be
informed of. (This support does not exist before HPUX 10.0.
We'll assume if PT_SET_EVENT_MASK has not been defined by
<sys/ptrace.h>, then we're being built on pre-10.0.)
*/
<sys/ptrace.h>, then we're being built on pre-10.0.) */
memset (&ptrace_events, 0, sizeof (ptrace_events));
/* Note: By default, all signals are visible to us. If we wish
the kernel to keep certain signals hidden from us, we do it
by calling sigdelset (ptrace_events.pe_signals, signal) for
each such signal here, before doing PT_SET_EVENT_MASK.
*/
each such signal here, before doing PT_SET_EVENT_MASK. */
sigemptyset (&ptrace_events.pe_signals);
ptrace_events.pe_set_event = 0;
@@ -653,9 +644,9 @@ require_notification_of_exec_events (pid)
errno = 0;
pt_status = call_ptrace (PT_SET_EVENT_MASK,
pid,
(PTRACE_ARG3_TYPE) &ptrace_events,
sizeof (ptrace_events));
pid,
(PTRACE_ARG3_TYPE) &ptrace_events,
sizeof (ptrace_events));
if (errno)
perror_with_name ("ptrace");
if (pt_status < 0)
@@ -668,26 +659,29 @@ require_notification_of_exec_events (pid)
void
child_acknowledge_created_inferior (pid)
int pid;
int pid;
{
/* We need a memory home for a constant. */
int tc_magic_parent = PT_VERSION;
int tc_magic_child = 0;
/* The remainder of this function is only useful for HPUX 10.0 and
later, as it depends upon the ability to request notification
of specific kinds of events by the kernel. */
#if defined(PT_SET_EVENT_MASK)
/* Wait for the child to tell us that it has forked. */
read (startup_semaphore.child_channel[SEM_LISTEN],
&tc_magic_child,
sizeof(tc_magic_child));
&tc_magic_child,
sizeof(tc_magic_child));
/* Notify the child that it can exec.
In the infttrace.c variant of this function, we set the child's
event mask after the fork but before the exec. In the ptrace
world, it seems we can't set the event mask until after the exec. */
write (startup_semaphore.parent_channel[SEM_TALK],
&tc_magic_parent,
sizeof (tc_magic_parent));
&tc_magic_parent,
sizeof (tc_magic_parent));
/* We'd better pause a bit before trying to set the event mask,
though, to ensure that the exec has happened. We don't want to
@@ -697,12 +691,10 @@ child_acknowledge_created_inferior (pid)
After an exec, the child is no longer executing gdb code. Hence,
we can't have yet another synchronization via the pipes. We'll
just sleep for a second, and hope that's enough delay... */
sleep (1);
/* Instruct the kernel as to the set of events we wish to be
informed of. */
require_notification_of_exec_events (pid);
/* Discard our copy of the semaphore. */
@@ -710,26 +702,26 @@ child_acknowledge_created_inferior (pid)
(void) close (startup_semaphore.parent_channel[SEM_TALK]);
(void) close (startup_semaphore.child_channel[SEM_LISTEN]);
(void) close (startup_semaphore.child_channel[SEM_TALK]);
#endif
}
void
child_post_startup_inferior (pid)
int pid;
int pid;
{
require_notification_of_events (pid);
}
void
child_post_attach (pid)
int pid;
int pid;
{
require_notification_of_events (pid);
}
int
child_insert_fork_catchpoint (pid)
int pid;
int pid;
{
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_SET_EVENT_MASK)
@@ -737,15 +729,14 @@ child_insert_fork_catchpoint (pid)
#else
/* Enable reporting of fork events from the kernel. */
/* ??rehrauer: For the moment, we're always enabling these events,
and just ignoring them if there's no catchpoint to catch them.
*/
and just ignoring them if there's no catchpoint to catch them. */
return 0;
#endif
}
int
child_remove_fork_catchpoint (pid)
int pid;
int pid;
{
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_SET_EVENT_MASK)
@@ -760,7 +751,7 @@ child_remove_fork_catchpoint (pid)
int
child_insert_vfork_catchpoint (pid)
int pid;
int pid;
{
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_SET_EVENT_MASK)
@@ -775,7 +766,7 @@ child_insert_vfork_catchpoint (pid)
int
child_remove_vfork_catchpoint (pid)
int pid;
int pid;
{
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_SET_EVENT_MASK)
@@ -790,8 +781,8 @@ child_remove_vfork_catchpoint (pid)
int
child_has_forked (pid, childpid)
int pid;
int * childpid;
int pid;
int *childpid;
{
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_GET_PROCESS_STATE)
@@ -803,9 +794,9 @@ child_has_forked (pid, childpid)
errno = 0;
pt_status = call_ptrace (PT_GET_PROCESS_STATE,
pid,
(PTRACE_ARG3_TYPE) &ptrace_state,
sizeof (ptrace_state));
pid,
(PTRACE_ARG3_TYPE) &ptrace_state,
sizeof (ptrace_state));
if (errno)
perror_with_name ("ptrace");
if (pt_status < 0)
@@ -823,8 +814,8 @@ child_has_forked (pid, childpid)
int
child_has_vforked (pid, childpid)
int pid;
int * childpid;
int pid;
int *childpid;
{
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_GET_PROCESS_STATE)
@@ -837,9 +828,9 @@ child_has_vforked (pid, childpid)
errno = 0;
pt_status = call_ptrace (PT_GET_PROCESS_STATE,
pid,
(PTRACE_ARG3_TYPE) &ptrace_state,
sizeof (ptrace_state));
pid,
(PTRACE_ARG3_TYPE) &ptrace_state,
sizeof (ptrace_state));
if (errno)
perror_with_name ("ptrace");
if (pt_status < 0)
@@ -864,48 +855,42 @@ child_can_follow_vfork_prior_to_exec ()
int
child_insert_exec_catchpoint (pid)
int pid;
int pid;
{
/* This request is only available on HPUX 10.0 and later.
*/
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_SET_EVENT_MASK)
error ("Unable to catch execs prior to HPUX 10.0");
#else
/* Enable reporting of exec events from the kernel. */
/* Enable reporting of exec events from the kernel. */
/* ??rehrauer: For the moment, we're always enabling these events,
and just ignoring them if there's no catchpoint to catch them.
*/
and just ignoring them if there's no catchpoint to catch them. */
return 0;
#endif
}
int
child_remove_exec_catchpoint (pid)
int pid;
int pid;
{
/* This request is only available on HPUX 10.0 and later.
*/
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_SET_EVENT_MASK)
error ("Unable to catch execs prior to HPUX 10.0");
#else
/* Disable reporting of exec events from the kernel. */
/* ??rehrauer: For the moment, we're always enabling these events,
and just ignoring them if there's no catchpoint to catch them.
*/
and just ignoring them if there's no catchpoint to catch them. */
return 0;
#endif
}
int
child_has_execd (pid, execd_pathname)
int pid;
char ** execd_pathname;
int pid;
char **execd_pathname;
{
/* This request is only available on HPUX 10.0 and later.
*/
/* This request is only available on HPUX 10.0 and later. */
#if !defined(PT_GET_PROCESS_STATE)
*execd_pathname = NULL;
return 0;
@@ -916,9 +901,9 @@ child_has_execd (pid, execd_pathname)
errno = 0;
pt_status = call_ptrace (PT_GET_PROCESS_STATE,
pid,
(PTRACE_ARG3_TYPE) &ptrace_state,
sizeof (ptrace_state));
pid,
(PTRACE_ARG3_TYPE) &ptrace_state,
sizeof (ptrace_state));
if (errno)
perror_with_name ("ptrace");
if (pt_status < 0)
@@ -957,23 +942,23 @@ child_has_syscall_event (pid, kind, syscall_id)
char *
child_pid_to_exec_file (pid)
int pid;
int pid;
{
static char exec_file_buffer[1024];
static char exec_file_buffer[1024];
int pt_status;
CORE_ADDR top_of_stack;
char four_chars[4];
CORE_ADDR top_of_stack;
char four_chars[4];
int name_index;
int i;
int saved_inferior_pid;
boolean done;
boolean done;
#ifdef PT_GET_PROCESS_PATHNAME
/* As of 10.x HP-UX, there's an explicit request to get the pathname. */
pt_status = call_ptrace (PT_GET_PROCESS_PATHNAME,
pid,
(PTRACE_ARG3_TYPE) exec_file_buffer,
sizeof (exec_file_buffer) - 1);
pid,
(PTRACE_ARG3_TYPE) exec_file_buffer,
sizeof (exec_file_buffer) - 1);
if (pt_status == 0)
return exec_file_buffer;
#endif

View File

@@ -620,7 +620,7 @@ init_hpux_thread_ops ()
hpux_thread_ops.to_mourn_inferior = hpux_thread_mourn_inferior;
hpux_thread_ops.to_can_run = hpux_thread_can_run;
hpux_thread_ops.to_notice_signals = hpux_thread_notice_signals;
hpux_thread_ops.to_thread_alive = hpux_thread_thread_alive;
hpux_thread_ops.to_thread_alive = hpux_thread_alive;
hpux_thread_ops.to_stop = hpux_thread_stop;
hpux_thread_ops.to_stratum = process_stratum;
hpux_thread_ops.to_has_all_memory = 1;

View File

@@ -312,7 +312,7 @@ examine_prologue (ip, limit, frame_addr, fsr)
prologue. */
CORE_ADDR
skip_prologue (ip)
i960_skip_prologue (ip)
CORE_ADDR (ip);
{
struct frame_saved_regs saved_regs_dummy;

View File

@@ -503,16 +503,16 @@ jump_command (arg, from_tty)
/* Go to line or address in current procedure */
static void
go_command(line_no, from_tty)
go_command (line_no, from_tty)
char *line_no;
int from_tty;
{
if (line_no == (char *)NULL || !*line_no)
printf_filtered(GO_USAGE);
printf_filtered (GO_USAGE);
else
{
tbreak_command(line_no, from_tty);
jump_command(line_no, from_tty);
tbreak_command (line_no, from_tty);
jump_command (line_no, from_tty);
}
}
@@ -1496,15 +1496,17 @@ Execution will also stop upon exit from the current stack frame.");
Give as argument either LINENUM or *ADDR, where ADDR is an expression\n\
for an address to start at.");
add_com ("go", class_run, go_command,
"Usage: go <location>\n\
if (xdb_commands)
add_com ("go", class_run, go_command,
"Usage: go <location>\n\
Continue program being debugged, stopping at specified line or \n\
address.\n\
Give as argument either LINENUM or *ADDR, where ADDR is an \n\
expression for an address to start at.\n\
This command is a combination of tbreak and jump.");
if (xdb_commands)
add_com_alias("g", "g", class_run, 1);
add_com_alias("g", "go", class_run, 1);
add_com ("continue", class_run, continue_command,
"Continue program being debugged, after signal or breakpoint.\n\

View File

@@ -1056,6 +1056,17 @@ delete_breakpoint_current_contents (arg)
When this function actually returns it means the inferior
should be left stopped and GDB should read more commands. */
/* This enum encodes possible reasons for doing a target_wait, so that
wfi can call target_wait in one place. (Ultimately the call will be
moved out of the infinite loop entirely.) */
enum wfi_states {
wfi_normal_state,
wfi_thread_hop_state,
wfi_nullified_state,
wfi_nonstep_watch_state
};
void
wait_for_inferior ()
{
@@ -1081,6 +1092,10 @@ wait_for_inferior ()
int stepping_through_sigtramp = 0;
int new_thread_event;
int stepped_after_stopped_by_watchpoint;
struct target_waitstatus tmpstatus;
enum wfi_states wfi_state;
int waiton_pid;
struct target_waitstatus *wp;
old_cleanups = make_cleanup (delete_breakpoint_current_contents,
&step_resume_breakpoint);
@@ -1105,43 +1120,75 @@ wait_for_inferior ()
if (may_switch_from_inferior_pid)
switched_from_inferior_pid = inferior_pid;
wfi_state = wfi_normal_state;
while (1)
{
overlay_cache_invalid = 1;
/* We have to invalidate the registers BEFORE calling target_wait because
they can be loaded from the target while in target_wait. This makes
remote debugging a bit more efficient for those targets that provide
critical registers as part of their normal status mechanism. */
registers_changed ();
if (target_wait_hook)
pid = target_wait_hook (-1, &w);
else
pid = target_wait (-1, &w);
/* Since we've done a wait, we have a new event. Don't carry
over any expectations about needing to step over a
breakpoint. */
thread_step_needed = 0;
/* See comments where a TARGET_WAITKIND_SYSCALL_RETURN event is
serviced in this loop, below. */
if (enable_hw_watchpoints_after_wait)
if (wfi_state == wfi_normal_state)
{
TARGET_ENABLE_HW_WATCHPOINTS (inferior_pid);
enable_hw_watchpoints_after_wait = 0;
overlay_cache_invalid = 1;
/* We have to invalidate the registers BEFORE calling
target_wait because they can be loaded from the target
while in target_wait. This makes remote debugging a bit
more efficient for those targets that provide critical
registers as part of their normal status mechanism. */
registers_changed ();
waiton_pid = -1;
wp = &w;
}
stepped_after_stopped_by_watchpoint = 0;
if (target_wait_hook)
pid = target_wait_hook (waiton_pid, wp);
else
pid = target_wait (waiton_pid, wp);
/* Gross.
switch (wfi_state)
{
case wfi_normal_state:
/* Since we've done a wait, we have a new event. Don't
carry over any expectations about needing to step over a
breakpoint. */
thread_step_needed = 0;
We goto this label from elsewhere in wait_for_inferior when we want
to continue the main loop without calling "wait" and trashing the
waitstatus contained in W. */
have_waited:
/* See comments where a TARGET_WAITKIND_SYSCALL_RETURN event
is serviced in this loop, below. */
if (enable_hw_watchpoints_after_wait)
{
TARGET_ENABLE_HW_WATCHPOINTS (inferior_pid);
enable_hw_watchpoints_after_wait = 0;
}
stepped_after_stopped_by_watchpoint = 0;
break;
case wfi_thread_hop_state:
insert_breakpoints ();
/* We need to restart all the threads now,
* unles we're running in scheduler-locked mode.
* FIXME: shouldn't we look at CURRENTLY_STEPPING ()?
*/
if (scheduler_mode == schedlock_on)
target_resume (pid, 0, TARGET_SIGNAL_0);
else
target_resume (-1, 0, TARGET_SIGNAL_0);
wfi_state = wfi_normal_state;
continue;
case wfi_nullified_state:
break;
case wfi_nonstep_watch_state:
insert_breakpoints ();
/* FIXME-maybe: is this cleaner than setting a flag? Does it
handle things like signals arriving and other things happening
in combination correctly? */
stepped_after_stopped_by_watchpoint = 1;
break;
}
wfi_state = wfi_normal_state;
flush_cached_frames ();
@@ -1536,11 +1583,10 @@ wait_for_inferior ()
/* FIXME: What if a signal arrives instead of the
single-step happening? */
if (target_wait_hook)
target_wait_hook (pid, &w);
else
target_wait (pid, &w);
insert_breakpoints ();
waiton_pid = pid;
wp = &w;
wfi_state = wfi_thread_hop_state;
continue;
}
/* We need to restart all the threads now,
@@ -1551,7 +1597,7 @@ wait_for_inferior ()
target_resume (pid, 0, TARGET_SIGNAL_0);
else
target_resume (-1, 0, TARGET_SIGNAL_0);
continue;
continue;
}
else
{
@@ -1673,21 +1719,17 @@ wait_for_inferior ()
/* if (INSTRUCTION_NULLIFIED && CURRENTLY_STEPPING ()) */
if (INSTRUCTION_NULLIFIED)
{
struct target_waitstatus tmpstatus;
registers_changed ();
target_resume (pid, 1, TARGET_SIGNAL_0);
/* We may have received a signal that we want to pass to
the inferior; therefore, we must not clobber the waitstatus
in W. So we call wait ourselves, then continue the loop
at the "have_waited" label. */
if (target_wait_hook)
target_wait_hook (pid, &tmpstatus);
else
target_wait (pid, &tmpstatus);
in W. */
goto have_waited;
wfi_state = wfi_nullified_state;
waiton_pid = pid;
wp = &tmpstatus;
continue;
}
/* It may not be necessary to disable the watchpoint to stop over
@@ -1727,17 +1769,10 @@ wait_for_inferior ()
registers_changed ();
target_resume (pid, 1, TARGET_SIGNAL_0); /* Single step */
if (target_wait_hook)
target_wait_hook (pid, &w);
else
target_wait (pid, &w);
insert_breakpoints ();
/* FIXME-maybe: is this cleaner than setting a flag? Does it
handle things like signals arriving and other things happening
in combination correctly? */
stepped_after_stopped_by_watchpoint = 1;
goto have_waited;
waiton_pid = pid;
wp = &w;
wfi_state = wfi_nonstep_watch_state;
continue;
}
/* It may be possible to simply continue after a watchpoint. */
@@ -2477,7 +2512,7 @@ wait_for_inferior ()
s = find_pc_symtab (stop_pc);
if (s && s->language != language_asm)
SKIP_PROLOGUE (stop_func_start);
stop_func_start = SKIP_PROLOGUE (stop_func_start);
}
sal = find_pc_line (stop_func_start, 0);
/* Use the step_resume_break to step until

View File

@@ -26,6 +26,53 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "inferior.h"
/* The only reason this is here is the tm-altos.h reference below. It
was moved back here from tm-m68k.h. FIXME? */
extern CORE_ADDR
altos_skip_prologue (pc)
CORE_ADDR pc;
{
register int op = read_memory_integer (pc, 2);
if (op == 0047126)
pc += 4; /* Skip link #word */
else if (op == 0044016)
pc += 6; /* Skip link #long */
/* Not sure why branches are here. */
/* From tm-isi.h, tm-altos.h */
else if (op == 0060000)
pc += 4; /* Skip bra #word */
else if (op == 00600377)
pc += 6; /* skip bra #long */
else if ((op & 0177400) == 0060000)
pc += 2; /* skip bra #char */
return pc;
}
/* The only reason this is here is the tm-isi.h reference below. It
was moved back here from tm-m68k.h. FIXME? */
extern CORE_ADDR
isi_skip_prologue (pc)
CORE_ADDR pc;
{
register int op = read_memory_integer (pc, 2);
if (op == 0047126)
pc += 4; /* Skip link #word */
else if (op == 0044016)
pc += 6; /* Skip link #long */
/* Not sure why branches are here. */
/* From tm-isi.h, tm-altos.h */
else if (op == 0060000)
pc += 4; /* Skip bra #word */
else if (op == 00600377)
pc += 6; /* skip bra #long */
else if ((op & 0177400) == 0060000)
pc += 2; /* skip bra #char */
return pc;
}
/* Push an empty stack frame, to record the current PC, etc. */
void

View File

@@ -401,7 +401,7 @@ end_of_prologue_found:
prologue. */
CORE_ADDR
skip_prologue (ip)
m88k_skip_prologue (ip)
CORE_ADDR (ip);
{
struct frame_saved_regs saved_regs_dummy;

View File

@@ -571,9 +571,14 @@ main (argc, argv)
{
if (!SET_TOP_LEVEL ())
{
/* NOTE: I am commenting this out, because it is not clear
where this feature is used. It is very old and
undocumented. ezannoni: 5/4/99*/
#if 0
if (cmdarg[i][0] == '-' && cmdarg[i][1] == '\0')
read_command_file (stdin);
else
#endif
source_command (cmdarg[i], !batch);
do_cleanups (ALL_CLEANUPS);
}

View File

@@ -26,6 +26,46 @@ _initialize_ns32k_tdep ()
tm_print_insn = print_insn_ns32k;
}
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
CORE_ADDR
merlin_skip_prologue (pc)
CORE_ADDR pc;
{
register int op = read_memory_integer (pc, 1);
if (op == 0x82)
{
op = read_memory_integer (pc+2,1);
if ((op & 0x80) == 0)
pc += 3;
else if ((op & 0xc0) == 0x80)
pc += 4;
else pc += 6;
}
return pc;
}
CORE_ADDR
umax_skip_prologue (pc)
CORE_ADDR pc;
{
register unsigned char op = read_memory_integer (pc, 1);
if (op == 0x82)
{
op = read_memory_integer (pc+2,1);
if ((op & 0x80) == 0)
pc += 3;
else if ((op & 0xc0) == 0x80)
pc += 4;
else
pc += 6;
}
return pc;
}
sign_extend (value, bits)
{
value = value & ((1 << bits) - 1);

View File

@@ -1831,7 +1831,7 @@ init_syscall_table ()
LOCAL FUNCTION
procfs_kill_inferior - kill any currently inferior
procfs_kill_inferior - kill any current inferior
SYNOPSIS
@@ -3631,7 +3631,7 @@ DESCRIPTION
If we are not delivering the same signal that the prstatus siginfo
struct contains information about, then synthesize a siginfo struct
to match the signal we are doing to deliver, make it of the type
to match the signal we are going to deliver, make it of the type
"generated by a user process", and send this synthesized copy. When
used to set the inferior's signal state, this will be required if we
are not currently stopped because of a traced signal, or if we decide

View File

@@ -3384,6 +3384,7 @@ Specify the serial device it is connected to (e.g. /dev/ttya).";
remote_ops.to_load = generic_load;
remote_ops.to_mourn_inferior = remote_mourn;
remote_ops.to_thread_alive = remote_thread_alive;
remote_ops.to_find_new_threads = remote_find_new_threads;
remote_ops.to_stop = remote_stop;
remote_ops.to_query = remote_query;
remote_ops.to_stratum = process_stratum;
@@ -3472,8 +3473,9 @@ in a memory packet.\n",
&setlist),
&showlist);
add_show_from_set (add_set_cmd ("remotebinarydownload", no_class,
var_boolean, (char *) &remote_binary_download,
"Set binary downloads.\n", &setlist),
&showlist);
add_show_from_set
(add_set_cmd ("remotebinarydownload", no_class,
var_boolean, (char *) &remote_binary_download,
"Set binary downloads.\n", &setlist),
&showlist);
}

View File

@@ -58,6 +58,16 @@ static void pop_dummy_frame PARAMS ((void));
static CORE_ADDR frame_initial_stack_address PARAMS ((struct frame_info *));
CORE_ADDR
rs6000_skip_prologue (pc)
CORE_ADDR pc;
{
struct rs6000_framedata frame;
pc = skip_prologue (pc, &frame);
return pc;
}
/* Fill in fi->saved_regs */
struct frame_extra_info

View File

@@ -126,9 +126,10 @@
#define MSR_DDSR 0x02
#define MSR_DCTS 0x01
#include <sys/dos.h>
#include <sys/go32.h>
#include <sys/dpmi.h>
#include <dos.h>
#include <go32.h>
#include <dpmi.h>
typedef unsigned long u_long;
/* DPMI Communication */
static union REGS dpmi_regs;

View File

@@ -1389,7 +1389,7 @@ sol_find_new_threads_callback(th, ignored)
}
void
sol_find_new_threads()
sol_find_new_threads ()
{
/* don't do anything if init failed to resolve the libthread_db library */
if (!procfs_suppress_run)
@@ -1542,6 +1542,7 @@ init_sol_thread_ops ()
sol_thread_ops.to_can_run = sol_thread_can_run;
sol_thread_ops.to_notice_signals = sol_thread_notice_signals;
sol_thread_ops.to_thread_alive = sol_thread_alive;
sol_thread_ops.to_find_new_threads = sol_find_new_threads;
sol_thread_ops.to_stop = sol_thread_stop;
sol_thread_ops.to_stratum = process_stratum;
sol_thread_ops.to_has_all_memory = 1;

View File

@@ -529,7 +529,7 @@ openp (path, try_cwd_first, string, mode, prot, filename_opened)
mode |= O_BINARY;
#endif
if (try_cwd_first || SLASH_P (string[0]))
if (try_cwd_first || ROOTED_P (string))
{
int i;
filename = string;

View File

@@ -585,7 +585,7 @@ examine_prologue (start_pc, frameless_p, fi, saved_regs)
}
CORE_ADDR
skip_prologue (start_pc, frameless_p)
sparc_skip_prologue (start_pc, frameless_p)
CORE_ADDR start_pc;
int frameless_p;
{

View File

@@ -2089,7 +2089,7 @@ find_function_start_sal (sym, funfirstline)
pc = overlay_unmapped_address (pc, section);
pc += FUNCTION_START_OFFSET;
SKIP_PROLOGUE (pc);
pc = SKIP_PROLOGUE (pc);
/* For overlays, map pc back into its mapped VMA range */
pc = overlay_mapped_address (pc, section);
@@ -3144,7 +3144,7 @@ minimal_symbol_found: /* We also jump here from the case for variables
if (funfirstline)
{
values.sals[0].pc += FUNCTION_START_OFFSET;
SKIP_PROLOGUE (values.sals[0].pc);
values.sals[0].pc = SKIP_PROLOGUE (values.sals[0].pc);
}
values.nelts = 1;
return values;
@@ -4285,7 +4285,7 @@ in_prologue (pc, func_start)
function's start address because PC may be pointing at an instruction that
could be mistakenly considered part of the prologue. */
SKIP_PROLOGUE (func_start);
func_start = SKIP_PROLOGUE (func_start);
return pc < func_start;
}

View File

@@ -31,6 +31,37 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
static unsigned char *print_insn_arg ();
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
CORE_ADDR
tahoe_skip_prologue (pc)
CORE_ADDR pc;
{
register int op = (unsigned char) read_memory_integer (pc, 1);
if (op == 0x11)
pc += 2; /* skip brb */
if (op == 0x13)
pc += 3; /* skip brw */
if (op == 0x2c
&& ((unsigned char) read_memory_integer (pc+2, 1)) == 0x5e)
pc += 3; /* skip subl2 */
if (op == 0xe9
&& ((unsigned char) read_memory_integer (pc+1, 1)) == 0xae
&& ((unsigned char) read_memory_integer(pc+3, 1)) == 0x5e)
pc += 4; /* skip movab */
if (op == 0xe9
&& ((unsigned char) read_memory_integer (pc+1, 1)) == 0xce
&& ((unsigned char) read_memory_integer(pc+4, 1)) == 0x5e)
pc += 5; /* skip movab */
if (op == 0xe9
&& ((unsigned char) read_memory_integer (pc+1, 1)) == 0xee
&& ((unsigned char) read_memory_integer(pc+6, 1)) == 0x5e)
pc += 7; /* skip movab */
return pc;
}
/* Print the Tahoe instruction at address MEMADDR in debugged memory,
on STREAM. Returns length of the instruction, in bytes. */

View File

@@ -516,6 +516,7 @@ update_current_target ()
INHERIT (to_can_run, t);
INHERIT (to_notice_signals, t);
INHERIT (to_thread_alive, t);
INHERIT (to_find_new_threads, t);
INHERIT (to_stop, t);
INHERIT (to_query, t);
INHERIT (to_enable_exception_callback, t);

View File

@@ -356,6 +356,7 @@ struct target_ops
int (*to_can_run) PARAMS ((void));
void (*to_notice_signals) PARAMS ((int pid));
int (*to_thread_alive) PARAMS ((int pid));
void (*to_find_new_threads) PARAMS ((void));
void (*to_stop) PARAMS ((void));
int (*to_query) PARAMS ((int/*char*/, char *, char *, int *));
struct symtab_and_line * (*to_enable_exception_callback) PARAMS ((enum exception_event_kind, int));
@@ -887,6 +888,14 @@ print_section_info PARAMS ((struct target_ops *, bfd *));
#define target_thread_alive(pid) \
(*current_target.to_thread_alive) (pid)
/* Query for new threads and add them to the thread list. */
#define target_find_new_threads() \
do { \
if (current_target.to_find_new_threads) \
(*current_target.to_find_new_threads) (); \
} while (0);
/* Make target stop in a continuable fashion. (For instance, under Unix, this
should act like SIGSTOP). This function is normally used by GUIs to
implement a stop button. */

View File

@@ -1,3 +1,17 @@
1999-05-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* gdb.base/call-ar-st.exp: Fix one regular expression in test
output.
* gdb.base/annota1.exp: New file. Annotation level 2 tests.
* gdb.base/annota2.exp: New file. More annotation tests.
* gdb.base/annota1.c: New file. Source file for annota1.exp.
* gdb.base/annota2.cc: New file. Source file for annota2.exp.
1999-04-23 Angela Marie Thomas <angela@cygnus.com>
* config/cfdbug.exp: New file.
1999-04-20 Jim Blandy <jimb@zwingli.cygnus.com>
* gdb.c++/demangle.exp (test_gnu_style_demangling): Add tests for

View File

@@ -0,0 +1,20 @@
# Copyright (C) 1997 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu
load_lib "../config/monitor.exp"

View File

@@ -0,0 +1,33 @@
#include <stdio.h>
#include <signal.h>
#ifdef __sh__
#define signal(a,b) /* Signals not supported on this target - make them go away */
#endif
void
handle_USR1 (sig)
int sig;
{
}
int value;
int
main ()
{
int my_array[3] = { 1, 2, 3 };
value = 7;
#ifdef SIGUSR1
signal (SIGUSR1, handle_USR1);
#endif
printf ("value is %d\n", value);
printf ("my_array[2] is %d\n", my_array[2]);
return 0;
}

View File

@@ -0,0 +1,393 @@
# Copyright (C) 1999
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu
# This file was written by Elena Zannoni (ezannoni@cygnus.com)
if $tracelevel then {
strace $tracelevel
}
#
# test running programs
#
set prms_id 0
set bug_id 0
set testfile "annota1"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
# are we on a target board? If so, don't run these tests.
# note: this is necessary because we cannot use runto_main (which would
# work for remote targets too) because of the different prompt we get
# when using annotation level 2.
#
if ![isnative] then {
return 0
}
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
if [target_info exists gdb_stub] {
gdb_step_for_stub;
}
#
# the line at which break main will put the breakpoint
#
set main_line 20
# The commands we test here produce many lines of output; disable "press
# <return> to continue" prompts.
send_gdb "set height 0\n"
gdb_expect -re "$gdb_prompt $"
#
# break at main
#
gdb_test "break main" \
"Breakpoint.*at.* file .*$srcfile, line.*" \
"breakpoint main"
#
# NOTE: this prompt is OK only when the annotation level is > 1
# NOTE: When this prompt is in use the gdb_test procedure cannot be used because
# it assumes that the last char after the gdb_prompt is a white space. This is not
# true with this annotated prompt. So we must use send_gdb and gdb_expect.
#
set old_gdb_prompt $gdb_prompt
set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
#
# set the annotation level to 2
#
# of course, this will test:
# annotate-pre-prompt
# annotate-prompt
# annotate-post-prompt (in the next block)
#
send_gdb "set annotate 2\n"
gdb_expect {
-re "set annotate 2\r\n$gdb_prompt$" { pass "annotation set at level 2" }
-re ".*$gdb_prompt$" { fail "annotation set at level 2" }
timeout { fail "annotation set at level 2 (timeout)" }
}
#
# info break will test:
# annotate-breakpoints-headers
# annotate-field
# annotate-breakpoints-table
# annotate-record
# annotate-breakpoints-table-end
#
send_gdb "info break\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-headers\r\n\r\n\032\032field 0\r\nNum \r\n\032\032field 1\r\nType \r\n\032\032field 2\r\nDisp \r\n\032\032field 3\r\nEnb \r\n\032\032field 4\r\nAddress \r\n\032\032field 5\r\nWhat\r\n\r\n\032\032breakpoints-table\r\n\r\n\032\032record\r\n\r\n\032\032field 0\r\n1 \r\n\032\032field 1\r\nbreakpoint \r\n\032\032field 2\r\nkeep \r\n\032\032field 3\r\ny \r\n\032\032field 4\r\n$hex \r\n\032\032field 5\r\nin main at ${srcdir}/${subdir}/${srcfile}:$main_line\r\n\r\n\032\032breakpoints-table-end\r\n$gdb_prompt$" \
{pass "breakpoint info"}
-re ".*$gdb_prompt$" { fail "breakpoint info" }
timeout { fail "breakpoint info (timeout)" }
}
#
# run to a break point will test:
# annotate-frames-invalid
# annotate-breakpoints-invalid (a.k.a. breakpoints-changed)
# annotate-starting
# annotate-breakpoint
# annotate-frame-begin
# annotate-frame-function-name
# annotate-frame-args
# annotate-frame-source-begin
# annotate-frame-source-file
# annotate-frame-source-file-end
# annotate-frame-source-line
# annotate-frame-source-end
# annotate-source
# annotate-frame-end
# annotate-stopped
#
send_gdb "run\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\nStarting program: $binfile \r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoints-invalid\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032breakpoint 1\r\n\r\nBreakpoint 1, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota1.c\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "run until main breakpoint" }
-re ".*$gdb_prompt$" { fail "run until main breakpoint" }
timeout { fail "run until main breakpoint (timeout)" }
}
#
# Let's do a next, to get to a point where the array is initialized
# We don't care about the annotated output for this operation, it is the same as
# the one produced by run above
#
send_gdb "next\n"
gdb_expect {
-re ".*$gdb_prompt$" { pass "go after array init line" }
timeout { fail "go after array init line (timeout)" }
}
#
# printing the array will test:
# annotate-value-history-begin
# annotate-value-history-value
# annotate-array-section-begin
# annotate-elt
# FIXME: annotate-elt-rep and annotate-elt-rep-end not tested
# annotate-array-section-end
# annotate-value-history-end
# FIXME: annotate-value-begin and annotate-value-end not tested (the gdb output
# command would cause them to be used)
#
send_gdb "print my_array\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032value-history-begin 1 -\r\n.*= \r\n\032\032value-history-value\r\n.\r\n\032\032array-section-begin 0 -\r\n1\r\n\032\032elt\r\n, 2\r\n\032\032elt\r\n, 3\r\n\032\032elt\r\n\r\n\032\032array-section-end\r\n.\r\n\r\n\032\032value-history-end\r\n$gdb_prompt$" \
{ pass "print array" }
-re ".*$gdb_prompt$" { fail "print array" }
timeout { fail "print array (timeout)" }
}
#
# this should generate an error message, so to test:
# annotate-error-begin
# FIXME: annotate-error not tested
#
#exp_internal 1
send_gdb "print non_existent_value\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032error-begin\r\nNo symbol \"non_existent_value\" in current context.\r\n\r\n\032\032error\r\n$gdb_prompt$" \
{ pass "print non_existent_value" }
-re ".*$gdb_prompt$" { fail "print non_existent_value" }
timeout { fail "print non_existent_value (timeout)" }
}
#
# break at signal handler. So that, once we are in the sig handler, if we do a bt
# we can test annotate-signal-handler-caller
#
send_gdb "break handle_USR1\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex: file.*$srcfile, line.*\r\n$gdb_prompt$" \
{ pass "breakpoint handle_USR1" }
-re ".*$gdb_prompt$" { fail "break at handle_USR1" }
timeout { fail "break at handle_USR1 (timeout)" }
}
#
# break at printf. When we are stopped at printf, we can test
#
send_gdb "break printf\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \
{ pass "breakpoint printf" }
-re ".*$gdb_prompt$" { fail "break printf" }
timeout { fail "break printf (timeout)" }
}
#
# get to printf
#
send_gdb "continue\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-where\r\n from.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "continue to printf" }
-re ".*$gdb_prompt$" { fail "continue to printf" }
timeout { fail "continue to printf (timeout)" }
}
#
# test:
# annotate-frame-where
# annotate-frame-address
# annotate-frame-address-end
#
send_gdb "backtrace\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-where\r\n from.*\r\n\032\032frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${srcdir}/${subdir}/${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n$gdb_prompt$" \
{ pass "bactrace from shlibrary" }
-re ".*$gdb_prompt$" { fail "backtrace from shlibrary" }
timeout { fail "backtrace from shlibrary (timeout)" }
}
#
# test printing a frame with some arguments:
# annotate-arg-begin
# annotate-arg-name-end
# annotate-arg-value
# annotate-arg-end
#
send_gdb "signal SIGUSR1\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n16\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${srcdir}/${subdir}/${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:185:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "send SIGUSR1" }
-re ".*$gdb_prompt$" { fail "send SIGUSR1" }
timeout { fail "send SIGUSR1 (timeout)" }
}
#
# test:
# annotate-signal-handler-caller
#
send_gdb "backtrace\n"
gdb_expect {
-re ".*frame-begin 0 $hex.*0.*frame-end.*frame-begin 1 $hex.*1.*\032\032signal-handler-caller\r\n.signal handler called.\r\n\r\n\032\032frame-end\r\n\r\n.*frame-begin 2 $hex.*2.*frame-begin 3 $hex.*3.*frame-end.*$gdb_prompt$" \
{ pass "backtrace @ signal handler" }
-re ".*$gdb_prompt$" { fail "backtrace @ signal handler" }
timeout { fail "backtrace @ signal handler (timeout)" }
}
#
# delete all the breakpoints
#
send_gdb "delete 1\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n$gdb_prompt$" \
{ pass "delete bp 1" }
-re ".*$gdb_prompt$" { fail "delete bp 1" }
timeout { fail "delete bp 1 (timeout)" }
}
send_gdb "delete 2\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n$gdb_prompt$" \
{ pass "delete bp 2" }
-re ".*$gdb_prompt$" { fail "delete bp 2 " }
timeout { fail "delete bp 2 (timeout)" }
}
send_gdb "delete 3\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n$gdb_prompt$" \
{ pass "delete bp 3" }
-re ".*$gdb_prompt$" { fail "delete bp 3" }
timeout { fail "delete bp 3 (timeout)" }
}
#
# break at main, after value is initialized. This is in preparation
# to test the annotate output for the display command.
#
send_gdb "break main\n"
gdb_expect {
-re "post-prompt.*\032\032breakpoints-invalid.*Breakpoint 4 at $hex: file ${srcdir}/${subdir}/${srcfile}, line $main_line.*$gdb_prompt$" \
{ pass "break at 28" }
-re ".*$gdb_prompt$" { fail "break at 28" }
timeout { fail "break at 28 (timeout)" }
}
#
# display the value; test:
# annotate-display-begin
# annotate-display-number-end
# annotate-display-format
# annotate-display-expression
# annotate-display-expression-end
# annotate-display-end
# FIXME: annotate-display-value not tested
#
send_gdb "display value\n"
gdb_expect {
-re "post-prompt\r\n\r\n\032\032display-begin\r\n1\r\n\032\032display-number-end\r\n: \r\n\032\032display-format\r\n\r\n\032\032display-expression\r\nvalue\r\n\032\032display-expression-end\r\n = \r\n\032\032display-expression\r\n7\r\n\r\n\032\032display-end\r\n$gdb_prompt$" \
{ pass "set up display" }
-re ".*$gdb_prompt$" { fail "set up display" }
timeout { fail "set up display (timeout)" }
}
# should ask query. Test annotate-query.
# we don't care about anything else here, only the query.
send_gdb "run\n"
gdb_expect {
-re "pre-query.*already.*\\(y or n\\).*query\r\n" {
send_gdb "y\n"
gdb_expect {
-re ".*post-query.*$gdb_prompt$" \
{ pass "re-run" }
-re ".*$gdb_prompt$" { fail "re-run" }
timeout { fail "re-run (timeout)" }
}
}
-re ".*$gdb_prompt$" { fail "re-run" }
timeout { fail "re-run (timeout)" }
}
#
# Send a signal that is not handled; test:
# annotate-signalled
# annotate-signal-name
# annotate-signal-name-end
# annotate-signal-string
# annotate-signal-string-end
# FIXME: annotate-signal not tested (requires that the inferior be
# stopped by a "random" signal)
#
send_gdb "signal SIGTRAP\n"
gdb_expect {
-re ".*\032\032post-prompt\r\nContinuing with signal SIGTRAP.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032signalled\r\n\r\n\032\032frames-invalid\r\n\r\nProgram terminated with signal \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, \r\n\032\032signal-string\r\nTrace.breakpoint trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer exists.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "signal sent" }
-re ".*$gdb_prompt$" { fail "signal sent" }
timeout { fail "signal sent (timeout)" }
}
# Check for production of a core file
# and remove it!
set exec_output [remote_exec build "ls core"]
if [ regexp "core not found" $exec_output] {
pass "No core dumped"
} else {
if [ regexp "No such file or directory" $exec_output] {
pass "No core dumped"
} else {
remote_exec build "rm -f core"
pass "Core dumped and removed"
}
}
# restore the original prompt for the rest of the testsuite
set gdb_prompt $old_gdb_prompt

View File

@@ -0,0 +1,25 @@
class A {
public:
int x;
int y;
int foo (int arg);
};
int A::foo (int arg)
{
x += arg;
return arg *2;
}
int main()
{
A a;
a.x = 1;
a.y = 2;
printf ("a.x is %d\n", a.x);
return 0;
}

View File

@@ -0,0 +1,224 @@
# Copyright (C) 1999
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu
# This file was written by Elena Zannoni (ezannoni@cygnus.com)
if $tracelevel then {
strace $tracelevel
}
#
# test running programs
#
set prms_id 0
set bug_id 0
set testfile "annota2"
set srcfile ${testfile}.cc
set binfile ${objdir}/${subdir}/${testfile}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++ additional_flags=-w}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
# are we on a target board? If so, don't run these tests.
# note: this is necessary because we cannot use runto_main (which would
# work for remote targets too) because of the different prompt we get
# when using annotation level 2.
#
if ![isnative] then {
return 0
}
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
if [target_info exists gdb_stub] {
gdb_step_for_stub;
}
#
# line number where we need to stop in main
#
set main_line 22
# The commands we test here produce many lines of output; disable "press
# <return> to continue" prompts.
send_gdb "set height 0\n"
gdb_expect -re "$gdb_prompt $"
#
# break at main
#
gdb_test "break 22" \
"Breakpoint.*at.* file .*$srcfile, line.*" \
"breakpoint main"
#
# NOTE: this prompt is OK only when the annotation level is > 1
# NOTE: When this prompt is in use the gdb_test procedure cannot be used because
# it assumes that the last char of the gdb_prompt is a white space. This is not
# true with this annotated prompt. So we must use send_gdb and gdb_expect.
#
set old_gdb_prompt $gdb_prompt
set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
send_gdb "set annotate 2\n"
gdb_expect {
-re "set annotate 2\r\n$gdb_prompt$" { pass "annotation set at level 2" }
-re ".*$gdb_prompt$" { fail "annotation set at level 2" }
timeout { fail "annotation set at level 2 (timeout)" }
}
send_gdb "run\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\nStarting program: $binfile \r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoints-invalid\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032breakpoint 1\r\n\r\nBreakpoint 1, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota2.cc\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "run until main breakpoint" }
-re ".*$gdb_prompt$" { fail "run until main breakpoint" }
timeout { fail "run until main breakpoint (timeout)" }
}
#
# print class 'a' with public fields.
# this will test:
# annotate-field-begin
# annotate-field-name-end
# annotate-field-value
# annotate-field-end
#
send_gdb "print a\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032value-history-begin 1 -\r\n.*= \r\n\032\032value-history-value\r\n\\{\r\n\032\032field-begin -\r\nx\r\n\032\032field-name-end\r\n = \r\n\032\032field-value\r\n1\r\n\032\032field-end\r\n, \r\n\032\032field-begin -\r\ny\r\n\032\032field-name-end\r\n = \r\n\032\032field-value\r\n2\r\n\032\032field-end\r\n\\}\r\n\r\n\032\032value-history-end\r\n$gdb_prompt$" \
{ pass "print class" }
-re ".*$gdb_prompt$" { fail "print class" }
timeout { fail "print class (timeout)" }
}
#
# continue until exit
# this will test:
# annotate-exited
#
send_gdb "continue\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\na.x is 1\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032exited 0\r\n\r\nProgram exited normally.\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "continue until exit" }
-re ".*$gdb_prompt$" { fail "continue to exit" }
timeout { fail "continue to exit (timeout)" }
}
#
# delete all breakpoints
#
send_gdb "delete\n"
gdb_expect {
-re " " {
send_gdb "y\n"
gdb_expect {
-re " " { pass "delete bps" }
-re ".*$gdb_prompt$" { fail "delete bps" }
timeout { fail "delete bps (timeout)" }
}
}
-re ".*$gdb_prompt$" { fail "delete bps" }
timeout { fail "delete bps (timeout)" }
}
#
# break at first line of main.
#
send_gdb "break main\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex: file.*$srcfile, line.*\r\n$gdb_prompt$" \
{ pass "breakpoint at main" }
-re ".*$gdb_prompt$" { fail "break at main" }
timeout { fail "break at main (timeout)" }
}
#
# change value of main_line
#
set main_line 19
#
# run program up to breakpoint.
#
send_gdb "run\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n.*Starting program: $binfile \r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoints-invalid\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota2.cc\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "run until main breakpoint" }
-re ".*$gdb_prompt$" { fail "run until main breakpoint" }
timeout { fail "run until main breakpoint (timeout)" }
}
#
# set up a watch point on a.x
#
send_gdb "watch a.x\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nWatchpoint 3: a.x\r\n$gdb_prompt$" \
{ pass "set watch on a.x" }
-re ".*$gdb_prompt$" { fail "set watch on a.x" }
timeout { fail "set watch on a.x (timeout)" }
}
#
# do a next, so that the watchpoint triggers. This will test:
# annotate-watchpoint
#
send_gdb "next\n"
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032watchpoint 3\r\nWatchpoint 3: a.x\r\n\r\nOld value = 4\r\nNew value = 1\r\n\r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*$srcfile\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n20\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source .*$srcfile.*beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "watch triggered on a.x" }
-re ".*$gdb_prompt$" { fail "watch triggered on a.x" }
timeout { fail "watch triggered on a.x (timeout)" }
}
#
# send ^C to gdb, so that the quit() function gets called
# and annotate-quit is tested
# test:
# annotate-quit
#
send_gdb "\003"
gdb_expect {
-re "\r\n\032\032error-begin\r\nQuit\r\n\r\n\032\032quit\r\n$gdb_prompt$" \
{ pass "annotate-quit" }
-re ".*$gdb_prompt$" { fail "annotate-quit" }
timeout { fail "annotate-quit (timeout)" }
}
#
# FIXME: the testsuite does not currently have tests for
# annotate_catchpoints and annotate_function_call
# and a few variants of the annotations that are
# tested (marked by FIXME on the annot?.exp files)
#
# reinstall the old prompt for the rest of the testsuite.
set gdb_prompt $old_gdb_prompt

View File

@@ -210,6 +210,7 @@ gdb_test continue "Continuing\\..*array_c.*array_f.*array_d.*HELLO WORLD.*main \
#call sum_array_print(10, *list1, *list2, *list3, *list4)
send_gdb "print sum_array_print(10, *list1, *list2, *list3, *list4)\n"
gdb_expect {
-re ".*Sum of 4 arrays, by element \\(add in seed as well\\):\[ \t\r\n\]+Seed: 10\[ \t\r\n\]+Element Index . Sum\[ \t\r\n\]+-------------------------\[ \t\r\n\]+.*\[ \t\]+0\[ \t\]+52\[ \t\r\n\]+1\[ \t\]+60\[ \t\r\n\]+2\[ \t\]+68\[ \t\r\n\]+3\[ \t\]+76\[ \t\r\n\]+4\[ \t\]+84\[ \t\r\n\]+5\[ \t\]+92\[ \t\r\n\]+6\[ \t\]+100\[ \t\r\n\]+7\[ \t\]+108\[ \t\r\n\]+8\[ \t\]+116\[ \t\r\n\]+9\[ \t\]+124\[ \t\r\n\]+.*$gdb_prompt $" {
@@ -219,28 +220,25 @@ gdb_expect {
timeout { fail "(timeout) print sum_array_print(10, *list1, *list2, *list3, *list4)" }
}
#step -over
send_gdb "next\n"
gdb_expect {
-re "BYE BYE FOR NOW\[ \t\r\n\]main.*+1035\[ \t\r\n\]+printf\\(.VERY GREEN GRASS.n.\\);\[ \t\r\n\]+.*$gdb_prompt $" { pass "next to 1035"}
-re ".*$gdb_prompt $" { fail "next to 1035" }
timeout { fail "next to 1035(timeout)" }
}
#step over
send_gdb "n\n"
gdb_expect {
-re ".*BYE BYE FOR NOW.*1035.*printf\\(.VERY GREEN GRASS.n.\\);.*$gdb_prompt $" { pass "next to 1035"}
-re ".*$gdb_prompt $" { fail "next to 1035" }
timeout { fail "next to 1035(timeout)" }
}
#call print_array_rep(\*list1, \*list2, \*list3)
send_gdb "print print_array_rep(\*list1, \*list2, \*list3)\n"
gdb_expect {
-re ".*.*$gdb_prompt $" {
-re ".*$gdb_prompt $" {
pass "print print_array_rep(*list1, *list2, *list3)"
}
-re ".*$gdb_prompt $" { fail "print print_array_rep(*list1, *list2, *list3)" }
timeout { fail "(timeout) print print_array_rep(*list1, *list2, *list3)" }
}
#go -until 1039
gdb_test "tbreak 1039" \
"Breakpoint..* file .*$srcfile, line 1039.*" \

View File

@@ -80,7 +80,7 @@ void _initialize_thread PARAMS ((void));
/* Prototypes for local functions. */
#if !defined(FIND_NEW_THREADS)
#define FIND_NEW_THREADS target_find_new_threads
#define FIND_NEW_THREADS local_find_new_threads
#endif
static struct thread_info *thread_list = NULL;
@@ -104,10 +104,8 @@ static void prune_threads PARAMS ((void));
static struct target_thread_vector *target_thread_functions;
static int target_find_new_threads PARAMS ((void));
static int
target_find_new_threads ()
local_find_new_threads ()
{
int retval = 0;
if (target_thread_functions &&
@@ -454,9 +452,7 @@ info_threads_command (arg, from_tty)
if (!target_has_stack) error ("No stack.");
prune_threads ();
#if defined(FIND_NEW_THREADS)
FIND_NEW_THREADS ();
#endif
target_find_new_threads ();
current_pid = inferior_pid;
for (tp = thread_list; tp; tp = tp->next)
{

View File

@@ -29,6 +29,36 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
static unsigned char *print_insn_arg ();
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
CORE_ADDR
vax_skip_prologue (pc)
CORE_ADDR pc;
{
register int op = (unsigned char) read_memory_integer (pc, 1);
if (op == 0x11)
pc += 2; /* skip brb */
if (op == 0x31)
pc += 3; /* skip brw */
if (op == 0xC2
&& ((unsigned char) read_memory_integer (pc+2, 1)) == 0x5E)
pc += 3; /* skip subl2 */
if (op == 0x9E
&& ((unsigned char) read_memory_integer (pc+1, 1)) == 0xAE
&& ((unsigned char) read_memory_integer(pc+3, 1)) == 0x5E)
pc += 4; /* skip movab */
if (op == 0x9E
&& ((unsigned char) read_memory_integer (pc+1, 1)) == 0xCE
&& ((unsigned char) read_memory_integer(pc+4, 1)) == 0x5E)
pc += 5; /* skip movab */
if (op == 0x9E
&& ((unsigned char) read_memory_integer (pc+1, 1)) == 0xEE
&& ((unsigned char) read_memory_integer(pc+6, 1)) == 0x5E)
pc += 7; /* skip movab */
return pc;
}
/* Print the vax instruction at address MEMADDR in debugged memory,
from disassembler info INFO.
Returns length of the instruction, in bytes. */

988
readline/ChangeLog.Cygnus Normal file
View File

@@ -0,0 +1,988 @@
1999-04-27 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* ChangeLog.Cygnus: new file. It is the old Changelog.
* ChangeLog: removed. It was conflicting with CHANGELOG
on Windows.
1999-04-22 Jason Molenda (jsm@bugshack.cygnus.com)
* Makefile.in (install): Make comment about this change more explicit.
1999-04-22 Jason Molenda (jsm@bugshack.cygnus.com)
* Makefile.in (install): Don't install the final libreadline.a
or .h files.
Tue Mar 23 10:56:08 1999 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
Patches from Robert Hoehne <robert.hoehne@gmx.net>:
* display.c: Change some terminal calls to work on DJGPP.
* terminal.c: Likewise.
* Makefile.in: Remove . from the VPATH directive.
Tue Mar 9 14:58:13 1999 Geoffrey Noer <noer@cygnus.com>
* support/config.sub: Recognize cygwin*, not just cygwin32.
Tue Feb 9 10:38:57 1999 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* configure.in: Do not use the ./support directory.
* configure: Regenerate.
Wed Jan 6 12:24:19 1999 Christopher Faylor <cgf@cygnus.com>
* configure.in: Use LOCAL_CFLAGS rather than CFLAGS for
searching libtermcap directory.
* configure: Regenerate.
Thu Dec 31 12:07:01 1998 Christopher Faylor <cgf@cygnus.com>
* configure.in: Search devo libtermcap directory for termcap.h
when compiling for cygwin.
* configure: Regenerated.
1998-12-30 Michael Meissner <meissner@cygnus.com>
* Makefile.in (install): Only try to copy libreadline.a and
libhistory.a if they exist.
Tue Dec 29 23:49:20 1998 Christopher Faylor <cgf@cygnus.com>
* cross-build/cygwin.cache: Add a couple more known settings.
* configure.in: Fix typo.
* configure: Regenerated.
Tue Dec 29 18:11:28 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* cross-build: new directory.
* cross-build/cygwin.cache: new file. Used for Cygwin cross builds.
* configure.in: added tests for cross-build for Cygwin.
1998-12-24 Jason Molenda (jsm@bugshack.cygnus.com)
* Makefile.in: Add CYGNUS LOCAL comment.
* acconfig.h: Add missing defines.
* config.h.bot: Add missing content.
* configure, config.h.in: Regenerated.
Wed Dec 23 16:21:41 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* Makefile.in: comment out the rule to rebuild configure by
running autoconf.
Tue Dec 22 10:00:30 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* shell.c (savestring): ifdef'd it out.
* Imported new version of Readline 2.2.1. Removed all the Cygnus
local changes.
New files: acconfig.h, aclocal.m4, ansi_stdlib.h, callback.c,
config.h.in, configure, histexpand.c, histfile.c, histlib.h,
histsearch.c, input.c, kill.c, macro.c, nls.c, posixdir.h,
posixjmp.h, posixstat.h, rlconf.h, rltty.h, rlwinsize.h, shell.c,
tcap.h, terminal.c, undo.c, util.c, support directory.
Removed files: sysdep*, config directory.
Fri Dec 4 15:25:41 1998 David Taylor <taylor@texas.cygnus.com>
The following changes were made by Jim Blandy
<jimb@zwingli.cygnus.com> and David Taylor
<taylor@texas.cygnus.com> as part of a project to merge in changes
made by HP; HP did not create ChangeLog entries.
* config/mp-enable-tui: New file.
(TUI_CFLAGS): Search devo's include directory, as long as we're
totally ruining modularity.
(INCLUDE_SRCDIR): New var.
(GDB_TUI_SRCDIR): Fix syntax error.
* configure.in: Check the --enable-tui flag; if it's set, include
a makefile fragment that #defines TUI and adds the needed #include
directories.
(*-*-hpux*): New host; use sysdep-hpux.h.
* Makefile.in (.c.o): Check the variable set in the makefile
fragment above.
* display.c (term_goto): declare it.
(insert_some_chars): set it.
(delete_chars): set it.
* readline.c: add tui include files surrounded by TUI.
(rl_reset): new function, move some of rl_abort functionality to
here.
(rl_abort): call rl_reset.
(rl_getc): tui changes.
(init_terminal_io): tui changes.
* readline.h (tui_version, fputc_unfiltered, fputs_unfiltered,
tui_tputs): declare if TUI is defined.
* rltty.c (prepare_terminal_settings): additional comment.
* signals.c: add tui include files surrounded by TUI. move #if
and #endif to column 1 so HP's compiler will accept them. Remove
declaration of tuiDoAndReturnToTop since it's declared in tui.h.
(rl_handle_sigwinch): call tuiDoAndReturnToTop if TUI defined.
(rl_handle_sigwinch_on_clear): define if TUI defined.
(rl_set_signals): if TUI, avoid infinite recursion.
(rl_clear_signals): install rl_handle_sigwinch_on_clear.
* sysdep-hpux.h: New file.
Mon Nov 2 15:26:33 1998 Geoffrey Noer <noer@cygnus.com>
* configure.in: Check cygwin* instead of cygwin32*.
Tue Jul 28 09:43:27 1998 Jeffrey A Law (law@cygnus.com)
* sysdep-hpux11.h: New file.
* configure.in (*-*-*-hpux11*): Use sysdep-hpux11.h.
Thu Jul 23 17:48:21 1998 Ian Lance Taylor <ian@cygnus.com>
* configure.bat: Remove obsolete file.
* examples/configure.bat: Remove obsolete file.
Wed May 13 13:41:53 1998 Ian Lance Taylor <ian@cygnus.com>
* sysdep-6irix.h: New file.
* configure.in (*-*-irix6*): New host; use sysdep-6irix.h.
* Makefile.in (isearch.o, search.o): Depend upon sysdep.h.
(Makefile): Depend upon $(srcdir)/configure.in.
Thu Apr 9 11:59:38 1998 Ian Dall (<Ian.Dall@dsto.defence.gov.au>
* configure.in (host==netbsd): Include config/mh-bsd44.
* config/mh-bsd44: New file.
Wed Dec 3 16:48:20 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
* rltty.c: fix typos.
Tue Oct 8 08:59:24 1996 Stu Grossman (grossman@critters.cygnus.com)
* tilde.c (tilde_word_expand): __MSDOS___ -> __MSDOS__
Sat Oct 05 11:24:34 1996 Mark Alexander <marka@cygnus.com>
* rldefs.h: On Linux, include <termios.h> to fix compile error
in <termcap.h>.
Wed Sep 4 18:06:51 1996 Stu Grossman (grossman@critters.cygnus.com)
* rldefs.h: Enable HANDLE_SIGNALS for cygwin32.
Thu Aug 29 16:59:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* configure.in (i[345]86-*-*): Recognize i686 for pentium pro.
Fri Aug 16 17:49:57 1996 Stu Grossman (grossman@critters.cygnus.com)
* complete.c: Include <pwd.h> if not DOS, and if cygwin32 or not
win32.
* configure.in: Add test for *-*-cygwin32* to use config/mh-posix.
* readline.c: Move decl of tgetstr to rldefs.h.
* (_rl_set_screen_size): Remove redundant ifdef MINIMALs.
* rldefs.h: Don't do MINIMAL for cygwin32. Cygwin32 now uses
full-blown readline, except for termcap.
Sun Aug 11 21:06:26 1996 Stu Grossman (grossman@critters.cygnus.com)
* rldefs.c: Get rid of define of SIGALRM if _WIN32 or __MSDOS__.
* Don't define ScreenCols/ScreenRows/... if cygwin32.
* sysdep-norm.h: Don't include <malloc.h> if cygwin32.
Sun Aug 11 14:59:09 1996 Fred Fish <fnf@cygnus.com>
* rldefs.h: If __osf__is defined, include <termio.h> instead of
<sgtty.h>.
Fri Aug 9 08:54:26 1996 Stu Grossman (grossman@critters.cygnus.com)
* bind.c complete.c history.c readline.c: Don't include sys/file.h.
* complete.c display.c parens.c readline.c rldefs.h rltty.c
signals.c tilde.c: Change refs to _MSC_VER and __WIN32__ to _WIN32.
* signals.c (rl_signal_handler): Ifdef out kill if _WIN32.
* sysdep-norm.h: Ifdef out include of dirent.h if _WIN32.
Include malloc.h if _WIN32.
Thu Jul 18 15:59:35 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* rldefs.h (sys/uio.h) Before sys/stream.h is included under AIX,
include sys/uio.h, which prevents an undefined structure used in a
prototype message from being generated.
Tue Jun 25 23:05:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
* Makefile.in (datadir): Set to $(prefix)/share.
(docdir): Removed.
Sun May 26 15:14:42 1996 Fred Fish <fnf@cygnus.com>
From: David Mosberger-Tang <davidm@azstarnet.com>
* sysdep-linux.h: New file.
* display.c: Add include of "sysdep.h" to get HAVE_VARARGS_H.
* configure.in: Change pattern i[345]86-*-linux* into *-*-linux* to
support non-x86 based Linux platforms.
Sun Apr 7 22:06:11 1996 Fred Fish <fnf@cygnus.com>
From: Miles Bader <miles@gnu.ai.mit.edu>
* config/mh-gnu: New file.
* configure.in (*-*-gnu*): New host.
Sun Apr 7 13:21:51 1996 Fred Fish <fnf@cygnus.com>
From: Robert Lipe <robertl@dgii.com>
* configure.in: SCO OpenServer 5 (a.k.a 3.2v5*) is more like
SCO 3.2v4 than 3.2v2.
Wed Jan 3 18:22:10 1996 steve chamberlain <sac@slash.cygnus.com>
* readline.c, display.c, complete.c: Add _MSC_VER to list of
things which can't do most things.
Thu Nov 16 15:39:05 1995 Geoffrey Noer <noer@cygnus.com>
* complete.c: Change WIN32 to __WIN32__, added #else return NULL
to end of that define.
Tue Oct 31 10:38:58 1995 steve chamberlain <sac@slash.cygnus.com>
* display.c, parens.c, readline.c, rldefs.h: Change use of
WIN32 to __WIN32__.
Tue Oct 10 11:07:23 1995 Fred Fish <fnf@cygnus.com>
* Makefile.in (BISON): Remove macro.
Tue Oct 10 08:49:00 1995 steve chamberlain <sac@slash.cygnus.com>
* complete.c (filename_completion_function): Enable for
win32 when not MSC.
Sun Oct 8 04:17:19 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* configure.in: Handle powerpc-ibm-aix* like rs6000-ibm-aix*.
Sat Oct 7 20:36:16 1995 Michael Meissner <meissner@cygnus.com>
* rltty.c (outchar): Return an int, like tputs expects.
* signals.c (_rl_output_character_function): Ditto.
Fri Sep 29 15:19:23 1995 steve chamberlain <sac@slash.cygnus.com>
Fixes for when the host WIN32, but not MSC.
* complete.c: Sometimes have pwd.h
* parens.c: WIN32 has similar restrictions to __GO32__.
* readline.c (__GO32__): Some of this moved into rldefs.h
* signals.c (__GO32__): Likewise.
* rldefs.h (MSDOS||WIN32) becomes MSDOS||MSC.
(WIN32&&!WIN32): New definitions.
Wed Sep 20 12:57:17 1995 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (maintainer-clean): New synonym for realclean.
Wed Mar 1 13:33:43 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* rltty.c (outchar): Provide prototype for outchar, to silence
type warnings in passing outchar to tputs on systems like Linux
that have full prototypes.
* signals.c (_rl_output_character_function): Provide prototype to
silence type warnings.
Sun Jan 15 14:10:37 1995 Steve Chamberlain <sac@splat>
* rldefs.h: Define MINIMAL for __GO32__ and WIN32.
* complete.c, display.c, readline.c, rltty.c: Test MINIMAL
instead of __GO32__.
Wed Aug 24 13:04:47 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
* configure.in: Change i[34]86 to i[345]86.
Sat Jul 16 13:26:31 1994 Stan Shebs (shebs@andros.cygnus.com)
* configure.in (m88*-harris-cxux7*): Recognize.
* sysdep-cxux7.h: New file.
Fri Jul 8 13:18:33 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* rttty.c (control_meta_key_on): Remove superfluous testing of
__GO32__.
Thu Jun 30 15:21:54 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* rltty.c (control_meta_key_on): Don't compile if __GO32__ is
defined.
(rltty_set_default_bindings): Likewise.
* display.c (insert_some_chars, delete_chars): row_start should be
a short.
* parens.c (rl_insert_close): No FD_SET if using __GO32__.
* readline.c (rl_gather_tyi): Strip off spurious high bits.
Sun Jun 12 03:51:52 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* history.c: Swap inclusion of rldefs.h and chardefs.h to avoid
CTRL macro redefinition.
Mon May 9 18:29:42 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* readline.c (readline_default_bindings): Don't compile if
__GO32__ is defined.
(_rl_set_screen_size): Likewise.
* rltty.c (rltty_set_default_bindings): Likewise.
(control_meta_key): Likewise.
* display.c: If __GO32__ is defined, include <sys/pc.h>.
* parens.c: If __GO32__ is defined, undefine FD_SET.
* signals.c: Include SIGWINCH handling in the set of things which
is not done if HANDLE_SIGNALS is not set.
Fri May 6 13:38:39 1994 Steve Chamberlain (sac@cygnus.com)
* config/mh-go32: New fragment.
* configure.in (host==go32): Use go32 fragment.
Wed May 4 14:36:53 1994 Stu Grossman (grossman@cygnus.com)
* chardefs.h, rldefs.h: Move decls of string funcs from chardefs.h
to rldefs.h so that they don't pollute apps that include
readline.h.
* history.c: include rldefs.h to get decls of string funcs.
Wed May 4 12:15:11 1994 Stan Shebs (shebs@andros.cygnus.com)
* configure.in (rs6000-bull-bosx*): New configuration, RS/6000
variant.
Wed Apr 20 10:43:52 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* configure.in: Use mh-posix for sunos4.1*.
Wed Apr 13 21:28:44 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
* rltty.c (set_tty_settings): Don't set readline_echoing_p.
(rl_deprep_terminal) [NEW_TTY_DRIVER]: Set readline_echoing_p.
Sun Mar 13 09:13:12 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* Makefile.in: Add TAGS target.
Wed Mar 9 18:01:31 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* isearch.c, search.c: Include sysdep.h.
Thu Mar 3 17:40:03 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
* configure.in: For ISC, use mh-sysv, not mh-isc.
Thu Feb 24 04:13:53 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* Merge in changes from bash-1.13.5. Merge changes from glob/tilde.c
into tilde.c and use it. Add system function declarations where
necessary. Check for __GO32__, not _GO32_ consistently.
* Makefile.in: Update dependencies.
* rltty.c: Include <sys/file.h> to match include file setup
in readline.c for rldefs.h. Otherwise we get inconsistent
TTY_DRIVER definitions in readline.c and rltty.c.
* bind.c, complete.c: Do not include <sys/types.h>, it is already
included via sysdep.h, which causes problems if <sys/types.h> has
no multiple inclusion protection.
* readline.c (_rl_set_screen_size): Reestablish test for
TIOCGWINSZ_BROKEN.
* rldefs.h: Define S_ISREG if necessary.
Fri Feb 18 08:56:35 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* Makefile.in: Add search.o rule for Sun make.
Wed Feb 16 16:35:49 1994 Per Bothner (bothner@kalessin.cygnus.com)
* rltty.c: #if out some code if __GO32__.
Tue Feb 15 14:07:08 1994 Per Bothner (bothner@kalessin.cygnus.com)
* readline.c (_rl_output_character_function), display.c:
Return int, not void, to conform with the expected arg of tputs.
* readline.c (init_terminal_io): tgetflag only takes 1 arg.
* readline.c (_rl_savestring): New function.
* chardefs.h: To avoid conflicts and/or warnings, define
savestring as a macro wrapper for _rl_savestring.
* display.c (extern term_xn): It's an int flag, not a string.
* charsdefs.h, rldefs.h: Remove HAVE_STRING_H-related junk.
Sat Feb 5 08:32:30 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* Makefile.in: Remove obsolete rules for history.info and
readline.info.
Thu Jan 27 17:04:01 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
* chardefs.h: Only declare strrchr if it is not #define'd.
Tue Jan 25 11:30:06 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* rldefs.h: Accept __hpux as well as hpux for HP compiler in ANSI mode.
Fri Jan 21 17:31:26 1994 Jim Kingdon (kingdon@lisa.cygnus.com)
* chardefs.h, tilde.c: Just declare strrchr rather than trying to
include a system header.
Fri Jan 21 14:40:43 1994 Fred Fish (fnf@cygnus.com)
* Makefile.in (distclean, realclean): Expand local-distclean
inline after doing recursion. You can't recurse after removing
Makefile. Make them depend on local-clean.
* Makefile.in (local-distclean): Remove now superfluous target.
Mon Jan 17 12:42:07 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
* readline.c (doing_an_undo): Delete second declaration, since it
confuses the alpha-osf1 native compiler.
Sun Jan 16 12:33:11 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* complete.c, bind.c: Include <sys/stat.h>.
* complete.c: Define X_OK if not defined by a system header.
* chardefs.h: Don't declare xmalloc.
* keymaps.h: Include "chardefs.h" not <readline/chardefs.h>.
* Makefile.in (clean mostlyclean distclean realclean): Recurse
into subdirectories as well as doing this directory. Add clean-dvi
target.
Sat Jan 15 19:36:12 1994 Per Bothner (bothner@kalessin.cygnus.com)
* readline.c, display.c: Patches to allow use of all 80
columns on most terminals (those with am and xn).
Merge in changes from bash-1.13. The most obvious one is
that the file readline.c has been split into multiple files.
* bind.c, complete.c, dispay.c, isearch.c, parens.c, rldefs.h,
rltty.c, search.c signals.c, tilde.c, tilde.h, xmalloc.c: New files.
Sat Dec 11 16:29:17 1993 Steve Chamberlain (sac@thepub.cygnus.com)
* readline.c (rl_getc): If GO32, trim high bit from getkey,
otherwise fancy PC keys cause grief.
Fri Nov 5 11:49:47 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* configure.in: Add doc to configdirs.
* Makefile.in (info dvi install-info clean-info): Recurse into doc.
Fri Oct 22 07:55:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* configure.in: Add * to end of all OS names.
Tue Oct 5 12:33:51 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* readline.c: Add stuff for HIUX to place where we detect termio
vs. sgtty (ugh, but I don't see a simple better way).
Wed Sep 29 11:02:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* readline.c (parser_if): Free tname when done with it (change
imported from from bash 1.12 readline).
Tue Sep 7 17:15:37 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* configure.in (m88k-*-sysvr4*): Comment out previous change.
Fri Jul 2 11:05:34 1993 Ian Lance Taylor (ian@cygnus.com)
* configure.in (*-*-riscos*): New entry; use mh-sysv.
Wed Jun 23 13:00:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* configure.in: Add comment.
Mon Jun 14 14:28:55 1993 Jim Kingdon (kingdon@eric)
* configure.in (m88k-*-sysvr4*): Use sysdep-norm.h.
Sun Jun 13 13:04:09 1993 Jim Kingdon (kingdon@cygnus.com)
* Makefile.in ({real,dist}clean): Remove sysdep.h.
Thu Jun 10 11:22:41 1993 Jim Kingdon (kingdon@cygnus.com)
* Makefile.in: Add mostlyclean, distclean, and realclean targets.
Fri May 21 17:09:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* config/mh-isc: New file.
* configure.in: Use it.
Sat Apr 17 00:40:12 1993 Jim Kingdon (kingdon at calvin)
* readline.c, history.c: Don't include sys/types.h; sysdep.h does.
* config/mh-sysv: Define TIOCGWINSZ_BROKEN.
readline.c: Check it.
Wed Mar 24 02:06:15 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com)
* Makefile.in: add installcheck & dvi targets
Fri Mar 12 18:36:53 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* configure.in: recognize *-*-solaris2* instead of *-*-solaris* (a
number of people want to call SunOS 4.1.2 "solaris1.0"
and get it right)
Tue Mar 2 21:25:36 1993 Fred Fish (fnf@cygnus.com)
* sysdep-sysv4.h: New file for SVR4.
* configure.in (*-*-sysv4*): Use sysdep-sysv4.h.
* configure.in (*-*-ultrix2): Add triplet from Michael Rendell
(michael@mercury.cs.mun.ca)
Tue Dec 15 12:38:16 1992 Ian Lance Taylor (ian@cygnus.com)
* configure.in (i[34]86-*-sco3.2v4*): use mh-sco4.
* config/mh-sco4: New file, like mh-sco but without defining
_POSIX_SOURCE.
Wed Nov 11 21:20:14 1992 John Gilmore (gnu@cygnus.com)
* configure.in: Reformat to one-case-per-line.
Handle SunOS 3.5, as per Karl Berry, <karl@claude.cs.umb.edu>.
Wed Nov 4 15:32:31 1992 Stu Grossman (grossman at cygnus.com)
* sysdep-norm.h: Remove some crud, install dire warning.
Thu Oct 22 01:08:13 1992 Stu Grossman (grossman at cygnus.com)
* configure.in: Make SCO work again...
Mon Oct 12 15:04:07 1992 Ian Lance Taylor (ian@cygnus.com)
* readline.c (init_terminal_io): if tgetent returns 0, the
terminal type is unknown.
Thu Oct 1 23:44:14 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* configure.in: use cpu-vendor-os triple instead of nested cases
Wed Sep 30 12:58:57 1992 Stu Grossman (grossman at cygnus.com)
* readline.c (rl_complete_internal): Cast alloca to (char *) to
avoid warning.
Fri Sep 25 12:45:05 1992 Stu Grossman (grossman at cygnus.com)
* readline.c (clear_to_eol, rl_generic_bind): Make static.
(rl_digit_loop): Add arg to call to rl_message().
* vi_mode.c (rl_vi_first_print): Add arg to call to
rl_back_to_indent().
Wed Aug 19 14:59:07 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in: always create installation directories, use full
file name for install target.
Wed Aug 12 15:50:57 1992 John Gilmore (gnu@cygnus.com)
* readline.c (last_readline_init_file): Fix typo made by Steve
Chamberlain/DJ Delorie. Proper control file name is ~/.inputrc,
not ~/inputrc.
Thu Jun 25 16:15:27 1992 Stu Grossman (grossman at cygnus.com)
* configure.in: Make bsd based systems use sysdep-obsd.h.
Tue Jun 23 23:22:53 1992 Per Bothner (bothner@cygnus.com)
* config/mh-posix: New file, for Posix-compliant systems.
* configure.in: Use mh-posix for Linux (free Unix clone).
Tue Jun 23 21:59:20 1992 Fred Fish (fnf@cygnus.com)
* sysdep-norm.h (alloca): Protect against previous definition as
a macro with arguments.
Fri Jun 19 15:48:54 1992 Stu Grossman (grossman at cygnus.com)
* sysdep-obsd.h: #include <sys/types.h> to make this more Kosher.
Fri Jun 19 12:53:28 1992 John Gilmore (gnu at cygnus.com)
* config/mh-apollo68v, mh-sco, mh-sysv, mh-sysv4}: RANLIB=true.
Mon Jun 15 13:50:34 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* configure.in: use mh-sysv4 on solaris2
Mon Jun 15 12:28:24 1992 Fred Fish (fnf@cygnus.com)
* config/mh-ncr3000 (INSTALL): Don't use /usr/ucb/install,
it is broken on ncr 3000's.
* config/mh-ncr3000 (RANLIB): Use RANLIB=true.
Mon Jun 15 01:35:55 1992 John Gilmore (gnu at cygnus.com)
* readline.c: Make new SIGNALS_* macros to parameterize the
ugly changes in signal blocking. Use them throughout,
reducing #ifdef HAVE_POSIX_SIGNALS and HAVE_BSD_SIGNALS clutter
significantly. Make all such places use POSIX if available,
to avoid losing with poor `sigsetmask' emulation from libiberty.
Sun Jun 14 15:19:51 1992 Stu Grossman (grossman at cygnus.com)
* readline.c (insert_some_chars): Return void.
Thu Jun 11 01:27:45 1992 John Gilmore (gnu at cygnus.com)
* readline.c: #undef PC, which Solaris2 defines in sys/types.h,
clobbering the termcap global variable PC.
Tue Jun 9 17:30:23 1992 Fred Fish (fnf@cygnus.com)
* config/{mh-ncr3000, mh-sysv4}: Change INSTALL to use
/usr/ucb/install.
Mon Jun 8 23:10:07 1992 Fred Fish (fnf@cygnus.com)
* readline.h (rl_completer_quote_characters): Add declaration.
* readline.c (rl_completer_quote_characters): Add global var.
* readline.c (strpbrk): Add prototype and function.
* readline.c (rl_complete_internal): Add code to handle
expansion of quoted strings.
Mon May 11 12:39:30 1992 John Gilmore (gnu at cygnus.com)
* readline.c: Can't initialize FILE *'s with stdin and stdout,
because they might not be constant. Patch from Tom Quinn,
trq@dinoysos.thphys.ox.ac.uk.
Tue Apr 28 21:52:34 1992 John Gilmore (gnu at cygnus.com)
* readline.h: Declare rl_event_hook (which already existed).
Suggested by Christoph Tietz <tietz@zi.gmd.dbp.de>.
Wed Apr 22 18:08:01 1992 K. Richard Pixley (rich@rtl.cygnus.com)
* configure.in: remove subdirs declaration. The obsolete semantic
for subdirs has been usurped by per's new meaning.
Tue Apr 21 11:54:23 1992 K. Richard Pixley (rich@cygnus.com)
* Makefile.in: rework CFLAGS so that they can be set on the
command line to make. Remove MINUS_G. Default CFLAGS to -g.
Fri Apr 10 23:02:27 1992 Fred Fish (fnf@cygnus.com)
* configure.in: Recognize new ncr3000 config.
* config/mh-ncr3000: New NCR 3000 config file.
Wed Mar 25 10:46:30 1992 John Gilmore (gnu at cygnus.com)
* history.c (stifle_history): Negative arg treated as zero.
Tue Mar 24 23:46:20 1992 K. Richard Pixley (rich@cygnus.com)
* config/mh-sysv: INSTALL_PROG -> INSTALL.
Mon Feb 10 01:41:35 1992 Brian Fox (bfox at gnuwest.fsf.org)
* history.c (history_do_write) Build a buffer of all of the lines
to write and write them in one fell swoop (lower overhead than
calling write () for each line). Suggested by Peter Ho.
* vi_mode.c (rl_vi_subst) Don't forget to end the undo group.
Sat Mar 7 00:15:36 1992 K. Richard Pixley (rich@rtl.cygnus.com)
* Makefile.in: remove FIXME's on info and install-info targets.
Fri Mar 6 22:02:04 1992 K. Richard Pixley (rich@cygnus.com)
* Makefile.in: added check target.
Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
* Makefile.in, configure.in: removed traces of namesubdir,
-subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
copyrights to '92, changed some from Cygnus to FSF.
Fri Feb 21 14:37:32 1992 Steve Chamberlain (sac at rtl.cygnus.com)
* readline.c, examples/fileman.c: patches from DJ to support DOS
Thu Feb 20 23:23:16 1992 Stu Grossman (grossman at cygnus.com)
* readline.c (rl_read_init_file): Make sure that null filename is
not passed to open() or else we end up opening the directory, and
read a bunch of garbage into keymap[].
Mon Feb 17 17:15:09 1992 Fred Fish (fnf at cygnus.com)
* readline.c (readline_default_bindings): Only make use of VLNEXT
when both VLNEXT and TERMIOS_TTY_DRIVER is defined. On SVR4
<termio.h> includes <termios.h>, so VLNEXT is always defined.
* sysdep-norm.h (_POSIX_VERSION): Define this for all SVR4
systems so that <termios.h> gets used, instead of <termio.h>.
Fri Dec 20 12:04:31 1991 Fred Fish (fnf at cygnus.com)
* configure.in: Change svr4 references to sysv4.
Tue Dec 10 04:07:20 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* Makefile.in: infodir belongs in datadir.
Fri Dec 6 23:23:14 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* Makefile.in: remove spaces following hyphens, bsd make can't
cope. added clean-info. added standards.text support. Don't
know how to make info anymore.
* configure.in: commontargets is no longer a recognized hook, so
remove it. new subdir called doc.
Thu Dec 5 22:46:10 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* Makefile.in: idestdir and ddestdir go away. Added copyrights
and shift gpl to v2. Added ChangeLog if it didn't exist. docdir
and mandir now keyed off datadir by default.
Fri Nov 22 09:02:32 1991 John Gilmore (gnu at cygnus.com)
* sysdep-obsd.h: Rename from sysdep-newsos.h.
* configure.in: Use sysdep-obsd for Mach as well as NEWs.
* sysdep-norm.h, sysdep-aix.h: Add <sys/types.h>, which POSIX
requires to make <dirent.h> work. Improve Sun alloca decl.
Thu Nov 21 18:48:08 1991 John Gilmore (gnu at cygnus.com)
* Makefile.in: Clean up ../glob/tilde.c -> tilde.o path.
Clean up makefile a bit in general.
Thu Nov 21 14:40:29 1991 Stu Grossman (grossman at cygnus.com)
* configure.in, config/mh-svr4: Make SVR4 work.
* readline.c: Move config stuff to sysdep.h, use typedef dirent
consistently, remove refs to d_namlen (& D_NAMLEN) to improve
portability. Also, update copyright notice.
readline.h: remove config stuff that I added erroneously in the
first place.
* emacs_keymap.c, funmap.c, history.c, keymaps.c, vi_keymap.c,
vi_mode.c: move config stuff to sysdep.h, update copyright notices.
Tue Nov 19 15:02:13 1991 Stu Grossman (grossman at cygnus.com)
* history.c: #include "sysdep.h".
Tue Nov 19 10:49:17 1991 Fred Fish (fnf at cygnus.com)
* Makefile.in, config/hm-sysv, config/hm-sco: Change SYSV to
USG to match current usage.
* readline.c: Add USGr4 to list of defined things to check for
to use <dirent.h> style directory access.
* config/hm-svr4: New file for System V Release 4 (USGr4).
Mon Nov 18 23:59:52 1991 Stu Grossman (grossman at cygnus.com)
* readline.c (filename_completion_function): use struct dirent
instead of struct direct.
Fri Nov 1 07:02:13 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c (rl_translate_keyseq) Make C-? translate to RUBOUT
unconditionally.
Mon Oct 28 11:34:52 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c; Use Posix directory routines and macros.
* funmap.c; Add entry for call-last-kbd-macro.
* readline.c (rl_prep_term); Use system EOF character on POSIX
systems also.
Thu Oct 3 16:19:53 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c; Make a distinction between having a TERMIOS tty
driver, and having POSIX signal handling. You might one without
the other. New defines used HAVE_POSIX_SIGNALS, and
TERMIOS_TTY_DRIVER.
Tue Jul 30 22:37:26 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: rl_getc () If a call to read () returns without an
error, but with zero characters, the file is empty, so return EOF.
Thu Jul 11 20:58:38 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: (rl_get_next_history, rl_get_previous_history)
Reallocate the buffer space if the line being moved to is longer
the the current space allocated. Amazing that no one has found
this bug until now.
Sun Jul 7 02:37:05 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c:(rl_parse_and_bind) Allow leading whitespace.
Make sure TERMIO and TERMIOS systems treat CR and NL
disctinctly.
Tue Jun 25 04:09:27 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: Rework parsing conditionals to pay attention to the
prior states of the conditional stack. This makes $if statements
work correctly.
Mon Jun 24 20:45:59 1991 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: support for displaying key binding information
includes the functions rl_list_funmap_names (),
invoking_keyseqs_in_map (), rl_invoking_keyseqs (),
rl_dump_functions (), and rl_function_dumper ().
funmap.c: support for same includes rl_funmap_names ().
readline.c, funmap.c: no longer define STATIC_MALLOC. However,
update both version of xrealloc () to handle a null pointer.
Thu Apr 25 12:03:49 1991 Brian Fox (bfox at gnuwest.fsf.org)
* vi_mode.c (rl_vi_fword, fWord, etc. All functions use
the macro `isident()'. Fixed movement bug which prevents
continious movement through the text.
Fri Jul 27 16:47:01 1990 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c (parser_if) Allow "$if term=foo" construct.
Wed May 23 16:10:33 1990 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c (rl_dispatch) Correctly remember the last command
executed. Fixed typo in username_completion_function ().
Mon Apr 9 19:55:48 1990 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: username_completion_function (); For text passed in
with a leading `~', remember that this could be a filename (after
it is completed).
Thu Apr 5 13:44:24 1990 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: rl_search_history (): Correctly handle case of an
unfound search string, but a graceful exit (as with ESC).
* readline.c: rl_restart_output (); The Apollo passes the address
of the file descriptor to TIOCSTART, not the descriptor itself.
Tue Mar 20 05:38:55 1990 Brian Fox (bfox at gnuwest.fsf.org)
* readline.c: rl_complete (); second call in a row causes possible
completions to be listed.
* readline.c: rl_redisplay (), added prompt_this_line variable
which is the first character character following \n in prompt.
Sun Mar 11 04:32:03 1990 Brian Fox (bfox at gnuwest.fsf.org)
* Signals are now supposedly handled inside of SYSV compilation.
Wed Jan 17 19:24:09 1990 Brian Fox (bfox at sbphy.ucsb.edu)
* history.c: history_expand (); fixed overwriting memory error,
added needed argument to call to get_history_event ().
Thu Jan 11 10:54:04 1990 Brian Fox (bfox at sbphy.ucsb.edu)
* readline.c: added mark_modified_lines to control the
display of an asterisk on modified history lines. Also
added a user variable called mark-modified-lines to the
`set' command.
Thu Jan 4 10:38:05 1990 Brian Fox (bfox at sbphy.ucsb.edu)
* readline.c: start_insert (). Only use IC if we don't have an im
capability.
Fri Sep 8 09:00:45 1989 Brian Fox (bfox at aurel)
* readline.c: rl_prep_terminal (). Only turn on 8th bit
as meta-bit iff the terminal is not using parity.
Sun Sep 3 08:57:40 1989 Brian Fox (bfox at aurel)
* readline.c: start_insert (). Uses multiple
insertion call in cases where that makes sense.
rl_insert (). Read type-ahead buffer for additional
keys that are bound to rl_insert, and insert them
all at once. Make insertion of single keys given
with an argument much more efficient.
Tue Aug 8 18:13:57 1989 Brian Fox (bfox at aurel)
* readline.c: Changed handling of EOF. readline () returns
(char *)EOF or consed string. The EOF character is read from the
tty, or if the tty doesn't have one, defaults to C-d.
* readline.c: Added support for event driven programs.
rl_event_hook is the address of a function you want called
while Readline is waiting for input.
* readline.c: Cleanup time. Functions without type declarations
do not use return with a value.
* history.c: history_expand () has new variable which is the
characters to ignore immediately following history_expansion_char.
Sun Jul 16 08:14:00 1989 Brian Fox (bfox at aurel)
* rl_prep_terminal ()
BSD version turns off C-s, C-q, C-y, C-v.
* readline.c -- rl_prep_terminal ()
SYSV version hacks readline_echoing_p.
BSD version turns on passing of the 8th bit for the duration
of reading the line.
Tue Jul 11 06:25:01 1989 Brian Fox (bfox at aurel)
* readline.c: new variable rl_tilde_expander.
If non-null, this contains the address of a function to call if
the standard meaning for expanding a tilde fails. The function is
called with the text sans tilde (as in "foo"), and returns a
malloc()'ed string which is the expansion, or a NULL pointer if
there is no expansion.
* readline.h - new file chardefs.h
Separates things that only readline.c needs from the standard
header file publishing interesting things about readline.
* readline.c:
readline_default_bindings () now looks at terminal chararacters
and binds those as well.
Wed Jun 28 20:20:51 1989 Brian Fox (bfox at aurel)
* Made readline and history into independent libraries.

View File

@@ -53,9 +53,6 @@ Wed Mar 31 18:55:41 1999 Doug Evans <devans@canuck.cygnus.com>
1999-02-09 Doug Evans <devans@casey.cygnus.com>
* Make-common.in (CGEN_READ_SCM): Renamed from CGEN_MAIN_SCM.
(CGEN_DESC_SCM): New variable.
(cgen-desc): New rule.
* cgen-cpu.h (CGEN_DISASSEMBLER): New type.
(CGEN_CPU): Member opcode renamed to cpu_desc.
New members get_idata,disassembler.
@@ -162,8 +159,6 @@ Wed Jan 27 17:19:09 1999 Doug Evans <devans@canuck.cygnus.com>
1999-01-05 Doug Evans <devans@casey.cygnus.com>
* Make-common.in (CGEN_INCLUDE_DEPS): Add cgen-defs.h, cgen-engine.h.
(CGEN_MAIN_SCM): Add rtx-funcs.scm.
(cgen-arch): Pass $(mach) to cgen.sh.
* cgen-engine.h (SEM_BRANCH_FINI): New arg pcvar, all uses updated.
(SEM_BRANCH_INIT_EXTRACT): New macro.
(SEM_BRANCH_INIT): Add taken_p.
@@ -333,7 +328,6 @@ Mon Nov 23 13:28:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
1998-11-18 Doug Evans <devans@casey.cygnus.com>
* Make-common.in (cgen-utils.o): Depend on cgen-engine.h.
(CGEN_ARCH_SCM): New variable.
* cgen-engine.h (EXTRACT_[ML]SB0_{INT,UINT}): New macros.
(EXTRACT_INT,EXTRACT_UINT): New macros.
(SEM_SEM_ARG): New macro.
@@ -342,7 +336,7 @@ Mon Nov 23 13:28:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
(sim_disassemble_insn): Update prototype.
* cgen-trace.c (current_insn,insn_fields): New static locals.
(trace_insn): Set them.
* cgen-utils.scm: #include cgen-engine.h.
* cgen-utils.c: #include cgen-engine.h.
(sim_disassemble_insn): New arg insn_fields.
Handle variable length insns.
* genmloop.sh: Only emit pbb decls if -pbb.
@@ -538,15 +532,6 @@ Thu Jul 2 17:13:25 1998 Doug Evans <devans@seba.cygnus.com>
Wed Jul 1 16:44:12 1998 Doug Evans <devans@seba.cygnus.com>
* Make-common.in (SCHEME,SCHEMEFLAGS): Delete.
(CGENDIR,CGEN): New variables.
(CGEN_VERBOSE): Renamed to CGENFLAGS.
(cgen-arch,cgen-cpu,cgen-decode): Update.
(CGEN_CPU_WRITE): New variable.
(CGEN_CPU_SEMSW): -W -> -X.
(CGEN_FLAGS_TO_PASS): Delete SCHEME. Add CGEN,CGENFLAGS.
* cgen.sh: Delete args scheme,schemeflags. New arg cgen.
* cgen-sim.h (RECORD_IADDR): Delete.
* cgen-types.h (HOSTINT,HOSTUINT,HOSTPTR): New types.
* genmloop.sh (engine_resume_{full,fast}): Delete icount.
@@ -793,8 +778,6 @@ Wed May 6 16:04:18 1998 Doug Evans <devans@seba.cygnus.com>
(cgen_cpu_max_extra_bytes): Declare.
* cgen-utils.c (cgen_cpu_max_extra_bytes): New function.
* cgen.sh: s/@arch@/${arch}/ for cpu files.
* sim-cpu.h: New file. sim_cpu_base moved here.
Move sim_cpu_lookup decl here.
* sim-base.h: #include "sim-cpu.h".
@@ -1551,14 +1534,12 @@ Tue Feb 17 16:27:46 1998 Andrew Cagney <cagney@b1.cygnus.com>
Tue Feb 17 17:27:30 1998 Doug Evans <devans@seba.cygnus.com>
* Make-common.in (CGEN_MAIN_SCM): Update.
* aclocal.m4 (USE_MAINTAINER_MODE): New variable.
* cgen-sim.h (SEMANTIC_CACHE_FN): Delete.
(SEMANTIC_FN): Rewrite declaration.
(DECODE): Update type of semantic_fast member.
({EX,SEM}_FN_NAME): Have only one version.
* cgen.sh: Support building cpu.c.
* sim-base.h (sim_state_base): Delete conditionals surrounding
member scache_size.
@@ -1578,7 +1559,6 @@ Mon Feb 9 14:48:37 1998 Doug Evans <devans@canuck.cygnus.com>
* cgen-sim.h (DECODE): Always use switch for `read' for now.
(PAREXEC): Renamed from PARALLEL_EXEC. All uses updated.
(SEMANTIC{,_CACHE}_FN): Fix return type.
* cgen.sh (decode): Add s/@arch@/$arch/.
* genmloop.sh (@cpu@_engine_run): Delete `current_state'.
(engine_resume): Likewise. Make `engine' volatile. Save copy
of cpu pointer in volatile object. Initialize read switch if
@@ -1648,10 +1628,6 @@ Fri Jan 30 09:36:33 1998 Andrew Cagney <cagney@b1.cygnus.com>
MAX_NR_PROCESSORS.
(sim_engine_nr_cpus) sim-engine.c, sim-engine.h: New function
Thu Jan 29 12:13:01 1998 Doug Evans <devans@canuck.cygnus.com>
* cgen.sh: Portably read parms past $9.
Fri Jan 23 14:20:54 1998 Doug Evans <devans@seba.cygnus.com>
* Make-common.in (stamp-tvals): New rule.
@@ -1672,7 +1648,6 @@ Mon Jan 19 12:45:45 1998 Doug Evans <devans@seba.cygnus.com>
* cgen-scache.h: Deleted.
* Make-common.in (cgen-run.o,cgen-scache.o): Delete cgen-scache.h dep.
(CGEN_CPU_SCM): Add sim-model.scm.
* cgen-scache.c: Only compile contents if WITH_SCACHE.
(scache_init): Use runtime computed size of SCACHE.
(scache_flush): Likewise.

View File

@@ -64,4 +64,3 @@ $shell ${srccom}/gentvals.sh $target sys ${srcroot}/$dir \
dir=libgloss/v850/sys target=v850
$shell ${srccom}/gentvals.sh $target sys ${srcroot}/$dir \
"syscall.h" 'SYS_[_A-Za-z0-9]*' "${cpp}"

View File

@@ -1883,8 +1883,7 @@ build_insn_table (cd)
cd->insn_table.num_init_entries = MAX_INSNS;
}
/* Subroutine of i960_cgen_cpu_open to rebuild the tables.
This is also called by cgen_set_cpu (via an entry in CD). */
/* Subroutine of i960_cgen_cpu_open to rebuild the tables. */
static void
i960_cgen_rebuild_tables (cd)

View File

@@ -1,3 +1,8 @@
1999-04-29 Nick Clifton <nickc@cygnus.com>
* interp.c (set_initial_gprs): Only display memory range if
verbose option has been set.
1999-04-22 Nick Clifton <nickc@cygnus.com>
* interp.c: Add tracing and verbose options.

View File

@@ -405,7 +405,7 @@ set_initial_gprs ()
memsize = cpu.asregs.msize / (1024 * 1024);
if (issue_messages)
if (issue_messages > 1)
fprintf (stderr, "Simulated memory of %d Mbytes (0x0 .. 0x%08x)\n",
memsize, cpu.asregs.msize - 1);
@@ -2107,7 +2107,7 @@ sim_do_command (sd, cmd)
}
else if (strcmp (simargv[0], "verbose") == 0)
{
issue_messages = 1;
issue_messages = 2;
}
else
{