diff options
author | nobody <> | 2002-09-07 00:00:05 +0000 |
---|---|---|
committer | nobody <> | 2002-09-07 00:00:05 +0000 |
commit | c1aa2a27e755c883b5c49b223120dfb712ea4e28 (patch) | |
tree | a98633075cd1f2b034b49446e83e522708d11f68 /gdb/testsuite/gdb.trace | |
parent | 2e3c0e2427295c9cc09a8a707dfba38d50e2ba30 (diff) | |
download | gdb-sid-20020905-branch.zip gdb-sid-20020905-branch.tar.gz gdb-sid-20020905-branch.tar.bz2 |
This commit was manufactured by cvs2svn to create branchsid-20020905-branchpointsid-20020905-branch
'sid-20020905-branch'.
Sprout from gdb_5_3-branch 2002-09-03 22:29:15 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_5_3-branch'.'
Cherrypick from master 2002-09-07 00:00:04 UTC Alan Modra <amodra@gmail.com> 'daily update':
bfd/ChangeLog
bfd/config.bfd
bfd/version.h
include/ChangeLog
include/dis-asm.h
libiberty/ChangeLog
libiberty/regex.c
opcodes/ChangeLog
opcodes/disassemble.c
opcodes/ppc-dis.c
opcodes/ppc-opc.c
Delete:
djunpack.bat
gdb/CONTRIBUTE
gdb/COPYING
gdb/ChangeLog
gdb/ChangeLog-1990
gdb/ChangeLog-1991
gdb/ChangeLog-1992
gdb/ChangeLog-1993
gdb/ChangeLog-1994
gdb/ChangeLog-1995
gdb/ChangeLog-1996
gdb/ChangeLog-1997
gdb/ChangeLog-1998
gdb/ChangeLog-1999
gdb/ChangeLog-2000
gdb/ChangeLog-2001
gdb/ChangeLog-3.x
gdb/MAINTAINERS
gdb/Makefile.in
gdb/NEWS
gdb/PROBLEMS
gdb/README
gdb/TODO
gdb/a68v-nat.c
gdb/abug-rom.c
gdb/acconfig.h
gdb/acinclude.m4
gdb/aclocal.m4
gdb/ada-exp.y
gdb/ada-lang.c
gdb/ada-lang.h
gdb/ada-lex.l
gdb/ada-tasks.c
gdb/ada-typeprint.c
gdb/ada-valprint.c
gdb/aix-thread.c
gdb/alpha-linux-tdep.c
gdb/alpha-nat.c
gdb/alpha-osf1-tdep.c
gdb/alpha-tdep.c
gdb/alpha-tdep.h
gdb/alphabsd-nat.c
gdb/alphabsd-tdep.c
gdb/alphabsd-tdep.h
gdb/alphafbsd-tdep.c
gdb/alphanbsd-tdep.c
gdb/annotate.c
gdb/annotate.h
gdb/arc-tdep.c
gdb/arch-utils.c
gdb/arch-utils.h
gdb/arm-linux-nat.c
gdb/arm-linux-tdep.c
gdb/arm-tdep.c
gdb/arm-tdep.h
gdb/armnbsd-nat.c
gdb/armnbsd-tdep.c
gdb/avr-tdep.c
gdb/ax-gdb.c
gdb/ax-gdb.h
gdb/ax-general.c
gdb/ax.h
gdb/bcache.c
gdb/bcache.h
gdb/blockframe.c
gdb/breakpoint.c
gdb/breakpoint.h
gdb/buildsym.c
gdb/buildsym.h
gdb/builtin-regs.c
gdb/builtin-regs.h
gdb/c-exp.y
gdb/c-lang.c
gdb/c-lang.h
gdb/c-typeprint.c
gdb/c-valprint.c
gdb/call-cmds.h
gdb/ch-exp.c
gdb/ch-lang.c
gdb/ch-lang.h
gdb/ch-typeprint.c
gdb/ch-valprint.c
gdb/cli-out.c
gdb/cli-out.h
gdb/cli/cli-cmds.c
gdb/cli/cli-cmds.h
gdb/cli/cli-decode.c
gdb/cli/cli-decode.h
gdb/cli/cli-dump.c
gdb/cli/cli-dump.h
gdb/cli/cli-script.c
gdb/cli/cli-script.h
gdb/cli/cli-setshow.c
gdb/cli/cli-setshow.h
gdb/cli/cli-utils.c
gdb/cli/cli-utils.h
gdb/coff-solib.c
gdb/coff-solib.h
gdb/coffread.c
gdb/command.h
gdb/complaints.c
gdb/complaints.h
gdb/completer.c
gdb/completer.h
gdb/config.in
gdb/config/alpha/alpha-linux.mh
gdb/config/alpha/alpha-linux.mt
gdb/config/alpha/alpha-osf1.mh
gdb/config/alpha/alpha-osf1.mt
gdb/config/alpha/alpha-osf2.mh
gdb/config/alpha/alpha-osf3.mh
gdb/config/alpha/alpha.mt
gdb/config/alpha/fbsd.mh
gdb/config/alpha/fbsd.mt
gdb/config/alpha/nbsd.mh
gdb/config/alpha/nbsd.mt
gdb/config/alpha/nm-fbsd.h
gdb/config/alpha/nm-linux.h
gdb/config/alpha/nm-nbsd.h
gdb/config/alpha/nm-osf.h
gdb/config/alpha/nm-osf2.h
gdb/config/alpha/nm-osf3.h
gdb/config/alpha/tm-alpha.h
gdb/config/alpha/tm-alphalinux.h
gdb/config/alpha/tm-fbsd.h
gdb/config/alpha/tm-nbsd.h
gdb/config/alpha/xm-alphalinux.h
gdb/config/alpha/xm-alphaosf.h
gdb/config/arc/arc.mt
gdb/config/arc/tm-arc.h
gdb/config/arm/embed.mt
gdb/config/arm/linux.mh
gdb/config/arm/linux.mt
gdb/config/arm/nbsd.mt
gdb/config/arm/nbsdaout.mh
gdb/config/arm/nbsdelf.mh
gdb/config/arm/nm-linux.h
gdb/config/arm/nm-nbsd.h
gdb/config/arm/nm-nbsdaout.h
gdb/config/arm/tm-arm.h
gdb/config/arm/tm-embed.h
gdb/config/arm/tm-linux.h
gdb/config/arm/tm-wince.h
gdb/config/arm/wince.mt
gdb/config/arm/xm-linux.h
gdb/config/arm/xm-nbsd.h
gdb/config/avr/avr.mt
gdb/config/cris/cris.mt
gdb/config/cris/tm-cris.h
gdb/config/d10v/d10v.mt
gdb/config/d30v/d30v.mt
gdb/config/d30v/tm-d30v.h
gdb/config/djgpp/README
gdb/config/djgpp/config.sed
gdb/config/djgpp/djcheck.sh
gdb/config/djgpp/djconfig.sh
gdb/config/djgpp/fnchange.lst
gdb/config/fr30/fr30.mt
gdb/config/fr30/tm-fr30.h
gdb/config/frv/frv.mt
gdb/config/frv/tm-frv.h
gdb/config/h8300/h8300.mt
gdb/config/h8300/tm-h8300.h
gdb/config/h8500/h8500.mt
gdb/config/h8500/tm-h8500.h
gdb/config/i386/cygwin.mh
gdb/config/i386/cygwin.mt
gdb/config/i386/embed.mt
gdb/config/i386/fbsd.mh
gdb/config/i386/fbsd.mt
gdb/config/i386/gdbserve.mt
gdb/config/i386/go32.mh
gdb/config/i386/go32.mt
gdb/config/i386/i386aix.mh
gdb/config/i386/i386aix.mt
gdb/config/i386/i386aout.mt
gdb/config/i386/i386bsd.mh
gdb/config/i386/i386bsd.mt
gdb/config/i386/i386dgux.mh
gdb/config/i386/i386gnu.mh
gdb/config/i386/i386gnu.mt
gdb/config/i386/i386lynx.mh
gdb/config/i386/i386lynx.mt
gdb/config/i386/i386m3.mh
gdb/config/i386/i386m3.mt
gdb/config/i386/i386mach.mh
gdb/config/i386/i386mk.mh
gdb/config/i386/i386mk.mt
gdb/config/i386/i386nw.mt
gdb/config/i386/i386os9k.mt
gdb/config/i386/i386sco.mh
gdb/config/i386/i386sco4.mh
gdb/config/i386/i386sco5.mh
gdb/config/i386/i386sco5.mt
gdb/config/i386/i386sol2.mh
gdb/config/i386/i386sol2.mt
gdb/config/i386/i386v.mh
gdb/config/i386/i386v.mt
gdb/config/i386/i386v32.mh
gdb/config/i386/i386v4.mh
gdb/config/i386/i386v4.mt
gdb/config/i386/i386v42mp.mh
gdb/config/i386/i386v42mp.mt
gdb/config/i386/linux.mh
gdb/config/i386/linux.mt
gdb/config/i386/nbsd.mt
gdb/config/i386/nbsdaout.mh
gdb/config/i386/nbsdelf.mh
gdb/config/i386/ncr3000.mh
gdb/config/i386/ncr3000.mt
gdb/config/i386/nm-cygwin.h
gdb/config/i386/nm-fbsd.h
gdb/config/i386/nm-go32.h
gdb/config/i386/nm-i386.h
gdb/config/i386/nm-i386aix.h
gdb/config/i386/nm-i386bsd.h
gdb/config/i386/nm-i386gnu.h
gdb/config/i386/nm-i386lynx.h
gdb/config/i386/nm-i386mach.h
gdb/config/i386/nm-i386sco.h
gdb/config/i386/nm-i386sco4.h
gdb/config/i386/nm-i386sco5.h
gdb/config/i386/nm-i386sol2.h
gdb/config/i386/nm-i386v.h
gdb/config/i386/nm-i386v4.h
gdb/config/i386/nm-i386v42mp.h
gdb/config/i386/nm-linux.h
gdb/config/i386/nm-m3.h
gdb/config/i386/nm-nbsd.h
gdb/config/i386/nm-nbsdaout.h
gdb/config/i386/nm-obsd.h
gdb/config/i386/nm-ptx4.h
gdb/config/i386/nm-symmetry.h
gdb/config/i386/nm-x86-64linux.h
gdb/config/i386/obsd.mh
gdb/config/i386/ptx.mh
gdb/config/i386/ptx.mt
gdb/config/i386/ptx4.mh
gdb/config/i386/ptx4.mt
gdb/config/i386/symmetry.mh
gdb/config/i386/symmetry.mt
gdb/config/i386/tm-cygwin.h
gdb/config/i386/tm-fbsd.h
gdb/config/i386/tm-go32.h
gdb/config/i386/tm-i386.h
gdb/config/i386/tm-i386aix.h
gdb/config/i386/tm-i386bsd.h
gdb/config/i386/tm-i386lynx.h
gdb/config/i386/tm-i386m3.h
gdb/config/i386/tm-i386mk.h
gdb/config/i386/tm-i386os9k.h
gdb/config/i386/tm-i386sol2.h
gdb/config/i386/tm-i386v4.h
gdb/config/i386/tm-i386v42mp.h
gdb/config/i386/tm-linux.h
gdb/config/i386/tm-nbsd.h
gdb/config/i386/tm-ptx.h
gdb/config/i386/tm-ptx4.h
gdb/config/i386/tm-symmetry.h
gdb/config/i386/tm-vxworks.h
gdb/config/i386/tm-x86-64linux.h
gdb/config/i386/vxworks.mt
gdb/config/i386/x86-64linux.mh
gdb/config/i386/x86-64linux.mt
gdb/config/i386/xm-cygwin.h
gdb/config/i386/xm-go32.h
gdb/config/i386/xm-i386.h
gdb/config/i386/xm-i386aix.h
gdb/config/i386/xm-i386bsd.h
gdb/config/i386/xm-i386m3.h
gdb/config/i386/xm-i386mach.h
gdb/config/i386/xm-i386mk.h
gdb/config/i386/xm-i386sco.h
gdb/config/i386/xm-i386v.h
gdb/config/i386/xm-i386v32.h
gdb/config/i386/xm-i386v4.h
gdb/config/i386/xm-nbsd.h
gdb/config/i386/xm-ptx.h
gdb/config/i386/xm-ptx4.h
gdb/config/i386/xm-symmetry.h
gdb/config/i960/mon960.mt
gdb/config/i960/nindy960.mt
gdb/config/i960/tm-i960.h
gdb/config/i960/tm-mon960.h
gdb/config/i960/tm-nindy960.h
gdb/config/i960/tm-vx960.h
gdb/config/i960/vxworks960.mt
gdb/config/ia64/aix.mh
gdb/config/ia64/aix.mt
gdb/config/ia64/ia64.mt
gdb/config/ia64/linux.mh
gdb/config/ia64/linux.mt
gdb/config/ia64/nm-aix.h
gdb/config/ia64/nm-linux.h
gdb/config/ia64/tm-aix.h
gdb/config/ia64/tm-ia64.h
gdb/config/ia64/tm-linux.h
gdb/config/ia64/xm-aix.h
gdb/config/ia64/xm-linux.h
gdb/config/m32r/m32r.mt
gdb/config/m32r/tm-m32r.h
gdb/config/m68hc11/m68hc11.mt
gdb/config/m68k/3b1.mh
gdb/config/m68k/3b1.mt
gdb/config/m68k/apollo68b.mh
gdb/config/m68k/apollo68b.mt
gdb/config/m68k/apollo68v.mh
gdb/config/m68k/cisco.mt
gdb/config/m68k/delta68.mh
gdb/config/m68k/delta68.mt
gdb/config/m68k/dpx2.mh
gdb/config/m68k/dpx2.mt
gdb/config/m68k/es1800.mt
gdb/config/m68k/hp300bsd.mh
gdb/config/m68k/hp300bsd.mt
gdb/config/m68k/hp300hpux.mh
gdb/config/m68k/hp300hpux.mt
gdb/config/m68k/linux.mh
gdb/config/m68k/linux.mt
gdb/config/m68k/m68klynx.mh
gdb/config/m68k/m68klynx.mt
gdb/config/m68k/m68kv4.mh
gdb/config/m68k/m68kv4.mt
gdb/config/m68k/monitor.mt
gdb/config/m68k/nbsdaout.mh
gdb/config/m68k/nbsdaout.mt
gdb/config/m68k/nm-apollo68b.h
gdb/config/m68k/nm-apollo68v.h
gdb/config/m68k/nm-delta68.h
gdb/config/m68k/nm-dpx2.h
gdb/config/m68k/nm-hp300bsd.h
gdb/config/m68k/nm-hp300hpux.h
gdb/config/m68k/nm-linux.h
gdb/config/m68k/nm-m68klynx.h
gdb/config/m68k/nm-nbsd.h
gdb/config/m68k/nm-nbsdaout.h
gdb/config/m68k/nm-sun2.h
gdb/config/m68k/nm-sun3.h
gdb/config/m68k/nm-sysv4.h
gdb/config/m68k/os68k.mt
gdb/config/m68k/st2000.mt
gdb/config/m68k/sun2os3.mh
gdb/config/m68k/sun2os3.mt
gdb/config/m68k/sun2os4.mh
gdb/config/m68k/sun2os4.mt
gdb/config/m68k/sun3os3.mh
gdb/config/m68k/sun3os3.mt
gdb/config/m68k/sun3os4.mh
gdb/config/m68k/sun3os4.mt
gdb/config/m68k/tm-3b1.h
gdb/config/m68k/tm-apollo68b.h
gdb/config/m68k/tm-cisco.h
gdb/config/m68k/tm-delta68.h
gdb/config/m68k/tm-dpx2.h
gdb/config/m68k/tm-es1800.h
gdb/config/m68k/tm-hp300bsd.h
gdb/config/m68k/tm-hp300hpux.h
gdb/config/m68k/tm-linux.h
gdb/config/m68k/tm-m68k.h
gdb/config/m68k/tm-m68klynx.h
gdb/config/m68k/tm-m68kv4.h
gdb/config/m68k/tm-mac.h
gdb/config/m68k/tm-monitor.h
gdb/config/m68k/tm-nbsd.h
gdb/config/m68k/tm-os68k.h
gdb/config/m68k/tm-st2000.h
gdb/config/m68k/tm-sun2.h
gdb/config/m68k/tm-sun2os4.h
gdb/config/m68k/tm-sun3.h
gdb/config/m68k/tm-sun3os4.h
gdb/config/m68k/tm-vx68.h
gdb/config/m68k/vxworks68.mt
gdb/config/m68k/xm-3b1.h
gdb/config/m68k/xm-apollo68b.h
gdb/config/m68k/xm-apollo68v.h
gdb/config/m68k/xm-delta68.h
gdb/config/m68k/xm-dpx2.h
gdb/config/m68k/xm-hp300bsd.h
gdb/config/m68k/xm-hp300hpux.h
gdb/config/m68k/xm-linux.h
gdb/config/m68k/xm-m68k.h
gdb/config/m68k/xm-m68kv4.h
gdb/config/m68k/xm-nbsd.h
gdb/config/m68k/xm-sun2.h
gdb/config/m68k/xm-sun3.h
gdb/config/m68k/xm-sun3os4.h
gdb/config/m88k/delta88.mh
gdb/config/m88k/delta88.mt
gdb/config/m88k/delta88v4.mh
gdb/config/m88k/delta88v4.mt
gdb/config/m88k/m88k.mh
gdb/config/m88k/m88k.mt
gdb/config/m88k/nm-delta88v4.h
gdb/config/m88k/nm-m88k.h
gdb/config/m88k/tm-delta88.h
gdb/config/m88k/tm-delta88v4.h
gdb/config/m88k/tm-m88k.h
gdb/config/m88k/xm-delta88.h
gdb/config/m88k/xm-delta88v4.h
gdb/config/m88k/xm-dgux.h
gdb/config/mcore/mcore.mt
gdb/config/mips/bigmips.mt
gdb/config/mips/bigmips64.mt
gdb/config/mips/decstation.mh
gdb/config/mips/decstation.mt
gdb/config/mips/embed.mt
gdb/config/mips/embed64.mt
gdb/config/mips/embedl.mt
gdb/config/mips/embedl64.mt
gdb/config/mips/irix3.mh
gdb/config/mips/irix3.mt
gdb/config/mips/irix4.mh
gdb/config/mips/irix5.mh
gdb/config/mips/irix5.mt
gdb/config/mips/irix6.mh
gdb/config/mips/irix6.mt
gdb/config/mips/linux.mh
gdb/config/mips/linux.mt
gdb/config/mips/littlemips.mh
gdb/config/mips/littlemips.mt
gdb/config/mips/mipsm3.mh
gdb/config/mips/mipsm3.mt
gdb/config/mips/mipsv4.mh
gdb/config/mips/mipsv4.mt
gdb/config/mips/nbsd.mh
gdb/config/mips/nbsd.mt
gdb/config/mips/news-mips.mh
gdb/config/mips/nm-irix3.h
gdb/config/mips/nm-irix4.h
gdb/config/mips/nm-irix5.h
gdb/config/mips/nm-irix6.h
gdb/config/mips/nm-linux.h
gdb/config/mips/nm-mips.h
gdb/config/mips/nm-nbsd.h
gdb/config/mips/nm-news-mips.h
gdb/config/mips/nm-riscos.h
gdb/config/mips/riscos.mh
gdb/config/mips/tm-bigmips.h
gdb/config/mips/tm-bigmips64.h
gdb/config/mips/tm-embed.h
gdb/config/mips/tm-embed64.h
gdb/config/mips/tm-embedl.h
gdb/config/mips/tm-embedl64.h
gdb/config/mips/tm-irix3.h
gdb/config/mips/tm-irix5.h
gdb/config/mips/tm-irix6.h
gdb/config/mips/tm-linux.h
gdb/config/mips/tm-mips.h
gdb/config/mips/tm-mips64.h
gdb/config/mips/tm-mipsm3.h
gdb/config/mips/tm-mipsv4.h
gdb/config/mips/tm-nbsd.h
gdb/config/mips/tm-tx39.h
gdb/config/mips/tm-tx39l.h
gdb/config/mips/tm-vr4100.h
gdb/config/mips/tm-vr4300.h
gdb/config/mips/tm-vr4300el.h
gdb/config/mips/tm-vr4xxx.h
gdb/config/mips/tm-vr4xxxel.h
gdb/config/mips/tm-vr5000.h
gdb/config/mips/tm-vr5000el.h
gdb/config/mips/tm-vxmips.h
gdb/config/mips/tm-wince.h
gdb/config/mips/tx39.mt
gdb/config/mips/tx39l.mt
gdb/config/mips/vr4100.mt
gdb/config/mips/vr4300.mt
gdb/config/mips/vr4300el.mt
gdb/config/mips/vr4xxx.mt
gdb/config/mips/vr4xxxel.mt
gdb/config/mips/vr5000.mt
gdb/config/mips/vr5000el.mt
gdb/config/mips/vxmips.mt
gdb/config/mips/wince.mt
gdb/config/mips/xm-irix3.h
gdb/config/mips/xm-irix4.h
gdb/config/mips/xm-irix5.h
gdb/config/mips/xm-irix6.h
gdb/config/mips/xm-linux.h
gdb/config/mips/xm-mips.h
gdb/config/mips/xm-mipsm3.h
gdb/config/mips/xm-mipsv4.h
gdb/config/mips/xm-riscos.h
gdb/config/mn10200/mn10200.mt
gdb/config/mn10200/tm-mn10200.h
gdb/config/mn10300/mn10300.mt
gdb/config/nm-gnu.h
gdb/config/nm-linux.h
gdb/config/nm-lynx.h
gdb/config/nm-m3.h
gdb/config/nm-nbsd.h
gdb/config/nm-nbsdaout.h
gdb/config/nm-sysv4.h
gdb/config/none/nm-none.h
gdb/config/none/none.mh
gdb/config/none/none.mt
gdb/config/none/tm-none.h
gdb/config/none/xm-none.h
gdb/config/ns32k/nbsdaout.mh
gdb/config/ns32k/nbsdaout.mt
gdb/config/ns32k/nm-nbsd.h
gdb/config/ns32k/nm-nbsdaout.h
gdb/config/ns32k/tm-nbsd.h
gdb/config/ns32k/tm-ns32k.h
gdb/config/ns32k/xm-nbsd.h
gdb/config/pa/hppa.mt
gdb/config/pa/hppa64.mt
gdb/config/pa/hppabsd.mh
gdb/config/pa/hppabsd.mt
gdb/config/pa/hppahpux.mh
gdb/config/pa/hppahpux.mt
gdb/config/pa/hppaosf.mh
gdb/config/pa/hppaosf.mt
gdb/config/pa/hppapro.mt
gdb/config/pa/hpux1020.mh
gdb/config/pa/hpux1020.mt
gdb/config/pa/hpux11.mh
gdb/config/pa/hpux11.mt
gdb/config/pa/hpux11w.mh
gdb/config/pa/hpux11w.mt
gdb/config/pa/nm-hppab.h
gdb/config/pa/nm-hppah.h
gdb/config/pa/nm-hppah11.h
gdb/config/pa/nm-hppao.h
gdb/config/pa/tm-hppa.h
gdb/config/pa/tm-hppa64.h
gdb/config/pa/tm-hppab.h
gdb/config/pa/tm-hppah.h
gdb/config/pa/tm-hppao.h
gdb/config/pa/tm-pro.h
gdb/config/pa/xm-hppab.h
gdb/config/pa/xm-hppah.h
gdb/config/pa/xm-pa.h
gdb/config/powerpc/aix.mh
gdb/config/powerpc/aix.mt
gdb/config/powerpc/aix432.mh
gdb/config/powerpc/gdbserve.mt
gdb/config/powerpc/linux.mh
gdb/config/powerpc/linux.mt
gdb/config/powerpc/nbsd.mh
gdb/config/powerpc/nbsd.mt
gdb/config/powerpc/nm-aix.h
gdb/config/powerpc/nm-linux.h
gdb/config/powerpc/nm-nbsd.h
gdb/config/powerpc/ppc-eabi.mt
gdb/config/powerpc/ppc-sim.mt
gdb/config/powerpc/ppcle-eabi.mt
gdb/config/powerpc/ppcle-sim.mt
gdb/config/powerpc/tm-linux.h
gdb/config/powerpc/tm-nbsd.h
gdb/config/powerpc/tm-ppc-aix.h
gdb/config/powerpc/tm-ppc-eabi.h
gdb/config/powerpc/tm-ppc-sim.h
gdb/config/powerpc/tm-ppcle-eabi.h
gdb/config/powerpc/tm-ppcle-sim.h
gdb/config/powerpc/tm-vxworks.h
gdb/config/powerpc/vxworks.mt
gdb/config/powerpc/xm-aix.h
gdb/config/powerpc/xm-linux.h
gdb/config/rs6000/aix4.mh
gdb/config/rs6000/aix4.mt
gdb/config/rs6000/nm-rs6000.h
gdb/config/rs6000/nm-rs6000ly.h
gdb/config/rs6000/rs6000.mh
gdb/config/rs6000/rs6000.mt
gdb/config/rs6000/rs6000lynx.mh
gdb/config/rs6000/rs6000lynx.mt
gdb/config/rs6000/tm-rs6000-aix4.h
gdb/config/rs6000/tm-rs6000.h
gdb/config/rs6000/tm-rs6000ly.h
gdb/config/rs6000/xm-aix4.h
gdb/config/rs6000/xm-rs6000.h
gdb/config/s390/nm-linux.h
gdb/config/s390/s390.mh
gdb/config/s390/s390.mt
gdb/config/s390/s390x.mt
gdb/config/s390/tm-linux.h
gdb/config/s390/tm-s390.h
gdb/config/s390/xm-linux.h
gdb/config/sh/embed.mt
gdb/config/sh/linux.mt
gdb/config/sh/nbsd.mh
gdb/config/sh/nbsd.mt
gdb/config/sh/nm-nbsd.h
gdb/config/sh/tm-linux.h
gdb/config/sh/tm-nbsd.h
gdb/config/sh/tm-sh.h
gdb/config/sh/tm-wince.h
gdb/config/sh/wince.mt
gdb/config/sparc/fbsd.mh
gdb/config/sparc/fbsd.mt
gdb/config/sparc/linux.mh
gdb/config/sparc/linux.mt
gdb/config/sparc/nbsd.mt
gdb/config/sparc/nbsd64.mh
gdb/config/sparc/nbsd64.mt
gdb/config/sparc/nbsdaout.mh
gdb/config/sparc/nbsdelf.mh
gdb/config/sparc/nm-fbsd.h
gdb/config/sparc/nm-linux.h
gdb/config/sparc/nm-nbsd.h
gdb/config/sparc/nm-nbsdaout.h
gdb/config/sparc/nm-sparclynx.h
gdb/config/sparc/nm-sun4os4.h
gdb/config/sparc/nm-sun4sol2.h
gdb/config/sparc/sp64.mt
gdb/config/sparc/sp64linux.mt
gdb/config/sparc/sp64sim.mt
gdb/config/sparc/sp64sol2.mt
gdb/config/sparc/sparc-em.mt
gdb/config/sparc/sparclet.mt
gdb/config/sparc/sparclite.mt
gdb/config/sparc/sparclynx.mh
gdb/config/sparc/sparclynx.mt
gdb/config/sparc/sun4os4.mh
gdb/config/sparc/sun4os4.mt
gdb/config/sparc/sun4sol2.mh
gdb/config/sparc/sun4sol2.mt
gdb/config/sparc/tm-fbsd.h
gdb/config/sparc/tm-linux.h
gdb/config/sparc/tm-nbsd.h
gdb/config/sparc/tm-nbsd64.h
gdb/config/sparc/tm-sp64.h
gdb/config/sparc/tm-sp64linux.h
gdb/config/sparc/tm-sp64sim.h
gdb/config/sparc/tm-sparc.h
gdb/config/sparc/tm-sparclet.h
gdb/config/sparc/tm-sparclite.h
gdb/config/sparc/tm-sparclynx.h
gdb/config/sparc/tm-spc-em.h
gdb/config/sparc/tm-sun4os4.h
gdb/config/sparc/tm-sun4sol2.h
gdb/config/sparc/tm-vxsparc.h
gdb/config/sparc/vxsparc.mt
gdb/config/sparc/xm-linux.h
gdb/config/sparc/xm-sun4sol2.h
gdb/config/tm-linux.h
gdb/config/tm-lynx.h
gdb/config/tm-sunos.h
gdb/config/tm-sysv4.h
gdb/config/tm-vxworks.h
gdb/config/v850/v850.mt
gdb/config/vax/nm-vax.h
gdb/config/vax/tm-vax.h
gdb/config/vax/tm-vaxbsd.h
gdb/config/vax/vax.mt
gdb/config/vax/vaxbsd.mh
gdb/config/vax/vaxult.mh
gdb/config/vax/vaxult2.mh
gdb/config/vax/xm-vax.h
gdb/config/vax/xm-vaxbsd.h
gdb/config/vax/xm-vaxult.h
gdb/config/vax/xm-vaxult2.h
gdb/config/xm-aix4.h
gdb/config/xm-nbsd.h
gdb/config/xm-sysv4.h
gdb/config/xstormy16/xstormy16.mt
gdb/config/z8k/tm-z8k.h
gdb/config/z8k/z8k.mt
gdb/configure
gdb/configure.host
gdb/configure.in
gdb/configure.tgt
gdb/copying.awk
gdb/copying.c
gdb/core-aout.c
gdb/core-regset.c
gdb/core-sol2.c
gdb/corefile.c
gdb/corelow.c
gdb/cp-abi.c
gdb/cp-abi.h
gdb/cp-valprint.c
gdb/cpu32bug-rom.c
gdb/cris-tdep.c
gdb/cxux-nat.c
gdb/d10v-tdep.c
gdb/d30v-tdep.c
gdb/dbug-rom.c
gdb/dbxread.c
gdb/dcache.c
gdb/dcache.h
gdb/defs.h
gdb/delta68-nat.c
gdb/demangle.c
gdb/dink32-rom.c
gdb/doc/ChangeLog
gdb/doc/LRS
gdb/doc/Makefile.in
gdb/doc/a4rc.sed
gdb/doc/agentexpr.texi
gdb/doc/all-cfg.texi
gdb/doc/annotate.texi
gdb/doc/configure
gdb/doc/configure.in
gdb/doc/fdl.texi
gdb/doc/gdb.texinfo
gdb/doc/gdbint.texinfo
gdb/doc/gpl.texi
gdb/doc/lpsrc.sed
gdb/doc/psrc.sed
gdb/doc/refcard.tex
gdb/doc/stabs.texinfo
gdb/doublest.c
gdb/doublest.h
gdb/dpx2-nat.c
gdb/dsrec.c
gdb/dst.h
gdb/dstread.c
gdb/dve3900-rom.c
gdb/dwarf2cfi.c
gdb/dwarf2cfi.h
gdb/dwarf2read.c
gdb/dwarfread.c
gdb/elfread.c
gdb/environ.c
gdb/environ.h
gdb/eval.c
gdb/event-loop.c
gdb/event-loop.h
gdb/event-top.c
gdb/event-top.h
gdb/exc_request.defs
gdb/exec.c
gdb/expprint.c
gdb/expression.h
gdb/f-exp.y
gdb/f-lang.c
gdb/f-lang.h
gdb/f-typeprint.c
gdb/f-valprint.c
gdb/fbsd-proc.c
gdb/findvar.c
gdb/fork-child.c
gdb/fr30-tdep.c
gdb/frame.c
gdb/frame.h
gdb/frv-tdep.c
gdb/gcore.c
gdb/gdb-events.c
gdb/gdb-events.h
gdb/gdb-events.sh
gdb/gdb-stabs.h
gdb/gdb.1
gdb/gdb.gdb
gdb/gdb.h
gdb/gdb_assert.h
gdb/gdb_dirent.h
gdb/gdb_indent.sh
gdb/gdb_locale.h
gdb/gdb_obstack.h
gdb/gdb_proc_service.h
gdb/gdb_regex.h
gdb/gdb_stat.h
gdb/gdb_string.h
gdb/gdb_thread_db.h
gdb/gdb_vfork.h
gdb/gdb_wait.h
gdb/gdbarch.c
gdb/gdbarch.h
gdb/gdbarch.sh
gdb/gdbcmd.h
gdb/gdbcore.h
gdb/gdbinit.in
gdb/gdbserver/ChangeLog
gdb/gdbserver/Makefile.in
gdb/gdbserver/README
gdb/gdbserver/acconfig.h
gdb/gdbserver/acinclude.m4
gdb/gdbserver/aclocal.m4
gdb/gdbserver/config.in
gdb/gdbserver/configure
gdb/gdbserver/configure.in
gdb/gdbserver/configure.srv
gdb/gdbserver/gdbreplay.c
gdb/gdbserver/gdbserver.1
gdb/gdbserver/i387-fp.c
gdb/gdbserver/i387-fp.h
gdb/gdbserver/inferiors.c
gdb/gdbserver/linux-arm-low.c
gdb/gdbserver/linux-i386-low.c
gdb/gdbserver/linux-ia64-low.c
gdb/gdbserver/linux-low.c
gdb/gdbserver/linux-low.h
gdb/gdbserver/linux-m68k-low.c
gdb/gdbserver/linux-mips-low.c
gdb/gdbserver/linux-ppc-low.c
gdb/gdbserver/linux-s390-low.c
gdb/gdbserver/linux-sh-low.c
gdb/gdbserver/linux-x86-64-low.c
gdb/gdbserver/low-hppabsd.c
gdb/gdbserver/low-lynx.c
gdb/gdbserver/low-nbsd.c
gdb/gdbserver/low-sim.c
gdb/gdbserver/low-sparc.c
gdb/gdbserver/low-sun3.c
gdb/gdbserver/mem-break.c
gdb/gdbserver/mem-break.h
gdb/gdbserver/proc-service.c
gdb/gdbserver/regcache.c
gdb/gdbserver/regcache.h
gdb/gdbserver/remote-utils.c
gdb/gdbserver/server.c
gdb/gdbserver/server.h
gdb/gdbserver/target.c
gdb/gdbserver/target.h
gdb/gdbserver/terminal.h
gdb/gdbserver/thread-db.c
gdb/gdbserver/utils.c
gdb/gdbthread.h
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/gnu-nat.c
gdb/gnu-nat.h
gdb/gnu-v2-abi.c
gdb/gnu-v3-abi.c
gdb/go32-nat.c
gdb/gregset.h
gdb/h8300-tdep.c
gdb/h8500-tdep.c
gdb/hp300ux-nat.c
gdb/hpacc-abi.c
gdb/hppa-tdep.c
gdb/hppab-nat.c
gdb/hppah-nat.c
gdb/hppam3-nat.c
gdb/hpread.c
gdb/hpux-thread.c
gdb/i386-linux-nat.c
gdb/i386-linux-tdep.c
gdb/i386-linux-tdep.h
gdb/i386-nat.c
gdb/i386-sol2-tdep.c
gdb/i386-stub.c
gdb/i386-tdep.c
gdb/i386-tdep.h
gdb/i386aix-nat.c
gdb/i386b-nat.c
gdb/i386bsd-nat.c
gdb/i386bsd-tdep.c
gdb/i386fbsd-nat.c
gdb/i386gnu-nat.c
gdb/i386gnu-tdep.c
gdb/i386ly-tdep.c
gdb/i386m3-nat.c
gdb/i386mach-nat.c
gdb/i386nbsd-tdep.c
gdb/i386obsd-nat.c
gdb/i386v-nat.c
gdb/i386v4-nat.c
gdb/i387-tdep.c
gdb/i387-tdep.h
gdb/i960-tdep.c
gdb/ia64-aix-nat.c
gdb/ia64-aix-tdep.c
gdb/ia64-linux-nat.c
gdb/ia64-linux-tdep.c
gdb/ia64-tdep.c
gdb/inf-loop.c
gdb/inf-loop.h
gdb/infcmd.c
gdb/inferior.h
gdb/inflow.c
gdb/infptrace.c
gdb/infrun.c
gdb/inftarg.c
gdb/infttrace.c
gdb/irix4-nat.c
gdb/irix5-nat.c
gdb/jv-exp.y
gdb/jv-lang.c
gdb/jv-lang.h
gdb/jv-typeprint.c
gdb/jv-valprint.c
gdb/kod-cisco.c
gdb/kod.c
gdb/kod.h
gdb/language.c
gdb/language.h
gdb/lin-lwp.c
gdb/linespec.c
gdb/linespec.h
gdb/linux-proc.c
gdb/lynx-nat.c
gdb/m2-exp.y
gdb/m2-lang.c
gdb/m2-lang.h
gdb/m2-typeprint.c
gdb/m2-valprint.c
gdb/m3-nat.c
gdb/m32r-rom.c
gdb/m32r-stub.c
gdb/m32r-tdep.c
gdb/m68hc11-tdep.c
gdb/m68k-stub.c
gdb/m68k-tdep.c
gdb/m68klinux-nat.c
gdb/m68knbsd-nat.c
gdb/m68knbsd-tdep.c
gdb/m88k-nat.c
gdb/m88k-tdep.c
gdb/macrocmd.c
gdb/macroexp.c
gdb/macroexp.h
gdb/macroscope.c
gdb/macroscope.h
gdb/macrotab.c
gdb/macrotab.h
gdb/main.c
gdb/maint.c
gdb/mcore-rom.c
gdb/mcore-tdep.c
gdb/mdebugread.c
gdb/mem-break.c
gdb/memattr.c
gdb/memattr.h
gdb/mi/ChangeLog
gdb/mi/gdbmi.texinfo
gdb/mi/mi-cmd-break.c
gdb/mi/mi-cmd-disas.c
gdb/mi/mi-cmd-stack.c
gdb/mi/mi-cmd-var.c
gdb/mi/mi-cmds.c
gdb/mi/mi-cmds.h
gdb/mi/mi-console.c
gdb/mi/mi-console.h
gdb/mi/mi-getopt.c
gdb/mi/mi-getopt.h
gdb/mi/mi-main.c
gdb/mi/mi-out.c
gdb/mi/mi-out.h
gdb/mi/mi-parse.c
gdb/mi/mi-parse.h
gdb/minimon.h
gdb/minsyms.c
gdb/mips-irix-tdep.c
gdb/mips-linux-nat.c
gdb/mips-linux-tdep.c
gdb/mips-nat.c
gdb/mips-tdep.c
gdb/mipsm3-nat.c
gdb/mipsnbsd-nat.c
gdb/mipsnbsd-tdep.c
gdb/mipsnbsd-tdep.h
gdb/mipsread.c
gdb/mipsv4-nat.c
gdb/mn10200-tdep.c
gdb/mn10300-tdep.c
gdb/mon960-rom.c
gdb/monitor.c
gdb/monitor.h
gdb/msg.defs
gdb/msg_reply.defs
gdb/nbsd-tdep.c
gdb/nbsd-tdep.h
gdb/nindy-share/Makefile
gdb/nindy-share/Onindy.c
gdb/nindy-share/README
gdb/nindy-share/VERSION
gdb/nindy-share/b.out.h
gdb/nindy-share/block_io.h
gdb/nindy-share/coff.h
gdb/nindy-share/env.h
gdb/nindy-share/nindy.c
gdb/nindy-share/stop.h
gdb/nindy-share/ttyflush.c
gdb/nindy-tdep.c
gdb/nlm/Makefile.in
gdb/nlm/configure
gdb/nlm/configure.in
gdb/nlm/gdbserve.c
gdb/nlm/gdbserve.def
gdb/nlm/i386.c
gdb/nlm/i386.h
gdb/nlm/ppc.c
gdb/nlm/ppc.h
gdb/nlm/prelude.c
gdb/nlmread.c
gdb/notify.defs
gdb/ns32k-tdep.c
gdb/ns32k-tdep.h
gdb/ns32knbsd-nat.c
gdb/ns32knbsd-tdep.c
gdb/objfiles.c
gdb/objfiles.h
gdb/ocd.c
gdb/ocd.h
gdb/op50-rom.c
gdb/os9kread.c
gdb/osabi.c
gdb/osabi.h
gdb/osf-share/AT386/cma_thread_io.h
gdb/osf-share/HP800/cma_thread_io.h
gdb/osf-share/README
gdb/osf-share/RIOS/cma_thread_io.h
gdb/osf-share/cma_attr.h
gdb/osf-share/cma_deb_core.h
gdb/osf-share/cma_debug_client.h
gdb/osf-share/cma_errors.h
gdb/osf-share/cma_handle.h
gdb/osf-share/cma_init.h
gdb/osf-share/cma_list.h
gdb/osf-share/cma_mutex.h
gdb/osf-share/cma_sched.h
gdb/osf-share/cma_semaphore_defs.h
gdb/osf-share/cma_sequence.h
gdb/osf-share/cma_stack.h
gdb/osf-share/cma_stack_int.h
gdb/osf-share/cma_tcb_defs.h
gdb/osf-share/cma_util.h
gdb/osfsolib.c
gdb/p-exp.y
gdb/p-lang.c
gdb/p-lang.h
gdb/p-typeprint.c
gdb/p-valprint.c
gdb/pa64solib.c
gdb/pa64solib.h
gdb/parse.c
gdb/parser-defs.h
gdb/ppc-bdm.c
gdb/ppc-linux-nat.c
gdb/ppc-linux-tdep.c
gdb/ppc-sysv-tdep.c
gdb/ppc-tdep.h
gdb/ppcbug-rom.c
gdb/ppcnbsd-nat.c
gdb/ppcnbsd-tdep.c
gdb/ppcnbsd-tdep.h
gdb/printcmd.c
gdb/proc-api.c
gdb/proc-events.c
gdb/proc-flags.c
gdb/proc-service.c
gdb/proc-utils.h
gdb/proc-why.c
gdb/process_reply.defs
gdb/procfs.c
gdb/ptx4-nat.c
gdb/rdi-share/Makefile.am
gdb/rdi-share/Makefile.in
gdb/rdi-share/README.CYGNUS
gdb/rdi-share/aclocal.m4
gdb/rdi-share/adp.h
gdb/rdi-share/adperr.h
gdb/rdi-share/angel.h
gdb/rdi-share/angel_bytesex.c
gdb/rdi-share/angel_bytesex.h
gdb/rdi-share/angel_endian.h
gdb/rdi-share/ardi.c
gdb/rdi-share/ardi.h
gdb/rdi-share/armdbg.h
gdb/rdi-share/buffers.h
gdb/rdi-share/chandefs.h
gdb/rdi-share/channels.h
gdb/rdi-share/chanpriv.h
gdb/rdi-share/configure
gdb/rdi-share/configure.in
gdb/rdi-share/crc.c
gdb/rdi-share/crc.h
gdb/rdi-share/dbg_conf.h
gdb/rdi-share/dbg_cp.h
gdb/rdi-share/dbg_hif.h
gdb/rdi-share/dbg_rdi.h
gdb/rdi-share/devclnt.h
gdb/rdi-share/devices.h
gdb/rdi-share/devsw.c
gdb/rdi-share/devsw.h
gdb/rdi-share/drivers.c
gdb/rdi-share/drivers.h
gdb/rdi-share/etherdrv.c
gdb/rdi-share/ethernet.h
gdb/rdi-share/host.h
gdb/rdi-share/hostchan.c
gdb/rdi-share/hostchan.h
gdb/rdi-share/hsys.c
gdb/rdi-share/hsys.h
gdb/rdi-share/logging.c
gdb/rdi-share/logging.h
gdb/rdi-share/msgbuild.c
gdb/rdi-share/msgbuild.h
gdb/rdi-share/params.c
gdb/rdi-share/params.h
gdb/rdi-share/rx.c
gdb/rdi-share/rxtx.h
gdb/rdi-share/serdrv.c
gdb/rdi-share/serpardr.c
gdb/rdi-share/sys.h
gdb/rdi-share/tx.c
gdb/rdi-share/unixcomm.c
gdb/rdi-share/unixcomm.h
gdb/regcache.c
gdb/regcache.h
gdb/regformats/reg-arm.dat
gdb/regformats/reg-i386-linux.dat
gdb/regformats/reg-i386.dat
gdb/regformats/reg-ia64.dat
gdb/regformats/reg-m68k.dat
gdb/regformats/reg-mips.dat
gdb/regformats/reg-ppc.dat
gdb/regformats/reg-s390.dat
gdb/regformats/reg-s390x.dat
gdb/regformats/reg-sh.dat
gdb/regformats/reg-x86-64.dat
gdb/regformats/regdat.sh
gdb/regformats/regdef.h
gdb/remote-array.c
gdb/remote-bug.c
gdb/remote-e7000.c
gdb/remote-es.c
gdb/remote-est.c
gdb/remote-hms.c
gdb/remote-mips.c
gdb/remote-nindy.c
gdb/remote-nrom.c
gdb/remote-os9k.c
gdb/remote-rdi.c
gdb/remote-rdp.c
gdb/remote-sds.c
gdb/remote-sim.c
gdb/remote-st.c
gdb/remote-utils.c
gdb/remote-utils.h
gdb/remote-vx.c
gdb/remote-vx68.c
gdb/remote-vx960.c
gdb/remote-vxmips.c
gdb/remote-vxsparc.c
gdb/remote.c
gdb/remote.h
gdb/reply_mig_hack.awk
gdb/rom68k-rom.c
gdb/rs6000-nat.c
gdb/rs6000-tdep.c
gdb/s390-nat.c
gdb/s390-tdep.c
gdb/saber.suppress
gdb/scm-exp.c
gdb/scm-lang.c
gdb/scm-lang.h
gdb/scm-tags.h
gdb/scm-valprint.c
gdb/ser-e7kpc.c
gdb/ser-go32.c
gdb/ser-pipe.c
gdb/ser-tcp.c
gdb/ser-unix.c
gdb/ser-unix.h
gdb/serial.c
gdb/serial.h
gdb/sh-stub.c
gdb/sh-tdep.c
gdb/sh-tdep.h
gdb/sh3-rom.c
gdb/shnbsd-nat.c
gdb/shnbsd-tdep.c
gdb/shnbsd-tdep.h
gdb/signals/signals.c
gdb/sim-regno.h
gdb/sol-thread.c
gdb/solib-aix5.c
gdb/solib-irix.c
gdb/solib-legacy.c
gdb/solib-osf.c
gdb/solib-sunos.c
gdb/solib-svr4.c
gdb/solib-svr4.h
gdb/solib.c
gdb/solib.h
gdb/solist.h
gdb/somread.c
gdb/somsolib.c
gdb/somsolib.h
gdb/source.c
gdb/source.h
gdb/sparc-linux-nat.c
gdb/sparc-nat.c
gdb/sparc-stub.c
gdb/sparc-tdep.c
gdb/sparc64nbsd-nat.c
gdb/sparcl-stub.c
gdb/sparcl-tdep.c
gdb/sparclet-rom.c
gdb/sparclet-stub.c
gdb/sparcnbsd-nat.c
gdb/sparcnbsd-tdep.c
gdb/sparcnbsd-tdep.h
gdb/srec.h
gdb/stabsread.c
gdb/stabsread.h
gdb/stack.c
gdb/standalone.c
gdb/std-regs.c
gdb/stop-gdb.c
gdb/sun3-nat.c
gdb/symfile.c
gdb/symfile.h
gdb/symm-nat.c
gdb/symm-tdep.c
gdb/symmisc.c
gdb/symtab.c
gdb/symtab.h
gdb/target.c
gdb/target.h
gdb/terminal.h
gdb/testsuite/.gdbinit
gdb/testsuite/ChangeLog
gdb/testsuite/Makefile.in
gdb/testsuite/TODO
gdb/testsuite/aclocal.m4
gdb/testsuite/config/abug.exp
gdb/testsuite/config/arm-ice.exp
gdb/testsuite/config/cfdbug.exp
gdb/testsuite/config/cpu32bug.exp
gdb/testsuite/config/cygmon.exp
gdb/testsuite/config/d10v.exp
gdb/testsuite/config/dve.exp
gdb/testsuite/config/est.exp
gdb/testsuite/config/gdbserver.exp
gdb/testsuite/config/h8300.exp
gdb/testsuite/config/hmsirom.exp
gdb/testsuite/config/hppro.exp
gdb/testsuite/config/i386-bozo.exp
gdb/testsuite/config/i960.exp
gdb/testsuite/config/m32r-stub.exp
gdb/testsuite/config/m32r.exp
gdb/testsuite/config/m68k-emc.exp
gdb/testsuite/config/mips-idt.exp
gdb/testsuite/config/mips.exp
gdb/testsuite/config/mn10300-eval.exp
gdb/testsuite/config/monitor.exp
gdb/testsuite/config/netware.exp
gdb/testsuite/config/nind.exp
gdb/testsuite/config/proelf.exp
gdb/testsuite/config/rom68k.exp
gdb/testsuite/config/sh.exp
gdb/testsuite/config/sid.exp
gdb/testsuite/config/sim.exp
gdb/testsuite/config/slite.exp
gdb/testsuite/config/sparclet.exp
gdb/testsuite/config/udi.exp
gdb/testsuite/config/unix.exp
gdb/testsuite/config/unknown.exp
gdb/testsuite/config/vr4300.exp
gdb/testsuite/config/vr5000.exp
gdb/testsuite/config/vx.exp
gdb/testsuite/config/vxworks.exp
gdb/testsuite/config/vxworks29k.exp
gdb/testsuite/configure
gdb/testsuite/configure.in
gdb/testsuite/gdb.arch/Makefile.in
gdb/testsuite/gdb.arch/altivec-abi.c
gdb/testsuite/gdb.arch/altivec-abi.exp
gdb/testsuite/gdb.arch/altivec-regs.c
gdb/testsuite/gdb.arch/altivec-regs.exp
gdb/testsuite/gdb.arch/configure
gdb/testsuite/gdb.arch/configure.in
gdb/testsuite/gdb.asm/Makefile.in
gdb/testsuite/gdb.asm/arm.inc
gdb/testsuite/gdb.asm/asm-source.exp
gdb/testsuite/gdb.asm/asmsrc1.s
gdb/testsuite/gdb.asm/asmsrc2.s
gdb/testsuite/gdb.asm/common.inc
gdb/testsuite/gdb.asm/configure
gdb/testsuite/gdb.asm/configure.in
gdb/testsuite/gdb.asm/d10v.inc
gdb/testsuite/gdb.asm/i386.inc
gdb/testsuite/gdb.asm/m32r.inc
gdb/testsuite/gdb.asm/powerpc.inc
gdb/testsuite/gdb.asm/s390.inc
gdb/testsuite/gdb.asm/sparc.inc
gdb/testsuite/gdb.asm/sparc64.inc
gdb/testsuite/gdb.asm/v850.inc
gdb/testsuite/gdb.asm/x86_64.inc
gdb/testsuite/gdb.asm/xstormy16.inc
gdb/testsuite/gdb.base/Makefile.in
gdb/testsuite/gdb.base/a2-run.exp
gdb/testsuite/gdb.base/all-bin.exp
gdb/testsuite/gdb.base/all-types.c
gdb/testsuite/gdb.base/annota1.c
gdb/testsuite/gdb.base/annota1.exp
gdb/testsuite/gdb.base/arithmet.exp
gdb/testsuite/gdb.base/assign.exp
gdb/testsuite/gdb.base/async.c
gdb/testsuite/gdb.base/async.exp
gdb/testsuite/gdb.base/attach.c
gdb/testsuite/gdb.base/attach.exp
gdb/testsuite/gdb.base/attach2.c
gdb/testsuite/gdb.base/average.c
gdb/testsuite/gdb.base/bar.c
gdb/testsuite/gdb.base/baz.c
gdb/testsuite/gdb.base/bitfields.c
gdb/testsuite/gdb.base/bitfields.exp
gdb/testsuite/gdb.base/bitops.exp
gdb/testsuite/gdb.base/branches.c
gdb/testsuite/gdb.base/break.c
gdb/testsuite/gdb.base/break.exp
gdb/testsuite/gdb.base/call-ar-st.c
gdb/testsuite/gdb.base/call-ar-st.exp
gdb/testsuite/gdb.base/call-rt-st.c
gdb/testsuite/gdb.base/call-rt-st.exp
gdb/testsuite/gdb.base/call-strs.c
gdb/testsuite/gdb.base/call-strs.exp
gdb/testsuite/gdb.base/callfuncs.c
gdb/testsuite/gdb.base/callfuncs.exp
gdb/testsuite/gdb.base/code-expr.exp
gdb/testsuite/gdb.base/commands.exp
gdb/testsuite/gdb.base/completion.exp
gdb/testsuite/gdb.base/cond-expr.exp
gdb/testsuite/gdb.base/condbreak.exp
gdb/testsuite/gdb.base/configure
gdb/testsuite/gdb.base/configure.in
gdb/testsuite/gdb.base/consecutive.c
gdb/testsuite/gdb.base/consecutive.exp
gdb/testsuite/gdb.base/constvars.c
gdb/testsuite/gdb.base/constvars.exp
gdb/testsuite/gdb.base/corefile.exp
gdb/testsuite/gdb.base/coremaker.c
gdb/testsuite/gdb.base/coremaker2.c
gdb/testsuite/gdb.base/cvexpr.c
gdb/testsuite/gdb.base/cvexpr.exp
gdb/testsuite/gdb.base/d10v.ld
gdb/testsuite/gdb.base/d10vovly.c
gdb/testsuite/gdb.base/dbx.exp
gdb/testsuite/gdb.base/default.exp
gdb/testsuite/gdb.base/define.exp
gdb/testsuite/gdb.base/display.c
gdb/testsuite/gdb.base/display.exp
gdb/testsuite/gdb.base/dump.c
gdb/testsuite/gdb.base/dump.exp
gdb/testsuite/gdb.base/echo.exp
gdb/testsuite/gdb.base/ena-dis-br.exp
gdb/testsuite/gdb.base/ending-run.c
gdb/testsuite/gdb.base/ending-run.exp
gdb/testsuite/gdb.base/environ.exp
gdb/testsuite/gdb.base/eval-skip.exp
gdb/testsuite/gdb.base/execd-prog.c
gdb/testsuite/gdb.base/exprs.c
gdb/testsuite/gdb.base/exprs.exp
gdb/testsuite/gdb.base/finish.exp
gdb/testsuite/gdb.base/foll-exec.c
gdb/testsuite/gdb.base/foll-exec.exp
gdb/testsuite/gdb.base/foll-fork.c
gdb/testsuite/gdb.base/foll-fork.exp
gdb/testsuite/gdb.base/foll-vfork.c
gdb/testsuite/gdb.base/foll-vfork.exp
gdb/testsuite/gdb.base/foo.c
gdb/testsuite/gdb.base/funcargs.c
gdb/testsuite/gdb.base/funcargs.exp
gdb/testsuite/gdb.base/gcore.c
gdb/testsuite/gdb.base/gcore.exp
gdb/testsuite/gdb.base/gdbvars.exp
gdb/testsuite/gdb.base/grbx.c
gdb/testsuite/gdb.base/help.exp
gdb/testsuite/gdb.base/huge.c
gdb/testsuite/gdb.base/huge.exp
gdb/testsuite/gdb.base/info-proc.exp
gdb/testsuite/gdb.base/int-type.c
gdb/testsuite/gdb.base/interrupt.c
gdb/testsuite/gdb.base/interrupt.exp
gdb/testsuite/gdb.base/jump.c
gdb/testsuite/gdb.base/jump.exp
gdb/testsuite/gdb.base/langs.exp
gdb/testsuite/gdb.base/langs0.c
gdb/testsuite/gdb.base/langs1.c
gdb/testsuite/gdb.base/langs1.f
gdb/testsuite/gdb.base/langs2.c
gdb/testsuite/gdb.base/langs2.cxx
gdb/testsuite/gdb.base/list.exp
gdb/testsuite/gdb.base/list0.c
gdb/testsuite/gdb.base/list0.h
gdb/testsuite/gdb.base/list1.c
gdb/testsuite/gdb.base/logical.exp
gdb/testsuite/gdb.base/long_long.c
gdb/testsuite/gdb.base/long_long.exp
gdb/testsuite/gdb.base/m32r.ld
gdb/testsuite/gdb.base/m32rovly.c
gdb/testsuite/gdb.base/macscp.exp
gdb/testsuite/gdb.base/macscp1.c
gdb/testsuite/gdb.base/macscp2.h
gdb/testsuite/gdb.base/macscp3.h
gdb/testsuite/gdb.base/macscp4.h
gdb/testsuite/gdb.base/maint.exp
gdb/testsuite/gdb.base/mips_pro.c
gdb/testsuite/gdb.base/mips_pro.exp
gdb/testsuite/gdb.base/miscexprs.c
gdb/testsuite/gdb.base/miscexprs.exp
gdb/testsuite/gdb.base/nodebug.c
gdb/testsuite/gdb.base/nodebug.exp
gdb/testsuite/gdb.base/opaque.exp
gdb/testsuite/gdb.base/opaque0.c
gdb/testsuite/gdb.base/opaque1.c
gdb/testsuite/gdb.base/overlays.c
gdb/testsuite/gdb.base/overlays.exp
gdb/testsuite/gdb.base/ovlymgr.c
gdb/testsuite/gdb.base/ovlymgr.h
gdb/testsuite/gdb.base/page.exp
gdb/testsuite/gdb.base/pointers.c
gdb/testsuite/gdb.base/pointers.exp
gdb/testsuite/gdb.base/printcmds.c
gdb/testsuite/gdb.base/printcmds.exp
gdb/testsuite/gdb.base/ptype.c
gdb/testsuite/gdb.base/ptype.exp
gdb/testsuite/gdb.base/radix.exp
gdb/testsuite/gdb.base/readline.exp
gdb/testsuite/gdb.base/recurse.c
gdb/testsuite/gdb.base/recurse.exp
gdb/testsuite/gdb.base/regs.exp
gdb/testsuite/gdb.base/relational.exp
gdb/testsuite/gdb.base/relocate.c
gdb/testsuite/gdb.base/relocate.exp
gdb/testsuite/gdb.base/remote.c
gdb/testsuite/gdb.base/remote.exp
gdb/testsuite/gdb.base/reread.exp
gdb/testsuite/gdb.base/reread1.c
gdb/testsuite/gdb.base/reread2.c
gdb/testsuite/gdb.base/restore.c
gdb/testsuite/gdb.base/restore.exp
gdb/testsuite/gdb.base/return.c
gdb/testsuite/gdb.base/return.exp
gdb/testsuite/gdb.base/return2.c
gdb/testsuite/gdb.base/return2.exp
gdb/testsuite/gdb.base/run.c
gdb/testsuite/gdb.base/scope.exp
gdb/testsuite/gdb.base/scope0.c
gdb/testsuite/gdb.base/scope1.c
gdb/testsuite/gdb.base/sect-cmd.exp
gdb/testsuite/gdb.base/selftest.exp
gdb/testsuite/gdb.base/setshow.c
gdb/testsuite/gdb.base/setshow.exp
gdb/testsuite/gdb.base/setvar.c
gdb/testsuite/gdb.base/setvar.exp
gdb/testsuite/gdb.base/shlib-call.exp
gdb/testsuite/gdb.base/shmain.c
gdb/testsuite/gdb.base/shr1.c
gdb/testsuite/gdb.base/shr2.c
gdb/testsuite/gdb.base/sigall.c
gdb/testsuite/gdb.base/sigall.exp
gdb/testsuite/gdb.base/signals.c
gdb/testsuite/gdb.base/signals.exp
gdb/testsuite/gdb.base/sizeof.c
gdb/testsuite/gdb.base/sizeof.exp
gdb/testsuite/gdb.base/so-impl-ld.c
gdb/testsuite/gdb.base/so-impl-ld.exp
gdb/testsuite/gdb.base/so-indr-cl.c
gdb/testsuite/gdb.base/so-indr-cl.exp
gdb/testsuite/gdb.base/solib.c
gdb/testsuite/gdb.base/solib.exp
gdb/testsuite/gdb.base/solib1.c
gdb/testsuite/gdb.base/solib2.c
gdb/testsuite/gdb.base/ss.h
gdb/testsuite/gdb.base/step-line.c
gdb/testsuite/gdb.base/step-line.exp
gdb/testsuite/gdb.base/step-line.inp
gdb/testsuite/gdb.base/step-test.c
gdb/testsuite/gdb.base/step-test.exp
gdb/testsuite/gdb.base/structs.c
gdb/testsuite/gdb.base/structs.exp
gdb/testsuite/gdb.base/structs2.c
gdb/testsuite/gdb.base/structs2.exp
gdb/testsuite/gdb.base/sum.c
gdb/testsuite/gdb.base/term.exp
gdb/testsuite/gdb.base/twice.c
gdb/testsuite/gdb.base/twice.exp
gdb/testsuite/gdb.base/varargs.c
gdb/testsuite/gdb.base/varargs.exp
gdb/testsuite/gdb.base/vforked-prog.c
gdb/testsuite/gdb.base/volatile.exp
gdb/testsuite/gdb.base/watchpoint.c
gdb/testsuite/gdb.base/watchpoint.exp
gdb/testsuite/gdb.base/whatis-exp.exp
gdb/testsuite/gdb.base/whatis.c
gdb/testsuite/gdb.base/whatis.exp
gdb/testsuite/gdb.c++/Makefile.in
gdb/testsuite/gdb.c++/ambiguous.cc
gdb/testsuite/gdb.c++/ambiguous.exp
gdb/testsuite/gdb.c++/annota2.cc
gdb/testsuite/gdb.c++/annota2.exp
gdb/testsuite/gdb.c++/anon-union.cc
gdb/testsuite/gdb.c++/anon-union.exp
gdb/testsuite/gdb.c++/classes.exp
gdb/testsuite/gdb.c++/configure
gdb/testsuite/gdb.c++/configure.in
gdb/testsuite/gdb.c++/cplusfuncs.cc
gdb/testsuite/gdb.c++/cplusfuncs.exp
gdb/testsuite/gdb.c++/ctti.exp
gdb/testsuite/gdb.c++/cttiadd.cc
gdb/testsuite/gdb.c++/cttiadd1.cc
gdb/testsuite/gdb.c++/cttiadd2.cc
gdb/testsuite/gdb.c++/cttiadd3.cc
gdb/testsuite/gdb.c++/demangle.exp
gdb/testsuite/gdb.c++/derivation.cc
gdb/testsuite/gdb.c++/derivation.exp
gdb/testsuite/gdb.c++/hang.H
gdb/testsuite/gdb.c++/hang.exp
gdb/testsuite/gdb.c++/hang1.C
gdb/testsuite/gdb.c++/hang2.C
gdb/testsuite/gdb.c++/hang3.C
gdb/testsuite/gdb.c++/inherit.exp
gdb/testsuite/gdb.c++/local.cc
gdb/testsuite/gdb.c++/local.exp
gdb/testsuite/gdb.c++/m-data.cc
gdb/testsuite/gdb.c++/m-data.exp
gdb/testsuite/gdb.c++/m-static.cc
gdb/testsuite/gdb.c++/m-static.exp
gdb/testsuite/gdb.c++/member-ptr.cc
gdb/testsuite/gdb.c++/member-ptr.exp
gdb/testsuite/gdb.c++/method.cc
gdb/testsuite/gdb.c++/method.exp
gdb/testsuite/gdb.c++/misc.cc
gdb/testsuite/gdb.c++/misc.exp
gdb/testsuite/gdb.c++/namespace.cc
gdb/testsuite/gdb.c++/namespace.exp
gdb/testsuite/gdb.c++/overload.cc
gdb/testsuite/gdb.c++/overload.exp
gdb/testsuite/gdb.c++/ovldbreak.cc
gdb/testsuite/gdb.c++/ovldbreak.exp
gdb/testsuite/gdb.c++/ref-types.cc
gdb/testsuite/gdb.c++/ref-types.exp
gdb/testsuite/gdb.c++/templates.cc
gdb/testsuite/gdb.c++/templates.exp
gdb/testsuite/gdb.c++/try_catch.cc
gdb/testsuite/gdb.c++/try_catch.exp
gdb/testsuite/gdb.c++/userdef.cc
gdb/testsuite/gdb.c++/userdef.exp
gdb/testsuite/gdb.c++/virtfunc.cc
gdb/testsuite/gdb.c++/virtfunc.exp
gdb/testsuite/gdb.chill/ChangeLog
gdb/testsuite/gdb.chill/Makefile.in
gdb/testsuite/gdb.chill/builtins.ch
gdb/testsuite/gdb.chill/builtins.exp
gdb/testsuite/gdb.chill/callch.ch
gdb/testsuite/gdb.chill/callch.exp
gdb/testsuite/gdb.chill/chexp.exp
gdb/testsuite/gdb.chill/chillvars.ch
gdb/testsuite/gdb.chill/chillvars.exp
gdb/testsuite/gdb.chill/configure
gdb/testsuite/gdb.chill/configure.in
gdb/testsuite/gdb.chill/enum.ch
gdb/testsuite/gdb.chill/enum.exp
gdb/testsuite/gdb.chill/func1.ch
gdb/testsuite/gdb.chill/gch1041.ch
gdb/testsuite/gdb.chill/gch1041.exp
gdb/testsuite/gdb.chill/gch1272.ch
gdb/testsuite/gdb.chill/gch1272.exp
gdb/testsuite/gdb.chill/gch1280.ch
gdb/testsuite/gdb.chill/gch1280.exp
gdb/testsuite/gdb.chill/gch922.ch
gdb/testsuite/gdb.chill/gch922.exp
gdb/testsuite/gdb.chill/gch981.ch
gdb/testsuite/gdb.chill/gch981.exp
gdb/testsuite/gdb.chill/misc.ch
gdb/testsuite/gdb.chill/misc.exp
gdb/testsuite/gdb.chill/powerset.ch
gdb/testsuite/gdb.chill/powerset.exp
gdb/testsuite/gdb.chill/pr-4975-grt.ch
gdb/testsuite/gdb.chill/pr-4975.ch
gdb/testsuite/gdb.chill/pr-4975.exp
gdb/testsuite/gdb.chill/pr-5016.ch
gdb/testsuite/gdb.chill/pr-5016.exp
gdb/testsuite/gdb.chill/pr-5020.ch
gdb/testsuite/gdb.chill/pr-5020.exp
gdb/testsuite/gdb.chill/pr-5022.ch
gdb/testsuite/gdb.chill/pr-5022.exp
gdb/testsuite/gdb.chill/pr-5646-grt.ch
gdb/testsuite/gdb.chill/pr-5646.ch
gdb/testsuite/gdb.chill/pr-5646.exp
gdb/testsuite/gdb.chill/pr-5984.ch
gdb/testsuite/gdb.chill/pr-5984.exp
gdb/testsuite/gdb.chill/pr-6292.ch
gdb/testsuite/gdb.chill/pr-6292.exp
gdb/testsuite/gdb.chill/pr-6632-grt.ch
gdb/testsuite/gdb.chill/pr-6632.ch
gdb/testsuite/gdb.chill/pr-6632.exp
gdb/testsuite/gdb.chill/pr-8134.exp
gdb/testsuite/gdb.chill/pr-8136.ch
gdb/testsuite/gdb.chill/pr-8136.exp
gdb/testsuite/gdb.chill/pr-8405.ch
gdb/testsuite/gdb.chill/pr-8405.exp
gdb/testsuite/gdb.chill/pr-8742.ch
gdb/testsuite/gdb.chill/pr-8742.exp
gdb/testsuite/gdb.chill/pr-8894-grt.ch
gdb/testsuite/gdb.chill/pr-8894.ch
gdb/testsuite/gdb.chill/pr-8894.exp
gdb/testsuite/gdb.chill/pr-9095.ch
gdb/testsuite/gdb.chill/pr-9095.exp
gdb/testsuite/gdb.chill/pr-9946.ch
gdb/testsuite/gdb.chill/pr-9946.exp
gdb/testsuite/gdb.chill/result.ch
gdb/testsuite/gdb.chill/result.exp
gdb/testsuite/gdb.chill/string.ch
gdb/testsuite/gdb.chill/string.exp
gdb/testsuite/gdb.chill/tests1.ch
gdb/testsuite/gdb.chill/tests1.exp
gdb/testsuite/gdb.chill/tests2.ch
gdb/testsuite/gdb.chill/tests2.exp
gdb/testsuite/gdb.chill/tuples.ch
gdb/testsuite/gdb.chill/tuples.exp
gdb/testsuite/gdb.chill/xstruct-grt.ch
gdb/testsuite/gdb.chill/xstruct.ch
gdb/testsuite/gdb.chill/xstruct.exp
gdb/testsuite/gdb.disasm/Makefile.in
gdb/testsuite/gdb.disasm/am33.exp
gdb/testsuite/gdb.disasm/am33.s
gdb/testsuite/gdb.disasm/configure
gdb/testsuite/gdb.disasm/configure.in
gdb/testsuite/gdb.disasm/h8300s.exp
gdb/testsuite/gdb.disasm/h8300s.s
gdb/testsuite/gdb.disasm/hppa.exp
gdb/testsuite/gdb.disasm/hppa.s
gdb/testsuite/gdb.disasm/mn10200.exp
gdb/testsuite/gdb.disasm/mn10200.s
gdb/testsuite/gdb.disasm/mn10300.exp
gdb/testsuite/gdb.disasm/mn10300.s
gdb/testsuite/gdb.disasm/sh3.exp
gdb/testsuite/gdb.disasm/sh3.s
gdb/testsuite/gdb.fortran/exprs.exp
gdb/testsuite/gdb.fortran/types.exp
gdb/testsuite/gdb.gdb/xfullpath.exp
gdb/testsuite/gdb.hp/Makefile.in
gdb/testsuite/gdb.hp/configure
gdb/testsuite/gdb.hp/configure.in
gdb/testsuite/gdb.hp/gdb.aCC/Makefile.in
gdb/testsuite/gdb.hp/gdb.aCC/configure
gdb/testsuite/gdb.hp/gdb.aCC/configure.in
gdb/testsuite/gdb.hp/gdb.aCC/exception.cc
gdb/testsuite/gdb.hp/gdb.aCC/exception.exp
gdb/testsuite/gdb.hp/gdb.aCC/optimize.c
gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp
gdb/testsuite/gdb.hp/gdb.aCC/run.c
gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp
gdb/testsuite/gdb.hp/gdb.base-hp/Makefile.in
gdb/testsuite/gdb.hp/gdb.base-hp/callfwmall.c
gdb/testsuite/gdb.hp/gdb.base-hp/callfwmall.exp
gdb/testsuite/gdb.hp/gdb.base-hp/configure
gdb/testsuite/gdb.hp/gdb.base-hp/configure.in
gdb/testsuite/gdb.hp/gdb.base-hp/dollar.c
gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp
gdb/testsuite/gdb.hp/gdb.base-hp/genso-thresh.c
gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.c
gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp
gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.c
gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp
gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp
gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.s
gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp
gdb/testsuite/gdb.hp/gdb.base-hp/reg.s
gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.c
gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp
gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp
gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.mk
gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.sh
gdb/testsuite/gdb.hp/gdb.compat/Makefile.in
gdb/testsuite/gdb.hp/gdb.compat/average.c
gdb/testsuite/gdb.hp/gdb.compat/configure
gdb/testsuite/gdb.hp/gdb.compat/configure.in
gdb/testsuite/gdb.hp/gdb.compat/sum.c
gdb/testsuite/gdb.hp/gdb.compat/xdb.c
gdb/testsuite/gdb.hp/gdb.compat/xdb0.c
gdb/testsuite/gdb.hp/gdb.compat/xdb0.h
gdb/testsuite/gdb.hp/gdb.compat/xdb1.c
gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp
gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp
gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp
gdb/testsuite/gdb.hp/gdb.defects/Makefile.in
gdb/testsuite/gdb.hp/gdb.defects/bs14602.c
gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp
gdb/testsuite/gdb.hp/gdb.defects/bs15503.cc
gdb/testsuite/gdb.hp/gdb.defects/bs15503.exp
gdb/testsuite/gdb.hp/gdb.defects/configure
gdb/testsuite/gdb.hp/gdb.defects/configure.in
gdb/testsuite/gdb.hp/gdb.defects/solib-d.c
gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp
gdb/testsuite/gdb.hp/gdb.defects/solib-d1.c
gdb/testsuite/gdb.hp/gdb.defects/solib-d2.c
gdb/testsuite/gdb.hp/gdb.objdbg/Makefile.in
gdb/testsuite/gdb.hp/gdb.objdbg/configure
gdb/testsuite/gdb.hp/gdb.objdbg/configure.in
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x1.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x2.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.h
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x1.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x2.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x3.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x1.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x2.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x3.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x.h
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x1.cc
gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x2.cc
gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr
gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr.pa64
gdb/testsuite/gdb.hp/gdb.objdbg/tools/test-objdbg.cc
gdb/testsuite/gdb.hp/tools/odump
gdb/testsuite/gdb.java/Makefile.in
gdb/testsuite/gdb.java/configure
gdb/testsuite/gdb.java/configure.in
gdb/testsuite/gdb.java/jmisc.exp
gdb/testsuite/gdb.java/jmisc.java
gdb/testsuite/gdb.java/jmisc1.exp
gdb/testsuite/gdb.java/jmisc2.exp
gdb/testsuite/gdb.java/jv-exp.exp
gdb/testsuite/gdb.java/jv-print.exp
gdb/testsuite/gdb.mi/ChangeLog
gdb/testsuite/gdb.mi/Makefile.in
gdb/testsuite/gdb.mi/basics.c
gdb/testsuite/gdb.mi/configure
gdb/testsuite/gdb.mi/configure.in
gdb/testsuite/gdb.mi/gdb680.exp
gdb/testsuite/gdb.mi/mi-basics.exp
gdb/testsuite/gdb.mi/mi-break.exp
gdb/testsuite/gdb.mi/mi-console.c
gdb/testsuite/gdb.mi/mi-console.exp
gdb/testsuite/gdb.mi/mi-disassemble.exp
gdb/testsuite/gdb.mi/mi-eval.exp
gdb/testsuite/gdb.mi/mi-hack-cli.exp
gdb/testsuite/gdb.mi/mi-read-memory.c
gdb/testsuite/gdb.mi/mi-read-memory.exp
gdb/testsuite/gdb.mi/mi-regs.exp
gdb/testsuite/gdb.mi/mi-return.exp
gdb/testsuite/gdb.mi/mi-simplerun.exp
gdb/testsuite/gdb.mi/mi-stack.exp
gdb/testsuite/gdb.mi/mi-stepi.exp
gdb/testsuite/gdb.mi/mi-until.exp
gdb/testsuite/gdb.mi/mi-var-block.exp
gdb/testsuite/gdb.mi/mi-var-child.exp
gdb/testsuite/gdb.mi/mi-var-cmd.exp
gdb/testsuite/gdb.mi/mi-var-display.exp
gdb/testsuite/gdb.mi/mi-watch.exp
gdb/testsuite/gdb.mi/mi0-basics.exp
gdb/testsuite/gdb.mi/mi0-break.exp
gdb/testsuite/gdb.mi/mi0-console.exp
gdb/testsuite/gdb.mi/mi0-disassemble.exp
gdb/testsuite/gdb.mi/mi0-eval.exp
gdb/testsuite/gdb.mi/mi0-hack-cli.exp
gdb/testsuite/gdb.mi/mi0-read-memory.exp
gdb/testsuite/gdb.mi/mi0-regs.exp
gdb/testsuite/gdb.mi/mi0-return.exp
gdb/testsuite/gdb.mi/mi0-simplerun.exp
gdb/testsuite/gdb.mi/mi0-stack.exp
gdb/testsuite/gdb.mi/mi0-stepi.exp
gdb/testsuite/gdb.mi/mi0-until.exp
gdb/testsuite/gdb.mi/mi0-var-block.exp
gdb/testsuite/gdb.mi/mi0-var-child.exp
gdb/testsuite/gdb.mi/mi0-var-cmd.exp
gdb/testsuite/gdb.mi/mi0-var-display.exp
gdb/testsuite/gdb.mi/mi0-watch.exp
gdb/testsuite/gdb.mi/testcmds
gdb/testsuite/gdb.mi/until.c
gdb/testsuite/gdb.mi/var-cmd.c
gdb/testsuite/gdb.stabs/Makefile.in
gdb/testsuite/gdb.stabs/aout.sed
gdb/testsuite/gdb.stabs/configure
gdb/testsuite/gdb.stabs/configure.in
gdb/testsuite/gdb.stabs/ecoff.sed
gdb/testsuite/gdb.stabs/hppa.sed
gdb/testsuite/gdb.stabs/weird.def
gdb/testsuite/gdb.stabs/weird.exp
gdb/testsuite/gdb.stabs/xcoff.sed
gdb/testsuite/gdb.threads/Makefile.in
gdb/testsuite/gdb.threads/config.in
gdb/testsuite/gdb.threads/configure
gdb/testsuite/gdb.threads/configure.in
gdb/testsuite/gdb.threads/gcore-thread.exp
gdb/testsuite/gdb.threads/killed.c
gdb/testsuite/gdb.threads/killed.exp
gdb/testsuite/gdb.threads/linux-dp.c
gdb/testsuite/gdb.threads/linux-dp.exp
gdb/testsuite/gdb.threads/print-threads.c
gdb/testsuite/gdb.threads/print-threads.exp
gdb/testsuite/gdb.threads/pthreads.c
gdb/testsuite/gdb.threads/pthreads.exp
gdb/testsuite/gdb.threads/schedlock.c
gdb/testsuite/gdb.threads/schedlock.exp
gdb/testsuite/gdb.threads/step.c
gdb/testsuite/gdb.threads/step.exp
gdb/testsuite/gdb.threads/step2.exp
gdb/testsuite/gdb.trace/Makefile.in
gdb/testsuite/gdb.trace/actions.c
gdb/testsuite/gdb.trace/actions.exp
gdb/testsuite/gdb.trace/backtrace.exp
gdb/testsuite/gdb.trace/circ.c
gdb/testsuite/gdb.trace/circ.exp
gdb/testsuite/gdb.trace/collection.c
gdb/testsuite/gdb.trace/collection.exp
gdb/testsuite/gdb.trace/configure
gdb/testsuite/gdb.trace/configure.in
gdb/testsuite/gdb.trace/deltrace.exp
gdb/testsuite/gdb.trace/gdb_c_test.c
gdb/testsuite/gdb.trace/infotrace.exp
gdb/testsuite/gdb.trace/limits.c
gdb/testsuite/gdb.trace/limits.exp
gdb/testsuite/gdb.trace/packetlen.exp
gdb/testsuite/gdb.trace/passc-dyn.exp
gdb/testsuite/gdb.trace/passcount.exp
gdb/testsuite/gdb.trace/report.exp
gdb/testsuite/gdb.trace/save-trace.exp
gdb/testsuite/gdb.trace/tfind.exp
gdb/testsuite/gdb.trace/tracecmd.exp
gdb/testsuite/gdb.trace/while-dyn.exp
gdb/testsuite/gdb.trace/while-stepping.exp
gdb/testsuite/lib/compiler.c
gdb/testsuite/lib/compiler.cc
gdb/testsuite/lib/emc-support.exp
gdb/testsuite/lib/gdb.exp
gdb/testsuite/lib/insight-support.exp
gdb/testsuite/lib/java.exp
gdb/testsuite/lib/mi-support.exp
gdb/testsuite/lib/trace-support.exp
gdb/thread-db.c
gdb/thread.c
gdb/top.c
gdb/top.h
gdb/tracepoint.c
gdb/tracepoint.h
gdb/tui/ChangeLog
gdb/tui/tui-file.c
gdb/tui/tui-file.h
gdb/tui/tui-hooks.c
gdb/tui/tui-out.c
gdb/tui/tui.c
gdb/tui/tui.h
gdb/tui/tuiCommand.c
gdb/tui/tuiCommand.h
gdb/tui/tuiData.c
gdb/tui/tuiData.h
gdb/tui/tuiDataWin.c
gdb/tui/tuiDataWin.h
gdb/tui/tuiDisassem.c
gdb/tui/tuiDisassem.h
gdb/tui/tuiGeneralWin.c
gdb/tui/tuiGeneralWin.h
gdb/tui/tuiIO.c
gdb/tui/tuiIO.h
gdb/tui/tuiLayout.c
gdb/tui/tuiLayout.h
gdb/tui/tuiRegs.c
gdb/tui/tuiRegs.h
gdb/tui/tuiSource.c
gdb/tui/tuiSource.h
gdb/tui/tuiSourceWin.c
gdb/tui/tuiSourceWin.h
gdb/tui/tuiStack.c
gdb/tui/tuiStack.h
gdb/tui/tuiWin.c
gdb/tui/tuiWin.h
gdb/typeprint.c
gdb/typeprint.h
gdb/ui-file.c
gdb/ui-file.h
gdb/ui-out.c
gdb/ui-out.h
gdb/utils.c
gdb/uw-thread.c
gdb/v850-tdep.c
gdb/v850ice.c
gdb/valarith.c
gdb/valops.c
gdb/valprint.c
gdb/valprint.h
gdb/value.h
gdb/values.c
gdb/varobj.c
gdb/varobj.h
gdb/vax-tdep.c
gdb/vax-tdep.h
gdb/version.h
gdb/version.in
gdb/vx-share/README
gdb/vx-share/dbgRpcLib.h
gdb/vx-share/ptrace.h
gdb/vx-share/regPacket.h
gdb/vx-share/vxTypes.h
gdb/vx-share/vxWorks.h
gdb/vx-share/wait.h
gdb/vx-share/xdr_ld.c
gdb/vx-share/xdr_ld.h
gdb/vx-share/xdr_ptrace.c
gdb/vx-share/xdr_ptrace.h
gdb/vx-share/xdr_rdb.c
gdb/vx-share/xdr_rdb.h
gdb/w89k-rom.c
gdb/win32-nat.c
gdb/wince-stub.c
gdb/wince-stub.h
gdb/wince.c
gdb/wrapper.c
gdb/wrapper.h
gdb/x86-64-linux-nat.c
gdb/x86-64-linux-tdep.c
gdb/x86-64-tdep.c
gdb/x86-64-tdep.h
gdb/xcoffread.c
gdb/xcoffsolib.c
gdb/xcoffsolib.h
gdb/xmodem.c
gdb/xmodem.h
gdb/xstormy16-tdep.c
gdb/z8k-tdep.c
mmalloc/COPYING.LIB
mmalloc/ChangeLog
mmalloc/MAINTAINERS
mmalloc/Makefile.in
mmalloc/TODO
mmalloc/acinclude.m4
mmalloc/aclocal.m4
mmalloc/attach.c
mmalloc/configure
mmalloc/configure.in
mmalloc/detach.c
mmalloc/keys.c
mmalloc/mcalloc.c
mmalloc/mfree.c
mmalloc/mm.c
mmalloc/mmalloc.c
mmalloc/mmalloc.h
mmalloc/mmalloc.texi
mmalloc/mmap-sup.c
mmalloc/mmcheck.c
mmalloc/mmemalign.c
mmalloc/mmprivate.h
mmalloc/mmstats.c
mmalloc/mmtrace.awk
mmalloc/mmtrace.c
mmalloc/mrealloc.c
mmalloc/mvalloc.c
mmalloc/sbrk-sup.c
readline/CHANGELOG
readline/CHANGES
readline/COPYING
readline/ChangeLog.gdb
readline/INSTALL
readline/MANIFEST
readline/Makefile.in
readline/README
readline/USAGE
readline/acconfig.h
readline/aclocal.m4
readline/ansi_stdlib.h
readline/bind.c
readline/callback.c
readline/chardefs.h
readline/complete.c
readline/config.h.bot
readline/config.h.in
readline/configure
readline/configure.in
readline/cross-build/cygwin.cache
readline/display.c
readline/doc/ChangeLog.gdb
readline/doc/Makefile.in
readline/doc/hist.texinfo
readline/doc/hstech.texinfo
readline/doc/hsuser.texinfo
readline/doc/inc-hist.texinfo
readline/doc/manvers.texinfo
readline/doc/readline.3
readline/doc/rlman.texinfo
readline/doc/rltech.texinfo
readline/doc/rluser.texinfo
readline/doc/rluserman.texinfo
readline/doc/texi2dvi
readline/doc/texi2html
readline/emacs_keymap.c
readline/examples/ChangeLog.gdb
readline/examples/Inputrc
readline/examples/Makefile.in
readline/examples/excallback.c
readline/examples/fileman.c
readline/examples/histexamp.c
readline/examples/manexamp.c
readline/examples/rl.c
readline/examples/rlfe.c
readline/examples/rltest.c
readline/examples/rlversion.c
readline/funmap.c
readline/histexpand.c
readline/histfile.c
readline/histlib.h
readline/history.c
readline/history.h
readline/histsearch.c
readline/input.c
readline/isearch.c
readline/keymaps.c
readline/keymaps.h
readline/kill.c
readline/macro.c
readline/nls.c
readline/parens.c
readline/posixdir.h
readline/posixjmp.h
readline/posixstat.h
readline/readline.c
readline/readline.h
readline/rlconf.h
readline/rldefs.h
readline/rlprivate.h
readline/rlshell.h
readline/rlstdc.h
readline/rltty.c
readline/rltty.h
readline/rlwinsize.h
readline/savestring.c
readline/search.c
readline/shell.c
readline/shlib/Makefile.in
readline/signals.c
readline/support/config.guess
readline/support/config.sub
readline/support/install.sh
readline/support/mkdirs
readline/support/mkdist
readline/support/shlib-install
readline/support/shobj-conf
readline/tcap.h
readline/terminal.c
readline/tilde.c
readline/tilde.h
readline/undo.c
readline/util.c
readline/vi_keymap.c
readline/vi_mode.c
readline/xmalloc.c
readline/xmalloc.h
sim/ChangeLog
sim/MAINTAINERS
sim/Makefile.in
sim/README-HACKING
sim/arm/COPYING
sim/arm/ChangeLog
sim/arm/Makefile.in
sim/arm/README.Cygnus
sim/arm/acconfig.h
sim/arm/armcopro.c
sim/arm/armdefs.h
sim/arm/armemu.c
sim/arm/armemu.h
sim/arm/armfpe.h
sim/arm/arminit.c
sim/arm/armopts.h
sim/arm/armos.c
sim/arm/armos.h
sim/arm/armrdi.c
sim/arm/armsupp.c
sim/arm/armvirt.c
sim/arm/bag.c
sim/arm/bag.h
sim/arm/communicate.c
sim/arm/communicate.h
sim/arm/config.in
sim/arm/configure
sim/arm/configure.in
sim/arm/dbg_conf.h
sim/arm/dbg_cp.h
sim/arm/dbg_hif.h
sim/arm/dbg_rdi.h
sim/arm/gdbhost.c
sim/arm/gdbhost.h
sim/arm/kid.c
sim/arm/main.c
sim/arm/parent.c
sim/arm/tconfig.in
sim/arm/thumbemu.c
sim/arm/wrapper.c
sim/common/ChangeLog
sim/common/Make-common.in
sim/common/Makefile.in
sim/common/acconfig.h
sim/common/aclocal.m4
sim/common/callback.c
sim/common/cgen-accfp.c
sim/common/cgen-cpu.h
sim/common/cgen-defs.h
sim/common/cgen-engine.h
sim/common/cgen-fpu.c
sim/common/cgen-fpu.h
sim/common/cgen-mem.h
sim/common/cgen-ops.h
sim/common/cgen-par.c
sim/common/cgen-par.h
sim/common/cgen-run.c
sim/common/cgen-scache.c
sim/common/cgen-scache.h
sim/common/cgen-sim.h
sim/common/cgen-trace.c
sim/common/cgen-trace.h
sim/common/cgen-types.h
sim/common/cgen-utils.c
sim/common/cgen.sh
sim/common/config.in
sim/common/configure
sim/common/configure.in
sim/common/dv-core.c
sim/common/dv-glue.c
sim/common/dv-pal.c
sim/common/dv-sockser.c
sim/common/dv-sockser.h
sim/common/gdbinit.in
sim/common/genmloop.sh
sim/common/gennltvals.sh
sim/common/gentmap.c
sim/common/gentvals.sh
sim/common/hw-alloc.c
sim/common/hw-alloc.h
sim/common/hw-base.c
sim/common/hw-base.h
sim/common/hw-device.c
sim/common/hw-device.h
sim/common/hw-events.c
sim/common/hw-events.h
sim/common/hw-handles.c
sim/common/hw-handles.h
sim/common/hw-instances.c
sim/common/hw-instances.h
sim/common/hw-main.h
sim/common/hw-ports.c
sim/common/hw-ports.h
sim/common/hw-properties.c
sim/common/hw-properties.h
sim/common/hw-tree.c
sim/common/hw-tree.h
sim/common/nltvals.def
sim/common/nrun.c
sim/common/run-sim.h
sim/common/run.1
sim/common/run.c
sim/common/sim-abort.c
sim/common/sim-alu.h
sim/common/sim-arange.c
sim/common/sim-arange.h
sim/common/sim-assert.h
sim/common/sim-base.h
sim/common/sim-basics.h
sim/common/sim-bits.c
sim/common/sim-bits.h
sim/common/sim-break.c
sim/common/sim-break.h
sim/common/sim-config.c
sim/common/sim-config.h
sim/common/sim-core.c
sim/common/sim-core.h
sim/common/sim-cpu.c
sim/common/sim-cpu.h
sim/common/sim-endian.c
sim/common/sim-endian.h
sim/common/sim-engine.c
sim/common/sim-engine.h
sim/common/sim-events.c
sim/common/sim-events.h
sim/common/sim-fpu.c
sim/common/sim-fpu.h
sim/common/sim-hload.c
sim/common/sim-hrw.c
sim/common/sim-hw.c
sim/common/sim-hw.h
sim/common/sim-info.c
sim/common/sim-inline.c
sim/common/sim-inline.h
sim/common/sim-io.c
sim/common/sim-io.h
sim/common/sim-load.c
sim/common/sim-memopt.c
sim/common/sim-memopt.h
sim/common/sim-model.c
sim/common/sim-model.h
sim/common/sim-module.c
sim/common/sim-module.h
sim/common/sim-n-bits.h
sim/common/sim-n-core.h
sim/common/sim-n-endian.h
sim/common/sim-options.c
sim/common/sim-options.h
sim/common/sim-profile.c
sim/common/sim-profile.h
sim/common/sim-reason.c
sim/common/sim-reg.c
sim/common/sim-resume.c
sim/common/sim-run.c
sim/common/sim-signal.c
sim/common/sim-signal.h
sim/common/sim-stop.c
sim/common/sim-trace.c
sim/common/sim-trace.h
sim/common/sim-types.h
sim/common/sim-utils.c
sim/common/sim-utils.h
sim/common/sim-watch.c
sim/common/sim-watch.h
sim/common/syscall.c
sim/common/tconfig.in
sim/configure
sim/configure.in
sim/d10v/ChangeLog
sim/d10v/Makefile.in
sim/d10v/acconfig.h
sim/d10v/config.in
sim/d10v/configure
sim/d10v/configure.in
sim/d10v/d10v_sim.h
sim/d10v/endian.c
sim/d10v/gencode.c
sim/d10v/interp.c
sim/d10v/simops.c
sim/d30v/ChangeLog
sim/d30v/Makefile.in
sim/d30v/acconfig.h
sim/d30v/alu.h
sim/d30v/config.in
sim/d30v/configure
sim/d30v/configure.in
sim/d30v/cpu.c
sim/d30v/cpu.h
sim/d30v/d30v-insns
sim/d30v/dc-short
sim/d30v/engine.c
sim/d30v/ic-d30v
sim/d30v/sim-calls.c
sim/d30v/sim-main.h
sim/d30v/tconfig.in
sim/erc32/ChangeLog
sim/erc32/Makefile.in
sim/erc32/NEWS
sim/erc32/README.erc32
sim/erc32/README.gdb
sim/erc32/README.sis
sim/erc32/acconfig.h
sim/erc32/config.in
sim/erc32/configure
sim/erc32/configure.in
sim/erc32/end.c
sim/erc32/erc32.c
sim/erc32/exec.c
sim/erc32/float.c
sim/erc32/func.c
sim/erc32/help.c
sim/erc32/interf.c
sim/erc32/sis.c
sim/erc32/sis.h
sim/erc32/startsim
sim/fr30/ChangeLog
sim/fr30/Makefile.in
sim/fr30/README
sim/fr30/TODO
sim/fr30/arch.c
sim/fr30/arch.h
sim/fr30/config.in
sim/fr30/configure
sim/fr30/configure.in
sim/fr30/cpu.c
sim/fr30/cpu.h
sim/fr30/cpuall.h
sim/fr30/decode.c
sim/fr30/decode.h
sim/fr30/devices.c
sim/fr30/fr30-sim.h
sim/fr30/fr30.c
sim/fr30/mloop.in
sim/fr30/model.c
sim/fr30/sem-switch.c
sim/fr30/sem.c
sim/fr30/sim-if.c
sim/fr30/sim-main.h
sim/fr30/tconfig.in
sim/fr30/traps.c
sim/h8300/ChangeLog
sim/h8300/Makefile.in
sim/h8300/acconfig.h
sim/h8300/compile.c
sim/h8300/config.in
sim/h8300/configure
sim/h8300/configure.in
sim/h8300/inst.h
sim/h8300/tconfig.in
sim/h8300/writecode.c
sim/h8500/ChangeLog
sim/h8500/Makefile.in
sim/h8500/acconfig.h
sim/h8500/compile.c
sim/h8500/config.in
sim/h8500/configure
sim/h8500/configure.in
sim/h8500/inst.h
sim/h8500/tconfig.in
sim/i960/ChangeLog
sim/i960/Makefile.in
sim/i960/README
sim/i960/TODO
sim/i960/acconfig.h
sim/i960/arch.c
sim/i960/arch.h
sim/i960/config.in
sim/i960/configure
sim/i960/configure.in
sim/i960/cpu.c
sim/i960/cpu.h
sim/i960/cpuall.h
sim/i960/decode.c
sim/i960/decode.h
sim/i960/devices.c
sim/i960/i960-desc.c
sim/i960/i960-desc.h
sim/i960/i960-opc.h
sim/i960/i960-sim.h
sim/i960/i960.c
sim/i960/mloop.in
sim/i960/model.c
sim/i960/sem-switch.c
sim/i960/sem.c
sim/i960/sim-if.c
sim/i960/sim-main.h
sim/i960/tconfig.in
sim/i960/traps.c
sim/igen/ChangeLog
sim/igen/Makefile.in
sim/igen/acconfig.h
sim/igen/compare_igen_models
sim/igen/config.in
sim/igen/configure
sim/igen/configure.in
sim/igen/filter.c
sim/igen/filter.h
sim/igen/filter_host.c
sim/igen/filter_host.h
sim/igen/gen-engine.c
sim/igen/gen-engine.h
sim/igen/gen-icache.c
sim/igen/gen-icache.h
sim/igen/gen-idecode.c
sim/igen/gen-idecode.h
sim/igen/gen-itable.c
sim/igen/gen-itable.h
sim/igen/gen-model.c
sim/igen/gen-model.h
sim/igen/gen-semantics.c
sim/igen/gen-semantics.h
sim/igen/gen-support.c
sim/igen/gen-support.h
sim/igen/gen.c
sim/igen/gen.h
sim/igen/igen.c
sim/igen/igen.h
sim/igen/ld-cache.c
sim/igen/ld-cache.h
sim/igen/ld-decode.c
sim/igen/ld-decode.h
sim/igen/ld-insn.c
sim/igen/ld-insn.h
sim/igen/lf.c
sim/igen/lf.h
sim/igen/misc.c
sim/igen/misc.h
sim/igen/table.c
sim/igen/table.h
sim/m32r/ChangeLog
sim/m32r/Makefile.in
sim/m32r/README
sim/m32r/TODO
sim/m32r/acconfig.h
sim/m32r/arch.c
sim/m32r/arch.h
sim/m32r/config.in
sim/m32r/configure
sim/m32r/configure.in
sim/m32r/cpu.c
sim/m32r/cpu.h
sim/m32r/cpuall.h
sim/m32r/cpux.c
sim/m32r/cpux.h
sim/m32r/decode.c
sim/m32r/decode.h
sim/m32r/decodex.c
sim/m32r/decodex.h
sim/m32r/devices.c
sim/m32r/m32r-sim.h
sim/m32r/m32r.c
sim/m32r/m32rx.c
sim/m32r/mloop.in
sim/m32r/mloopx.in
sim/m32r/model.c
sim/m32r/modelx.c
sim/m32r/sem-switch.c
sim/m32r/sem.c
sim/m32r/semx-switch.c
sim/m32r/sim-if.c
sim/m32r/sim-main.h
sim/m32r/tconfig.in
sim/m32r/traps.c
sim/m68hc11/ChangeLog
sim/m68hc11/Makefile.in
sim/m68hc11/config.in
sim/m68hc11/configure
sim/m68hc11/configure.in
sim/m68hc11/dv-m68hc11.c
sim/m68hc11/dv-m68hc11eepr.c
sim/m68hc11/dv-m68hc11sio.c
sim/m68hc11/dv-m68hc11spi.c
sim/m68hc11/dv-m68hc11tim.c
sim/m68hc11/dv-nvram.c
sim/m68hc11/emulos.c
sim/m68hc11/gencode.c
sim/m68hc11/interp.c
sim/m68hc11/interrupts.c
sim/m68hc11/interrupts.h
sim/m68hc11/m68hc11_sim.c
sim/m68hc11/sim-main.h
sim/mcore/ChangeLog
sim/mcore/Makefile.in
sim/mcore/config.in
sim/mcore/configure
sim/mcore/configure.in
sim/mcore/interp.c
sim/mcore/sysdep.h
sim/mips/ChangeLog
sim/mips/Makefile.in
sim/mips/acconfig.h
sim/mips/config.in
sim/mips/configure
sim/mips/configure.in
sim/mips/cp1.c
sim/mips/cp1.h
sim/mips/dv-tx3904cpu.c
sim/mips/dv-tx3904irc.c
sim/mips/dv-tx3904sio.c
sim/mips/dv-tx3904tmr.c
sim/mips/interp.c
sim/mips/m16.dc
sim/mips/m16.igen
sim/mips/m16run.c
sim/mips/mdmx.c
sim/mips/mdmx.igen
sim/mips/mips.dc
sim/mips/mips.igen
sim/mips/mips3d.igen
sim/mips/sb1.igen
sim/mips/sim-main.c
sim/mips/sim-main.h
sim/mips/tconfig.in
sim/mips/tx.igen
sim/mips/vr.igen
sim/mn10200/ChangeLog
sim/mn10200/Makefile.in
sim/mn10200/acconfig.h
sim/mn10200/config.in
sim/mn10200/configure
sim/mn10200/configure.in
sim/mn10200/gencode.c
sim/mn10200/interp.c
sim/mn10200/mn10200_sim.h
sim/mn10200/simops.c
sim/mn10300/ChangeLog
sim/mn10300/Makefile.in
sim/mn10300/acconfig.h
sim/mn10300/am33.igen
sim/mn10300/config.in
sim/mn10300/configure
sim/mn10300/configure.in
sim/mn10300/dv-mn103cpu.c
sim/mn10300/dv-mn103int.c
sim/mn10300/dv-mn103iop.c
sim/mn10300/dv-mn103ser.c
sim/mn10300/dv-mn103tim.c
sim/mn10300/gencode.c
sim/mn10300/interp.c
sim/mn10300/mn10300.dc
sim/mn10300/mn10300.igen
sim/mn10300/mn10300_sim.h
sim/mn10300/op_utils.c
sim/mn10300/sim-main.c
sim/mn10300/sim-main.h
sim/mn10300/simops.c
sim/mn10300/tconfig.in
sim/ppc/.gdbinit
sim/ppc/BUGS
sim/ppc/COPYING
sim/ppc/COPYING.LIB
sim/ppc/ChangeLog
sim/ppc/ChangeLog.00
sim/ppc/INSTALL
sim/ppc/Makefile.in
sim/ppc/README
sim/ppc/RUN
sim/ppc/acconfig.h
sim/ppc/aclocal.m4
sim/ppc/basics.h
sim/ppc/bits.c
sim/ppc/bits.h
sim/ppc/cap.c
sim/ppc/cap.h
sim/ppc/config.in
sim/ppc/configure
sim/ppc/configure.in
sim/ppc/corefile-n.h
sim/ppc/corefile.c
sim/ppc/corefile.h
sim/ppc/cpu.c
sim/ppc/cpu.h
sim/ppc/dc-complex
sim/ppc/dc-simple
sim/ppc/dc-stupid
sim/ppc/dc-test.01
sim/ppc/dc-test.02
sim/ppc/debug.c
sim/ppc/debug.h
sim/ppc/device.c
sim/ppc/device.h
sim/ppc/device_table.c
sim/ppc/device_table.h
sim/ppc/dgen.c
sim/ppc/double.c
sim/ppc/dp-bit.c
sim/ppc/emul_bugapi.c
sim/ppc/emul_bugapi.h
sim/ppc/emul_chirp.c
sim/ppc/emul_chirp.h
sim/ppc/emul_generic.c
sim/ppc/emul_generic.h
sim/ppc/emul_netbsd.c
sim/ppc/emul_netbsd.h
sim/ppc/emul_unix.c
sim/ppc/emul_unix.h
sim/ppc/events.c
sim/ppc/events.h
sim/ppc/filter.c
sim/ppc/filter.h
sim/ppc/filter_filename.c
sim/ppc/filter_filename.h
sim/ppc/gen-icache.c
sim/ppc/gen-icache.h
sim/ppc/gen-idecode.c
sim/ppc/gen-idecode.h
sim/ppc/gen-itable.c
sim/ppc/gen-itable.h
sim/ppc/gen-model.c
sim/ppc/gen-model.h
sim/ppc/gen-semantics.c
sim/ppc/gen-semantics.h
sim/ppc/gen-support.c
sim/ppc/gen-support.h
sim/ppc/hw_com.c
sim/ppc/hw_core.c
sim/ppc/hw_cpu.c
sim/ppc/hw_cpu.h
sim/ppc/hw_disk.c
sim/ppc/hw_eeprom.c
sim/ppc/hw_glue.c
sim/ppc/hw_htab.c
sim/ppc/hw_ide.c
sim/ppc/hw_init.c
sim/ppc/hw_iobus.c
sim/ppc/hw_memory.c
sim/ppc/hw_nvram.c
sim/ppc/hw_opic.c
sim/ppc/hw_pal.c
sim/ppc/hw_phb.c
sim/ppc/hw_phb.h
sim/ppc/hw_register.c
sim/ppc/hw_trace.c
sim/ppc/hw_vm.c
sim/ppc/idecode_branch.h
sim/ppc/idecode_expression.h
sim/ppc/idecode_fields.h
sim/ppc/igen.c
sim/ppc/igen.h
sim/ppc/inline.c
sim/ppc/inline.h
sim/ppc/interrupts.c
sim/ppc/interrupts.h
sim/ppc/ld-cache.c
sim/ppc/ld-cache.h
sim/ppc/ld-decode.c
sim/ppc/ld-decode.h
sim/ppc/ld-insn.c
sim/ppc/ld-insn.h
sim/ppc/lf.c
sim/ppc/lf.h
sim/ppc/main.c
sim/ppc/misc.c
sim/ppc/misc.h
sim/ppc/mon.c
sim/ppc/mon.h
sim/ppc/options.c
sim/ppc/options.h
sim/ppc/os_emul.c
sim/ppc/os_emul.h
sim/ppc/pk_disklabel.c
sim/ppc/ppc-cache-rules
sim/ppc/ppc-instructions
sim/ppc/ppc-spr-table
sim/ppc/ppc.mt
sim/ppc/psim.c
sim/ppc/psim.h
sim/ppc/psim.texinfo
sim/ppc/registers.c
sim/ppc/registers.h
sim/ppc/sim-endian-n.h
sim/ppc/sim-endian.c
sim/ppc/sim-endian.h
sim/ppc/sim-main.h
sim/ppc/sim_callbacks.h
sim/ppc/sim_calls.c
sim/ppc/std-config.h
sim/ppc/table.c
sim/ppc/table.h
sim/ppc/tree.c
sim/ppc/tree.h
sim/ppc/vm.c
sim/ppc/vm.h
sim/ppc/vm_n.h
sim/ppc/words.h
sim/sh/ChangeLog
sim/sh/Makefile.in
sim/sh/acconfig.h
sim/sh/config.in
sim/sh/configure
sim/sh/configure.in
sim/sh/gencode.c
sim/sh/interp.c
sim/sh/syscall.h
sim/sh/tconfig.in
sim/testsuite/ChangeLog
sim/testsuite/Makefile.in
sim/testsuite/common/Make-common.in
sim/testsuite/common/Makefile.in
sim/testsuite/common/alu-n-tst.h
sim/testsuite/common/alu-tst.c
sim/testsuite/common/bits-gen.c
sim/testsuite/common/bits-tst.c
sim/testsuite/common/fpu-tst.c
sim/testsuite/config/default.exp
sim/testsuite/configure
sim/testsuite/configure.in
sim/testsuite/d10v-elf/ChangeLog
sim/testsuite/d10v-elf/Makefile.in
sim/testsuite/d10v-elf/configure
sim/testsuite/d10v-elf/configure.in
sim/testsuite/d10v-elf/exit47.s
sim/testsuite/d10v-elf/hello.s
sim/testsuite/d10v-elf/loop.s
sim/testsuite/d10v-elf/t-ae-ld-d.s
sim/testsuite/d10v-elf/t-ae-ld-i.s
sim/testsuite/d10v-elf/t-ae-ld-id.s
sim/testsuite/d10v-elf/t-ae-ld-im.s
sim/testsuite/d10v-elf/t-ae-ld-ip.s
sim/testsuite/d10v-elf/t-ae-ld2w-d.s
sim/testsuite/d10v-elf/t-ae-ld2w-i.s
sim/testsuite/d10v-elf/t-ae-ld2w-id.s
sim/testsuite/d10v-elf/t-ae-ld2w-im.s
sim/testsuite/d10v-elf/t-ae-ld2w-ip.s
sim/testsuite/d10v-elf/t-ae-st-d.s
sim/testsuite/d10v-elf/t-ae-st-i.s
sim/testsuite/d10v-elf/t-ae-st-id.s
sim/testsuite/d10v-elf/t-ae-st-im.s
sim/testsuite/d10v-elf/t-ae-st-ip.s
sim/testsuite/d10v-elf/t-ae-st-is.s
sim/testsuite/d10v-elf/t-ae-st2w-d.s
sim/testsuite/d10v-elf/t-ae-st2w-i.s
sim/testsuite/d10v-elf/t-ae-st2w-id.s
sim/testsuite/d10v-elf/t-ae-st2w-im.s
sim/testsuite/d10v-elf/t-ae-st2w-ip.s
sim/testsuite/d10v-elf/t-ae-st2w-is.s
sim/testsuite/d10v-elf/t-dbt.s
sim/testsuite/d10v-elf/t-ld-st.s
sim/testsuite/d10v-elf/t-mac.s
sim/testsuite/d10v-elf/t-macros.i
sim/testsuite/d10v-elf/t-mod-ld-pre.s
sim/testsuite/d10v-elf/t-msbu.s
sim/testsuite/d10v-elf/t-mulxu.s
sim/testsuite/d10v-elf/t-mvtac.s
sim/testsuite/d10v-elf/t-mvtc.s
sim/testsuite/d10v-elf/t-rac.s
sim/testsuite/d10v-elf/t-rachi.s
sim/testsuite/d10v-elf/t-rdt.s
sim/testsuite/d10v-elf/t-rep.s
sim/testsuite/d10v-elf/t-rie-xx.s
sim/testsuite/d10v-elf/t-rte.s
sim/testsuite/d10v-elf/t-sac.s
sim/testsuite/d10v-elf/t-sachi.s
sim/testsuite/d10v-elf/t-sadd.s
sim/testsuite/d10v-elf/t-slae.s
sim/testsuite/d10v-elf/t-sp.s
sim/testsuite/d10v-elf/t-sub.s
sim/testsuite/d10v-elf/t-sub2w.s
sim/testsuite/d10v-elf/t-subi.s
sim/testsuite/d10v-elf/t-trap.s
sim/testsuite/d30v-elf/ChangeLog
sim/testsuite/d30v-elf/Makefile.in
sim/testsuite/d30v-elf/br-bra.S
sim/testsuite/d30v-elf/br-bratnz.S
sim/testsuite/d30v-elf/br-bratzr.S
sim/testsuite/d30v-elf/br-bsr.S
sim/testsuite/d30v-elf/br-dbra.S
sim/testsuite/d30v-elf/br-djmp.S
sim/testsuite/d30v-elf/br-djsr.S
sim/testsuite/d30v-elf/configure
sim/testsuite/d30v-elf/configure.in
sim/testsuite/d30v-elf/do-2wordops.S
sim/testsuite/d30v-elf/do-flags.S
sim/testsuite/d30v-elf/do-shifts.S
sim/testsuite/d30v-elf/em-e0.S
sim/testsuite/d30v-elf/em-e47.S
sim/testsuite/d30v-elf/em-pchr.S
sim/testsuite/d30v-elf/em-pstr.S
sim/testsuite/d30v-elf/exit47.s
sim/testsuite/d30v-elf/hello.s
sim/testsuite/d30v-elf/loop.s
sim/testsuite/d30v-elf/ls-ld2h.S
sim/testsuite/d30v-elf/ls-ld2w.S
sim/testsuite/d30v-elf/ls-ld4bh.S
sim/testsuite/d30v-elf/ls-ld4bhu.S
sim/testsuite/d30v-elf/ls-ldb.S
sim/testsuite/d30v-elf/ls-ldbu.S
sim/testsuite/d30v-elf/ls-ldh.S
sim/testsuite/d30v-elf/ls-ldhh.S
sim/testsuite/d30v-elf/ls-ldhu.S
sim/testsuite/d30v-elf/ls-ldw.S
sim/testsuite/d30v-elf/ls-modaddr.S
sim/testsuite/d30v-elf/ls-moddec.S
sim/testsuite/d30v-elf/ls-modinc.S
sim/testsuite/d30v-elf/ls-st2h.S
sim/testsuite/d30v-elf/ls-st2w.S
sim/testsuite/d30v-elf/ls-st4hb.S
sim/testsuite/d30v-elf/ls-stb.S
sim/testsuite/d30v-elf/ls-sth.S
sim/testsuite/d30v-elf/ls-sthh.S
sim/testsuite/d30v-elf/ls-stw.S
sim/testsuite/d30v-elf/os-dbt.S
sim/testsuite/d30v-elf/tick.s
sim/testsuite/d30v-elf/trap.S
sim/testsuite/fr30-elf/ChangeLog
sim/testsuite/fr30-elf/Makefile.in
sim/testsuite/fr30-elf/configure
sim/testsuite/fr30-elf/configure.in
sim/testsuite/fr30-elf/exit47.s
sim/testsuite/fr30-elf/hello.s
sim/testsuite/fr30-elf/loop.s
sim/testsuite/lib/sim-defs.exp
sim/testsuite/m32r-elf/ChangeLog
sim/testsuite/m32r-elf/Makefile.in
sim/testsuite/m32r-elf/configure
sim/testsuite/m32r-elf/configure.in
sim/testsuite/m32r-elf/exit47.s
sim/testsuite/m32r-elf/hello.s
sim/testsuite/m32r-elf/loop.s
sim/testsuite/mips64el-elf/ChangeLog
sim/testsuite/mips64el-elf/Makefile.in
sim/testsuite/mips64el-elf/configure
sim/testsuite/mips64el-elf/configure.in
sim/testsuite/sim/fr30/add.cgs
sim/testsuite/sim/fr30/add.ms
sim/testsuite/sim/fr30/add2.cgs
sim/testsuite/sim/fr30/addc.cgs
sim/testsuite/sim/fr30/addn.cgs
sim/testsuite/sim/fr30/addn2.cgs
sim/testsuite/sim/fr30/addsp.cgs
sim/testsuite/sim/fr30/allinsn.exp
sim/testsuite/sim/fr30/and.cgs
sim/testsuite/sim/fr30/andb.cgs
sim/testsuite/sim/fr30/andccr.cgs
sim/testsuite/sim/fr30/andh.cgs
sim/testsuite/sim/fr30/asr.cgs
sim/testsuite/sim/fr30/asr2.cgs
sim/testsuite/sim/fr30/bandh.cgs
sim/testsuite/sim/fr30/bandl.cgs
sim/testsuite/sim/fr30/bc.cgs
sim/testsuite/sim/fr30/beorh.cgs
sim/testsuite/sim/fr30/beorl.cgs
sim/testsuite/sim/fr30/beq.cgs
sim/testsuite/sim/fr30/bge.cgs
sim/testsuite/sim/fr30/bgt.cgs
sim/testsuite/sim/fr30/bhi.cgs
sim/testsuite/sim/fr30/ble.cgs
sim/testsuite/sim/fr30/bls.cgs
sim/testsuite/sim/fr30/blt.cgs
sim/testsuite/sim/fr30/bn.cgs
sim/testsuite/sim/fr30/bnc.cgs
sim/testsuite/sim/fr30/bne.cgs
sim/testsuite/sim/fr30/bno.cgs
sim/testsuite/sim/fr30/bnv.cgs
sim/testsuite/sim/fr30/borh.cgs
sim/testsuite/sim/fr30/borl.cgs
sim/testsuite/sim/fr30/bp.cgs
sim/testsuite/sim/fr30/bra.cgs
sim/testsuite/sim/fr30/btsth.cgs
sim/testsuite/sim/fr30/btstl.cgs
sim/testsuite/sim/fr30/bv.cgs
sim/testsuite/sim/fr30/call.cgs
sim/testsuite/sim/fr30/cmp.cgs
sim/testsuite/sim/fr30/cmp2.cgs
sim/testsuite/sim/fr30/copld.cgs
sim/testsuite/sim/fr30/copop.cgs
sim/testsuite/sim/fr30/copst.cgs
sim/testsuite/sim/fr30/copsv.cgs
sim/testsuite/sim/fr30/div.ms
sim/testsuite/sim/fr30/div0s.cgs
sim/testsuite/sim/fr30/div0u.cgs
sim/testsuite/sim/fr30/div1.cgs
sim/testsuite/sim/fr30/div2.cgs
sim/testsuite/sim/fr30/div3.cgs
sim/testsuite/sim/fr30/div4s.cgs
sim/testsuite/sim/fr30/dmov.cgs
sim/testsuite/sim/fr30/dmovb.cgs
sim/testsuite/sim/fr30/dmovh.cgs
sim/testsuite/sim/fr30/enter.cgs
sim/testsuite/sim/fr30/eor.cgs
sim/testsuite/sim/fr30/eorb.cgs
sim/testsuite/sim/fr30/eorh.cgs
sim/testsuite/sim/fr30/extsb.cgs
sim/testsuite/sim/fr30/extsh.cgs
sim/testsuite/sim/fr30/extub.cgs
sim/testsuite/sim/fr30/extuh.cgs
sim/testsuite/sim/fr30/hello.ms
sim/testsuite/sim/fr30/int.cgs
sim/testsuite/sim/fr30/inte.cgs
sim/testsuite/sim/fr30/jmp.cgs
sim/testsuite/sim/fr30/ld.cgs
sim/testsuite/sim/fr30/ldi20.cgs
sim/testsuite/sim/fr30/ldi32.cgs
sim/testsuite/sim/fr30/ldi8.cgs
sim/testsuite/sim/fr30/ldm0.cgs
sim/testsuite/sim/fr30/ldm1.cgs
sim/testsuite/sim/fr30/ldres.cgs
sim/testsuite/sim/fr30/ldub.cgs
sim/testsuite/sim/fr30/lduh.cgs
sim/testsuite/sim/fr30/leave.cgs
sim/testsuite/sim/fr30/lsl.cgs
sim/testsuite/sim/fr30/lsl2.cgs
sim/testsuite/sim/fr30/lsr.cgs
sim/testsuite/sim/fr30/lsr2.cgs
sim/testsuite/sim/fr30/misc.exp
sim/testsuite/sim/fr30/mov.cgs
sim/testsuite/sim/fr30/mul.cgs
sim/testsuite/sim/fr30/mulh.cgs
sim/testsuite/sim/fr30/mulu.cgs
sim/testsuite/sim/fr30/muluh.cgs
sim/testsuite/sim/fr30/nop.cgs
sim/testsuite/sim/fr30/or.cgs
sim/testsuite/sim/fr30/orb.cgs
sim/testsuite/sim/fr30/orccr.cgs
sim/testsuite/sim/fr30/orh.cgs
sim/testsuite/sim/fr30/ret.cgs
sim/testsuite/sim/fr30/reti.cgs
sim/testsuite/sim/fr30/st.cgs
sim/testsuite/sim/fr30/stb.cgs
sim/testsuite/sim/fr30/sth.cgs
sim/testsuite/sim/fr30/stilm.cgs
sim/testsuite/sim/fr30/stm0.cgs
sim/testsuite/sim/fr30/stm1.cgs
sim/testsuite/sim/fr30/stres.cgs
sim/testsuite/sim/fr30/sub.cgs
sim/testsuite/sim/fr30/subc.cgs
sim/testsuite/sim/fr30/subn.cgs
sim/testsuite/sim/fr30/testutils.inc
sim/testsuite/sim/fr30/xchb.cgs
sim/testsuite/sim/m32r/add.cgs
sim/testsuite/sim/m32r/add3.cgs
sim/testsuite/sim/m32r/addi.cgs
sim/testsuite/sim/m32r/addv.cgs
sim/testsuite/sim/m32r/addv3.cgs
sim/testsuite/sim/m32r/addx.cgs
sim/testsuite/sim/m32r/allinsn.exp
sim/testsuite/sim/m32r/and.cgs
sim/testsuite/sim/m32r/and3.cgs
sim/testsuite/sim/m32r/bc24.cgs
sim/testsuite/sim/m32r/bc8.cgs
sim/testsuite/sim/m32r/beq.cgs
sim/testsuite/sim/m32r/beqz.cgs
sim/testsuite/sim/m32r/bgez.cgs
sim/testsuite/sim/m32r/bgtz.cgs
sim/testsuite/sim/m32r/bl24.cgs
sim/testsuite/sim/m32r/bl8.cgs
sim/testsuite/sim/m32r/blez.cgs
sim/testsuite/sim/m32r/bltz.cgs
sim/testsuite/sim/m32r/bnc24.cgs
sim/testsuite/sim/m32r/bnc8.cgs
sim/testsuite/sim/m32r/bne.cgs
sim/testsuite/sim/m32r/bnez.cgs
sim/testsuite/sim/m32r/bra24.cgs
sim/testsuite/sim/m32r/bra8.cgs
sim/testsuite/sim/m32r/cmp.cgs
sim/testsuite/sim/m32r/cmpi.cgs
sim/testsuite/sim/m32r/cmpu.cgs
sim/testsuite/sim/m32r/cmpui.cgs
sim/testsuite/sim/m32r/div.cgs
sim/testsuite/sim/m32r/divu.cgs
sim/testsuite/sim/m32r/hello.ms
sim/testsuite/sim/m32r/hw-trap.ms
sim/testsuite/sim/m32r/jl.cgs
sim/testsuite/sim/m32r/jmp.cgs
sim/testsuite/sim/m32r/ld-d.cgs
sim/testsuite/sim/m32r/ld-plus.cgs
sim/testsuite/sim/m32r/ld.cgs
sim/testsuite/sim/m32r/ld24.cgs
sim/testsuite/sim/m32r/ldb-d.cgs
sim/testsuite/sim/m32r/ldb.cgs
sim/testsuite/sim/m32r/ldh-d.cgs
sim/testsuite/sim/m32r/ldh.cgs
sim/testsuite/sim/m32r/ldi16.cgs
sim/testsuite/sim/m32r/ldi8.cgs
sim/testsuite/sim/m32r/ldub-d.cgs
sim/testsuite/sim/m32r/ldub.cgs
sim/testsuite/sim/m32r/lduh-d.cgs
sim/testsuite/sim/m32r/lduh.cgs
sim/testsuite/sim/m32r/lock.cgs
sim/testsuite/sim/m32r/machi.cgs
sim/testsuite/sim/m32r/maclo.cgs
sim/testsuite/sim/m32r/macwhi.cgs
sim/testsuite/sim/m32r/macwlo.cgs
sim/testsuite/sim/m32r/misc.exp
sim/testsuite/sim/m32r/mul.cgs
sim/testsuite/sim/m32r/mulhi.cgs
sim/testsuite/sim/m32r/mullo.cgs
sim/testsuite/sim/m32r/mulwhi.cgs
sim/testsuite/sim/m32r/mulwlo.cgs
sim/testsuite/sim/m32r/mv.cgs
sim/testsuite/sim/m32r/mvfachi.cgs
sim/testsuite/sim/m32r/mvfaclo.cgs
sim/testsuite/sim/m32r/mvfacmi.cgs
sim/testsuite/sim/m32r/mvfc.cgs
sim/testsuite/sim/m32r/mvtachi.cgs
sim/testsuite/sim/m32r/mvtaclo.cgs
sim/testsuite/sim/m32r/mvtc.cgs
sim/testsuite/sim/m32r/neg.cgs
sim/testsuite/sim/m32r/nop.cgs
sim/testsuite/sim/m32r/not.cgs
sim/testsuite/sim/m32r/or.cgs
sim/testsuite/sim/m32r/or3.cgs
sim/testsuite/sim/m32r/rac.cgs
sim/testsuite/sim/m32r/rach.cgs
sim/testsuite/sim/m32r/rem.cgs
sim/testsuite/sim/m32r/remu.cgs
sim/testsuite/sim/m32r/rte.cgs
sim/testsuite/sim/m32r/seth.cgs
sim/testsuite/sim/m32r/sll.cgs
sim/testsuite/sim/m32r/sll3.cgs
sim/testsuite/sim/m32r/slli.cgs
sim/testsuite/sim/m32r/sra.cgs
sim/testsuite/sim/m32r/sra3.cgs
sim/testsuite/sim/m32r/srai.cgs
sim/testsuite/sim/m32r/srl.cgs
sim/testsuite/sim/m32r/srl3.cgs
sim/testsuite/sim/m32r/srli.cgs
sim/testsuite/sim/m32r/st-d.cgs
sim/testsuite/sim/m32r/st-minus.cgs
sim/testsuite/sim/m32r/st-plus.cgs
sim/testsuite/sim/m32r/st.cgs
sim/testsuite/sim/m32r/stb-d.cgs
sim/testsuite/sim/m32r/stb.cgs
sim/testsuite/sim/m32r/sth-d.cgs
sim/testsuite/sim/m32r/sth.cgs
sim/testsuite/sim/m32r/sub.cgs
sim/testsuite/sim/m32r/subv.cgs
sim/testsuite/sim/m32r/subx.cgs
sim/testsuite/sim/m32r/testutils.inc
sim/testsuite/sim/m32r/trap.cgs
sim/testsuite/sim/m32r/unlock.cgs
sim/testsuite/sim/m32r/uread16.ms
sim/testsuite/sim/m32r/uread32.ms
sim/testsuite/sim/m32r/uwrite16.ms
sim/testsuite/sim/m32r/uwrite32.ms
sim/testsuite/sim/m32r/xor.cgs
sim/testsuite/sim/m32r/xor3.cgs
sim/v850/ChangeLog
sim/v850/Makefile.in
sim/v850/acconfig.h
sim/v850/config.in
sim/v850/configure
sim/v850/configure.in
sim/v850/interp.c
sim/v850/sim-main.h
sim/v850/simops.c
sim/v850/simops.h
sim/v850/v850-dc
sim/v850/v850.igen
sim/v850/v850_sim.h
sim/z8k/ChangeLog
sim/z8k/Makefile.in
sim/z8k/acconfig.h
sim/z8k/comped1.c
sim/z8k/comped2.c
sim/z8k/comped3.c
sim/z8k/compedb3.c
sim/z8k/config.in
sim/z8k/configure
sim/z8k/configure.in
sim/z8k/iface.c
sim/z8k/inlines.h
sim/z8k/mem.c
sim/z8k/mem.h
sim/z8k/quick.c
sim/z8k/sim.h
sim/z8k/support.c
sim/z8k/syscall.h
sim/z8k/tconfig.in
sim/z8k/tm.h
sim/z8k/writecode.c
texinfo/texinfo.tex
Diffstat (limited to 'gdb/testsuite/gdb.trace')
24 files changed, 0 insertions, 9352 deletions
diff --git a/gdb/testsuite/gdb.trace/Makefile.in b/gdb/testsuite/gdb.trace/Makefile.in deleted file mode 100644 index 601c9e1..0000000 --- a/gdb/testsuite/gdb.trace/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -#### host, target, and site specific Makefile frags come in here. - -VPATH = @srcdir@ -srcdir = @srcdir@ - -.PHONY: all clean mostlyclean distclean realclean - -all: - @echo "Nothing to be done for all..." - -clean mostlyclean: - -rm -f actions circ collection limits - -rm -f *.o *.diff *~ *.bad core sh3 hppa mn10200 mn10300 - -distclean maintainer-clean realclean: clean - -rm -f Makefile config.status config.log - -Makefile: $(srcdir)/Makefile.in $(srcdir)/configure.in - $(SHELL) ./config.status --recheck - - diff --git a/gdb/testsuite/gdb.trace/actions.c b/gdb/testsuite/gdb.trace/actions.c deleted file mode 100644 index ae3c1c3..0000000 --- a/gdb/testsuite/gdb.trace/actions.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Test program for trace action commands - */ - -static char gdb_char_test; -static short gdb_short_test; -static long gdb_long_test; -static char gdb_arr_test[25]; -static struct GDB_STRUCT_TEST -{ - char c; - short s; - long l; - int bfield : 11; /* collect bitfield */ - char arr[25]; - struct GDB_STRUCT_TEST *next; -} gdb_struct1_test, gdb_struct2_test, *gdb_structp_test, **gdb_structpp_test; - -static union GDB_UNION_TEST -{ - char c; - short s; - long l; - int bfield : 11; /* collect bitfield */ - char arr[4]; - union GDB_UNION_TEST *next; -} gdb_union1_test; - -void gdb_recursion_test (int, int, int, int, int, int, int); - -void gdb_recursion_test (int depth, - int q1, - int q2, - int q3, - int q4, - int q5, - int q6) -{ /* gdb_recursion_test line 0 */ - int q = q1; /* gdbtestline 1 */ - - q1 = q2; /* gdbtestline 2 */ - q2 = q3; /* gdbtestline 3 */ - q3 = q4; /* gdbtestline 4 */ - q4 = q5; /* gdbtestline 5 */ - q5 = q6; /* gdbtestline 6 */ - q6 = q; /* gdbtestline 7 */ - if (depth--) /* gdbtestline 8 */ - gdb_recursion_test (depth, q1, q2, q3, q4, q5, q6); /* gdbtestline 9 */ -} - - -unsigned long gdb_c_test( unsigned long *parm ) - -{ - char *p = "gdb_c_test"; - char *ridiculously_long_variable_name_with_equally_long_string_assignment; - register long local_reg = 7; - static unsigned long local_static, local_static_sizeof; - long local_long; - unsigned long *stack_ptr; - unsigned long end_of_stack; - - ridiculously_long_variable_name_with_equally_long_string_assignment = - "ridiculously long variable name with equally long string assignment"; - local_static = 9; - local_static_sizeof = sizeof (struct GDB_STRUCT_TEST); - local_long = local_reg + 1; - stack_ptr = (unsigned long *) &local_long; - end_of_stack = - (unsigned long) &stack_ptr + sizeof(stack_ptr) + sizeof(end_of_stack) - 1; - - gdb_char_test = gdb_struct1_test.c = (char) ((long) parm[1] & 0xff); - gdb_short_test = gdb_struct1_test.s = (short) ((long) parm[2] & 0xffff); - gdb_long_test = gdb_struct1_test.l = (long) ((long) parm[3] & 0xffffffff); - gdb_union1_test.l = (long) parm[4]; - gdb_arr_test[0] = gdb_struct1_test.arr[0] = (char) ((long) parm[1] & 0xff); - gdb_arr_test[1] = gdb_struct1_test.arr[1] = (char) ((long) parm[2] & 0xff); - gdb_arr_test[2] = gdb_struct1_test.arr[2] = (char) ((long) parm[3] & 0xff); - gdb_arr_test[3] = gdb_struct1_test.arr[3] = (char) ((long) parm[4] & 0xff); - gdb_arr_test[4] = gdb_struct1_test.arr[4] = (char) ((long) parm[5] & 0xff); - gdb_arr_test[5] = gdb_struct1_test.arr[5] = (char) ((long) parm[6] & 0xff); - gdb_struct1_test.bfield = 144; - gdb_struct1_test.next = &gdb_struct2_test; - gdb_structp_test = &gdb_struct1_test; - gdb_structpp_test = &gdb_structp_test; - - gdb_recursion_test (3, (long) parm[1], (long) parm[2], (long) parm[3], - (long) parm[4], (long) parm[5], (long) parm[6]); - - gdb_char_test = gdb_short_test = gdb_long_test = 0; - gdb_structp_test = (void *) 0; - gdb_structpp_test = (void *) 0; - memset ((char *) &gdb_struct1_test, 0, sizeof (gdb_struct1_test)); - memset ((char *) &gdb_struct2_test, 0, sizeof (gdb_struct2_test)); - local_static_sizeof = 0; - local_static = 0; - return ( (unsigned long) 0 ); -} - -static void gdb_asm_test (void) -{ -} - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i; - unsigned long myparms[10]; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - for (i = 0; i < sizeof (myparms) / sizeof (myparms[0]); i++) - myparms[i] = i; - - gdb_c_test (&myparms[0]); - - end (); - return 0; -} - diff --git a/gdb/testsuite/gdb.trace/actions.exp b/gdb/testsuite/gdb.trace/actions.exp deleted file mode 100644 index 66d3d87..0000000 --- a/gdb/testsuite/gdb.trace/actions.exp +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - set binfile [board_info target d490_binfile]; - set srcfile gdb_c_test.c -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) - -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -set testline1 [expr $baseline + 7] - -# -# test actions command -# - -gdb_delete_tracepoints -set trcpt1 [gdb_gettpnum gdb_c_test]; -set trcpt2 [gdb_gettpnum gdb_asm_test]; -set trcpt3 [gdb_gettpnum $testline1]; -if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { - fail "setting tracepoints" - return; -} - -# 5.1 actions of specified tracepoint - -send_gdb "info tracepoints\n" -gdb_expect { - -re "Actions for tracepoint \[0-9\]+:.*$gdb_prompt $" { - fail "5.1a: testsuite failure (tracepoint already has action)!" - } - -re "No tracepoints.*$gdb_prompt $" { - fail "5.1a: set three tracepoints, no actions (No tracepoints!)" - } - -re "$gdb_prompt $" { - pass "5.1a: set three tracepoints, no actions" - } -} - -gdb_trace_setactions "5.1b: set actions for first tracepoint" \ - "$trcpt1" \ - "collect gdb_char_test" "^$" - -send_gdb "info tracepoints\n" -gdb_expect { - -re "Actions for.* $trcpt1:.*collect gdb_char_test.*$gdb_prompt $" { - pass "5.1c: verify actions set for first tracepoint" - } - -re "$gdb_prompt $" { - fail "5.1c: verify actions set for first tracepoint" - } -} - -gdb_trace_setactions "5.1d: set actions for second tracepoint" \ - "$trcpt2" \ - "collect gdb_short_test" "^$" - -send_gdb "info tracepoints\n" -gdb_expect { - -re "Actions for.* $trcpt2:.*collect gdb_short_test.*$gdb_prompt $" { - pass "5.1e: verify actions set for second tracepoint" - } - -re "$gdb_prompt $" { - fail "5.1e: verify actions set for second tracepoint" - } -} - -gdb_trace_setactions "5.2a: set actions for last (default) tracepoint" \ - "" \ - "collect gdb_long_test" "^$" - -send_gdb "info tracepoints\n" -gdb_expect { - -re "Actions for.* $trcpt3:.*collect gdb_long_test.*$gdb_prompt $" { - pass "5.2b: verify actions set for last (default) tracepoint" - } - -re "$gdb_prompt $" { - fail "5.2b: verify actions set for last (default) tracepoint" - } -} - -# 5.3 replace actions set earlier - -gdb_trace_setactions "5.3a: reset actions for first tracepoint" \ - "$trcpt1" \ - "collect gdb_struct1_test" "^$" - -send_gdb "info tracepoints\n" -gdb_expect { - -re "Actions for.* $trcpt1:.*collect gdb_struct1_test.*$gdb_prompt $" { - pass "5.3b: verify actions set for first tracepoint" - } - -re "$gdb_prompt $" { - fail "5.3b: verify actions set for first tracepoint" - } -} - -# -# test end command (all by itself) -# - -# 5.4 end outside of context - -gdb_test "end" "This command cannot be used at the top level." \ - "5.4: 'end' command out of context" - -# 5.5 empty actions (just an end with no other actions) - -gdb_trace_setactions "5.5a: set empty actions for first tracepoint" \ - "$trcpt1" - -send_gdb "info tracepoints\n" -gdb_expect { - -re "No tracepoints.*$gdb_prompt $" { - fail "5.5c: verify NO actions for first tracepoint" - } - -re "Actions for.* $trcpt1:.*$gdb_prompt $" { - fail "5.5c: verify NO actions for first tracepoint" - } - -re "$gdb_prompt $" { - pass "5.5c: verify NO actions for first tracepoint" - } -} - -# 5.6 actions for invalid tracepoint number - -gdb_test "actions [expr $trcpt2 + $trcpt3]" \ - "No tracepoint number [expr $trcpt2 + $trcpt3]." \ - "5.6: actions for invalid tracepoint number" - -# 5.7 invalid action (other than 'collect', 'while-stepping' or 'end') -# "warning: .print gdb_c_test. is not a supported trace.*> $" \ - -gdb_trace_setactions "5.7: invalid action" \ - "$trcpt1" \ - "print gdb_c_test" \ - "warning: .print gdb_c_test. is not a supported trace" - -# 5.8 help actions (collect, while-stepping, end) - -gdb_test "help actions" \ - "Specify the actions to be taken at a tracepoint.*" \ - "5.8a: help actions" - -gdb_test "help collect" \ - "Specify one or more data items to be collected at a tracepoint.*" \ - "5.8b: help collect" - -gdb_test "help while-stepping" \ - "Specify single-stepping behavior at a tracepoint.*" \ - "5.8c: help while-stepping" - -gdb_test "help end" "Ends a list of commands or actions.*" \ - "5.8d: help end" - diff --git a/gdb/testsuite/gdb.trace/backtrace.exp b/gdb/testsuite/gdb.trace/backtrace.exp deleted file mode 100644 index e217f95..0000000 --- a/gdb/testsuite/gdb.trace/backtrace.exp +++ /dev/null @@ -1,376 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - load_lib "emc-support.exp"; - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; - gdb_test "set remotetimeout 6" "" "" - set timeout 500 - gdb_target_monitor "$binfile" - # Give a TSTOP and ignore errors, to make sure any previous trace is off - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - send_gdb "compare-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - gdb_suppress_entire_file "Symbol file does not match target! - all tests in this module will fail."; - } - -re ".*$gdb_prompt $" { } - } -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# We generously give ourselves one "pass" if we successfully -# detect that this test cannot be run on this target! -if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - -} - -# -# test backtraces in trace frames -# - -set testline1 0 -set testline2 0 -set testline3 0 -set testline4 0 -set testline5 0 -set testline6 0 - -set arg1 1 -set arg2 2 -set arg3 3 -set arg4 4 -set arg5 5 -set arg6 6 - -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } { - fail "Could not find gdb_recursion_test function" - return; -} - -send_gdb "list $baseline, +12\n" -gdb_expect { - -re "\[\r\n\](\[0-9\]+).*gdbtestline 1 " { - set testline1 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 2 " { - set testline2 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 3 " { - set testline3 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 4 " { - set testline4 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 5 " { - set testline5 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+).*gdbtestline 6 " { - set testline6 $expect_out(1,string) - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($testline1 == 0) || ($testline2 == 0) || ($testline3 == 0) || ($testline4 == 0) || ($testline5 == 0) || ($testline6 == 0) } { - gdb_suppress_entire_file "failed to locate test source lines: -all tests in this module will fail." - } - } - default { - gdb_suppress_entire_file "failed to locate test source lines (def): -all tests in this module will fail." - } -} - -# -# Setup backtrace experiment. This will involve: -# 1) a tracepoint where nothing is collected -# 2) a tracepoint where only regs are collected -# 3) a tracepoint where regs, locals and args are collected -# 4) a tracepoint where regs plus some amount of stack are collected. -# - -gdb_delete_tracepoints -set tdp2 [gdb_gettpnum $testline2] -set tdp3 [gdb_gettpnum $testline3] -set tdp4 [gdb_gettpnum $testline4] -set tdp5 [gdb_gettpnum $testline5] -set tdp6 [gdb_gettpnum $testline6] -if { $tdp2 <= 0 || $tdp3 <= 0 || \ - $tdp4 <= 0 || $tdp5 <= 0 || $tdp6 <= 0 } then { - fail "setting tracepoints failed" - return; -} - -#gdb_trace_setactions "setup TP to collect FP" \ -# "$tdp2" \ -# "collect \$fp" "" -# - -gdb_trace_setactions "8.6: setup TP to collect regs" \ - "$tdp3" \ - "collect \$regs" "^$" - -gdb_trace_setactions "8.6: setup TP to collect regs, args, and locals" \ - "$tdp4" \ - "collect \$regs, \$args, \$locs" "^$" - -gdb_trace_setactions "8.6: setup TP to collect stack mem cast expr" \ - "$tdp6" \ - "collect \$fp, \(\*\(void \*\*\) \(\$sp\)\) @ 64" "^$" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,$arg1,$arg2,$arg3,$arg4,$arg5,$arg6" - sleep 5 -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -gdb_test "tstop" "" "" - -proc gdb_backtrace_tdp_1 { msg } { - global gdb_prompt - - # We are in a trace frame at which we didn't collect anything - # except $PC. Therefore we expect to be able to identify stack - # frame #0, but that's about all. In particular we do not expect - # to be able to display the function's arguments or locals, and we - # do not expect to be able to identify the caller of this function. - - send_gdb "backtrace\n" - gdb_expect { - -re "#0\[\t \]+gdb_recursion_test.*depth=.*$gdb_prompt $" { - pass "$msg" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -proc gdb_backtrace_tdp_2 { msg } { - global gdb_prompt - - # We are in a trace frame at which we collected only the registers - # Therefore we expect to be able to identify stack frame #0, but - # we don't expect to be able to display its args unles they are - # passed in registers (which isn't the case for m68k), and we - # don't expect to be able to identify the caller's stack frame. - - send_gdb "backtrace\n" - gdb_expect { - -re "#0\[\t \]+gdb_recursion_test.*depth=.*$gdb_prompt $" { - pass "$msg" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -proc gdb_backtrace_tdp_3 { msg } { - global gdb_prompt - - # We are in a trace frame at which we collected all registers, all - # arguments and all locals. This means that the display of - # stack frame #0 should be complete (including argument values). - - send_gdb "backtrace\n" - gdb_expect { - -re "#0\[\t \]+gdb_recursion_test.*depth=\[0-9\]+.*q1=\[0-9\]+.*q2=\[0-9\]+.*q3=\[0-9\]+.*q4=\[0-9\]+.*q5=\[0-9\]+.*q6=\[0-9\]+.*$gdb_prompt $" { - pass "$msg" - } - -re "#0\[\t \]+gdb_recursion_test.*depth=Cannot access.*$gdb_prompt $" { - fail "$msg (failed to collect arguments)" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -proc gdb_backtrace_tdp_4 { msg depth } { - global gdb_prompt - - # We are in a trace frame at which we collected all registers, - # plus a sizeable hunk of stack memory. This should enable us to - # display at least several stack frames worth of backtrace. We'll - # assume that if we can't display at least "depth" levels (with - # args), it counts as an error. - - send_gdb "backtrace\n" - gdb_expect { - -re "#$depth\[\t \].*gdb_recursion_test.*depth=\[0-9\]+.*q1=\[0-9\]+.*q2=\[0-9\]+.*q3=\[0-9\]+.*q4=\[0-9\]+.*q5=\[0-9\]+.*q6=\[0-9\]+.*$gdb_prompt $" { - pass "$msg" - } - -re "#$depth\[\t \].*gdb_recursion_test.*depth=.*$gdb_prompt $" { - fail "$msg (args missing from #$depth stack frame)" - } - -re "#\[0-9\]+\[\t \].*gdb_recursion_test.*depth=.*$gdb_prompt $" { - fail "$msg (fewer than $depth stack frames found)" - } - -re ".*$gdb_prompt $" { - fail "$msg" - } - timeout { fail "$msg (timeout)" } - } -} - -# -# begin backtrace test -# - -set timeout 60 - -gdb_tfind_test "init: make sure not debugging any trace frame" "none" "-1" - -gdb_tfind_test "8.6: find start frame" "start" "0" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 1, collect nothing" - -gdb_tfind_test "8.6: find frame 1" "1" "1" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 1, collect regs" - -gdb_tfind_test "8.6: find frame 2" "2" "2" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 1, collect args and locals" - - -gdb_tfind_test "8.6: find frame 4" "4" "4" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_tfind_test "8.6: find frame 5" "5" "5" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 2, collect nothing" - -gdb_tfind_test "8.6: find frame 6" "6" "6" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 2, collect regs" - -gdb_tfind_test "8.6: find frame 7" "7" "7" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 2, collect args and locals" - - -gdb_tfind_test "8.6: find frame 9" "9" "9" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_tfind_test "8.6: find frame 10" "10" "10" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 3, collect nothing" - -gdb_tfind_test "8.6: find frame 11" "11" "11" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 3, collect regs" - -gdb_tfind_test "8.6: find frame 12" "12" "12" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 3, collect args and locals" - - -gdb_tfind_test "8.6: find frame 14" "14" "14" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_tfind_test "8.6: find frame 15" "15" "15" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp2:" "" -gdb_backtrace_tdp_1 "8.6: Backtrace, depth == 4, collect nothing" - -gdb_tfind_test "8.6: find frame 16" "16" "16" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp3:" "" -gdb_backtrace_tdp_2 "8.6: Backtrace, depth == 4, collect regs" - -gdb_tfind_test "8.6: find frame 17" "17" "17" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp4:" "" -gdb_backtrace_tdp_3 "8.6: Backtrace, depth == 4, collect args and locals" - - -gdb_tfind_test "8.6: find frame 19" "19" "19" -gdb_test "printf \"TDP \%d:\\n\", \$tracepoint" \ - "TDP $tdp6:" "" -gdb_backtrace_tdp_4 "8.6: Backtrace, depth == 1, collect stack mem expr" "0" - -gdb_test "printf \"x \%d x\\n\", depth == 3" \ - "x 0 x" \ - "1.13: trace in recursion: depth not equal to 3" - -# Finished! -gdb_test "tfind none" "" "" diff --git a/gdb/testsuite/gdb.trace/circ.c b/gdb/testsuite/gdb.trace/circ.c deleted file mode 100644 index 98a2ce6..0000000 --- a/gdb/testsuite/gdb.trace/circ.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Test program for tracing; circular buffer - */ - -int n = 6; - -int testload[13]; - -static void func0(void) -{ -} - -static void func1(void) -{ -} - -static void func2(void) -{ -} - -static void func3(void) -{ -} - -static void func4(void) -{ -} - -static void func5(void) -{ -} - -static void func6(void) -{ -} - -static void func7(void) -{ -} - -static void func8(void) -{ -} - -static void func9(void) -{ -} - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - for (i = 0; i < sizeof(testload) / sizeof(testload[0]); i++) - testload[i] = i + 1; - - func0 (); - func1 (); - func2 (); - func3 (); - func4 (); - func5(); - func6 (); - func7 (); - func8 (); - func9 (); - - end (); - -#ifdef usestubs - breakpoint (); -#endif - return 0; -} diff --git a/gdb/testsuite/gdb.trace/circ.exp b/gdb/testsuite/gdb.trace/circ.exp deleted file mode 100644 index 2bfb7a6..0000000 --- a/gdb/testsuite/gdb.trace/circ.exp +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -if [istarget "m68k-*-elf"] then { - pass "Test not supported on this target" - return; -} - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -set testfile "circ" -set srcfile ${testfile}.c -set binfile $objdir/$subdir/$testfile - -if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." -} - -# Tests: -# 1) Set up a trace experiment that will collect approximately 10 frames, -# requiring more than 512 but less than 1024 bytes of cache buffer. -# (most targets should have at least 1024 bytes of cache buffer!) -# Run and confirm that it collects all 10 frames. -# 2) Artificially limit the trace buffer to 512 bytes, and rerun the -# experiment. Confirm that the first several frames are collected, -# but that the last several are not. -# 3) Set trace buffer to circular mode, still with the artificial limit -# of 512 bytes, and rerun the experiment. Confirm that the last -# several frames are collected, but the first several are not. -# - -# return 0 for success, 1 for failure -proc run_trace_experiment { pass } { - gdb_run_cmd - - if [gdb_test "tstart" \ - "\[\r\n\]*" \ - "start trace experiment, pass $pass"] then { return 1; } - if [gdb_test "continue" \ - "Continuing.*Breakpoint \[0-9\]+, end.*" \ - "run to end, pass $pass"] then { return 1; } - if [gdb_test "tstop" \ - "\[\r\n\]*" \ - "stop trace experiment, pass $pass"] then { return 1; } - return 0; -} - -# return 0 for success, 1 for failure -proc set_a_tracepoint { func } { - if [gdb_test "trace $func" \ - "Tracepoint \[0-9\]+ at .*" \ - "set tracepoint at $func"] then { - return 1; - } - if [gdb_trace_setactions "set actions for $func" \ - "" \ - "collect testload" "^$"] then { - return 1; - } - return 0; -} - -# return 0 for success, 1 for failure -proc setup_tracepoints { } { - gdb_delete_tracepoints - if [set_a_tracepoint func0] then { return 1; } - if [set_a_tracepoint func1] then { return 1; } - if [set_a_tracepoint func2] then { return 1; } - if [set_a_tracepoint func3] then { return 1; } - if [set_a_tracepoint func4] then { return 1; } - if [set_a_tracepoint func5] then { return 1; } - if [set_a_tracepoint func6] then { return 1; } - if [set_a_tracepoint func7] then { return 1; } - if [set_a_tracepoint func8] then { return 1; } - if [set_a_tracepoint func9] then { return 1; } - return 0; -} - -# return 0 for success, 1 for failure -proc trace_buffer_normal { } { - if [gdb_test "maint packet QTBuffer:size:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - if [gdb_test "maint packet QTBuffer:circular:0" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - return 0; -} - -# return 0 for success, 1 for failure -proc gdb_trace_circular_tests { } { - - # We generously give ourselves one "pass" if we successfully - # detect that this test cannot be run on this target! - if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - } - - if [trace_buffer_normal] then { return 1; } - - gdb_test "break begin" "" "" - gdb_test "break end" "" "" - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - - if [setup_tracepoints] then { return 1; } - - # First, run the trace experiment with default attributes: - # Make sure it behaves as expected. - if [run_trace_experiment 1] then { return 1; } - if [gdb_test "tfind start" \ - "#0 func0 .*" \ - "find frame zero, pass 1"] then { return 1; } - - if [gdb_test "tfind 9" \ - "#0 func9 .*" \ - "find frame nine, pass 1"] then { return 1; } - - if [gdb_test "tfind none" \ - "#0 end .*" \ - "quit trace debugging, pass 1"] then { return 1; } - - # Then, shrink the trace buffer so that it will not hold - # all ten trace frames. Verify that frame zero is still - # collected, but frame nine is not. - if [gdb_test "maint packet QTBuffer:size:200" \ - "received: .OK." "shrink the target trace buffer"] then { - return 1; - } - if [run_trace_experiment 2] then { return 1; } - if [gdb_test "tfind start" \ - "#0 func0 .*" \ - "find frame zero, pass 2"] then { return 1; } - - if [gdb_test "tfind 9" \ - ".* failed to find .*" \ - "fail to find frame nine, pass 2"] then { return 1; } - - if [gdb_test "tfind none" \ - "#0 end .*" \ - "quit trace debugging, pass 2"] then { return 1; } - - # Finally, make the buffer circular. Now when it runs out of - # space, it should wrap around and overwrite the earliest frames. - # This means that: - # 1) frame zero will be overwritten and therefore unavailable - # 2) the earliest frame in the buffer will be other-than-zero - # 3) frame nine will be available (unlike on pass 2). - if [gdb_test "maint packet QTBuffer:circular:1" \ - "received: .OK." "make the target trace buffer circular"] then { - return 1; - } - if [run_trace_experiment 3] then { return 1; } - if [gdb_test "tfind start" \ - "#0 func\[1-9\] .*" \ - "first frame is NOT frame zero, pass 3"] then { return 1; } - - if [gdb_test "tfind 9" \ - "#0 func9 .*" \ - "find frame nine, pass 3"] then { return 1; } - - if [gdb_test "tfind none" \ - "#0 end .*" \ - "quit trace debugging, pass 3"] then { return 1; } - - return 0; -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $binfile - -if [target_info exists gdb_stub] { - gdb_step_for_stub; -} -# Body of test encased in a proc so we can return prematurely. -if { ![gdb_trace_circular_tests] } then { - # Set trace buffer attributes back to normal - trace_buffer_normal; -} - -# Finished! -gdb_test "tfind none" "" "" diff --git a/gdb/testsuite/gdb.trace/collection.c b/gdb/testsuite/gdb.trace/collection.c deleted file mode 100644 index 3986332..0000000 --- a/gdb/testsuite/gdb.trace/collection.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Test program for trace collection - */ - -/* - * Typedefs - */ - -typedef struct TEST_STRUCT { - char memberc; - int memberi; - float memberf; - double memberd; -} test_struct; - -typedef int test_array [4]; - -/* - * Global variables to be collected - */ - -char globalc; -int globali; -float globalf; -double globald; -test_struct globalstruct; -test_struct *globalp; -int globalarr[16]; - -/* - * Additional globals used in arithmetic tests - */ - -signed char c0, c1, c2, c3, c4, c5, c6, c7, - c8, c9, c10, c11, c12, c13, c14, c15, cminus; -signed short s0, s1, s2, s3, s4, s5, s6, s7, - s8, s9, s10, s11, s12, s13, s14, s15, sminus; -signed long l0, l1, l2, l3, l4, l5, l6, l7, - l8, l9, l10, l11, l12, l13, l14, l15, lminus; - - -/* - * Test functions - */ - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -/* Test collecting args. */ -int args_test_func (argc, argi, argf, argd, argstruct, argarray) - char argc; - int argi; - float argf; - double argd; - test_struct argstruct; - int argarray[4]; -{ - int i; - - i = (int) argc + argi + argf + argd + argstruct.memberi + argarray[1]; - - return i; -} - -/* Test collecting struct args. */ -int argstruct_test_func (argstruct) - test_struct argstruct; -{ - return (int) argstruct.memberc + argstruct.memberi + - argstruct.memberf + argstruct.memberd; -} - -/* Test collecting array args. */ -int argarray_test_func (argarray) - int argarray[4]; -{ - return (int) argarray[0] + argarray[1] + argarray[2] + argarray[3]; -} - - - -int local_test_func () /* test collecting locals */ -{ - char locc = 11; - int loci = 12; - float locf = 13.3; - double locd = 14.4; - test_struct locst; - int locar[4]; - int i; - - locst.memberc = 15; - locst.memberi = 16; - locst.memberf = 17.7; - locst.memberd = 18.8; - locar[0] = 121; - locar[1] = 122; - locar[2] = 123; - locar[3] = 124; - - i = /* Set_Tracepoint_Here */ - (int) locc + loci + locf + locd + locst.memberi + locar[1]; - - return i; -} - -int reglocal_test_func () /* test collecting register locals */ -{ - register char locc = 11; - register int loci = 12; - register float locf = 13.3; - register double locd = 14.4; - register test_struct locst; - register int locar[4]; - int i; - - locst.memberc = 15; - locst.memberi = 16; - locst.memberf = 17.7; - locst.memberd = 18.8; - locar[0] = 121; - locar[1] = 122; - locar[2] = 123; - locar[3] = 124; - - i = /* Set_Tracepoint_Here */ - (int) locc + loci + locf + locd + locst.memberi + locar[1]; - - return i; -} - -int statlocal_test_func () /* test collecting static locals */ -{ - static char locc; - static int loci; - static float locf; - static double locd; - static test_struct locst; - static int locar[4]; - int i; - - locc = 11; - loci = 12; - locf = 13.3; - locd = 14.4; - locst.memberc = 15; - locst.memberi = 16; - locst.memberf = 17.7; - locst.memberd = 18.8; - locar[0] = 121; - locar[1] = 122; - locar[2] = 123; - locar[3] = 124; - - i = /* Set_Tracepoint_Here */ - (int) locc + loci + locf + locd + locst.memberi + locar[1]; - - /* Set static locals back to zero so collected values are clearly special. */ - locc = 0; - loci = 0; - locf = 0; - locd = 0; - locst.memberc = 0; - locst.memberi = 0; - locst.memberf = 0; - locst.memberd = 0; - locar[0] = 0; - locar[1] = 0; - locar[2] = 0; - locar[3] = 0; - - return i; -} - - -int globals_test_func () -{ - int i = 0; - - i += globalc + globali + globalf + globald; - i += globalstruct.memberc + globalstruct.memberi; - i += globalstruct.memberf + globalstruct.memberd; - i += globalarr[1]; - - return i; /* Set_Tracepoint_Here */ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i = 0; - test_struct mystruct; - int myarray[4]; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - /* Assign collectable values to global variables. */ - l0 = s0 = c0 = 0; l1 = s1 = c1 = 1; - l2 = s2 = c2 = 2; l3 = s3 = c3 = 3; - l4 = s4 = c4 = 4; l5 = s5 = c5 = 5; - l6 = s6 = c6 = 6; l7 = s7 = c7 = 7; - l8 = s8 = c8 = 8; l9 = s9 = c9 = 9; - l10 = s10 = c10 = 10; l11 = s11 = c11 = 11; - l12 = s12 = c12 = 12; l13 = s13 = c13 = 13; - l14 = s14 = c14 = 14; l15 = s15 = c15 = 15; - lminus = sminus = cminus = -2; - globalc = 71; - globali = 72; - globalf = 73.3; - globald = 74.4; - globalstruct.memberc = 81; - globalstruct.memberi = 82; - globalstruct.memberf = 83.3; - globalstruct.memberd = 84.4; - globalp = &globalstruct; - - for (i = 0; i < 15; i++) - globalarr[i] = i; - - mystruct.memberc = 101; - mystruct.memberi = 102; - mystruct.memberf = 103.3; - mystruct.memberd = 104.4; - myarray[0] = 111; - myarray[1] = 112; - myarray[2] = 113; - myarray[3] = 114; - - /* Call test functions, so they can be traced and data collected. */ - i = 0; - i += args_test_func (1, 2, 3.3, 4.4, mystruct, myarray); - i += argstruct_test_func (mystruct); - i += argarray_test_func (myarray); - i += local_test_func (); - i += reglocal_test_func (); - i += statlocal_test_func (); - i += globals_test_func (); - - /* Values of globals at end of test should be different from - values that they had when trace data was captured. */ - - l0 = s0 = c0 = 0; l1 = s1 = c1 = 0; - l2 = s2 = c2 = 0; l3 = s3 = c3 = 0; - l4 = s4 = c4 = 0; l5 = s5 = c5 = 0; - l6 = s6 = c6 = 0; l7 = s7 = c7 = 0; - l8 = s8 = c8 = 0; l9 = s9 = c9 = 0; - l10 = s10 = c10 = 0; l11 = s11 = c11 = 0; - l12 = s12 = c12 = 0; l13 = s13 = c13 = 0; - l14 = s14 = c14 = 0; l15 = s15 = c15 = 0; - lminus = sminus = cminus = 0; - - /* Set 'em back to zero, so that the collected values will be - distinctly different from the "realtime" (end of test) values. */ - - globalc = 0; - globali = 0; - globalf = 0; - globald = 0; - globalstruct.memberc = 0; - globalstruct.memberi = 0; - globalstruct.memberf = 0; - globalstruct.memberd = 0; - globalp = 0; - for (i = 0; i < 15; i++) - globalarr[i] = 0; - - end (); - return 0; -} diff --git a/gdb/testsuite/gdb.trace/collection.exp b/gdb/testsuite/gdb.trace/collection.exp deleted file mode 100644 index a6ac5d8..0000000 --- a/gdb/testsuite/gdb.trace/collection.exp +++ /dev/null @@ -1,623 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -if [istarget "m68k-*-elf"] then { - pass "Test not supported on this target" - return; -} - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -set testfile "collection" -set srcfile ${testfile}.c -set binfile $objdir/$subdir/$testfile - -if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." -} - -# Tests: -# 1) $args -# 2) function args by name -# 3) $locs -# 4) function locals by name -# 5) $regs -# 6) registers by name ($sp, $fp?) -# 7) globals by name -# 8) expressions (lots of different kinds: local and global) - -set ws "\[\r\n\t \]+" -set cr "\[\r\n\]+" - -# -# Utility procs -# - -proc test_register { reg test_id } { - global cr - global gdb_prompt - - send_gdb "print $reg\n" - gdb_expect { - -re "\\$\[0-9\]+ = \[x0\]+$cr$gdb_prompt " { - fail "collect $test_id: collected $reg (zero)" - } - -re "\\$\[0-9\]+ = \[x0-9a-fA-F\]+$cr$gdb_prompt " { - pass "collect $test_id: collected $reg" - } - -re "\[Ee\]rror.*$gdb_prompt " { - fail "collect $test_id: collected $reg (error)" - } - timeout { - fail "collect $test_id: collected $reg (timeout)" - } - } -} - -proc run_trace_experiment { msg test_func } { - gdb_run_cmd - gdb_test "tstart" \ - "\[\r\n\]+" \ - "collect $msg: start trace experiment" - gdb_test "continue" \ - "Continuing.*Breakpoint \[0-9\]+, end.*" \ - "collect $msg: run trace experiment" - gdb_test "tstop" \ - "\[\r\n\]+" \ - "collect $msg: stop trace experiment" - gdb_test "tfind start" \ - "#0 $test_func .*" \ - "collect $msg: tfind test frame" -} - - -# -# Test procs -# - -proc gdb_collect_args_test { myargs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - gdb_test "trace args_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $myargs" "^$" - - # Begin the test. - run_trace_experiment $msg args_test_func - - gdb_test "print argc" \ - "\\$\[0-9\]+ = 1 '.001'$cr" \ - "collect $msg: collected arg char" - gdb_test "print argi" \ - "\\$\[0-9\]+ = 2$cr" \ - "collect $msg: collected arg int" - gdb_test "print argf" \ - "\\$\[0-9\]+ = 3.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected arg float" - gdb_test "print argd" \ - "\\$\[0-9\]+ = 4.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected arg double" - - # struct arg as one of several args (near end of list) - gdb_test "print argstruct.memberc" \ - "\\$\[0-9\]+ = 101 'e'$cr" \ - "collect $msg: collected arg struct member char" - gdb_test "print argstruct.memberi" \ - "\\$\[0-9\]+ = 102$cr" \ - "collect $msg: collected arg struct member int" - gdb_test "print argstruct.memberf" \ - "\\$\[0-9\]+ = 103.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member float" - gdb_test "print argstruct.memberd" \ - "\\$\[0-9\]+ = 104.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member double" - - # array arg as one of several args (near end of list) - gdb_test "print argarray\[0\]" \ - "\\$\[0-9\]+ = 111$cr" \ - "collect $msg: collected argarray #0" - gdb_test "print argarray\[1\]" \ - "\\$\[0-9\]+ = 112$cr" \ - "collect $msg: collected argarray #1" - gdb_test "print argarray\[2\]" \ - "\\$\[0-9\]+ = 113$cr" \ - "collect $msg: collected argarray #2" - gdb_test "print argarray\[3\]" \ - "\\$\[0-9\]+ = 114$cr" \ - "collect $msg: collected argarray #3" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - -proc gdb_collect_argstruct_test { myargs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - gdb_test "trace argstruct_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $myargs" "^$" - - # Begin the test. - run_trace_experiment $msg argstruct_test_func - - # struct argument as only argument - gdb_test "print argstruct.memberc" \ - "\\$\[0-9\]+ = 101 'e'$cr" \ - "collect $msg: collected arg struct member char" - gdb_test "print argstruct.memberi" \ - "\\$\[0-9\]+ = 102$cr" \ - "collect $msg: collected arg struct member int" - gdb_test "print argstruct.memberf" \ - "\\$\[0-9\]+ = 103.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member float" - gdb_test "print argstruct.memberd" \ - "\\$\[0-9\]+ = 104.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected arg struct member double" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - - -proc gdb_collect_argarray_test { myargs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - gdb_test "trace argarray_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $myargs" "^$" - - # Begin the test. - run_trace_experiment $msg argarray_test_func - - # array arg as only argument - gdb_test "print argarray\[0\]" \ - "\\$\[0-9\]+ = 111$cr" \ - "collect $msg: collected argarray #0" - gdb_test "print argarray\[1\]" \ - "\\$\[0-9\]+ = 112$cr" \ - "collect $msg: collected argarray #1" - gdb_test "print argarray\[2\]" \ - "\\$\[0-9\]+ = 113$cr" \ - "collect $msg: collected argarray #2" - gdb_test "print argarray\[3\]" \ - "\\$\[0-9\]+ = 114$cr" \ - "collect $msg: collected argarray #3" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - - -proc gdb_collect_locals_test { func mylocs msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Find the comment-identified line for setting this tracepoint. - set testline 0 - send_gdb "list $func, +30\n" - gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+ Set_Tracepoint_Here .*$gdb_prompt" { - set testline $expect_out(1,string) - pass "collect $msg: find tracepoint line" - } - -re ".*$gdb_prompt " { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - timeout { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - } - - gdb_test "trace $testline" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $mylocs" "^$" - - # Begin the test. - run_trace_experiment $msg $func - - gdb_test "print locc" \ - "\\$\[0-9\]+ = 11 '.013'$cr" \ - "collect $msg: collected local char" - gdb_test "print loci" \ - "\\$\[0-9\]+ = 12$cr" \ - "collect $msg: collected local int" - gdb_test "print locf" \ - "\\$\[0-9\]+ = 13.\[23\]\[0-9\]*$cr" \ - "collect $msg: collected local float" - gdb_test "print locd" \ - "\\$\[0-9\]+ = 14.\[34\]\[0-9\]*$cr" \ - "collect $msg: collected local double" - - gdb_test "print locst.memberc" \ - "\\$\[0-9\]+ = 15 '.017'$cr" \ - "collect $msg: collected local member char" - gdb_test "print locst.memberi" \ - "\\$\[0-9\]+ = 16$cr" \ - "collect $msg: collected local member int" - gdb_test "print locst.memberf" \ - "\\$\[0-9\]+ = 17.\[67\]\[0-9\]*$cr" \ - "collect $msg: collected local member float" - gdb_test "print locst.memberd" \ - "\\$\[0-9\]+ = 18.\[78\]\[0-9\]*$cr" \ - "collect $msg: collected local member double" - - gdb_test "print locar\[0\]" \ - "\\$\[0-9\]+ = 121$cr" \ - "collect $msg: collected locarray #0" - gdb_test "print locar\[1\]" \ - "\\$\[0-9\]+ = 122$cr" \ - "collect $msg: collected locarray #1" - gdb_test "print locar\[2\]" \ - "\\$\[0-9\]+ = 123$cr" \ - "collect $msg: collected locarray #2" - gdb_test "print locar\[3\]" \ - "\\$\[0-9\]+ = 124$cr" \ - "collect $msg: collected locarray #3" - - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - -proc gdb_collect_registers_test { myregs } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # We'll simply re-use the args_test_function for this test - gdb_test "trace args_test_func" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $myregs: set tracepoint" - gdb_trace_setactions "collect $myregs: define actions" \ - "" \ - "collect $myregs" "^$" - - # Begin the test. - run_trace_experiment $myregs args_test_func - - test_register "\$fp" $myregs - test_register "\$sp" $myregs - test_register "\$pc" $myregs - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $myregs: cease trace debugging" -} - -proc gdb_collect_expression_test { func expr val msg } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Find the comment-identified line for setting this tracepoint. - set testline 0 - send_gdb "list $func, +30\n" - gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+ Set_Tracepoint_Here .*$gdb_prompt" { - set testline $expect_out(1,string) - pass "collect $msg: find tracepoint line" - } - -re ".*$gdb_prompt " { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - timeout { - fail "collect $msg: find tracepoint line (skipping locals test)" - return - } - } - - gdb_test "trace $testline" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect $msg: set tracepoint" - gdb_trace_setactions "collect $msg: define actions" \ - "" \ - "collect $expr" "^$" - - # Begin the test. - run_trace_experiment $msg $func - - gdb_test "print $expr" \ - "\\$\[0-9\]+ = $val$cr" \ - "collect $msg: got expected value '$val'" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect $msg: cease trace debugging" -} - -proc gdb_collect_globals_test { } { - global cr - global gdb_prompt - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Find the comment-identified line for setting this tracepoint. - set testline 0 - send_gdb "list globals_test_func, +30\n" - gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+ Set_Tracepoint_Here .*$gdb_prompt" { - set testline $expect_out(1,string) - pass "collect globals: find tracepoint line" - } - -re ".*$gdb_prompt " { - fail "collect globals: find tracepoint line (skipping global test)" - return - } - timeout { - fail "collect globals: find tracepoint line (skipping global test)" - return - } - } - - gdb_test "trace $testline" \ - "Tracepoint \[0-9\]+ at .*" \ - "collect globals: set tracepoint" - gdb_trace_setactions "collect globals: define actions" \ - "" \ - "collect globalc, globali, globalf, globald" "^$" \ - "collect globalstruct, globalp, globalarr" "^$" - - # Begin the test. - run_trace_experiment "globals" globals_test_func - - gdb_test "print globalc" \ - "\\$\[0-9\]+ = 71 'G'$cr" \ - "collect globals: collected global char" - gdb_test "print globali" \ - "\\$\[0-9\]+ = 72$cr" \ - "collect globals: collected global int" - gdb_test "print globalf" \ - "\\$\[0-9\]+ = 73.\[23\]\[0-9\]*$cr" \ - "collect globals: collected global float" - gdb_test "print globald" \ - "\\$\[0-9\]+ = 74.\[34\]\[0-9\]*$cr" \ - "collect globals: collected global double" - - gdb_test "print globalstruct.memberc" \ - "\\$\[0-9\]+ = 81 'Q'$cr" \ - "collect globals: collected struct char member" - gdb_test "print globalstruct.memberi" \ - "\\$\[0-9\]+ = 82$cr" \ - "collect globals: collected struct member int" - gdb_test "print globalstruct.memberf" \ - "\\$\[0-9\]+ = 83.\[23\]\[0-9\]*$cr" \ - "collect globals: collected struct member float" - gdb_test "print globalstruct.memberd" \ - "\\$\[0-9\]+ = 84.\[34\]\[0-9\]*$cr" \ - "collect globals: collected struct member double" - - gdb_test "print globalp == &globalstruct" \ - "\\$\[0-9\]+ = 1$cr" \ - "collect globals: collected global pointer" - - gdb_test "print globalarr\[1\]" \ - "\\$\[0-9\]+ = 1$cr" \ - "collect globals: collected global array element #1" - gdb_test "print globalarr\[2\]" \ - "\\$\[0-9\]+ = 2$cr" \ - "collect globals: collected global array element #2" - gdb_test "print globalarr\[3\]" \ - "\\$\[0-9\]+ = 3$cr" \ - "collect globals: collected global array element #3" - - gdb_test "tfind none" \ - "#0 end .*" \ - "collect globals: cease trace debugging" -} - -proc gdb_trace_collection_test { } { - global gdb_prompt; - - gdb_test "set width 0" "" "" - delete_breakpoints - - # We generously give ourselves one "pass" if we successfully - # detect that this test cannot be run on this target! - if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - } - - gdb_test "break begin" "" "" - gdb_test "break end" "" "" - gdb_collect_args_test "\$args" \ - "args collectively" - gdb_collect_args_test "argc, argi, argf, argd, argstruct, argarray" \ - "args individually" - gdb_collect_argstruct_test "\$args" \ - "argstruct collectively" - gdb_collect_argstruct_test "argstruct" \ - "argstruct individually" - gdb_collect_argarray_test "\$args" \ - "argarray collectively" - gdb_collect_argarray_test "argarray" \ - "argarray individually" - gdb_collect_locals_test local_test_func "\$locals" \ - "auto locals collectively" - gdb_collect_locals_test local_test_func \ - "locc, loci, locf, locd, locst, locar" \ - "auto locals individually" - gdb_collect_locals_test reglocal_test_func "\$locals" \ - "register locals collectively" - gdb_collect_locals_test reglocal_test_func \ - "locc, loci, locf, locd, locst, locar" \ - "register locals individually" - gdb_collect_locals_test statlocal_test_func "\$locals" \ - "static locals collectively" - gdb_collect_locals_test statlocal_test_func \ - "locc, loci, locf, locd, locst, locar" \ - "static locals individually" - - gdb_collect_registers_test "\$regs" - gdb_collect_registers_test "\$fp, \$sp, \$pc" - gdb_collect_globals_test - - # - # Expression tests: - # - # *x (**x, ...) - # x.y (x.y.z, ...) - # x->y (x->y->z, ...) - # x[2] (x[2][3], ...) (const index) - # x[y] (x[y][z], ...) (index to be char, short, long, float, double) - # NOTE: - # We test the following operators by using them in an array index - # expression -- because the naked result of an operator is not really - # collected. To be sure the operator was evaluated correctly on the - # target, we have to actually use the result eg. in an array offset - # calculation. - # x[y + z] (tests addition: y and z various combos of types, sclasses) - # x[y - z] (tests subtraction) (ditto) - # x[y * z] (tests multiplication) (ditto) - # x[y / z] (tests division) (ditto) - # x[y % z] (tests modulo division) (ditto) - # x[y == z] (tests equality relation) (ditto) UNSUPPORTED - # x[y != z] (tests inequality relation) (ditto) UNSUPPORTED - # x[y > z] (tests greater-than relation) (ditto) UNSUPPORTED - # x[y < z] (tests less-than relation) (ditto) UNSUPPORTED - # x[y >= z] (tests greater-than-or-equal relation) (ditto) UNSUPPORTED - # x[y <= z] (tests less-than-or-equal relation) (ditto) UNSUPPORTED - # x[y && z] (tests logical and) (ditto) UNSUPPORTED - # x[y || z] (tests logical or) (ditto) UNSUPPORTED - # x[y & z] (tests binary and) (ditto) UNSUPPORTED - # x[y | z] (tests binary or) (ditto) UNSUPPORTED - # x[y ^ z] (tests binary xor) (ditto) UNSUPPORTED - # x[y ? z1 : z2] (tests ternary operator) (ditto) UNSUPPORTED - # x[y << z] (tests shift-left) (ditto) UNSUPPORTED - # x[y >> z] (tests shift-right) (ditto) UNSUPPORTED - # x[y = z] (tests assignment operator) (ditto) UNSUPPORTED - # x[++y] (tests pre-increment operator) (ditto) UNSUPPORTED - # x[--y] (tests pre-decrement operator) (ditto) UNSUPPORTED - # x[y++] (tests post-increment operator) (ditto) UNSUPPORTED - # x[y--] (tests post-decrement operator) (ditto) UNSUPPORTED - # x[+y] (tests unary plus) (ditto) - # x[-y] (tests unary minus) (ditto) - # x[!y] (tests logical not) (ditto) UNSUPPORTED - # x[~y] (tests binary not) (ditto) UNSUPPORTED - # x[(y, z)] (tests comma expression) (ditto) - # cast expr - # stack data - - gdb_collect_expression_test globals_test_func \ - "globalstruct.memberi" "82" "a.b" - gdb_collect_expression_test globals_test_func \ - "globalp->memberc" "81 'Q'" "a->b" - gdb_collect_expression_test globals_test_func \ - "globalarr\[2\]" "2" "a\[2\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3\]" "3" "a\[b\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3 + l2\]" "5" "a\[b + c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3 - l2\]" "1" "a\[b - c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l3 * l2\]" "6" "a\[b * c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l6 / l3\]" "2" "a\[b / c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[l7 % l3\]" "1" "a\[b % c\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[+l1\]" "1" "a\[+b\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[-lminus\]" "2" "a\[-b\]" - gdb_collect_expression_test globals_test_func \ - "globalarr\[\(l6, l7\)\]" "7" "a\[\(b, c\)\]" - -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $binfile - -if [target_info exists gdb_stub] { - gdb_step_for_stub; -} - -# Body of test encased in a proc so we can return prematurely. -gdb_trace_collection_test - -# Finished! -gdb_test "tfind none" "" "" - - - diff --git a/gdb/testsuite/gdb.trace/configure b/gdb/testsuite/gdb.trace/configure deleted file mode 100755 index 4176205..0000000 --- a/gdb/testsuite/gdb.trace/configure +++ /dev/null @@ -1,899 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.12.1 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12.1" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=collection.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -CC=${CC-cc} - -ac_aux_dir= -for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:573: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:594: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:612: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS <<EOF -#! /bin/sh -# Generated automatically by configure. -# Run this file to recreate the current configuration. -# This directory was configured as follows, -# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.12.1" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS <<EOF - -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@CC@%$CC%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <<EOF - -CONFIG_FILES=\${CONFIG_FILES-"Makefile"} -EOF -cat >> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <<EOF - -EOF -cat >> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/gdb/testsuite/gdb.trace/configure.in b/gdb/testsuite/gdb.trace/configure.in deleted file mode 100644 index 6d0eae2..0000000 --- a/gdb/testsuite/gdb.trace/configure.in +++ /dev/null @@ -1,15 +0,0 @@ -dnl Process this file file with autoconf to produce a configure script. -dnl This file is a shell script fragment that supplies the information -dnl necessary to tailor a template configure script into the configure -dnl script appropriate for this directory. For more information, check -dnl any existing configure script. - -AC_PREREQ(2.5) -AC_INIT(collection.c) - -CC=${CC-cc} -AC_SUBST(CC) -AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..) -AC_CANONICAL_SYSTEM - -AC_OUTPUT(Makefile) diff --git a/gdb/testsuite/gdb.trace/deltrace.exp b/gdb/testsuite/gdb.trace/deltrace.exp deleted file mode 100644 index 58a69ba..0000000 --- a/gdb/testsuite/gdb.trace/deltrace.exp +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright 1998, 1999 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} -set testline1 [expr $baseline + 4] - -# -# test "delete tracepoints" command -# - -# 3.1 delete tracepoints (all) -gdb_delete_tracepoints -gdb_test "trace gdb_c_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 1" -gdb_test "trace gdb_asm_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 2" -gdb_test "trace $testline1" "Tracepoint \[0-9\]+ at .*" "set tracepoint 3" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \ - "3.1a: set three tracepoints" - -send_gdb "delete tracepoints\n" -gdb_expect 30 { - -re "Delete all tracepoints.*y or n.*$" { - send_gdb "y\n" - gdb_expect 30 { - -re "$gdb_prompt $" { - pass "3.1b: delete all tracepoints" - } - timeout { fail "3.1b: delete all tracepoints (timeout)" } - } - } - -re "$gdb_prompt $" { # This should only happen if there are no tracepoints - fail "3.1b: delete all tracepoints (no tracepoints?)" - } - timeout { fail "3.1b: delete all tracepoints (timeout)" } -} - -# 3.2 delete tracepoint <n> -gdb_delete_tracepoints -set trcpt1 [gdb_gettpnum gdb_c_test]; -set trcpt2 [gdb_gettpnum gdb_asm_test]; -set trcpt3 [gdb_gettpnum $testline1]; -if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { - fail "setting tracepoints" - return; -} - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_recursion_test.*" \ - "3.2a: set three tracepoints" - -#gdb_test "delete tracepoint $trcpt1" "" "" -send_gdb "delete tracepoint $trcpt1\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.2b: delete first tracepoint" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.2b: delete first tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2b: delete first tracepoint" - } - timeout { - fail "3.2b: delete first tracepoint (timeout)" - } -} - -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" { - fail "3.2c: verify delete first tracepoint (argh)" - } - -re "$trcpt2\[\t \]+y.*gdb_asm_test.*\[\r\n\t ]+$trcpt3\[\t \]+y.* in gdb_recursion_test at .*$gdb_prompt $" { - pass "3.2c: verify delete first tracepoint" - } - -re ".*$gdb_prompt $" { - fail "3.2c: verify delete first tracepoint (mumble)" - } - timeout { - fail "3.2c: verify delete first tracepoint (timeout)" - } -} - -#gdb_test "delete tracepoint $trcpt2" "" "" -send_gdb "delete tracepoint $trcpt2\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.2d: delete second tracepoint" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.2d: delete second tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2d: delete second tracepoint" - } - timeout { - fail "3.2d: delete second tracepoint (timeout)" - } -} - -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" { - fail "3.2e: verify delete second tracepoint" - } - -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" { - fail "3.2e: verify delete second tracepoint" - } - -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { - pass "3.2e: verify delete second tracepoint" - } - -re "$gdb_prompt $" { - fail "3.2e: verify delete second tracepoint" - } - timeout { - fail "3.2e: verify delete second tracepoint (timeout)" - } -} - -#gdb_test "delete tracepoint $trcpt3" "" "" -send_gdb "delete tracepoint $trcpt3\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.2f: delete third tracepoint" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.2f: delete third tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2f: delete third tracepoint" - } - timeout { - fail "3.2f: delete third tracepoint (timeout)" - } -} - -# send_gdb "ARF! \\n\n" -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { - fail "3.2g: verify delete third tracepoint" - } - -re "$gdb_prompt $" { - pass "3.2g: verify delete third tracepoint" - } - timeout { - fail "3.2g: verify delete third tracepoint (timeout)" - } -} - -# 3.3 delete three tracepoints at once -gdb_delete_tracepoints -set trcpt1 [gdb_gettpnum gdb_c_test]; -set trcpt2 [gdb_gettpnum gdb_asm_test]; -set trcpt3 [gdb_gettpnum $testline1]; -if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { - fail "setting tracepoints" - return; -} - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \ - "3.3a: set three tracepoints" - -#gdb_test "delete tracepoint $trcpt1 $trcpt2 $trcpt3" "" "" -send_gdb "delete tracepoint $trcpt1 $trcpt2 $trcpt3\n" -gdb_expect { - -re "No tracepoint number.*$gdb_prompt $" { - fail "3.3b: delete three tracepoints" - } - -re ".*\[Ee\]rror.*$gdb_prompt $" { - fail "3.3b: delete three tracepoints" - } - -re "$gdb_prompt $" { - pass "3.3b: delete three tracepoints" - } - timeout { - fail "3.3b: delete three tracepoint (timeout)" - } -} - -send_gdb "info tracepoints\n" -gdb_expect { - -re "$trcpt1\[\t \]+y\[\t \]+0x.*in gdb_c_test.*$gdb_prompt $" { - fail "3.3c: verify delete three tracepoints (first one persists)" - } - -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" { - fail "3.3c: verify delete three tracepoints (second one persists)" - } - -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" { - fail "3.3c: verify delete three tracepoints (third one persists)" - } - -re "$gdb_prompt $" { - pass "3.3c: verify delete three tracepoints" - } - timeout { - fail "3.3c: verify delete three tracepoints (timeout)" - } -} - -# 3.4 delete invalid tracepoint number -gdb_test "delete tracepoint [expr $trcpt2 + $trcpt3]" \ - "No tracepoint number [expr $trcpt2 + $trcpt3]." \ - "3.4: delete invalid tracepoint number" - -# 3.5 delete tracepoint number zero -gdb_test "delete tracepoint 0" "bad tracepoint number at or near '0'" \ - "3.5: delete tracepoint number zero" - -# 3.6 help delete tracepoints -gdb_test "help delete tracepoints" \ - "Delete specified tracepoints.*" \ - "3.6: help delete tracepoints" diff --git a/gdb/testsuite/gdb.trace/gdb_c_test.c b/gdb/testsuite/gdb.trace/gdb_c_test.c deleted file mode 100644 index 03382c2..0000000 --- a/gdb/testsuite/gdb.trace/gdb_c_test.c +++ /dev/null @@ -1,3792 +0,0 @@ -/* - ****************************************************************************** - ****************************************************************************** - * - * COPYRIGHT (C) by EMC Corporation, 1997 All rights reserved. - * $Id$ - * DESCRIPTION: This module has been provided for the purpose of testing GDB. - * - * NOTES: - * - ****************************************************************************** - *****************************************************************************/ - -/*============================================================================= - * INCLUDE FILES - *===========================================================================*/ - - -#ifdef DO_IT_BY_THE_BOOK - - -#include "symtypes_defs.h" -#include "printp.h" - -#include "adbg_expression.h" -#include "common_hw_ds.h" -#include "common_hw_defs.h" -#include "evnttrac.h" -#include "sym_scratch_ds.h" -#include "symglob_ds.h" -#include "sym_protglob_ds.h" - -#include "ether.h" - -#include <ctype.h> - - -#else - -#include "adbg_dtc.h" - -#define YES 1 -#define NO 0 - -#define TRUE 1 -#define FALSE 0 - -#define ENABLED 1 -#define DISABLED 0 - -#define CONTROL_C 3 /* ASCII 'ETX' */ - - -/* - * Faked after ctype.h - */ - -#define isxdigit(X) (((X) >= '0' && (X) <= '9') || \ - ((X) >= 'A' && (X) <= 'F') || \ - ((X) >= 'a' && (X) <= 'f')) -/* - * Borrowed from string.h - */ - -extern unsigned int strlen ( const char * ); - -/* - * Extracted from symtypes.h: - */ - -typedef char BOOL; /* 8 Bits */ -typedef unsigned char UCHAR; /* 8 Bits */ -typedef unsigned short USHORT; /* 16 Bits */ -typedef unsigned long ULONG; /* 32 Bits */ - -/* - * for struct t_expr_tag and - * decl of build_and_add_expression - */ -#include "adbg_expression.h" -#define NULL 0 - -/* - * Extracted from printp.h: - */ - -extern void printp ( const char * fptr, ... ); -extern void sprintp ( const char * fptr, ... ); - -/* - * Extracted from ether.h: - */ - -extern long eth_to_gdb ( UCHAR *buf, long length ); - - -/* - * Derived from hwequs.s: - */ - -#define CS_CODE_START 0x100000 -#define CS_CODE_SIZE 0x200000 -#define LAST_CS_WORD (CS_CODE_START + CS_CODE_SIZE - 2) - -#define sh_genstat1 (*((volatile ULONG *) 0xFFFFFE54)) - -#define rs232_mode1 0 /* rs-232 mode 1 reg. */ -#define rs232_mode2 rs232_mode1 /* rs-232 mode 2 reg. */ -#define rs232_stat 4 /* rs-232 status reg. */ -#define rs232_clk rs232_stat /* rs-232 clock select reg. */ -#define rs232_cmd 8 /* rs-232 command reg */ -#define rs232_transmit 12 /* rs-232 transmit reg. */ -#define rs232_receive rs232_transmit /* rs-232 transmit reg. */ -#define rs232_aux 16 /* rs-232 aux control reg. */ -#define rs232_isr 20 /* rs-232 interrupt status reg. */ -#define rs232_imr rs232_isr /* rs-232 interrupt mask reg. */ -#define rs232_tc_high 24 /* rs-232 timer/counter high reg. */ -#define rs232_tc_low 28 /* rs-232 timer/counter low reg. */ - - -#endif - - -/*============================================================================ - * MODULE DEFINES - *===========================================================================*/ - -#define P_RST_LAN_UART_REG ((volatile UCHAR *) 0xFFFFFE45) -#define M_RST_LAN_UART 0x80 /* Bit 7 */ - -#define P_LAN0TR_REG P_RST_LAN_UART_REG -#define M_LAN0TR 0x20 /* Bit 5 */ - -#define M_SH_GENCON_LAN0TR 0x00200000 /* Bit 21 */ - -#define MAX_RS232_CHARS 512 - -#define LAN_Q_MOD(X) ((X) % MAX_RS232_CHARS) - -/*---------------------------------------* - * LAN UART Registers * - *---------------------------------------*/ - -#define LAN_UART_BASE ((ULONG) 0xfffffc22) - -/* Write-Read */ - -#define P_LAN_MR1 ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_mode1 ))) -#define P_LAN_MR2 ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_mode2 ))) - -/* Write-Only */ - -#define P_LAN_ACR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_aux ))) -#define P_LAN_CR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_cmd ))) -#define P_LAN_CSR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_clk ))) -#define P_LAN_CTLR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_tc_low ))) -#define P_LAN_CTUR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_tc_high ))) -#define P_LAN_IMR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_imr ))) - -/* Read-Only */ - -#define P_LAN_SR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_stat ))) -#define P_LAN_ISR ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_isr ))) -#define P_LAN_XMT ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_transmit))) -#define P_LAN_RCV ((volatile UCHAR *) (LAN_UART_BASE + ((ULONG) rs232_receive ))) - -/* - * Bit Values for Write-Read and Write-Only Registers - */ - -#define DEFAULT_LAN_MR1 ((UCHAR) 0x13) -#define DEFAULT_LAN_MR2 ((UCHAR) 0x07) -#define DEFAULT_LAN_CSR ((UCHAR) 0xcc) -#define DEFAULT_LAN_ACR ((UCHAR) 0x38) -#define DEFAULT_LAN_CTUR ((UCHAR) 0xff) -#define DEFAULT_LAN_CTLR ((UCHAR) 0xff) - -#define LAN_ACR_SELECT_BRG_0 DEFAULT_LAN_ACR -#define LAN_ACR_SELECT_BRG_1 (DEFAULT_LAN_ACR | 0x80) - -#define UART_CR_RESET_MR_PTR ((UCHAR) 0x10) /* Reset MR pointer (points to MR1). */ -#define UART_CR_RESET_RVCR ((UCHAR) 0x20) /* Reset receiver (disabled). */ -#define UART_CR_RESET_XMTR ((UCHAR) 0x30) /* Reset transmitter (disabled). */ -#define UART_CR_RESET_ERROR_STATUS ((UCHAR) 0x40) /* Reset error status. */ -#define UART_CR_RESET_BRK_CHG_INT ((UCHAR) 0x50) /* Reset break change interrupt. */ -#define UART_CR_START_CNTR_TIMER ((UCHAR) 0x80) /* Start counter/timer. */ -#define UART_CR_STOP_CNTR ((UCHAR) 0x90) /* Stop counter. */ - -#define UART_CR_DISABLE_XMTR ((UCHAR) 0x08) /* Disable transmitter. */ -#define UART_CR_ENABLE_XMTR ((UCHAR) 0x04) /* Enable transmitter. */ -#define UART_CR_DISABLE_RCVR ((UCHAR) 0x02) /* Disable receiver. */ -#define UART_CR_ENABLE_RCVR ((UCHAR) 0x01) /* Enable receiver. */ - -#define UART_CSR_BR_4800 ((UCHAR) 0x99) /* With either BRG Set selected (via ACR). */ -#define UART_CSR_BR_9600 ((UCHAR) 0xbb) /* With either BRG Set selected (via ACR). */ -#define UART_CSR_BR_19200 ((UCHAR) 0xcc) /* With BRG Set '1' selected (via ACR). */ -#define UART_CSR_BR_38400 ((UCHAR) 0xcc) /* With BRG Set '0' selected (via ACR). */ - -#define UART_IMR_RxRDY ((UCHAR) 0x04) /* Enable 'RxRDY' interrupt. */ -#define UART_IMR_TxEMT ((UCHAR) 0x02) /* Enable 'TxEMT' interrupt. */ -#define UART_IMR_TxRDY ((UCHAR) 0x01) /* Enable 'TxRDY' interrupt. */ - -/* - * Bit Masks for Read-Only Registers - */ - -#define M_UART_SR_RCVD_BRK 0x80 /* Bit 7 */ -#define M_UART_SR_FE 0x40 /* Bit 6 */ -#define M_UART_SR_PE 0x20 /* Bit 5 */ -#define M_UART_SR_OE 0x10 /* Bit 4 */ -#define M_UART_SR_TxEMT 0x08 /* Bit 3 */ -#define M_UART_SR_TxRDY 0x04 /* Bit 2 */ -#define M_UART_SR_FFULL 0x02 /* Bit 1 */ -#define M_UART_SR_RxRDY 0x01 /* Bit 0 */ - -#define M_UART_ISR_RxRDY 0x04 /* Bit 2 */ -#define M_UART_ISR_TxEMT 0x02 /* Bit 1 */ -#define M_UART_ISR_TxRDY 0x01 /* Bit 0 */ - -/*---------------------------------------* - * Support for 'Utility 83'. * - *---------------------------------------*/ - -#define LAN_UTIL_CODE 0x83 - -#define LAN_INIT ((ULONG) (('I' << 24) | ('N' << 16) | ('I' << 8) | 'T')) -#define LAN_BAUD ((ULONG) (('B' << 24) | ('A' << 16) | ('U' << 8) | 'D')) -#define LAN_INTR ((ULONG) (('I' << 24) | ('N' << 16) | ('T' << 8) | 'R')) -#define LAN_XMT ((ULONG) (('X' << 16) | ('M' << 8) | 'T')) -#define LAN_ECHO ((ULONG) (('E' << 24) | ('C' << 16) | ('H' << 8) | 'O')) -#define LAN_STAT ((ULONG) (('S' << 24) | ('T' << 16) | ('A' << 8) | 'T')) -#define LAN_IN ((ULONG) (('I' << 8) | 'N')) -#define LAN_OUT ((ULONG) (('O' << 16) | ('U' << 8) | 'T')) - -#define LAN_PUTC ((ULONG) (('P' << 24) | ('U' << 16) | ('T' << 8) | 'C')) -#define LAN_WPM ((ULONG) (('W' << 16) | ('P' << 8) | 'M')) - -#define STATUS(X) ( ( ( X ) == 0 ) ? "disabled" : "enabled" ) - -#define XMT_VIA_BP_ENABLED() ( *P_LAN0TR_REG & M_LAN0TR ? 1 : 0 ) - -#define TRAP_1_INST 0x4E41 - -/* - * Bit #13 of shared genstat 1 indicates - * which processor we are as follows. - * - * 0 => X (side A) - * 1 => Y (side B) - */ - -#define M_PROC_ID 0x00002000 - -#define IS_SIDE_A() ( ( (sh_genstat1) & M_PROC_ID ) == 0 ) -#define IS_SIDE_B() ( (sh_genstat1) & M_PROC_ID ) - - -#ifdef STANDALONE /* Compile this module stand-alone for debugging */ -#define LAN_PUT_CHAR(X) printf("%c", X) -#else -#define LAN_PUT_CHAR(X) while ( lan_put_char( X ) ) -#endif - - - - -#define VIA_RS232 0 -#define VIA_ETHERNET 1 - -#define MAX_IO_BUF_SIZE 400 - -#define MAX_BYTE_CODES 200 /* maximum length for bytecode string */ - - -static ULONG gdb_host_comm; - -static ULONG gdb_cat_ack; - -static char eth_outbuffer[ MAX_IO_BUF_SIZE + 1 ]; - - -#ifdef STANDALONE - -#define ACK_PKT() LAN_PUT_CHAR( '+' ) -#define NACK_PKT() LAN_PUT_CHAR( '-' ) - -#else - -#define ACK_PKT() { \ - if ( VIA_ETHERNET == gdb_host_comm ) \ - { \ - gdb_cat_ack = YES; \ - } \ - else \ - { \ - LAN_PUT_CHAR( '+' ); \ - } \ - } - - - -#define NACK_PKT() { \ - if ( VIA_ETHERNET == gdb_host_comm ) \ - { \ - eth_outbuffer[ 0 ] = '-'; \ - eth_to_gdb( (UCHAR *) eth_outbuffer, 1 ); \ - } \ - else \ - { \ - LAN_PUT_CHAR( '-' ); \ - } \ - } - -#endif - - - - -/*============================================================================ - * MODULE TYPEDEFS - *===========================================================================*/ - -typedef struct rs232_queue { - - long head_index; - - long tail_index; - - ULONG overflows; - - long gdb_packet_start; - long gdb_packet_end; - long gdb_packet_csum1; - long gdb_packet_csum2; - - UCHAR buf[ MAX_RS232_CHARS ]; - -} T_RS232_QUEUE; - - - - -/*============================================================================= - * EXTERNAL GLOBAL VARIABLES - *===========================================================================*/ - -extern volatile UCHAR sss_trace_flag; - - -/*============================================================================= - * STATIC MODULE DECLARATIONS - *===========================================================================*/ - -static T_RS232_QUEUE lan_input_queue, - lan_output_queue; - -static BOOL test_echo; - -#if 0 -/* The stub no longer seems to use this. */ -static BOOL write_access_enabled; -#endif - -static int baud_rate_idx; - -static ULONG tx_by_intr, - tx_by_poll; - -static UCHAR lan_shadow_imr; - - -/*============================================================================= - * EXTERNAL FUNCTION PROTOTYPES - *===========================================================================*/ - -extern long write_to_protected_mem( void *address, unsigned short value ); - - -/*============================================================================= - * MODULE GLOBAL FUNCTIONS PROTOTYPES - *===========================================================================*/ - -ULONG gdb_c_test( ULONG *parm ); - - -void lan_init( void ); - -void lan_isr( void ); - -long lan_get_char( void ); - -long lan_put_char( UCHAR c ); - -ULONG lan_util( ULONG *parm ); - - -/*============================================================================= - * MODULE LOCAL FUNCTION PROTOTYPES - *===========================================================================*/ - -static void lan_reset( void ); - -static void lan_configure( void ); - -static void lan_init_queue( T_RS232_QUEUE *p_queue ); - -static void lan_add_to_queue( long c, T_RS232_QUEUE *p_queue ); - -static UCHAR lan_next_queue_char( T_RS232_QUEUE *p_queue ); - -static void lan_util_menu( void ); - -static long get_gdb_input( long c, T_RS232_QUEUE *p_input_q ); - - -/*============================================================================= - * GDB STUB FUNCTION PROTOTYPES - *===========================================================================*/ - -void gdb_trap_1_handler( void ); -void gdb_trace_handler ( void ); - -void gdb_get_eth_input( unsigned char *buf, long length ); - -static void getpacket ( void ); -static void putpacket ( char * ); -static void discard_packet ( void ); - -#ifdef STANDALONE /* Compile this module stand-alone for debugging */ -#include <stdio.h> -#define printp printf /* easier than declaring a local varargs stub func. */ -#endif /* STANDALONE */ - - -/*============================================================================= - * MODULE BODY - *===========================================================================*/ - -/* ------------------- Things that belong in a header file --------------- */ -extern char *memset (char *, int, int); - - /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* - * * - * Global Module Functions * - * * - *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - - -static char gdb_char_test; -static short gdb_short_test; -static long gdb_long_test; -static char gdb_arr_test[25]; -static struct GDB_STRUCT_TEST -{ - char c; - short s; - long l; - int bfield : 11; /* collect bitfield */ - char arr[25]; - struct GDB_STRUCT_TEST *next; -} gdb_struct1_test, gdb_struct2_test, *gdb_structp_test, **gdb_structpp_test; - -static union GDB_UNION_TEST -{ - char c; - short s; - long l; - int bfield : 11; /* collect bitfield */ - char arr[4]; - union GDB_UNION_TEST *next; -} gdb_union1_test; - -void gdb_recursion_test (int, int, int, int, int, int, int); - -void gdb_recursion_test (int depth, - int q1, - int q2, - int q3, - int q4, - int q5, - int q6) -{ /* gdb_recursion_test line 0 */ - int q = q1; /* gdbtestline 1 */ - - q1 = q2; /* gdbtestline 2 */ - q2 = q3; /* gdbtestline 3 */ - q3 = q4; /* gdbtestline 4 */ - q4 = q5; /* gdbtestline 5 */ - q5 = q6; /* gdbtestline 6 */ - q6 = q; /* gdbtestline 7 */ - if (depth--) /* gdbtestline 8 */ - gdb_recursion_test (depth, q1, q2, q3, q4, q5, q6); /* gdbtestline 9 */ -} - - -ULONG gdb_c_test( ULONG *parm ) - -{ - char *p = "gdb_c_test"; - char *ridiculously_long_variable_name_with_equally_long_string_assignment; - register long local_reg = 7; - static unsigned long local_static, local_static_sizeof; - long local_long; - unsigned long *stack_ptr; - unsigned long end_of_stack; - - ridiculously_long_variable_name_with_equally_long_string_assignment = - "ridiculously long variable name with equally long string assignment"; - local_static = 9; - local_static_sizeof = sizeof (struct GDB_STRUCT_TEST); - local_long = local_reg + 1; - stack_ptr = (unsigned long *) &local_long; - end_of_stack = - (unsigned long) &stack_ptr + sizeof(stack_ptr) + sizeof(end_of_stack) - 1; - - printp ("\n$Id$\n"); - - printp( "%s: arguments = %X, %X, %X, %X, %X, %X\n", - p, parm[ 1 ], parm[ 2 ], parm[ 3 ], parm[ 4 ], parm[ 5 ], parm[ 6 ] ); - - gdb_char_test = gdb_struct1_test.c = (char) ((long) parm[1] & 0xff); - gdb_short_test = gdb_struct1_test.s = (short) ((long) parm[2] & 0xffff); - gdb_long_test = gdb_struct1_test.l = (long) ((long) parm[3] & 0xffffffff); - gdb_union1_test.l = (long) parm[4]; - gdb_arr_test[0] = gdb_struct1_test.arr[0] = (char) ((long) parm[1] & 0xff); - gdb_arr_test[1] = gdb_struct1_test.arr[1] = (char) ((long) parm[2] & 0xff); - gdb_arr_test[2] = gdb_struct1_test.arr[2] = (char) ((long) parm[3] & 0xff); - gdb_arr_test[3] = gdb_struct1_test.arr[3] = (char) ((long) parm[4] & 0xff); - gdb_arr_test[4] = gdb_struct1_test.arr[4] = (char) ((long) parm[5] & 0xff); - gdb_arr_test[5] = gdb_struct1_test.arr[5] = (char) ((long) parm[6] & 0xff); - gdb_struct1_test.bfield = 144; - gdb_struct1_test.next = &gdb_struct2_test; - gdb_structp_test = &gdb_struct1_test; - gdb_structpp_test = &gdb_structp_test; - - gdb_recursion_test (3, (long) parm[1], (long) parm[2], (long) parm[3], - (long) parm[4], (long) parm[5], (long) parm[6]); - - gdb_char_test = gdb_short_test = gdb_long_test = 0; - gdb_structp_test = (void *) 0; - gdb_structpp_test = (void *) 0; - memset ((char *) &gdb_struct1_test, 0, sizeof (gdb_struct1_test)); - memset ((char *) &gdb_struct2_test, 0, sizeof (gdb_struct2_test)); - local_static_sizeof = 0; - local_static = 0; - return ( (ULONG) 0 ); -} - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_init - * - * - * DESCRIPTION: - * - * - * RETURN VALUE: - * - * - * USED GLOBAL VARIABLES: - * - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * - * NOTES: - * - * - * - *---------------------------------------------------------------------------*/ - -void lan_init( void ) - -{ - - if ( IS_SIDE_A( ) ) - { - - lan_reset( ); - - lan_init_queue( &lan_input_queue ); - - lan_init_queue( &lan_output_queue ); - - lan_configure( ); - } - - return; -} -/* end of 'lan_init' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_isr - * - * - * DESCRIPTION: - * - * - * RETURN VALUE: None. - * - * - * USED GLOBAL VARIABLES: - * - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * - * NOTES: - * - * - *---------------------------------------------------------------------------*/ - -void lan_isr( void ) - -{ - UCHAR c; - - - lan_shadow_imr = 0; /* Disable all UART interrupts. */ - *P_LAN_IMR = lan_shadow_imr; - - - if ( *P_LAN_ISR & M_UART_ISR_RxRDY ) - { - - gdb_host_comm = VIA_RS232; - - c = *P_LAN_RCV; - - if ( test_echo ) - { - /* ????? */ - } - - if ( c == CONTROL_C ) - { - /* can't stop the target, but we can tell gdb to stop waiting... */ - discard_packet( ); - putpacket( "S03" ); /* send back SIGINT to the debugger */ - } - - else - { - lan_add_to_queue( (long) c, &lan_input_queue ); - get_gdb_input( (long) c, &lan_input_queue ); - } - - } - - if ( XMT_VIA_BP_ENABLED( ) ) - { - - c = 0; - - while ( (*P_LAN_ISR & M_UART_ISR_TxRDY) && (c = lan_next_queue_char( &lan_output_queue )) ) - { - *P_LAN_XMT = c; - ++tx_by_intr; - } - - if ( c ) - { - lan_shadow_imr |= UART_IMR_TxRDY; /* (Re-)Enable 'TxRDY' interrupt from UART. */ - } - - } - - - lan_shadow_imr |= UART_IMR_RxRDY; /* Re-Enable 'RxRDY' interrupt from UART. */ - *P_LAN_IMR = lan_shadow_imr; - - - - return; -} -/* end of 'lan_isr' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_get_char - * - * - * DESCRIPTION: Fetches a character from the UART. - * - * - * RETURN VALUE: 0 on success, -1 on failure. - * - * - * USED GLOBAL VARIABLES: - * - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * - * NOTES: - * - * - *---------------------------------------------------------------------------*/ - -long lan_get_char( void ) - -{ - long status = -2; /* AGD: nothing found in rcv buffer */ - - if ( *P_LAN_SR & M_UART_SR_RxRDY ) - { - char c = (char) *P_LAN_RCV; - - if ( test_echo ) - { - LAN_PUT_CHAR ( c ); - } - - if ( c == CONTROL_C ) - { - /* can't stop the target, but we can tell gdb to stop waiting... */ - discard_packet( ); - putpacket( "S03" ); /* send back SIGINT to the debugger */ - status = 0; /* success */ - } - - else - { - lan_add_to_queue( (long) c, &lan_input_queue ); - status = get_gdb_input( (long) c, &lan_input_queue ); - } - - } - - return( status ); -} -/* end of 'lan_get_char' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_put_char - * - * DESCRIPTION: Puts a character out via the UART. - * - * RETURN VALUE: 0 on success, -1 on failure. - * - * USED GLOBAL VARIABLES: none. - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * NOTES: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * !! !! - * !! If 'XMT_VIA_BP_ENABLED()' is FALSE then output is THROWN AWAY. !! - * !! This prevents anyone infinite-looping on this function. !! - * !! !! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * - *---------------------------------------------------------------------------*/ - -long lan_put_char( UCHAR c ) - -{ - long status = -1; - - if ( XMT_VIA_BP_ENABLED( ) ) - { - - if ( *P_LAN_SR & M_UART_SR_TxRDY ) - { - lan_add_to_queue( (long) c, &lan_output_queue ); - - c = lan_next_queue_char( &lan_output_queue ); - - *P_LAN_XMT = c; - ++tx_by_poll; - status = 0; - } -#if 0 - else - { - status = 0; - lan_shadow_imr |= UART_IMR_TxRDY; /* Enable 'TxRDY' interrupt from UART. */ - *P_LAN_IMR = lan_shadow_imr; - } -#endif - } - - else - { - status = 0; /* You lose: input character goes to the bit bucket. */ - } - - return( status ); -} -/* end of 'lan_put_char' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_util - * - * DESCRIPTION: - * - * RETURN VALUE: - * - * USED GLOBAL VARIABLES: - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * NOTES: - * - *---------------------------------------------------------------------------*/ - -ULONG lan_util( ULONG *parm ) - -{ - - - static const struct { - - ULONG rate_code; - UCHAR acr_setting; - UCHAR csr_setting; - - } baud_rate_setting [] = { - - { 0x38400, LAN_ACR_SELECT_BRG_0, UART_CSR_BR_38400 }, - { 0x19200, LAN_ACR_SELECT_BRG_1, UART_CSR_BR_19200 }, - { 0x9600, LAN_ACR_SELECT_BRG_0, UART_CSR_BR_9600 }, - { 0x4800, LAN_ACR_SELECT_BRG_0, UART_CSR_BR_4800 } - }; - - -#define BOGUS_P1 0xE1 -#define BOGUS_P2 0xE2 - - ULONG not_done_code; - - - ULONG opcode; - ULONG parm_1; - ULONG parm_2; - - int i; - UCHAR c; - - - not_done_code = 0; - - opcode = parm[ 1 ]; - parm_1 = parm[ 2 ]; - parm_2 = parm[ 3 ]; - - - switch ( opcode ) - { - - case LAN_INIT: - { - - lan_init( ); - printp( "\n\n Interface (Re)Initialized ...\n\n" ); - - break; - } - - - case LAN_BAUD: - { - - for ( i = 0; i < (int)(sizeof(baud_rate_setting) / sizeof(baud_rate_setting[0])); i ++ ) - { - if ( baud_rate_setting[i].rate_code == parm_1 ) - { - baud_rate_idx = i; - *P_LAN_ACR = baud_rate_setting[i].acr_setting; - *P_LAN_CSR = baud_rate_setting[i].csr_setting; - printp ( "Baud rate set to %X!\n", baud_rate_setting[i].rate_code ); - return( not_done_code ); - } - } - - printp( "\n\n *** SYNTAX Error - Invalid baudrate (P2)\n\n" ); - not_done_code = BOGUS_P2; - - break; - } - - - case LAN_INTR: - { - - switch ( parm_1 ) - { - - case 0x0D: /* Disable 'RxRDY' Interrupts */ - { - lan_shadow_imr &= ~UART_IMR_RxRDY; - *P_LAN_IMR = lan_shadow_imr; - printp( "\n\n Receive Ready Interrupts DISABLED ...\n\n" ); - break; - } - - case 0x0E: /* Enable 'RxRDY' Interrupts */ - { - lan_shadow_imr |= UART_IMR_RxRDY; - *P_LAN_IMR = lan_shadow_imr; - printp( "\n\n Receive Ready Interrupts ENABLED ...\n\n" ); - break; - } - - default: - { - printp( "\n\n *** SYNTAX Error - Invalid P2 (use D or E)\n\n" ); - not_done_code = BOGUS_P2; - } - } - - break; - } - - - case LAN_XMT: - { - - switch ( parm_1 ) - { - - case 0x0E: /* Enable Transmission-via-Backplane */ - { - if ( !(*P_LAN0TR_REG & M_LAN0TR) ) - { - *P_LAN0TR_REG |= M_LAN0TR; /* 0 -> 1 */ - } - - printp( "\n\n Transmit-via-Backplane ENABLED ...\n\n" ); - break; - } - - case 0x0D: /* Disable Transmission-via-Backplane */ - { - if ( *P_LAN0TR_REG & M_LAN0TR ) - { - *P_LAN0TR_REG &= ~M_LAN0TR; /* 1 -> 0 */ - } - - printp( "\n\n Transmit-via-Backplane DISABLED ...\n\n" ); - break; - } - - default: - { - printp( "\n\n *** SYNTAX Error - Invalid P2 (use D or E)\n\n" ); - not_done_code = BOGUS_P2; - lan_util_menu( ); - } - } - - break; - } - - - case LAN_STAT: - { - - printp( "\n -- Status --\n\n" ); - - printp( " Baud Rate: %X *\n", baud_rate_setting[ baud_rate_idx ].rate_code ); - printp( " Xmt-via-BP: %s *\n", STATUS( XMT_VIA_BP_ENABLED( ) ) ); - printp( " RxRdy Intr: %s *\n", STATUS( (lan_shadow_imr & M_UART_ISR_RxRDY) ) ); - /*** printp( " TxRdy Intr: %s\n", STATUS( (lan_shadow_imr & M_UART_ISR_TxRDY) ) ); ***/ - printp( " Echo: %s *\n\n", STATUS( test_echo ) ); - - printp( " IMR: %02X\n", (ULONG) lan_shadow_imr ); - printp( " ISR: %02X\n", (ULONG) *P_LAN_ISR ); - printp( " SR: %02X\n\n", (ULONG) *P_LAN_SR ); - - printp( " Input Overflows: %d\n\n", lan_input_queue.overflows ); - - printp( " Tx by Intr: %d\n", tx_by_intr ); - printp( " Tx by Poll: %d\n\n", tx_by_poll ); - - printp( " * Can be set or toggled via Utility %2X.\n\n", (ULONG) LAN_UTIL_CODE ); - - break; - } - - - case LAN_IN: - { - - switch ( parm_1 ) - { - - case 0x0C: /* Clear and Reset Queue */ - { - lan_init_queue( &lan_input_queue ); - printp( "\n\n Queue CLEARED/RESET ...\n\n" ); - break; - } - - case 0x0D: /* Display Queue */ - { - printp( "\n -- Input Queue --\n" ); - printp( "\n Head Index: %8X Tail Index: %8X\n\n ", - (ULONG) lan_input_queue.head_index, (ULONG) lan_input_queue.tail_index ); - - for ( i = 0; i < MAX_RS232_CHARS; ++i ) - { - printp( " %02X", (ULONG) lan_input_queue.buf[ i ] ); - - if ( 15 == (i % 16) ) - { - int j; - - printp ( " " ); - for ( j = i - 15; j <= i; j++ ) - { - if ( lan_input_queue.buf[ j ] >= ' ' && - lan_input_queue.buf[ j ] < 127 ) - printp ( "%c", lan_input_queue.buf[ j ] ); - else - printp ( "." ); - } - printp( "\n " ); - } - - else if ( 7 == (i % 8) ) - { - printp( " " ); - } - - } - - printp( "\n" ); - - break; - } - - case 0x0F: /* Fetch next character in Queue */ - { - c = lan_next_queue_char( &lan_input_queue ); - - if ( c ) - { - printp( "\n\n Next Character: " ); - if ( 0x21 <= c && c <= 0x7F ) - { - printp( "%c\n\n", (ULONG) c ); - } - - else if ( 0x20 == ((UCHAR) c) ) - { - printp( "<space>\n\n" ); - } - - else - { - printp( "%02X\n\n", (ULONG) c ); - } - } - - else - { - printp( "\n\n Input Queue EMPTY ...\n\n" ); - } - - break; - } - - default: - { - printp( "\n\n *** SYNTAX Error - Invalid P2 ...\n\n" ); - not_done_code = BOGUS_P2; - break; - } - } - - break; - } - - - case LAN_OUT: - { - - switch ( parm_1 ) - { - - case 0x0C: /* Clear and Reset Queue */ - { - lan_init_queue( &lan_output_queue ); - printp( "\n\n Queue CLEARED/RESET ...\n\n" ); - break; - } - - case 0x0D: /* Display Queue */ - { - printp( "\n -- Output Queue --\n" ); - printp( "\n Head Index: %8X Tail Index: %8X\n\n ", - (ULONG) lan_output_queue.head_index, (ULONG) lan_output_queue.tail_index ); - - for ( i = 0; i < MAX_RS232_CHARS; ++i ) - { - printp( " %02X", (ULONG) lan_output_queue.buf[ i ] ); - - if ( 15 == (i % 16) ) - { - int j; - - printp ( " " ); - for ( j = i - 15; j <= i; j++ ) - { - if ( lan_output_queue.buf[ j ] >= ' ' && - lan_output_queue.buf[ j ] < 127 ) - printp ( "%c", lan_output_queue.buf[ j ] ); - else - printp ( "." ); - } - printp( "\n " ); - } - - else if ( 7 == (i % 8) ) - { - printp( " " ); - } - - } - - printp( "\n" ); - - break; - } - - case 0x0F: /* Fetch next character in Queue */ - { - c = lan_next_queue_char( &lan_output_queue ); - - if ( c ) - { - printp( "\n\n Next Character: " ); - if ( 0x21 <= c && c <= 0x7F ) - { - printp( "%c\n\n", (ULONG) c ); - } - - else if ( 0x20 == c ) - { - printp( "<space>\n\n" ); - } - - else - { - printp( "%02X\n\n", (ULONG) c ); - } - } - - else - { - printp( "\n\n Input Queue EMPTY ...\n\n" ); - } - - break; - } - - default: - { - printp( "\n\n *** SYNTAX Error - Invalid P2 ...\n\n" ); - not_done_code = BOGUS_P2; - break; - } - } - - break; - } - - - case LAN_ECHO: - { - - switch ( parm_1 ) - { - - case 0x0E: - { - test_echo = ENABLED; - printp( "\n\n Test echo ENABLED ...\n\n" ); - break; - } - - case 0x0D: - { - test_echo = DISABLED; - printp( "\n\n Test echo DISABLED ...\n\n" ); - break; - } - - default: - { - printp( "\n\n *** SYNTAX Error - Invalid P2 ...\n\n" ); - not_done_code = BOGUS_P2; - break; - } - } - - break; - } - - - case LAN_PUTC: - { - - if ( 0x20 < parm_1 && parm_1 < 0x7F ) - { - if ( lan_put_char( (UCHAR) parm_1 ) ) - { - printp( "\n\n *** 'lan_put_char' Error ...\n" ); - } - - else - { - printp( "\n\n O.K. ...\n" ); - } - - } - - else - { - printp( "\n\n *** Error - character must be in the 0x21-0x7E range ...\n" ); - not_done_code = BOGUS_P2; - } - - break; - } - -/*** - case LAN_WPM: - { - - if ( write_to_protected_mem( (void *) parm_1, (unsigned short) parm_2 ) ) - { - printp( "\n Write to protected memory FAILED ...\n" ); - } - - break; - } -***/ - - case 0: /* no argument -- print menu */ - { - lan_util_menu( ); - break; - } - - - default: - { - parm_2 = 0; /* to supress compiler warning with 'LAN_WPM' case disabled */ - - printp( "\n\n *** SYNTAX Error - Invalid P1 ...\n\n" ); - not_done_code = BOGUS_P1; - break; - } - - - } /* End of 'switch ( opcode )'. */ - - -return( not_done_code ); -} -/* end of 'lan_util' - *===========================================================================*/ - - - /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* - * * - * Local Module Functions * - * * - *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_reset - * - * DESCRIPTION: Resets the LAN UART by strobing the 'RST_LAN_UART' bit in the - * Shared Control 1 area. - * - * 1 _| ______ - * | | | - * Bit | | | - * | | | - * 0 _|______| |______ - * |---------------------> t - * - * RETURN VALUE: None. - * - * USED GLOBAL VARIABLES: - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * NOTES: H/W configuration requires that a byte in the shared - * control 1 area must be read before being written. - * - *---------------------------------------------------------------------------*/ - -static void lan_reset( void ) - -{ - - while ( *P_RST_LAN_UART_REG & M_RST_LAN_UART ) - { - *P_RST_LAN_UART_REG &= ~M_RST_LAN_UART; /* 0 */ - } - - while ( !(*P_RST_LAN_UART_REG & M_RST_LAN_UART) ) - { - *P_RST_LAN_UART_REG |= M_RST_LAN_UART; /* 1 */ - } - - while ( *P_RST_LAN_UART_REG & M_RST_LAN_UART ) - { - *P_RST_LAN_UART_REG &= ~M_RST_LAN_UART; /* 0 */ - } - -} -/* end of 'lan_reset' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_configure - * - * - * DESCRIPTION: - * - * - * RETURN VALUE: - * - * - * USED GLOBAL VARIABLES: - * - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * - * NOTES: - * - * - * - *---------------------------------------------------------------------------*/ - -static void lan_configure( void ) - -{ - - *P_LAN_CR = UART_CR_RESET_MR_PTR; /* Points to MR1. */ - *P_LAN_CR = UART_CR_RESET_RVCR; /* Receiver disabled. */ - *P_LAN_CR = UART_CR_RESET_XMTR; /* Transmitter disabled. */ - *P_LAN_CR = UART_CR_RESET_ERROR_STATUS; - *P_LAN_CR = UART_CR_RESET_BRK_CHG_INT; - - *P_LAN_MR1 = DEFAULT_LAN_MR1; - *P_LAN_MR2 = DEFAULT_LAN_MR2; - - *P_LAN_ACR = DEFAULT_LAN_ACR; - - *P_LAN_CSR = UART_CSR_BR_9600; - baud_rate_idx = 2; - - *P_LAN_CTUR = DEFAULT_LAN_CTUR; - *P_LAN_CTLR = DEFAULT_LAN_CTLR; - - *P_LAN_CR = (UART_CR_START_CNTR_TIMER | UART_CR_ENABLE_XMTR | UART_CR_ENABLE_RCVR); - - lan_shadow_imr = UART_IMR_RxRDY; /* Enable only 'RxRDY' interrupt from UART. */ - *P_LAN_IMR = lan_shadow_imr; - - tx_by_intr = 0; - tx_by_poll = 0; - - return; -} -/* end of 'lan_configure' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_init_queue - * - * DESCRIPTION: - * - * RETURN VALUE: None. - * - * USED GLOBAL VARIABLES: - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * NOTES: - * - *---------------------------------------------------------------------------*/ - -static void lan_init_queue( T_RS232_QUEUE *p_queue ) - -{ - long i; - - /* - * We set "head" equal to "tail" implying the queue is empty, - * BUT the "head" and "tail" should each point to valid queue - * positions. - */ - - p_queue->head_index = 0; - p_queue->tail_index = 0; - - p_queue->overflows = 0; - - p_queue->gdb_packet_start = -1; - p_queue->gdb_packet_end = -1; - - p_queue->gdb_packet_csum1 = -1; - p_queue->gdb_packet_csum2 = -1; - - for ( i = 0; i < MAX_RS232_CHARS; ++i ) - { - p_queue->buf[ i ] = 0; - } - - return; -} -/* end of 'lan_init_queue' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_add_to_queue - * - * - * DESCRIPTION: Adds the specified character to the tail of the - * specified queue. Observes "oldest thrown on floor" - * rule (i.e. the queue is allowed to "wrap" and the - * input character is unconditionally placed at the - * tail of the queue. - * - * - * RETURN VALUE: None. - * - * - * USED GLOBAL VARIABLES: - * - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * - * NOTES: - * - * - *---------------------------------------------------------------------------*/ - -static void lan_add_to_queue( long c, T_RS232_QUEUE *p_queue ) - -{ - - if ( p_queue ) /* Sanity check. */ - { - - if ( c & 0x000000FF ) /* We don't allow NULL characters to be added to a queue. */ - { - /* Insert the new character at the tail of the queue. */ - - p_queue->buf[ p_queue->tail_index ] = (UCHAR) (c & 0x000000FF); - - /* Increment the tail index. */ - - if ( MAX_RS232_CHARS <= ++(p_queue->tail_index) ) - { - p_queue->tail_index = 0; - } - - /* Check for wrapping (i.e. overflow). */ - - if ( p_queue->head_index == p_queue->tail_index ) - { - /* If the tail has caught up to the head record the overflow . . . */ - - ++(p_queue->overflows); - - /* . . . then increment the head index. */ - - if ( MAX_RS232_CHARS <= ++(p_queue->head_index) ) - { - p_queue->head_index = 0; - } - - } - - } /* End of 'if ( c & 0x000000FF )'. */ - - } /* End of 'if ( p_queue )'. */ - - - return; -} -/* end of 'lan_add_to_queue' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_next_queue_char - * - * DESCRIPTION: - * - * RETURN VALUE: - * - * USED GLOBAL VARIABLES: - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * NOTES: - * - *---------------------------------------------------------------------------*/ - -static UCHAR lan_next_queue_char( T_RS232_QUEUE *p_queue ) - -{ - UCHAR c; - - - c = 0; - - if ( p_queue ) - { - - if ( p_queue->head_index != p_queue->tail_index ) - { - /* Return the 'oldest' character in the queue. */ - - c = p_queue->buf[ p_queue->head_index ]; - - /* Increment the head index. */ - - if ( MAX_RS232_CHARS <= ++(p_queue->head_index) ) - { - p_queue->head_index = 0; - } - - } - - } /* End of 'if ( p_queue )'. */ - - - return( c ); -} - -/* end of 'lan_next_queue_char' - *===========================================================================*/ - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: lan_util_menu - * - * DESCRIPTION: Prints out a brief help on the LAN UART control utility. - * - * RETURN VALUE: None. - * - * USED GLOBAL VARIABLES: None. - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: None. - * - * NOTES: None. - * - *---------------------------------------------------------------------------*/ - -static void lan_util_menu( void ) - -{ - - /* - * Multiply calling printp() below is made due to the limitations - * of printp(), incapable of handling long formatting constants: - */ - - printp( "\n -- Options --\n\n" ); - - printp( " %2X,'INIT' ............... Reset & (Re)INITIALIZE Interface.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'BAUD',<rate> ........ Set BAUD Rate.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'INTR',<mode> ........ Toggle 'RxRDY' Interrupts.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'XMT',<mode> ......... Toggle TRANSMIT-via-backplane.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'STAT' ............... Display STATUS.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'ECHO',<mode> ........ Enable/Disable Test ECHO.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'IN',<action> ........ Access INPUT Queue.\n", (ULONG) LAN_UTIL_CODE ); - printp( " %2X,'OUT',<action> ....... Access OUTPUT Queue.\n\n", (ULONG) LAN_UTIL_CODE ); - - printp( " %2X,'PUTC',<char> ........ Output a Character (i.e. <char>).\n\n", (ULONG) LAN_UTIL_CODE ); - -/*** - printp( " %2X,'WPM',address,word ... Write Protected Memory Test.\n\n", (ULONG) LAN_UTIL_CODE ); -***/ - - printp( " <rate>: 4800 <mode>: E - enable <action>: C - clear/reset\n" ); - printp( " 9600 D - disable D - display\n" ); - printp( " 19200 F - fetch next char\n" ); - printp( " 38400\n" ); -} -/* end of 'lan_util_menu' - *===========================================================================*/ - - -/* Thu Feb 5 17:14:41 EST 1998 CYGNUS...CYGNUS...CYGNUS...CYGNUS...CYGNUS...CYGNUS...CYGNUS...CYGNUS */ - - -static long get_gdb_input( long c, T_RS232_QUEUE * p_input_q ) - -{ - - /* Now to detect when we've got a gdb packet... */ - - if ( '$' == c ) { /* char marks beginning of a packet */ - - if ( -1 != p_input_q->gdb_packet_start || - -1 != p_input_q->gdb_packet_end || - -1 != p_input_q->gdb_packet_csum1 || - -1 != p_input_q->gdb_packet_csum2 ) { /* PROTOCOL ERROR */ - - /* NEW: Actually, this probably means that we muffed a packet, - and GDB has already resent it. The thing to do now is to - throw away the one we WERE working on, but immediately start - accepting the new one. Don't NAK, or GDB will have to try - and send it yet a third time! */ - - /*NACK_PKT( );*/ /*<ETHERNET>*/ - discard_packet( ); /* throw away old packet */ - lan_add_to_queue ('$', p_input_q); /* put the new "$" back in */ - return 0; - } else { /* match new "$" */ - p_input_q->gdb_packet_start = p_input_q->tail_index; - p_input_q->gdb_packet_end = - p_input_q->gdb_packet_csum1 = - p_input_q->gdb_packet_csum2 = -1; - } - } else if ( '#' == c ) { /* # marks end of packet (except for checksum) */ - - if ( -1 == p_input_q->gdb_packet_start || - -1 != p_input_q->gdb_packet_end || - -1 != p_input_q->gdb_packet_csum1 || - -1 != p_input_q->gdb_packet_csum2 ) { /* PROTOCOL ERROR */ - - /* Garbled packet. Discard, but do not NAK. */ - - /*NACK_PKT( );*/ /*<ETHERNET>*/ - discard_packet( ); - return -1; - } - p_input_q->gdb_packet_end = p_input_q->tail_index; - p_input_q->gdb_packet_csum1 = p_input_q->gdb_packet_csum2 = -1; - - } else if ( -1 != p_input_q->gdb_packet_start && - -1 != p_input_q->gdb_packet_end) { - - if ( isxdigit( c ) ) { /* char is one of two checksum digits for packet */ - - if ( -1 == p_input_q->gdb_packet_csum1 && - LAN_Q_MOD( p_input_q->gdb_packet_end + 1 ) == - p_input_q->tail_index ) { - - /* first checksum digit */ - - p_input_q->gdb_packet_csum1 = p_input_q->tail_index; - p_input_q->gdb_packet_csum2 = -1; - - } else if ( -1 == p_input_q->gdb_packet_csum2 && - LAN_Q_MOD( p_input_q->gdb_packet_end + 2 ) == - p_input_q->tail_index ) { - - /* second checksum digit: packet is complete! */ - - p_input_q->gdb_packet_csum2 = p_input_q->tail_index; - getpacket(); /* got a packet -- extract it */ - - } else { /* probably can't happen (um... three hex digits?) */ - - /* PROTOCOL ERROR */ - /* Not sure how this can happen, but ... - discard it, but do not NAK it. */ - /*NACK_PKT( );*/ /*<ETHERNET>*/ - discard_packet( ); - return -1; - } - - } else { /* '#' followed by non-hex char */ - - /* PROTOCOL ERROR */ - /* Bad packet -- discard but do not NAK */ - /*NACK_PKT( );*/ /*<ETHERNET>*/ - discard_packet( ); - return -1; - } - } - - return 0; -} - - - - -#ifdef STANDALONE - -/* stand-alone stand-alone stand-alone stand-alone stand-alone stand-alone - stand-alone stand-alone - stand-alone Enable stand-alone build, for ease of debugging stand-alone - stand-alone stand-alone - stand-alone stand-alone stand-alone stand-alone stand-alone stand-alone */ - -long write_to_protected_mem (addr, word) - void *addr; - unsigned short word; -{ - return 0; -} - - -char dummy_memory[0x4000]; - -int main ( void ) -{ - long c; - - lan_init_queue( &lan_input_queue ); - printf( "Stand-alone EMC 'stub', pid = %d\n", getpid( ) ); - printf( "Start of simulated 'memory': 0x%08x\n", &dummy_memory); - while ( (c = getc( stdin ) ) != EOF ) - { - if ( c == '\\' ) /* escape char */ - break; - - lan_add_to_queue( c, &lan_input_queue ); - get_gdb_input (c, &lan_input_queue); - fflush( stdout ); - } - - printf( "Goodbye!\n" ); - exit( 0 ); -} - -#define SRAM_START ((void *) (&dummy_memory[0] + 0x00000000)) -#define SRAM_END ((void *) (&dummy_memory[0] + 0x00000400)) - -#define RO_AREA_START ((void *) (&dummy_memory[0] + 0x00000100)) -#define RO_AREA_END ((void *) (&dummy_memory[0] + 0x00000300)) - -#define NVD_START ((void *) (&dummy_memory[0] + 0x00003000)) -#define NVD_END ((void *) (&dummy_memory[0] + 0x00003100)) - -#else /* normal stub (not stand-alone) */ - -#define SRAM_START ((void *) 0x00000000) -#define SRAM_END ((void *) 0x00400000) - -#define RO_AREA_START ((void *) 0x00100000) -#define RO_AREA_END ((void *) 0x00300000) - -#define NVD_START ((void *) 0x03000000) -#define NVD_END ((void *) 0x03100000) - -#endif /* STANDALONE */ - - - - -/* gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb - gdb gdb - gdb Here begins the gdb stub section. gdb - gdb The following functions were added by Cygnus, gdb - gdb to make this thing act like a gdb stub. gdb - gdb gdb - gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb gdb */ - - -/* ------------------- global defines and data decl's -------------------- */ - -#define hexchars "0123456789abcdef" - -/* there are 180 bytes of registers on a 68020 w/68881 */ -/* many of the fpa registers are 12 byte (96 bit) registers */ -#define NUMREGBYTES 180 -#define NUMREGS 29 -#define REGISTER_BYTE(regno) regno - -enum regnames { D0, D1, D2, D3, D4, D5, D6, D7, - A0, A1, A2, A3, A4, A5, A6, A7, - PS, PC, - FP0, FP1, - FP2, FP3, - FP4, FP5, - FP6, FP7, - FPCONTROL, FPSTATUS, FPIADDR - }; - -unsigned long registers[NUMREGBYTES/4]; - -static long remote_debug; - -#define BUFMAX MAX_IO_BUF_SIZE -static char inbuffer[BUFMAX], outbuffer[BUFMAX]; -static char spare_buffer[BUFMAX]; - - -struct stub_trace_frame -{ - int valid; - unsigned long frame_id; - unsigned long tdp_id; - FRAME_DEF *frame_data; - COLLECTION_FORMAT_DEF *format; - unsigned long traceregs[NUMREGBYTES/4]; - unsigned char *stack_data; - unsigned char *memrange_data; -} curframe; - -/* ------------------- function prototypes -------------------- */ - -void handle_request ( char * ); - -/* ------------------- Implementation -------------------- */ - -static void -discard_packet( void ) -{ - lan_input_queue.head_index = lan_input_queue.tail_index; - - lan_input_queue.gdb_packet_start = - lan_input_queue.gdb_packet_end = - lan_input_queue.gdb_packet_csum1 = - lan_input_queue.gdb_packet_csum2 = -1; -} - -/* Utility function: convert an ASCII isxdigit to a hex nybble */ - -static long -hex( char ch ) -{ - if ( (ch >= 'A') && (ch <= 'F') ) - return ch - 'A' + 10; - if ( (ch >= 'a') && (ch <= 'f') ) - return ch - 'a' + 10; - if ( (ch >= '0') && (ch <= '9') ) - return ch - '0'; - return -1; -} - -static void -getpacket( void ) -{ - unsigned char our_checksum, their_checksum; - char *copy = inbuffer; - unsigned char c; - - our_checksum = 0; - - /* first find the '$' */ - while ((c = lan_next_queue_char ( &lan_input_queue )) != '$') - if (c == 0) /* ??? Protocol error? (paranoia) */ - { - /* PROTOCOL ERROR (missing '$') */ - /*NACK_PKT( );*/ /*<ETHERNET>*/ - return; - } - - /* Now copy the message (up to the '#') */ - for (c = lan_next_queue_char ( &lan_input_queue ); /* skip the '$' */ - c != 0 && c != '#'; /* stop at the '#' */ - c = lan_next_queue_char ( &lan_input_queue )) - { - *copy++ = c; - our_checksum += c; - } - *copy++ = '\0'; /* terminate the copy */ - - if (c == 0) /* ??? Protocol error? (paranoia) */ - { - /* PROTOCOL ERROR (missing '#') */ - /*NACK_PKT( );*/ /*<ETHERNET>*/ - return; - } - their_checksum = hex( lan_next_queue_char ( &lan_input_queue ) ) << 4; - their_checksum += hex( lan_next_queue_char ( &lan_input_queue ) ); - - /* Now reset the queue packet-recognition bits */ - discard_packet( ); - - if ( remote_debug || - our_checksum == their_checksum ) - { - ACK_PKT( ); /* good packet */ - /* Parse and process the packet */ - handle_request( inbuffer ); - } - else - /* PROTOCOL ERROR (bad check sum) */ - NACK_PKT( ); -} - -/* EMC will provide a better implementation - (perhaps just of LAN_PUT_CHAR) that does not block. - For now, this works. */ - - -static void -putpacket( char *str ) -{ - unsigned char checksum; - - /* '$'<packet>'#'<checksum> */ - - if ( VIA_ETHERNET == gdb_host_comm ) - { - char *p_out; - long length; - - p_out = eth_outbuffer; - length = 0; - - - if ( YES == gdb_cat_ack ) - { - *p_out++ = '+'; - ++length; - } - - gdb_cat_ack = NO; - - - *p_out++ = '$'; - ++length; - - checksum = 0; - - while ( *str ) - { - *p_out++ = *str; - ++length; - checksum += *str++; - } - - *p_out++ = '#'; - *p_out++ = hexchars[checksum >> 4]; - *p_out = hexchars[checksum % 16]; - length += 3; - - eth_to_gdb( (UCHAR *) eth_outbuffer, length ); - } - - else - { - - /* via RS-232 */ - do { - LAN_PUT_CHAR( '$' ); - checksum = 0; - - while ( *str ) - { - LAN_PUT_CHAR( *str ); - checksum += *str++; - } - - LAN_PUT_CHAR( '#' ); - LAN_PUT_CHAR( hexchars[checksum >> 4] ); - LAN_PUT_CHAR( hexchars[checksum % 16] ); - } while ( 0 /* get_debug_char( ) != '+' */ ); - /* XXX FIXME: not waiting for the ack. */ - - } - -} - - -/*----------------------------------------------------------------------------- - * - * FUNCTION NAME: gdb_get_eth_input - * - * - * DESCRIPTION: - * - * - * RETURN VALUE: None. - * - * - * USED GLOBAL VARIABLES: - * - * - * AFFECTED GLOBAL VARIABLES/SIDE EFFECTS: - * - * - * NOTES: - * - * - *---------------------------------------------------------------------------*/ - -void gdb_get_eth_input( unsigned char *buf, long length ) - -{ - - gdb_host_comm = VIA_ETHERNET; - - for ( ; 0 < length; ++buf, --length) - { - - if ( *buf == CONTROL_C ) - { - /* can't stop the target, but we can tell gdb to stop waiting... */ - discard_packet( ); - putpacket( "S03" ); /* send back SIGINT to the debugger */ - } - - else - { - lan_add_to_queue( (long) *buf, &lan_input_queue ); - get_gdb_input( (long) *buf, &lan_input_queue ); - } - - } - - - return; -} -/* end of 'gdb_get_eth_input' - *===========================================================================*/ - - - - -/* STDOUT STDOUT STDOUT STDOUT STDOUT STDOUT STDOUT STDOUT STDOUT STDOUT - Stuff pertaining to simulating stdout by sending chars to gdb to be echoed. - - Dear reader: - This code is based on the premise that if GDB receives a packet - from the stub that begins with the character CAPITAL-OH, GDB will - echo the rest of the packet to GDB's console / stdout. This gives - the stub a way to send a message directly to the user. In practice, - (as currently implemented), GDB will only accept such a packet when - it believes the target to be running (ie. when you say STEP or - CONTINUE); at other times it does not expect it. This will probably - change as a side effect of the "asynchronous" behavior. - - Functions: gdb_putchar(char ch) - gdb_write(char *str, int len) - gdb_puts(char *str) - gdb_error(char *format, char *parm) - */ - -#if 0 /* avoid compiler warning while this is not used */ - -/* Function: gdb_putchar(int) - Make gdb write a char to stdout. - Returns: the char */ - -static int -gdb_putchar( long ch ) -{ - char buf[4]; - - buf[0] = 'O'; - buf[1] = hexchars[ch >> 4]; - buf[2] = hexchars[ch & 0x0F]; - buf[3] = 0; - putpacket( buf ); - return ch; -} -#endif - -/* Function: gdb_write(char *, int) - Make gdb write n bytes to stdout (not assumed to be null-terminated). - Returns: number of bytes written */ - -static int -gdb_write( char *data, long len ) -{ - char *buf, *cpy; - long i; - - buf = outbuffer; - buf[0] = 'O'; - i = 0; - while ( i < len ) - { - for ( cpy = buf+1; - i < len && cpy < buf + BUFMAX - 3; - i++ ) - { - *cpy++ = hexchars[data[i] >> 4]; - *cpy++ = hexchars[data[i] & 0x0F]; - } - *cpy = 0; - putpacket( buf ); - } - return len; -} - -/* Function: gdb_puts(char *) - Make gdb write a null-terminated string to stdout. - Returns: the length of the string */ - -static int -gdb_puts( char *str ) -{ - return gdb_write( str, strlen( str ) ); -} - -/* Function: gdb_error(char *, char *) - Send an error message to gdb's stdout. - First string may have 1 (one) optional "%s" in it, which - will cause the optional second string to be inserted. */ - -#if 0 -static void -gdb_error( char *format, char *parm ) -{ - static char buf[400]; - char *cpy; - long len; - - if ( remote_debug ) - { - if ( format && *format ) - len = strlen( format ); - else - return; /* empty input */ - - if ( parm && *parm ) - len += strlen( parm ); - - for ( cpy = buf; *format; ) - { - if ( format[0] == '%' && format[1] == 's' ) /* include 2nd string */ - { - format += 2; /* advance two chars instead of just one */ - while ( parm && *parm ) - *cpy++ = *parm++; - } - else - *cpy++ = *format++; - } - *cpy = '\0'; - gdb_puts( buf ); - } -} -#endif - -static void gdb_note (char *, int); -static int error_ret (int, char *, int); - -static unsigned long -elinum_to_index (unsigned long elinum) -{ - if ((elinum & 0xf0) == 0xd0) - return (elinum & 0x0f); - else if ((elinum & 0xf0) == 0xa0) - return (elinum & 0x0f) + 8; - else - return -1; -} - -static long -index_to_elinum (unsigned long index) -{ - if (index <= 7) - return index + 0xd0; - else if (index <= 15) - return (index - 8) + 0xa0; - else - return -1; -} - - -/* - READMEM READMEM READMEM READMEM READMEM READMEM READMEM READMEM READMEM - - The following code pertains to reading memory from the target. - Some sort of exception handling should be added to make it safe. - - READMEM READMEM READMEM READMEM READMEM READMEM READMEM READMEM READMEM - - Safe Memory Access: - - All reads and writes into the application's memory will pass thru - get_uchar() or set_uchar(), which check whether accessing their - argument is legal before actual access (thus avoiding a bus error). - - */ - -enum { SUCCESS = 0, FAIL = -1 }; - -#if 0 -static long get_uchar ( const unsigned char * ); -#endif -static long set_uchar ( unsigned char *, unsigned char ); -static long read_access_violation ( const void * ); -static long write_access_violation ( const void * ); -static long read_access_range(const void *, long); -static DTC_RESPONSE find_memory(unsigned char *,long,unsigned char **,long *); - -static int -dtc_error_ret (int ret, char *src, DTC_RESPONSE code) -{ - if (src) - sprintp (spare_buffer, - "'%s' returned DTC error '%s'.\n", src, get_err_text (code)); - else - sprintp (spare_buffer, "DTC error '%s'.\n", get_err_text (code)); - - gdb_puts (spare_buffer); - return ret; -} - - -#if 0 -/* I think this function is unnecessary since the introduction of - adbg_find_memory_addr_in_frame. */ - -/* Return the number of expressions in the format associated with a - given trace frame. */ -static int -count_frame_exprs (FRAME_DEF *frame) -{ - CFD *format; - T_EXPR *expr; - int num_exprs; - - /* Get the format from the frame. */ - get_frame_format_pointer (frame, &format); - - /* Walk the linked list of expressions, and count the number of - expressions we find there. */ - num_exprs = 0; - for (expr = format->p_cfd_expr; expr; expr = expr->next) - num_exprs++; - - return num_exprs; -} -#endif - -#if 0 -/* Function: get_frame_addr - * - * Description: If the input memory address was collected in the - * current trace frame, then lookup and return the address - * from within the trace buffer from which the collected byte - * may be retrieved. Else return -1. */ - -unsigned char * -get_frame_addr ( const unsigned char *addr ) -{ - unsigned char *base, *regs, *stack, *mem; - CFD *dummy; - DTC_RESPONSE ret; - - /* first, see if addr is on the saved piece of stack for curframe */ - if (curframe.format->stack_size > 0 && - (base = (unsigned char *) curframe.traceregs[A7]) <= addr && - addr < base + curframe.format->stack_size) - { - gdb_puts("STUB: get_frame_addr: call get_addr_to_frame_regs_stack_mem\n"); - if ((ret = get_addr_to_frame_regs_stack_mem (curframe.frame_data, - &dummy, - (void *) ®s, - (void *) &stack, - (void *) &mem)) - != OK_TARGET_RESPONSE) - return (void *) dtc_error_ret (-1, - "get_addr_to_frame_regs_stack_mem", - ret); - else - return stack + (addr - base); - } - - /* Next, try to find addr in the current frame's expression- - collected memory blocks. I'm sure this is at least quadradic in - time. */ - { - int num_exprs = count_frame_exprs (curframe.frame_data); - int expr, block; - - /* Try each expression in turn. */ - for (expr = 0; expr < num_exprs; expr++) - { - for (block = 0; ; block++) - { - T_EXPR_DATA *data; - if (adbg_get_expr_data (curframe.frame_data, - 'x', expr, block, - &data) - != OK_TARGET_RESPONSE) - break; - else if ((unsigned char *) data->address <= addr - && addr < ((unsigned char *) data->address + data->size)) - { - /* We have found the right block; is it valid data? - Upper-case stamps mean bad data. */ - if ('A' <= data->stamp && data->stamp <= 'Z') - { - gdb_puts("STUB: get_frame_addr: adbg_get_expr_data INVALID\n"); - return (unsigned char *) -1; - } - else - { - if (remote_debug > 1) - { - sprintp(spare_buffer, - "STUB: get_frame_addr: got it [%x,%x)\n", - data->address, data->address + data->size); - gdb_puts(spare_buffer); - } - - return (((unsigned char *) &data->data) - + (addr - (unsigned char *) data->address)); - } - } - } - } - } - - /* not found, return error */ - return (unsigned char *) -1; -} - -/*============================================================*/ - -static long get_uchar ( const unsigned char * addr ) -{ - unsigned char *frame_addr; - - if ( read_access_violation ( addr ) ) - return ( -1 ); /* Access error */ - - if (curframe.valid) /* if debugging a trace frame? */ - { - /* If the requested address was collected in the current frame, - * then fetch and return the data from the trace buffer. - */ - if ((frame_addr = get_frame_addr (addr)) != (unsigned char *) -1) - return ( *frame_addr ); - /* If the requested address is in the Code Section, - * let's be magnanimous and read it anyway (else we shall - * not be able to disassemble, find function prologues, etc.) - */ - else if (CS_CODE_START <= (unsigned long) addr && - (unsigned long) addr < CS_CODE_START + CS_CODE_SIZE) - return (*addr); - else - return ( -1 ); /* "Access error" (the data was not collected) */ - } - else - /* Not debugging a trace frame, read the data from live memory. */ - return ( *addr ); /* Meaningful result >= 0 */ -} -#endif - -/*============================================================*/ - -static long set_uchar ( unsigned char * addr, unsigned char val ) -{ - long check_result = write_access_violation ( addr ); - - if ( check_result != 0L ) - return ( check_result ); /* Access error */ - - return ( *addr = val ); /* Successful writing */ -} - -/*============================================================*/ - -/* - * Function read_access_violation() below returns TRUE if dereferencing - * its argument for reading would cause a bus error - and FALSE otherwise: - */ - -static long read_access_violation ( const void * addr ) -{ - return ( ( ( addr < SRAM_START ) || ( addr >= SRAM_END ) ) && - ( ( addr < NVD_START ) || ( addr >= NVD_END ) ) ); -} - -/*============================================================*/ - -/* - * Function write_access_violation() below returns zero if dereferencing - * its argument for writing is safe, -1 on a soft error (the argument - * falls into the write-protected area), -2 on a hard error (the argument - * points to a non-existent memory location). In other words, it returns - * FALSE when no bus error is expected - and an error code otherwise: - */ - -static long write_access_violation ( const void * addr ) -{ - /* - * The boundaries of the write-protected area have to be received via - * an API provided in the Symmetrix core code. For now, these limits - * are hard-coded: - */ - - if ( ( addr >= RO_AREA_START ) && ( addr < RO_AREA_END ) ) - return ( -1 ); /* soft error */ - - if ( ( ( addr < SRAM_START ) || ( addr >= SRAM_END ) ) && - ( ( addr < NVD_START ) || ( addr >= NVD_END ) ) ) - return ( -2 ); /* hard error */ - - return ( 0 ); -} - - -/* read_access_range is like read_access_violation, - but returns the number of bytes we can read w/o faulting. - that is, it checks an address range and tells us what portion - (if any) of the prefix is safe to read without a bus error */ -static long -read_access_range(const void *addr, long count) -{ - if ((addr >= SRAM_START) && (addr < SRAM_END)) - { - if ((char *)addr + count < (char *)SRAM_END) - return (count); - else - return ((char *)SRAM_END - (char *)addr); - } - else if (((char *)addr >= (char *)NVD_START) && - ((char *)addr < (char *)NVD_END)) - { - if ((char *)addr + count < (char *)NVD_END) - return (count); - else - return ((char *)NVD_END - (char *)addr); - } - else - return (0); -} - -/* Convert the memory pointed to by mem into hex, placing result in buf. - Return SUCCESS or FAIL. - If MAY_FAULT is non-zero, then we should return FAIL in response to - a fault; if zero treat a fault like any other fault in the stub. */ - -static long -mem2hex(unsigned char *mem, char *buf, long count, long may_fault) -{ - long ndx; - long ndx2; - long ch; - long incr; - unsigned char *location; - DTC_RESPONSE status; - - if (may_fault) - { - for (ndx = 0, incr = 1; (ndx < count) && (incr > 0); ndx += incr) - { - status = find_memory(mem, count - ndx, &location, &incr); - - if (status == OK_TARGET_RESPONSE) - { - if (incr > 0) - { - for (ndx2 = 0; ndx2 < incr; ndx2++) - { - ch = *location++; - *buf++ = hexchars[ch >> 4]; - *buf++ = hexchars[ch & 0xf]; - } - mem += incr; - } - else if (incr <= 0) /* should never happen */ - { - *buf = 0; - return (0); - } - } - else if (status == NOT_FOUND_TARGET_RESPONSE) - { - *buf = 0; - return (ndx); /* return amount copied */ - } - else - { - *buf = 0; - return (0); /* XXX: how do we tell the user the status? */ - } - } - *buf = 0; - return (count); - } - else - { - for (ndx = 0; ndx < count; ndx++) - { - ch = *mem++; - *buf++ = hexchars[ch >> 4]; - *buf++ = hexchars[ch & 0xf]; - } - *buf = 0; - return (count); /* we copied everything */ - } -} - -static DTC_RESPONSE -find_memory(unsigned char *mem, long count, - unsigned char **location, long *incr) -{ - DTC_RESPONSE retval; - long length; - - /* figure out how much of the memory range we can read w/o faulting */ - count = read_access_range(mem, count); - if (count == 0) - return (NOT_FOUND_TARGET_RESPONSE); - - if (curframe.valid) - { - unsigned char *mem_block; - unsigned char *mem_addr; - unsigned long mem_size; - unsigned long mem_stamp; - - retval = adbg_find_memory_addr_in_frame(curframe.frame_data, mem, - (unsigned long **)&mem_block, - (unsigned long **)&mem_addr, - &mem_size, &mem_stamp); - - switch (retval) - { - case OK_TARGET_RESPONSE: -#if 0 - printp("FOUND: mem %x block %x addr %x size %d stamp %x\n", - mem, mem_block, mem_addr, mem_size, mem_stamp); -#endif - *location = mem_block + (mem - mem_addr); - length = mem_size - (mem - mem_addr); - - if (length < count) - *incr = length; - else - *incr = count; - - break; - - case NOT_FOUND_TARGET_RESPONSE: - case NEAR_FOUND_TARGET_RESPONSE: -#if 0 - printp("NOT FOUND: mem %x, checking code region\n", mem); -#endif - /* check to see if it's in the code region */ - if ((CS_CODE_START <= (long)mem) && - ((long)mem < CS_CODE_START + CS_CODE_SIZE)) - { - /* some or all of the address range is in the code */ - *location = mem; - if ((long)mem + count <= CS_CODE_START + CS_CODE_SIZE) - *incr = count; /* it's totally in the code */ - else - /* how much is in the code? */ - *incr = CS_CODE_START + CS_CODE_SIZE - (long)mem; -#if 0 - printp("FOUND in code region: %x\n", mem); -#endif - retval = OK_TARGET_RESPONSE; - } - else - retval = NOT_FOUND_TARGET_RESPONSE; - - break; - - default: -#if 0 - printp("BAD RETURN: %d\n", retval); -#endif - retval = NOT_FOUND_TARGET_RESPONSE; - break; - } - } - else - { - *location = mem; - *incr = count; - retval = OK_TARGET_RESPONSE; - } - - return (retval); -} - -/* Convert the hex array pointed to by buf into binary to be placed in mem. - Return SUCCESS or FAIL. */ - -static long -hex2mem( char *buf, unsigned char *mem, long count, long may_fault ) -{ - long i, ch; - - for ( i=0; i<count; i++ ) - { - ch = hex( *buf++ ) << 4; - ch = ch + hex( *buf++ ); - if ( may_fault ) - { - ch = set_uchar( mem++, ch ); - if ( ch < 0 ) /* negative return indicates error */ - return FAIL; - } - else - *mem++ = ch; - } - return SUCCESS; -} - -/**********************************************/ -/* WHILE WE FIND NICE HEX CHARS, BUILD AN INT */ -/* RETURN NUMBER OF CHARS PROCESSED */ -/**********************************************/ - -static int -hexToInt( char **ptr, unsigned long *intValue ) -{ - long numChars = 0; - long hexValue; - - *intValue = 0; - while ( **ptr ) - { - hexValue = hex( **ptr ); - if ( hexValue >=0 ) - { - *intValue = (*intValue << 4) | hexValue; - numChars ++; - } - else - break; - (*ptr)++; - } - return numChars; -} - -static volatile long gdb_handling_trap1; -static volatile long gdb_handling_sstrace; -static volatile long gdb_signo; - -/* - Here is the "callable" stub entry point. - Call this function with a GDB request as an argument, - and it will service the request and return. - - May be further broken up as we go along, with individual requests - broken out as separate functions. - */ - -static char * handle_trace_query (char *); -static char * handle_trace_set (char *); -static int handle_format (char **request, CFD *format); -static unsigned long crc32 (unsigned char *buf, int len, unsigned long crc); -static char * crc_query (char *); -static char * handle_test (char *); - -void -handle_request( char *request ) -{ -#if 0 - remote_debug = 2; -#endif - switch( *request++ ) - { - case 'k': /* "kill" */ - curframe.valid = FALSE; - putpacket (""); - break; - case 'D': /* "detach" */ - curframe.valid = FALSE; - putpacket (""); - break; - default: /* Unknown code. Return an empty reply message. */ - putpacket( "" ); /* return empty packet */ - break; - - case 'H': /* Set thread for subsequent operations. - Hct... c = 'c' for thread used in step and continue; - t... can be -1 for all threads. - c = 'g' for thread used in other operations. - If zero, pick a thread, any thread. */ - - putpacket( "OK" ); - break; - - case 'g': /* Read registers. - Each byte of register data is described by - two hex digits. registers are in the - internal order for GDB, and the bytes in a - register are in the same order the machine - uses. */ - { - /* Return the values in (one of) the registers cache(s). - Several situations may pertain: - 1) We're synchronous, in which case the "registers" array - should actually be current. - 2) We're asynchronous, in which case the "registers" array - holds whatever was cached most recently. - 3) We're looking at a trace frame that was collected earlier: - we will return those earlier registers. - */ - - /* all registers default to zero */ - memset (outbuffer, '0', NUMREGBYTES); - outbuffer[NUMREGBYTES] = '\0'; - - if (curframe.valid) /* debugging a trace frame */ - mem2hex( (unsigned char*) curframe.traceregs, - outbuffer, NUMREGBYTES, 0 ); - else - mem2hex( (unsigned char*) registers, outbuffer, NUMREGBYTES, 0 ); - - putpacket( outbuffer ); - } - break; - case 'G': /* Write registers. - Gxxxxxxxx Each byte of register data is described by - two hex digits. */ - if (curframe.valid) /* debugging a trace frame */ - putpacket ("E03"); /* can't write regs into a trace frame! */ - else - { - /* Write the values into the local registers cache... - Note that no actual registers are being changed. */ - - hex2mem( request, - (unsigned char *) registers, NUMREGBYTES, 0 ); - putpacket( "OK" ); - } - break; - case 'P': /* Write (single) register. - Pnn=xxxxxxxx register nn gets value xxxxxxxx; - two hex digits for each byte in the register - (target byte order). */ - - if (curframe.valid) - putpacket ("E03"); /* can't write regs into a trace frame! */ - else - { - unsigned long regno; - - if ( hexToInt( &request, ®no ) && *(request++) == '=' ) - { - if ( regno < NUMREGS ) - { - hexToInt( &request, - (unsigned long *) ®isters[REGISTER_BYTE(regno)]); - - putpacket( "OK" ); - } - else - putpacket( "E01" ); /* bad packet or regno */ - } - } - break; - case 'm': /* Read memory. - mAAAAAAAA,LLLL AAAAAAAA is address, LLLL is length. - Reply can be fewer bytes than requested - if able to read only part of the data. */ - { - unsigned long addr, len; - - if ( hexToInt( &request, &addr ) && - *(request++) == ',' && - hexToInt( &request, &len ) ) - { - /* better not overwrite outbuffer! */ - if ( len > (BUFMAX / 2) - 5 ) - len = (BUFMAX / 2) - 5; - if (mem2hex((unsigned char *) addr, outbuffer, len, 1) == 0) /* XXX: eventually use returned value */ - putpacket( "E03" ); /* read fault (access denied) */ - else - putpacket( outbuffer ); /* read succeeded */ - } - else - putpacket( "E01" ); /* badly formed read request */ - - } - break; - case 'M': /* Write memory. - Maaaaaaaa,llll:xxxx aaaaaaaa is address, llll is length; - xxxx is data to write. */ - - { - unsigned long addr, len; - - if (curframe.valid) /* can't write memory into a trace frame! */ - putpacket ("E03"); /* "access denied" */ - else /*** if ( write_access_enabled ) ***/ - { - if ( hexToInt( &request, &addr ) && - *(request++) == ',' && - hexToInt( &request, &len ) && - *(request++) == ':' ) - { - if (len == 2 && - addr >= CS_CODE_START && - addr <= LAST_CS_WORD) - { - unsigned long val; - - if ( !hexToInt( &request, &val ) || - write_to_protected_mem( (void *)addr, val ) ) - putpacket( "E03" ); /* write fault (access denied) */ - else - putpacket( "OK" ); /* write succeeded */ - } - else - { - if ( hex2mem( request, (unsigned char*) addr, len, 1 ) ) - putpacket( "E03" ); /* write fault (access denied) */ - else - putpacket( "OK" ); /* write succeeded */ - } - } - else - putpacket( "E02" ); /* badly formed write request */ - } - } - break; - case 'c': /* Continue. - cAAAAAAAA AAAAAAAA is address from which to resume. - If omitted, resume at current PC. */ - - { - unsigned long addr; - - if (curframe.valid) - { - /* Don't continue if debugging a trace frame! */ - gdb_puts ("Error: can't continue!\n"); - putpacket ("S03"); - } - else - { - gdb_signo = 3; - if (isxdigit(request[0])) - { - hexToInt(&request, &addr); - registers[REGISTER_BYTE(PC)] = addr; - } - - gdb_handling_trap1 = FALSE; - gdb_handling_sstrace = FALSE; - sss_trace_flag = '\0'; - } - } - break; - case 's': /* Step. - sAAAAAAAA AAAAAAAA is address from which to begin stepping. - If omitted, begin stepping at current PC. */ - { - unsigned long addr; - - if (curframe.valid) - { - /* Don't step if debugging a trace frame! */ - gdb_puts ("Error: can't step!\n"); - putpacket ("S03"); - } - else - { - gdb_signo = 3; - if (isxdigit(request[0])) - { - hexToInt(&request, &addr); - registers[REGISTER_BYTE(PC)] = addr; - } - - gdb_handling_trap1 = FALSE; - gdb_handling_sstrace = FALSE; - sss_trace_flag = 't'; - } - } - break; - case 'C': /* Continue with signal. - Cxx;AAAAAAAA xx is signal number in hex; - AAAAAAAA is adddress from which to resume. - If ;AAAAAAAA omitted, continue from PC. */ - - { - unsigned long addr = 0; - - if (!gdb_handling_trap1 || curframe.valid) - { - /* Don't continue if not currently in synchronous mode, - or if currently debugging a trace frame! */ - gdb_puts( "Error: can't continue!\n" ); - putpacket( "S03" ); /* "sigquit" (better idea?) */ - } - else - { - gdb_signo = 3; - if ( isxdigit( *request ) ) - { - hex2mem( request, (unsigned char *) &gdb_signo, 2, 0 ); - request += 2; - if ( *request == ';' && isxdigit( *++request ) ) - { - hexToInt( &request, &addr ); - registers[REGISTER_BYTE(PC)] = addr; - } - } - gdb_handling_trap1 = FALSE; - gdb_handling_sstrace = FALSE; - sss_trace_flag = '\0'; - } - } - break; - case 'S': /* Step with signal. - Sxx;AAAAAAAA xx is signal number in hex; - AAAAAAAA is adddress from which to begin stepping. - If ;AAAAAAAA omitted, begin stepping from PC. */ - { - unsigned long addr = 0; - - if (!gdb_handling_trap1 || curframe.valid) - { - /* Don't step if not currently in synchronous mode, - or if currently debugging a trace frame! */ - gdb_puts( "Error: can't step!\n" ); - putpacket( "S03" ); /* "sigquit" (better idea?) */ - } - else - { - gdb_signo = 3; - if ( isxdigit( *request ) ) - { - hex2mem( request, (unsigned char *) &gdb_signo, 2, 0 ); - request += 2; - if ( *request == ';' && isxdigit( *++request ) ) - { - hexToInt( &request, &addr ); - registers[REGISTER_BYTE(PC)] = addr; - } - } - gdb_handling_trap1 = FALSE; - gdb_handling_sstrace = FALSE; - sss_trace_flag = 't'; - } - } - break; - case '?': /* Query the latest reason for stopping. - Should be same reply as was last generated - for step or continue. */ - - if ( gdb_signo == 0 ) - gdb_signo = 3; /* default to SIGQUIT */ - outbuffer[ 0 ] = 'S'; - outbuffer[ 1 ] = hexchars[ gdb_signo >> 4 ]; - outbuffer[ 2 ] = hexchars[ gdb_signo & 0xf ]; - outbuffer[ 3 ] = 0; - putpacket( outbuffer ); - break; - - case 'd': /* Toggle debug mode - I'm sure we can think of something interesting. */ - - remote_debug = !remote_debug; - putpacket( "" ); /* return empty packet */ - break; - - case 'q': /* general query */ - switch (*request++) - { - default: - putpacket (""); /* nak a request which we don't handle */ - break; - case 'T': /* trace query */ - putpacket (handle_trace_query (request)); - break; - case 'C': /* crc query (?) */ - if (*request++ == 'R' && - *request++ == 'C' && - *request++ == ':') - putpacket (crc_query (request)); - else - putpacket (""); /* unknown query */ - break; - } - break; - - case 'Q': /* general set */ - switch (*request++) - { - default: - putpacket (""); /* nak a request which we don't handle */ - break; - case 'T': /* trace */ - putpacket (handle_trace_set (request)); - break; - } - break; - - case 'T': - /* call test function: TAAA,BBB,CCC - A, B, and C are arguments to pass to gdb_c_test. Reply is - "E01" (bad arguments) or "OK" (test function called). */ - putpacket (handle_test (request)); - break; - } -} - -static TDP_SETUP_INFO tdp_temp; -static int trace_running; - -/* - * Function msgcmp: - * - * If second argument (str) is matched in first argument, - * then advance first argument past end of str and return "SAME" - * else return "DIFFERENT" without changing first argument. - * - * Return: zero for DIFFERENT, non-zero for SUCCESS - */ - -static int -msgcmp (char **msgp, char *str) -{ - char *next; - - if (msgp != 0 && str != 0) /* input validation */ - if ((next = *msgp) != 0) - { - for (; - *next && *str && *next == *str; - next++, str++) - ; - - if (*str == 0) /* matched all of str in msg */ - return (int) (*msgp = next); /* advance msg ptr past str */ - } - return 0; /* failure */ -} - -static char * -handle_trace_query (char *request) -{ - if (msgcmp (&request, "Status")) - { - if (adbg_check_if_active ()) - { - gdb_puts ("Target trace is running.\n"); - return "T1"; - } - else - { - gdb_puts ("Target trace not running.\n"); - trace_running = 0; - return "T0"; - } - } - else /* unknown trace query */ - { - return ""; - } -} - -static void -gdb_note (char *fmt, int arg1) -{ - if (remote_debug > 1) - { - sprintp (spare_buffer, fmt, arg1); - gdb_puts (spare_buffer); - } -} - -static int -error_ret (int ret, char *fmt, int arg1) -{ - if (remote_debug > 0) - { - sprintp (spare_buffer, fmt, arg1); - gdb_puts (spare_buffer); - } - return ret; -} - -static int -handle_format (char **request, COLLECTION_FORMAT_DEF *format) -{ - MEMRANGE_DEF m; - DTC_RESPONSE ret; - int elinum; - unsigned long regnum; - long bytecodes[(MAX_BYTE_CODES + sizeof (struct t_expr_tag))/ 4]; - struct t_expr_tag *t_expr = (struct t_expr_tag *)bytecodes; - - if (format->id == 0) - { - if ((ret = get_unused_format_id (&format->id)) != OK_TARGET_RESPONSE) - return dtc_error_ret (-1, "get_unused_format_id", ret); - - if (**request == 'R') - { - (*request)++; - hexToInt (request, &format->regs_mask); - } - gdb_note ("STUB: call define_format (id = %d, ", format->id); - gdb_note ("regs_mask = 0x%X);\n", format->regs_mask); - - if ((ret = define_format (format)) != OK_TARGET_RESPONSE) - { - sprintp (spare_buffer, - "'define_format': DTC error '%s' for format id %d.\n", - get_err_text (ret), - format->id); - gdb_puts (spare_buffer); - return -1; - } - } - - while ((**request == 'M') || (**request == 'X')) - { - switch (**request) - { - case 'M': /* M<regnum>,<offset>,<size> */ - (*request)++; - hexToInt(request, ®num); - - if (regnum == 0 || regnum == (unsigned long) -1) - m.typecode = -1; - else if ((elinum = index_to_elinum (regnum)) > 0) - m.typecode = elinum; - else - return error_ret (-1, - "Memrange register %d is not between 0 and 15\n", - regnum); - - if (*(*request)++ != ',') - return error_ret (-1,"Malformed memrange (comma #%d missing)\n",1); - hexToInt(request, &m.offset); - if (*(*request)++ != ',') - return error_ret (-1,"Malformed memrange (comma #%d missing)\n",2); - hexToInt(request, &m.size); - - gdb_note ("STUB: call add_format_mem_range (typecode = 0x%x, ", - m.typecode); - gdb_note ("offset = 0x%X, ", m.offset); - gdb_note ("size = %d);\n", m.size); - if ((ret = add_format_mem_ranges (format->id, &m)) != - OK_TARGET_RESPONSE) - { - dtc_error_ret (-1, "add_format_mem_ranges", ret); - sprintp (spare_buffer, - "format id %d: memrange (0x%x, 0x%x, 0x%x).\n", - format->id, m.typecode, m.offset, m.size); - gdb_puts (spare_buffer); - return -1; - } - break; - - case 'X': /* X<length>,<bytecodes> */ - { - unsigned long length; - - (*request)++; - hexToInt(request, &length); - - if ((length <= 0) || (length > MAX_BYTE_CODES)) - return error_ret (-1, - "Bytecode expression length (%d) too large\n", - length); - - if (*(*request)++ != ',') - return error_ret (-1, - "Malformed bytecode expr (comma#%d missing)\n", - 1); - t_expr->next = NULL; - /* subtract one to account for expr[0] in header */ - t_expr->size = sizeof(struct t_expr_tag) + length - 1; - t_expr->expr_size = length; - - hex2mem(*request, &t_expr->expr[0], length, 0); - *request += 2 * length; - build_and_add_expression(format->id, t_expr); - } - break; - } - } - return 0; -} - -static char * -handle_trace_set (char *request) -{ - long n_frame; - unsigned long frameno, tdp, pc, start, stop; - DTC_RESPONSE ret = -1; - static COLLECTION_FORMAT_DEF tempfmt1; - static char enable; - static char retbuf[20]; - - if (msgcmp (&request, "init")) - { - gdb_note ("STUB: call clear_trace_state();\n", 0); - curframe.valid = 0; /* all old frames become invalid now */ - if ((ret = clear_trace_state ()) == OK_TARGET_RESPONSE) - return "OK"; - else - { - sprintp (retbuf, "E2%x", ret); - return (char *) dtc_error_ret ((int) &retbuf, - "clear_trace_state", - ret); - } - } - else if (msgcmp (&request, "Start")) - { - trace_running = 1; - curframe.valid = 0; /* all old frames become invalid now */ - gdb_note ("STUB: call start_trace_experiment();\n", 0); - adbg_save_trace_in_nvd (); - if ((ret = start_trace_experiment ()) == OK_TARGET_RESPONSE) - return "OK"; - else - { - sprintp (retbuf, "E2%x", ret); - return (char *) dtc_error_ret ((int) &retbuf, - "start_trace_experiment", - ret); - } - } - else if (msgcmp (&request, "Stop")) - { - trace_running = 0; - if (adbg_check_if_active ()) - { - gdb_note ("STUB: call end_trace_experiment();\n", 0); - if ((ret = end_trace_experiment ()) == OK_TARGET_RESPONSE) - return "OK"; - else - { - sprintp (retbuf, "E2%x", ret); - return (char *) dtc_error_ret ((int) &retbuf, - "end_trace_experiment", - ret); - } - } - else return "OK"; - } - /* "TDP:" (The 'T' was consumed in handle_request.) */ - else if (msgcmp (&request, "DP:")) - { - /* TDP:<id>:<addr>:{D,E}:<stepcount>:<pass_limit>{R[M,X]+}<tdp-format> - {S{R[M,X]+}}<tp-format> - - D -- disable tracepoint (illegal from EMC's point of view) - E -- enable tracepoint? - - R -- regs format: R<regs-mask> - M -- memory format: M<regnum>,<offset>,<size> - X -- expr format: X<size>,<bytecodes> - S -- fencepost between trap formats and stepping formats. - */ - - /* state variable, required for splitting TDP packets. */ - static int doing_step_formats; - - /* - * TDP: packets may now be split into multiple packets. - * If a TDP packet is to be continued in another packet, it - * must end in a "-" character. The subsequent continuation - * packet will then begin with a "-" character, between the - * token "TDP:" and the tdp_id field. The ID and address - * will be repeated in each sub-packet. The step_count, - * pass_count, and 'enabled' field must appear in the first - * packet. The boundary between sub-packets may not appear - * between the "S" that denotes the start of stepping "formats", - * and the regs_mask that follows it. The split may also not - * occur in the middle of either a memrange description or a - * bytecode string. -- MVS - */ - - if (*request == '-') /* this is a continuation of a - trace definition in progress */ - { - unsigned long temp_id, temp_addr; - - request++; - if (!(hexToInt (&request, &temp_id) && - *request++ == ':')) - return "E11"; /* badly formed packet, field 1 */ - - if (!(hexToInt (&request, (unsigned long *) &temp_addr) && - *request++ == ':')) - return "E12"; /* badly formed packet, field 2 */ - - if (temp_id != tdp_temp.id) - return "E11"; /* something wrong: field 1 doesn't match */ - if (temp_addr != (unsigned long) tdp_temp.addr) - return "E12"; /* something wrong: field 2 doesn't match */ - } - else /* This is a new TDP definition */ - { - memset ((char *) &tdp_temp, 0, sizeof (tdp_temp)); - memset ((char *) &tempfmt1, 0, sizeof (tempfmt1)); - doing_step_formats = FALSE; - - if (!(hexToInt (&request, &tdp_temp.id) && - *request++ == ':')) - return "E11"; /* badly formed packet, field 1 */ - - if (!(hexToInt (&request, (unsigned long *) &tdp_temp.addr) && - *request++ == ':')) - return "E12"; /* badly formed packet, field 2 */ - - if (!(((enable = *request++) == 'D' || enable == 'E') && - *request++ == ':')) - return "E13"; /* badly formed packet, field 3 */ -#if 0 - if (enable == 'D') - { - gdb_puts ("Disabling of tracepoints not supported by EMC target\n"); - return "E20"; - } -#endif - if (!(hexToInt (&request, &tdp_temp.stepcount) && - *request++ == ':')) - return "E14"; /* badly formed packet, field 4 */ - - if (!hexToInt (&request, &tdp_temp.pass_limit)) - return "E15"; /* badly formed packet, field 5 */ - - } - - /* Typically, the first group of collection descriptors - refers to the trap collection. There is an "S" token - to act as a fencepost between collection descriptors for - the trap, and those for the single-stepping. - - However, when the packet is split up into several packets, - this "S" token may already have been seen in a previous - sub-packet; so we have to remember it in a state variable. */ - - if (*request == 'R' || *request == 'M' || *request == 'X') - { - if (handle_format (&request, &tempfmt1)) - return "E16"; - if (doing_step_formats) - tdp_temp.tp_format_p = tempfmt1.id; - else - tdp_temp.tdp_format_p = tempfmt1.id; - } - - /* When we see the "S" token, we remember it in a state variable - (in case the packet is split up and continued in another message), - and discard all current state from the collection "format". */ - if (*request == 'S') - { - doing_step_formats = TRUE; - /* discard prev format and start a new one */ - memset ((char *) &tempfmt1, 0, sizeof (tempfmt1)); - request++; - - /* Having seen the "S" fencepost, it is now possible that - we will see some more collection descriptors pertaining - to the stepping collection. */ - if (*request == 'R' || *request == 'M' || *request == 'X') - { - if (handle_format (&request, &tempfmt1)) - return "E17"; - /* new format ID is tp_format */ - tdp_temp.tp_format_p = tempfmt1.id; - } - } - - if (*request == '-') /* this TDP definition will be continued. */ - sprintp (retbuf, "OK"); - else if (enable == 'E') /* end of TDP definition: pass to ADBG (if enabled!) */ - { - gdb_note ("STUB: call define_tdp (id %d, ", tdp_temp.id); - gdb_note ("addr 0x%X, ", (int) tdp_temp.addr); - gdb_note ("passc %d, ", tdp_temp.pass_limit); - gdb_note ("stepc %d, ", tdp_temp.stepcount); - gdb_note ("TDP fmt #%d, ", tdp_temp.tdp_format_p); - gdb_note ("TP fmt #%d);\n", tdp_temp.tp_format_p); - - ret = define_tdp (tdp_temp.id, &tdp_temp, 0); - - if (ret == OK_TARGET_RESPONSE) - { - sprintp (retbuf, "OK"); - } - else - { - sprintp (spare_buffer, - "'define_tdp' returned DTC error '%s' for tracepoint %d.\n", - get_err_text (ret), - tdp_temp.id); - gdb_puts (spare_buffer); - sprintp (retbuf, "E2%x", ret); - } - /* Redundant, but let's try to make sure this state gets discarded. */ - { - memset ((char *) &tdp_temp, 0, sizeof (tdp_temp)); - memset ((char *) &tempfmt1, 0, sizeof (tempfmt1)); - } - } - else /* ADBG_DTC does not support disabled tracepoints -- ignore it. */ - gdb_note ("STUB: ignoring disabled tracepoint %d.\n", tdp_temp.id); - - return retbuf; - } - else if (msgcmp (&request, "Frame:")) - { - ret = OK_TARGET_RESPONSE; - - if (msgcmp (&request, "pc:")) - { - if (!hexToInt (&request, &pc)) - return "E10"; /* badly formed packet */ - n_frame = curframe.valid ? curframe.frame_id + 1 : 0; - gdb_note ("STUB: call fetch_trace_frame_pc (id %d, ", n_frame); - gdb_note ("pc 0x%X);\n", pc); - ret = fetch_trace_frame_with_pc (&n_frame, - (void *) pc, - &curframe.format, - &curframe.frame_data); - } - else if (msgcmp (&request, "tdp:")) - { - if (!hexToInt (&request, &tdp)) - return "E10"; /* badly formed packet */ - n_frame = curframe.valid ? curframe.frame_id + 1: 0; - gdb_note ("STUB: call fetch_trace_frame_tdp (id %d, ", n_frame); - gdb_note ("tdp 0x%X);\n", tdp); - ret = fetch_trace_frame_with_tdp (&n_frame, - tdp, - &curframe.format, - &curframe.frame_data); - } - else if (msgcmp (&request, "range:")) - { - if (!(hexToInt (&request, &start) && - *request++ == ':')) - return "E11"; /* badly formed packet, field 1 */ - else if (!hexToInt (&request, &stop)) - return "E12"; /* badly formed packet, field 2 */ - n_frame = curframe.valid ? curframe.frame_id + 1: 0; - gdb_note ("STUB: call fetch_trace_frame_range (id %d, ", n_frame); - gdb_note ("start 0x%X, ", start); - gdb_note ("stop 0x%X);\n", stop); - ret = fetch_trace_frame_with_pc_in_range (&n_frame, - (void *) start, - (void *) stop, - &curframe.format, - &curframe.frame_data); - } - else if (msgcmp (&request, "outside:")) - { - if (!(hexToInt (&request, &start) && - *request++ == ':')) - return "E11"; /* badly formed packet, field 1 */ - else if (!hexToInt (&request, &stop)) - return "E12"; /* badly formed packet, field 2 */ - n_frame = curframe.valid ? curframe.frame_id + 1: 0; - gdb_note ("STUB: call fetch_trace_frame_outside (id %d, ", n_frame); - gdb_note ("start 0x%X, ", start); - gdb_note ("stop 0x%X);\n", stop); - ret = fetch_trace_frame_with_pc_outside (&n_frame, - (void *) start, - (void *) stop, - &curframe.format, - &curframe.frame_data); - } - else /* simple TFind by frame number: */ - { - if (!hexToInt (&request, &frameno)) - return "E10"; /* badly formed packet */ - if (frameno != (unsigned long) -1) - { - gdb_note ("STUB: call fetch_trace_frame (id %d);\n", frameno); - ret = fetch_trace_frame (n_frame = frameno, - &curframe.format, - &curframe.frame_data); -#if 0 - printp("STUB: fetch_trace_frame: return %d\n", ret); -#endif - } - else /* discard any trace frame, debug "the real world" */ - { - if (curframe.valid) - gdb_note ("STUB: discard current trace frame #%d.\n", - curframe.frame_id); - curframe.valid = 0; - return "OK"; - } - } - if (ret == OK_TARGET_RESPONSE) /* fetch_trace_frame succeeded */ - { /* setup for debugging the trace frame */ - curframe.valid = 1; - curframe.frame_id = n_frame; - curframe.tdp_id = curframe.frame_data->id; - - memset ((char *) &curframe.traceregs, 0, - sizeof (curframe.traceregs)); - curframe.traceregs[PC] = (unsigned long) - curframe.frame_data->program_counter; - - if (curframe.format) - { - unsigned long regs_mask = curframe.format->regs_mask; - unsigned long *regs, *stack, *mem; - unsigned long regno, index = 0; - CFD *dummy; - - if ((ret = get_addr_to_frame_regs_stack_mem - (curframe.frame_data, &dummy, ®s, &stack, &mem)) - != OK_TARGET_RESPONSE) - { - curframe.valid = 0; - sprintp (retbuf, "E2%x", ret); - return (char *) - dtc_error_ret ((int) &retbuf, - "get_addr_to_frame_regs_stack_mem", - ret); - } - - if (remote_debug > 1) - { /* echo what we've found to gdb console */ - sprintp (spare_buffer, - "STUB: Found frame %d, TDP %d, format %d (%s):\n", - curframe.frame_id, - curframe.tdp_id & 0x7fffffff, - curframe.format->id, - curframe.tdp_id & 0x80000000 ? - "trap frame" : "stepping frame"); - gdb_puts (spare_buffer); - } - /* copy trace frame regs into stub's data format */ - for (regno = 0, index = 0; - regno < 16; - regno++, regs_mask >>= 1) - if (regs_mask & 1) /* got a collected register */ - { - curframe.traceregs[regno] = regs[index++]; - if (remote_debug > 1) - { - sprintp (spare_buffer, - " Collected 0x%08x for register %d.\n", - curframe.traceregs[regno], regno); - gdb_puts (spare_buffer); - } - } - if (remote_debug > 1) - { - long midx, ridx, len; - MEMRANGE_DEF *mrange; - unsigned char *data, *base; - - if (curframe.format->stack_size > 0) - { - len = curframe.format->stack_size; - sprintp (spare_buffer, - " Collected %d bytes of stack at 0x%x:\n", - len, curframe.traceregs[A7]); - gdb_puts (spare_buffer); - - /* print stack data, but stay under msg len */ - if (len >= (NUMREGBYTES/2 - 2)) - len = (NUMREGBYTES/2 - 3); - mem2hex ((unsigned char *) stack, - spare_buffer, len, 0); - spare_buffer [len * 2] = '\n'; - spare_buffer [len * 2 + 1] = '\0'; /* EOS */ - gdb_puts (spare_buffer); - } - else - gdb_puts ("Stack not collected\n"); - - for (midx = 0; - get_addr_to_a_mem_range (curframe.frame_data, - midx, - &mrange, - (void **) &data) - == OK_TARGET_RESPONSE; - midx++) - { - if ((mrange->typecode == 0) || - (mrange->typecode == (unsigned long) -1)) - { - sprintp (spare_buffer, - " Collected %d bytes at MEM: 0x%x:\n", - mrange->size, mrange->offset); - base = (unsigned char *) mrange->offset; - } - else - { - if ((ridx = elinum_to_index (mrange->typecode)) > 0) - base = (unsigned char *) curframe.traceregs[ridx] - + (long) mrange->offset; - else - { - sprintp (spare_buffer, - "STUB: bad typecode in memrange #%d: (0x%x,0x%x,0x%x).\n", - midx, - mrange->typecode, - mrange->offset, - mrange->size); - gdb_puts (spare_buffer); - continue; - } - sprintp (spare_buffer, - " Collected %d bytes at 0x%x (REG %X + %d):\n", - mrange->size, - base, - mrange->typecode, - mrange->offset); - } - gdb_puts (spare_buffer); - len = mrange->size; - if (len >= (NUMREGBYTES/2 - 2)) - len = (NUMREGBYTES/2 - 3); - mem2hex (data, spare_buffer, len, 0); - spare_buffer [len * 2] = '\n'; - spare_buffer [len * 2 + 1] = '\0'; /* EOS */ - gdb_puts (spare_buffer); - } - } - } - sprintp (retbuf, "F%xT%x", n_frame, curframe.tdp_id & 0x7fffffff); - return retbuf; - } - else if (ret == NOT_FOUND_TARGET_RESPONSE) - { - /* Here's a question: if the fetch_trace_frame call failed - (which probably means a bad "TFIND" command from GDB), - should we remain focused on the previous frame (if any), - or should we revert to "no current frame"? - */ - return "F-1"; - } - else - { - sprintp (retbuf, "E2%x", ret); - return (char *) dtc_error_ret ((int) &retbuf, - "fetch_trace_frame[...]", - ret); - } - } - else /* unknown trace command */ - { - return ""; - } -} - -/* Table used by the crc32 function to calcuate the checksum. */ -static unsigned long crc32_table[256]; - -static int crc_mem_err; - -static unsigned long -crc32 (buf, len, crc) - unsigned char *buf; - int len; - unsigned long crc; -{ - crc_mem_err = FALSE; - - if (! crc32_table[1]) - { - /* Initialize the CRC table and the decoding table. */ - int i, j; - unsigned int c; - - for (i = 0; i < 256; i++) - { - for (c = i << 24, j = 8; j > 0; --j) - c = c & 0x80000000 ? (c << 1) ^ 0x04c11db7 : (c << 1); - crc32_table[i] = c; - } - } - - while (len--) - { - if (read_access_violation (buf)) - { - crc_mem_err = TRUE; - return -1; - } - crc = (crc << 8) ^ crc32_table[((crc >> 24) ^ *buf++) & 255]; - } - return crc; -} - -static char * -crc_query (cmd) - char *cmd; -{ - unsigned long startmem, len, crc; - static char buf[32]; - - if (hexToInt (&cmd, &startmem) && - *cmd++ == ',' && - hexToInt (&cmd, &len)) - { - crc = crc32 ((unsigned char *) startmem, len, 0xffffffff); - if (!crc_mem_err) - { - sprintp (buf, "C%08x", crc); - return buf; - } - /* else error, fall thru */ - } - sprintp (buf, "E01"); - return buf; -} - - -static char * -handle_test (request) - char *request; -{ - ULONG args[7]; - int i; - - /* Parse the arguments, a comma-separated list of hex numbers, into - ARGS. Parse at most six arguments. */ - i = 1; - if (*request != '\0') - while (i < 7) - { - if (! hexToInt (&request, &args[i++])) - return "E01"; - if (*request == '\0') - break; - if (*request++ != ',') - return "E01"; - } - - /* Fill the rest of the args array with zeros. This is what the - INLINES command processor does with omitted arguments. */ - for (; i < 7; i++) - args[i] = 0; - - gdb_c_test (args); - - return "OK"; -} - - -/* GDB_TRAP_1_HANDLER - - By the time this is called, the registers have been saved in "registers", - and the interrupt priority has been set to permit serial UART interrupts. - - However, since no gdb request has yet been received, and there is no - equivalent of getpacket for us to wait on, we can't sit here waiting - for packets and processing them. - - In fact, the ONLY thing for us to do here is sit and wait. - As gdb sends packet requests, they will handle themselves at the - interrupt level. When gdb decides we can continue, it will reset - the global variable "gdb_handling_trap1", and we will return - (whereupon registers will be restored etc.) */ - -void gdb_trap_1_handler( void ) -{ - gdb_handling_trap1 = TRUE; - sss_trace_flag = '\0'; /* shut off "trace bit" (indirectly) */ - gdb_signo = 5; - putpacket( "S05" ); - while ( gdb_handling_trap1 ) - ; - return; -} - -void gdb_trace_handler( void ) -{ - sss_trace_flag = '\0'; /* shut off "trace bit" (indirectly) */ - gdb_handling_trap1 = TRUE; - gdb_handling_sstrace = TRUE; - gdb_signo = 5; - putpacket( "S05" ); - while ( gdb_handling_trap1 ) - ; - return; -} diff --git a/gdb/testsuite/gdb.trace/infotrace.exp b/gdb/testsuite/gdb.trace/infotrace.exp deleted file mode 100644 index 6a117d3..0000000 --- a/gdb/testsuite/gdb.trace/infotrace.exp +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# -# test "info tracepoints" command -# - -gdb_delete_tracepoints -set c_test_num [gdb_gettpnum gdb_c_test]; -set asm_test_num [gdb_gettpnum gdb_asm_test]; -if { $c_test_num <= 0 || $asm_test_num <= 0 } then { - fail "setting tracepoints" - return; -} - -# 2.1 info tracepoints (all) -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$c_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*$asm_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*" \ - "2.1: info tracepoints (all)" - -# 2.2 info tracepoint (specific) -gdb_test "info tracepoint $c_test_num" \ - "$c_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*" \ - "2.2a: info tracepoint $c_test_num (gdb_c_test)" - -gdb_test "info tracepoint $asm_test_num" \ - "$asm_test_num\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*" \ - "2.2b: info tracepoint $asm_test_num (gdb_asm_test)" - -# 2.3 info tracepoint (invalid tracepoint number) -gdb_test "info tracepoint [expr $c_test_num + $asm_test_num]" \ - "No tracepoint number [expr $c_test_num + $asm_test_num]." \ - "2.3: info tracepoint (invalid tracepoint number)" - -# 2.4 info tracepoints (list of numbers) -send_gdb "info tracepoints $c_test_num $asm_test_num \n" -gdb_expect { - -re "Num Enb .*$gdb_prompt $" { - fail "2.4: info trace rejects multiple tracepoint numbers" - } - -re ".*$gdb_prompt $" { - pass "2.4: info trace rejects multiple tracepoint numbers" - } -} - -# 2.5 help info trace -gdb_test "help info tracepoints" \ - "Status of tracepoints, or tracepoint number NUMBER.*" \ - "2.5: help info tracepoints" - diff --git a/gdb/testsuite/gdb.trace/limits.c b/gdb/testsuite/gdb.trace/limits.c deleted file mode 100644 index d9c02e7..0000000 --- a/gdb/testsuite/gdb.trace/limits.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Test program for tracing internal limits (number of tracepoints etc.) - */ - -int n = 6; - -int arr[64]; - -static void foo(int x) -{ -} - -static void bar(int y) -{ -} - -static void baz(int z) -{ -} - -static void begin () /* called before anything else */ -{ -} - -static void end () /* called after everything else */ -{ -} - -int -main (argc, argv, envp) - int argc; - char *argv[], **envp; -{ - int i; - -#ifdef usestubs - set_debug_traps (); - breakpoint (); -#endif - - begin (); - for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) - arr[i] = i + 1; - - foo (1); - bar (2); - baz (3); - end (); - return 0; -} - diff --git a/gdb/testsuite/gdb.trace/limits.exp b/gdb/testsuite/gdb.trace/limits.exp deleted file mode 100644 index eed1780..0000000 --- a/gdb/testsuite/gdb.trace/limits.exp +++ /dev/null @@ -1,316 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -if [istarget "m68k-*-elf"] then { - pass "Test not supported on this target" - return; -} - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -set testfile "limits" -set srcfile ${testfile}.c -set binfile $objdir/$subdir/$testfile - -if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." -} - -# Tests: -# 1) Meet and exceed artificial limit on number of tracepoints -# 2) Meet and exceed artificial limit on number of memranges -# 3) Meet and exceed artificial limit on bytes of bytecode data -# [NOTE: number four is moved out into its own separate test module.] -# 4) Meet and exceed artificial limit on bytes of trace buffer storage -# (circular and non-circular modes). However note that a more -# thorough test of the circular mode can be made separately. - -set cr "\[\r\n\]+" - -proc gdb_tracepoint_limit_test { } { - global gdb_prompt - global cr - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Set three tracepoints - gdb_test "trace foo" \ - "Tracepoint \[0-9\]+ at .*" \ - "tracepoint limit test: set first tracepoint" - - gdb_test "trace bar" \ - "Tracepoint \[0-9\]+ at .*" \ - "tracepoint limit test: set second tracepoint" - - gdb_test "trace baz" \ - "Tracepoint \[0-9\]+ at .*" \ - "tracepoint limit test: set third tracepoint" - - # Set secret artificial tracepoint limit to four - gdb_test "maint packet QTLimit:tp:4" \ - "received: .OK." \ - "tracepoint limit test: set limit to four" - - # Now sending three tracepoints should succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "tracepoint limit test: send fewer than limit" - } - default { - fail "tracepoint limit test: send fewer than limit" - } - } - - # Set secret artificial tracepoint limit to three - gdb_test "maint packet QTLimit:tp:3" \ - "received: .OK." \ - "tracepoint limit test: set limit to three" - - # Now sending three tracepoints should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "tracepoint limit test: send equal to limit" - } - default { - fail "tracepoint limit test: send equal to limit" - } - } - - # Set secret artificial tracepoint limit to two - gdb_test "maint packet QTLimit:tp:2" \ - "received: .OK." \ - "tracepoint limit test: set limit to two" - - # Now sending three tracepoints should fail. - gdb_test "tstart" \ - ".*\[Ee\]rror.*" \ - "tracepoint limit test: send more than limit" - - # Clean up: - gdb_test "tstop" "" "" - gdb_test "maint packet QTLimit:tp:FFFFFFFF" "" "" -} - -proc gdb_memrange_limit_test { } { - global gdb_prompt - global cr - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Set three tracepoints, and make 'em collect memranges - gdb_test "trace foo" \ - "Tracepoint \[0-9\]+ at .*" \ - "memrange limit test: set first tracepoint" - - gdb_trace_setactions "memrange limit test: set first actions" \ - "" \ - "collect \$arg" "^$" - - gdb_test "trace bar" \ - "Tracepoint \[0-9\]+ at .*" \ - "memrange limit test: set second tracepoint" - - gdb_trace_setactions "memrange limit test: set second actions" \ - "" \ - "collect \$arg" "^$" - - gdb_test "trace baz" \ - "Tracepoint \[0-9\]+ at .*" \ - "memrange limit test: set third tracepoint" - - gdb_trace_setactions "memrange limit test: set third actions" \ - "" \ - "collect \$arg" "^$" - - # Set secret artificial memrange limit to four - gdb_test "maint packet QTLimit:memrange:4" \ - "received: .OK." \ - "memrange limit test: set limit to four" - - # Now sending three memranges should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "memrange limit test: send fewer than limit" - } - default { - fail "memrange limit test: send fewer than limit" - } - } - - # Set secret artificial memrange limit to three - gdb_test "maint packet QTLimit:memrange:3" \ - "received: .OK." \ - "memrange limit test: set limit to three" - - # Now sending three memranges should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "memrange limit test: send equal to limit" - } - default { - fail "memrange limit test: send equal to limit" - } - } - - # Set secret artificial memrange limit to two - gdb_test "maint packet QTLimit:memrange:2" \ - "received: .OK." \ - "memrange limit test: set limit to two" - - # Now sending three memranges should fail. - gdb_test "tstart" \ - ".*\[Ee\]rror.*" \ - "memrange limit test: send more than limit" - - # Clean up: - gdb_test "tstop" "" "" - gdb_test "maint packet QTLimit:memrange:FFFFFFFF" "" "" -} - - -proc gdb_bytecode_limit_test { } { - global gdb_prompt - global cr - - # Make sure we're in a sane starting state. - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - gdb_delete_tracepoints - - # Set three tracepoints - gdb_test "trace foo" \ - "Tracepoint \[0-9\]+ at .*" \ - "bytecode limit test: set first tracepoint" - - gdb_trace_setactions "bytecode limit test: set first actions" \ - "" \ - "collect x + n" "^$" - - gdb_test "trace bar" \ - "Tracepoint \[0-9\]+ at .*" \ - "bytecode limit test: set second tracepoint" - - gdb_trace_setactions "bytecode limit test: set second actions" \ - "" \ - "collect y + n" "^$" - - gdb_test "trace baz" \ - "Tracepoint \[0-9\]+ at .*" \ - "bytecode limit test: set third tracepoint" - - gdb_trace_setactions "bytecode limit test: set third actions" \ - "" \ - "collect z + n" "^$" - - # Set secret artificial bytecode limit to a large number - gdb_test "maint packet QTLimit:bytecode:400" \ - "received: .OK." \ - "bytecode limit test: set limit to large" - - # Now sending three bytecodes should still succeed. - send_gdb "tstart\n" - gdb_expect { - -re "$cr$gdb_prompt" { - pass "bytecode limit test: send fewer than limit" - } - default { - fail "bytecode limit test: send fewer than limit" - } - } - - # Set secret artificial bytecode limit to a small number - gdb_test "maint packet QTLimit:bytecode:40" \ - "received: .OK." \ - "bytecode limit test: set limit to small" - - # Now sending three bytecodes should fail. - gdb_test "tstart" \ - ".*\[Ee\]rror.*" \ - "bytecode limit test: send more than limit" - - - # Clean up: - gdb_test "tstop" "" "" - gdb_test "maint packet QTLimit:bytecode:FFFFFFFF" "" "" -} - -proc gdb_trace_limits_tests { } { - global gdb_prompt - - # We generously give ourselves one "pass" if we successfully - # detect that this test cannot be run on this target! - - if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - } - - if [gdb_test "maint packet QTLimit:tp:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - - if [gdb_test "maint packet QTLimit:memrange:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return 1; - } - - if [gdb_test "maint packet QTLimit:bytecode:ffffffff" \ - "received: .OK." ""] then { - pass "This test cannot be run on this target" - return; - } - - gdb_tracepoint_limit_test - gdb_memrange_limit_test - gdb_bytecode_limit_test -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load $binfile - -if [target_info exists gdb_stub] { - gdb_step_for_stub; -} -# Body of test encased in a proc so we can return prematurely. -gdb_trace_limits_tests diff --git a/gdb/testsuite/gdb.trace/packetlen.exp b/gdb/testsuite/gdb.trace/packetlen.exp deleted file mode 100644 index 458f732..0000000 --- a/gdb/testsuite/gdb.trace/packetlen.exp +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - load_lib "emc-support.exp" - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; - gdb_test "set remotetimeout 6" "" "" - set timeout 500 - gdb_target_monitor "$binfile" - # Give a TSTOP and ignore errors, to make sure any previous trace is off - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - send_gdb "compare-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - gdb_suppress_entire_file "Symbol file does not match target! - all tests in this module will fail."; - } - -re ".*$gdb_prompt $" { } - } -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# -# Test collecting a whole bunch of stuff at a single tracepoint. -# The test is whether this crashes GDB. -# - -gdb_delete_tracepoints -gdb_test "trace gdb_c_test" "" "" -gdb_trace_setactions "setup collect actions" \ - "" \ - "collect parm\[0\], parm\[1\], parm\[2\], parm\[3\]" "^$" \ - "collect parm\[4\], parm\[5\], parm\[6\], parm\[7\]" "^$" \ - "collect p, local_reg, local_static, local_static_sizeof" "^$" \ - "collect local_long, stack_ptr, end_of_stack" "^$" \ - "collect gdb_char_test, gdb_short_test, gdb_long_test" "^$" \ - "collect gdb_arr_test, gdb_struct1_test, gdb_struct2_test" "^$" \ - "collect gdb_structp_test, gdb_structpp_test, gdb_union1_test" "^$" \ - "end" "" - -gdb_test "tstart" "" "survive the long packet send" -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,1,2,3,4,5,6" - sleep 5 -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -gdb_test "tstop" "" "confirm: survived the long packet send" - diff --git a/gdb/testsuite/gdb.trace/passc-dyn.exp b/gdb/testsuite/gdb.trace/passc-dyn.exp deleted file mode 100644 index d0c27ea..0000000 --- a/gdb/testsuite/gdb.trace/passc-dyn.exp +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start -if [istarget "m68k-*-elf"] then { - load_lib "emc-support.exp"; - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; - gdb_test "set remotetimeout 6" "" "" - set timeout 500 - gdb_target_monitor $binfile - # Give a TSTOP and ignore errors, to make sure any previous trace is off - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - send_gdb "compare-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - gdb_suppress_entire_file "Symbol file does not match target! - all tests in this module will fail."; - } - -re ".*$gdb_prompt $" { } - } -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# We generously give ourselves one "pass" if we successfully -# detect that this test cannot be run on this target! -if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - -} - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - - -# -# test passcount dynamically (live target) -# - -set baseline [gdb_find_recursion_test_baseline $srcfile]; - -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) - -set testline2 [expr $baseline + 4] -set testline3 [expr $baseline + 5] -set testline4 [expr $baseline + 6] - -# -# test passcount command semantics (live test) -# - -## Set three tracepoints with three different passcounts. -## Verify that the experiment stops after the one with the -## lowest passcount is hit. - -gdb_delete_tracepoints -set tdp2 [gdb_gettpnum "$testline2"] -set tdp3 [gdb_gettpnum "$testline3"] -set tdp4 [gdb_gettpnum "$testline4"] -if { $tdp2 <= 0 || $tdp3 <= 0 || $tdp4 <= 0 } then { - fail "setting tracepoints" - return; -} - -gdb_test "passcount 4 $tdp2" "Setting tracepoint $tdp2's passcount to 4" \ - "4.5: set passcount for tracepoint $tdp2" -gdb_test "passcount 2 $tdp3" "Setting tracepoint $tdp3's passcount to 2" \ - "4.5: set passcount for tracepoint $tdp3" -gdb_test "passcount 3 $tdp4" "Setting tracepoint $tdp4's passcount to 3" \ - "4.5: set passcount for tracepoint $tdp4" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,1,2,3,4,5,6" - sleep 5 - gdb_emclaptop_command "85,7,8,9,A,B,C" - sleep 5 - gdb_emclaptop_command "85,D,E,F,10,11,12" - sleep 5 - # gdb_test "tstop" - ## - ## Note! Must NOT give the tstop command, because the passcount - ## has already stopped the experiment. You would not - ## think this would be an error, but in EMC's mind it is... - ## -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" - gdb_test "tstop" "" "" -} - -gdb_test "tfind none" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x -1 x" ""] { - gdb_suppress_entire_file "0: tfind none failed" -} - -gdb_test "tfind tracepoint $tdp2" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 0 x" ""] { - gdb_suppress_entire_file "1: first tfind failed" -} - -gdb_test "tfind tracepoint $tdp3" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 1 x" ""] { - gdb_suppress_entire_file "2: second tfind failed" -} - -gdb_test "tfind tracepoint $tdp4" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 2 x" ""] { - gdb_suppress_entire_file "3: third tfind failed" -} - -gdb_test "tfind tracepoint $tdp2" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 3 x" ""] { - gdb_suppress_entire_file "4: fourth tfind failed" -} - -gdb_test "tfind tracepoint $tdp3" "" "" -if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 4 x" ""] { - gdb_suppress_entire_file "5: fifth tfind failed" -} - -## We should now be at the last frame, because this frame's passcount -## should have caused collection to stop. If we do a tfind now, -## it should fail. - -gdb_test "tfind" "failed to find.*" "4.5: dynamic passcount test" - -# Finished! -gdb_test "tfind none" "" "" - diff --git a/gdb/testsuite/gdb.trace/passcount.exp b/gdb/testsuite/gdb.trace/passcount.exp deleted file mode 100644 index 1777693..0000000 --- a/gdb/testsuite/gdb.trace/passcount.exp +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start -if [istarget "m68k-*-elf"] then { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -set testline1 [expr $baseline + 3] - -# -# test "passcount" command -# - -gdb_delete_tracepoints -set trcpt1 [gdb_gettpnum gdb_c_test]; -set trcpt2 [gdb_gettpnum gdb_asm_test]; -set trcpt3 [gdb_gettpnum $testline1]; -if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then { - fail "setting tracepoints" - return; -} - -# 4.1 passcount of specified tracepoint - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_recursion_test.*" \ - "4.1a: set three tracepoints, passcounts all zero" - -gdb_test "passcount 2 $trcpt1" \ - "Setting tracepoint $trcpt1.s passcount to 2" \ - "4.1b: set 1st tracepoint's passcount to two" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_recursion_test.*" \ - "4.1c: verify 1st tracepoint's passcount set to two" - -gdb_test "passcount 4 $trcpt2" \ - "Setting tracepoint $trcpt2.s passcount to 4" \ - "4.1d: set 2nd tracepoint's passcount to four" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_recursion_test.*" \ - "4.1c: verify 2nd tracepoint's passcount set to four" - -# 4.2 passcount of last (default) tracepoint - -gdb_test "passcount 6" \ - "Setting tracepoint $trcpt3.s passcount to 6" \ - "4.2b: set last (default) tp's passcount to six" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+6\[\t \]+.*in gdb_recursion_test.*" \ - "4.2b: verify last (default) tp's passcount set to six" - -# 4.3 run until stopped explicitly by user -# [deferred to dynamic test section] - -# 4.4 reset the previously set passcounts to new values - -gdb_test "passcount 7" \ - "Setting tracepoint $trcpt3.s passcount to 7" \ - "4.4a: reset last (default) tp's passcount to seven" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+7\[\t \]+.*in gdb_recursion_test.*" \ - "4.4a: verify reset last (default) tp's passcount to seven" - -gdb_test "passcount 5 $trcpt2" \ - "Setting tracepoint $trcpt2.s passcount to 5" \ - "4.4b: reset second tracepoint's passcount to five" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+2\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+5\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+7\[\t \]+.*in gdb_recursion_test.*" \ - "4.4c: verify reset second tracepoint's passcount to five" - -# 4.20 <FIXME test number> passcount for "all" - -gdb_test "passcount 3 all" \ - ".*$trcpt1.s pass.* 3.*$trcpt2.s pass.* 3.*$trcpt3.s pass.* 3" \ - "4.20a: set all three passcounts to three" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+3\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+3\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+3\[\t \]+.*in gdb_recursion_test.*" \ - "4.20a: set all three passcounts to three" - -gdb_test "passcount 4 all" \ - ".*$trcpt1.s pass.* 4.*$trcpt2.s pass.* 4.*$trcpt3.s pass.* 4" \ - "4.20a: reset all three passcounts to four" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_recursion_test.*" \ - "4.20b: reset all three passcounts to four" - -# 4.5 Verify trace stops on first "satisfied" passcount -# [deferred to dynamic test section] - -# 4.6 minimum passcount boundary condition - -gdb_test "passcount 0 $trcpt1" \ - "Setting tracepoint $trcpt1.s passcount to 0" \ - "4.6: set passcount to zero" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+0\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_recursion_test.*" \ - "4.6: set passcount to zero" - -# 4.7 (test a very large passcount) - -gdb_test "passcount 32767 $trcpt1" \ - "Setting tracepoint $trcpt1.s passcount to 32767" \ - "4.7: set passcount to large number (32767)" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+$hex\[\t \]+32767\[\t \]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+$hex\[\t \]+4\[\t \]+.*in gdb_recursion_test.*" \ - "4.7: set passcount to large number (32767)" - -# 4.8 set passcount for invalid tracepoint - -gdb_test "passcount 1 [expr $trcpt2 + $trcpt3]" \ - "No tracepoint number [expr $trcpt2 + $trcpt3]." \ - "4.8: invalid tracepoint number in passcount" - -# 4.9 help passcount -gdb_test "help passcount" "Set the passcount for a tracepoint.*" \ - "4.9: help passcount" - diff --git a/gdb/testsuite/gdb.trace/report.exp b/gdb/testsuite/gdb.trace/report.exp deleted file mode 100644 index 28449fa..0000000 --- a/gdb/testsuite/gdb.trace/report.exp +++ /dev/null @@ -1,421 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - load_lib "emc-support.exp"; - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; - gdb_test "set remotetimeout 6" "" "" - set timeout 500 - gdb_target_monitor $binfile - # Give a TSTOP and ignore errors, to make sure any previous trace is off - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - send_gdb "compare-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - gdb_suppress_entire_file "Symbol file does not match target! - all tests in this module will fail."; - } - -re ".*$gdb_prompt $" { } - } -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# We generously give ourselves one "pass" if we successfully -# detect that this test cannot be run on this target! -if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - -} - -set cr "\[\r\n\]+" - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# -# test general reporting of trace experiment results -# - -set testline1 0 -set testline2 0 -set testline3 0 -set testline4 0 -set testline5 0 -set testline6 0 - -set arg1 1 -set arg2 2 -set arg3 3 -set arg4 4 -set arg5 5 -set arg6 6 - -set gdb_recursion_test_baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $gdb_recursion_test_baseline == -1 } { - fail "Could not find gdb_recursion_test function" - return; -} - -send_gdb "list $gdb_recursion_test_baseline, +12\n" -gdb_expect { - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 1 " { - set testline1 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 2 " { - set testline2 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 3 " { - set testline3 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 4 " { - set testline4 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 5 " { - set testline5 $expect_out(1,string) - exp_continue - } - -re "\[\r\n\](\[0-9\]+)\[^\r\n\]+gdbtestline 6 " { - set testline6 $expect_out(1,string) - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($testline1 == 0) || ($testline2 == 0) || ($testline3 == 0) || ($testline4 == 0) || ($testline5 == 0) || ($testline6 == 0) } { - gdb_suppress_entire_file "failed to locate test source lines: -all tests in this module will fail." - } - } - default { - gdb_suppress_entire_file "failed to locate test source lines (def): -all tests in this module will fail." - } -} - -# -# Setup trace experiment. This will involve: -# 1) a tracepoint where nothing is collected -# 2) a tracepoint where only regs are collected -# 3) a tracepoint where only args are collected -# 4) a tracepoint where only locals are collected -# 5) a tracepoint where some amount of stack memory is collected. -# 6) a tracepoint where some expressions are collected. -# - -gdb_delete_tracepoints -set tdp1 [gdb_gettpnum $testline1] -set tdp2 [gdb_gettpnum $testline2] -set tdp3 [gdb_gettpnum $testline3] -set tdp4 [gdb_gettpnum $testline4] -set tdp5 [gdb_gettpnum $testline5] -set tdp6 [gdb_gettpnum $testline6] - -if { $tdp1 <= 0 || $tdp2 <= 0 || $tdp3 <= 0 || \ - $tdp4 <= 0 || $tdp5 <= 0 || $tdp6 <= 0 } then { - fail "setting tracepoints failed" - return; -} - -gdb_trace_setactions "9.x: setup TP to collect regs" \ - "$tdp2" \ - "collect \$regs" "^$" - - -gdb_trace_setactions "9.x: setup TP to collect args" \ - "$tdp3" \ - "collect \$args" "^$" - -gdb_trace_setactions "9.x: setup TP to collect locals" \ - "$tdp4" \ - "collect \$locs" "^$" - -gdb_trace_setactions "9.x: setup TP to collect stack memory" \ - "$tdp5" \ - "collect \$fp, \*\(void \*\*\) \$sp @ 64" "^$" - -gdb_trace_setactions "9.x: setup TP to collect expressions" \ - "$tdp6" \ - "collect gdb_char_test, gdb_short_test, gdb_long_test" "^$" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,$arg1,$arg2,$arg3,$arg4,$arg5,$arg6" - sleep 5 - -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -gdb_test "tstop" "" "" - -# -# 9.1 test the tdump command -# - -set timeout 60 - -gdb_tfind_test "9.1: init: make sure not debugging any trace frame" "none" "-1" - -gdb_tfind_test "9.1: find frame for TP $tdp1" "tracepoint $tdp1" \ - "\$tracepoint" "$tdp1" - -# Nothing was collected at tdp1, so this tdump should be empty. -gdb_test "tdump" \ - "Data collected at tracepoint $tdp1, trace frame $decimal:" \ - "9.1: tdump, nothing collected" - -gdb_tfind_test "9.1: find frame for TP $tdp2" "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2" - -# regs were collected at tdp2. -# How to match for the output of "info registers" on an unknown architecture? -# For now, assume that every architecture has a register called "pc". -gdb_test "tdump" \ - "\[\r\n\]pc .*" \ - "9.1: tdump, regs collected" - -gdb_tfind_test "9.1: find frame for TP $tdp3" "tracepoint $tdp3" \ - "\$tracepoint" "$tdp3" - -# args were collected at tdp3 -gdb_test "tdump" \ - "depth = 3.*q1 = 2.*q2 = 2.*q3 = 3.*q4 = 4.*q5 = 5.*q6 = 6" \ - "9.1: tdump, args collected" - -gdb_tfind_test "9.1: find frame for TP $tdp4" "tracepoint $tdp4" \ - "\$tracepoint" "$tdp4" - -# locals were collected at tdp4 -gdb_test "tdump" \ - "q = 1" \ - "9.1: tdump, locals collected" - -gdb_tfind_test "9.1: find frame for TP $tdp5" "tracepoint $tdp5" \ - "\$tracepoint" "$tdp5" - -# stack was collected at tdp5, plus the frame pointer -gdb_test "tdump" \ - ".fp = .*sp @ 64 = .*" \ - "9.1: tdump, memrange collected" - -gdb_tfind_test "9.1: find frame for TP $tdp6" "tracepoint $tdp6" \ - "\$tracepoint" "$tdp6" - -# globals were collected at tdp6 -gdb_test "tdump" \ - "gdb_char_test = 1.*gdb_short_test = 2.*gdb_long_test = 3" \ - "9.1: tdump, global variables collected" - -# 9.2 test tdump with arguments -# [no go, tdump doesn't have any arguments] - -# 9.3 help tdump - -gdb_test "help tdump" "Print everything collected at the current.*" \ - "9.3: help tdump" - -set linecount1 0 -set linecount2 0 -set linecount3 0 -set linecount4 0 -set linecount5 0 -set linecount6 0 - -gdb_tfind_test "11.x, 12.1: find start frame" "start" "0" - -# -# 11.x test built-in trace variables $trace_frame, $trace_line etc. -# - -gdb_test "printf \"x %d x\\n\", \$trace_frame" "x 0 x" \ - "11.1: test \$trace_frame" - -gdb_test "printf \"x %d x\\n\", \$tracepoint" "x $tdp1 x" \ - "11.2: test \$tracepoint" - -gdb_test "printf \"x %d x\\n\", \$trace_line" "x $testline1 x" \ - "11.3: test \$trace_line" - -send_gdb "print \$trace_file\n" -gdb_expect { - -re "\\$\[0-9\]+ = \"$srcfile\"\[\r\n\]+$gdb_prompt $" { - pass "11.4: test \$trace_file" - } - -re "\\$\[0-9\]+ = \"$srcdir/$subdir/$srcfile\"\[\r\n\]+$gdb_prompt $" { - pass "11.4: test \$trace_file" - } - -re "$gdb_prompt $" { - fail "11.4: test \$trace_file" - } - timeout { - fail "11.4: test \$trace_file (timeout)" - } -} - -#gdb_test "print \$trace_file" "\"$srcdir/$subdir/$srcfile\"" \ -# "11.4: test \$trace_file" - -# -# 12.x test report generation using arbitrary GDB commands, loops etc. -# - -send_gdb "while \$trace_frame != -1\n output \$trace_file\n printf \", line \%d \(tracepoint #\%d\)\\n\", \$trace_line, \$tracepoint\n tfind\n end\n" -gdb_expect { - -re " line $testline1 .tracepoint .$tdp1" { - set linecount1 [expr $linecount1 + 1] - exp_continue - } - -re " line $testline2 .tracepoint .$tdp2" { - set linecount2 [expr $linecount2 + 1] - exp_continue - } - -re " line $testline3 .tracepoint .$tdp3" { - set linecount3 [expr $linecount3 + 1] - exp_continue - } - -re " line $testline4 .tracepoint .$tdp4" { - set linecount4 [expr $linecount4 + 1] - exp_continue - } - -re " line $testline5 .tracepoint .$tdp5" { - set linecount5 [expr $linecount5 + 1] - exp_continue - } - -re " line $testline6 .tracepoint .$tdp6" { - set linecount6 [expr $linecount6 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount1 < 4) || ($linecount2 < 4) || ($linecount3 < 4) || ($linecount4 < 4) || ($linecount5 < 4) || ($linecount6 < 4) } { - fail "12.1: trace report #1" - } else { - pass "12.1: trace report #1" - } - } - timeout { - fail "12.1: trace report #1 (timeout)" - } -} - -gdb_tfind_test "12.2: find first TDP #2 frame" "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2" - -set linecount2 0 - -send_gdb "while \$trace_frame != -1\n printf \"tracepoint #\%d, FP 0x\%08x, SP 0x\%08x, PC 0x%08x\\n\", \$tracepoint, \$fp, \$sp, \$pc\n tfind tracepoint\n end\n" -gdb_expect { - -re "tracepoint #$tdp2, FP $hex, SP $hex, PC $hex" { - set linecount2 [expr $linecount2 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount2 < 4) } { - fail "12.2: trace report #2" - } else { - pass "12.2: trace report #2" - } - } - timeout { - fail "12.2: trace report #2 (timeout)" - } -} - -gdb_tfind_test "12.3: find first TDP #3 frame" "tracepoint $tdp3" \ - "\$tracepoint" "$tdp3" - -set linecount3 0 - -send_gdb "while \$trace_frame != -1\n printf \"TDP #\%d, frame \%d: depth = \%d, q1 = \%d\\n\", \$tracepoint, \$trace_frame, depth, q1\n tfind tracepoint\n end\n" -gdb_expect { - -re "TDP #$tdp3, frame $decimal: depth = $decimal, q1 = $decimal" { - set linecount3 [expr $linecount3 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount3 < 4) } { - fail "12.3: trace report #3" - } else { - pass "12.3: trace report #3" - } - } - timeout { - fail "12.3: trace report #3 (timeout)" - } -} - -gdb_tfind_test "12.4: find first TDP #6 frame" "tracepoint $tdp6" \ - "\$tracepoint" "$tdp6" - -set linecount6 0 - -send_gdb "while \$trace_frame != -1\n printf \"TDP #\%d, frame %d: char_test = \%d, long_test = \%d\\n\", \$tracepoint, \$trace_frame, gdb_char_test, gdb_long_test\n tfind tracepoint\n end\n" -gdb_expect { - -re "TDP #$tdp6, frame $decimal: char_test = $arg1, long_test = $arg3" { - set linecount6 [expr $linecount6 + 1] - exp_continue - } - -re ".*$gdb_prompt $" { - if { ($linecount6 < 4) } { - fail "12.4: trace report #4" - } else { - pass "12.4: trace report #4" - } - } - timeout { - fail "12.4: trace report #4 (timeout)" - } -} - -# Finished! -gdb_tfind_test "finished: make sure not debugging any trace frame" "none" "-1" diff --git a/gdb/testsuite/gdb.trace/save-trace.exp b/gdb/testsuite/gdb.trace/save-trace.exp deleted file mode 100644 index b461ad8..0000000 --- a/gdb/testsuite/gdb.trace/save-trace.exp +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -set testline1 [expr $baseline + 4] -set testline2 [expr $baseline + 5] -set testline3 [expr $baseline + 6] -set testline4 [expr $baseline + 7] -set testline5 [expr $baseline + 8] -set testline6 [expr $baseline + 9] - -# -# test save-trace command -# - -# setup a set of tracepoints to save - -gdb_delete_tracepoints - -foreach x { 1 2 3 4 5 6 } { - set testline [expr \$testline$x]; - set trcpt [gdb_gettpnum $testline]; - set trcpt$x $trcpt; - gdb_test "passcount $x" \ - "Setting tracepoint $trcpt.* to $x" \ - "10.x: set passcount for tracepoint $trcpt" - - gdb_trace_setactions "10.x: set actions for tracepoint $x" \ - "" \ - "collect q$x" "^$" \ - "while-stepping $x" "^$" \ - "collect q$x" "^$" \ - "end" "^$" -} - - -proc gdb_verify_tracepoints { testname } { - global gdb_prompt; - - set ws "\[\t \]+" - set nl "\[\r\n\]+" - set ourstate 1; - set result "pass"; - send_gdb "info tracepoints\n"; - gdb_expect 10 { - -re "y\[\t \]+0x\[0-9a-fA-F\]+\[\t \]+(\[0-9\]+)\[\t \]+(\[0-9\]+)\[\t \]+in gdb_recursion_test\[^\r\n\]+" { - if { $expect_out(1,string) != $expect_out(2,string) } { - #set result "fail"; - } - if { $expect_out(1,string) != $ourstate } { - set result "fail"; - } - incr ourstate; - exp_continue; - } - -re "$gdb_prompt $" { - if { $ourstate >= 6 } { - set result "pass"; - } else { - set result "fail"; - } - } - default { - set result "fail"; - } - } - $result $testname; - return $result; -} - -gdb_verify_tracepoints "10.x: verify trace setup"; - -# 10.1 Save current tracepoint definitions to a file - -remote_file host delete savetrace.tr -gdb_test "save-tracepoints savetrace.tr" \ - "Tracepoints saved to file 'savetrace.tr'." \ - "10.1: save tracepoint definitions" - -# 10.2 Read back tracepoint definitions - -gdb_delete_tracepoints -gdb_test "info tracepoints" "No tracepoints." "10.2: delete tracepoints" -gdb_test "source savetrace.tr" \ - "Tracepoint \[0-9\]+ at .*" \ - "10.2: read back saved tracepoints" -gdb_verify_tracepoints "10.2: verify recovered tracepoints"; -remote_file host delete savetrace.tr - -# 10.3 repeat with a path to the file - -remote_file host delete $objdir/savetrace.tr -gdb_test "save-tracepoints $objdir/savetrace.tr" \ - "Tracepoints saved to file '$objdir/savetrace.tr'." \ - "10.3: save tracepoint definitions, full path" - -gdb_delete_tracepoints -gdb_test "info tracepoints" "No tracepoints." "10.3: delete tracepoints" -gdb_test "source $objdir/savetrace.tr" \ - "Tracepoint \[0-9\]+ at .*" \ - "10.4: read saved tracepoints, full path" -gdb_verify_tracepoints "10.3: verify recovered tracepoints, full path"; -remote_file host delete $objdir/savetrace.tr - -# 10.5 invalid filename -# [deferred -- not sure what a good invalid filename would be] - -# 10.6 save-trace (file already exists) -# [expect it to clobber the old one] - -# 10.7 help save-tracepoints - -gdb_test "help save-tracepoints" \ - "Save current tracepoint definitions as a script.*" \ - "10.7: help save-tracepoints" diff --git a/gdb/testsuite/gdb.trace/tfind.exp b/gdb/testsuite/gdb.trace/tfind.exp deleted file mode 100644 index f678975..0000000 --- a/gdb/testsuite/gdb.trace/tfind.exp +++ /dev/null @@ -1,405 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - load_lib "emc-support.exp"; - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; - gdb_test "set remotetimeout 6" "" "" - set timeout 500 - gdb_target_monitor $binfile - # Give a TSTOP and ignore errors, to make sure any previous trace is off - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - send_gdb "compare-sections CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - gdb_suppress_entire_file "Symbol file does not match target! - all tests in this module will fail."; - } - -re ".*$gdb_prompt $" { } - } -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile -O1" \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# We generously give ourselves one "pass" if we successfully -# detect that this test cannot be run on this target! -if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - -} - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -set testline1 [expr $baseline + 1] -set testline2 [expr $baseline + 5] -set testline3 [expr $baseline + 6] -set testline4 [expr $baseline + 7] -set testline5 [expr $baseline + 8] - -# -# test tfind command -# - -gdb_delete_tracepoints -set tdp1 [gdb_gettpnum "\*gdb_recursion_test"] -set tdp2 [gdb_gettpnum $testline2] -set tdp3 [gdb_gettpnum $testline3] -set tdp4 [gdb_gettpnum $testline4] -set tdp5 [gdb_gettpnum $testline5] -if { $tdp1 <= 0 || $tdp2 <= 0 || $tdp3 <= 0 || \ - $tdp4 <= 0 || $tdp5 <= 0 } then { - fail "setting tracepoints" - return; -} - -# 6.1 test tstart command -send_gdb "tstart\n" -gdb_expect { - -re "Trace can only be run on remote targets.*$gdb_prompt $" { - fail "6.1: tstart (not connected to remote?)" - return; - } - -re "Target does not support this command.*$gdb_prompt $" { - fail "6.1: tstart (connected to wrong target?)" - return; - } - -re "Target returns error code.*$gdb_prompt $" { - fail "6.1: tstart (connected to wrong target?)" - return; - } - -re "$gdb_prompt $" { - pass "6.1: tstart" - } - default { - fail "6.1: tstart (default)" - return; - } -} - -# test tstatus (when trace on) -gdb_test "tstatus" "\[Tt\]race is running.*" "test tstatus on" - -# 6.2 test help tstart -gdb_test "help tstart" "Start trace data collection." "6.2: help tstart" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,1,2,3,4,5,6" - sleep 5 - - gdb_emclaptop_command "85,7,8,9,A,B,C" - sleep 5 -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -# 7.1 test tstop command -send_gdb "tstop\n" -gdb_expect { - -re "Trace can only be run on remote targets.*$gdb_prompt $" { - fail "7.1: tstop (not connected to remote?)" - return; - } - -re "Target does not support this command.*$gdb_prompt $" { - fail "7.1: tstop (connected to wrong target?)" - return; - } - -re "Target returns error code.*$gdb_prompt $" { - fail "7.1: tstop (connected to wrong target?)" - return; - } - -re "$gdb_prompt $" { - pass "7.1: tstop" - } - default { - fail "7.1: tstop (default)" - return; - } -} - -# 7.2 test help tstop -gdb_test "help tstop" "Stop trace data collection." "7.2: help tstop" - -# test tstatus (when trace off) -gdb_test "tstatus" "\[Tt\]race.* not running.*" "test tstatus off" - -## record starting PC -set save_pc [gdb_readexpr "(unsigned long) \$pc"]; -if { $save_pc == -1 } then { - fail "could not read PC" - return; -} - -# 8.7 tfind start -## check $trace_frame == 0 -gdb_tfind_test "8.7: tfind start command" "start" "0"; -## check $pc != startPC -gdb_test "printf \"x \%d x\\n\", \$pc != $save_pc" \ - "x 1 x" \ - "8.7b: tfind start" - -# 8.8 tfind none -## check $trace_frame == -1 -gdb_tfind_test "8.8: tfind none" "none" "-1"; -## check $pc == startPC -gdb_test "printf \"x \%d x\\n\", \$pc == $save_pc" \ - "x 1 x" \ - "8.8b: tfind none (restores non-trace PC)" - -# 8.9 tfind end -## check $trace_frame == -1 -gdb_tfind_test "8.9: tfind end, selects no frame" "end" "-1"; -## check $pc == startPC -gdb_test "printf \"x \%d x\\n\", \$pc == $save_pc" \ - "x 1 x" \ - "8.9b: tfind end (restores non-tracing PC)" - -# 8.1 tfind n -## check $trace_frame == n -gdb_tfind_test "8.1: tfind 1" "1" "1" -## check $trace_line corresponds to tracepoint for frame n -gdb_test "print \$trace_line" "$testline2" "8.1b: tfind 1 (correct line)" - -# 8.28 tfind invalid n (big number) -## check "not found" error -## check $trace_frame != n -gdb_test "tfind 32767" \ - "failed to find.*" \ - "8.28: tfind <n> command rejects invalid frame number" - -gdb_test "printf \"x \%d x\\n\", \$trace_frame == 32767" \ - "x 0 x" \ - "8.28: tfind <n> rejected bad input (32767)" - -# 8.31 tfind negative n -## check error -gdb_test "tfind -3" "invalid input.*" "8.31: tfind <n> rejects negative input" -## check $trace_frame != -n -gdb_test "printf \"x \%d x\\n\", \$trace_frame == -3" "x 0 x" \ - "8.31: tfind <n> rejected negative input (-3)" - -# 8.10 tfind <no arg> -## check $trace_frame += 1 - -gdb_tfind_test "8.10: tfind start" "start" "0"; -gdb_test "print \$trace_line" "$baseline" \ - "8.10: tfind 0 (correct line $baseline)" -gdb_tfind_test "8.10: tfind noargument 1" "" "1"; -gdb_test "print \$trace_line" "$testline2" \ - "8.10: tfind 1 (correct line $testline2)" -gdb_tfind_test "8.10: tfind noargument 2" "" "2"; -gdb_test "print \$trace_line" "$testline3" \ - "8.10: tfind 2 (correct line $testline3)" -gdb_tfind_test "8.10: tfind noargument 3" "" "3"; -gdb_test "print \$trace_line" "$testline4" \ - "8.10: tfind 3 (correct line $testline4)" - -gdb_tfind_test "8.11: tfind 3" "3" "3"; -gdb_test "print \$trace_line" "$testline4" \ - "8.11: tfind 3 (correct line $testline4)" -gdb_tfind_test "8.11: tfind backward 2" "-" "2"; -gdb_test "print \$trace_line" "$testline3" \ - "8.11: tfind 2 (correct line $testline3)" -gdb_tfind_test "8.11: tfind backward 1" "-" "1"; -gdb_test "print \$trace_line" "$testline2" \ - "8.11: tfind 1 (correct line $testline2)" -gdb_tfind_test "8.11: tfind backward 0" "-" "0"; -gdb_test "print \$trace_line" "$baseline" \ - "8.11: tfind 0 (correct line $baseline)" - -gdb_tfind_test "8.12: tfind none" "none" "-1"; -gdb_tfind_test "8.12: tfind tracepoint <n>" "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2"; -gdb_test "print \$trace_line" "$testline2" \ - "8.12: tfind tracepoint <n> (line $testline2)" - -gdb_tfind_test "8.25: tfind none" "none" "-1"; -gdb_test "tfind tracepoint 0" "failed to find.*" \ - "8.25: tfind tracepoint rejects zero" -gdb_test "tfind tracepoint 32767" "failed to find.*" \ - "8.25: tfind tracepoint rejects nonexistant tracepoint (32767)" -gdb_test "tfind tracepoint -1" "failed to find.*" \ - "8.25: tfind tracepoint rejects nonexistant tracepoint (-1)" - -# 8.37 tfind tracepoint n where n no longer exists (but used to) -gdb_test "delete trace $tdp2" "" "" -gdb_tfind_test "8.37: tfind none" "none" "-1"; -gdb_tfind_test "8.37: tfind deleted tracepoint" \ - "tracepoint $tdp2" \ - "\$tracepoint" "$tdp2"; -gdb_test "print \$trace_line" "$testline2" \ - "8.37: tfind deleted tracepoint (line $testline2)" - -# 8.13 tfind tracepoint <no arg> -## check $tracepoint same before and after, $trace_frame changed - -gdb_tfind_test "8.13: tfind none" "none" "-1"; -gdb_tfind_test "8.13: tracepoint $tdp1" "tracepoint $tdp1" \ - "\$tracepoint" "$tdp1"; -gdb_test "print \$trace_line" "$baseline" \ - "8.13: tfind tracepoint $tdp1 (line $baseline)" -gdb_test "set \$save_frame = \$trace_frame" "" "" -gdb_tfind_test "8.13: tracepoint <no arg>" "tracepoint" \ - "\$tracepoint" "$tdp1"; -gdb_test "printf \"x \%d x\\n\", \$trace_frame == \$save_frame" \ - "x 0 x" \ - "8.13: tracepoint <no arg>, tracepoint number unchanged"] - -# 1.12 set tracepoint in prologue -# -# tdp1 was set at *gdb_recursion_test (ie. the hard address of the -# function, before the prologue). Test to see that it succeeded. -# Current pc should be equal to the address of the function. - -gdb_test "printf \"x \%d x\\n\", \$pc == gdb_recursion_test" \ - "x 1 x" \ - "1.12: set tracepoint in prologue" - -# 8.14 tfind pc x -## check pc == x, $trace_frame != -1 -gdb_tfind_test "8.14: tfind 3" "3" "3" -gdb_test "print \$trace_line" "$testline4" \ - "8.14: tfind 3 (line $testline4)" - -gdb_test "set \$test_pc = \$pc" "" "" -gdb_tfind_test "8.14: tfind none" "none" "-1" -gdb_tfind_test "8.14: tfind pc" "pc \$test_pc" "\$trace_frame != -1" "1"; -gdb_test "print \$trace_line" "$testline4" \ - "8.14: tfind pc x (line $testline4)" -gdb_test "printf \"x \%d x\\n\", \$pc == \$test_pc" \ - "x 1 x" \ - "8.14: tfind pc x" - -# 8.15 tfind pc <no arg> -## check pc same before and after, $trace_frame changed -gdb_tfind_test "8.15: tfind 3" "3" "3" -gdb_test "print \$trace_line" "$testline4" \ - "8.15: tfind 3 (line $testline4)" -gdb_test "set \$test_pc = \$pc" "" "" -gdb_tfind_test "8.15: tfind pc" "pc" "\$pc == \$test_pc" "1" -gdb_test "print \$trace_line" "$testline4" \ - "8.15: tfind pc (line $testline4)" -gdb_test "printf \"x \%d x\\n\", \$trace_frame != 3" "x 1 x" \ - "8.15: trace frame didn't change" - -# 8.26 tfind pc invalid x -## check error, pc != x (trace_frame unchanged?) -gdb_tfind_test "8.26: tfind start" "start" "0" -gdb_test "tfind pc 0" "failed to find.*" "8.26: tfind pc zero" -gdb_test "tfind pc -1" "failed to find.*" "8.26: tfind pc -1" - -# 8.16 tfind line n -## check #trace_frame != -1, $trace_line == n -gdb_tfind_test "8.16: tfind none" "none" "-1" -gdb_tfind_test "8.16: tfind line $testline3" \ - "line $testline3" \ - "\$trace_line == $testline3" "1" - -# 8.17 tfind line <no arg> (# 8.19, 8.20) -## check $trace_line changed, no error, pc changed, frame changed, tdp changed -gdb_tfind_test "8.17: tfind none" "none" "-1" -gdb_tfind_test "8.17: tfind line $testline3" "line $testline3" "\$trace_line == $testline3" "1" -gdb_tfind_test "8.17: tfind line <no arg>" "line" "\$trace_line != $testline3" "1" - -# 8.36 tfind and disassembly -gdb_tfind_test "8.36: tfind start" "start" "0" -set timeout 60 -send_gdb "disassemble gdb_c_test\n" -# look for disassembly of function label -gdb_expect { - -re "<gdb_c_test>:.*$gdb_prompt $" { pass "8.36: trace disassembly" } - -re ".*$gdb_prompt $" { fail "8.36: trace disassembly" } - timeout { fail "8.36: trace disassembly (timeout)" } -} - -gdb_test "tfind line 0" \ - "out of range.*|failed to find.*" \ - "8.18: tfind line 0"; -gdb_test "tfind line 32767" \ - "out of range.*|failed to find.*" \ - "8.27: tfind line 32767"; -gdb_test "tfind line NoSuChFiLe.c:$baseline" \ - "No source file named.*" \ - "8.27: tfind line in bad source file"; - -# 8.32 tfind invalid subcommand (tfind foo) -## check error -gdb_test "tfind NoSuChOpTiOn 21" \ - "No symbol.*|\[Ww\]arning.*|\[Ee\]rror.*" \ - "8.32: tfind with bad subcommand" - -# 8.38 test help tfind -gdb_test "help tfind" "Select a trace frame.*" \ - "8.38: help tfind" -gdb_test "help tfind pc" "Select a trace frame by PC.*" \ - "8.38: help tfind PC" -gdb_test "help tfind end" "Synonym for 'none'.*" \ - "8.38: help tfind end" -gdb_test "help tfind none" "De-select any trace frame.*" \ - "8.38: help tfind none" -gdb_test "help tfind line" "Select a trace frame by source line.*" \ - "8.38: help tfind line" -gdb_test "help tfind start" "Select the first trace frame.*" \ - "8.38: help tfind start" -gdb_test "help tfind range" "Select a trace frame whose PC is in.*" \ - "8.38: help tfind range" -gdb_test "help tfind trace" "Select a trace frame by tracepoint number.*" \ - "8.38: help tfind tracepoint" - -# Finished! -gdb_tfind_test "8.17: tfind none" "none" "-1" diff --git a/gdb/testsuite/gdb.trace/tracecmd.exp b/gdb/testsuite/gdb.trace/tracecmd.exp deleted file mode 100644 index d79c98e..0000000 --- a/gdb/testsuite/gdb.trace/tracecmd.exp +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start -if [istarget "m68k-*-elf"] then { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# define relative source line numbers: -# all subsequent line numbers are relative to this first one (baseline) -set baseline [gdb_find_recursion_test_baseline $srcfile]; -if { $baseline == -1 } then { - fail "Could not find gdb_recursion_test function" - return; -} - -set testline1 [expr $baseline + 1] -set testline2 [expr $baseline + 3] - -# -# test "help tracepoints" -# - -set helpcnt 0; -send_gdb "help tracepoints\n" -gdb_expect { - -re "Tracing of program execution without stopping the program." { - incr helpcnt; - exp_continue - } - -re "actions -- Specify the actions to be taken at a tracepoint" { - incr helpcnt; - exp_continue - } - -re "collect -- Specify one or more data items to be collected" { - incr helpcnt; - exp_continue - } - -re "delete tracepoints -- Delete specified tracepoints" { - incr helpcnt; - exp_continue - } - -re "end -- Ends a list of.*actions" { - incr helpcnt; - exp_continue - } - -re "info tracepoints -- Status of tracepoints" { - incr helpcnt; - exp_continue - } - -re "passcount -- Set the passcount for a tracepoint" { - incr helpcnt; - exp_continue - } - -re "save-tracepoints -- Save current tracepoint definitions" { - incr helpcnt; - exp_continue - } - -re "tdump -- Print everything collected at the current tracepoint" { - incr helpcnt; - exp_continue - } - -re "tfind -- Select a trace frame" { - incr helpcnt; - exp_continue - } - -re "tfind end -- Synonym for 'none'" { - incr helpcnt; - exp_continue - } - -re "tfind line -- Select a trace frame by line number" { - incr helpcnt; - exp_continue - } - -re "tfind none -- De-select any trace frame and resume 'live' debugging" { - incr helpcnt; - exp_continue - } - -re "tfind outside -- Select a trace frame whose PC is outside" { - incr helpcnt; - exp_continue - } - -re "tfind pc -- Select a trace frame by PC" { - incr helpcnt; - exp_continue - } - -re "tfind range -- Select a trace frame whose PC is in the given" { - incr helpcnt; - exp_continue - } - -re "tfind start -- Select the first trace frame in the trace buffer" { - incr helpcnt; - exp_continue - } - -re "tfind tracepoint -- Select a trace frame by tracepoint number" { - incr helpcnt; - exp_continue - } - -re "trace -- Set a tracepoint at a specified line or function or addr" { - incr helpcnt; - exp_continue - } - -re "tstart -- Start trace data collection" { - incr helpcnt; - exp_continue - } - -re "tstatus -- Display the status of the current trace data collection" { - incr helpcnt; - exp_continue - } - -re "tstop -- Stop trace data collection" { - incr helpcnt; - exp_continue - } - -re "while-stepping -- Specify single-stepping behavior at a tracepoint" { - incr helpcnt; - exp_continue - } - -re ".*$gdb_prompt $" { - if { $helpcnt == 21 } { - pass "1.0: help tracepoints" - } else { - warning "$helpcnt"; - fail "1.0: help tracepoints" - } - } -} - -# -# test trace command: -# - -# 1.1 trace source line -gdb_delete_tracepoints -gdb_test "trace $srcfile:$testline2" \ - "Tracepoint $decimal at $hex: file.*$srcfile, line $testline2." \ - "1.1a: set tracepoint at sourceline" -gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline2" \ - "1.1b: trace sourcefile:line" - -# 1.2 trace invalid source line -gdb_delete_tracepoints -gdb_test "trace $srcfile:99999" "No line 99999 in file \".*$srcfile\"." \ - "1.2a: trace invalid line in sourcefile" -gdb_test "info trace" "No tracepoints.*" \ - "1.2b: reject invalid line in srcfile" - -# 1.3 trace line in invalid source file -gdb_delete_tracepoints -gdb_test "trace NoSuChFiLe.c:1" "No source file named NoSuChFiLe.c." \ - "1.3a: trace invalid source file" -gdb_test "info trace" "No tracepoints.*" \ - "1.3b: reject invalid srcfile" - -# 1.4 trace function by name -gdb_delete_tracepoints -gdb_test "trace gdb_recursion_test" \ - "Tracepoint $decimal at $hex: file.*$srcfile, line $testline1." \ - "1.4a: trace function by name" -gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline1" \ - "1.4b: trace function by name" - -# 1.5 trace non-existant function -gdb_delete_tracepoints -gdb_test "trace NoSuChFuNc" "Function \"NoSuChFuNc\" not defined." \ - "1.5a: trace invalid function" -gdb_test "info trace" "No tracepoints.*" \ - "1.5b: reject invalid srcfile" - -# 1.6 trace at a specific address -# Collect the address of "gdb_asm_test", and use that. -send_gdb "print gdb_asm_test\n" -gdb_expect { - -re "\[$\]\[0-9\].*0x(\[0-9a-fA-F\]+).*$gdb_prompt $" { - set asm_test_addr $expect_out(1,string) - } - timeout { } -} - -gdb_delete_tracepoints -gdb_test "trace \*0x$asm_test_addr" \ - "Tracepoint $decimal at .*$asm_test_addr.*" \ - "1.6a: trace at specific address" -gdb_test "info trace" "$asm_test_addr.*gdb_asm_test.*" \ - "1.6b: verify trace at specific address" - -# 1.7 trace at function's exact address -# Collect the address of the function for comparison -send_gdb "print gdb_recursion_test\n" -gdb_expect { - -re "\[$\]\[0-9\].*0x(\[0-9a-fA-F\]+).*$gdb_prompt $" { - set c_test_addr $expect_out(1,string) - } - timeout { } -} - -gdb_delete_tracepoints -gdb_test "trace \*gdb_recursion_test" \ - "Tracepoint $decimal at .*$c_test_addr.*" \ - "1.7a: trace at function label (before prologue)" -gdb_test "info trace" "$c_test_addr.*in gdb_recursion_test.*:$baseline" \ - "1.7b: verify trace at specific address" - -# 1.8 trace at invalid address -# no address is invalid - -# 1.9 trace no arguments -gdb_test "trace" "trace command requires an argument" \ - "1.9: trace <no arguments>" - -# 1.10 set large number of tracepoints -# deferred to limits test module - -# 1.11 tracepoint conditions -# conditions on tracepoints not implemented - -# 1.12 set tracepoint in prologue -# [see tfind.exp] - -# 1.13 trace on recursion -# interesting only in "live" session: see backtrace.exp for live test. - -# 1.14 help trace -gdb_test "help trace" "Set a tracepoint at .*" "1.14: help trace" - - diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp deleted file mode 100644 index 84ab14b..0000000 --- a/gdb/testsuite/gdb.trace/while-dyn.exp +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp" - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - load_lib "emc-support.exp" - set testfile "gdb_c_test" - set srcfile $testfile.c - set binfile [board_info target d490_binfile]; - gdb_test "set remotetimeout 6" "" "" - set timeout 500 - gdb_target_monitor "$binfile" - # Give a TSTOP and ignore errors, to make sure any previous trace is off - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - send_gdb "compare-section CS\n" - gdb_expect { - -re "MIS-MATCHED.*$gdb_prompt $" { - gdb_suppress_entire_file "Symbol file does not match target! - all tests in this module will fail."; - } - -re ".*$gdb_prompt $" { } - } -} else { - set testfile "actions" - set srcfile $testfile.c - set binfile $objdir/$subdir/$testfile - if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } - gdb_load $binfile - gdb_test "tstop" "" "" - gdb_test "tfind none" "" "" - runto_main -} -gdb_reinitialize_dir $srcdir/$subdir - -# We generously give ourselves one "pass" if we successfully -# detect that this test cannot be run on this target! -if { ![gdb_target_supports_trace] } then { - pass "Current target does not supporst trace" - return 1; - -} - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -# -# test while-stepping dynamically (live target) -# - -## verify number of trace frames collected matches stepcount - -gdb_delete_tracepoints -gdb_test "trace gdb_c_test" \ - "Tracepoint $decimal at .*" \ - "Set tracepoint at gdb_c_test" - -gdb_trace_setactions "5.12: define while-stepping <stepcount>" \ - "" \ - "collect \$fp" "^$" \ - "while-stepping 5" "^$" \ - "collect p" "^$" \ - "end" "^$" \ - "end" "" - -gdb_test "tstart" "" "" - -if [istarget "m68k-*-elf"] then { - gdb_emclaptop_command "85,1,2,3,4,5,6" - sleep 5 -} else { - gdb_test "break end" "" "" - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "run trace experiment" -} - -gdb_test "tstop" "" "" - -gdb_tfind_test "5.12: frame 5 should be the last one collected" "5" "5" - -send_gdb "tfind 6\n" -gdb_expect { - -re "failed to find.*$gdb_prompt $" { - pass "5.12: trace stopped after 5 stepping frames" - } - -re ".*$gdb_prompt $" { - fail "5.12: trace stopped after 5 stepping frames" - } -} - -gdb_test "tfind none" "" "" diff --git a/gdb/testsuite/gdb.trace/while-stepping.exp b/gdb/testsuite/gdb.trace/while-stepping.exp deleted file mode 100644 index 4c87d5c..0000000 --- a/gdb/testsuite/gdb.trace/while-stepping.exp +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 1998 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-gdb@prep.ai.mit.edu - -# This file was written by Michael Snyder (msnyder@cygnus.com) - -load_lib "trace-support.exp"; - -if $tracelevel then { - strace $tracelevel -} - -set prms_id 0 -set bug_id 0 - -gdb_exit -gdb_start - -if [istarget "m68k-*-elf"] then { - set srcfile gdb_c_test.c - set binfile [board_info target d490_binfile]; -} else { - set testfile "actions" - set srcfile ${testfile}.c - set binfile ${objdir}/${subdir}/${testfile} - if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" $binfile \ - executable {debug additional_flags=-w}] != "" } { - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." - } -} -gdb_reinitialize_dir $srcdir/$subdir - -# If testing on a remote host, download the source file. -# remote_download host $srcdir/$subdir/$srcfile - -gdb_file_cmd $binfile - -# -# test while-stepping command -# - -gdb_delete_tracepoints -set trcpt1 [gdb_gettpnum gdb_c_test] -if { $trcpt1 <= 0 } then { - fail "Could not find gdb_c_test function" - return; -} - -# 5.12 basic while-stepping command (collect regs) - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+0\[\t \]+.*in gdb_c_test.*" \ - "5.12: set a tracepoint, stepcount is zero" - -set stepcount 12 - -gdb_trace_setactions "5.12: set stepcount to $stepcount" \ - "" \ - "while-stepping $stepcount" "" \ - "collect \$regs" "^$" \ - "end" "" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+$stepcount\[\t \]+.*in gdb_c_test.*" \ - "5.12: confirm stepcount set to $stepcount" - -gdb_test "info tracepoints" \ - "Num Enb Address\[ \]+PassC StepC What.* -.*while-stepping $stepcount.*" \ - "5.12: info trace shows \"while-stepping\"" - - -# 5.13 step out of context while collecting local variable -# [deferred to dynamic test section] - -proc while_stepping_bogus_arg { bogus msgstring } { - global gdb_prompt; - - gdb_trace_setactions "$msgstring" \ - "" \ - "while-stepping $bogus" "\[Ee\]rror|\[Ww\]arning" -} - -# 5.14 while-stepping (no argument) - -while_stepping_bogus_arg "" "5.14: while-stepping null stepcount" - -# 5.15 while-stepping (zero stepcount) - -while_stepping_bogus_arg "0" "5.15: while-stepping rejects zero stepcount" - -# 5.16 while-stepping without collecting anything -gdb_trace_setactions "5.16: step without collecting anything" \ - "" \ - "while-stepping $stepcount" "^$" \ - "end" "" - -gdb_test "info tracepoints" \ - ".*$trcpt1.*0x.*\[\t \]+\[0-9\]+\[\t \]+$stepcount\[\t \]+.*in gdb_c_test.*\[ \t\]+Actions for tracepoint $trcpt1:.*\[ \t\]+while-stepping $stepcount.*\[ \t\]+end.*\[ \t\]+end.*" \ - "5.16: confirm actions, step without collecting anything" - |