Re: RFA: minor watchpoint code cleanup

Eli Zaretskii
2000-03-19T01:45:00Z

> This is just a cosmetic change. Let me know.
>
> 2000-03-17 Jim Blandy <jimb@redhat.com>
>
> * i386v-nat.c (i386_insert_nonaligned_watchpoint): Use a
> two-dimensional array, instead of faking it with explicit index
> arithmetic.

While we are talking: someone (H.J. Lu?) suggested to make the
watchpoint insertion code common to all x86 targets. What's the
current say-so on this?

It seems like a good idea to me. In particular, i386v-nat.c could use
some of the trickery, bug-fixes and features from go32-nat.c ;-).
For example, note that the function which removes non-aligned
watchpoints, doesn't go through the same routine as the insert
function does (does that mean that nobody has ever tried to use non-
aligned watchpoints on SysV?).

(And go32-nat.c should probably get the same change as you did above.)
From eliz@delorie.com Sun Mar 19 01:46:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: jimb@zwingli.cygnus.com
Cc: john@feith.com, gdb-patches@sourceware.cygnus.com
Subject: Re: GDB 4.17 Patch for stack aligned i386 code
Date: Sun, 19 Mar 2000 01:46:00 -0000
Message-id: <200003190946.EAA07460@indy.delorie.com>
References: <200003062256.RAA10752@jwlab.FEITH.COM> <npk8j187fh.fsf@zwingli.cygnus.com>
X-SW-Source: 2000-03/msg00340.html
Content-length: 1112

> > >> Just curious what the status is of my patch for debugging
> > >> frame pointerless i386 code. Last we "spoke" (on March 9)
> > >> Jim B was going to look at it. Is it still in the queue?
> > >> Are there any issues with it that I need to address?
> > >
> > > Yes, I'm still on the spot for this. It's definitely on my queue, and
> > > towards the top.
> > >
> > > I won't reject it without letting you know why. :)
> >
> > Figured since it's been a few months it was safe to ping you
> > again regarding the status of this patch. :-)
>
> Sorry --- I still haven't had a chance to look at it. Since we have
> more maintainers now, it's more likely the cycles will arise, so I'll
> re-post the patch here.

Is it possible to tell a bit more about the problem, and how is it
solved? Perhaps even a short test case, before and after the change?

Also, do the original problems affect Solaris alone, or are they
common to all gcc/x86-based architectures?

It's quite difficult to judge a large patch for two different problems
without having a more-or-less clear notion of the issues involved.

Thanks.
From eliz@delorie.com Sun Mar 19 04:10:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: gdb-patches@sourceware.cygnus.com
Subject: [PATCH] Shut up compiler warnings in ser-go32.c
Date: Sun, 19 Mar 2000 04:10:00 -0000
Message-id: <200003191210.HAA08353@indy.delorie.com>
X-SW-Source: 2000-03/msg00341.html
Content-length: 901

I committed today the following patch:

2000-03-17 Eli Zaretskii <eliz@is.elta.co.il>

* ser-go32.c (ports): Make the initializers complete, to pacify
GCC 2.9X.

--- gdb/ser-go32.c~2 Tue Mar 14 22:12:12 2000
+++ gdb/ser-go32.c Sat Mar 18 15:23:12 2000
@@ -214,19 +214,19 @@ static struct dos_ttystate
ports[4] =
{
{
- COM1ADDR, 4
+ COM1ADDR, 4, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0
}
,
{
- COM2ADDR, 3
+ COM2ADDR, 3, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0
}
,
{
- COM3ADDR, 4
+ COM3ADDR, 4, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0
}
,
{
- COM4ADDR, 3
+ COM4ADDR, 3, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0
}
};

@@ -879,6 +879,7 @@ static struct serial_ops dos_ops =
dos_setbaudrate,
dos_setstopbits,
dos_noop, /* wait for output to drain */
+ (void (*)(serial_t, int))NULL /* change into async mode */
};

From eliz@delorie.com Sun Mar 19 04:15:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: gdb-patches@sourceware.cygnus.com
Subject: [PATCH] "make install" in mmalloc to work on MS-DOS
Date: Sun, 19 Mar 2000 04:15:00 -0000
Message-id: <200003191215.HAA08359@indy.delorie.com>
X-SW-Source: 2000-03/msg00342.html
Content-length: 802

The following patch is required so that "make install" would work on
filesystems where libmmalloc.a.n is not a valid file name.

Okay to commit?

2000-03-17 Eli Zaretskii <eliz@is.elta.co.il>

* Makefile.in (install): Append "n", not ".n" to libmmalloc.a,
since the latter loses on DOS 8+3 filesystems.

--- mmalloc/Makefile.i~0 Fri Apr 16 03:55:28 1999
+++ mmalloc/Makefile.in Fri Mar 17 14:32:50 2000
@@ -121,9 +121,9 @@
# ./a.out

install: all
- $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB).n
- $(RANLIB) $(libdir)/$(TARGETLIB).n
- mv -f $(libdir)/$(TARGETLIB).n $(libdir)/$(TARGETLIB)
+ $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB)n
+ $(RANLIB) $(libdir)/$(TARGETLIB)n
+ mv -f $(libdir)/$(TARGETLIB)n $(libdir)/$(TARGETLIB)

$(TARGETLIB): $(TARGETOBJS)
$(RM) -rf $@
From eliz@delorie.com Sun Mar 19 04:19:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: gdb-patches@sourceware.cygnus.com
Subject: [PATCH] "OVERLAY ON" does not exist.
Date: Sun, 19 Mar 2000 04:19:00 -0000
Message-id: <200003191218.HAA08362@indy.delorie.com>
X-SW-Source: 2000-03/msg00343.html
Content-length: 982

Caught this small glitch while running the test suite.

Okay to commit?

2000-03-16 Eli Zaretskii <eliz@is.elta.co.il>

* symfile.c (map_overlay_command, unmap_overlay_command): Fix
error message: there's no "overlay on" command.

--- gdb/symfile.c~0 Thu Feb 3 06:35:14 2000
+++ gdb/symfile.c Thu Mar 16 22:57:26 2000
@@ -2912,7 +2912,7 @@
asection *bfdsec;

if (!overlay_debugging)
- error ("Overlay debugging not enabled. Use the 'OVERLAY ON' command.");
+ error ("Overlay debugging not enabled. Use the 'OVERLAY AUTO' command.");

if (args == 0 || *args == 0)
error ("Argument required: name of an overlay section");
@@ -2962,7 +2962,7 @@
struct obj_section *sec;

if (!overlay_debugging)
- error ("Overlay debugging not enabled. Use the 'OVERLAY ON' command.");
+ error ("Overlay debugging not enabled. Use the 'OVERLAY AUTO' command.");

if (args == 0 || *args == 0)
error ("Argument required: name of an overlay section");
From eliz@delorie.com Sun Mar 19 04:25:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: gdb-patches@sourceware.cygnus.com
Subject: [PATCH] Support for building with DJGPP
Date: Sun, 19 Mar 2000 04:25:00 -0000
Message-id: <200003191224.HAA08367@indy.delorie.com>
X-SW-Source: 2000-03/msg00344.html
Content-length: 26903

I committed today the following patches which allow to build GDB with
DJGPP tools.

2000-03-17 Eli Zaretskii <eliz@is.elta.co.il>

* config/djgpp/djconfig.sh: New file.
* config/djgpp/config.sed: New file.
* config/djgpp/README: New file.
* config/djgpp/fnchange.lst: New file.
* config/djgpp/djcheck.sh: New file.

--- /dev/null Fri Mar 17 19:01:45 2000
+++ gdb/config/djgpp/djconfig.sh Fri Mar 17 11:54:06 2000
@@ -0,0 +1,127 @@
+#!/bin/sh
+#
+# This shell script is a wrapper to the main configure script when
+# configuring GDB for DJGPP. 99% of it can also be used when
+# configuring other GNU programs for DJGPP.
+#
+# Originally written by Robert Hoehne, revised by Eli Zaretskii.
+#
+# Call it like the main configure script with one exception. If you
+# want to pass parameters to configure, you have to pass as the first
+# argument the srcdir, even when it is `.' !!!!!
+
+# Where are the sources? If you are used to having the sources
+# in a separate directory and the objects in another, then set
+# here the full path to the source directory and run this script
+# in the directory where you want to build gdb!!
+# You might give the source directory on commandline, but use
+# then only forward slashes (/) in the directories. It should be
+# an absolute path.
+
+if [ x$1 = x ]; then
+ srcdir=`pwd`
+else
+ srcdir=`cd $1 && pwd`
+ shift
+fi
+
+# Make sure they don't have some file names mangled by untarring.
+echo -n "Checking the unpacked distribution..."
+if ( ! test -f ${srcdir}/intl/po2tblsed.in || \
+ ! test -d ${srcdir}/gdb/testsuite/gdb.cxx || \
+ ! test -f ${srcdir}/readline/config.h-in ) ; then
+ echo " FAILED."
+ echo ""
+ echo "You MUST unpack the sources with the DJTAR command, like this:"
+ echo ""
+ echo " djtar -x -n fnchange.lst gdb-X.YZ.tar.gz"
+ echo ""
+ echo "where X.YZ is the GDB version, and fnchange.lst can be found"
+ echo "in the gdb/config/djgpp/ directory in the GDB distribution."
+ echo "configure FAILED!"
+ exit 1
+else
+ echo " ok."
+fi
+
+# Where is the directory with DJGPP-specific scripts?
+DJGPPDIR=${srcdir}/gdb/config/djgpp
+
+echo "Editing configure scripts for DJGPP..."
+TMPFILE="${TMPDIR-.}/cfg.tmp"
+
+# We need to skip the build directory if it is a subdirectory of $srcdir,
+# otherwise we will have an infinite recursion on our hands...
+if test "`pwd`" == "${srcdir}" ; then
+ SKIPDIR=""
+ SKIPFILES=""
+else
+ SKIPDIR=`pwd | sed -e "s|${srcdir}|.|"`
+ SKIPFILES="${SKIPDIR}/*"
+fi
+for fix_dir in \
+ `cd $srcdir && find . -type d ! -ipath "${SKIPDIR}" ! -ipath "${SKIPFILES}"`
+do
+ if test ! -f ${fix_dir}/configure.orig ; then
+ if test -f ${srcdir}/${fix_dir}/configure ; then
+ mkdir -p ${fix_dir}
+ cp -p ${srcdir}/${fix_dir}/configure ${fix_dir}/configure.orig
+ fi
+ fi
+ if test -f ${fix_dir}/configure.orig ; then
+ sed -f ${DJGPPDIR}/config.sed ${fix_dir}/configure.orig > $TMPFILE
+ update $TMPFILE ${fix_dir}/configure
+ touch ./${fix_dir}/configure -r ${fix_dir}/configure.orig
+ rm -f $TMPFILE
+ fi
+ if test -f ${fix_dir}/INSTALL ; then
+ mv ${fix_dir}/INSTALL ${fix_dir}/INSTALL.txt
+ fi
+done
+
+# Now set the config shell. It is really needed, that the shell
+# points to a shell with full path and also it must conatain the
+# .exe suffix. I assume here, that bash is installed. If not,
+# install it. Additionally, the pathname must not contain a
+# drive letter, so use the /dev/x/foo format supported by versions
+# of Bash 2.03 and later, and by all DJGPP programs compiled with
+# v2.03 (or later) library.
+export CONFIG_SHELL=/dev/env/DJDIR/bin/sh.exe
+
+# force to have the ltmain.sh script to be in DOS text format,
+# otherwise the resulting ltconfig script will have mixed
+# (UNIX/DOS) format and is unusable with Bash ports before v2.03.
+utod $srcdir/ltmain.sh
+
+# Give the configure script some hints:
+export LD=ld
+export CC=gcc
+export RANLIB=ranlib
+export DEFAULT_YACC="bison -y"
+export YACC="bison -y"
+export DEFAULT_LEX=flex
+# Define explicitly the .exe extension because on W95 with LFN=y
+# the check might fail
+export am_cv_exeext=.exe
+
+# The configure script needs to see the `install-sh' script, otherwise
+# it decides the source installation is broken. But "make install" will
+# fail on 8+3 filesystems if it finds a file `install-', since there
+# are numerous "install-foo" targets in Makefile's. So we rename the
+# offending file after the configure step is done.
+if test ! -f ${srcdir}/install-sh ; then
+ if test -f ${srcdir}/install-.sh ; then
+ mv ${srcdir}/install-.sh ${srcdir}/install-sh
+ fi
+fi
+
+# Now run the configure script while disabling some things like the NLS
+# support, which is nearly impossible to be supported in the current way,
+# since it relies on file names which will never work on DOS.
+echo "Running the configure script..."
+$srcdir/configure --srcdir="$srcdir" --prefix='${DJDIR}' \
+ --disable-shared --disable-nls --verbose $*
+
+if test -f ${srcdir}/install- ; then
+ mv ${srcdir}/install- ${srcdir}/install-.sh
+fi
--- /dev/null Fri Mar 17 19:02:11 2000
+++ gdb/config/djgpp/config.sed Fri Mar 17 17:19:26 2000
@@ -0,0 +1,30 @@
+s|po2tbl\.sed\.in|po2tblsed.in|g
+s|gdb\.c++|gdb.cxx|g
+/ac_rel_source/s|ln -s|cp -p|
+s|\.gdbinit|gdb.ini|g
+
+/ac_given_INSTALL=/,/^CEOF/ {
+ /^s%@prefix@%/a\
+ s,\\([yp*]\\)\\.tab,\\1_tab,g\
+ /^ @rm -f/s,\\$@-\\[0-9\\]\\[0-9\\],&$*.i[1-9] $*[1-9][0-9],\
+ s,\\.info\\*,.inf* *.i[1-9] *.i[1-9][0-9],\
+ s,\\.gdbinit,gdb.ini,g\
+ /TEXINPUTS=/s,:,';',g\
+ /VPATH *=/s,:,;,g\
+ /\\$\\$file-\\[0-9\\]/s,echo,& *.i[1-9] *.i[1-9][0-9],\
+ s,config\\.h\\.in,config.h-in,g\
+ s,po2tbl\\.sed\\.in,po2tblsed.in,g
+}
+
+/^CONFIG_FILES=/,/^EOF/ {
+ s|po/Makefile.in\([^-:]\)|po/Makefile.in:po/Makefile.in-in\1|
+}
+
+/^ *CONFIG_HEADERS=/,/^EOF/ {
+ s|config.h\([^-:]\)|config.h:config.h-in\1|
+}
+
+/^[ ]*\/\*)/s,/\*,/*|[A-z]:/*,
+/\$]\*) INSTALL=/s,\[/\$\]\*,&|[A-z]:/*,
+/\$]\*) ac_rel_source=/s,\[/\$\]\*,&|[A-z]:/*,
+/ac_file_inputs=/s,\( -e "s%\^%\$ac_given_srcdir/%"\)\( -e "s%:% $ac_given_srcdir/%g"\),\2\1,
--- /dev/null Fri Mar 17 20:41:18 2000
+++ gdb/config/djgpp/README Fri Mar 17 20:40:54 2000
@@ -0,0 +1,172 @@
+
+ How to build and install the DJGPP native version of GDB
+ ********************************************************
+
+General
+=======
+
+GDB built with DJGPP supports native DJGPP debugging, whereby you run
+gdb.exe and the program being debugged on the same machine. In
+addition, this version supports remote debugging via a serial port,
+provided that the target machine has a GDB-compatible debugging stub
+which can be linked with the target program (see the section "Remote
+Serial" in the GDB manual for more details).
+
+
+Installation of the binary distribution
+=======================================
+
+Simply unzip the gdbNNNb.zip file (where NNN is the version number)
+from the top DJGPP installation directory. Be sure to preserve the
+directory structure while you unzip (use -d switch if you do this with
+PKUNZIP). On Windows 9X and Windows 2000, use an unzip program which
+supports long file names; one such program is unzip32.exe, available
+from the DJGPP sites.
+
+If you need the libraries which are built as part of GDB, install the
+companion file gdbNNNa.zip. This allows to develop applications which
+use the same functions as GDB. For example, you can build your own
+front end to the debugger.
+
+
+Rebuilding GDB from sources
+===========================
+
+1. Prerequisites
+ -------------
+To build the package, you will need the DJGPP development environment
+(GCC, header files, and the libraries), and also DJGPP ports of the
+following tools:
+
+ - GNU Make 3.78.1 or later
+ - Bash 2.03 or later
+ - GNU Sed
+ - GNU Fileutils
+ - GNU Textutils 2.0 or later
+ - GNU Sh-utils
+ - GNU Grep 2.4 or later
+ - GNU Findutils
+ - GNU Awk 3.04 or later
+ - GNU Bison (only if you change one of the gdb/*.y files)
+ - Groff (only if you need to format the man pages)
+ - GNU Diffutils (only if you run the test suite)
+
+These programs should be available from the DJGPP sites, in the v2gnu
+directory. In addition, the configuration script invokes the `update'
+and `utod' utilities which are part of the basic DJGPP development kit
+(djdevNNN.zip).
+
+
+2. Unpacking the sources
+ ---------------------
+If you download the source distribution from one of the DJGPP sites,
+just unzip it while preserving the directory structure (I suggest to
+use unzip32.exe available with the rest of DJGPP), and proceed to the
+section "How to build" below.
+
+Source distributions downloaded from one of the GNU FTP sites need
+some more work to unpack. First, you MUST use the `djtar' program to
+unzip the package. That's because some file names in the official
+distributions need to be changed to avoid problems on the various
+platforms supported by DJGPP. `djtar' can rename files on the fly
+given a file with name mappings; the distribution includes a file
+`gdb/config/djgpp/fnchange.lst' with the necessary mappings. So you
+need first to retrieve that file, and then invoke `djtar' to unpack
+the distribution. Here's how:
+
+
+ djtar -x -p -o gdb-5.0/gdb/config/djgpp/fnchange.lst gdb-5.0.tar.gz > lst
+ djtar -x -n lst gdb-5.0.tar.gz
+
+(The name of the distribution archive and the top-level directory will
+be different for versions other than 5.0.)
+
+
+3. How to build
+ ------------
+
+The source distribution available from DJGPP archives is already
+configured for DJGPP v2.x, so if you only want to compile it, just
+invoke Make:
+
+ make
+
+To build a package downloaded from a GNU FTP site, you will need o
+configure it first. You will also need to configure it if you want to
+change the configuration options (e.g., compile with support for the
+GDBMI interface). To configure GDB, type this command:
+
+ sh ./gdb/config/djgpp/djconfig.sh
+
+This script checks the unpacked distribution, then edits the configure
+scripts in the various subdirectories, to make them suitable for
+DJGPP, and finally invokes the top-level configure script, which
+recursively configures all the subdirectories.
+
+You may pass optional switches to djconfig.sh. It accepts all the
+switches accepted by the original GDB configure script. These
+switches are described in the file gdb/README, and their full list be
+displayed by running the following command:
+
+ sh ./gdb/configure --help
+
+NOTE: if you *do* use optional command-line switches, you MUST pass
+to the script the name of the directory where GDB sources are
+unpacked--even if you are building GDB in-place! For example:
+
+ sh ./gdb/config/djgpp/djconfig.sh . --enable-gdbmi
+
+It is also possible to build GDB in a directory that is different from
+the one where the sources were unpacked. In that case, you have to
+pass the source directory as the first argument to the script:
+
+ sh ./gdb/config/djgpp/djconfig.sh d:/gnu/gdb-5.0
+
+You MUST use forward slashes in the first argument.
+
+After the configure script finishes, run Make:
+
+ make
+
+When Make finishes, you can install the package:
+
+ make install INSTALL='/dev/env/DJDIR/bin/ginstall -c'
+
+The above doesn't install the docs; for that you will need to say
+this:
+
+ make -k install-info INSTALL='/dev/env/DJDIR/bin/ginstall -c'
+
+(The -k switch is required, because some unneeded targets that are
+part of the install process fail; -k lets Make run to completion
+nonetheless.)
+
+The test suite has been made to work with DJGPP. If you make a change
+in some of the programs, or want to be sure you have a fully
+functional GDB executable, it is a good idea to run the test suite.
+You cannot use "make check" for that, since it will want to run the
+`dejagnu' utility which GDB doesn't support. Instead, use the special
+script gdb/config/djgpp/djcheck.sh, like this:
+
+ cd gdb/testsuite
+ sh ../config/djgpp/djcheck.sh
+
+This will run for a while and should not print anything. Any test
+that fails to produce the expected output will cause the diffs between
+the expected and the actual output be printed, and in addition will
+leave behind a file SOMETHING.tst (where SOMETHING is the name of one
+of the tests). You should compare each of the *.tst files with the
+corresponding *.out file and convince yourself that the differences do
+not indicate a real problem. Examples of differences you can
+disregard are changes in the copyright blurb printed by GDB, values of
+unitialized variables, addresses of global variables like argv[] and
+envp[] (which depend on the size of your environment), etc.
+
+Note that djcheck.sh only recurses into those of the subdirectories of
+the test suite which test features supported by the DJGPP port of GDB.
+For example, the tests in the gdb.gdbtk, gdb.threads, and gdb.hp
+directories are not run.
+
+
+Enjoy,
+ Eli Zaretskii <eliz@is.elta.co.il>
--- /dev/null Fri Mar 17 20:46:50 2000
+++ gdb/config/djgpp/fnchange.lst Fri Mar 17 20:46:08 2000
@@ -0,0 +1,176 @@
+gdb-0222/gdb/ChangeLog-3.x gdb-0222/gdb/ChangeLog.3-x
+gdb-0222/gdb/ChangeLog-9091 gdb-0222/gdb/ChangeLog.9091
+gdb-0222/gdb/ChangeLog-92 gdb-0222/gdb/ChangeLog.92
+gdb-0222/gdb/ChangeLog-93 gdb-0222/gdb/ChangeLog.93
+gdb-0222/gdb/ChangeLog-94 gdb-0222/gdb/ChangeLog.94
+gdb-0222/gdb/ChangeLog-95 gdb-0222/gdb/ChangeLog.95
+gdb-0222/gdb/ChangeLog-96 gdb-0222/gdb/ChangeLog.96
+gdb-0222/gdb/ChangeLog-97 gdb-0222/gdb/ChangeLog.97
+gdb-0222/gdb/ChangeLog-98 gdb-0222/gdb/ChangeLog.98
+gdb-0222/gdb/ChangeLog-99 gdb-0222/gdb/ChangeLog.99
+gdb-0222/gdb/ppc-linux-tdep.c gdb-0222/gdb/ppc-linx-tdep.c
+gdb-0222/gdb/remote-adapt.c gdb-0222/gdb/rmt-adapt.c
+gdb-0222/gdb/remote-array.c gdb-0222/gdb/rmt-array.c
+gdb-0222/gdb/remote-e7000.c gdb-0222/gdb/rmt-e7000.c
+gdb-0222/gdb/remote-eb.c gdb-0222/gdb/rmt-eb.c
+gdb-0222/gdb/remote-es.c gdb-0222/gdb/rmt-es.c
+gdb-0222/gdb/remote-est.c gdb-0222/gdb/rmt-est.c
+gdb-0222/gdb/remote-mips.c gdb-0222/gdb/emt-mips.c
+gdb-0222/gdb/remote-mm.c gdb-0222/gdb/emt-mm.c
+gdb-0222/gdb/remote-nindy.c gdb-0222/gdb/rmt-nindy.c
+gdb-0222/gdb/remote-nrom.c gdb-0222/gdb/rmt-nrom.c
+gdb-0222/gdb/remote-rdi.c gdb-0222/gdb/rmt-rdi.c
+gdb-0222/gdb/remote-rdp.c gdb-0222/gdb/rmt-rdp.c
+gdb-0222/gdb/remote-sds.c gdb-0222/gdb/rmt-sds.c
+gdb-0222/gdb/remote-sim.c gdb-0222/gdb/rmt-sim.c
+gdb-0222/gdb/remote-st.c gdb-0222/gdb/rmt-st.c
+gdb-0222/gdb/remote-udi.c gdb-0222/gdb/rmt-udi.c
+gdb-0222/gdb/remote-vx.c gdb-0222/gdb/rmt-vx.c
+gdb-0222/gdb/remote-vx29k.c gdb-0222/gdb/rmt-vx29k.c
+gdb-0222/gdb/remote-vx68.c gdb-0222/gdb/rmt-vx68.c
+gdb-0222/gdb/remote-vx960.c gdb-0222/gdb/rmt-vx960.c
+gdb-0222/gdb/remote-vxmips.c gdb-0222/gdb/rmt-vxmips.c
+gdb-0222/gdb/remote-vxsparc.c gdb-0222/gdb/rmt-vxsparc.c
+gdb-0222/gdb/sparclet-rom.c gdb-0222/gdb/splet-rom.c
+gdb-0222/gdb/sparclet-stub.c gdb-0222/gdb/splet-stub.c
+gdb-0222/gdb/config/alpha/alpha-osf1.mh gdb-0222/gdb/config/alpha/alphosf1.mh
+gdb-0222/gdb/config/alpha/alpha-osf2.mh gdb-0222/gdb/config/alpha/alphosf2.mh
+gdb-0222/gdb/config/alpha/alpha-osf3.mh gdb-0222/gdb/config/alpha/alphosf3.mh
+gdb-0222/gdb/config/alpha/tm-alphalinux.h gdb-0222/gdb/config/alpha/tm-alplinux.h
+gdb-0222/gdb/config/alpha/xm-alphalinux.h gdb-0222/gdb/config/alpha/xm-alplinux.h
+gdb-0222/gdb/config/i386/nm-i386sco4.h gdb-0222/gdb/config/i386/nm-sco4.h
+gdb-0222/gdb/config/i386/nm-i386sco5.h gdb-0222/gdb/config/i386/nm-sco5.h
+gdb-0222/gdb/config/i386/nm-i386sol2.h gdb-0222/gdb/config/i386/nm-sol2.h
+gdb-0222/gdb/config/i386/nm-i386v4.h gdb-0222/gdb/config/i386/nm-v4.h
+gdb-0222/gdb/config/i386/nm-i386v42mp.h gdb-0222/gdb/config/i386/nm-v42mp.h
+gdb-0222/gdb/config/i386/tm-i386mk.h gdb-0222/gdb/config/i386/tm-mk.h
+gdb-0222/gdb/config/i386/tm-i386sol2.h gdb-0222/gdb/config/i386/tm-sol2.h
+gdb-0222/gdb/config/i386/tm-i386v4.h gdb-0222/gdb/config/i386/tm-v4.h
+gdb-0222/gdb/config/i386/tm-i386v42mp.h gdb-0222/gdb/config/i386/tm-v42mp.h
+gdb-0222/gdb/config/i386/xm-i386mach.h gdb-0222/gdb/config/i386/xm-mach.h
+gdb-0222/gdb/config/i386/xm-i386mk.h gdb-0222/gdb/config/i386/xm-mk.h
+gdb-0222/gdb/config/i386/xm-i386v32.h gdb-0222/gdb/config/i386/xm-v32.h
+gdb-0222/gdb/config/i386/xm-i386v4.h gdb-0222/gdb/config/i386/xm-v4.h
+gdb-0222/gdb/config/m68k/apollo68v.mh gdb-0222/gdb/config/m68k/apollo-v.mh
+gdb-0222/gdb/config/m68k/nm-apollo68v.h gdb-0222/gdb/config/m68k/nm-apolv.h
+gdb-0222/gdb/config/m68k/nm-hp300hpux.h gdb-0222/gdb/config/m68k/nm-300ux.h
+gdb-0222/gdb/config/m68k/tm-hp300hpux.h gdb-0222/gdb/config/m68k/tm-300ux.h
+gdb-0222/gdb/config/m68k/xm-apollo68v.h gdb-0222/gdb/config/m68k/xm-apolv.h
+gdb-0222/gdb/config/m68k/xm-hp300hpux.h gdb-0222/gdb/config/m68k/xm-300ux.h
+gdb-0222/gdb/config/m88k/tm-delta88v4.h gdb-0222/gdb/config/m88k/tm-d88v4.h
+gdb-0222/gdb/config/m88k/xm-delta88v4.h gdb-0222/gdb/config/m88k/xm-d88v4.h
+gdb-0222/gdb/config/mips/tm-bigmips64.h gdb-0222/gdb/config/mips/tm-bigm64.h
+gdb-0222/gdb/config/mips/tm-embed64.h gdb-0222/gdb/config/mips/tm-emb64.h
+gdb-0222/gdb/config/mips/tm-embedl.h gdb-0222/gdb/config/mips/tm-embdl.h
+gdb-0222/gdb/config/mips/tm-embedl64.h gdb-0222/gdb/config/mips/tm-embl64.h
+gdb-0222/gdb/config/mips/tm-vr4300el.h gdb-0222/gdb/config/mips/tm-v43el.h
+gdb-0222/gdb/config/mips/tm-vr4xxxel.h gdb-0222/gdb/config/mips/tm-v4xel.h
+gdb-0222/gdb/config/mips/tm-vr5000el.h gdb-0222/gdb/config/mips/tm-vr5kel.h
+gdb-0222/gdb/config/pa/nm-hppah11.h gdb-0222/gdb/config/pa/nm-hppa11.h
+gdb-0222/gdb/config/powerpc/tm-ppcle-sim.h gdb-0222/gdb/config/powerpc/tm-ppcl-sim.h
+gdb-0222/gdb/config/rs6000/nm-rs6000ly.h gdb-0222/gdb/config/rs6000/nm-rs6kly.h
+gdb-0222/gdb/config/rs6000/tm-rs6000.h gdb-0222/gdb/config/rs6000/tm-rs6k.h
+gdb-0222/gdb/config/rs6000/tm-rs6000ly.h gdb-0222/gdb/config/rs6000/tm-rs6kly.h
+gdb-0222/gdb/config/rs6000/xm-rs6000ly.h gdb-0222/gdb/config/rs6000/xm-rs6kly.h
+gdb-0222/gdb/config/sparc/tm-sparclet.h gdb-0222/gdb/config/sparc/tm-splet.h
+gdb-0222/gdb/config/sparc/tm-sparclite.h gdb-0222/gdb/config/sparc/tm-splite.h
+gdb-0222/gdb/config/sparc/tm-sparclynx.h gdb-0222/gdb/config/sparc/tm-splynx.h
+gdb-0222/gdb/config/sparc/xm-sparclynx.h gdb-0222/gdb/config/sparc/xm-xplynx.h
+gdb-0222/gdb/config/vax/xm-vaxult2.h gdb-0222/gdb/config/vax/xm-vaxut2.h
+gdb-0222/gdb/gdbtk/generic/gdbtk-varobj.c gdb-0222/gdb/gdbtk/generic/gdbtk-vobj.c
+gdb-0222/gdb/osf-share/cma_stack_int.h gdb-0222/gdb/osf-share/cma_stkint.h
+gdb-0222/gdb/testsuite/gdb.base/coremaker2.c gdb-0222/gdb/testsuite/gdb.base/core2maker.c
+gdb-0222/gdb/tui/tuiSourceWin.c gdb-0222/gdb/tui/tuiWinSource.c
+gdb-0222/gdb/tui/tuiSourceWin.h gdb-0222/gdb/tui/tuiWinSource.h
+gdb-0222/bfd/ChangeLog-9193 gdb-0222/bfd/ChangeLog.9193
+gdb-0222/bfd/ChangeLog-9495 gdb-0222/bfd/ChangeLog.9495
+gdb-0222/bfd/ChangeLog-9697 gdb-0222/bfd/ChangeLog.9697
+gdb-0222/bfd/coff-tic80.c gdb-0222/bfd/coff-tc80.c
+gdb-0222/sim/mips/dv-tx3904irc.c gdb-0222/sim/mips/dv-tx3irc.c
+gdb-0222/sim/mips/dv-tx3904sio.c gdb-0222/sim/mips/dv-tx3sio.c
+gdb-0222/sim/mips/dv-tx3904tmr.c gdb-0222/sim/mips/dv-tx3tmr.c
+gdb-0222/sim/mn10300/dv-mn103int.c gdb-0222/sim/mn10300/dv-mn1int.c
+gdb-0222/sim/mn10300/dv-mn103iop.c gdb-0222/sim/mn10300/dv-mn1iop.c
+gdb-0222/sim/mn10300/dv-mn103ser.c gdb-0222/sim/mn10300/dv-mn1ser.c
+gdb-0222/sim/mn10300/dv-mn103tim.c gdb-0222/sim/mn10300/dv-mn1tim.c
+gdb-0222/sim/ppc/corefile-n.h gdb-0222/sim/ppc/corefle-n.h
+gdb-0222/sim/ppc/idecode_branch.h gdb-0222/sim/ppc/idec_branch.h
+gdb-0222/sim/ppc/idecode_expression.h gdb-0222/sim/ppc/idec_expression.h
+gdb-0222/sim/ppc/idecode_fields.h gdb-0222/sim/ppc/idec_fields.h
+gdb-0222/sim/ppc/sim-endian-n.h gdb-0222/sim/ppc/sim-endn.h
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-d.s gdb-0222/sim/testsuite/d10v-elf/t-ld-d.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-i.s gdb-0222/sim/testsuite/d10v-elf/t-ld-i.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-id.s gdb-0222/sim/testsuite/d10v-elf/t-ld-id.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-im.s gdb-0222/sim/testsuite/d10v-elf/t-ld-im.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-ip.s gdb-0222/sim/testsuite/d10v-elf/t-ld-ip.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-d.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-d.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-i.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-i.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-id.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-id.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-im.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-im.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-ip.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-ip.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st-d.s gdb-0222/sim/testsuite/d10v-elf/t-st-d.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st-i.s gdb-0222/sim/testsuite/d10v-elf/t-st-i.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st-id.s gdb-0222/sim/testsuite/d10v-elf/t-st-id.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st-im.s gdb-0222/sim/testsuite/d10v-elf/t-st-im.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st-ip.s gdb-0222/sim/testsuite/d10v-elf/t-st-ip.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st-is.s gdb-0222/sim/testsuite/d10v-elf/t-st-is.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-d.s gdb-0222/sim/testsuite/d10v-elf/t-st2-d.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-i.s gdb-0222/sim/testsuite/d10v-elf/t-st2-i.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-id.s gdb-0222/sim/testsuite/d10v-elf/t-st2-id.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-im.s gdb-0222/sim/testsuite/d10v-elf/t-st2-im.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-ip.s gdb-0222/sim/testsuite/d10v-elf/t-st2-ip.s
+gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-is.s gdb-0222/sim/testsuite/d10v-elf/t-st2-is.s
+gdb-0222/sim/testsuite/d30v-elf/ls-ld4bhu.S gdb-0222/sim/testsuite/d30v-elf/ls-ld4bu.S
+gdb-0222/intl/po2tbl.sed.in gdb-0222/intl/po2tblsed.in
+gdb-0222/intl/intlh.inst.in gdb-0222/intl/intlh_inst.in
+gdb-0222/readline/config.h.in gdb-0222/readline/config.h-in
+gdb-0222/readline/config.h.bot gdb-0222/readline/config.h-bot
+gdb-0222/gdb/nindy-share/b.out.h gdb-0222/gdb/nindy-share/b_out.h
+gdb-0222/gdb/c-exp.tab.c gdb-0222/gdb/c-exp_tab.c
+gdb-0222/gdb/jv-exp.tab.c gdb-0222/gdb/jv-exp_tab.c
+gdb-0222/gdb/f-exp.tab.c gdb-0222/gdb/f-exp_tab.c
+gdb-0222/gdb/m2-exp.tab.c gdb-0222/gdb/m2-exp_tab.c
+gdb-0222/gdb/testsuite/gdb.c++ gdb-0222/gdb/testsuite/gdb.cxx
+gdb-0222/gdb/testsuite/gdb.c++/Makefile.in gdb-0222/gdb/testsuite/gdb.cxx/Makefile.in
+gdb-0222/gdb/testsuite/gdb.c++/ambiguous.cc gdb-0222/gdb/testsuite/gdb.cxx/ambiguous.cc
+gdb-0222/gdb/testsuite/gdb.c++/ambiguous.exp gdb-0222/gdb/testsuite/gdb.cxx/ambiguous.exp
+gdb-0222/gdb/testsuite/gdb.c++/annota2.cc gdb-0222/gdb/testsuite/gdb.cxx/annota2.cc
+gdb-0222/gdb/testsuite/gdb.c++/annota2.exp gdb-0222/gdb/testsuite/gdb.cxx/annota2.exp
+gdb-0222/gdb/testsuite/gdb.c++/anon-union.cc gdb-0222/gdb/testsuite/gdb.cxx/anon-union.cc
+gdb-0222/gdb/testsuite/gdb.c++/anon-union.exp gdb-0222/gdb/testsuite/gdb.cxx/anon-union.exp
+gdb-0222/gdb/testsuite/gdb.c++/classes.exp gdb-0222/gdb/testsuite/gdb.cxx/classes.exp
+gdb-0222/gdb/testsuite/gdb.c++/configure gdb-0222/gdb/testsuite/gdb.cxx/configure
+gdb-0222/gdb/testsuite/gdb.c++/configure.in gdb-0222/gdb/testsuite/gdb.cxx/configure.in
+gdb-0222/gdb/testsuite/gdb.c++/cplusfuncs.cc gdb-0222/gdb/testsuite/gdb.cxx/cplusfuncs.cc
+gdb-0222/gdb/testsuite/gdb.c++/cplusfuncs.exp gdb-0222/gdb/testsuite/gdb.cxx/cplusfuncs.exp
+gdb-0222/gdb/testsuite/gdb.c++/ctti.exp gdb-0222/gdb/testsuite/gdb.cxx/ctti.exp
+gdb-0222/gdb/testsuite/gdb.c++/cttiadd.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd.cc
+gdb-0222/gdb/testsuite/gdb.c++/cttiadd1.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd1.cc
+gdb-0222/gdb/testsuite/gdb.c++/cttiadd2.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd2.cc
+gdb-0222/gdb/testsuite/gdb.c++/cttiadd3.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd3.cc
+gdb-0222/gdb/testsuite/gdb.c++/demangle.exp gdb-0222/gdb/testsuite/gdb.cxx/demangle.exp
+gdb-0222/gdb/testsuite/gdb.c++/derivation.cc gdb-0222/gdb/testsuite/gdb.cxx/derivation.cc
+gdb-0222/gdb/testsuite/gdb.c++/derivation.exp gdb-0222/gdb/testsuite/gdb.cxx/derivation.exp
+gdb-0222/gdb/testsuite/gdb.c++/inherit.exp gdb-0222/gdb/testsuite/gdb.cxx/inherit.exp
+gdb-0222/gdb/testsuite/gdb.c++/local.cc gdb-0222/gdb/testsuite/gdb.cxx/local.cc
+gdb-0222/gdb/testsuite/gdb.c++/local.exp gdb-0222/gdb/testsuite/gdb.cxx/local.exp
+gdb-0222/gdb/testsuite/gdb.c++/member-ptr.cc gdb-0222/gdb/testsuite/gdb.cxx/member-ptr.cc
+gdb-0222/gdb/testsuite/gdb.c++/member-ptr.exp gdb-0222/gdb/testsuite/gdb.cxx/member-ptr.exp
+gdb-0222/gdb/testsuite/gdb.c++/method.cc gdb-0222/gdb/testsuite/gdb.cxx/method.cc
+gdb-0222/gdb/testsuite/gdb.c++/method.exp gdb-0222/gdb/testsuite/gdb.cxx/method.exp
+gdb-0222/gdb/testsuite/gdb.c++/misc.cc gdb-0222/gdb/testsuite/gdb.cxx/misc.cc
+gdb-0222/gdb/testsuite/gdb.c++/misc.exp gdb-0222/gdb/testsuite/gdb.cxx/misc.exp
+gdb-0222/gdb/testsuite/gdb.c++/overload.cc gdb-0222/gdb/testsuite/gdb.cxx/overload.cc
+gdb-0222/gdb/testsuite/gdb.c++/overload.exp gdb-0222/gdb/testsuite/gdb.cxx/overload.exp
+gdb-0222/gdb/testsuite/gdb.c++/ovldbreak.cc gdb-0222/gdb/testsuite/gdb.cxx/ovldbreak.cc
+gdb-0222/gdb/testsuite/gdb.c++/ovldbreak.exp gdb-0222/gdb/testsuite/gdb.cxx/ovldbreak.exp
+gdb-0222/gdb/testsuite/gdb.c++/ref-types.cc gdb-0222/gdb/testsuite/gdb.cxx/ref-types.cc
+gdb-0222/gdb/testsuite/gdb.c++/ref-types.exp gdb-0222/gdb/testsuite/gdb.cxx/ref-types.exp
+gdb-0222/gdb/testsuite/gdb.c++/templates.cc gdb-0222/gdb/testsuite/gdb.cxx/templates.cc
+gdb-0222/gdb/testsuite/gdb.c++/templates.exp gdb-0222/gdb/testsuite/gdb.cxx/templates.exp
+gdb-0222/gdb/testsuite/gdb.c++/userdef.cc gdb-0222/gdb/testsuite/gdb.cxx/userdef.cc
+gdb-0222/gdb/testsuite/gdb.c++/userdef.exp gdb-0222/gdb/testsuite/gdb.cxx/userdef.exp
+gdb-0222/gdb/testsuite/gdb.c++/virtfunc.cc gdb-0222/gdb/testsuite/gdb.cxx/virtfunc.cc
+gdb-0222/gdb/testsuite/gdb.c++/virtfunc.exp gdb-0222/gdb/testsuite/gdb.cxx/virtfunc.exp
+gdb-0222/gdb/testsuite/.gdbinit gdb-0222/gdb/testsuite/gdb.ini
+gdb-0222/sim/ppc/.gdbinit gdb-0222/sim/ppc/gdb.ini
--- /dev/null Sat Mar 18 17:07:20 2000
+++ gdb/config/djgpp/djcheck.sh Sat Mar 18 15:44:22 2000
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# A shell script to run the test suite on the DJGPP version of GDB.
+
+ORIGDIR=`pwd`
+GDB=${ORIGDIR}/../gdb.exe
+SUBDIRS=`find $ORIGDIR -type d ! -ipath $ORIGDIR`
+
+for d in $SUBDIRS
+do
+ cd $d
+ echo "Running tests in $d..."
+ for f in *.out
+ do
+ test -f $f || break
+ base=`basename $f .out`
+ if test "${base}" = "dbx" ; then
+ options=-dbx
+ else
+ options=
+ fi
+ $GDB ${options} < ${base}.in 2>&1 \
+ | sed -e '/^GNU gdb /s/ [.0-9][.0-9]*//' \
+ -e '/Starting program: /s|[A-z]:/.*/||' \
+ -e '/main (.*argv=/s/\(argv\|envp\)=0x[0-9a-f][0-9a-f]*/\1=XYZ/g' \
+ > ${base}.tst
+ if diff --binary -u ${base}.out ${base}.tst ; then
+ rm -f ${base}.tst
+ fi
+ done
+done
+
From Stephane.Carrez@worldnet.fr Sun Mar 19 05:56:00 2000
From: Stephane Carrez <Stephane.Carrez@worldnet.fr>
To: gdb-patches@sourceware.cygnus.com
Subject: path for gdb/dwarf2read.c, support 16-bit targets in dwarf-2
Date: Sun, 19 Mar 2000 05:56:00 -0000
Message-id: <38D4DCB0.88313CB2@worldnet.fr>
X-SW-Source: 2000-03/msg00345.html
Content-length: 908

Hi!

One part of the patch for dwarf2 correction with 16-bit target has
been lost. If you are still not convinced by the fix, have a look
at gas/dwarf2dbg.c in out_set_addr() where we obtain the address
size in a good way.

Can you integrate it?

Thanks,
Stephane

2000-03-19 Stephane Carrez <stcarrez@worldnet.fr>

* dwarf2read.c (dwarf2_build_psymtabs_hard): Use
bfd_arch_bits_per_address to get the size of addresses.
--- /src/gnu/cygnus/gdb/gdb/dwarf2read.c Sat Mar 4 11:38:38 2000
+++ gdb/dwarf2read.c Sun Mar 19 14:10:49 2000
@@ -938,7 +938,7 @@ dwarf2_build_psymtabs_hard (objfile, mai
CORE_ADDR lowpc, highpc;

/* Number of bytes of any addresses that are signficant */
- address_significant_size = get_elf_backend_data (abfd)->s->arch_size / 8;
+ address_significant_size = bfd_arch_bits_per_address (abfd) / 8;

info_ptr = dwarf_info_buffer;
abbrev_ptr = dwarf_abbrev_buffer;
From fnasser@redhat.com Sun Mar 19 08:56:00 2000
From: Fernando Nasser <fnasser@redhat.com>
To: Jonathan Larmour <jlarmour@redhat.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: thumb_skip_prologue too adventurous
Date: Sun, 19 Mar 2000 08:56:00 -0000
Message-id: <38D5064B.40AE9470@redhat.com>
References: <38D3FFC8.32082A85@redhat.co.uk> <38D40052.AF731E81@redhat.co.uk>
X-SW-Source: 2000-03/msg00346.html
Content-length: 3183

Jonathan,

Thanks.

I am not sure if there isn't a better solution for this, but for now I
would say that you should check your change in as an emergency fix. I
am assuming you ran the testsuite and it did not cause any regressions,
right? (I don't think it will cause any)

I may latter add another change to check first if there is information
about the prologue end in the symbol table. I don't know why this was
not checked before, I just noticed it now, looking at you patch.

I wrote this thumb prologue scan code to match the new compiler (gcc)
prologue generation. As everything is new, both Nick and I used the
testsuite results to verify our work. The case you mention does not have
a testsuite case. I wonder if you could add a test case?

Regards,
Fernando

Jonathan Larmour wrote:
>
> Jonathan Larmour wrote:
> > 2000-03-18 Jonathan Larmour <jlarmour@redhat.co.uk>
> >
> > * arm-tdep.c (thumb_skip_prologue): Take function end addr argument
> > so that we can stop searching for the prologue past the function end
> > (arm_skip_prologue): Call thumb_skip_prologue with function end addr
>
> Doh! Patch attached.
>
> Jifl
>
> ------------------------------------------------------------------------
> Index: arm-tdep.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/arm-tdep.c,v
> retrieving revision 1.4
> diff -u -5 -p -r1.4 arm-tdep.c
> --- arm-tdep.c 2000/02/29 07:23:02 1.4
> +++ arm-tdep.c 2000/03/18 22:16:21
> @@ -326,20 +326,20 @@ arm_frameless_function_invocation (struc
> When we have found at least one of each class we are done with the prolog.
> Note that the "sub sp, #NN" before the push does not count.
> */
>
> static CORE_ADDR
> -thumb_skip_prologue (CORE_ADDR pc)
> +thumb_skip_prologue (CORE_ADDR pc, CORE_ADDR func_end)
> {
> CORE_ADDR current_pc;
> int findmask = 0; /* findmask:
> bit 0 - push { rlist }
> bit 1 - mov r7, sp OR add r7, sp, #imm (setting of r7)
> bit 2 - sub sp, #simm OR add sp, #simm (adjusting of sp)
> */
>
> - for (current_pc = pc; current_pc < pc + 40; current_pc += 2)
> + for (current_pc = pc; current_pc + 2 < func_end && current_pc < pc + 40; current_pc += 2)
> {
> unsigned short insn = read_memory_unsigned_integer (current_pc, 2);
>
> if ((insn & 0xfe00) == 0xb400) /* push { rlist } */
> {
> @@ -397,11 +397,11 @@ arm_skip_prologue (CORE_ADDR pc)
> return sal.end;
> }
>
> /* Check if this is Thumb code. */
> if (arm_pc_is_thumb (pc))
> - return thumb_skip_prologue (pc);
> + return thumb_skip_prologue (pc, func_end);
>
> /* Can't find the prologue end in the symbol table, try it the hard way
> by disassembling the instructions. */
> skip_pc = pc;
> inst = read_memory_integer (skip_pc, 4);

--
Fernando Nasser
Red Hat, Inc. - Toronto E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300 Tel: 416-482-2661 ext. 311
Toronto, Ontario M4P 2C9 Fax: 416-482-6299
From kevinb@cygnus.com Sun Mar 19 09:48:00 2000
From: Kevin Buettner <kevinb@cygnus.com>
To: gdb-patches@sourceware.cygnus.com
Subject: Re: [PATCH RFA] Another utils.c patch
Date: Sun, 19 Mar 2000 09:48:00 -0000
Message-id: <1000319174817.ZM17637@ocotillo.lan>
References: <1000319072047.ZM14883@ocotillo.lan> <kevinb@cygnus.com>
X-SW-Source: 2000-03/msg00347.html
Content-length: 2222

On Mar 19, 12:20am, Kevin Buettner wrote:
> Subject: [PATCH RFA] Another utils.c patch
> This fixes another bug uncovered by running the testsuite for the
> IA-64... may I check this one in?
>
> * utils.c (floatformat_from_doublest): Make sure space that we're
> writing the float to is completely initialized to zeroes, even
> when the number of bits in the float is not evenly divisible
> by FLOATFORMAT_CHAR_BIT.
>
> Index: utils.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/utils.c,v
> retrieving revision 1.4
> diff -u -p -r1.4 utils.c
> --- utils.c 2000/03/04 02:23:06 1.4
> +++ utils.c 2000/03/19 07:12:00
> @@ -2722,7 +2722,8 @@ floatformat_from_doublest (fmt, from, to
> unsigned char *uto = (unsigned char *) to;
>
> memcpy (&dfrom, from, sizeof (dfrom));
> - memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT);
> + memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT
> + + ((fmt->totalsize % FLOATFORMAT_CHAR_BIT) == 0 ? 0 : 1));
> if (dfrom == 0)
> return; /* Result is zero */
> if (dfrom != dfrom) /* Result is NaN */
>
>-- End of excerpt from Kevin Buettner

I withdraw the patch above in favor of the one below. (The patch above
is not as concise as the one below. But they should both produce the
same results.)

* utils.c (floatformat_from_doublest): Make sure space that we're
writing the float to is completely initialized to zeroes, even
when the number of bits in the float is not evenly divisible
by FLOATFORMAT_CHAR_BIT.

Index: utils.c
===================================================================
RCS file: /cvs/src/src/gdb/utils.c,v
retrieving revision 1.4
diff -u -p -r1.4 utils.c
--- utils.c 2000/03/04 02:23:06 1.4
+++ utils.c 2000/03/19 17:36:49
@@ -2722,7 +2722,8 @@ floatformat_from_doublest (fmt, from, to
unsigned char *uto = (unsigned char *) to;

memcpy (&dfrom, from, sizeof (dfrom));
- memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT);
+ memset (uto, 0, (fmt->totalsize + FLOATFORMAT_CHAR_BIT - 1)
+ / FLOATFORMAT_CHAR_BIT);
if (dfrom == 0)
return; /* Result is zero */
if (dfrom != dfrom) /* Result is NaN */