* Likely obsolete pieces of GDB
@ 2006-12-16 20:59 Daniel Jacobowitz
2006-12-16 21:23 ` Christopher Faylor
` (5 more replies)
0 siblings, 6 replies; 27+ messages in thread
From: Daniel Jacobowitz @ 2006-12-16 20:59 UTC (permalink / raw)
To: gdb; +Cc: dave.anglin, brobecker, Mark Kettenis
This is something I've been meaning to do for a long time. GDB is, in
my humble opinion, overdue for some pruning. I went through the GDB
source tree and identified every file that I believe is obsolete: code
only used for systems, formats, targets, etc. where support in new
versions of GDB is not useful, which is thus a candidate for removal.
Most of this stuff has been around for a long time, and it won't hurt
to keep it around a little longer. So let's take our time. If you
see anything on this list that you'd miss, please say so! I've left a
lot of things off the list which I'd rather remove, but have seen
signs of life for; if there's something you'd add to the list, please
say that too. After some discussion, I recommend we post the list
to gdb-announce. I'm not sure if that really reaches a wider audience,
but it may.
I've CC'd people I had particular questions for. And now, the lists!
Targets, then entire subdirectories, then files.
Native and cross targets which might be obsolete:
alpha*-*-osf*
arm*-wince-pe
(See the discussion of wince.c below.)
hppa*-*-hiux*
(Not hppa*-*-hpux*)
i[34567]86-ncr-*
i[34567]86-*-dgux*
i[34567]86-*-lynxos*
i[34567]86-*-netware*
i[34567]86-*-sco3.2v5*
i[34567]86-*-sco3.2v4*
i[34567]86-*-sco*
i[34567]86-*-sysv4.2*
i[34567]86-*-sysv4*
i[34567]86-*-sysv5*
i[34567]86-*-unixware2*
i[34567]86-*-unixware*
i[34567]86-*-sysv*
i[34567]86-*-isc*
m68*-cisco*-*
m68*-tandem-*
m68*-*-os68k*
mips*-*-pe
rs6000-*-lynxos*
sh*-*-pe
vax-*-*
(But not NetBSD or OpenBSD)
Subdirectories of GDB which might be obsolete:
osf-share
Something from this directory is used to build hpux-thread.o.
The rest of it is unused. hpux-thread.o is only enabled for
CMA threads, and PROBLEMS says (build/1411) that this hasn't
built at least since GDB 6.5. HP/UX has deprecated CMA threads
as of 11i.
Is support for CMA threads still useful? Note that I'm talking
just about hpux-thread.o, not about support for HP/UX 10.20. The
PR is still open and still listed in PROBLEMS, but it looks like
Dave Anglin fixed it on 2004-11-22, so maybe it is. Or maybe
support for that platform is useful but not support for OSF
threads.
Files at the top level which might be obsolete:
abug-rom.c
The ABug ROM Monitor target. Only enabled for embedded m68k
targets.
alpha-osf1-tdep.c
Only used by the alpha-osf1 target. I'm pretty sure we don't
need support for this platform anymore. But the last reference
I see to it was from Joel in 2002; Joel, is this platform still
relevant to you?
coff-solib.c
coff-solib.h
These are only used for the rs6000-lynxos target. I'm pretty
much positive that no one has built a recent GDB for LynxOS.
cpu32bug-rom.c
Like abug-rom.c, another embedded monitor for m68k.
d10v-tdep.c
This was marked obsolete 2004-11-01; it's time for it to go.
dwarfread.c
DWARF 1. GCC removed support for generating this format
several years ago.
gnu-v2-abi.c
gnu-v2-abi.h
C++ ABI support for GCC 2.x.
I'm not sure about these. The last release of GCC they worked
with was 2.95.3. GCC 3.0 was released Jun 18, 2001. Adoption
was slow, but I think I can safely say that almost no one uses
2.95.x any more; even Debian stopped using it three and a half
years ago. Should we keep this?
hpacc-abi.c
Support for the HP aCC C++ compiler, on PA. HP-UX for Itanium
doesn't use this; GCC for hppa-hpux doesn't use it either. See
next item.
hpread.c
Support for symbolic debug info for the HP compilers on HP-UX.
This is the equivalent of dwarf2read, not the equivalent of
elfread; removing it won't interfere with non-symbolic
debugging or with debugging SOM executables produced by the
GNU tools. I raised the question of removing this support on
the GDB mailing list earlier in 2006 and there was general
support. The only people who spoke up saying they used HP's
compilers on HP-UX said that they use HP's fork of GDB
there anyway.
hpux-thread.c
Not sure about this; see discussion of osf-share above.
i386v-nat.c
This file is used for i[34567]86-*-sco* and for
i[34567]86-*-sysv4* and for i[34567]86-*-unixware* (but not
unixware2*). I haven't heard of anyone using GDB on any of
these configurations in a long time.
Mark Kettenis was the last person to make a non-mechanical
update to this file, in 2002. Mark, do you have any use for
those targets?
infptrace.c
I'd love to remove this old file (replaced by inf-ptrace.c)
but I don't think we quite can yet. It appears to be still
used by alpha-osf (probably obsolete), i386-sco and similar
(also probably obsolete), but also powerpc-aix. AIX could
use some updating if anyone wants to keep the GDB port to
that platform alive.
lynx-nat.c
Again, only used on rs6000-lynxos.
mdebugread.c
mdebugread.h
If there's any platform left that still produces this format
of symbolic debug information, I don't know what it is.
mips-mdebug-tdep.c
mips-mdebug-tdep.h
Support for using .pdr information to backtrace. Andrew
pulled this code out of mips-tdep in 2004 and only linked it
in for mips-elf; mips-linux hasn't missed it. If you want
to improve mips-elf backtraces then finish hooking it up to
the dwarf2 unwinder instead of messing with this.
mipsread.c
ECOFF support related to, I think, the same platforms as used
mdebugread.c. Looks like alpha-osf1 uses this. I know that
ECOFF support for MIPS is pretty much unused now; some targets
need images converted to ECOFF for loading a bootloader or
kernel, but the actual work is all strictly ELF. Binutils has
discussed dropping ECOFF support for MIPS several times and
no one has spoken in its defense lately.
nlmread.c
We already removed most support for NLM files (NetWare). This
was left behind.
ocd.c
ocd.h
ppc-bdm.c
This claims to be Macraigor Wiggler support. But it only opens
a serial device; the things Macraigor sells nowadays are either
parallel or USB. In the archives I see several people trying
to use this, but no one succeeding.
Note to self: be careful removing this! The common "remotetimeout"
command appears to come from ocd.c rather than remote.c.
remote-e7000.c
"Remote debugging interface for Renesas E7000 ICE".
I found a sad looking one on ebay, but that's the only thing
I could find from this decade.
remote-est.c
"Remote debugging interface for EST-300 ICE". I couldn't
find even that much life.
remote-hms.c
An on-board ROM monitor for Renesas boards. No signs of life.
remote-mips.c
I think this is support for the built-in monitor of PMON.
I see that Atsushi Nemoto reported a problem with this in 2003,
so it might be worth keeping.
remote-sds.c
A remote monitor target for some PowerPC boards?
remote-st.c
"Remote debugging interface for Tandem ST2000 phone switch"
GDB is now the source of every google hit I checked for this
product.
remote-utils.c
remote-utils.h
I think that all the code in this file is actually dead.
I had a patch to remove it at some point but forgot about it.
rom68k-rom.c
"Remote target glue for the ROM68K ROM monitor"
I found only one reference that wasn't to GDB or dejagnu.
scm-exp.c
scm-lang.c
scm-lang.h
scm-tags.h
scm-valprint.c
"Scheme/Guile language support" it says. What does this
actually support? It looks like it talks to the internal
representation of some version of Guile, but I bet it hasn't
worked in a long time.
ser-e7kpc.c
"Renesas E7000 PC ISA card". Nuff said?
sh3-rom.c
Another set of Hitachi / Renesas ROM monitors, to which I
can find no references.
solib-sunos.c
Used by: config/arm/nbsdaout.mh config/i386/nbsdaout.mh
config/i386/obsdaout.mh config/m68k/nbsdaout.mh
config/m68k/obsd.mh config/sparc/nbsdaout.mh
config/vax/nbsdaout.mh
Are those a.out targets still current, and do they still use
"SunOS" shared library support? If so we'll definitely
keep this, but perhaps it needs a rename.
stop-gdb.c
A support program for Mach 3.0. Currently used nowhere.
uw-thread.c
UnixWare user mode thread support.
vax-nat.c
Used for vax-bsd (not NetBSD or OpenBSD) and vax-ultrix.
wince-stub.c
wince-stub.h
wince.c
For Windows CE devices. Pedro Alves breathed some life
back into these in June, but Chris Faylor rejected the
patch (with which I completely agree). It's a Windows-specific
remote protocol, and should use the GDB remote protocol
instead.
And now there's a Windows gdbserver as a start to that.
I think these files should be removed.
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: Likely obsolete pieces of GDB 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz @ 2006-12-16 21:23 ` Christopher Faylor 2007-02-10 21:42 ` Pedro Alves 2006-12-17 1:24 ` John David Anglin ` (4 subsequent siblings) 5 siblings, 1 reply; 27+ messages in thread From: Christopher Faylor @ 2006-12-16 21:23 UTC (permalink / raw) To: dave.anglin, Mark Kettenis, brobecker, gdb On Sat, Dec 16, 2006 at 03:59:23PM -0500, Daniel Jacobowitz wrote: >wince-stub.c >wince-stub.h >wince.c > > For Windows CE devices. Pedro Alves breathed some life > back into these in June, but Chris Faylor rejected the > patch (with which I completely agree). It's a Windows-specific > remote protocol, and should use the GDB remote protocol > instead. > > And now there's a Windows gdbserver as a start to that. > I think these files should be removed. And, it should come as no surprise that I agree and I apologize for introducing this misbegotten code into gdb to begin with. cgf ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-16 21:23 ` Christopher Faylor @ 2007-02-10 21:42 ` Pedro Alves 2007-02-10 23:50 ` Daniel Jacobowitz 0 siblings, 1 reply; 27+ messages in thread From: Pedro Alves @ 2007-02-10 21:42 UTC (permalink / raw) To: dave.anglin, Mark Kettenis, brobecker, gdb Christopher Faylor escreveu: > On Sat, Dec 16, 2006 at 03:59:23PM -0500, Daniel Jacobowitz wrote: >> wince-stub.c >> wince-stub.h >> wince.c >> >> For Windows CE devices. Pedro Alves breathed some life >> back into these in June, but Chris Faylor rejected the >> patch (with which I completely agree). It's a Windows-specific >> remote protocol, and should use the GDB remote protocol >> instead. >> >> And now there's a Windows gdbserver as a start to that. >> I think these files should be removed. > > And, it should come as no surprise that I agree and I apologize > for introducing this misbegotten code into gdb to begin with. > (Sorry for taking such a long time to reply to this, I was internet-less for a month.) Looking at my patch now, I now fully agree with the rejection. Thank you for rejecting it. :) I have the WinCE gdbserver port 99% ready for submission. There are just a few other things I would like to solve first: is the target name that I have been calling arm-wince-mingw32ce at cegcc.sourceforge.net ok, or should I rename it?; Some cleanups at the mingw32ce side, that are needed for the gdbserver; Submit a few gdb fixes that are either global or PE related. Removing the current wince support now, means that I will have to add a few things back again later (mostly autoconf stuff, and the target header), but there's no problem with me, if it is wanted. Else, I will remove them with the gdbserver port. Cheers, Pedro Alves ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-02-10 21:42 ` Pedro Alves @ 2007-02-10 23:50 ` Daniel Jacobowitz 2007-02-19 1:25 ` Pedro Alves 0 siblings, 1 reply; 27+ messages in thread From: Daniel Jacobowitz @ 2007-02-10 23:50 UTC (permalink / raw) To: gdb On Sat, Feb 10, 2007 at 09:41:43PM +0000, Pedro Alves wrote: > I have the WinCE gdbserver port 99% ready for submission. There are just > a few other things I would like to solve first: is the target > name that I have been calling arm-wince-mingw32ce at cegcc.sourceforge.net > ok, or should I rename it? Didn't it used to be just arm-wince? Anyway, you'd have to ask the config-patches list. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-02-10 23:50 ` Daniel Jacobowitz @ 2007-02-19 1:25 ` Pedro Alves 0 siblings, 0 replies; 27+ messages in thread From: Pedro Alves @ 2007-02-19 1:25 UTC (permalink / raw) To: gdb Daniel Jacobowitz wrote: > On Sat, Feb 10, 2007 at 09:41:43PM +0000, Pedro Alves wrote: >> I have the WinCE gdbserver port 99% ready for submission. There are just >> a few other things I would like to solve first: is the target >> name that I have been calling arm-wince-mingw32ce at cegcc.sourceforge.net >> ok, or should I rename it? > > Didn't it used to be just arm-wince? Anyway, you'd have to ask the > config-patches list. > It was called arm-wince-pe, but I saw some messages somewhere (I think in the binutils archive) about how it should have been called arm-wince. The original arm-wince(-pe) support was made using MSFT's SDK (headers and libs). This new arm-wince-mingw32ce is a mingw32 derivative (*); We use winsup/mingw and winsup/w32api adapted to wince. Plus, having mingw32 on the name eases the porting by a whole bunch, since those "case ${host} in; case mingw*) ;; " will, in most of the cases, be right for wince too. WinCE is *is* Windows afterall, a quite broken one, but still... Thanks for the config-patches list hint. Cheers, Pedro Alves (*) - We never made a push to MinGW upstream, because first we needed to know if the overlap would justify it, or if we should remain as a fork, and, we didn't want to bother the busy MinGW folks with a half baked port. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz 2006-12-16 21:23 ` Christopher Faylor @ 2006-12-17 1:24 ` John David Anglin 2006-12-17 11:46 ` Mark Kettenis 2006-12-18 3:03 ` John David Anglin 2006-12-17 1:36 ` Russell Shaw ` (3 subsequent siblings) 5 siblings, 2 replies; 27+ messages in thread From: John David Anglin @ 2006-12-17 1:24 UTC (permalink / raw) To: Daniel Jacobowitz; +Cc: gdb, dave.anglin, brobecker, kettenis > hppa*-*-hiux* Definitely obsolete. > vax-*-* > > (But not NetBSD or OpenBSD) Ultrix still might work but I doubt anybody other than myself still has such a machine running. There still some interest in linux. > osf-share > > Something from this directory is used to build hpux-thread.o. > The rest of it is unused. hpux-thread.o is only enabled for > CMA threads, and PROBLEMS says (build/1411) that this hasn't > built at least since GDB 6.5. HP/UX has deprecated CMA threads > as of 11i. > > Is support for CMA threads still useful? Note that I'm talking > just about hpux-thread.o, not about support for HP/UX 10.20. The > PR is still open and still listed in PROBLEMS, but it looks like > Dave Anglin fixed it on 2004-11-22, so maybe it is. Or maybe > support for that platform is useful but not support for OSF > threads. I think CMA threads is still useful for HP-UX 10. GCC 4.3 still builds on this target with DCE/CMA thread support. I will continue to support HP-UX 10 in GCC at least for HP-UX 10. This generation of HP machines have proved very reliable and many are still running. I have built 6.5 on HP-UX 10.20. I will report back on the current status of the cvs source. > hpacc-abi.c > > Support for the HP aCC C++ compiler, on PA. HP-UX for Itanium > doesn't use this; GCC for hppa-hpux doesn't use it either. See > next item. > > hpread.c > > Support for symbolic debug info for the HP compilers on HP-UX. > This is the equivalent of dwarf2read, not the equivalent of > elfread; removing it won't interfere with non-symbolic > debugging or with debugging SOM executables produced by the > GNU tools. I raised the question of removing this support on > the GDB mailing list earlier in 2006 and there was general > support. The only people who spoke up saying they used HP's > compilers on HP-UX said that they use HP's fork of GDB > there anyway. > > hpux-thread.c In my opinion, support for the debug info used by HP compilers can be removed as it hasn't been supported for a number of years. We just need dwarf and stabs support for PA-RISC. The downside is that removing unused stuff and doing various cleanups has destabilized this target over the past few years. For those that want support for HP compilers, there's the wdb port from HP. > vax-nat.c > > Used for vax-bsd (not NetBSD or OpenBSD) and vax-ultrix. Even if these targets might still build, I think they can be removed. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-17 1:24 ` John David Anglin @ 2006-12-17 11:46 ` Mark Kettenis 2007-01-01 16:34 ` Daniel Jacobowitz 2006-12-18 3:03 ` John David Anglin 1 sibling, 1 reply; 27+ messages in thread From: Mark Kettenis @ 2006-12-17 11:46 UTC (permalink / raw) To: John David Anglin; +Cc: Daniel Jacobowitz, gdb, dave.anglin, brobecker > > hppa*-*-hiux* > > Definitely obsolete. However, there is no real benefit in dropping this, since the configuration is identical to hppa*-*-hpux*. > > vax-*-* > > > > (But not NetBSD or OpenBSD) > > Ultrix still might work but I doubt anybody other than myself still > has such a machine running. There still some interest in linux. I lost my SIMH Ultrix image to a disk crash a while ago. However, I'm somewhat attached to vax-nat.c, since it is the best example of the way the traditional UNIX ptrace() worked. > > > osf-share > > > > Something from this directory is used to build hpux-thread.o. > > The rest of it is unused. hpux-thread.o is only enabled for > > CMA threads, and PROBLEMS says (build/1411) that this hasn't > > built at least since GDB 6.5. HP/UX has deprecated CMA threads > > as of 11i. > > > > Is support for CMA threads still useful? Note that I'm talking > > just about hpux-thread.o, not about support for HP/UX 10.20. The > > PR is still open and still listed in PROBLEMS, but it looks like > > Dave Anglin fixed it on 2004-11-22, so maybe it is. Or maybe > > support for that platform is useful but not support for OSF > > threads. > > I think CMA threads is still useful for HP-UX 10. GCC 4.3 still builds > on this target with DCE/CMA thread support. I will continue to support > HP-UX 10 in GCC at least for HP-UX 10. This generation of HP machines > have proved very reliable and many are still running. > > I have built 6.5 on HP-UX 10.20. I will report back on the current > status of the cvs source. The build problems on HP-UX 10.20 seem to depend on which OS patches are installed. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-17 11:46 ` Mark Kettenis @ 2007-01-01 16:34 ` Daniel Jacobowitz 0 siblings, 0 replies; 27+ messages in thread From: Daniel Jacobowitz @ 2007-01-01 16:34 UTC (permalink / raw) To: Mark Kettenis; +Cc: John David Anglin, gdb, dave.anglin, brobecker On Sun, Dec 17, 2006 at 12:46:27PM +0100, Mark Kettenis wrote: > > > hppa*-*-hiux* > > > > Definitely obsolete. > > However, there is no real benefit in dropping this, since the configuration > is identical to hppa*-*-hpux*. True. No benefit in keeping it, either. > > > vax-*-* > > > > > > (But not NetBSD or OpenBSD) > > > > Ultrix still might work but I doubt anybody other than myself still > > has such a machine running. There still some interest in linux. > > I lost my SIMH Ultrix image to a disk crash a while ago. However, I'm > somewhat attached to vax-nat.c, since it is the best example of the > way the traditional UNIX ptrace() worked. I'll take this as a reason to leave the vax-ultrix target, for now. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-17 1:24 ` John David Anglin 2006-12-17 11:46 ` Mark Kettenis @ 2006-12-18 3:03 ` John David Anglin 2006-12-18 3:43 ` John David Anglin 2006-12-20 16:07 ` John David Anglin 1 sibling, 2 replies; 27+ messages in thread From: John David Anglin @ 2006-12-18 3:03 UTC (permalink / raw) To: John David Anglin; +Cc: drow, gdb, dave.anglin, brobecker, kettenis > I have built 6.5 on HP-UX 10.20. I will report back on the current > status of the cvs source. The current cvs still builds on HP-UX 10.20. I used GCC 4.1.1. The system has a complete HP patch set. I had the cma hack applied to configure to disable thread support. The only minor problem was I had to define CPPFLAGS as follows prior to running configure: export CPPFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" If I don't do this, there's a declaration conflict for fseeko and fseeko64. Without these defines, configure doesn't find the routines in <stdio.h>. However, the defines are used during the build and this a conflict occurs with gdb's internal declaration of these two routines. The define for _LARGEFILE_SOURCE may be implicit. _LARGEFILE64_SOURCE is definitely by gdb. I think the same issue is present under HP-UX 11. The testsuite is running... I'll check building without the cma hack. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-18 3:03 ` John David Anglin @ 2006-12-18 3:43 ` John David Anglin 2006-12-20 16:07 ` John David Anglin 1 sibling, 0 replies; 27+ messages in thread From: John David Anglin @ 2006-12-18 3:43 UTC (permalink / raw) To: John David Anglin; +Cc: drow, gdb, dave.anglin, brobecker, kettenis > The testsuite is running... Results below. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) Test Run By dave on Sun Dec 17 01:54:02 2006 Native configuration is hppa1.1-hp-hpux10.20 === gdb tests === Schedule of variations: unix Running target unix Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target. Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target. Using ../../../src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file. Running ../../../src/gdb/testsuite/gdb.ada/array_return.exp ... Running ../../../src/gdb/testsuite/gdb.ada/arrayidx.exp ... Running ../../../src/gdb/testsuite/gdb.ada/exec_changed.exp ... Running ../../../src/gdb/testsuite/gdb.ada/fixed_points.exp ... Running ../../../src/gdb/testsuite/gdb.ada/null_record.exp ... FAIL: gdb.ada/null_record.exp: ptype on null record Running ../../../src/gdb/testsuite/gdb.ada/packed_array.exp ... Running ../../../src/gdb/testsuite/gdb.ada/start.exp ... Running ../../../src/gdb/testsuite/gdb.ada/watch_arg.exp ... FAIL: gdb.ada/watch_arg.exp: Continuing to second breakpoint Running ../../../src/gdb/testsuite/gdb.arch/alpha-step.exp ... Running ../../../src/gdb/testsuite/gdb.arch/altivec-abi.exp ... Running ../../../src/gdb/testsuite/gdb.arch/altivec-regs.exp ... Running ../../../src/gdb/testsuite/gdb.arch/e500-abi.exp ... Running ../../../src/gdb/testsuite/gdb.arch/e500-prologue.exp ... Running ../../../src/gdb/testsuite/gdb.arch/e500-regs.exp ... Running ../../../src/gdb/testsuite/gdb.arch/gdb1291.exp ... Running ../../../src/gdb/testsuite/gdb.arch/gdb1431.exp ... Running ../../../src/gdb/testsuite/gdb.arch/gdb1558.exp ... Running ../../../src/gdb/testsuite/gdb.arch/i386-prologue.exp ... Running ../../../src/gdb/testsuite/gdb.arch/i386-size.exp ... Running ../../../src/gdb/testsuite/gdb.arch/i386-sse.exp ... Running ../../../src/gdb/testsuite/gdb.arch/i386-unwind.exp ... Running ../../../src/gdb/testsuite/gdb.arch/pa-nullify.exp ... Running ../../../src/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp ... Running ../../../src/gdb/testsuite/gdb.arch/powerpc-prologue.exp ... Running ../../../src/gdb/testsuite/gdb.arch/thumb-prologue.exp ... Running ../../../src/gdb/testsuite/gdb.asm/asm-source.exp ... Running ../../../src/gdb/testsuite/gdb.base/a2-run.exp ... Running ../../../src/gdb/testsuite/gdb.base/advance.exp ... Running ../../../src/gdb/testsuite/gdb.base/all-bin.exp ... FAIL: gdb.base/all-bin.exp: continuing after dummy() FAIL: gdb.base/all-bin.exp: print value of v_int+v_char FAIL: gdb.base/all-bin.exp: print value of v_int+v_short FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_char FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_char FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_short FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_short FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_int FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_int FAIL: gdb.base/all-bin.exp: print value of v_int+v_long FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_long FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_long FAIL: gdb.base/all-bin.exp: print value of v_int+v_float FAIL: gdb.base/all-bin.exp: print value of v_int+v_double FAIL: gdb.base/all-bin.exp: print value of v_int<=v_short FAIL: gdb.base/all-bin.exp: print value of v_int<=v_signed_short FAIL: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_short FAIL: gdb.base/all-bin.exp: print value of v_int&&v_short FAIL: gdb.base/all-bin.exp: print value of v_int&&v_signed_char FAIL: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_char FAIL: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_short FAIL: gdb.base/all-bin.exp: print value of v_int&&v_signed_int FAIL: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_int FAIL: gdb.base/all-bin.exp: print value of v_int&&v_long FAIL: gdb.base/all-bin.exp: print value of v_int&&v_signed_long FAIL: gdb.base/all-bin.exp: print value of v_int&&v_float Running ../../../src/gdb/testsuite/gdb.base/annota1.exp ... FAIL: gdb.base/annota1.exp: breakpoint info FAIL: gdb.base/annota1.exp: run until main breakpoint FAIL: gdb.base/annota1.exp: print array FAIL: gdb.base/annota1.exp: break at 28 Running ../../../src/gdb/testsuite/gdb.base/annota3.exp ... FAIL: gdb.base/annota3.exp: breakpoint info (pattern 3 + sentinel) FAIL: gdb.base/annota3.exp: run until main breakpoint (pattern 8) FAIL: gdb.base/annota3.exp: print array (pattern 2 + sentinel) FAIL: gdb.base/annota3.exp: break at 28 (pattern 2 + sentinel) FAIL: gdb.base/annota3.exp: annotate ignore count change (pattern 8) FAIL: gdb.base/annota3.exp: next to exit loop (pattern 4) FAIL: gdb.base/annota3.exp: breakpoint ignore count (pattern 4) Running ../../../src/gdb/testsuite/gdb.base/args.exp ... Running ../../../src/gdb/testsuite/gdb.base/arithmet.exp ... Running ../../../src/gdb/testsuite/gdb.base/arrayidx.exp ... Running ../../../src/gdb/testsuite/gdb.base/assign.exp ... FAIL: gdb.base/assign.exp: continuing after dummy() FAIL: gdb.base/assign.exp: v_int+=v_char FAIL: gdb.base/assign.exp: v_int+=v_signed_char FAIL: gdb.base/assign.exp: v_int+=v_unsigned_char FAIL: gdb.base/assign.exp: v_int+=v_short FAIL: gdb.base/assign.exp: v_int+=v_signed_short FAIL: gdb.base/assign.exp: v_int+=v_unsigned_short FAIL: gdb.base/assign.exp: v_int+=v_signed_int FAIL: gdb.base/assign.exp: v_int+=v_unsigned_int FAIL: gdb.base/assign.exp: v_int+=v_long FAIL: gdb.base/assign.exp: v_int+=v_signed_long FAIL: gdb.base/assign.exp: v_int+=v_unsigned_long FAIL: gdb.base/assign.exp: v_int+=v_float FAIL: gdb.base/assign.exp: v_int+=v_double Running ../../../src/gdb/testsuite/gdb.base/async.exp ... Running ../../../src/gdb/testsuite/gdb.base/attach.exp ... Running ../../../src/gdb/testsuite/gdb.base/auxv.exp ... Running ../../../src/gdb/testsuite/gdb.base/bang.exp ... Running ../../../src/gdb/testsuite/gdb.base/bfp-test.exp ... Running ../../../src/gdb/testsuite/gdb.base/bigcore.exp ... Running ../../../src/gdb/testsuite/gdb.base/bitfields.exp ... Running ../../../src/gdb/testsuite/gdb.base/bitfields2.exp ... Running ../../../src/gdb/testsuite/gdb.base/bitops.exp ... Running ../../../src/gdb/testsuite/gdb.base/break.exp ... FAIL: gdb.base/break.exp: breakpoint info FAIL: gdb.base/break.exp: run until function breakpoint FAIL: gdb.base/break.exp: Temporary breakpoint info FAIL: gdb.base/break.exp: set catch vfork, never expected to trigger Running ../../../src/gdb/testsuite/gdb.base/call-ar-st.exp ... FAIL: gdb.base/call-ar-st.exp: check args of sum_array_print FAIL: gdb.base/call-ar-st.exp: print print_long_arg_list (pattern 1) Running ../../../src/gdb/testsuite/gdb.base/call-rt-st.exp ... Running ../../../src/gdb/testsuite/gdb.base/call-sc.exp ... FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tf FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tld Running ../../../src/gdb/testsuite/gdb.base/call-strs.exp ... FAIL: gdb.base/call-strs.exp: step after assignment to s FAIL: gdb.base/call-strs.exp: next over strcpy FAIL: gdb.base/call-strs.exp: print buf FAIL: gdb.base/call-strs.exp: print s FAIL: gdb.base/call-strs.exp: print str_func1(s) FAIL: gdb.base/call-strs.exp: print str_func1("test string") FAIL: gdb.base/call-strs.exp: call str_func1(s) FAIL: gdb.base/call-strs.exp: call str_func1("test string") FAIL: gdb.base/call-strs.exp: print str_func1(buf) FAIL: gdb.base/call-strs.exp: call str_func1(buf) FAIL: gdb.base/call-strs.exp: print str_func("a","b","c","d","e","f","g") FAIL: gdb.base/call-strs.exp: call str_func("a","b","c","d","e","f","g") FAIL: gdb.base/call-strs.exp: print str_func(s,s,s,s,s,s,s) FAIL: gdb.base/call-strs.exp: call str_func(s,s,s,s,s,s,s) Running ../../../src/gdb/testsuite/gdb.base/callfuncs.exp ... FAIL: gdb.base/callfuncs.exp: next to t_double_values FAIL: gdb.base/callfuncs.exp: next to t_structs_c FAIL: gdb.base/callfuncs.exp: p t_float_values(3.14159,-2.3765) FAIL: gdb.base/callfuncs.exp: p t_float_values(float_val1,float_val2) FAIL: gdb.base/callfuncs.exp: p t_float_values(3.14159,float_val2) FAIL: gdb.base/callfuncs.exp: p t_float_values(float_val1,-2.3765) KPASS: gdb.base/callfuncs.exp: p t_func_values(add,func_val2) (PRMS gdb/1457) KPASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,doubleit) (PRMS gdb/1457) KPASS: gdb.base/callfuncs.exp: p t_call_add(add,3,4) (PRMS gdb/1457) FAIL: gdb.base/callfuncs.exp: gdb function calls preserve register contents Running ../../../src/gdb/testsuite/gdb.base/charset.exp ... Running ../../../src/gdb/testsuite/gdb.base/checkpoint.exp ... Running ../../../src/gdb/testsuite/gdb.base/chng-syms.exp ... Running ../../../src/gdb/testsuite/gdb.base/code-expr.exp ... Running ../../../src/gdb/testsuite/gdb.base/commands.exp ... Running ../../../src/gdb/testsuite/gdb.base/completion.exp ... Running ../../../src/gdb/testsuite/gdb.base/complex.exp ... Running ../../../src/gdb/testsuite/gdb.base/cond-expr.exp ... Running ../../../src/gdb/testsuite/gdb.base/condbreak.exp ... FAIL: gdb.base/condbreak.exp: breakpoint info Running ../../../src/gdb/testsuite/gdb.base/consecutive.exp ... Running ../../../src/gdb/testsuite/gdb.base/constvars.exp ... XPASS: gdb.base/constvars.exp: ptype qux1 XPASS: gdb.base/constvars.exp: ptype crass Running ../../../src/gdb/testsuite/gdb.base/corefile.exp ... FAIL: gdb.base/corefile.exp: args: execfile -core=corefile FAIL: gdb.base/corefile.exp: core-file command FAIL: gdb.base/corefile.exp: print func2::coremaker_local FAIL: gdb.base/corefile.exp: backtrace in corefile.exp Running ../../../src/gdb/testsuite/gdb.base/cursal.exp ... FAIL: gdb.base/cursal.exp: list before run FAIL: gdb.base/cursal.exp: list in main FAIL: gdb.base/cursal.exp: list size 3 Running ../../../src/gdb/testsuite/gdb.base/cvexpr.exp ... Running ../../../src/gdb/testsuite/gdb.base/dbx.exp ... FAIL: gdb.base/dbx.exp: stop in main FAIL: gdb.base/dbx.exp: status Running ../../../src/gdb/testsuite/gdb.base/default.exp ... FAIL: gdb.base/default.exp: info set (timeout) FAIL: gdb.base/default.exp: show (timeout) Running ../../../src/gdb/testsuite/gdb.base/define.exp ... FAIL: gdb.base/define.exp: use user command: nextwhere FAIL: gdb.base/define.exp: use hook-stop command Running ../../../src/gdb/testsuite/gdb.base/del.exp ... Running ../../../src/gdb/testsuite/gdb.base/detach.exp ... Running ../../../src/gdb/testsuite/gdb.base/display.exp ... Running ../../../src/gdb/testsuite/gdb.base/dump.exp ... Running ../../../src/gdb/testsuite/gdb.base/echo.exp ... Running ../../../src/gdb/testsuite/gdb.base/ena-dis-br.exp ... Running ../../../src/gdb/testsuite/gdb.base/ending-run.exp ... Running ../../../src/gdb/testsuite/gdb.base/environ.exp ... Running ../../../src/gdb/testsuite/gdb.base/eval-skip.exp ... Running ../../../src/gdb/testsuite/gdb.base/exprs.exp ... Running ../../../src/gdb/testsuite/gdb.base/fileio.exp ... Running ../../../src/gdb/testsuite/gdb.base/finish.exp ... Running ../../../src/gdb/testsuite/gdb.base/float.exp ... Running ../../../src/gdb/testsuite/gdb.base/foll-exec.exp ... FAIL: gdb.base/foll-exec.exp: step to exec call FAIL: gdb.base/foll-exec.exp: step through execlp call FAIL: gdb.base/foll-exec.exp: step after execlp call FAIL: gdb.base/foll-exec.exp: print execd-program/global_i (after execlp) FAIL: gdb.base/foll-exec.exp: print execd-program/local_j (after execlp) FAIL: gdb.base/foll-exec.exp: hit catch exec FAIL: gdb.base/foll-exec.exp: info shows catchpoint exec pathname FAIL: gdb.base/foll-exec.exp: continue after hit catch exec FAIL: gdb.base/foll-exec.exp: step through execl call FAIL: gdb.base/foll-exec.exp: step after execl call FAIL: gdb.base/foll-exec.exp: print execd-program/local_j (after execl) FAIL: gdb.base/foll-exec.exp: step through execv call FAIL: gdb.base/foll-exec.exp: step after execv call FAIL: gdb.base/foll-exec.exp: print execd-program/local_j (after execv) FAIL: gdb.base/foll-exec.exp: continue through exec Running ../../../src/gdb/testsuite/gdb.base/foll-fork.exp ... FAIL: gdb.base/foll-fork.exp: default parent follow, no catchpoints FAIL: gdb.base/foll-fork.exp: explicit parent follow, no catchpoints FAIL: gdb.base/foll-fork.exp: explicit child follow, no catchpoints FAIL: gdb.base/foll-fork.exp: set follow child, hit tbreak FAIL: gdb.base/foll-fork.exp: set follow parent, hit tbreak Running ../../../src/gdb/testsuite/gdb.base/foll-vfork.exp ... Running ../../../src/gdb/testsuite/gdb.base/freebpcmd.exp ... Running ../../../src/gdb/testsuite/gdb.base/funcargs.exp ... FAIL: gdb.base/funcargs.exp: backtrace from call6c (pattern 4 + sentinel) FAIL: gdb.base/funcargs.exp: backtrace from call6d (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6e (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6f (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6g (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6h (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6i (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6j (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call6k (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7c (pattern 4 + sentinel) FAIL: gdb.base/funcargs.exp: backtrace from call7d (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7e (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7f (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7g (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7h (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7i (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7j (pattern 4) FAIL: gdb.base/funcargs.exp: backtrace from call7k (pattern 4) FAIL: gdb.base/funcargs.exp: recursive passing of structs by value (pattern 2) Running ../../../src/gdb/testsuite/gdb.base/gcore.exp ... Running ../../../src/gdb/testsuite/gdb.base/gdb1056.exp ... Running ../../../src/gdb/testsuite/gdb.base/gdb1090.exp ... Running ../../../src/gdb/testsuite/gdb.base/gdb1250.exp ... Running ../../../src/gdb/testsuite/gdb.base/gdb1555.exp ... Running ../../../src/gdb/testsuite/gdb.base/gdb1821.exp ... Running ../../../src/gdb/testsuite/gdb.base/gdbvars.exp ... Running ../../../src/gdb/testsuite/gdb.base/help.exp ... Running ../../../src/gdb/testsuite/gdb.base/huge.exp ... FAIL: gdb.base/huge.exp: print a very large data object (timeout) Running ../../../src/gdb/testsuite/gdb.base/ifelse.exp ... Running ../../../src/gdb/testsuite/gdb.base/info-proc.exp ... Running ../../../src/gdb/testsuite/gdb.base/interp.exp ... Running ../../../src/gdb/testsuite/gdb.base/interrupt.exp ... FAIL: gdb.base/interrupt.exp: call function when asleep (wrong output) FAIL: gdb.base/interrupt.exp: call function a second time Running ../../../src/gdb/testsuite/gdb.base/jump.exp ... Running ../../../src/gdb/testsuite/gdb.base/langs.exp ... FAIL: gdb.base/langs.exp: backtrace in langs.exp FAIL: gdb.base/langs.exp: up to fsub in langs.exp FAIL: gdb.base/langs.exp: show language at fsub in langs.exp FAIL: gdb.base/langs.exp: up to langs0__2do in langs.exp FAIL: gdb.base/langs.exp: show language at langs0__2do in langs.exp FAIL: gdb.base/langs.exp: up to main in langs.exp FAIL: gdb.base/langs.exp: show language at main in langs.exp Running ../../../src/gdb/testsuite/gdb.base/lineinc.exp ... Running ../../../src/gdb/testsuite/gdb.base/list.exp ... Running ../../../src/gdb/testsuite/gdb.base/logical.exp ... Running ../../../src/gdb/testsuite/gdb.base/long_long.exp ... FAIL: gdb.base/long_long.exp: p/f *(long long *)ll FAIL: gdb.base/long_long.exp: x/2gf g Running ../../../src/gdb/testsuite/gdb.base/macscp.exp ... Running ../../../src/gdb/testsuite/gdb.base/maint.exp ... FAIL: gdb.base/maint.exp: maint info sections .text FAIL: gdb.base/maint.exp: maint info sections CODE FAIL: gdb.base/maint.exp: maint info sections DATA FAIL: gdb.base/maint.exp: maint info breakpoints Running ../../../src/gdb/testsuite/gdb.base/mips_pro.exp ... Running ../../../src/gdb/testsuite/gdb.base/miscexprs.exp ... Running ../../../src/gdb/testsuite/gdb.base/multi-forks.exp ... FAIL: gdb.base/multi-forks.exp: follow child, print pids FAIL: gdb.base/multi-forks.exp: help set detach FAIL: gdb.base/multi-forks.exp: show detach default on FAIL: gdb.base/multi-forks.exp: info fork 1 ERROR: Undefined command "restart 1". FAIL: gdb.base/multi-forks.exp: Run to exit 2 FAIL: gdb.base/multi-forks.exp: info fork 2 ERROR: Undefined command "restart 2". FAIL: gdb.base/multi-forks.exp: Run to exit 3 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 3 ERROR: Undefined command "restart 3". FAIL: gdb.base/multi-forks.exp: Run to exit 4 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 4 ERROR: Undefined command "restart 4". FAIL: gdb.base/multi-forks.exp: Run to exit 5 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 5 ERROR: Undefined command "restart 5". FAIL: gdb.base/multi-forks.exp: Run to exit 6 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 6 ERROR: Undefined command "restart 6". FAIL: gdb.base/multi-forks.exp: Run to exit 7 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 7 ERROR: Undefined command "restart 7". FAIL: gdb.base/multi-forks.exp: Run to exit 8 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 8 ERROR: Undefined command "restart 8". FAIL: gdb.base/multi-forks.exp: Run to exit 9 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 9 ERROR: Undefined command "restart 9". FAIL: gdb.base/multi-forks.exp: Run to exit 10 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 10 ERROR: Undefined command "restart 10". FAIL: gdb.base/multi-forks.exp: Run to exit 11 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 11 ERROR: Undefined command "restart 11". FAIL: gdb.base/multi-forks.exp: Run to exit 12 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 12 ERROR: Undefined command "restart 12". FAIL: gdb.base/multi-forks.exp: Run to exit 13 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 13 ERROR: Undefined command "restart 13". FAIL: gdb.base/multi-forks.exp: Run to exit 14 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 14 ERROR: Undefined command "restart 14". FAIL: gdb.base/multi-forks.exp: Run to exit 15 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 15 ERROR: Undefined command "restart 15". FAIL: gdb.base/multi-forks.exp: Run to exit 16 (the program is no longer running) FAIL: gdb.base/multi-forks.exp: info fork 16 ERROR: Undefined command "restart 0". FAIL: gdb.base/multi-forks.exp: Detach 1 FAIL: gdb.base/multi-forks.exp: Detach 2 FAIL: gdb.base/multi-forks.exp: Detach 3 FAIL: gdb.base/multi-forks.exp: Detach 4 FAIL: gdb.base/multi-forks.exp: Did delete 5 FAIL: gdb.base/multi-forks.exp: Did delete 6 FAIL: gdb.base/multi-forks.exp: Did delete 7 FAIL: gdb.base/multi-forks.exp: Did delete 8 FAIL: gdb.base/multi-forks.exp: Did delete 9 FAIL: gdb.base/multi-forks.exp: Did delete 10 FAIL: gdb.base/multi-forks.exp: Did delete 11 FAIL: gdb.base/multi-forks.exp: Did delete 12 FAIL: gdb.base/multi-forks.exp: Did delete 13 FAIL: gdb.base/multi-forks.exp: Did delete 14 FAIL: gdb.base/multi-forks.exp: Did delete 15 Running ../../../src/gdb/testsuite/gdb.base/nodebug.exp ... FAIL: gdb.base/nodebug.exp: backtrace from inner in nodebug.exp Running ../../../src/gdb/testsuite/gdb.base/opaque.exp ... Running ../../../src/gdb/testsuite/gdb.base/overlays.exp ... Running ../../../src/gdb/testsuite/gdb.base/page.exp ... Running ../../../src/gdb/testsuite/gdb.base/pc-fp.exp ... Running ../../../src/gdb/testsuite/gdb.base/pending.exp ... Running ../../../src/gdb/testsuite/gdb.base/pointers.exp ... FAIL: gdb.base/pointers.exp: continuing after dummy() FAIL: gdb.base/pointers.exp: print object pointed to FAIL: gdb.base/pointers.exp: print object pointed to FAIL: gdb.base/pointers.exp: pointer assignment and increment FAIL: gdb.base/pointers.exp: pointer decrement and assignment FAIL: gdb.base/pointers.exp: print array element through pointer FAIL: gdb.base/pointers.exp: print array element through pointer FAIL: gdb.base/pointers.exp: print through ptr to ptr Running ../../../src/gdb/testsuite/gdb.base/prelink.exp ... sh: prelink: not found. Running ../../../src/gdb/testsuite/gdb.base/printcmds.exp ... Running ../../../src/gdb/testsuite/gdb.base/psymtab.exp ... Running ../../../src/gdb/testsuite/gdb.base/ptr-typedef.exp ... Running ../../../src/gdb/testsuite/gdb.base/ptype.exp ... Running ../../../src/gdb/testsuite/gdb.base/radix.exp ... Running ../../../src/gdb/testsuite/gdb.base/readline.exp ... Running ../../../src/gdb/testsuite/gdb.base/recurse.exp ... FAIL: gdb.base/recurse.exp: continue to recurse (a = 7) FAIL: gdb.base/recurse.exp: continue to recurse (a = 6) FAIL: gdb.base/recurse.exp: continue to recurse (a = 5) FAIL: gdb.base/recurse.exp: continue to second instance watchpoint, first time FAIL: gdb.base/recurse.exp: continue to recurse (a = 4) FAIL: gdb.base/recurse.exp: continue to recurse (a = 3) FAIL: gdb.base/recurse.exp: continue to recurse (a = 2) FAIL: gdb.base/recurse.exp: continue to recurse (a = 1) FAIL: gdb.base/recurse.exp: continue to second instance watchpoint, second time FAIL: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope FAIL: gdb.base/recurse.exp: continue to first instance watchpoint, second time FAIL: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope (the program is no longer running) Running ../../../src/gdb/testsuite/gdb.base/regs.exp ... Running ../../../src/gdb/testsuite/gdb.base/relational.exp ... Running ../../../src/gdb/testsuite/gdb.base/relocate.exp ... FAIL: gdb.base/relocate.exp: functions have different addresses FAIL: gdb.base/relocate.exp: add-symbol-file relocate.o $offset FAIL: gdb.base/relocate.exp: function foo has a different address FAIL: gdb.base/relocate.exp: print static_foo FAIL: gdb.base/relocate.exp: print static_bar Running ../../../src/gdb/testsuite/gdb.base/remote.exp ... Running ../../../src/gdb/testsuite/gdb.base/remotetimeout.exp ... Running ../../../src/gdb/testsuite/gdb.base/reread.exp ... Running ../../../src/gdb/testsuite/gdb.base/restore.exp ... Running ../../../src/gdb/testsuite/gdb.base/return.exp ... Running ../../../src/gdb/testsuite/gdb.base/return2.exp ... Running ../../../src/gdb/testsuite/gdb.base/savedregs.exp ... Running ../../../src/gdb/testsuite/gdb.base/scope.exp ... FAIL: gdb.base/scope.exp: next over init0() in main FAIL: gdb.base/scope.exp: print filelocal_bss FAIL: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main FAIL: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss Running ../../../src/gdb/testsuite/gdb.base/sect-cmd.exp ... Running ../../../src/gdb/testsuite/gdb.base/sep.exp ... Running ../../../src/gdb/testsuite/gdb.base/sepdebug.exp ... Running ../../../src/gdb/testsuite/gdb.base/sepsymtab.exp ... Running ../../../src/gdb/testsuite/gdb.base/setshow.exp ... Running ../../../src/gdb/testsuite/gdb.base/setvar.exp ... Running ../../../src/gdb/testsuite/gdb.base/shlib-call.exp ... Running ../../../src/gdb/testsuite/gdb.base/shreloc.exp ... Running ../../../src/gdb/testsuite/gdb.base/sigall.exp ... Running ../../../src/gdb/testsuite/gdb.base/sigaltstack.exp ... FAIL: gdb.base/sigaltstack.exp: backtrace (pattern 5) Running ../../../src/gdb/testsuite/gdb.base/sigbpt.exp ... FAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler FAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler FAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler FAIL: gdb.base/sigbpt.exp: cont; continue to breakpoint at fault FAIL: gdb.base/sigbpt.exp: cont; stepi fault FAIL: gdb.base/sigbpt.exp: cont bp after segv; continue to breakpoint at fault FAIL: gdb.base/sigbpt.exp: cont bp after segv; stepi fault FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; continue to breakpoint at fault FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; stepi fault Running ../../../src/gdb/testsuite/gdb.base/siginfo.exp ... Running ../../../src/gdb/testsuite/gdb.base/signals.exp ... FAIL: gdb.base/signals.exp: next to signal FAIL: gdb.base/signals.exp: next to alarm #1 FAIL: gdb.base/signals.exp: next to ++count #1 FAIL: gdb.base/signals.exp: p count #1 FAIL: gdb.base/signals.exp: next to alarm #2 FAIL: gdb.base/signals.exp: next to ++count #2 FAIL: gdb.base/signals.exp: p count #2 Running ../../../src/gdb/testsuite/gdb.base/signull.exp ... FAIL: gdb.base/signull.exp: code; backtrace from keeper through SIGSEGV Running ../../../src/gdb/testsuite/gdb.base/sigrepeat.exp ... Running ../../../src/gdb/testsuite/gdb.base/sigstep.exp ... FAIL: gdb.base/sigstep.exp: stepi from handleri; leave signal trampoline FAIL: gdb.base/sigstep.exp: next from handler; leave handler FAIL: gdb.base/sigstep.exp: nexti from handleri; leave signal trampoline Running ../../../src/gdb/testsuite/gdb.base/sizeof.exp ... FAIL: gdb.base/sizeof.exp: check sizeof "char" FAIL: gdb.base/sizeof.exp: check sizeof "short" FAIL: gdb.base/sizeof.exp: check sizeof "int" FAIL: gdb.base/sizeof.exp: check sizeof "long" FAIL: gdb.base/sizeof.exp: check sizeof "long long" FAIL: gdb.base/sizeof.exp: check sizeof "void *" FAIL: gdb.base/sizeof.exp: check sizeof "void (*)(void)" FAIL: gdb.base/sizeof.exp: check sizeof "float" FAIL: gdb.base/sizeof.exp: check sizeof "double" FAIL: gdb.base/sizeof.exp: check sizeof "long double" FAIL: gdb.base/sizeof.exp: check valueof "'\377'" FAIL: gdb.base/sizeof.exp: check valueof "(int) (char) -1" FAIL: gdb.base/sizeof.exp: check valueof "(int) (signed char) -1" FAIL: gdb.base/sizeof.exp: check valueof "(int) (unsigned char) -1" Running ../../../src/gdb/testsuite/gdb.base/so-impl-ld.exp ... Running ../../../src/gdb/testsuite/gdb.base/so-indr-cl.exp ... Running ../../../src/gdb/testsuite/gdb.base/solib-weak.exp ... gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported gdb compile failed, ../../../src/gdb/testsuite/gdb.base/weaklib1.c:22: warning: weak declaration of 'bar' not supported Running ../../../src/gdb/testsuite/gdb.base/solib.exp ... FAIL: gdb.base/solib.exp: set generic catch load FAIL: gdb.base/solib.exp: caught generic solib load FAIL: gdb.base/solib.exp: continue after generic catch load FAIL: gdb.base/solib.exp: set generic catch unload FAIL: gdb.base/solib.exp: caught generic solib unload FAIL: gdb.base/solib.exp: set specific catch load FAIL: gdb.base/solib.exp: caught specific solib load FAIL: gdb.base/solib.exp: set specific catch unload FAIL: gdb.base/solib.exp: caught specific solib unload FAIL: gdb.base/solib.exp: set specific catch load for nonloaded shlib FAIL: gdb.base/solib.exp: set specific catch unload for nonloaded shlib FAIL: gdb.base/solib.exp: specific catch load doesn't trigger inappropriately FAIL: gdb.base/solib.exp: specific catch unload doesn't trigger inappropriately FAIL: gdb.base/solib.exp: break on main (timeout) FAIL: gdb.base/solib.exp: hit breakpoint at main (timeout) FAIL: gdb.base/solib.exp: break on indirect call (timeout) FAIL: gdb.base/solib.exp: continue to break on indirect call (timeout) FAIL: gdb.base/solib.exp: step into indirect call from a shared library (timeout) Running ../../../src/gdb/testsuite/gdb.base/source.exp ... Running ../../../src/gdb/testsuite/gdb.base/start.exp ... Running ../../../src/gdb/testsuite/gdb.base/step-bt.exp ... Running ../../../src/gdb/testsuite/gdb.base/step-line.exp ... Running ../../../src/gdb/testsuite/gdb.base/step-test.exp ... FAIL: gdb.base/step-test.exp: next 1 FAIL: gdb.base/step-test.exp: step 1 FAIL: gdb.base/step-test.exp: next 2 FAIL: gdb.base/step-test.exp: step 3 FAIL: gdb.base/step-test.exp: next 3 FAIL: gdb.base/step-test.exp: next over FAIL: gdb.base/step-test.exp: step out FAIL: gdb.base/step-test.exp: stepi to next line FAIL: gdb.base/step-test.exp: stepi: finish call FAIL: gdb.base/step-test.exp: nexti over function FAIL: gdb.base/step-test.exp: large struct by value Running ../../../src/gdb/testsuite/gdb.base/store.exp ... FAIL: gdb.base/store.exp: var charest l; print incremented l, expecting 2 ..002. FAIL: gdb.base/store.exp: var short l; print incremented l, expecting 2 FAIL: gdb.base/store.exp: continue to wack_doublest FAIL: gdb.base/store.exp: var doublest l; next doublest FAIL: gdb.base/store.exp: var doublest l; print old l, expecting -1 FAIL: gdb.base/store.exp: var doublest l; print old r, expecting -2 FAIL: gdb.base/store.exp: var doublest l; next over add call FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2 FAIL: gdb.base/store.exp: continue to add_doublest Running ../../../src/gdb/testsuite/gdb.base/structs.exp ... Running ../../../src/gdb/testsuite/gdb.base/structs2.exp ... FAIL: gdb.base/structs2.exp: structs2 sanity check (PRMS 13536) Running ../../../src/gdb/testsuite/gdb.base/subst.exp ... Running ../../../src/gdb/testsuite/gdb.base/term.exp ... FAIL: gdb.base/term.exp: info terminal at breakpoint Running ../../../src/gdb/testsuite/gdb.base/trace-commands.exp ... Running ../../../src/gdb/testsuite/gdb.base/twice.exp ... FAIL: gdb.base/twice.exp: step Running ../../../src/gdb/testsuite/gdb.base/unload.exp ... Running ../../../src/gdb/testsuite/gdb.base/until.exp ... Running ../../../src/gdb/testsuite/gdb.base/varargs.exp ... Running ../../../src/gdb/testsuite/gdb.base/volatile.exp ... XPASS: gdb.base/volatile.exp: ptype qux2 Running ../../../src/gdb/testsuite/gdb.base/watchpoint.exp ... FAIL: gdb.base/watchpoint.exp: read watches disallowed FAIL: gdb.base/watchpoint.exp: access watches disallowed Running ../../../src/gdb/testsuite/gdb.base/whatis-exp.exp ... Running ../../../src/gdb/testsuite/gdb.base/whatis.exp ... FAIL: gdb.base/whatis.exp: whatis using typedef type name Running ../../../src/gdb/testsuite/gdb.cp/ambiguous.exp ... Running ../../../src/gdb/testsuite/gdb.cp/annota2.exp ... FAIL: gdb.cp/annota2.exp: annotate-quit (timeout) Running ../../../src/gdb/testsuite/gdb.cp/annota3.exp ... FAIL: gdb.cp/annota3.exp: watch triggered on a.x FAIL: gdb.cp/annota3.exp: annotate-quit (pattern 1) (timeout) Running ../../../src/gdb/testsuite/gdb.cp/anon-union.exp ... FAIL: gdb.cp/anon-union.exp: next 1 FAIL: gdb.cp/anon-union.exp: next 1 FAIL: gdb.cp/anon-union.exp: print foo 2 FAIL: gdb.cp/anon-union.exp: next 2 FAIL: gdb.cp/anon-union.exp: print foo 4 FAIL: gdb.cp/anon-union.exp: print foo 5 FAIL: gdb.cp/anon-union.exp: print foo 6 FAIL: gdb.cp/anon-union.exp: print foo 7 FAIL: gdb.cp/anon-union.exp: print foo 8 FAIL: gdb.cp/anon-union.exp: print foo 9 FAIL: gdb.cp/anon-union.exp: next 3 FAIL: gdb.cp/anon-union.exp: next 4 FAIL: gdb.cp/anon-union.exp: print w 2 FAIL: gdb.cp/anon-union.exp: print z 2 Running ../../../src/gdb/testsuite/gdb.cp/bool.exp ... Running ../../../src/gdb/testsuite/gdb.cp/breakpoint.exp ... Running ../../../src/gdb/testsuite/gdb.cp/bs15503.exp ... FAIL: gdb.cp/bs15503.exp: print s.length() FAIL: gdb.cp/bs15503.exp: print s[0] FAIL: gdb.cp/bs15503.exp: print s[s.length()-1] FAIL: gdb.cp/bs15503.exp: print (const char *) s.substr(0,4) FAIL: gdb.cp/bs15503.exp: print (const char *) (s=s.substr(0,4)) Running ../../../src/gdb/testsuite/gdb.cp/call-c.exp ... Running ../../../src/gdb/testsuite/gdb.cp/casts.exp ... Running ../../../src/gdb/testsuite/gdb.cp/class2.exp ... Running ../../../src/gdb/testsuite/gdb.cp/classes.exp ... FAIL: gdb.cp/classes.exp: ptype class vB // duplicate synthetic operator: vB(vB const&); FAIL: gdb.cp/classes.exp: ptype class vB // duplicate synthetic operator: vB(); FAIL: gdb.cp/classes.exp: ptype class vC // duplicate synthetic operator: vC(vC const&); FAIL: gdb.cp/classes.exp: ptype class vC // duplicate synthetic operator: vC(); FAIL: gdb.cp/classes.exp: ptype class vD // duplicate synthetic operator: vD(vD const&); FAIL: gdb.cp/classes.exp: ptype class vD // duplicate synthetic operator: vD(); FAIL: gdb.cp/classes.exp: ptype class vE // duplicate synthetic operator: vE(vE const&); FAIL: gdb.cp/classes.exp: ptype class vE // duplicate synthetic operator: vE(); FAIL: gdb.cp/classes.exp: ptype class Foo // unrecognized line type 2: Foo(int, int); FAIL: gdb.cp/classes.exp: ptype class Bar // unrecognized line type 2: Bar(int, int, int); Running ../../../src/gdb/testsuite/gdb.cp/cplusfuncs.exp ... Running ../../../src/gdb/testsuite/gdb.cp/ctti.exp ... Running ../../../src/gdb/testsuite/gdb.cp/demangle.exp ... Running ../../../src/gdb/testsuite/gdb.cp/derivation.exp ... Running ../../../src/gdb/testsuite/gdb.cp/exception.exp ... Running ../../../src/gdb/testsuite/gdb.cp/gdb1355.exp ... Running ../../../src/gdb/testsuite/gdb.cp/hang.exp ... Running ../../../src/gdb/testsuite/gdb.cp/inherit.exp ... FAIL: gdb.cp/inherit.exp: ptype tagless struct FAIL: gdb.cp/inherit.exp: ptype variable of type tagless struct FAIL: gdb.cp/inherit.exp: ptype vB // duplicate synthetic operator: vB(vB const&); FAIL: gdb.cp/inherit.exp: ptype vB // duplicate synthetic operator: vB(); FAIL: gdb.cp/inherit.exp: ptype class vB // duplicate synthetic operator: vB(vB const&); FAIL: gdb.cp/inherit.exp: ptype class vB // duplicate synthetic operator: vB(); FAIL: gdb.cp/inherit.exp: ptype g_vB // duplicate synthetic operator: vB(vB const&); FAIL: gdb.cp/inherit.exp: ptype g_vB // duplicate synthetic operator: vB(); FAIL: gdb.cp/inherit.exp: ptype vC // duplicate synthetic operator: vC(vC const&); FAIL: gdb.cp/inherit.exp: ptype vC // duplicate synthetic operator: vC(); FAIL: gdb.cp/inherit.exp: ptype class vC // duplicate synthetic operator: vC(vC const&); FAIL: gdb.cp/inherit.exp: ptype class vC // duplicate synthetic operator: vC(); FAIL: gdb.cp/inherit.exp: ptype g_vC // duplicate synthetic operator: vC(vC const&); FAIL: gdb.cp/inherit.exp: ptype g_vC // duplicate synthetic operator: vC(); FAIL: gdb.cp/inherit.exp: ptype vD // duplicate synthetic operator: vD(vD const&); FAIL: gdb.cp/inherit.exp: ptype vD // duplicate synthetic operator: vD(); FAIL: gdb.cp/inherit.exp: ptype class vD // duplicate synthetic operator: vD(vD const&); FAIL: gdb.cp/inherit.exp: ptype class vD // duplicate synthetic operator: vD(); FAIL: gdb.cp/inherit.exp: ptype g_vD // duplicate synthetic operator: vD(vD const&); FAIL: gdb.cp/inherit.exp: ptype g_vD // duplicate synthetic operator: vD(); FAIL: gdb.cp/inherit.exp: ptype vE // duplicate synthetic operator: vE(vE const&); FAIL: gdb.cp/inherit.exp: ptype vE // duplicate synthetic operator: vE(); FAIL: gdb.cp/inherit.exp: ptype class vE // duplicate synthetic operator: vE(vE const&); FAIL: gdb.cp/inherit.exp: ptype class vE // duplicate synthetic operator: vE(); FAIL: gdb.cp/inherit.exp: ptype g_vE // duplicate synthetic operator: vE(vE const&); FAIL: gdb.cp/inherit.exp: ptype g_vE // duplicate synthetic operator: vE(); FAIL: gdb.cp/inherit.exp: print type of anonymous union // unrecognized line type 1: class_with_anon_union::$_0; FAIL: gdb.cp/inherit.exp: running to 'inheritance4' in runto (timeout) ERROR: couldn't run to inheritance4 Running ../../../src/gdb/testsuite/gdb.cp/local.exp ... ERROR: couldn't run to marker1 Running ../../../src/gdb/testsuite/gdb.cp/m-data.exp ... Running ../../../src/gdb/testsuite/gdb.cp/m-static.exp ... Running ../../../src/gdb/testsuite/gdb.cp/maint.exp ... Running ../../../src/gdb/testsuite/gdb.cp/member-ptr.exp ... Running ../../../src/gdb/testsuite/gdb.cp/method.exp ... Running ../../../src/gdb/testsuite/gdb.cp/misc.exp ... Running ../../../src/gdb/testsuite/gdb.cp/namespace.exp ... FAIL: gdb.cp/namespace.exp: print AAA::c FAIL: gdb.cp/namespace.exp: print AAA::xyzq('x') FAIL: gdb.cp/namespace.exp: print BBB::CCC::xyzq('x') FAIL: gdb.cp/namespace.exp: print BBB::Class::xyzq FAIL: gdb.cp/namespace.exp: print C::cc FAIL: gdb.cp/namespace.exp: print C::D::cd FAIL: gdb.cp/namespace.exp: print E::cde FAIL: gdb.cp/namespace.exp: print E::ce FAIL: gdb.cp/namespace.exp: ptype C FAIL: gdb.cp/namespace.exp: ptype E FAIL: gdb.cp/namespace.exp: ptype CClass FAIL: gdb.cp/namespace.exp: ptype CClass::NestedClass FAIL: gdb.cp/namespace.exp: ptype C::CClass FAIL: gdb.cp/namespace.exp: ptype C::CClass::NestedClass FAIL: gdb.cp/namespace.exp: ptype C::NestedClass FAIL: gdb.cp/namespace.exp: ptype OtherFileClass FAIL: gdb.cp/namespace.exp: ptype C::OtherFileClass FAIL: gdb.cp/namespace.exp: print F::cXf FAIL: gdb.cp/namespace.exp: print F::cXfX FAIL: gdb.cp/namespace.exp: print G::Xg FAIL: gdb.cp/namespace.exp: print G::XgX Running ../../../src/gdb/testsuite/gdb.cp/overload.exp ... FAIL: gdb.cp/overload.exp: ptype foo_instance1 Running ../../../src/gdb/testsuite/gdb.cp/ovldbreak.exp ... FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one) FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after cancel) Running ../../../src/gdb/testsuite/gdb.cp/pr-1023.exp ... Running ../../../src/gdb/testsuite/gdb.cp/pr-1210.exp ... FAIL: gdb.cp/pr-1210.exp: step past initialization FAIL: gdb.cp/pr-1210.exp: print *obj FAIL: gdb.cp/pr-1210.exp: print obj->myB Running ../../../src/gdb/testsuite/gdb.cp/pr-574.exp ... Running ../../../src/gdb/testsuite/gdb.cp/printmethod.exp ... Running ../../../src/gdb/testsuite/gdb.cp/psmang.exp ... Running ../../../src/gdb/testsuite/gdb.cp/ref-params.exp ... Running ../../../src/gdb/testsuite/gdb.cp/ref-types.exp ... Running ../../../src/gdb/testsuite/gdb.cp/rtti.exp ... FAIL: gdb.cp/rtti.exp: print *obj FAIL: gdb.cp/rtti.exp: print *obj3 Running ../../../src/gdb/testsuite/gdb.cp/templates.exp ... FAIL: gdb.cp/templates.exp: constructor breakpoint (bad menu choices) Running ../../../src/gdb/testsuite/gdb.cp/try_catch.exp ... Running ../../../src/gdb/testsuite/gdb.cp/userdef.exp ... FAIL: gdb.cp/userdef.exp: continue to marker1 FAIL: gdb.cp/userdef.exp: print one + two FAIL: gdb.cp/userdef.exp: re-selected 'main' frame after inferior call FAIL: gdb.cp/userdef.exp: print one - two FAIL: gdb.cp/userdef.exp: print one * two FAIL: gdb.cp/userdef.exp: print one / two FAIL: gdb.cp/userdef.exp: print one % two FAIL: gdb.cp/userdef.exp: print one && two FAIL: gdb.cp/userdef.exp: print one || two FAIL: gdb.cp/userdef.exp: print one & two FAIL: gdb.cp/userdef.exp: print one | two FAIL: gdb.cp/userdef.exp: print one ^ two FAIL: gdb.cp/userdef.exp: print one < two FAIL: gdb.cp/userdef.exp: print one <= two FAIL: gdb.cp/userdef.exp: print one > two FAIL: gdb.cp/userdef.exp: print one >= two FAIL: gdb.cp/userdef.exp: print one == two FAIL: gdb.cp/userdef.exp: print one != two FAIL: gdb.cp/userdef.exp: print one << 31 FAIL: gdb.cp/userdef.exp: print one >> 31 FAIL: gdb.cp/userdef.exp: print !one FAIL: gdb.cp/userdef.exp: print +one FAIL: gdb.cp/userdef.exp: print ~one FAIL: gdb.cp/userdef.exp: print -one FAIL: gdb.cp/userdef.exp: print one++ FAIL: gdb.cp/userdef.exp: print ++one FAIL: gdb.cp/userdef.exp: print one-- FAIL: gdb.cp/userdef.exp: print --one FAIL: gdb.cp/userdef.exp: print one += 7 FAIL: gdb.cp/userdef.exp: print two = one FAIL: gdb.cp/userdef.exp: print c FAIL: gdb.cp/userdef.exp: print *c FAIL: gdb.cp/userdef.exp: print &*c FAIL: gdb.cp/userdef.exp: ptype &*c Running ../../../src/gdb/testsuite/gdb.cp/virtfunc.exp ... FAIL: gdb.cp/virtfunc.exp: ptype VB // duplicate synthetic operator: VB(VB const&); FAIL: gdb.cp/virtfunc.exp: ptype VB // duplicate synthetic operator: VB(); FAIL: gdb.cp/virtfunc.exp: ptype V // duplicate synthetic operator: V(V const&); FAIL: gdb.cp/virtfunc.exp: ptype V // duplicate synthetic operator: V(); FAIL: gdb.cp/virtfunc.exp: ptype A // duplicate synthetic operator: A(A const&); FAIL: gdb.cp/virtfunc.exp: ptype A // duplicate synthetic operator: A(); FAIL: gdb.cp/virtfunc.exp: ptype B // duplicate synthetic operator: B(B const&); FAIL: gdb.cp/virtfunc.exp: ptype B // duplicate synthetic operator: B(); FAIL: gdb.cp/virtfunc.exp: ptype C // duplicate synthetic operator: C(C const&); FAIL: gdb.cp/virtfunc.exp: ptype C // duplicate synthetic operator: C(); FAIL: gdb.cp/virtfunc.exp: ptype AD // duplicate synthetic operator: AD(AD const&); FAIL: gdb.cp/virtfunc.exp: ptype AD // duplicate synthetic operator: AD(); FAIL: gdb.cp/virtfunc.exp: ptype D // duplicate synthetic operator: D(D const&); FAIL: gdb.cp/virtfunc.exp: ptype D // duplicate synthetic operator: D(); FAIL: gdb.cp/virtfunc.exp: ptype E // duplicate synthetic operator: E(E const&); FAIL: gdb.cp/virtfunc.exp: ptype E // duplicate synthetic operator: E(); FAIL: gdb.cp/virtfunc.exp: ptype dd // duplicate synthetic operator: D(D const&); FAIL: gdb.cp/virtfunc.exp: ptype dd // duplicate synthetic operator: D(); FAIL: gdb.cp/virtfunc.exp: ptype ppd // duplicate synthetic operator: D(D const&); FAIL: gdb.cp/virtfunc.exp: ptype ppd // duplicate synthetic operator: D(); FAIL: gdb.cp/virtfunc.exp: ptype pAd // duplicate synthetic operator: AD(AD const&); FAIL: gdb.cp/virtfunc.exp: ptype pAd // duplicate synthetic operator: AD(); FAIL: gdb.cp/virtfunc.exp: ptype a // duplicate synthetic operator: A(A const&); FAIL: gdb.cp/virtfunc.exp: ptype a // duplicate synthetic operator: A(); FAIL: gdb.cp/virtfunc.exp: ptype b // duplicate synthetic operator: B(B const&); FAIL: gdb.cp/virtfunc.exp: ptype b // duplicate synthetic operator: B(); FAIL: gdb.cp/virtfunc.exp: ptype c // duplicate synthetic operator: C(C const&); FAIL: gdb.cp/virtfunc.exp: ptype c // duplicate synthetic operator: C(); FAIL: gdb.cp/virtfunc.exp: ptype d // duplicate synthetic operator: D(D const&); FAIL: gdb.cp/virtfunc.exp: ptype d // duplicate synthetic operator: D(); FAIL: gdb.cp/virtfunc.exp: ptype e // duplicate synthetic operator: E(E const&); FAIL: gdb.cp/virtfunc.exp: ptype e // duplicate synthetic operator: E(); FAIL: gdb.cp/virtfunc.exp: ptype v // duplicate synthetic operator: V(V const&); FAIL: gdb.cp/virtfunc.exp: ptype v // duplicate synthetic operator: V(); FAIL: gdb.cp/virtfunc.exp: ptype vb // duplicate synthetic operator: VB(VB const&); FAIL: gdb.cp/virtfunc.exp: ptype vb // duplicate synthetic operator: VB(); FAIL: gdb.cp/virtfunc.exp: ptype pAa // duplicate synthetic operator: A(A const&); FAIL: gdb.cp/virtfunc.exp: ptype pAa // duplicate synthetic operator: A(); FAIL: gdb.cp/virtfunc.exp: ptype pAe // duplicate synthetic operator: A(A const&); FAIL: gdb.cp/virtfunc.exp: ptype pAe // duplicate synthetic operator: A(); FAIL: gdb.cp/virtfunc.exp: ptype pBe // duplicate synthetic operator: B(B const&); FAIL: gdb.cp/virtfunc.exp: ptype pBe // duplicate synthetic operator: B(); FAIL: gdb.cp/virtfunc.exp: ptype pDd // duplicate synthetic operator: D(D const&); FAIL: gdb.cp/virtfunc.exp: ptype pDd // duplicate synthetic operator: D(); FAIL: gdb.cp/virtfunc.exp: ptype pDe // duplicate synthetic operator: D(D const&); FAIL: gdb.cp/virtfunc.exp: ptype pDe // duplicate synthetic operator: D(); FAIL: gdb.cp/virtfunc.exp: ptype pVa // duplicate synthetic operator: V(V const&); FAIL: gdb.cp/virtfunc.exp: ptype pVa // duplicate synthetic operator: V(); FAIL: gdb.cp/virtfunc.exp: ptype pVv // duplicate synthetic operator: V(V const&); FAIL: gdb.cp/virtfunc.exp: ptype pVv // duplicate synthetic operator: V(); FAIL: gdb.cp/virtfunc.exp: ptype pVe // duplicate synthetic operator: V(V const&); FAIL: gdb.cp/virtfunc.exp: ptype pVe // duplicate synthetic operator: V(); FAIL: gdb.cp/virtfunc.exp: ptype pVd // duplicate synthetic operator: V(V const&); FAIL: gdb.cp/virtfunc.exp: ptype pVd // duplicate synthetic operator: V(); FAIL: gdb.cp/virtfunc.exp: ptype pADe // duplicate synthetic operator: AD(AD const&); FAIL: gdb.cp/virtfunc.exp: ptype pADe // duplicate synthetic operator: AD(); FAIL: gdb.cp/virtfunc.exp: ptype pEe // duplicate synthetic operator: E(E const&); FAIL: gdb.cp/virtfunc.exp: ptype pEe // duplicate synthetic operator: E(); FAIL: gdb.cp/virtfunc.exp: ptype pVB // duplicate synthetic operator: VB(VB const&); FAIL: gdb.cp/virtfunc.exp: ptype pVB // duplicate synthetic operator: VB(); FAIL: gdb.cp/virtfunc.exp: print pAe->f() FAIL: gdb.cp/virtfunc.exp: print pAa->f() FAIL: gdb.cp/virtfunc.exp: print pDe->vg() FAIL: gdb.cp/virtfunc.exp: print pADe->vg() FAIL: gdb.cp/virtfunc.exp: print pDd->vg() FAIL: gdb.cp/virtfunc.exp: print pEe->vvb() FAIL: gdb.cp/virtfunc.exp: print pVB->vvb() FAIL: gdb.cp/virtfunc.exp: print pBe->vvb() FAIL: gdb.cp/virtfunc.exp: print pDe->vvb() FAIL: gdb.cp/virtfunc.exp: print pEe->vd() FAIL: gdb.cp/virtfunc.exp: print pEe->fvb() Running ../../../src/gdb/testsuite/gdb.disasm/am33.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/h8300s.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/hppa.exp ... gdb compile failed, ../../../src/gdb/testsuite/gdb.disasm/hppa.s: Assembler messages: ../../../src/gdb/testsuite/gdb.disasm/hppa.s:1271: Error: Unknown opcode: `lha' ../../../src/gdb/testsuite/gdb.disasm/hppa.s:1272: Error: Unknown opcode: `lha' ERROR: Couldn't compile ../../../src/gdb/testsuite/gdb.disasm/hppa.s Running ../../../src/gdb/testsuite/gdb.disasm/mn10300.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/sh3.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t01_mov.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t02_mova.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t03_add.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t04_sub.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t05_cmp.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t06_ari2.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t07_ari3.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t08_or.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t09_xor.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t10_and.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t11_logs.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t12_bit.exp ... Running ../../../src/gdb/testsuite/gdb.disasm/t13_otr.exp ... Running ../../../src/gdb/testsuite/gdb.dwarf2/dup-psym.exp ... Running ../../../src/gdb/testsuite/gdb.dwarf2/dw2-basic.exp ... Running ../../../src/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp ... Running ../../../src/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp ... Running ../../../src/gdb/testsuite/gdb.dwarf2/mac-fileno.exp ... Running ../../../src/gdb/testsuite/gdb.fortran/array-element.exp ... Running ../../../src/gdb/testsuite/gdb.fortran/derived-type.exp ... Running ../../../src/gdb/testsuite/gdb.fortran/exprs.exp ... Running ../../../src/gdb/testsuite/gdb.fortran/subarray.exp ... Running ../../../src/gdb/testsuite/gdb.fortran/types.exp ... Running ../../../src/gdb/testsuite/gdb.gdb/complaints.exp ... Running ../../../src/gdb/testsuite/gdb.gdb/observer.exp ... Running ../../../src/gdb/testsuite/gdb.gdb/selftest.exp ... FAIL: gdb.gdb/selftest.exp: unknown source line after step over initial brace FAIL: gdb.gdb/selftest.exp: step into xmalloc call FAIL: gdb.gdb/selftest.exp: backtrace through signal handler Running ../../../src/gdb/testsuite/gdb.gdb/xfullpath.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.aCC/exception.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/callfwmall.exp ... FAIL: gdb.base-hp/callfwmall.exp: p t_float_values(3.14159,-2.3765) FAIL: gdb.base-hp/callfwmall.exp: p t_float_values(float_val1,float_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_float_values(3.14159,float_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_float_values(float_val1,-2.3765) FAIL: gdb.base-hp/callfwmall.exp: p t_string_values("string 1","string 2") FAIL: gdb.base-hp/callfwmall.exp: p t_string_values("string 1",string_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_string_values(string_val1,"string 2") FAIL: gdb.base-hp/callfwmall.exp: p t_char_array_values(char_array_val2,char_array_val1) FAIL: gdb.base-hp/callfwmall.exp: p t_char_array_values(char_array_val1,char_array_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_char_array_values("carray 1","carray 2") FAIL: gdb.base-hp/callfwmall.exp: p t_char_array_values("carray 1",char_array_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_char_array_values(char_array_val1,"carray 2") FAIL: gdb.base-hp/callfwmall.exp: p doubleit(4) FAIL: gdb.base-hp/callfwmall.exp: p add(4,5) FAIL: gdb.base-hp/callfwmall.exp: p t_func_values(func_val2,func_val1) FAIL: gdb.base-hp/callfwmall.exp: p t_func_values(func_val1,func_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_call_add(func_val1,3,4) FAIL: gdb.base-hp/callfwmall.exp: p t_enum_value1(enumval1) FAIL: gdb.base-hp/callfwmall.exp: p t_enum_value1(enum_val1) FAIL: gdb.base-hp/callfwmall.exp: p t_enum_value1(enum_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_enum_value2(enumval2) FAIL: gdb.base-hp/callfwmall.exp: p t_enum_value2(enum_val2) FAIL: gdb.base-hp/callfwmall.exp: p t_enum_value2(enum_val1) FAIL: gdb.base-hp/callfwmall.exp: p sum_args(1,{2}) FAIL: gdb.base-hp/callfwmall.exp: p sum_args(2,{2,3}) FAIL: gdb.base-hp/callfwmall.exp: p sum_args(3,{2,3,4}) FAIL: gdb.base-hp/callfwmall.exp: p sum_args(4,{2,3,4,5}) FAIL: gdb.base-hp/callfwmall.exp: p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns char FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns short FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns int FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns long FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns float FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns double FAIL: gdb.base-hp/callfwmall.exp: call inferior func with struct - returns char * Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp ... FAIL: gdb.base-hp/reg.exp: running to mainend in runto FAIL: gdb.base-hp/reg.exp: info reg r1 FAIL: gdb.base-hp/reg.exp: info reg r4 FAIL: gdb.base-hp/reg.exp: info reg r5 FAIL: gdb.base-hp/reg.exp: info reg r6 FAIL: gdb.base-hp/reg.exp: info reg r7 FAIL: gdb.base-hp/reg.exp: info reg r8 FAIL: gdb.base-hp/reg.exp: info reg r9 FAIL: gdb.base-hp/reg.exp: info reg r10 FAIL: gdb.base-hp/reg.exp: info reg r11 FAIL: gdb.base-hp/reg.exp: info reg r12 FAIL: gdb.base-hp/reg.exp: info reg r13 FAIL: gdb.base-hp/reg.exp: info reg r14 FAIL: gdb.base-hp/reg.exp: info reg r15 FAIL: gdb.base-hp/reg.exp: info reg r16 FAIL: gdb.base-hp/reg.exp: info reg 1 FAIL: gdb.base-hp/reg.exp: info reg 4 FAIL: gdb.base-hp/reg.exp: info reg $1 FAIL: gdb.base-hp/reg.exp: info reg 999 FAIL: gdb.base-hp/reg.exp: info reg fpsr FAIL: gdb.base-hp/reg.exp: info reg fpe1 FAIL: gdb.base-hp/reg.exp: info reg fpe2 FAIL: gdb.base-hp/reg.exp: info reg fpe3 FAIL: gdb.base-hp/reg.exp: info reg fpe4 FAIL: gdb.base-hp/reg.exp: info reg fpe5 FAIL: gdb.base-hp/reg.exp: info reg fpe6 FAIL: gdb.base-hp/reg.exp: info reg fpe7 FAIL: gdb.base-hp/reg.exp: info reg fr4 FAIL: gdb.base-hp/reg.exp: info reg fr5 FAIL: gdb.base-hp/reg.exp: info reg fr6 FAIL: gdb.base-hp/reg.exp: info reg fr7 FAIL: gdb.base-hp/reg.exp: info reg fr8 FAIL: gdb.base-hp/reg.exp: info reg fr9 FAIL: gdb.base-hp/reg.exp: info reg fr10 FAIL: gdb.base-hp/reg.exp: info reg r19 FAIL: gdb.base-hp/reg.exp: print /x $r19 Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp ... ERROR: (/xxx/gnu/gdb/objdir/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh) No such file or directory FAIL: gdb.base-hp/so-thresh.exp: show auto-solib-limit FAIL: gdb.base-hp/so-thresh.exp: 1 set break at main FAIL: gdb.base-hp/so-thresh.exp: run to main hit auto-solib-limit threshold ERROR: (/xxx/gnu/gdb/objdir/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh) No such file or directory ERROR: (/xxx/gnu/gdb/objdir/gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh) No such file or directory Running ../../../src/gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp ... gdb compile failed, ../../../src/gdb/testsuite/gdb.hp/gdb.compat/xdb1.c: In function 'bar': ../../../src/gdb/testsuite/gdb.hp/gdb.compat/xdb1.c:5: warning: incompatible implicit declaration of built-in function 'printf' ERROR: Couldn't compile xdb1.c to object Running ../../../src/gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp ... ERROR: Undefined command "txbreak". FAIL: gdb.defects/bs14602.exp: continue to end of main FAIL: gdb.defects/bs14602.exp: print v_long_double - 2 FAIL: gdb.defects/bs14602.exp: print v_double FAIL: gdb.defects/bs14602.exp: print v_long_double - 3 FAIL: gdb.defects/bs14602.exp: print v_long_double - 4 Running ../../../src/gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp ... FAIL: gdb.defects/solib-d.exp: set generic catch load FAIL: gdb.defects/solib-d.exp: CLLbs14756 || CLLbs16090 came back ??? FAIL: gdb.defects/solib-d.exp: print local static variable (CLLbs15725) FAIL: gdb.defects/solib-d.exp: clear non-existent function does not dump core ! FAIL: gdb.defects/solib-d.exp: info line junkfunc does not dump core ! ERROR: Undefined command "xbreak junkfunc". FAIL: gdb.defects/solib-d.exp: loading primary library on demand (3) FAIL: gdb.defects/solib-d.exp: (timeout) set deferred breakpoint FAIL: gdb.defects/solib-d.exp: (timeout) load all libraries FAIL: gdb.defects/solib-d.exp: deferred breakpoint enabled (timeout) Running ../../../src/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp ... Running ../../../src/gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp ... Running ../../../src/gdb/testsuite/gdb.java/jmain.exp ... Running ../../../src/gdb/testsuite/gdb.java/jmisc.exp ... Running ../../../src/gdb/testsuite/gdb.java/jmisc1.exp ... Running ../../../src/gdb/testsuite/gdb.java/jprint.exp ... Running ../../../src/gdb/testsuite/gdb.java/jv-exp.exp ... Running ../../../src/gdb/testsuite/gdb.java/jv-print.exp ... Running ../../../src/gdb/testsuite/gdb.mi/gdb669.exp ... Running ../../../src/gdb/testsuite/gdb.mi/gdb680.exp ... Running ../../../src/gdb/testsuite/gdb.mi/gdb701.exp ... Running ../../../src/gdb/testsuite/gdb.mi/gdb792.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-basics.exp ... FAIL: gdb.mi/mi-basics.exp: environment-directory arg operation FAIL: gdb.mi/mi-basics.exp: environment-directory empty-string operation FAIL: gdb.mi/mi-basics.exp: environment-path dir1 dir2 operation Running ../../../src/gdb/testsuite/gdb.mi/mi-break.exp ... FAIL: gdb.mi/mi-break.exp: break-insert -t operation FAIL: gdb.mi/mi-break.exp: list of breakpoints Running ../../../src/gdb/testsuite/gdb.mi/mi-cli.exp ... FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "list" FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "set $pc=0x0" Running ../../../src/gdb/testsuite/gdb.mi/mi-console.exp ... FAIL: gdb.mi/mi-console.exp: mi runto main (timeout) FAIL: gdb.mi/mi-console.exp: Testing console output (timeout) FAIL: gdb.mi/mi-console.exp: Finished step over hello (timeout) Running ../../../src/gdb/testsuite/gdb.mi/mi-disassemble.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-eval.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-file.exp ... FAIL: gdb.mi/mi-file.exp: request path info of current source file (basics.c) Running ../../../src/gdb/testsuite/gdb.mi/mi-hack-cli.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-pthreads.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-read-memory.exp ... FAIL: gdb.mi/mi-read-memory.exp: next at main (stopped at wrong place) FAIL: gdb.mi/mi-read-memory.exp: 3x2, one byte FAIL: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6 FAIL: gdb.mi/mi-read-memory.exp: expression in quotes FAIL: gdb.mi/mi-read-memory.exp: ascii and data FAIL: gdb.mi/mi-read-memory.exp: decimal FAIL: gdb.mi/mi-read-memory.exp: octal Running ../../../src/gdb/testsuite/gdb.mi/mi-regs.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-return.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-simplerun.exp ... FAIL: gdb.mi/mi-simplerun.exp: break-insert operation FAIL: gdb.mi/mi-simplerun.exp: list of breakpoints FAIL: gdb.mi/mi-simplerun.exp: run to main (2) FAIL: gdb.mi/mi-simplerun.exp: next at main (stopped at wrong place) Running ../../../src/gdb/testsuite/gdb.mi/mi-stack.exp ... FAIL: gdb.mi/mi-stack.exp: stack frame listing FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 3 FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 300 FAIL: gdb.mi/mi-stack.exp: stack args listing 0 FAIL: gdb.mi/mi-stack.exp: stack args listing 0 1 3 FAIL: gdb.mi/mi-stack.exp: stack args listing 1 FAIL: gdb.mi/mi-stack.exp: stack args listing 1 1 3 FAIL: gdb.mi/mi-stack.exp: stack args listing 1 1 300 FAIL: gdb.mi/mi-stack.exp: stack info-depth FAIL: gdb.mi/mi-stack.exp: stack info-depth 99 Running ../../../src/gdb/testsuite/gdb.mi/mi-stepi.exp ... FAIL: gdb.mi/mi-stepi.exp: step-instruction at main Running ../../../src/gdb/testsuite/gdb.mi/mi-syn-frame.exp ... FAIL: gdb.mi/mi-syn-frame.exp: mi runto main (timeout) FAIL: gdb.mi/mi-syn-frame.exp: insert breakpoint foo (timeout) FAIL: gdb.mi/mi-syn-frame.exp: call inferior's function with a breakpoint set in it (timeout) FAIL: gdb.mi/mi-syn-frame.exp: backtrace from inferior function stopped at bp, showing gdb dummy frame (timeout) FAIL: gdb.mi/mi-syn-frame.exp: testing exec continue (timeout) FAIL: gdb.mi/mi-syn-frame.exp: finished exec continue (timeout) FAIL: gdb.mi/mi-syn-frame.exp: list stack frames (timeout) FAIL: gdb.mi/mi-syn-frame.exp: insert breakpoint subroutine (timeout) FAIL: gdb.mi/mi-syn-frame.exp: data evaluate expression (timeout) FAIL: gdb.mi/mi-syn-frame.exp: list stack frames (timeout) FAIL: gdb.mi/mi-syn-frame.exp: finished exec continue (timeout) FAIL: gdb.mi/mi-syn-frame.exp: list stack frames (timeout) FAIL: gdb.mi/mi-syn-frame.exp: call inferior function which raises exception (timeout) FAIL: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception (timeout) Running ../../../src/gdb/testsuite/gdb.mi/mi-until.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-var-block.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-var-child-f.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-var-child.exp ... FAIL: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types Running ../../../src/gdb/testsuite/gdb.mi/mi-var-cmd.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-var-cp.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-var-display.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi-watch.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-basics.exp ... FAIL: gdb.mi/mi2-basics.exp: environment-directory arg operation FAIL: gdb.mi/mi2-basics.exp: environment-directory empty-string operation FAIL: gdb.mi/mi2-basics.exp: environment-path dir1 dir2 operation Running ../../../src/gdb/testsuite/gdb.mi/mi2-break.exp ... FAIL: gdb.mi/mi2-break.exp: break-insert -t operation FAIL: gdb.mi/mi2-break.exp: list of breakpoints Running ../../../src/gdb/testsuite/gdb.mi/mi2-cli.exp ... FAIL: gdb.mi/mi2-cli.exp: -interpreter-exec console "list" FAIL: gdb.mi/mi2-cli.exp: -interpreter-exec console "set $pc=0x0" Running ../../../src/gdb/testsuite/gdb.mi/mi2-console.exp ... FAIL: gdb.mi/mi2-console.exp: Hello message (timeout) Running ../../../src/gdb/testsuite/gdb.mi/mi2-disassemble.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-eval.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-file.exp ... FAIL: gdb.mi/mi2-file.exp: request path info of current source file (basics.c) Running ../../../src/gdb/testsuite/gdb.mi/mi2-hack-cli.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-pthreads.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-read-memory.exp ... FAIL: gdb.mi/mi2-read-memory.exp: next at main (stopped at wrong place) FAIL: gdb.mi/mi2-read-memory.exp: 3x2, one byte FAIL: gdb.mi/mi2-read-memory.exp: 3x2, one byte offset by -6 FAIL: gdb.mi/mi2-read-memory.exp: expression in quotes FAIL: gdb.mi/mi2-read-memory.exp: ascii and data FAIL: gdb.mi/mi2-read-memory.exp: decimal FAIL: gdb.mi/mi2-read-memory.exp: octal Running ../../../src/gdb/testsuite/gdb.mi/mi2-regs.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-return.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-simplerun.exp ... FAIL: gdb.mi/mi2-simplerun.exp: break-insert operation FAIL: gdb.mi/mi2-simplerun.exp: list of breakpoints FAIL: gdb.mi/mi2-simplerun.exp: run to main (2) FAIL: gdb.mi/mi2-simplerun.exp: next at main (stopped at wrong place) Running ../../../src/gdb/testsuite/gdb.mi/mi2-stack.exp ... FAIL: gdb.mi/mi2-stack.exp: stack frame listing FAIL: gdb.mi/mi2-stack.exp: stack frame listing 1 3 FAIL: gdb.mi/mi2-stack.exp: stack args listing 0 FAIL: gdb.mi/mi2-stack.exp: stack args listing 0 1 3 FAIL: gdb.mi/mi2-stack.exp: stack args listing 1 FAIL: gdb.mi/mi2-stack.exp: stack args listing 1 1 3 FAIL: gdb.mi/mi2-stack.exp: stack info-depth FAIL: gdb.mi/mi2-stack.exp: stack info-depth 99 Running ../../../src/gdb/testsuite/gdb.mi/mi2-stepi.exp ... FAIL: gdb.mi/mi2-stepi.exp: step-instruction at main Running ../../../src/gdb/testsuite/gdb.mi/mi2-syn-frame.exp ... FAIL: gdb.mi/mi2-syn-frame.exp: list stack frames Running ../../../src/gdb/testsuite/gdb.mi/mi2-until.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-var-block.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-var-child.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-var-cmd.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-var-display.exp ... Running ../../../src/gdb/testsuite/gdb.mi/mi2-watch.exp ... Running ../../../src/gdb/testsuite/gdb.objc/basicclass.exp ... FAIL: gdb.objc/basicclass.exp: print an ivar of self FAIL: gdb.objc/basicclass.exp: print self FAIL: gdb.objc/basicclass.exp: print contents of self FAIL: gdb.objc/basicclass.exp: continue until category method FAIL: gdb.objc/basicclass.exp: Call an Objective-C method with no arguments FAIL: gdb.objc/basicclass.exp: Call an Objective-C method with one argument FAIL: gdb.objc/basicclass.exp: Use of the print-object command FAIL: gdb.objc/basicclass.exp: Use of the po (print-object) command Running ../../../src/gdb/testsuite/gdb.objc/nondebug.exp ... Running ../../../src/gdb/testsuite/gdb.objc/objcdecode.exp ... Running ../../../src/gdb/testsuite/gdb.server/server-run.exp ... Running ../../../src/gdb/testsuite/gdb.stabs/exclfwd.exp ... KPASS: gdb.stabs/exclfwd.exp: ptype v2 (PRMS gdb/1602) KPASS: gdb.stabs/exclfwd.exp: ptype v3 (PRMS gdb/1603) Running ../../../src/gdb/testsuite/gdb.stabs/weird.exp ... Running ../../../src/gdb/testsuite/gdb.threads/bp_in_thread.exp ... Running ../../../src/gdb/testsuite/gdb.threads/gcore-thread.exp ... Running ../../../src/gdb/testsuite/gdb.threads/killed.exp ... Running ../../../src/gdb/testsuite/gdb.threads/linux-dp.exp ... Running ../../../src/gdb/testsuite/gdb.threads/manythreads.exp ... Running ../../../src/gdb/testsuite/gdb.threads/print-threads.exp ... Running ../../../src/gdb/testsuite/gdb.threads/pthread_cond_wait.exp ... Running ../../../src/gdb/testsuite/gdb.threads/pthreads.exp ... Running ../../../src/gdb/testsuite/gdb.threads/schedlock.exp ... Running ../../../src/gdb/testsuite/gdb.threads/staticthreads.exp ... Running ../../../src/gdb/testsuite/gdb.threads/step.exp ... Running ../../../src/gdb/testsuite/gdb.threads/step2.exp ... Running ../../../src/gdb/testsuite/gdb.threads/switch-threads.exp ... Running ../../../src/gdb/testsuite/gdb.threads/thread-specific.exp ... Running ../../../src/gdb/testsuite/gdb.threads/thread_check.exp ... Running ../../../src/gdb/testsuite/gdb.threads/threadapply.exp ... Running ../../../src/gdb/testsuite/gdb.threads/tls-nodebug.exp ... Running ../../../src/gdb/testsuite/gdb.threads/tls-shared.exp ... Running ../../../src/gdb/testsuite/gdb.threads/tls.exp ... Running ../../../src/gdb/testsuite/gdb.threads/watchthreads.exp ... Running ../../../src/gdb/testsuite/gdb.trace/actions.exp ... Running ../../../src/gdb/testsuite/gdb.trace/backtrace.exp ... Running ../../../src/gdb/testsuite/gdb.trace/circ.exp ... Running ../../../src/gdb/testsuite/gdb.trace/collection.exp ... Running ../../../src/gdb/testsuite/gdb.trace/deltrace.exp ... Running ../../../src/gdb/testsuite/gdb.trace/infotrace.exp ... Running ../../../src/gdb/testsuite/gdb.trace/limits.exp ... Running ../../../src/gdb/testsuite/gdb.trace/packetlen.exp ... Running ../../../src/gdb/testsuite/gdb.trace/passc-dyn.exp ... Running ../../../src/gdb/testsuite/gdb.trace/passcount.exp ... Running ../../../src/gdb/testsuite/gdb.trace/report.exp ... Running ../../../src/gdb/testsuite/gdb.trace/save-trace.exp ... Running ../../../src/gdb/testsuite/gdb.trace/tfind.exp ... Running ../../../src/gdb/testsuite/gdb.trace/tracecmd.exp ... Running ../../../src/gdb/testsuite/gdb.trace/while-dyn.exp ... Running ../../../src/gdb/testsuite/gdb.trace/while-stepping.exp ... === gdb Summary === # of expected passes 10091 # of unexpected failures 682 # of unexpected successes 3 # of expected failures 53 # of unknown successes 5 # of known failures 51 # of unresolved testcases 24 # of untested testcases 14 # of unsupported tests 27 /xxx/gnu/gdb/objdir/gdb/testsuite/../../gdb/gdb version 6.6.50.20061217-cvs -nx ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-18 3:03 ` John David Anglin 2006-12-18 3:43 ` John David Anglin @ 2006-12-20 16:07 ` John David Anglin 2006-12-20 17:41 ` John David Anglin 1 sibling, 1 reply; 27+ messages in thread From: John David Anglin @ 2006-12-20 16:07 UTC (permalink / raw) To: John David Anglin; +Cc: drow, gdb, dave.anglin, brobecker, kettenis [-- Attachment #1: Type: text/plain, Size: 889 bytes --] > I'll check building without the cma hack. It builds with a small patch: Index: hpux-thread.c =================================================================== RCS file: /cvs/src/src/gdb/hpux-thread.c,v retrieving revision 1.32 diff -u -3 -p -r1.32 hpux-thread.c --- hpux-thread.c 17 Dec 2005 22:34:01 -0000 1.32 +++ hpux-thread.c 20 Dec 2006 15:50:39 -0000 @@ -396,7 +396,7 @@ hpux_thread_prepare_to_store (void) } static int -hpux_thread_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, +hpux_thread_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int dowrite, struct mem_attrib *attribs, struct target_ops *target) { However, the test results aren't very good. I've attached them. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) [-- Attachment #2: gdb-20061218.log.gz --] [-- Type: application/x-gunzip, Size: 37920 bytes --] ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-20 16:07 ` John David Anglin @ 2006-12-20 17:41 ` John David Anglin 2007-01-01 16:33 ` Daniel Jacobowitz 0 siblings, 1 reply; 27+ messages in thread From: John David Anglin @ 2006-12-20 17:41 UTC (permalink / raw) To: John David Anglin; +Cc: drow, gdb, dave.anglin, brobecker, kettenis > However, the test results aren't very good. I've attached them. Tried a simple test with this version. Tried to debug gdb itself. Set a break on main and ran gdb with "-v". The exterior gdb dumped core. The cause seems to be that the deprecated_child_ops struct hasn't been initialized. It looks like the stuff in inf-ptrace.c needs to be merged into hpux-thread.c, or we need to setup deprecated_child_ops. Presumably, this was done at some point in the past. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-20 17:41 ` John David Anglin @ 2007-01-01 16:33 ` Daniel Jacobowitz 2007-01-01 16:47 ` John David Anglin 0 siblings, 1 reply; 27+ messages in thread From: Daniel Jacobowitz @ 2007-01-01 16:33 UTC (permalink / raw) To: John David Anglin; +Cc: gdb, dave.anglin, brobecker, kettenis On Wed, Dec 20, 2006 at 12:41:13PM -0500, John David Anglin wrote: > > However, the test results aren't very good. I've attached them. > > Tried a simple test with this version. Tried to debug gdb itself. > Set a break on main and ran gdb with "-v". The exterior gdb dumped > core. The cause seems to be that the deprecated_child_ops struct > hasn't been initialized. It looks like the stuff in inf-ptrace.c > needs to be merged into hpux-thread.c, or we need to setup > deprecated_child_ops. Presumably, this was done at some point in > the past. Is this worth fixing? Obviously no one has used it lately. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-01-01 16:33 ` Daniel Jacobowitz @ 2007-01-01 16:47 ` John David Anglin 2007-01-01 17:10 ` Mark Kettenis 0 siblings, 1 reply; 27+ messages in thread From: John David Anglin @ 2007-01-01 16:47 UTC (permalink / raw) To: Daniel Jacobowitz; +Cc: gdb, dave.anglin, brobecker, kettenis > > Tried a simple test with this version. Tried to debug gdb itself. > > Set a break on main and ran gdb with "-v". The exterior gdb dumped > > core. The cause seems to be that the deprecated_child_ops struct > > hasn't been initialized. It looks like the stuff in inf-ptrace.c > > needs to be merged into hpux-thread.c, or we need to setup > > deprecated_child_ops. Presumably, this was done at some point in > > the past. > > Is this worth fixing? Obviously no one has used it lately. Don't know but I probably would use it if it worked. I hacked on this a bit a couple of weeks ago. I mainly pulled code from inftarg.c with a bit of specialization for hpux. It builds and some stuff may work... Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) Index: gdb/hpux-thread.c =================================================================== RCS file: /cvs/src/src/gdb/hpux-thread.c,v retrieving revision 1.32 diff -u -3 -p -r1.32 hpux-thread.c --- gdb/hpux-thread.c 17 Dec 2005 22:34:01 -0000 1.32 +++ gdb/hpux-thread.c 1 Jan 2007 16:39:37 -0000 @@ -41,6 +41,7 @@ #include <cma_deb_core.h> #include "gdbthread.h" #include "target.h" +#include "command.h" #include "inferior.h" #include "regcache.h" #include <fcntl.h> @@ -48,6 +49,9 @@ #include "gdb_stat.h" #include "gdbcore.h" #include "hppa-tdep.h" +#include "inflow.h" + +#include "gdb_ptrace.h" extern int child_suppress_run; @@ -118,7 +122,8 @@ find_tcb (ptid_t ptid) tcb_ptr = cma__base (queue_ptr, threads, cma__t_int_tcb); - read_memory ((CORE_ADDR) tcb_ptr, (char *) &cached_tcb, sizeof cached_tcb); + read_memory ((CORE_ADDR) tcb_ptr, (char *) &cached_tcb, + sizeof cached_tcb); if (cached_tcb.header.type == cma__c_obj_tcb) if (cma_thread_get_unique (&cached_tcb.prolog.client_thread) == thread) @@ -138,18 +143,79 @@ find_tcb (ptid_t ptid) static void hpux_thread_open (char *arg, int from_tty) { - deprecated_child_ops.to_open (arg, from_tty); + error (_("Use the \"run\" command to start a Unix child process.")); +} + +/* Start debugging the process whose number is PID. */ + +static int +hpux_attach (int pid) +{ + errno = 0; + ptrace (PT_ATTACH, pid, (PTRACE_TYPE_ARG3) 0, 0); + if (errno != 0) + perror_with_name (("ptrace")); + attach_flag = 1; + return pid; } /* Attach to process PID, then initialize for debugging it and wait for the trace-trap that results from attaching. */ +/* XXX - might want to iterate over all the threads and register them. */ + static void hpux_thread_attach (char *args, int from_tty) { - deprecated_child_ops.to_attach (args, from_tty); + char *exec_file; + int pid; + char *dummy; + + if (!args) + error_no_arg (_("process-id to attach")); + + dummy = args; + pid = strtol (args, &dummy, 0); + /* Some targets don't set errno on errors, grrr! */ + if ((pid == 0) && (args == dummy)) + error (_("Illegal process-id: %s."), args); + + if (pid == getpid ()) /* Trying to masturbate? */ + error (_("I refuse to debug myself!")); + + if (from_tty) + { + exec_file = (char *) get_exec_file (0); + + if (exec_file) + printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file, + target_pid_to_str (pid_to_ptid (pid))); + else + printf_unfiltered (_("Attaching to %s\n"), + target_pid_to_str (pid_to_ptid (pid))); + + gdb_flush (gdb_stdout); + } + + hpux_attach (pid); + + inferior_ptid = pid_to_ptid (pid); + push_target (&hpux_thread_ops); +} + +/* Stop debugging the process whose number is PID and continue it with + signal number SIGNAL. SIGNAL = 0 means just continue it. */ + +static void +hpux_detach (int signal) +{ + int pid = PIDGET (inferior_ptid); - /* XXX - might want to iterate over all the threads and register them. */ + errno = 0; + ptrace (PT_DETACH, pid, (PTRACE_TYPE_ARG3) 1, signal); + if (errno != 0) + perror_with_name (("ptrace")); + attach_flag = 0; } /* Take a program previously attached to and detaches it. @@ -163,7 +229,25 @@ hpux_thread_attach (char *args, int from static void hpux_thread_detach (char *args, int from_tty) { - deprecated_child_ops.to_detach (args, from_tty); + int siggnal = 0; + int pid = PIDGET (inferior_ptid); + + if (from_tty) + { + char *exec_file = get_exec_file (0); + if (exec_file == 0) + exec_file = ""; + printf_unfiltered (_("Detaching from program: %s, %s\n"), exec_file, + target_pid_to_str (pid_to_ptid (pid))); + gdb_flush (gdb_stdout); + } + if (args) + siggnal = atoi (args); + + hpux_detach (siggnal); + + inferior_ptid = null_ptid; + unpush_target (&hpux_thread_ops); } /* Resume execution of process PID. If STEP is nozero, then @@ -172,6 +256,40 @@ hpux_thread_detach (char *args, int from for procfs. */ static void +hpux_child_resume (ptid_t ptid, int step, enum target_signal signal) +{ + int request = PT_CONTINUE; + int pid = PIDGET (ptid); + + if (pid == -1) + /* Resume all threads. */ + /* I think this only gets used in the non-threaded case, where "resume + all threads" and "resume inferior_ptid" are the same. */ + pid = PIDGET (inferior_ptid); + + if (step) + { + /* If this system does not support PT_STEP, a higher level + function will have called single_step() to transmute the step + request into a continue request (by setting breakpoints on + all possible successor instructions), so we don't have to + worry about that here. */ + + gdb_assert (!SOFTWARE_SINGLE_STEP_P ()); + request = PT_STEP; + } + + /* An address of (PTRACE_TYPE_ARG3)1 tells ptrace to continue from + where it was. If GDB wanted it to start some other way, we have + already written a new PC value to the child. */ + + errno = 0; + ptrace (request, pid, (PTRACE_TYPE_ARG3)1, target_signal_to_host (signal)); + if (errno != 0) + perror_with_name (("ptrace")); +} + +static void hpux_thread_resume (ptid_t ptid, int step, enum target_signal signo) { struct cleanup *old_chain; @@ -190,13 +308,76 @@ hpux_thread_resume (ptid_t ptid, int ste } #endif - deprecated_child_ops.to_resume (ptid, step, signo); + hpux_child_resume (ptid, step, signo); cached_thread = 0; do_cleanups (old_chain); } +/* Wait for child to do something. Return pid of child, or -1 in case + of error; store status through argument pointer OURSTATUS. */ + +static ptid_t +child_wait (ptid_t ptid, struct target_waitstatus *ourstatus) +{ + int save_errno; + int status; + char *execd_pathname = NULL; + int exit_status; + int syscall_id; + enum target_waitkind kind; + int pid; + + do + { + set_sigint_trap (); /* Causes SIGINT to be passed on to the + attached process. */ + set_sigio_trap (); + + pid = wait (&status); + + save_errno = errno; + + clear_sigio_trap (); + + clear_sigint_trap (); + + if (pid == -1) + { + if (save_errno == EINTR) + continue; + + fprintf_unfiltered (gdb_stderr, + "Child process unexpectedly missing: %s.\n", + safe_strerror (save_errno)); + + /* Claim it exited with unknown signal. */ + ourstatus->kind = TARGET_WAITKIND_SIGNALLED; + ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; + return pid_to_ptid (-1); + } + + /* Did it exit? + */ + if (target_has_exited (pid, status, &exit_status)) + { + /* ??rehrauer: For now, ignore this. */ + continue; + } + + if (!target_thread_alive (pid_to_ptid (pid))) + { + ourstatus->kind = TARGET_WAITKIND_SPURIOUS; + return pid_to_ptid (pid); + } + } while (pid != PIDGET (inferior_ptid)); /* Some other child died or stopp +ed */ + + store_waitstatus (ourstatus, status); + return pid_to_ptid (pid); +} + /* Wait for any threads to stop. We may have to convert PID from a thread id to a LWP id, and vice versa on the way out. */ @@ -213,7 +394,7 @@ hpux_thread_wait (ptid_t ptid, struct ta if (!ptid_equal (ptid, minus_one_ptid)) ptid = main_ptid; - rtnval = deprecated_child_ops.to_wait (ptid, ourstatus); + rtnval = child_wait (ptid, ourstatus); rtnval = find_active_thread (); @@ -248,6 +429,84 @@ static char regmap[] = -1, -1, -1, -1, -1, -1, -1, -1, /* fr28 -> fr31 */ }; +#define REGISTER_U_ADDR(addr, blockend, regno) \ +{ addr = (int)(blockend) + regno;} + +/* U_REGS_OFFSET is the offset of the registers within the u area. */ +#define U_REGS_OFFSET 0 + +/* Return the address in the core dump or inferior of register REGNO. + BLOCKEND is the address of the end of the user structure. */ + +static CORE_ADDR +hpux_register_addr (int regno, CORE_ADDR blockend) +{ + int addr; + + if (regno < 0 || regno >= NUM_REGS) + error ("Invalid register number %d.", regno); + + REGISTER_U_ADDR (addr, blockend, regno); + + return addr; +} + +/* Fetch register REGNUM from the inferior. */ + +static void +fetch_register (int regnum) +{ + CORE_ADDR addr; + size_t size; + PTRACE_TYPE_RET *buf; + int tid, i; + + if (CANNOT_FETCH_REGISTER (regnum)) + { + regcache_raw_supply (current_regcache, regnum, NULL); + return; + } + + /* GNU/Linux LWP ID's are process ID's. */ + tid = TIDGET (inferior_ptid); + if (tid == 0) + tid = PIDGET (inferior_ptid); /* Not a threaded program. */ + + /* This isn't really an address. But ptrace thinks of it as one. */ + addr = hpux_register_addr (regnum, U_REGS_OFFSET); + size = register_size (current_gdbarch, regnum); + + gdb_assert ((size % sizeof (PTRACE_TYPE_RET)) == 0); + buf = alloca (size); + + /* Read the register contents from the inferior a chuck at the time. */ + for (i = 0; i < size / sizeof (PTRACE_TYPE_RET); i++) + { + errno = 0; + buf[i] = ptrace (PT_READ_U, tid, (PTRACE_TYPE_ARG3) addr, 0); + if (errno != 0) + error (_("Couldn't read register %s (#%d): %s."), + REGISTER_NAME (regnum), + regnum, safe_strerror (errno)); + + addr += sizeof (PTRACE_TYPE_RET); + } + regcache_raw_supply (current_regcache, regnum, buf); +} + +/* Fetch register REGNUM from the inferior. If REGNUM is -1, do this + for all registers. */ + +static void +hpux_fetch_inferior_registers (int regnum) +{ + if (regnum == -1) + for (regnum = 0; regnum < NUM_REGS; regnum++) + fetch_register (regnum); + else + fetch_register (regnum); +} + static void hpux_thread_fetch_registers (int regno) { @@ -264,7 +523,7 @@ hpux_thread_fetch_registers (int regno) if (tcb_ptr->state == cma__c_state_running) { - deprecated_child_ops.to_fetch_registers (regno); + hpux_fetch_inferior_registers (regno); do_cleanups (old_chain); @@ -285,7 +544,7 @@ hpux_thread_fetch_registers (int regno) for (regno = first_regno; regno <= last_regno; regno++) { if (regmap[regno] == -1) - deprecated_child_ops.to_fetch_registers (regno); + hpux_fetch_inferior_registers (regno); else { unsigned char buf[MAX_REGISTER_SIZE]; @@ -310,6 +569,58 @@ hpux_thread_fetch_registers (int regno) do_cleanups (old_chain); } +/* Store register REGNUM into the inferior. */ + +static void +store_register (int regnum) +{ + CORE_ADDR addr; + size_t size; + PTRACE_TYPE_RET *buf; + int tid, i; + + if (CANNOT_STORE_REGISTER (regnum)) + return; + + /* GNU/Linux LWP ID's are process ID's. */ + tid = TIDGET (inferior_ptid); + if (tid == 0) + tid = PIDGET (inferior_ptid); /* Not a threaded program. */ + + /* This isn't really an address. But ptrace thinks of it as one. */ + addr = hpux_register_addr (regnum, U_REGS_OFFSET); + size = register_size (current_gdbarch, regnum); + + gdb_assert ((size % sizeof (PTRACE_TYPE_RET)) == 0); + buf = alloca (size); + + /* Write the register contents into the inferior a chunk at the time. */ + regcache_raw_collect (current_regcache, regnum, buf); + for (i = 0; i < size / sizeof (PTRACE_TYPE_RET); i++) + { + errno = 0; + ptrace (PT_WRITE_U, tid, (PTRACE_TYPE_ARG3) addr, buf[i]); + if (errno != 0) + error (_("Couldn't write register %s (#%d): %s."), + REGISTER_NAME (regnum), regnum, safe_strerror (errno)); + + addr += sizeof (PTRACE_TYPE_RET); + } +} + +/* Store register REGNUM back into the inferior. If REGNUM is -1, do + this for all registers (including the floating point registers). */ + +static void +hpux_store_inferior_registers (int regnum) +{ + if (regnum == -1) + for (regnum = 0; regnum < NUM_REGS; regnum++) + store_register (regnum); + else + store_register (regnum); +} + static void hpux_thread_store_registers (int regno) { @@ -326,7 +637,7 @@ hpux_thread_store_registers (int regno) if (tcb_ptr->state == cma__c_state_running) { - deprecated_child_ops.to_store_registers (regno); + hpux_store_inferior_registers (regno); do_cleanups (old_chain); @@ -347,7 +658,7 @@ hpux_thread_store_registers (int regno) for (regno = first_regno; regno <= last_regno; regno++) { if (regmap[regno] == -1) - deprecated_child_ops.to_store_registers (regno); + hpux_store_inferior_registers (regno); else { unsigned char buf[MAX_REGISTER_SIZE]; @@ -356,7 +667,7 @@ hpux_thread_store_registers (int regno) sp = (CORE_ADDR) tcb_ptr->static_ctx.sp - 160; if (regno == HPPA_FLAGS_REGNUM) - deprecated_child_ops.to_store_registers (regno); /* Let lower layer handle this... */ + hpux_store_inferior_registers (regno); else if (regno == HPPA_SP_REGNUM) { regcache_raw_read (current_regcache, regno, buf); @@ -392,11 +703,148 @@ hpux_thread_store_registers (int regno) static void hpux_thread_prepare_to_store (void) { - deprecated_child_ops.to_prepare_to_store (); +#ifdef CHILD_PREPARE_TO_STORE + CHILD_PREPARE_TO_STORE (); +#endif } +/* Set an upper limit on alloca. */ +#ifndef GDB_MAX_ALLOCA +#define GDB_MAX_ALLOCA 0x1000 +#endif + +/* Copy LEN bytes to or from inferior's memory starting at MEMADDR to + debugger memory starting at MYADDR. Copy to inferior if WRITE is + nonzero. TARGET is ignored. + + Returns the length copied, which is either the LEN argument or + zero. This xfer function does not do partial moves, since + deprecated_child_ops doesn't allow memory operations to cross below + us in the target stack anyway. */ + static int -hpux_thread_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, +hpux_child_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write, + struct mem_attrib *attrib, struct target_ops *target) +{ + int i; + /* Round starting address down to longword boundary. */ + CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET); + /* Round ending address up; get number of longwords that makes. */ + int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1) + / sizeof (PTRACE_TYPE_RET)); + int alloc = count * sizeof (PTRACE_TYPE_RET); + PTRACE_TYPE_RET *buffer; + struct cleanup *old_chain = NULL; + +#ifdef PT_IO + /* OpenBSD 3.1, NetBSD 1.6 and FreeBSD 5.0 have a new PT_IO request + that promises to be much more efficient in reading and writing + data in the traced process's address space. */ + + { + struct ptrace_io_desc piod; + + /* NOTE: We assume that there are no distinct address spaces for + instruction and data. */ + piod.piod_op = write ? PIOD_WRITE_D : PIOD_READ_D; + piod.piod_offs = (void *) memaddr; + piod.piod_addr = myaddr; + piod.piod_len = len; + + if (ptrace (PT_IO, PIDGET (inferior_ptid), (caddr_t) &piod, 0) == -1) + { + /* If the PT_IO request is somehow not supported, fallback on + using PT_WRITE_D/PT_READ_D. Otherwise we will return zero + to indicate failure. */ + if (errno != EINVAL) + return 0; + } + else + { + /* Return the actual number of bytes read or written. */ + return piod.piod_len; + } + } +#endif + + /* Allocate buffer of that many longwords. */ + if (len < GDB_MAX_ALLOCA) + { + buffer = (PTRACE_TYPE_RET *) alloca (alloc); + } + else + { + buffer = (PTRACE_TYPE_RET *) xmalloc (alloc); + old_chain = make_cleanup (xfree, buffer); + } + + if (write) + { + /* Fill start and end extra bytes of buffer with existing memory + data. */ + if (addr != memaddr || len < (int) sizeof (PTRACE_TYPE_RET)) + { + /* Need part of initial word -- fetch it. */ + buffer[0] = ptrace (PT_READ_I, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) addr, 0); + } + + if (count > 1) /* FIXME, avoid if even boundary. */ + { + buffer[count - 1] = + ptrace (PT_READ_I, PIDGET (inferior_ptid), + ((PTRACE_TYPE_ARG3) + (addr + (count - 1) * sizeof (PTRACE_TYPE_RET))), 0); + } + + /* Copy data to be written over corresponding part of buffer. */ + memcpy ((char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)), + myaddr, len); + + /* Write the entire buffer. */ + for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET)) + { + errno = 0; + ptrace (PT_WRITE_D, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) addr, buffer[i]); + if (errno) + { + /* Using the appropriate one (I or D) is necessary for + Gould NP1, at least. */ + errno = 0; + ptrace (PT_WRITE_I, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) addr, buffer[i]); + } + if (errno) + return 0; + } + } + else + { + /* Read all the longwords. */ + for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET)) + { + errno = 0; + buffer[i] = ptrace (PT_READ_I, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) addr, 0); + if (errno) + return 0; + QUIT; + } + + /* Copy appropriate bytes out of the buffer. */ + memcpy (myaddr, + (char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)), + len); + } + + if (old_chain != NULL) + do_cleanups (old_chain); + return len; +} + +static int +hpux_thread_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int dowrite, struct mem_attrib *attribs, struct target_ops *target) { @@ -408,7 +856,7 @@ hpux_thread_xfer_memory (CORE_ADDR memad inferior_ptid = main_ptid; retval = - deprecated_child_ops.deprecated_xfer_memory (memaddr, myaddr, len, dowrite, attribs, target); + hpux_child_xfer_memory (memaddr, myaddr, len, dowrite, attribs, target); do_cleanups (old_chain); @@ -420,13 +868,40 @@ hpux_thread_xfer_memory (CORE_ADDR memad static void hpux_thread_files_info (struct target_ops *ignore) { - deprecated_child_ops.to_files_info (ignore); + printf_unfiltered (_("\tUsing the running image of %s %s.\n"), + attach_flag ? "attached" : "child", target_pid_to_str (inferior_ptid)); +} + +/* NOTE: cagney/2004-09-12: Instead of definining this macro, code + should call inf_ptrace_target to get a basic ptrace target and then + locally update any necessary methods. See ppcnbsd-nat.c. */ + +static void +hpux_kill_inferior (void) +{ + int status; + int pid = PIDGET (inferior_ptid); + + if (pid == 0) + return; + + /* This once used to call "kill" to kill the inferior just in case + the inferior was still running. As others have noted in the past + (kingdon) there shouldn't be any way to get here if the inferior + is still running -- else there's a major problem elsewere in gdb + and it needs to be fixed. + + The kill call causes problems under hpux10, so it's been removed; + if this causes problems we'll deal with them as they arise. */ + ptrace (PT_KILL, pid, (PTRACE_TYPE_ARG3) 0, 0); + wait (&status); + target_mourn_inferior (); } static void hpux_thread_kill_inferior (void) { - deprecated_child_ops.to_kill (); + hpux_kill_inferior (); } static void @@ -435,13 +910,63 @@ hpux_thread_notice_signals (ptid_t ptid) deprecated_child_ops.to_notice_signals (ptid); } +/* Stub function which causes the inferior that runs it, to be ptrace-able + by its parent process. */ + +static void +ptrace_me (void) +{ + /* "Trace me, Dr. Memory!" */ + ptrace (0, 0, (PTRACE_TYPE_ARG3) 0, 0); +} + +/* Stub function which causes the GDB that runs it, to start ptrace-ing + the child process. */ + +static void +ptrace_him (int pid) +{ + push_target (&deprecated_child_ops); + + /* On some targets, there must be some explicit synchronization + between the parent and child processes after the debugger + forks, and before the child execs the debuggee program. This + call basically gives permission for the child to exec. + */ + + target_acknowledge_created_inferior (pid); + + /* START_INFERIOR_TRAPS_EXPECTED is defined in inferior.h, + * and will be 1 or 2 depending on whether we're starting + * without or with a shell. + */ + startup_inferior (START_INFERIOR_TRAPS_EXPECTED); + + /* On some targets, there must be some explicit actions taken after + the inferior has been started up. + */ + target_post_startup_inferior (pid_to_ptid (pid)); +} + +/* Start an inferior Unix child process and sets inferior_ptid to its pid. + EXEC_FILE is the file to run. + ALLARGS is a string containing the arguments to the program. + ENV is the environment vector to pass. Errors reported with error(). */ + +static void +child_create_inferior (char *exec_file, char *allargs, char **env, + int from_tty) +{ + fork_inferior (exec_file, allargs, env, ptrace_me, ptrace_him, NULL, NULL); +} + /* Fork an inferior process, and start debugging it with /proc. */ static void hpux_thread_create_inferior (char *exec_file, char *allargs, char **env, int from_tty) { - deprecated_child_ops.to_create_inferior (exec_file, allargs, env, from_tty); + child_create_inferior (exec_file, allargs, env, from_tty); if (hpux_thread_active) { @@ -505,7 +1030,8 @@ quit: static void hpux_thread_mourn_inferior (void) { - deprecated_child_ops.to_mourn_inferior (); + unpush_target (&hpux_thread_ops); + generic_mourn_inferior (); } /* Mark our target-struct as eligible for stray "run" and "attach" commands. */ @@ -522,10 +1048,22 @@ hpux_thread_alive (ptid_t ptid) return 1; } +/* Send a SIGINT to the process group. This acts just like the user typed a + ^C on the controlling terminal. + + XXX - This may not be correct for all systems. Some may want to use + killpg() instead of kill (-pgrp). */ + +static void +child_stop (void) +{ + kill (-inferior_process_group, SIGINT); +} + static void hpux_thread_stop (void) { - deprecated_child_ops.to_stop (); + child_stop (); } \f /* Convert a pid to printable form. */ ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-01-01 16:47 ` John David Anglin @ 2007-01-01 17:10 ` Mark Kettenis 2007-01-01 17:20 ` John David Anglin 0 siblings, 1 reply; 27+ messages in thread From: Mark Kettenis @ 2007-01-01 17:10 UTC (permalink / raw) To: dave; +Cc: drow, gdb, dave.anglin, brobecker > Date: Mon, 1 Jan 2007 11:46:49 -0500 (EST) > From: "John David Anglin" <dave@hiauly1.hia.nrc.ca> > > > > Tried a simple test with this version. Tried to debug gdb itself. > > > Set a break on main and ran gdb with "-v". The exterior gdb dumped > > > core. The cause seems to be that the deprecated_child_ops struct > > > hasn't been initialized. It looks like the stuff in inf-ptrace.c > > > needs to be merged into hpux-thread.c, or we need to setup > > > deprecated_child_ops. Presumably, this was done at some point in > > > the past. > > > > Is this worth fixing? Obviously no one has used it lately. > > Don't know but I probably would use it if it worked. I hacked > on this a bit a couple of weeks ago. I mainly pulled code from > inftarg.c with a bit of specialization for hpux. It builds and > some stuff may work... Hi Dave, I'm sorry to say this, but I think you're on the wrong track. Instead of replicating bits from the obsolete inftarg.c, this should really be implemented as a threads stratum, much in the same way as bsd-uthread.c. I'll see if I can hack something up for you along those lines. Unfortunately the HP-UX 10.20 system that I have access to, doesn't have the threads stuff installed, so I can't test things. Mark ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-01-01 17:10 ` Mark Kettenis @ 2007-01-01 17:20 ` John David Anglin 0 siblings, 0 replies; 27+ messages in thread From: John David Anglin @ 2007-01-01 17:20 UTC (permalink / raw) To: Mark Kettenis; +Cc: drow, gdb, dave.anglin, brobecker > I'm sorry to say this, but I think you're on the wrong track. Instead > of replicating bits from the obsolete inftarg.c, this should really be > implemented as a threads stratum, much in the same way as > bsd-uthread.c. Expected as much. > I'll see if I can hack something up for you along those lines. > Unfortunately the HP-UX 10.20 system that I have access to, doesn't > have the threads stuff installed, so I can't test things. If you can do initial cut along the lines in bsd-uthread.c, I'm perfectly willing to test and help work the bugs. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz 2006-12-16 21:23 ` Christopher Faylor 2006-12-17 1:24 ` John David Anglin @ 2006-12-17 1:36 ` Russell Shaw 2006-12-17 12:20 ` Mark Kettenis ` (2 subsequent siblings) 5 siblings, 0 replies; 27+ messages in thread From: Russell Shaw @ 2006-12-17 1:36 UTC (permalink / raw) Cc: gdb Daniel Jacobowitz wrote: > This is something I've been meaning to do for a long time. GDB is, in > my humble opinion, overdue for some pruning. I went through the GDB > source tree and identified every file that I believe is obsolete: code > only used for systems, formats, targets, etc. where support in new > versions of GDB is not useful, which is thus a candidate for removal. > > Most of this stuff has been around for a long time, and it won't hurt > to keep it around a little longer. So let's take our time. If you > see anything on this list that you'd miss, please say so! I've left a > lot of things off the list which I'd rather remove, but have seen > signs of life for; if there's something you'd add to the list, please > say that too. After some discussion, I recommend we post the list > to gdb-announce. I'm not sure if that really reaches a wider audience, > but it may. > > I've CC'd people I had particular questions for. And now, the lists! > Targets, then entire subdirectories, then files. > > Native and cross targets which might be obsolete: ... > remote-e7000.c > > "Remote debugging interface for Renesas E7000 ICE". > I found a sad looking one on ebay, but that's the only thing > I could find from this decade. > > remote-est.c > > "Remote debugging interface for EST-300 ICE". I couldn't > find even that much life. > > remote-hms.c > > An on-board ROM monitor for Renesas boards. No signs of life. > > remote-mips.c > > I think this is support for the built-in monitor of PMON. > I see that Atsushi Nemoto reported a problem with this in 2003, > so it might be worth keeping. > > remote-sds.c > > A remote monitor target for some PowerPC boards? > > remote-st.c > > "Remote debugging interface for Tandem ST2000 phone switch" > GDB is now the source of every google hit I checked for this > product. > > remote-utils.c > remote-utils.h > > I think that all the code in this file is actually dead. > I had a patch to remove it at some point but forgot about it. I used some of these as examples to make a gdb interface for an AVR JTAG debugger to work directly in gdb instead of needing that shim garbage. It could be useful to keep atleast one good example for anyone else that needs to do the same. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz ` (2 preceding siblings ...) 2006-12-17 1:36 ` Russell Shaw @ 2006-12-17 12:20 ` Mark Kettenis 2006-12-17 14:26 ` Stephen & Linda Smith 2006-12-17 15:37 ` Daniel Jacobowitz 2006-12-17 13:40 ` Joel Brobecker 2007-01-01 16:46 ` Daniel Jacobowitz 5 siblings, 2 replies; 27+ messages in thread From: Mark Kettenis @ 2006-12-17 12:20 UTC (permalink / raw) To: gdb, dave.anglin, brobecker, Mark Kettenis Daniel, I mostly agree with your list, except for the following: > Native and cross targets which might be obsolete: > > alpha*-*-osf* Might be a bit too early for this. You can still buy new True64 systems from HP. Support for alpha*-*-osf1 and alpha*-*-osf2 can probably be dropped, but I think we want to keep alpha*-*-osf3. If someone can send me some oldish Digital UNIX or True64 install cd's for a version supported on the AlphaServer 800, I might have a go at cleaning things up. > hppa*-*-hiux* > > (Not hppa*-*-hpux*) See my reply to Dave's message. > i[34567]86-ncr-* > > i[34567]86-*-dgux* > > i[34567]86-*-lynxos* > > i[34567]86-*-netware* > > i[34567]86-*-sco3.2v5* > > i[34567]86-*-sco3.2v4* > > i[34567]86-*-sco* > > i[34567]86-*-sysv4.2* > > i[34567]86-*-sysv4* > > i[34567]86-*-sysv5* > > i[34567]86-*-unixware2* > > i[34567]86-*-unixware* > > i[34567]86-*-sysv* > > i[34567]86-*-isc* Yes, it is time for these to go. The main reason they're still there is because our current procedure for obsoleting targets is too complicated and too ugly. I really can't get myself to put OBSOLETE on every line of the affected source files. Can we change the policy to something like what the GCC people do? They put a stanza in config.gcc that lists the obsolete configs and bails out on those configs unless the user specifies --enable-obsolete. Then the config gets removed completely after the next release. That said, I don't really have a problem with zapping these now. > alpha-osf1-tdep.c > > Only used by the alpha-osf1 target. I'm pretty sure we don't > need support for this platform anymore. But the last reference > I see to it was from Joel in 2002; Joel, is this platform still > relevant to you? See my comments above. > gnu-v2-abi.c > gnu-v2-abi.h > > C++ ABI support for GCC 2.x. > > I'm not sure about these. The last release of GCC they worked > with was 2.95.3. GCC 3.0 was released Jun 18, 2001. Adoption > was slow, but I think I can safely say that almost no one uses > 2.95.x any more; even Debian stopped using it three and a half > years ago. Should we keep this? Yes, we should keep this. Several OpenBSD platforms still use GCC 2.95.3. > i386v-nat.c > > This file is used for i[34567]86-*-sco* and for > i[34567]86-*-sysv4* and for i[34567]86-*-unixware* (but not > unixware2*). I haven't heard of anyone using GDB on any of > these configurations in a long time. > > Mark Kettenis was the last person to make a non-mechanical > update to this file, in 2002. Mark, do you have any use for > those targets? Not really. > infptrace.c > > I'd love to remove this old file (replaced by inf-ptrace.c) > but I don't think we quite can yet. It appears to be still > used by alpha-osf (probably obsolete), i386-sco and similar > (also probably obsolete), but also powerpc-aix. AIX could > use some updating if anyone wants to keep the GDB port to > that platform alive. Someone should really clean up the rs6000/powerpc mess, which really is there because we hardly seem to have any people with access to AIX. > mdebugread.c > mdebugread.h > > If there's any platform left that still produces this format > of symbolic debug information, I don't know what it is. I think these are still necessary for Alpha (alpha-mdebug-tdep.c). > solib-sunos.c > > Used by: config/arm/nbsdaout.mh config/i386/nbsdaout.mh > config/i386/obsdaout.mh config/m68k/nbsdaout.mh > config/m68k/obsd.mh config/sparc/nbsdaout.mh > config/vax/nbsdaout.mh > > Are those a.out targets still current, and do they still use > "SunOS" shared library support? If so we'll definitely > keep this, but perhaps it needs a rename. OpenBSD/m68k is still a.out and needs this for shared library support. (OpenBSD/m88k and OpenBSD/vax are also still a.out, but they don't have shared library support, and I guess they'll be switched to ELF before they gain that support.) The other configurations could be obsoleted I guess, although I'd like to go the more formal route here, by listing them as obsolete, and removing them after the next release. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-17 12:20 ` Mark Kettenis @ 2006-12-17 14:26 ` Stephen & Linda Smith 2006-12-17 15:37 ` Daniel Jacobowitz 1 sibling, 0 replies; 27+ messages in thread From: Stephen & Linda Smith @ 2006-12-17 14:26 UTC (permalink / raw) To: Mark Kettenis, gdb Mark Kettenis wrote: >> gnu-v2-abi.c >> gnu-v2-abi.h >> >> C++ ABI support for GCC 2.x. >> >> I'm not sure about these. The last release of GCC they worked >> with was 2.95.3. GCC 3.0 was released Jun 18, 2001. Adoption >> was slow, but I think I can safely say that almost no one uses >> 2.95.x any more; even Debian stopped using it three and a half >> years ago. Should we keep this? >> > > Yes, we should keep this. Several OpenBSD platforms still use GCC 2.95.3. > > The OS that I am working with still uses the 2.95 compiler for the PPC. Please keep it in. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-17 12:20 ` Mark Kettenis 2006-12-17 14:26 ` Stephen & Linda Smith @ 2006-12-17 15:37 ` Daniel Jacobowitz 2006-12-20 6:01 ` Joel Brobecker 1 sibling, 1 reply; 27+ messages in thread From: Daniel Jacobowitz @ 2006-12-17 15:37 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb, dave.anglin, brobecker, Mark Kettenis Thanks to everyone who replied! I'll collect all the feedback and revise the list - either next week or after I get back from my holiday vacation. On Sun, Dec 17, 2006 at 01:20:29PM +0100, Mark Kettenis wrote: > Yes, it is time for these to go. The main reason they're still there is > because our current procedure for obsoleting targets is too complicated > and too ugly. I really can't get myself to put OBSOLETE on every line of > the affected source files. Can we change the policy to something like > what the GCC people do? They put a stanza in config.gcc that lists the > obsolete configs and bails out on those configs unless the user > specifies --enable-obsolete. Then the config gets removed completely > after the next release. > > That said, I don't really have a problem with zapping these now. I am happy to change the mechanism; I don't like // OBSOLETE either. We can't even use the current mechanism for some of these files: anything not directly corresponding to a target. To be honest, I'd been thinking about waiting for everyone to agree on which things to remove, sending a message to gdb-announce, and then just doing it. If there were any justifiable complaints at the time of the next release we could recover targets from CVS history. I'm sure not everyone is comfortable with that sudden of an approach, so using configure for targets for one release is fine with me too. > > mdebugread.c > > mdebugread.h > > > > If there's any platform left that still produces this format > > of symbolic debug information, I don't know what it is. > > I think these are still necessary for Alpha (alpha-mdebug-tdep.c). This is the only file I've seen any objections to that I really wanted to get rid of, but it looks like you're right. Do you know which Alpha configurations are likely to use it, so that we can know when we don't need it any more? Maybe it's all the ECOFF ones. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-17 15:37 ` Daniel Jacobowitz @ 2006-12-20 6:01 ` Joel Brobecker 0 siblings, 0 replies; 27+ messages in thread From: Joel Brobecker @ 2006-12-20 6:01 UTC (permalink / raw) To: Mark Kettenis, gdb, dave.anglin, Mark Kettenis > I am happy to change the mechanism; I don't like // OBSOLETE either. > We can't even use the current mechanism for some of these files: > anything not directly corresponding to a target. > > To be honest, I'd been thinking about waiting for everyone to agree on > which things to remove, sending a message to gdb-announce, and then > just doing it. If there were any justifiable complaints at the time of > the next release we could recover targets from CVS history. I'm sure > not everyone is comfortable with that sudden of an approach, so > using configure for targets for one release is fine with me too. Either approach is fine with me. I agree the // OBSOLETE approach is a bit of a pain... -- Joel ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz ` (3 preceding siblings ...) 2006-12-17 12:20 ` Mark Kettenis @ 2006-12-17 13:40 ` Joel Brobecker 2007-01-01 16:46 ` Daniel Jacobowitz 5 siblings, 0 replies; 27+ messages in thread From: Joel Brobecker @ 2006-12-17 13:40 UTC (permalink / raw) To: gdb, dave.anglin, Mark Kettenis > alpha*-*-osf* > alpha-osf1-tdep.c > > Only used by the alpha-osf1 target. I'm pretty sure we don't > need support for this platform anymore. But the last reference > I see to it was from Joel in 2002; Joel, is this platform still > relevant to you? We still use alpha-osf5* targets, but alpha-os1-tdep.c is used for all alpha targets. I looked at the CVS logs, and I made a few changes to it recently (end of Dec 2004). So I would like to keep that file for a little while longer. > infptrace.c > > I'd love to remove this old file (replaced by inf-ptrace.c) > but I don't think we quite can yet. It appears to be still > used by alpha-osf (probably obsolete), i386-sco and similar > (also probably obsolete), but also powerpc-aix. AIX could > use some updating if anyone wants to keep the GDB port to > that platform alive. I don't mind putting this on my list of things to do (I actually just did). This shouldn't be very difficult, should it. The only issue is that AIX machines are so sloooooow, it makes everything take a long time. That's the only observations I have on your proposed list. I agree with the rest of your list. -- Joel ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz ` (4 preceding siblings ...) 2006-12-17 13:40 ` Joel Brobecker @ 2007-01-01 16:46 ` Daniel Jacobowitz 2007-01-01 16:58 ` Mark Kettenis ` (2 more replies) 5 siblings, 3 replies; 27+ messages in thread From: Daniel Jacobowitz @ 2007-01-01 16:46 UTC (permalink / raw) To: gdb; +Cc: dave.anglin, brobecker, Mark Kettenis On Sat, Dec 16, 2006 at 03:59:23PM -0500, Daniel Jacobowitz wrote: > Most of this stuff has been around for a long time, and it won't hurt > to keep it around a little longer. So let's take our time. If you > see anything on this list that you'd miss, please say so! Things saved from the chopping block by requests: alpha*-*-osf* vax-*-* osf-share alpha-osf1-tdep.c gnu-v2-abi.c gnu-v2-abi.h hpux-thread.c infptrace.c mdebugread.c mdebugread.h remote-mips.c solib-sunos.c vax-nat.c And I see Mark deleted the orphaned remote-sds.c, so I took that off the list too. That leaves the items below. I propose that, when we've agreed on this list, we (A) send the list to gdb-announce, (B) wait a few weeks for feedback, and then (C) delete the files. At the same time, for removed configurations we can add a blurb in configure which recognizes the removed configurations and informs the user that support was removed. That's a pretty aggressive removal schedule, I realize. If folks are uncomfortable with it, speak up, and we can come up with something slower. But I don't want to invest too much time in issuing warnings for code that we're pretty sure no one uses any more. Native and cross targets which might be obsolete: arm*-wince-pe (See the discussion of wince.c below.) hppa*-*-hiux* (Not hppa*-*-hpux*) i[34567]86-ncr-* i[34567]86-*-dgux* i[34567]86-*-lynxos* i[34567]86-*-netware* i[34567]86-*-sco3.2v5* i[34567]86-*-sco3.2v4* i[34567]86-*-sco* i[34567]86-*-sysv4.2* i[34567]86-*-sysv4* i[34567]86-*-sysv5* i[34567]86-*-unixware2* i[34567]86-*-unixware* i[34567]86-*-sysv* i[34567]86-*-isc* m68*-cisco*-* m68*-tandem-* m68*-*-os68k* mips*-*-pe rs6000-*-lynxos* sh*-*-pe Files at the top level which might be obsolete: abug-rom.c The ABug ROM Monitor target. Only enabled for embedded m68k targets. coff-solib.c coff-solib.h These are only used for the rs6000-lynxos target. I'm pretty much positive that no one has built a recent GDB for LynxOS. cpu32bug-rom.c Like abug-rom.c, another embedded monitor for m68k. d10v-tdep.c This was marked obsolete 2004-11-01; it's time for it to go. dwarfread.c DWARF 1. GCC removed support for generating this format several years ago. hpacc-abi.c Support for the HP aCC C++ compiler, on PA. HP-UX for Itanium doesn't use this; GCC for hppa-hpux doesn't use it either. See next item. hpread.c Support for symbolic debug info for the HP compilers on HP-UX. This is the equivalent of dwarf2read, not the equivalent of elfread; removing it won't interfere with non-symbolic debugging or with debugging SOM executables produced by the GNU tools. I raised the question of removing this support on the GDB mailing list earlier in 2006 and there was general support. The only people who spoke up saying they used HP's compilers on HP-UX said that they use HP's fork of GDB there anyway. i386v-nat.c This file is used for i[34567]86-*-sco* and for i[34567]86-*-sysv4* and for i[34567]86-*-unixware* (but not unixware2*). I haven't heard of anyone using GDB on any of these configurations in a long time. lynx-nat.c Again, only used on rs6000-lynxos. mips-mdebug-tdep.c mips-mdebug-tdep.h Support for using .pdr information to backtrace. Andrew pulled this code out of mips-tdep in 2004 and only linked it in for mips-elf; mips-linux hasn't missed it. If you want to improve mips-elf backtraces then finish hooking it up to the dwarf2 unwinder instead of messing with this. mipsread.c ECOFF support related to, I think, the same platforms as used mdebugread.c. Looks like alpha-osf1 uses this. I know that ECOFF support for MIPS is pretty much unused now; some targets need images converted to ECOFF for loading a bootloader or kernel, but the actual work is all strictly ELF. Binutils has discussed dropping ECOFF support for MIPS several times and no one has spoken in its defense lately. nlmread.c We already removed most support for NLM files (NetWare). This was left behind. ocd.c ocd.h ppc-bdm.c This claims to be Macraigor Wiggler support. But it only opens a serial device; the things Macraigor sells nowadays are either parallel or USB. In the archives I see several people trying to use this, but no one succeeding. Note to self: be careful removing this! The common "remotetimeout" command appears to come from ocd.c rather than remote.c. remote-e7000.c "Remote debugging interface for Renesas E7000 ICE". I found a sad looking one on ebay, but that's the only thing I could find from this decade. remote-est.c "Remote debugging interface for EST-300 ICE". I couldn't find even that much life. remote-hms.c An on-board ROM monitor for Renesas boards. No signs of life. remote-st.c "Remote debugging interface for Tandem ST2000 phone switch" GDB is now the source of every google hit I checked for this product. remote-utils.c remote-utils.h I think that all the code in this file is actually dead. I had a patch to remove it at some point but forgot about it. rom68k-rom.c "Remote target glue for the ROM68K ROM monitor" I found only one reference that wasn't to GDB or dejagnu. scm-exp.c scm-lang.c scm-lang.h scm-tags.h scm-valprint.c "Scheme/Guile language support" it says. What does this actually support? It looks like it talks to the internal representation of some version of Guile, but I bet it hasn't worked in a long time. ser-e7kpc.c "Renesas E7000 PC ISA card". Nuff said? sh3-rom.c Another set of Hitachi / Renesas ROM monitors, to which I can find no references. stop-gdb.c A support program for Mach 3.0. Currently used nowhere. uw-thread.c UnixWare user mode thread support. wince-stub.c wince-stub.h wince.c For Windows CE devices. Pedro Alves breathed some life back into these in June, but Chris Faylor rejected the patch (with which I completely agree). It's a Windows-specific remote protocol, and should use the GDB remote protocol instead. And now there's a Windows gdbserver as a start to that. I think these files should be removed. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-01-01 16:46 ` Daniel Jacobowitz @ 2007-01-01 16:58 ` Mark Kettenis 2007-01-03 23:55 ` Jim Blandy 2007-02-10 20:50 ` Daniel Jacobowitz 2 siblings, 0 replies; 27+ messages in thread From: Mark Kettenis @ 2007-01-01 16:58 UTC (permalink / raw) To: drow; +Cc: gdb, dave.anglin, brobecker > Date: Mon, 1 Jan 2007 11:46:22 -0500 > From: Daniel Jacobowitz <drow@false.org> > > That leaves the items below. I propose that, when we've agreed on this > list, we (A) send the list to gdb-announce, (B) wait a few weeks for > feedback, and then (C) delete the files. At the same time, for removed > configurations we can add a blurb in configure which recognizes the > removed configurations and informs the user that support was removed. > > That's a pretty aggressive removal schedule, I realize. If folks are > uncomfortable with it, speak up, and we can come up with something > slower. But I don't want to invest too much time in issuing warnings > for code that we're pretty sure no one uses any more. I'm completely behind this proposal. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-01-01 16:46 ` Daniel Jacobowitz 2007-01-01 16:58 ` Mark Kettenis @ 2007-01-03 23:55 ` Jim Blandy 2007-02-10 20:50 ` Daniel Jacobowitz 2 siblings, 0 replies; 27+ messages in thread From: Jim Blandy @ 2007-01-03 23:55 UTC (permalink / raw) To: gdb; +Cc: dave.anglin, brobecker, Mark Kettenis Daniel Jacobowitz <drow@false.org> writes: > scm-exp.c > scm-lang.c > scm-lang.h > scm-tags.h > scm-valprint.c > > "Scheme/Guile language support" it says. What does this > actually support? It looks like it talks to the internal > representation of some version of Guile, but I bet it hasn't > worked in a long time. These should go. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-01-01 16:46 ` Daniel Jacobowitz 2007-01-01 16:58 ` Mark Kettenis 2007-01-03 23:55 ` Jim Blandy @ 2007-02-10 20:50 ` Daniel Jacobowitz 2007-02-12 17:35 ` Joel Brobecker 2 siblings, 1 reply; 27+ messages in thread From: Daniel Jacobowitz @ 2007-02-10 20:50 UTC (permalink / raw) To: gdb, brobecker On Mon, Jan 01, 2007 at 11:46:22AM -0500, Daniel Jacobowitz wrote: > That leaves the items below. I propose that, when we've agreed on this > list, we (A) send the list to gdb-announce, (B) wait a few weeks for > feedback, and then (C) delete the files. At the same time, for removed > configurations we can add a blurb in configure which recognizes the > removed configurations and informs the user that support was removed. > > That's a pretty aggressive removal schedule, I realize. If folks are > uncomfortable with it, speak up, and we can come up with something > slower. But I don't want to invest too much time in issuing warnings > for code that we're pretty sure no one uses any more. No one spoke up. Let's do it. I'll take care of the actual removals. Joel, gdb-announce is moderated, right? If I sent you the current list could you post it there? -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Likely obsolete pieces of GDB 2007-02-10 20:50 ` Daniel Jacobowitz @ 2007-02-12 17:35 ` Joel Brobecker 0 siblings, 0 replies; 27+ messages in thread From: Joel Brobecker @ 2007-02-12 17:35 UTC (permalink / raw) To: gdb > No one spoke up. Let's do it. I'll take care of the actual removals. > > Joel, gdb-announce is moderated, right? If I sent you the current list > could you post it there? Sure. Or just post the email to gdb-announce, and I should be able to approve it. -- Joel ^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2007-02-18 10:47 UTC | newest] Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-12-16 20:59 Likely obsolete pieces of GDB Daniel Jacobowitz 2006-12-16 21:23 ` Christopher Faylor 2007-02-10 21:42 ` Pedro Alves 2007-02-10 23:50 ` Daniel Jacobowitz 2007-02-19 1:25 ` Pedro Alves 2006-12-17 1:24 ` John David Anglin 2006-12-17 11:46 ` Mark Kettenis 2007-01-01 16:34 ` Daniel Jacobowitz 2006-12-18 3:03 ` John David Anglin 2006-12-18 3:43 ` John David Anglin 2006-12-20 16:07 ` John David Anglin 2006-12-20 17:41 ` John David Anglin 2007-01-01 16:33 ` Daniel Jacobowitz 2007-01-01 16:47 ` John David Anglin 2007-01-01 17:10 ` Mark Kettenis 2007-01-01 17:20 ` John David Anglin 2006-12-17 1:36 ` Russell Shaw 2006-12-17 12:20 ` Mark Kettenis 2006-12-17 14:26 ` Stephen & Linda Smith 2006-12-17 15:37 ` Daniel Jacobowitz 2006-12-20 6:01 ` Joel Brobecker 2006-12-17 13:40 ` Joel Brobecker 2007-01-01 16:46 ` Daniel Jacobowitz 2007-01-01 16:58 ` Mark Kettenis 2007-01-03 23:55 ` Jim Blandy 2007-02-10 20:50 ` Daniel Jacobowitz 2007-02-12 17:35 ` Joel Brobecker
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox