From c906108c21474dfb4ed285bcc0ac6fe02cd400cc Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Fri, 16 Apr 1999 01:35:26 +0000 Subject: [PATCH] Initial creation of sourceware repository --- gdb/29k-share/README | 9 + gdb/29k-share/udi/udi2go32.c | 607 + gdb/29k-share/udi/udiids.h | 48 + gdb/29k-share/udi/udip2soc.c | 1250 ++ gdb/29k-share/udi/udiphcfg.h | 44 + gdb/29k-share/udi/udiphunix.h | 81 + gdb/29k-share/udi/udiproc.h | 308 + gdb/29k-share/udi/udipt29k.h | 87 + gdb/29k-share/udi/udiptcfg.h | 19 + gdb/29k-share/udi/udisoc.h | 184 + gdb/29k-share/udi/udr.c | 427 + gdb/29k-share/udi_soc | 9 + gdb/COPYING | 340 + gdb/ChangeLog | 1116 ++ gdb/ChangeLog-3.x | 4838 ++++++++ gdb/ChangeLog-9091 | 8322 ++++++++++++++ gdb/ChangeLog-92 | 6285 +++++++++++ gdb/ChangeLog-93 | 7597 +++++++++++++ gdb/ChangeLog-94 | 5705 ++++++++++ gdb/ChangeLog-95 | 4915 ++++++++ gdb/ChangeLog-96 | 5116 +++++++++ gdb/ChangeLog-97 | 2855 +++++ gdb/ChangeLog-98 | 7122 ++++++++++++ gdb/Makefile.in | 1619 +++ gdb/NEWS | 1611 +++ gdb/README | 618 + gdb/TODO | 471 + gdb/a29k-tdep.c | 1040 ++ gdb/a68v-nat.c | 123 + gdb/abug-rom.c | 169 + gdb/acconfig.h | 95 + gdb/acinclude.m4 | 861 ++ gdb/aclocal.m4 | 1307 +++ gdb/alpha-nat.c | 297 + gdb/alpha-tdep.c | 1410 +++ gdb/altos-xdep.c | 164 + gdb/annotate.c | 577 + gdb/annotate.h | 104 + gdb/arc-tdep.c | 733 ++ gdb/arm-convert.s | 16 + gdb/arm-tdep.c | 1626 +++ gdb/arm-xdep.c | 559 + gdb/ax-gdb.c | 1942 ++++ gdb/ax-gdb.h | 111 + gdb/ax-general.c | 552 + gdb/ax.h | 285 + gdb/bcache.c | 219 + gdb/bcache.h | 72 + gdb/blockframe.c | 1301 +++ gdb/breakpoint.c | 6686 +++++++++++ gdb/breakpoint.h | 604 + gdb/buildsym.c | 1130 ++ gdb/buildsym.h | 297 + gdb/c-exp.y | 1740 +++ gdb/c-lang.c | 527 + gdb/c-lang.h | 87 + gdb/c-typeprint.c | 1089 ++ gdb/c-valprint.c | 535 + gdb/call-cmds.h | 28 + gdb/ch-exp.c | 2169 ++++ gdb/ch-lang.c | 675 ++ gdb/ch-lang.h | 42 + gdb/ch-typeprint.c | 346 + gdb/ch-valprint.c | 630 ++ gdb/coff-solib.c | 134 + gdb/coff-solib.h | 190 + gdb/coffread.c | 2255 ++++ gdb/command.c | 1564 +++ gdb/command.h | 259 + gdb/complaints.c | 166 + gdb/complaints.h | 53 + gdb/config.in | 325 + gdb/config/a29k/a29k-kern.mt | 13 + gdb/config/a29k/a29k-udi.mt | 5 + gdb/config/a29k/a29k.mt | 5 + gdb/config/a29k/nm-ultra3.h | 26 + gdb/config/a29k/tm-a29k.h | 707 ++ gdb/config/a29k/tm-ultra3.h | 226 + gdb/config/a29k/tm-vx29k.h | 229 + gdb/config/a29k/ultra3.mh | 13 + gdb/config/a29k/ultra3.mt | 6 + gdb/config/a29k/vx29k.mt | 4 + gdb/config/a29k/xm-ultra3.h | 52 + gdb/config/alpha/alpha-linux.mh | 9 + gdb/config/alpha/alpha-linux.mt | 3 + gdb/config/alpha/alpha-osf1.mh | 5 + gdb/config/alpha/alpha-osf1.mt | 3 + gdb/config/alpha/alpha-osf2.mh | 5 + gdb/config/alpha/alpha-osf3.mh | 5 + gdb/config/alpha/nm-linux.h | 66 + gdb/config/alpha/nm-osf.h | 56 + gdb/config/alpha/nm-osf2.h | 54 + gdb/config/alpha/nm-osf3.h | 26 + gdb/config/alpha/tm-alpha.h | 479 + gdb/config/alpha/tm-alphalinux.h | 80 + gdb/config/alpha/xm-alphalinux.h | 29 + gdb/config/alpha/xm-alphaosf.h | 27 + gdb/config/arc/arc.mt | 3 + gdb/config/arc/tm-arc.h | 347 + gdb/config/arm/arm.mh | 5 + gdb/config/arm/arm.mt | 6 + gdb/config/arm/nm-arm.h | 27 + gdb/config/arm/tm-arm.h | 453 + gdb/config/arm/xm-arm.h | 76 + gdb/config/convex/Convex.notes | 163 + gdb/config/convex/convex.mh | 3 + gdb/config/convex/convex.mt | 3 + gdb/config/convex/tm-convex.h | 511 + gdb/config/convex/xm-convex.h | 35 + gdb/config/d10v/d10v.mt | 5 + gdb/config/d10v/tm-d10v.h | 337 + gdb/config/d30v/d30v.mt | 5 + gdb/config/d30v/tm-d30v.h | 325 + gdb/config/fr30/fr30.mt | 5 + gdb/config/fr30/tm-fr30.h | 232 + gdb/config/gould/np1.mh | 3 + gdb/config/gould/np1.mt | 3 + gdb/config/gould/pn.mh | 3 + gdb/config/gould/pn.mt | 3 + gdb/config/gould/tm-np1.h | 490 + gdb/config/gould/tm-pn.h | 409 + gdb/config/gould/xm-np1.h | 94 + gdb/config/gould/xm-pn.h | 87 + gdb/config/h8300/h8300.mt | 6 + gdb/config/h8300/tm-h8300.h | 303 + gdb/config/h8500/h8500.mt | 6 + gdb/config/h8500/tm-h8500.h | 293 + gdb/config/i386/cygwin.mh | 6 + gdb/config/i386/cygwin.mt | 6 + gdb/config/i386/fbsd.mh | 5 + gdb/config/i386/fbsd.mt | 3 + gdb/config/i386/gdbserve.mt | 3 + gdb/config/i386/go32.mh | 8 + gdb/config/i386/i386aix.mh | 10 + gdb/config/i386/i386aix.mt | 7 + gdb/config/i386/i386aout.mt | 3 + gdb/config/i386/i386bsd.mh | 7 + gdb/config/i386/i386bsd.mt | 3 + gdb/config/i386/i386dgux.mh | 9 + gdb/config/i386/i386gnu.mh | 31 + gdb/config/i386/i386gnu.mt | 3 + gdb/config/i386/i386lynx.mh | 11 + gdb/config/i386/i386lynx.mt | 3 + gdb/config/i386/i386m3.mh | 7 + gdb/config/i386/i386m3.mt | 3 + gdb/config/i386/i386mach.mh | 10 + gdb/config/i386/i386mk.mh | 4 + gdb/config/i386/i386mk.mt | 6 + gdb/config/i386/i386nw.mt | 3 + gdb/config/i386/i386os9k.mt | 3 + gdb/config/i386/i386sco.mh | 13 + gdb/config/i386/i386sco4.mh | 12 + gdb/config/i386/i386sco5.mh | 17 + gdb/config/i386/i386sco5.mt | 3 + gdb/config/i386/i386sol2.mh | 7 + gdb/config/i386/i386sol2.mt | 3 + gdb/config/i386/i386v.mh | 8 + gdb/config/i386/i386v.mt | 3 + gdb/config/i386/i386v32.mh | 9 + gdb/config/i386/i386v4.mh | 9 + gdb/config/i386/i386v4.mt | 3 + gdb/config/i386/i386v42mp.mh | 11 + gdb/config/i386/i386v42mp.mt | 3 + gdb/config/i386/linux.mh | 7 + gdb/config/i386/linux.mt | 5 + gdb/config/i386/nbsd.mh | 5 + gdb/config/i386/nbsd.mt | 3 + gdb/config/i386/ncr3000.mh | 16 + gdb/config/i386/ncr3000.mt | 3 + gdb/config/i386/nm-fbsd.h | 98 + gdb/config/i386/nm-gnu.h | 22 + gdb/config/i386/nm-i386aix.h | 42 + gdb/config/i386/nm-i386bsd.h | 39 + gdb/config/i386/nm-i386lynx.h | 25 + gdb/config/i386/nm-i386mach.h | 26 + gdb/config/i386/nm-i386sco.h | 41 + gdb/config/i386/nm-i386sco4.h | 32 + gdb/config/i386/nm-i386sco5.h | 39 + gdb/config/i386/nm-i386sol2.h | 35 + gdb/config/i386/nm-i386v.h | 36 + gdb/config/i386/nm-i386v4.h | 24 + gdb/config/i386/nm-i386v42mp.h | 22 + gdb/config/i386/nm-linux.h | 73 + gdb/config/i386/nm-m3.h | 22 + gdb/config/i386/nm-nbsd.h | 34 + gdb/config/i386/nm-ptx4.h | 62 + gdb/config/i386/nm-sun386.h | 27 + gdb/config/i386/nm-symmetry.h | 46 + gdb/config/i386/ptx.mh | 7 + gdb/config/i386/ptx.mt | 3 + gdb/config/i386/ptx4.mh | 7 + gdb/config/i386/ptx4.mt | 3 + gdb/config/i386/sun386.mh | 5 + gdb/config/i386/sun386.mt | 3 + gdb/config/i386/symmetry.mh | 5 + gdb/config/i386/symmetry.mt | 3 + gdb/config/i386/tm-cygwin.h | 127 + gdb/config/i386/tm-fbsd.h | 32 + gdb/config/i386/tm-i386.h | 307 + gdb/config/i386/tm-i386aix.h | 67 + gdb/config/i386/tm-i386bsd.h | 43 + gdb/config/i386/tm-i386gnu.h | 48 + gdb/config/i386/tm-i386lynx.h | 33 + gdb/config/i386/tm-i386m3.h | 60 + gdb/config/i386/tm-i386mk.h | 25 + gdb/config/i386/tm-i386nw.h | 49 + gdb/config/i386/tm-i386os9k.h | 63 + gdb/config/i386/tm-i386sco5.h | 62 + gdb/config/i386/tm-i386sol2.h | 64 + gdb/config/i386/tm-i386v.h | 163 + gdb/config/i386/tm-i386v4.h | 78 + gdb/config/i386/tm-i386v42mp.h | 44 + gdb/config/i386/tm-linux.h | 38 + gdb/config/i386/tm-nbsd.h | 42 + gdb/config/i386/tm-ptx.h | 232 + gdb/config/i386/tm-ptx4.h | 24 + gdb/config/i386/tm-sun386.h | 205 + gdb/config/i386/tm-symmetry.h | 321 + gdb/config/i386/xm-cygwin.h | 34 + gdb/config/i386/xm-go32.h | 31 + gdb/config/i386/xm-i386aix.h | 33 + gdb/config/i386/xm-i386bsd.h | 22 + gdb/config/i386/xm-i386gnu.h | 23 + gdb/config/i386/xm-i386lynx.h | 24 + gdb/config/i386/xm-i386m3.h | 33 + gdb/config/i386/xm-i386mach.h | 30 + gdb/config/i386/xm-i386mk.h | 25 + gdb/config/i386/xm-i386sco.h | 42 + gdb/config/i386/xm-i386v.h | 45 + gdb/config/i386/xm-i386v32.h | 24 + gdb/config/i386/xm-i386v4.h | 27 + gdb/config/i386/xm-linux.h | 36 + gdb/config/i386/xm-nbsd.h | 21 + gdb/config/i386/xm-ptx.h | 41 + gdb/config/i386/xm-ptx4.h | 25 + gdb/config/i386/xm-sun386.h | 20 + gdb/config/i386/xm-symmetry.h | 28 + gdb/config/i386/xm-windows.h | 35 + gdb/config/i960/mon960.mt | 6 + gdb/config/i960/nindy960.mt | 3 + gdb/config/i960/tm-i960.h | 372 + gdb/config/i960/tm-mon960.h | 70 + gdb/config/i960/tm-nindy960.h | 106 + gdb/config/i960/tm-vx960.h | 53 + gdb/config/i960/vxworks960.mt | 6 + gdb/config/m32r/m32r.mt | 7 + gdb/config/m32r/tm-m32r.h | 234 + gdb/config/m68k/3b1.mh | 12 + gdb/config/m68k/3b1.mt | 3 + gdb/config/m68k/altos.mh | 5 + gdb/config/m68k/altos.mt | 3 + gdb/config/m68k/apollo68b.mh | 6 + gdb/config/m68k/apollo68b.mt | 3 + gdb/config/m68k/apollo68v.mh | 11 + gdb/config/m68k/cisco.mt | 3 + gdb/config/m68k/delta68.mh | 5 + gdb/config/m68k/delta68.mt | 3 + gdb/config/m68k/dpx2.mh | 7 + gdb/config/m68k/dpx2.mt | 3 + gdb/config/m68k/es1800.mt | 9 + gdb/config/m68k/hp300bsd.mh | 7 + gdb/config/m68k/hp300bsd.mt | 3 + gdb/config/m68k/hp300hpux.mh | 8 + gdb/config/m68k/hp300hpux.mt | 8 + gdb/config/m68k/isi.mh | 5 + gdb/config/m68k/isi.mt | 3 + gdb/config/m68k/linux.mh | 9 + gdb/config/m68k/linux.mt | 3 + gdb/config/m68k/m68klynx.mh | 11 + gdb/config/m68k/m68klynx.mt | 4 + gdb/config/m68k/m68kv4.mh | 7 + gdb/config/m68k/m68kv4.mt | 3 + gdb/config/m68k/monitor.mt | 3 + gdb/config/m68k/nbsd.mh | 5 + gdb/config/m68k/nbsd.mt | 3 + gdb/config/m68k/news.mh | 5 + gdb/config/m68k/news.mt | 3 + gdb/config/m68k/news1000.mh | 3 + gdb/config/m68k/nm-apollo68b.h | 41 + gdb/config/m68k/nm-apollo68v.h | 20 + gdb/config/m68k/nm-delta68.h | 21 + gdb/config/m68k/nm-dpx2.h | 29 + gdb/config/m68k/nm-hp300bsd.h | 88 + gdb/config/m68k/nm-hp300hpux.h | 53 + gdb/config/m68k/nm-linux.h | 47 + gdb/config/m68k/nm-m68klynx.h | 25 + gdb/config/m68k/nm-nbsd.h | 21 + gdb/config/m68k/nm-news.h | 26 + gdb/config/m68k/nm-sun2.h | 33 + gdb/config/m68k/nm-sun3.h | 31 + gdb/config/m68k/nm-sysv4.h | 22 + gdb/config/m68k/os68k.mt | 3 + gdb/config/m68k/st2000.mt | 3 + gdb/config/m68k/sun2os3.mh | 5 + gdb/config/m68k/sun2os3.mt | 7 + gdb/config/m68k/sun2os4.mh | 5 + gdb/config/m68k/sun2os4.mt | 3 + gdb/config/m68k/sun3os3.mh | 5 + gdb/config/m68k/sun3os3.mt | 8 + gdb/config/m68k/sun3os4.mh | 6 + gdb/config/m68k/sun3os4.mt | 3 + gdb/config/m68k/tm-3b1.h | 32 + gdb/config/m68k/tm-altos.h | 57 + gdb/config/m68k/tm-apollo68b.h | 59 + gdb/config/m68k/tm-cisco.h | 55 + gdb/config/m68k/tm-delta68.h | 103 + gdb/config/m68k/tm-dpx2.h | 33 + gdb/config/m68k/tm-es1800.h | 59 + gdb/config/m68k/tm-hp300bsd.h | 62 + gdb/config/m68k/tm-hp300hpux.h | 31 + gdb/config/m68k/tm-isi.h | 150 + gdb/config/m68k/tm-linux.h | 109 + gdb/config/m68k/tm-m68k.h | 393 + gdb/config/m68k/tm-m68klynx.h | 38 + gdb/config/m68k/tm-m68kv4.h | 70 + gdb/config/m68k/tm-mac.h | 20 + gdb/config/m68k/tm-monitor.h | 44 + gdb/config/m68k/tm-nbsd.h | 41 + gdb/config/m68k/tm-news.h | 75 + gdb/config/m68k/tm-os68k.h | 46 + gdb/config/m68k/tm-st2000.h | 20 + gdb/config/m68k/tm-sun2.h | 23 + gdb/config/m68k/tm-sun2os4.h | 20 + gdb/config/m68k/tm-sun3.h | 107 + gdb/config/m68k/tm-sun3os4.h | 21 + gdb/config/m68k/tm-vx68.h | 91 + gdb/config/m68k/vxworks68.mt | 3 + gdb/config/m68k/xm-3b1.h | 85 + gdb/config/m68k/xm-altos.h | 202 + gdb/config/m68k/xm-apollo68b.h | 24 + gdb/config/m68k/xm-apollo68v.h | 44 + gdb/config/m68k/xm-delta68.h | 36 + gdb/config/m68k/xm-dpx2.h | 26 + gdb/config/m68k/xm-hp300bsd.h | 85 + gdb/config/m68k/xm-hp300hpux.h | 150 + gdb/config/m68k/xm-isi.h | 92 + gdb/config/m68k/xm-linux.h | 40 + gdb/config/m68k/xm-m68k.h | 22 + gdb/config/m68k/xm-m68klynx.h | 24 + gdb/config/m68k/xm-m68kv4.h | 28 + gdb/config/m68k/xm-mpw.h | 24 + gdb/config/m68k/xm-nbsd.h | 21 + gdb/config/m68k/xm-news.h | 137 + gdb/config/m68k/xm-news1000.h | 26 + gdb/config/m68k/xm-sun2.h | 78 + gdb/config/m68k/xm-sun3.h | 73 + gdb/config/m68k/xm-sun3os4.h | 21 + gdb/config/m88k/cxux.mh | 7 + gdb/config/m88k/cxux.mt | 3 + gdb/config/m88k/delta88.mh | 7 + gdb/config/m88k/delta88.mt | 3 + gdb/config/m88k/delta88v4.mh | 7 + gdb/config/m88k/delta88v4.mt | 3 + gdb/config/m88k/m88k.mh | 5 + gdb/config/m88k/m88k.mt | 3 + gdb/config/m88k/nm-cxux.h | 32 + gdb/config/m88k/nm-delta88v4.h | 21 + gdb/config/m88k/nm-m88k.h | 24 + gdb/config/m88k/tm-cxux.h | 59 + gdb/config/m88k/tm-delta88.h | 26 + gdb/config/m88k/tm-delta88v4.h | 30 + gdb/config/m88k/tm-m88k.h | 620 + gdb/config/m88k/xm-cxux.h | 66 + gdb/config/m88k/xm-delta88.h | 45 + gdb/config/m88k/xm-delta88v4.h | 22 + gdb/config/m88k/xm-dgux.h | 58 + gdb/config/m88k/xm-m88k.h | 20 + gdb/config/mips/bigmips.mt | 3 + gdb/config/mips/bigmips64.mt | 3 + gdb/config/mips/decstation.mh | 5 + gdb/config/mips/decstation.mt | 3 + gdb/config/mips/embed.mt | 5 + gdb/config/mips/embed64.mt | 5 + gdb/config/mips/embedl.mt | 5 + gdb/config/mips/embedl64.mt | 5 + gdb/config/mips/irix3.mh | 6 + gdb/config/mips/irix3.mt | 3 + gdb/config/mips/irix4.mh | 8 + gdb/config/mips/irix5.mh | 6 + gdb/config/mips/irix5.mt | 3 + gdb/config/mips/littlemips.mh | 3 + gdb/config/mips/littlemips.mt | 3 + gdb/config/mips/mipsm3.mh | 7 + gdb/config/mips/mipsm3.mt | 4 + gdb/config/mips/mipsv4.mh | 4 + gdb/config/mips/mipsv4.mt | 3 + gdb/config/mips/news-mips.mh | 4 + gdb/config/mips/nm-irix3.h | 37 + gdb/config/mips/nm-irix4.h | 61 + gdb/config/mips/nm-irix5.h | 44 + gdb/config/mips/nm-mips.h | 32 + gdb/config/mips/nm-news-mips.h | 42 + gdb/config/mips/nm-riscos.h | 59 + gdb/config/mips/riscos.mh | 16 + gdb/config/mips/tm-bigmips.h | 21 + gdb/config/mips/tm-bigmips64.h | 23 + gdb/config/mips/tm-embed.h | 49 + gdb/config/mips/tm-embed64.h | 21 + gdb/config/mips/tm-embedl.h | 21 + gdb/config/mips/tm-embedl64.h | 21 + gdb/config/mips/tm-irix3.h | 81 + gdb/config/mips/tm-irix5.h | 75 + gdb/config/mips/tm-mips.h | 560 + gdb/config/mips/tm-mips64.h | 54 + gdb/config/mips/tm-mipsm3.h | 66 + gdb/config/mips/tm-mipsv4.h | 45 + gdb/config/mips/tm-tx39.h | 39 + gdb/config/mips/tm-tx39l.h | 39 + gdb/config/mips/tm-vr4100.h | 25 + gdb/config/mips/tm-vr4300.h | 22 + gdb/config/mips/tm-vr4300el.h | 22 + gdb/config/mips/tm-vr5000.h | 23 + gdb/config/mips/tm-vr5000el.h | 23 + gdb/config/mips/tm-vxmips.h | 31 + gdb/config/mips/tx39.mt | 5 + gdb/config/mips/tx39l.mt | 5 + gdb/config/mips/vr4100.mt | 5 + gdb/config/mips/vr4300.mt | 5 + gdb/config/mips/vr4300el.mt | 5 + gdb/config/mips/vr5000.mt | 7 + gdb/config/mips/vr5000el.mt | 5 + gdb/config/mips/vxmips.mt | 3 + gdb/config/mips/xm-irix3.h | 31 + gdb/config/mips/xm-irix4.h | 33 + gdb/config/mips/xm-irix5.h | 35 + gdb/config/mips/xm-mips.h | 61 + gdb/config/mips/xm-mipsm3.h | 32 + gdb/config/mips/xm-mipsv4.h | 23 + gdb/config/mips/xm-news-mips.h | 24 + gdb/config/mips/xm-riscos.h | 28 + gdb/config/mn10200/mn10200.mt | 6 + gdb/config/mn10200/tm-mn10200.h | 212 + gdb/config/mn10300/mn10300.mt | 6 + gdb/config/mn10300/tm-mn10300.h | 165 + gdb/config/nm-empty.h | 2 + gdb/config/nm-gnu.h | 45 + gdb/config/nm-lynx.h | 83 + gdb/config/nm-m3.h | 123 + gdb/config/nm-nbsd.h | 86 + gdb/config/nm-sysv4.h | 33 + gdb/config/none/nm-none.h | 18 + gdb/config/none/none.mh | 5 + gdb/config/none/none.mt | 4 + gdb/config/none/tm-none.h | 23 + gdb/config/none/xm-none.h | 18 + gdb/config/ns32k/merlin.mh | 16 + gdb/config/ns32k/merlin.mt | 3 + gdb/config/ns32k/nbsd.mh | 5 + gdb/config/ns32k/nbsd.mt | 3 + gdb/config/ns32k/nm-nbsd.h | 36 + gdb/config/ns32k/nm-umax.h | 54 + gdb/config/ns32k/ns32km3.mh | 7 + gdb/config/ns32k/ns32km3.mt | 3 + gdb/config/ns32k/tm-merlin.h | 313 + gdb/config/ns32k/tm-nbsd.h | 79 + gdb/config/ns32k/tm-ns32km3.h | 73 + gdb/config/ns32k/tm-umax.h | 370 + gdb/config/ns32k/umax.mh | 5 + gdb/config/ns32k/umax.mt | 3 + gdb/config/ns32k/xm-merlin.h | 65 + gdb/config/ns32k/xm-nbsd.h | 21 + gdb/config/ns32k/xm-ns32km3.h | 23 + gdb/config/ns32k/xm-umax.h | 26 + gdb/config/pa/hppabsd.mh | 7 + gdb/config/pa/hppabsd.mt | 3 + gdb/config/pa/hppahpux.mh | 9 + gdb/config/pa/hppahpux.mt | 3 + gdb/config/pa/hppaosf.mh | 9 + gdb/config/pa/hppaosf.mt | 3 + gdb/config/pa/hppapro.mt | 3 + gdb/config/pa/hpux1020.mh | 11 + gdb/config/pa/hpux1020.mt | 3 + gdb/config/pa/hpux1100.mh | 11 + gdb/config/pa/hpux1100.mt | 3 + gdb/config/pa/nm-hppab.h | 135 + gdb/config/pa/nm-hppah.h | 281 + gdb/config/pa/nm-hppah11.h | 22 + gdb/config/pa/nm-hppao.h | 56 + gdb/config/pa/tm-hppa.h | 788 ++ gdb/config/pa/tm-hppab.h | 47 + gdb/config/pa/tm-hppah.h | 79 + gdb/config/pa/tm-hppao.h | 96 + gdb/config/pa/tm-pro.h | 14 + gdb/config/pa/xm-hppab.h | 27 + gdb/config/pa/xm-hppah.h | 49 + gdb/config/pa/xm-pa.h | 5 + gdb/config/powerpc/aix.mh | 11 + gdb/config/powerpc/aix.mt | 3 + gdb/config/powerpc/cygwin.mh | 5 + gdb/config/powerpc/cygwin.mt | 6 + gdb/config/powerpc/gdbserve.mt | 3 + gdb/config/powerpc/linux.mh | 10 + gdb/config/powerpc/macos.mh | 4 + gdb/config/powerpc/macos.mt | 3 + gdb/config/powerpc/nm-aix.h | 22 + gdb/config/powerpc/nm-macos.h | 20 + gdb/config/powerpc/nm-solaris.h | 30 + gdb/config/powerpc/ppc-eabi.mt | 3 + gdb/config/powerpc/ppc-nw.mt | 3 + gdb/config/powerpc/ppc-sim.mt | 6 + gdb/config/powerpc/ppcle-eabi.mt | 3 + gdb/config/powerpc/ppcle-sim.mt | 6 + gdb/config/powerpc/solaris.mh | 18 + gdb/config/powerpc/solaris.mt | 3 + gdb/config/powerpc/tm-cygwin.h | 21 + gdb/config/powerpc/tm-macos.h | 26 + gdb/config/powerpc/tm-ppc-aix.h | 28 + gdb/config/powerpc/tm-ppc-eabi.h | 84 + gdb/config/powerpc/tm-ppc-nw.h | 31 + gdb/config/powerpc/tm-ppc-sim.h | 26 + gdb/config/powerpc/tm-ppcle-eabi.h | 30 + gdb/config/powerpc/tm-ppcle-sim.h | 26 + gdb/config/powerpc/tm-solaris.h | 74 + gdb/config/powerpc/xm-aix.h | 30 + gdb/config/powerpc/xm-cygwin.h | 32 + gdb/config/powerpc/xm-linux.h | 21 + gdb/config/powerpc/xm-mpw.h | 22 + gdb/config/powerpc/xm-solaris.h | 21 + gdb/config/pyr/pyramid.mh | 8 + gdb/config/pyr/pyramid.mt | 3 + gdb/config/pyr/tm-pyr.h | 483 + gdb/config/pyr/xm-pyr.h | 92 + gdb/config/romp/rtbsd.mh | 8 + gdb/config/romp/xm-rtbsd.h | 40 + gdb/config/rs6000/aix4.mh | 11 + gdb/config/rs6000/aix4.mt | 3 + gdb/config/rs6000/nm-rs6000.h | 60 + gdb/config/rs6000/nm-rs6000ly.h | 25 + gdb/config/rs6000/rs6000.mh | 11 + gdb/config/rs6000/rs6000.mt | 3 + gdb/config/rs6000/rs6000lynx.mh | 11 + gdb/config/rs6000/rs6000lynx.mt | 3 + gdb/config/rs6000/tm-rs6000-aix4.h | 26 + gdb/config/rs6000/tm-rs6000.h | 564 + gdb/config/rs6000/tm-rs6000ly.h | 32 + gdb/config/rs6000/xm-aix4.h | 26 + gdb/config/rs6000/xm-rs6000.h | 107 + gdb/config/rs6000/xm-rs6000ly.h | 29 + gdb/config/sh/sh.mt | 6 + gdb/config/sh/tm-sh.h | 281 + gdb/config/sparc/linux.mh | 7 + gdb/config/sparc/linux.mt | 3 + gdb/config/sparc/nbsd.mh | 6 + gdb/config/sparc/nbsd.mt | 3 + gdb/config/sparc/nm-linux.h | 31 + gdb/config/sparc/nm-nbsd.h | 57 + gdb/config/sparc/nm-sparclynx.h | 25 + gdb/config/sparc/nm-sun4os4.h | 35 + gdb/config/sparc/nm-sun4sol2.h | 45 + gdb/config/sparc/sp64.mt | 9 + gdb/config/sparc/sp64sim.mt | 13 + gdb/config/sparc/sp64sol2.mt | 3 + gdb/config/sparc/sparc-em.mt | 3 + gdb/config/sparc/sparclet.mt | 3 + gdb/config/sparc/sparclite.mt | 5 + gdb/config/sparc/sparclynx.mh | 11 + gdb/config/sparc/sparclynx.mt | 3 + gdb/config/sparc/sun4os4.mh | 11 + gdb/config/sparc/sun4os4.mt | 3 + gdb/config/sparc/sun4sol2.mh | 18 + gdb/config/sparc/sun4sol2.mt | 3 + gdb/config/sparc/tm-linux.h | 29 + gdb/config/sparc/tm-nbsd.h | 27 + gdb/config/sparc/tm-sp64.h | 378 + gdb/config/sparc/tm-sp64sim.h | 50 + gdb/config/sparc/tm-sparc.h | 584 + gdb/config/sparc/tm-sparclet.h | 132 + gdb/config/sparc/tm-sparclite.h | 98 + gdb/config/sparc/tm-sparclynx.h | 36 + gdb/config/sparc/tm-spc-em.h | 46 + gdb/config/sparc/tm-sun4os4.h | 58 + gdb/config/sparc/tm-sun4sol2.h | 94 + gdb/config/sparc/tm-vxsparc.h | 36 + gdb/config/sparc/vxsparc.mt | 3 + gdb/config/sparc/xm-linux.h | 48 + gdb/config/sparc/xm-nbsd.h | 21 + gdb/config/sparc/xm-sparc.h | 22 + gdb/config/sparc/xm-sparclynx.h | 24 + gdb/config/sparc/xm-sun4os4.h | 34 + gdb/config/sparc/xm-sun4sol2.h | 49 + gdb/config/tahoe/tahoe.mh | 4 + gdb/config/tahoe/tahoe.mt | 3 + gdb/config/tahoe/tm-tahoe.h | 289 + gdb/config/tahoe/xm-tahoe.h | 136 + gdb/config/tm-lynx.h | 34 + gdb/config/tm-nbsd.h | 19 + gdb/config/tm-sunos.h | 31 + gdb/config/tm-sysv4.h | 45 + gdb/config/v850/tm-v850.h | 174 + gdb/config/v850/v850.mt | 5 + gdb/config/vax/nm-vax.h | 28 + gdb/config/vax/tm-vax.h | 330 + gdb/config/vax/vax.mt | 3 + gdb/config/vax/vaxbsd.mh | 13 + gdb/config/vax/vaxult.mh | 7 + gdb/config/vax/vaxult2.mh | 7 + gdb/config/vax/xm-vax.h | 81 + gdb/config/vax/xm-vaxbsd.h | 10 + gdb/config/vax/xm-vaxult.h | 12 + gdb/config/vax/xm-vaxult2.h | 11 + gdb/config/w65/tm-w65.h | 213 + gdb/config/w65/w65.mt | 8 + gdb/config/xm-aix4.h | 99 + gdb/config/xm-lynx.h | 20 + gdb/config/xm-mpw.h | 81 + gdb/config/xm-nbsd.h | 32 + gdb/config/xm-sysv4.h | 39 + gdb/config/z8k/tm-z8k.h | 287 + gdb/config/z8k/z8k.mt | 7 + gdb/configure | 6279 +++++++++++ gdb/configure.host | 162 + gdb/configure.in | 606 + gdb/configure.tgt | 282 + gdb/convex-tdep.c | 1217 ++ gdb/convex-xdep.c | 966 ++ gdb/copying.awk | 77 + gdb/copying.c | 327 + gdb/core-aout.c | 147 + gdb/core-regset.c | 134 + gdb/core-sol2.c | 133 + gdb/corefile.c | 479 + gdb/corelow.c | 511 + gdb/cp-valprint.c | 826 ++ gdb/cpu32bug-rom.c | 167 + gdb/cxux-nat.c | 523 + gdb/d10v-tdep.c | 1028 ++ gdb/d30v-tdep.c | 1396 +++ gdb/dbug-rom.c | 164 + gdb/dbxread.c | 2738 +++++ gdb/dcache.c | 558 + gdb/dcache.h | 50 + gdb/debugify.c | 109 + gdb/debugify.h | 83 + gdb/defs.h | 1139 ++ gdb/delta68-nat.c | 91 + gdb/demangle.c | 237 + gdb/dink32-rom.c | 198 + gdb/doc/ChangeLog | 1473 +++ gdb/doc/HPPA-cfg.texi | 114 + gdb/doc/LRS | 197 + gdb/doc/Makefile.in | 340 + gdb/doc/a4rc.sed | 11 + gdb/doc/agentexpr.texi | 839 ++ gdb/doc/all-cfg.texi | 112 + gdb/doc/annotate.texi | 717 ++ gdb/doc/configure | 862 ++ gdb/doc/configure.in | 4 + gdb/doc/gdb.texinfo | 10316 +++++++++++++++++ gdb/doc/gdbint.texinfo | 2711 +++++ gdb/doc/libgdb.texinfo | 878 ++ gdb/doc/lpsrc.sed | 13 + gdb/doc/psrc.sed | 13 + gdb/doc/refcard.tex | 645 ++ gdb/doc/remote.texi | 1708 +++ gdb/doc/stabs.texinfo | 4019 +++++++ gdb/dpx2-nat.c | 83 + gdb/dsrec.c | 312 + gdb/dst.h | 1659 +++ gdb/dstread.c | 1665 +++ gdb/dve3900-rom.c | 962 ++ gdb/dwarf2read.c | 5865 ++++++++++ gdb/dwarfread.c | 3915 +++++++ gdb/elfread.c | 849 ++ gdb/environ.c | 194 + gdb/environ.h | 58 + gdb/eval.c | 1989 ++++ gdb/exc_request.defs | 51 + gdb/exec.c | 762 ++ gdb/expprint.c | 903 ++ gdb/expression.h | 382 + gdb/f-exp.y | 1174 ++ gdb/f-lang.c | 973 ++ gdb/f-lang.h | 96 + gdb/f-typeprint.c | 458 + gdb/f-valprint.c | 767 ++ gdb/findvar.c | 1630 +++ gdb/fork-child.c | 616 + gdb/fr30-tdep.c | 552 + gdb/frame.h | 264 + gdb/gdb-stabs.h | 92 + gdb/gdb.1 | 375 + gdb/gdb.gdb | 35 + gdb/gdb_stat.h | 68 + gdb/gdb_string.h | 68 + gdb/gdba.el | 2607 +++++ gdb/gdbarch.c | 360 + gdb/gdbarch.h | 118 + gdb/gdbcmd.h | 114 + gdb/gdbcore.h | 169 + gdb/gdbinit.in | 18 + gdb/gdbserver/Makefile.in | 241 + gdb/gdbserver/README | 127 + gdb/gdbserver/configure.in | 100 + gdb/gdbserver/gdbreplay.c | 318 + gdb/gdbserver/gdbserver.1 | 103 + gdb/gdbserver/low-hppabsd.c | 379 + gdb/gdbserver/low-linux.c | 451 + gdb/gdbserver/low-lynx.c | 746 ++ gdb/gdbserver/low-sim.c | 289 + gdb/gdbserver/low-sparc.c | 334 + gdb/gdbserver/low-sun3.c | 313 + gdb/gdbserver/remote-utils.c | 545 + gdb/gdbserver/server.c | 258 + gdb/gdbserver/server.h | 72 + gdb/gdbserver/utils.c | 114 + gdb/gdbthread.h | 121 + gdb/gdbtypes.c | 2905 +++++ gdb/gdbtypes.h | 1135 ++ gdb/gnu-nat.c | 3201 ++++++ gdb/gnu-nat.h | 93 + gdb/gnu-regex.c | 5797 ++++++++++ gdb/gnu-regex.h | 576 + gdb/gould-tdep.c | 310 + gdb/gould-xdep.c | 130 + gdb/h8300-tdep.c | 921 ++ gdb/h8500-tdep.c | 653 ++ gdb/hp-psymtab-read.c | 2381 ++++ gdb/hp-symtab-read.c | 3988 +++++++ gdb/hp300ux-nat.c | 221 + gdb/hppa-tdep.c | 4445 ++++++++ gdb/hppab-nat.c | 215 + gdb/hppah-nat.c | 1059 ++ gdb/hppam3-nat.c | 141 + gdb/hpread.c | 2050 ++++ gdb/hpread.h | 150 + gdb/hpux-thread.c | 641 ++ gdb/i386-stub.c | 927 ++ gdb/i386-tdep.c | 794 ++ gdb/i386aix-nat.c | 362 + gdb/i386b-nat.c | 285 + gdb/i386gnu-nat.c | 357 + gdb/i386ly-tdep.c | 43 + gdb/i386m3-nat.c | 421 + gdb/i386mach-nat.c | 163 + gdb/i386v-nat.c | 392 + gdb/i386v4-nat.c | 172 + gdb/i387-tdep.c | 111 + gdb/i960-tdep.c | 838 ++ gdb/infcmd.c | 1553 +++ gdb/inferior.h | 473 + gdb/inflow.c | 751 ++ gdb/infptrace.c | 638 ++ gdb/infrun.c | 3775 +++++++ gdb/inftarg.c | 968 ++ gdb/infttrace.c | 5674 ++++++++++ gdb/irix4-nat.c | 195 + gdb/irix5-nat.c | 1349 +++ gdb/isi-xdep.c | 20 + gdb/jv-exp.y | 1466 +++ gdb/jv-lang.c | 1088 ++ gdb/jv-lang.h | 67 + gdb/jv-typeprint.c | 339 + gdb/jv-valprint.c | 526 + gdb/kdb-start.c | 35 + gdb/language.c | 1451 +++ gdb/language.h | 439 + gdb/lynx-nat.c | 837 ++ gdb/m2-exp.y | 1094 ++ gdb/m2-lang.c | 472 + gdb/m2-lang.h | 31 + gdb/m2-typeprint.c | 49 + gdb/m2-valprint.c | 47 + gdb/m3-nat.c | 4646 ++++++++ gdb/m32r-rom.c | 650 ++ gdb/m32r-stub.c | 1685 +++ gdb/m32r-tdep.c | 745 ++ gdb/m68k-stub.c | 1014 ++ gdb/m68k-tdep.c | 516 + gdb/m68klinux-nat.c | 155 + gdb/m68knbsd-nat.c | 86 + gdb/m88k-nat.c | 285 + gdb/m88k-tdep.c | 629 ++ gdb/mac-defs.h | 34 + gdb/mac-gdb.r | 184 + gdb/mac-nat.c | 412 + gdb/mac-xdep.c | 1087 ++ gdb/main.c | 780 ++ gdb/maint.c | 449 + gdb/mdebugread.c | 4544 ++++++++ gdb/mem-break.c | 124 + gdb/minimon.h | 562 + gdb/minsyms.c | 904 ++ gdb/mips-nat.c | 244 + gdb/mips-tdep.c | 3259 ++++++ gdb/mipsm3-nat.c | 386 + gdb/mipsread.c | 446 + gdb/mipsv4-nat.c | 159 + gdb/mn10200-tdep.c | 919 ++ gdb/mn10300-tdep.c | 791 ++ gdb/mon960-rom.c | 264 + gdb/monitor.c | 2296 ++++ gdb/monitor.h | 247 + gdb/mpw-config.in | 81 + gdb/mpw-make.sed | 178 + gdb/msg.defs | 1 + gdb/msg_reply.defs | 1 + gdb/news-xdep.c | 65 + gdb/nindy-share/Makefile | 117 + gdb/nindy-share/Onindy.c | 743 ++ gdb/nindy-share/README | 3 + gdb/nindy-share/VERSION | 1 + gdb/nindy-share/b.out.h | 158 + gdb/nindy-share/block_io.h | 68 + gdb/nindy-share/coff.h | 336 + gdb/nindy-share/env.h | 12 + gdb/nindy-share/nindy.c | 1154 ++ gdb/nindy-share/stop.h | 86 + gdb/nindy-share/ttyflush.c | 53 + gdb/nindy-tdep.c | 74 + gdb/nlm/Makefile.in | 172 + gdb/nlm/configure | 1074 ++ gdb/nlm/configure.in | 55 + gdb/nlm/gdbserve.c | 1056 ++ gdb/nlm/gdbserve.def | 42 + gdb/nlm/i386.c | 108 + gdb/nlm/i386.h | 13 + gdb/nlm/ppc.c | 257 + gdb/nlm/ppc.h | 165 + gdb/nlm/prelude.c | 67 + gdb/nlmread.c | 261 + gdb/notify.defs | 1 + gdb/ns32k-tdep.c | 122 + gdb/ns32km3-nat.c | 183 + gdb/ns32knbsd-nat.c | 353 + gdb/objfiles.c | 988 ++ gdb/objfiles.h | 572 + gdb/ocd.c | 1444 +++ gdb/ocd.h | 139 + gdb/op50-rom.c | 142 + gdb/os9kread.c | 1624 +++ gdb/osf-share/AT386/cma_thread_io.h | 457 + gdb/osf-share/HP800/cma_thread_io.h | 432 + gdb/osf-share/README | 8 + gdb/osf-share/RIOS/cma_thread_io.h | 434 + gdb/osf-share/cma_attr.h | 341 + gdb/osf-share/cma_deb_core.h | 164 + gdb/osf-share/cma_debug_client.h | 195 + gdb/osf-share/cma_errors.h | 55 + gdb/osf-share/cma_handle.h | 182 + gdb/osf-share/cma_init.h | 114 + gdb/osf-share/cma_list.h | 84 + gdb/osf-share/cma_mutex.h | 230 + gdb/osf-share/cma_sched.h | 279 + gdb/osf-share/cma_semaphore_defs.h | 46 + gdb/osf-share/cma_sequence.h | 56 + gdb/osf-share/cma_stack.h | 83 + gdb/osf-share/cma_stack_int.h | 136 + gdb/osf-share/cma_tcb_defs.h | 269 + gdb/osf-share/cma_util.h | 125 + gdb/osfsolib.c | 980 ++ gdb/parse.c | 1351 +++ gdb/parser-defs.h | 198 + gdb/partial-stab.h | 812 ++ gdb/ppc-bdm.c | 387 + gdb/ppcbug-rom.c | 230 + gdb/printcmd.c | 2575 +++++ gdb/process_reply.defs | 1 + gdb/procfs.c | 5764 ++++++++++ gdb/ptx4-nat.c | 209 + gdb/pyr-tdep.c | 452 + gdb/pyr-xdep.c | 370 + gdb/rdi-share/Makefile.am | 19 + gdb/rdi-share/Makefile.in | 293 + gdb/rdi-share/README.CYGNUS | 6 + gdb/rdi-share/aclocal.m4 | 202 + gdb/rdi-share/adp.h | 2528 +++++ gdb/rdi-share/adperr.h | 74 + gdb/rdi-share/angel.h | 177 + gdb/rdi-share/ardi.c | 2672 +++++ gdb/rdi-share/ardi.h | 85 + gdb/rdi-share/armdbg.h | 1452 +++ gdb/rdi-share/buffers.h | 111 + gdb/rdi-share/bytesex.c | 57 + gdb/rdi-share/bytesex.h | 42 + gdb/rdi-share/chandefs.h | 50 + gdb/rdi-share/channels.h | 384 + gdb/rdi-share/chanpriv.h | 57 + gdb/rdi-share/configure | 2115 ++++ gdb/rdi-share/configure.in | 36 + gdb/rdi-share/crc.c | 257 + gdb/rdi-share/crc.h | 90 + gdb/rdi-share/dbg_conf.h | 54 + gdb/rdi-share/dbg_cp.h | 62 + gdb/rdi-share/dbg_hif.h | 56 + gdb/rdi-share/dbg_rdi.h | 511 + gdb/rdi-share/devclnt.h | 260 + gdb/rdi-share/devices.h | 104 + gdb/rdi-share/devsw.c | 404 + gdb/rdi-share/devsw.h | 268 + gdb/rdi-share/drivers.c | 34 + gdb/rdi-share/drivers.h | 193 + gdb/rdi-share/endian.h | 125 + gdb/rdi-share/etherdrv.c | 730 ++ gdb/rdi-share/ethernet.h | 99 + gdb/rdi-share/host.h | 230 + gdb/rdi-share/hostchan.c | 1057 ++ gdb/rdi-share/hostchan.h | 308 + gdb/rdi-share/hsys.c | 915 ++ gdb/rdi-share/hsys.h | 101 + gdb/rdi-share/logging.c | 369 + gdb/rdi-share/logging.h | 121 + gdb/rdi-share/msgbuild.c | 282 + gdb/rdi-share/msgbuild.h | 75 + gdb/rdi-share/params.c | 325 + gdb/rdi-share/params.h | 181 + gdb/rdi-share/rx.c | 361 + gdb/rdi-share/rxtx.h | 263 + gdb/rdi-share/serdrv.c | 649 ++ gdb/rdi-share/serpardr.c | 730 ++ gdb/rdi-share/sys.h | 319 + gdb/rdi-share/tx.c | 176 + gdb/rdi-share/unixcomm.c | 552 + gdb/rdi-share/unixcomm.h | 212 + gdb/remote-adapt.c | 1443 +++ gdb/remote-array.c | 1497 +++ gdb/remote-bug.c | 1099 ++ gdb/remote-d10v.c | 228 + gdb/remote-e7000.c | 2258 ++++ gdb/remote-eb.c | 1056 ++ gdb/remote-es.c | 2202 ++++ gdb/remote-est.c | 171 + gdb/remote-hms.c | 1500 +++ gdb/remote-mips.c | 3655 ++++++ gdb/remote-mm.c | 1673 +++ gdb/remote-nindy.c | 852 ++ gdb/remote-nrom.c | 360 + gdb/remote-os9k.c | 1264 +++ gdb/remote-rdi.c | 973 ++ gdb/remote-rdp.c | 1512 +++ gdb/remote-sds.c | 1206 ++ gdb/remote-sim.c | 1003 ++ gdb/remote-st.c | 879 ++ gdb/remote-udi.c | 1694 +++ gdb/remote-utils.c | 654 ++ gdb/remote-utils.h | 142 + gdb/remote-vx.c | 1467 +++ gdb/remote-vx29k.c | 188 + gdb/remote-vx68.c | 158 + gdb/remote-vx960.c | 163 + gdb/remote-vxmips.c | 201 + gdb/remote-vxsparc.c | 196 + gdb/remote.c | 3473 ++++++ gdb/reply_mig_hack.awk | 123 + gdb/rom68k-rom.c | 169 + gdb/rs6000-nat.c | 845 ++ gdb/rs6000-tdep.c | 1800 +++ gdb/saber.suppress | 451 + gdb/scm-exp.c | 423 + gdb/scm-lang.c | 274 + gdb/scm-lang.h | 50 + gdb/scm-tags.h | 385 + gdb/scm-valprint.c | 422 + gdb/ser-e7kpc.c | 470 + gdb/ser-go32.c | 958 ++ gdb/ser-mac.c | 362 + gdb/ser-ocd.c | 209 + gdb/ser-tcp.c | 358 + gdb/ser-unix.c | 808 ++ gdb/serial.c | 526 + gdb/serial.h | 191 + gdb/sh-stub.c | 1549 +++ gdb/sh-tdep.c | 728 ++ gdb/sh3-rom.c | 392 + gdb/signals.h | 27 + gdb/sol-thread.c | 1673 +++ gdb/solib.c | 1888 ++++ gdb/solib.h | 203 + gdb/somread.c | 803 ++ gdb/somsolib.c | 1640 +++ gdb/somsolib.h | 177 + gdb/source.c | 1724 +++ gdb/sparc-nat.c | 328 + gdb/sparc-stub.c | 846 ++ gdb/sparc-tdep.c | 2120 ++++ gdb/sparcl-stub.c | 1024 ++ gdb/sparcl-tdep.c | 970 ++ gdb/sparclet-rom.c | 296 + gdb/sparclet-stub.c | 1232 ++ gdb/srec.h | 36 + gdb/stabsread.c | 5207 +++++++++ gdb/stabsread.h | 249 + gdb/stack.c | 2019 ++++ gdb/standalone.c | 593 + gdb/stop-gdb.c | 110 + gdb/stuff.c | 174 + gdb/sun3-nat.c | 157 + gdb/sun386-nat.c | 258 + gdb/symfile.c | 3021 +++++ gdb/symfile.h | 300 + gdb/symm-nat.c | 846 ++ gdb/symm-tdep.c | 93 + gdb/symmisc.c | 1098 ++ gdb/symtab.c | 4518 ++++++++ gdb/symtab.h | 1477 +++ gdb/tahoe-tdep.c | 234 + gdb/target.c | 2581 +++++ gdb/target.h | 1264 +++ gdb/terminal.h | 92 + gdb/testsuite/.gdbinit | 1 + gdb/testsuite/ChangeLog | 5930 ++++++++++ gdb/testsuite/Makefile.in | 187 + gdb/testsuite/TODO | 202 + gdb/testsuite/aclocal.m4 | 583 + gdb/testsuite/config/abug.exp | 20 + gdb/testsuite/config/arm-ice.exp | 1 + gdb/testsuite/config/cpu32bug.exp | 20 + gdb/testsuite/config/cygmon.exp | 1 + gdb/testsuite/config/d10v.exp | 20 + gdb/testsuite/config/dve.exp | 23 + gdb/testsuite/config/est.exp | 20 + gdb/testsuite/config/gdbserver.exp | 104 + gdb/testsuite/config/h8300.exp | 1 + gdb/testsuite/config/hmsirom.exp | 22 + gdb/testsuite/config/hppro.exp | 24 + gdb/testsuite/config/i386-bozo.exp | 1 + gdb/testsuite/config/i960.exp | 20 + gdb/testsuite/config/m32r-stub.exp | 1 + gdb/testsuite/config/m32r.exp | 23 + gdb/testsuite/config/m68k-emc.exp | 17 + gdb/testsuite/config/mips-idt.exp | 22 + gdb/testsuite/config/mips.exp | 22 + gdb/testsuite/config/mn10300-eval.exp | 23 + gdb/testsuite/config/monitor.exp | 230 + gdb/testsuite/config/mt-a29k-udi | 0 gdb/testsuite/config/mt-i386-aout | 59 + gdb/testsuite/config/mt-i960-nindy | 1 + gdb/testsuite/config/mt-lynx | 4 + gdb/testsuite/config/mt-m68k | 1 + gdb/testsuite/config/mt-mips-ecoff | 2 + gdb/testsuite/config/mt-netware | 1 + gdb/testsuite/config/mt-slite | 8 + gdb/testsuite/config/mt-sparc-aout | 0 gdb/testsuite/config/mt-unix | 1 + gdb/testsuite/config/mt-vxworks | 2 + gdb/testsuite/config/netware.exp | 218 + gdb/testsuite/config/nind.exp | 49 + gdb/testsuite/config/proelf.exp | 20 + gdb/testsuite/config/rom68k.exp | 20 + gdb/testsuite/config/sh.exp | 20 + gdb/testsuite/config/sim.exp | 85 + gdb/testsuite/config/slite.exp | 183 + gdb/testsuite/config/sparclet.exp | 391 + gdb/testsuite/config/udi.exp | 112 + gdb/testsuite/config/unix.exp | 29 + gdb/testsuite/config/unknown.exp | 21 + gdb/testsuite/config/vr4300.exp | 20 + gdb/testsuite/config/vr5000.exp | 20 + gdb/testsuite/config/vx.exp | 130 + gdb/testsuite/config/vxworks.exp | 20 + gdb/testsuite/config/vxworks29k.exp | 27 + gdb/testsuite/configure | 1058 ++ gdb/testsuite/configure.in | 72 + gdb/testsuite/gdb.asm/Makefile.in | 33 + gdb/testsuite/gdb.asm/asm-source.exp | 99 + gdb/testsuite/gdb.asm/asmsrc1.s | 37 + gdb/testsuite/gdb.asm/asmsrc2.s | 16 + gdb/testsuite/gdb.asm/common.inc | 18 + gdb/testsuite/gdb.asm/configure | 950 ++ gdb/testsuite/gdb.asm/configure.in | 22 + gdb/testsuite/gdb.asm/d10v.inc | 28 + gdb/testsuite/gdb.base/Makefile.in | 46 + gdb/testsuite/gdb.base/README | 13 + gdb/testsuite/gdb.base/a1-selftest.exp | 426 + gdb/testsuite/gdb.base/a2-run.exp | 253 + gdb/testsuite/gdb.base/all-bin.exp | 467 + gdb/testsuite/gdb.base/all-types.c | 62 + gdb/testsuite/gdb.base/arithmet.exp | 375 + gdb/testsuite/gdb.base/assign.exp | 446 + gdb/testsuite/gdb.base/bar.c | 9 + gdb/testsuite/gdb.base/baz.c | 9 + gdb/testsuite/gdb.base/bitfields.c | 194 + gdb/testsuite/gdb.base/bitfields.exp | 268 + gdb/testsuite/gdb.base/bitops.exp | 365 + gdb/testsuite/gdb.base/branches.c | 113 + gdb/testsuite/gdb.base/break.c | 81 + gdb/testsuite/gdb.base/break.exp | 769 ++ gdb/testsuite/gdb.base/call-ar-st.c | 1137 ++ gdb/testsuite/gdb.base/call-ar-st.exp | 451 + gdb/testsuite/gdb.base/call-rt-st.c | 530 + gdb/testsuite/gdb.base/call-rt-st.exp | 230 + gdb/testsuite/gdb.base/call-strs.c | 54 + gdb/testsuite/gdb.base/call-strs.exp | 242 + gdb/testsuite/gdb.base/callfuncs.c | 280 + gdb/testsuite/gdb.base/callfuncs.exp | 269 + gdb/testsuite/gdb.base/callfuncs2.c | 267 + gdb/testsuite/gdb.base/callfuncs2.exp | 276 + gdb/testsuite/gdb.base/commands.exp | 248 + gdb/testsuite/gdb.base/compiler.c | 31 + gdb/testsuite/gdb.base/completion.exp | 568 + gdb/testsuite/gdb.base/cond-expr.exp | 122 + gdb/testsuite/gdb.base/condbreak.c | 81 + gdb/testsuite/gdb.base/condbreak.exp | 157 + gdb/testsuite/gdb.base/configure | 899 ++ gdb/testsuite/gdb.base/configure.in | 15 + gdb/testsuite/gdb.base/constvars.c | 183 + gdb/testsuite/gdb.base/constvars.exp | 251 + gdb/testsuite/gdb.base/corefile.exp | 223 + gdb/testsuite/gdb.base/coremaker.c | 120 + gdb/testsuite/gdb.base/crossload.exp | 380 + gdb/testsuite/gdb.base/d10v.ld | 155 + gdb/testsuite/gdb.base/d10vovly.c | 225 + gdb/testsuite/gdb.base/default.exp | 793 ++ gdb/testsuite/gdb.base/define.exp | 304 + gdb/testsuite/gdb.base/display.c | 52 + gdb/testsuite/gdb.base/display.exp | 147 + gdb/testsuite/gdb.base/dollar.exp | 128 + gdb/testsuite/gdb.base/echo.exp | 44 + gdb/testsuite/gdb.base/ena-dis-br.exp | 525 + gdb/testsuite/gdb.base/ending-run.c | 27 + gdb/testsuite/gdb.base/ending-run.exp | 176 + gdb/testsuite/gdb.base/environ.exp | 329 + gdb/testsuite/gdb.base/eval-skip.exp | 352 + gdb/testsuite/gdb.base/exprs.c | 253 + gdb/testsuite/gdb.base/exprs.exp | 222 + gdb/testsuite/gdb.base/foo.c | 9 + gdb/testsuite/gdb.base/funcargs.c | 582 + gdb/testsuite/gdb.base/funcargs.exp | 1017 ++ gdb/testsuite/gdb.base/gdbvars.exp | 117 + gdb/testsuite/gdb.base/grbx.c | 10 + gdb/testsuite/gdb.base/help.exp | 542 + gdb/testsuite/gdb.base/i486-elf.u | 287 + gdb/testsuite/gdb.base/i860-elf.u | 314 + gdb/testsuite/gdb.base/int-type.c | 25 + gdb/testsuite/gdb.base/interrupt.c | 37 + gdb/testsuite/gdb.base/interrupt.exp | 175 + gdb/testsuite/gdb.base/jump.c | 19 + gdb/testsuite/gdb.base/jump.exp | 192 + gdb/testsuite/gdb.base/langs.exp | 122 + gdb/testsuite/gdb.base/langs0.c | 28 + gdb/testsuite/gdb.base/langs1.c | 33 + gdb/testsuite/gdb.base/langs1.f | 7 + gdb/testsuite/gdb.base/langs2.c | 15 + gdb/testsuite/gdb.base/langs2.cxx | 13 + gdb/testsuite/gdb.base/list.exp | 521 + gdb/testsuite/gdb.base/list0.c | 42 + gdb/testsuite/gdb.base/list0.h | 36 + gdb/testsuite/gdb.base/list1.c | 33 + gdb/testsuite/gdb.base/logical.exp | 575 + gdb/testsuite/gdb.base/long_long.c | 55 + gdb/testsuite/gdb.base/long_long.exp | 163 + gdb/testsuite/gdb.base/m32r.ld | 160 + gdb/testsuite/gdb.base/m32rovly.c | 225 + gdb/testsuite/gdb.base/m68k-aout.u | 459 + gdb/testsuite/gdb.base/m68k-aout2.u | 2208 ++++ gdb/testsuite/gdb.base/m68k-elf.u | 298 + gdb/testsuite/gdb.base/maint.exp | 578 + gdb/testsuite/gdb.base/mips-ecoff.u | 671 ++ gdb/testsuite/gdb.base/mips_pro.c | 35 + gdb/testsuite/gdb.base/mips_pro.exp | 62 + gdb/testsuite/gdb.base/miscexprs.c | 165 + gdb/testsuite/gdb.base/miscexprs.exp | 283 + gdb/testsuite/gdb.base/nodebug.c | 58 + gdb/testsuite/gdb.base/nodebug.exp | 163 + gdb/testsuite/gdb.base/opaque.exp | 244 + gdb/testsuite/gdb.base/opaque0.c | 20 + gdb/testsuite/gdb.base/opaque1.c | 18 + gdb/testsuite/gdb.base/overlays.c | 34 + gdb/testsuite/gdb.base/overlays.exp | 246 + gdb/testsuite/gdb.base/ovlymgr.c | 225 + gdb/testsuite/gdb.base/ovlymgr.h | 17 + gdb/testsuite/gdb.base/pointers.c | 176 + gdb/testsuite/gdb.base/pointers.exp | 358 + gdb/testsuite/gdb.base/pointers2.c | 51 + gdb/testsuite/gdb.base/pointers2.exp | 288 + gdb/testsuite/gdb.base/printcmds.c | 101 + gdb/testsuite/gdb.base/printcmds.exp | 695 ++ gdb/testsuite/gdb.base/ptype.c | 313 + gdb/testsuite/gdb.base/ptype.exp | 532 + gdb/testsuite/gdb.base/radix.exp | 201 + gdb/testsuite/gdb.base/recurse.c | 25 + gdb/testsuite/gdb.base/recurse.exp | 145 + gdb/testsuite/gdb.base/regs.exp | 86 + gdb/testsuite/gdb.base/relational.exp | 481 + gdb/testsuite/gdb.base/reread.exp | 117 + gdb/testsuite/gdb.base/reread1.c | 26 + gdb/testsuite/gdb.base/reread2.c | 21 + gdb/testsuite/gdb.base/restore.c | 260 + gdb/testsuite/gdb.base/restore.exp | 111 + gdb/testsuite/gdb.base/return.c | 35 + gdb/testsuite/gdb.base/return.exp | 124 + gdb/testsuite/gdb.base/run.c | 67 + gdb/testsuite/gdb.base/scope.exp | 610 + gdb/testsuite/gdb.base/scope0.c | 176 + gdb/testsuite/gdb.base/scope1.c | 45 + gdb/testsuite/gdb.base/sect-cmd.exp | 109 + gdb/testsuite/gdb.base/setshow.c | 22 + gdb/testsuite/gdb.base/setshow.exp | 243 + gdb/testsuite/gdb.base/setvar.c | 271 + gdb/testsuite/gdb.base/setvar.exp | 420 + gdb/testsuite/gdb.base/shlib-call.exp | 258 + gdb/testsuite/gdb.base/shmain.c | 47 + gdb/testsuite/gdb.base/shr1.c | 47 + gdb/testsuite/gdb.base/shr2.c | 11 + gdb/testsuite/gdb.base/sigall.c | 1383 +++ gdb/testsuite/gdb.base/sigall.exp | 210 + gdb/testsuite/gdb.base/signals.c | 53 + gdb/testsuite/gdb.base/signals.exp | 628 ++ gdb/testsuite/gdb.base/smoke.c | 40 + gdb/testsuite/gdb.base/smoke.cc | 480 + gdb/testsuite/gdb.base/smoke.exp | 181 + gdb/testsuite/gdb.base/so-impl-ld.c | 18 + gdb/testsuite/gdb.base/so-impl-ld.exp | 167 + gdb/testsuite/gdb.base/so-indr-cl.c | 23 + gdb/testsuite/gdb.base/so-indr-cl.exp | 146 + gdb/testsuite/gdb.base/solib.c | 59 + gdb/testsuite/gdb.base/solib.exp | 319 + gdb/testsuite/gdb.base/solib1.c | 9 + gdb/testsuite/gdb.base/solib2.c | 9 + gdb/testsuite/gdb.base/sparc-aout.u | 732 ++ gdb/testsuite/gdb.base/sparc-elf.u | 336 + gdb/testsuite/gdb.base/ss.h | 4 + gdb/testsuite/gdb.base/step-test.c | 58 + gdb/testsuite/gdb.base/step-test.exp | 153 + gdb/testsuite/gdb.base/structs2.c | 38 + gdb/testsuite/gdb.base/structs2.exp | 79 + gdb/testsuite/gdb.base/term.exp | 73 + gdb/testsuite/gdb.base/twice.c | 19 + gdb/testsuite/gdb.base/twice.exp | 63 + gdb/testsuite/gdb.base/varargs.c | 108 + gdb/testsuite/gdb.base/varargs.exp | 139 + gdb/testsuite/gdb.base/volatile.exp | 243 + gdb/testsuite/gdb.base/watchpoint.c | 124 + gdb/testsuite/gdb.base/watchpoint.exp | 583 + gdb/testsuite/gdb.base/whatis-exp.exp | 217 + gdb/testsuite/gdb.base/whatis.c | 269 + gdb/testsuite/gdb.base/whatis.exp | 393 + gdb/testsuite/gdb.c++/Makefile.in | 20 + gdb/testsuite/gdb.c++/anon-union.cc | 54 + gdb/testsuite/gdb.c++/anon-union.exp | 337 + gdb/testsuite/gdb.c++/classes.exp | 850 ++ gdb/testsuite/gdb.c++/compiler.cc | 34 + gdb/testsuite/gdb.c++/configure | 899 ++ gdb/testsuite/gdb.c++/configure.in | 15 + gdb/testsuite/gdb.c++/cplusfuncs.cc | 185 + gdb/testsuite/gdb.c++/cplusfuncs.exp | 300 + gdb/testsuite/gdb.c++/demangle.exp | 1517 +++ gdb/testsuite/gdb.c++/derivation.cc | 240 + gdb/testsuite/gdb.c++/derivation.exp | 316 + gdb/testsuite/gdb.c++/inherit.exp | 859 ++ gdb/testsuite/gdb.c++/local.cc | 67 + gdb/testsuite/gdb.c++/local.exp | 110 + gdb/testsuite/gdb.c++/member-ptr.cc | 106 + gdb/testsuite/gdb.c++/member-ptr.exp | 510 + gdb/testsuite/gdb.c++/method.cc | 80 + gdb/testsuite/gdb.c++/method.exp | 233 + gdb/testsuite/gdb.c++/misc.cc | 517 + gdb/testsuite/gdb.c++/misc.exp | 106 + gdb/testsuite/gdb.c++/overload.cc | 151 + gdb/testsuite/gdb.c++/overload.exp | 338 + gdb/testsuite/gdb.c++/ovldbreak.cc | 177 + gdb/testsuite/gdb.c++/ovldbreak.exp | 680 ++ gdb/testsuite/gdb.c++/ref-types.cc | 30 + gdb/testsuite/gdb.c++/ref-types.exp | 276 + gdb/testsuite/gdb.c++/ref-types2.cc | 47 + gdb/testsuite/gdb.c++/ref-types2.exp | 450 + gdb/testsuite/gdb.c++/templates.cc | 785 ++ gdb/testsuite/gdb.c++/templates.exp | 202 + gdb/testsuite/gdb.c++/userdef.cc | 339 + gdb/testsuite/gdb.c++/userdef.exp | 317 + gdb/testsuite/gdb.c++/virtfunc.cc | 199 + gdb/testsuite/gdb.c++/virtfunc.exp | 751 ++ gdb/testsuite/gdb.chill/ChangeLog | 313 + gdb/testsuite/gdb.chill/Makefile.in | 26 + gdb/testsuite/gdb.chill/builtins.ch | 83 + gdb/testsuite/gdb.chill/builtins.exp | 441 + gdb/testsuite/gdb.chill/callch.ch | 50 + gdb/testsuite/gdb.chill/callch.exp | 69 + gdb/testsuite/gdb.chill/chexp.exp | 450 + gdb/testsuite/gdb.chill/chillvars.ch | 204 + gdb/testsuite/gdb.chill/chillvars.exp | 316 + gdb/testsuite/gdb.chill/configure | 899 ++ gdb/testsuite/gdb.chill/configure.in | 11 + gdb/testsuite/gdb.chill/enum.ch | 9 + gdb/testsuite/gdb.chill/enum.exp | 85 + gdb/testsuite/gdb.chill/extstruct-grt.ch | 12 + gdb/testsuite/gdb.chill/extstruct.ch | 16 + gdb/testsuite/gdb.chill/extstruct.exp | 66 + gdb/testsuite/gdb.chill/func1.ch | 9 + gdb/testsuite/gdb.chill/gch1041.ch | 17 + gdb/testsuite/gdb.chill/gch1041.exp | 76 + gdb/testsuite/gdb.chill/gch1272.ch | 21 + gdb/testsuite/gdb.chill/gch1272.exp | 86 + gdb/testsuite/gdb.chill/gch1280.ch | 13 + gdb/testsuite/gdb.chill/gch1280.exp | 76 + gdb/testsuite/gdb.chill/gch922.ch | 23 + gdb/testsuite/gdb.chill/gch922.exp | 183 + gdb/testsuite/gdb.chill/gch981.ch | 60 + gdb/testsuite/gdb.chill/gch981.exp | 249 + gdb/testsuite/gdb.chill/misc.ch | 12 + gdb/testsuite/gdb.chill/misc.exp | 100 + gdb/testsuite/gdb.chill/powerset.ch | 33 + gdb/testsuite/gdb.chill/powerset.exp | 187 + gdb/testsuite/gdb.chill/pr-4975-grt.ch | 13 + gdb/testsuite/gdb.chill/pr-4975.ch | 43 + gdb/testsuite/gdb.chill/pr-4975.exp | 67 + gdb/testsuite/gdb.chill/pr-5016.ch | 24 + gdb/testsuite/gdb.chill/pr-5016.exp | 62 + gdb/testsuite/gdb.chill/pr-5020.ch | 19 + gdb/testsuite/gdb.chill/pr-5020.exp | 85 + gdb/testsuite/gdb.chill/pr-5022.ch | 12 + gdb/testsuite/gdb.chill/pr-5022.exp | 70 + gdb/testsuite/gdb.chill/pr-5646-grt.ch | 5 + gdb/testsuite/gdb.chill/pr-5646.ch | 15 + gdb/testsuite/gdb.chill/pr-5646.exp | 64 + gdb/testsuite/gdb.chill/pr-5984.ch | 8 + gdb/testsuite/gdb.chill/pr-5984.exp | 57 + gdb/testsuite/gdb.chill/pr-6292.ch | 17 + gdb/testsuite/gdb.chill/pr-6292.exp | 58 + gdb/testsuite/gdb.chill/pr-6632-grt.ch | 34 + gdb/testsuite/gdb.chill/pr-6632.ch | 31 + gdb/testsuite/gdb.chill/pr-6632.exp | 66 + gdb/testsuite/gdb.chill/pr-8134.exp | 65 + gdb/testsuite/gdb.chill/pr-8136.ch | 34 + gdb/testsuite/gdb.chill/pr-8136.exp | 63 + gdb/testsuite/gdb.chill/pr-8405.ch | 19 + gdb/testsuite/gdb.chill/pr-8405.exp | 61 + gdb/testsuite/gdb.chill/pr-8742.ch | 32 + gdb/testsuite/gdb.chill/pr-8742.exp | 64 + gdb/testsuite/gdb.chill/pr-8894-grt.ch | 6 + gdb/testsuite/gdb.chill/pr-8894.ch | 12 + gdb/testsuite/gdb.chill/pr-8894.exp | 61 + gdb/testsuite/gdb.chill/pr-9095.ch | 13 + gdb/testsuite/gdb.chill/pr-9095.exp | 62 + gdb/testsuite/gdb.chill/pr-9946.ch | 10 + gdb/testsuite/gdb.chill/pr-9946.exp | 79 + gdb/testsuite/gdb.chill/result.ch | 29 + gdb/testsuite/gdb.chill/result.exp | 77 + gdb/testsuite/gdb.chill/string.ch | 24 + gdb/testsuite/gdb.chill/string.exp | 73 + gdb/testsuite/gdb.chill/tests1.ch | 240 + gdb/testsuite/gdb.chill/tests1.exp | 822 ++ gdb/testsuite/gdb.chill/tests2.ch | 193 + gdb/testsuite/gdb.chill/tests2.exp | 271 + gdb/testsuite/gdb.chill/tuples.ch | 86 + gdb/testsuite/gdb.chill/tuples.exp | 161 + gdb/testsuite/gdb.disasm/Makefile.in | 20 + gdb/testsuite/gdb.disasm/configure | 899 ++ gdb/testsuite/gdb.disasm/configure.in | 15 + gdb/testsuite/gdb.disasm/hppa.exp | 1403 +++ gdb/testsuite/gdb.disasm/hppa.s | 1738 +++ gdb/testsuite/gdb.disasm/mn10200.exp | 478 + gdb/testsuite/gdb.disasm/mn10200.s | 217 + gdb/testsuite/gdb.disasm/mn10300.exp | 569 + gdb/testsuite/gdb.disasm/mn10300.s | 300 + gdb/testsuite/gdb.disasm/sh3.exp | 123 + gdb/testsuite/gdb.disasm/sh3.s | 54 + gdb/testsuite/gdb.fortran/exprs.exp | 273 + gdb/testsuite/gdb.fortran/types.exp | 114 + gdb/testsuite/gdb.hp/Makefile.in | 25 + gdb/testsuite/gdb.hp/ambiguous.cc | 110 + gdb/testsuite/gdb.hp/ambiguous.exp | 216 + gdb/testsuite/gdb.hp/attach.c | 19 + gdb/testsuite/gdb.hp/attach.exp | 416 + gdb/testsuite/gdb.hp/attach2.c | 23 + gdb/testsuite/gdb.hp/attach2.exp | 263 + gdb/testsuite/gdb.hp/average.c | 39 + gdb/testsuite/gdb.hp/classes-hp.exp | 859 ++ gdb/testsuite/gdb.hp/compiler.c | 31 + gdb/testsuite/gdb.hp/compiler.cc | 34 + gdb/testsuite/gdb.hp/ctti-add.cc | 29 + gdb/testsuite/gdb.hp/ctti-add1.cc | 16 + gdb/testsuite/gdb.hp/ctti-add2.cc | 22 + gdb/testsuite/gdb.hp/ctti-add3.cc | 33 + gdb/testsuite/gdb.hp/ctti.exp | 269 + gdb/testsuite/gdb.hp/dbx.exp | 222 + gdb/testsuite/gdb.hp/exception.cc | 48 + gdb/testsuite/gdb.hp/exception.exp | 408 + gdb/testsuite/gdb.hp/execd-program.c | 28 + gdb/testsuite/gdb.hp/foll-exec.c | 35 + gdb/testsuite/gdb.hp/foll-exec.exp | 412 + gdb/testsuite/gdb.hp/foll-fork.c | 25 + gdb/testsuite/gdb.hp/foll-fork.exp | 385 + gdb/testsuite/gdb.hp/foll-vfork.c | 15 + gdb/testsuite/gdb.hp/foll-vfork.exp | 381 + gdb/testsuite/gdb.hp/gen-so-thresh.c | 229 + gdb/testsuite/gdb.hp/hwwatchbus.c | 9 + gdb/testsuite/gdb.hp/hwwatchbus.exp | 84 + gdb/testsuite/gdb.hp/inherit-hp.exp | 849 ++ gdb/testsuite/gdb.hp/misc-hp.cc | 514 + gdb/testsuite/gdb.hp/more-steps.c | 140 + gdb/testsuite/gdb.hp/more-steps.exp | 152 + gdb/testsuite/gdb.hp/namespace.cc | 103 + gdb/testsuite/gdb.hp/namespace.exp | 195 + gdb/testsuite/gdb.hp/optimize.c | 76 + gdb/testsuite/gdb.hp/optimize.exp | 144 + gdb/testsuite/gdb.hp/pxdb.c | 20 + gdb/testsuite/gdb.hp/pxdb.exp | 114 + gdb/testsuite/gdb.hp/quicksort.c | 284 + gdb/testsuite/gdb.hp/quicksort.exp | 809 ++ gdb/testsuite/gdb.hp/reg-test.exp | 190 + gdb/testsuite/gdb.hp/reg-test.s | 96 + gdb/testsuite/gdb.hp/run-hp.c | 70 + gdb/testsuite/gdb.hp/sized-enum.c | 43 + gdb/testsuite/gdb.hp/sized-enum.exp | 162 + gdb/testsuite/gdb.hp/so-thresh.exp | 362 + gdb/testsuite/gdb.hp/so-thresh.linkopts | 5 + gdb/testsuite/gdb.hp/so-thresh.mk | 73 + gdb/testsuite/gdb.hp/so-thresh.sh | 12 + gdb/testsuite/gdb.hp/start-stop.c | 161 + gdb/testsuite/gdb.hp/start-stop.exp | 360 + gdb/testsuite/gdb.hp/sum.c | 15 + gdb/testsuite/gdb.hp/templ-hp.cc | 785 ++ gdb/testsuite/gdb.hp/templ-hp.exp | 381 + gdb/testsuite/gdb.hp/thr-lib.c | 79 + gdb/testsuite/gdb.hp/thr-lib.exp | 234 + gdb/testsuite/gdb.hp/thr-lib.h | 7 + gdb/testsuite/gdb.hp/thr-liblib.c | 92 + gdb/testsuite/gdb.hp/thr-stg.exp | 255 + gdb/testsuite/gdb.hp/vforked-program.c | 6 + gdb/testsuite/gdb.hp/virtfun-hp.cc | 192 + gdb/testsuite/gdb.hp/virtfun-hp.exp | 773 ++ gdb/testsuite/gdb.hp/watch-cmd.exp | 165 + gdb/testsuite/gdb.hp/watch-hp.c | 166 + gdb/testsuite/gdb.hp/watch-hp.exp | 784 ++ gdb/testsuite/gdb.hp/xdb.c | 20 + gdb/testsuite/gdb.hp/xdb0.c | 42 + gdb/testsuite/gdb.hp/xdb0.h | 36 + gdb/testsuite/gdb.hp/xdb1.c | 33 + gdb/testsuite/gdb.hp/xdb1.exp | 77 + gdb/testsuite/gdb.hp/xdb2.exp | 104 + gdb/testsuite/gdb.hp/xdb3.exp | 307 + gdb/testsuite/gdb.stabs/Makefile.in | 16 + gdb/testsuite/gdb.stabs/aout.sed | 16 + gdb/testsuite/gdb.stabs/configure | 899 ++ gdb/testsuite/gdb.stabs/configure.in | 15 + gdb/testsuite/gdb.stabs/ecoff.sed | 17 + gdb/testsuite/gdb.stabs/hppa.sed | 20 + gdb/testsuite/gdb.stabs/weird.def | 939 ++ gdb/testsuite/gdb.stabs/weird.exp | 325 + gdb/testsuite/gdb.stabs/xcoff.sed | 17 + gdb/testsuite/gdb.threads/Makefile.in | 31 + gdb/testsuite/gdb.threads/config.in | 4 + gdb/testsuite/gdb.threads/configure | 1098 ++ gdb/testsuite/gdb.threads/configure.in | 18 + gdb/testsuite/gdb.threads/pthreads.c | 168 + gdb/testsuite/gdb.threads/pthreads.exp | 328 + gdb/testsuite/gdb.threads/step.c | 221 + gdb/testsuite/gdb.threads/step.exp | 200 + gdb/testsuite/gdb.threads/step2.exp | 150 + gdb/testsuite/gdb.trace/Makefile.in | 21 + gdb/testsuite/gdb.trace/actions.c | 134 + gdb/testsuite/gdb.trace/actions.exp | 207 + gdb/testsuite/gdb.trace/backtrace.exp | 376 + gdb/testsuite/gdb.trace/circ.c | 90 + gdb/testsuite/gdb.trace/circ.exp | 215 + gdb/testsuite/gdb.trace/collection.c | 280 + gdb/testsuite/gdb.trace/collection.exp | 623 + gdb/testsuite/gdb.trace/configure | 899 ++ gdb/testsuite/gdb.trace/configure.in | 15 + gdb/testsuite/gdb.trace/deltrace.exp | 269 + gdb/testsuite/gdb.trace/gdb_c_test.c | 3792 +++++++ gdb/testsuite/gdb.trace/infotrace.exp | 99 + gdb/testsuite/gdb.trace/limits.c | 51 + gdb/testsuite/gdb.trace/limits.exp | 316 + gdb/testsuite/gdb.trace/packetlen.exp | 100 + gdb/testsuite/gdb.trace/passc-dyn.exp | 181 + gdb/testsuite/gdb.trace/passcount.exp | 178 + gdb/testsuite/gdb.trace/report.exp | 421 + gdb/testsuite/gdb.trace/save-trace.exp | 171 + gdb/testsuite/gdb.trace/tfind.exp | 405 + gdb/testsuite/gdb.trace/tracecmd.exp | 269 + gdb/testsuite/gdb.trace/while-dyn.exp | 124 + gdb/testsuite/gdb.trace/while-stepping.exp | 116 + gdb/testsuite/lib/emc-support.exp | 223 + gdb/testsuite/lib/gdb.exp | 1334 +++ gdb/testsuite/lib/trace-support.exp | 307 + gdb/thread.c | 721 ++ gdb/top.c | 3677 ++++++ gdb/top.h | 67 + gdb/tracepoint.c | 2780 +++++ gdb/tracepoint.h | 137 + gdb/tui/ChangeLog | 121 + gdb/tui/Makefile.in | 168 + gdb/tui/tui.c | 830 ++ gdb/tui/tui.h | 120 + gdb/tui/tuiCommand.c | 215 + gdb/tui/tuiCommand.h | 24 + gdb/tui/tuiData.c | 1624 +++ gdb/tui/tuiData.h | 302 + gdb/tui/tuiDataWin.c | 400 + gdb/tui/tuiDataWin.h | 29 + gdb/tui/tuiDisassem.c | 343 + gdb/tui/tuiDisassem.h | 22 + gdb/tui/tuiGeneralWin.c | 469 + gdb/tui/tuiGeneralWin.h | 31 + gdb/tui/tuiIO.c | 734 ++ gdb/tui/tuiIO.h | 43 + gdb/tui/tuiLayout.c | 1410 +++ gdb/tui/tuiLayout.h | 15 + gdb/tui/tuiRegs.c | 1210 ++ gdb/tui/tuiRegs.h | 28 + gdb/tui/tuiSource.c | 465 + gdb/tui/tuiSource.h | 27 + gdb/tui/tuiSourceWin.c | 1098 ++ gdb/tui/tuiSourceWin.h | 74 + gdb/tui/tuiStack.c | 554 + gdb/tui/tuiStack.h | 22 + gdb/tui/tuiWin.c | 1650 +++ gdb/tui/tuiWin.h | 28 + gdb/typeprint.c | 321 + gdb/typeprint.h | 25 + gdb/ultra3-nat.c | 329 + gdb/ultra3-xdep.c | 128 + gdb/umax-xdep.c | 133 + gdb/utils.c | 2932 +++++ gdb/v850-tdep.c | 884 ++ gdb/valarith.c | 1259 +++ gdb/valops.c | 3461 ++++++ gdb/valprint.c | 1567 +++ gdb/valprint.h | 54 + gdb/value.h | 568 + gdb/values.c | 1623 +++ gdb/vax-tdep.c | 263 + gdb/vx-share/README | 7 + gdb/vx-share/dbgRpcLib.h | 32 + gdb/vx-share/ptrace.h | 44 + gdb/vx-share/regPacket.h | 160 + gdb/vx-share/vxTypes.h | 72 + gdb/vx-share/vxWorks.h | 171 + gdb/vx-share/wait.h | 46 + gdb/vx-share/xdr_ld.c | 84 + gdb/vx-share/xdr_ld.h | 45 + gdb/vx-share/xdr_ptrace.c | 118 + gdb/vx-share/xdr_ptrace.h | 72 + gdb/vx-share/xdr_rdb.c | 212 + gdb/vx-share/xdr_rdb.h | 137 + gdb/w65-tdep.c | 295 + gdb/w89k-rom.c | 317 + gdb/win32-nat.c | 1122 ++ gdb/xcoffread.c | 2811 +++++ gdb/xcoffsolib.c | 220 + gdb/xcoffsolib.h | 58 + gdb/xmodem.c | 284 + gdb/xmodem.h | 29 + gdb/z8k-tdep.c | 453 + mmalloc/COPYING.LIB | 481 + mmalloc/ChangeLog | 427 + mmalloc/Makefile.in | 208 + mmalloc/TODO | 17 + mmalloc/attach.c | 218 + mmalloc/configure | 1623 +++ mmalloc/configure.in | 13 + mmalloc/detach.c | 71 + mmalloc/keys.c | 66 + mmalloc/mcalloc.c | 54 + mmalloc/mfree.c | 247 + mmalloc/mm.c | 37 + mmalloc/mmalloc.c | 337 + mmalloc/mmalloc.h | 62 + mmalloc/mmalloc.texi | 258 + mmalloc/mmap-sup.c | 205 + mmalloc/mmcheck.c | 223 + mmalloc/mmemalign.c | 62 + mmalloc/mmprivate.h | 343 + mmalloc/mmstats.c | 46 + mmalloc/mmtrace.awk | 36 + mmalloc/mmtrace.c | 171 + mmalloc/mrealloc.c | 163 + mmalloc/mvalloc.c | 48 + mmalloc/sbrk-sup.c | 97 + readline/ChangeLog | 961 ++ readline/MANIFEST.doc | 16 + readline/config.h.bot | 22 + readline/cross-build/cygwin.cache | 45 + readline/doc/ChangeLog | 29 + readline/doc/inc-hist.texi | 159 + sim/ChangeLog | 461 + sim/Makefile.in | 254 + sim/README-HACKING | 254 + sim/arm/COPYING | 340 + sim/arm/ChangeLog | 426 + sim/arm/Makefile.in | 48 + sim/arm/README.Cygnus | 27 + sim/arm/acconfig.h | 15 + sim/arm/armcopro.c | 357 + sim/arm/armdefs.h | 353 + sim/arm/armemu.c | 3454 ++++++ sim/arm/armemu.h | 425 + sim/arm/armfpe.h | 1351 +++ sim/arm/arminit.c | 294 + sim/arm/armopts.h | 23 + sim/arm/armos.c | 1136 ++ sim/arm/armos.h | 95 + sim/arm/armrdi.c | 1044 ++ sim/arm/armsupp.c | 712 ++ sim/arm/armvirt.c | 491 + sim/arm/bag.c | 141 + sim/arm/bag.h | 42 + sim/arm/communicate.c | 221 + sim/arm/communicate.h | 37 + sim/arm/config.in | 158 + sim/arm/configure | 3892 +++++++ sim/arm/configure.in | 10 + sim/arm/dbg_conf.h | 48 + sim/arm/dbg_cp.h | 62 + sim/arm/dbg_hif.h | 47 + sim/arm/dbg_rdi.h | 323 + sim/arm/gdbhost.c | 107 + sim/arm/gdbhost.h | 23 + sim/arm/kid.c | 510 + sim/arm/main.c | 183 + sim/arm/parent.c | 483 + sim/arm/tconfig.in | 17 + sim/arm/thumbemu.c | 455 + sim/arm/wrapper.c | 467 + sim/common/ChangeLog | 4005 +++++++ sim/common/Make-common.in | 642 ++ sim/common/Makefile.in | 139 + sim/common/acconfig.h | 15 + sim/common/aclocal.m4 | 1259 +++ sim/common/callback.c | 810 ++ sim/common/cgen-cpu.h | 98 + sim/common/cgen-defs.h | 174 + sim/common/cgen-engine.h | 473 + sim/common/cgen-mem.h | 203 + sim/common/cgen-ops.h | 897 ++ sim/common/cgen-run.c | 233 + sim/common/cgen-scache.c | 471 + sim/common/cgen-scache.h | 162 + sim/common/cgen-sim.h | 34 + sim/common/cgen-trace.c | 414 + sim/common/cgen-trace.h | 91 + sim/common/cgen-types.h | 116 + sim/common/cgen-utils.c | 328 + sim/common/config.in | 167 + sim/common/configure | 3902 +++++++ sim/common/configure.in | 40 + sim/common/dv-core.c | 118 + sim/common/dv-glue.c | 373 + sim/common/dv-pal.c | 605 + sim/common/dv-sockser.c | 386 + sim/common/dv-sockser.h | 32 + sim/common/gdbinit.in | 10 + sim/common/genmloop.sh | 1122 ++ sim/common/gennltvals.sh | 67 + sim/common/gentmap.c | 125 + sim/common/gentvals.sh | 74 + sim/common/hw-alloc.c | 99 + sim/common/hw-alloc.h | 49 + sim/common/hw-base.c | 571 + sim/common/hw-base.h | 109 + sim/common/hw-device.c | 66 + sim/common/hw-device.h | 535 + sim/common/hw-events.c | 263 + sim/common/hw-events.h | 61 + sim/common/hw-handles.c | 237 + sim/common/hw-handles.h | 63 + sim/common/hw-instances.c | 285 + sim/common/hw-instances.h | 157 + sim/common/hw-main.h | 73 + sim/common/hw-ports.c | 339 + sim/common/hw-ports.h | 129 + sim/common/hw-properties.c | 905 ++ sim/common/hw-properties.h | 244 + sim/common/hw-tree.c | 1344 +++ sim/common/hw-tree.h | 119 + sim/common/nltvals.def | 418 + sim/common/nrun.c | 214 + sim/common/run.1 | 107 + sim/common/run.c | 308 + sim/common/sim-abort.c | 60 + sim/common/sim-alu.h | 1047 ++ sim/common/sim-arange.c | 301 + sim/common/sim-arange.h | 83 + sim/common/sim-assert.h | 90 + sim/common/sim-base.h | 252 + sim/common/sim-basics.h | 154 + sim/common/sim-bits.c | 208 + sim/common/sim-bits.h | 564 + sim/common/sim-break.c | 278 + sim/common/sim-break.h | 38 + sim/common/sim-config.c | 377 + sim/common/sim-config.h | 594 + sim/common/sim-core.c | 839 ++ sim/common/sim-core.h | 343 + sim/common/sim-cpu.c | 80 + sim/common/sim-cpu.h | 152 + sim/common/sim-endian.c | 128 + sim/common/sim-endian.h | 414 + sim/common/sim-engine.c | 210 + sim/common/sim-engine.h | 161 + sim/common/sim-events.c | 1188 ++ sim/common/sim-events.h | 271 + sim/common/sim-fpu.c | 2578 +++++ sim/common/sim-fpu.h | 417 + sim/common/sim-hload.c | 69 + sim/common/sim-hrw.c | 41 + sim/common/sim-hw.c | 508 + sim/common/sim-hw.h | 98 + sim/common/sim-info.c | 32 + sim/common/sim-inline.c | 96 + sim/common/sim-inline.h | 810 ++ sim/common/sim-io.c | 379 + sim/common/sim-io.h | 84 + sim/common/sim-load.c | 239 + sim/common/sim-memopt.c | 471 + sim/common/sim-memopt.h | 46 + sim/common/sim-model.c | 208 + sim/common/sim-model.h | 138 + sim/common/sim-module.c | 399 + sim/common/sim-module.h | 125 + sim/common/sim-n-bits.h | 218 + sim/common/sim-n-core.h | 417 + sim/common/sim-n-endian.h | 169 + sim/common/sim-options.c | 936 ++ sim/common/sim-options.h | 149 + sim/common/sim-profile.c | 1175 ++ sim/common/sim-profile.h | 289 + sim/common/sim-reason.c | 57 + sim/common/sim-reg.c | 52 + sim/common/sim-resume.c | 85 + sim/common/sim-run.c | 51 + sim/common/sim-signal.c | 96 + sim/common/sim-signal.h | 49 + sim/common/sim-stop.c | 43 + sim/common/sim-trace.c | 1341 +++ sim/common/sim-trace.h | 551 + sim/common/sim-types.h | 201 + sim/common/sim-utils.c | 411 + sim/common/sim-utils.h | 90 + sim/common/sim-watch.c | 458 + sim/common/sim-watch.h | 78 + sim/common/syscall.c | 482 + sim/common/tconfig.in | 19 + sim/configure | 1917 ++++ sim/configure.in | 187 + sim/d10v/ChangeLog | 974 ++ sim/d10v/Makefile.in | 52 + sim/d10v/acconfig.h | 15 + sim/d10v/config.in | 158 + sim/d10v/configure | 3917 +++++++ sim/d10v/configure.in | 13 + sim/d10v/d10v_sim.h | 452 + sim/d10v/endian.c | 137 + sim/d10v/gencode.c | 156 + sim/d10v/interp.c | 1086 ++ sim/d10v/simops.c | 3252 ++++++ sim/d30v/ChangeLog | 1333 +++ sim/d30v/Makefile.in | 217 + sim/d30v/acconfig.h | 15 + sim/d30v/alu.h | 106 + sim/d30v/config.in | 162 + sim/d30v/configure | 4264 +++++++ sim/d30v/configure.in | 40 + sim/d30v/cpu.c | 172 + sim/d30v/cpu.h | 242 + sim/d30v/d30v-insns | 2422 ++++ sim/d30v/dc-short | 22 + sim/d30v/engine.c | 493 + sim/d30v/ic-d30v | 80 + sim/d30v/sim-calls.c | 364 + sim/d30v/sim-main.h | 82 + sim/d30v/tconfig.in | 4 + sim/erc32/ChangeLog | 576 + sim/erc32/Makefile.in | 75 + sim/erc32/NEWS | 108 + sim/erc32/README.erc32 | 130 + sim/erc32/README.gdb | 67 + sim/erc32/README.sis | 356 + sim/erc32/acconfig.h | 15 + sim/erc32/config.in | 158 + sim/erc32/configure | 3932 +++++++ sim/erc32/configure.in | 13 + sim/erc32/end.c | 26 + sim/erc32/erc32.c | 1888 ++++ sim/erc32/exec.c | 2041 ++++ sim/erc32/float.c | 212 + sim/erc32/func.c | 1162 ++ sim/erc32/help.c | 40 + sim/erc32/interf.c | 526 + sim/erc32/sis.c | 310 + sim/erc32/sis.h | 217 + sim/erc32/startsim | 4 + sim/fr30/ChangeLog | 287 + sim/fr30/Makefile.in | 90 + sim/fr30/README | 14 + sim/fr30/TODO | 14 + sim/fr30/arch.c | 695 ++ sim/fr30/arch.h | 87 + sim/fr30/config.in | 162 + sim/fr30/configure | 4222 +++++++ sim/fr30/configure.in | 16 + sim/fr30/cpu.c | 356 + sim/fr30/cpu.h | 1244 ++ sim/fr30/cpuall.h | 63 + sim/fr30/decode.c | 3303 ++++++ sim/fr30/decode.h | 289 + sim/fr30/devices.c | 99 + sim/fr30/fr30-sim.h | 108 + sim/fr30/fr30.c | 423 + sim/fr30/mloop.in | 236 + sim/fr30/model.c | 4004 +++++++ sim/fr30/sem-switch.c | 5397 +++++++++ sim/fr30/sem.c | 5504 +++++++++ sim/fr30/sim-if.c | 208 + sim/fr30/sim-main.h | 70 + sim/fr30/tconfig.in | 42 + sim/fr30/traps.c | 217 + sim/h8300/ChangeLog | 591 + sim/h8300/Makefile.in | 25 + sim/h8300/acconfig.h | 15 + sim/h8300/compile.c | 2169 ++++ sim/h8300/config.in | 158 + sim/h8300/configure | 3892 +++++++ sim/h8300/configure.in | 10 + sim/h8300/inst.h | 89 + sim/h8300/tconfig.in | 17 + sim/h8300/writecode.c | 1033 ++ sim/h8500/ChangeLog | 413 + sim/h8500/Makefile.in | 28 + sim/h8500/acconfig.h | 15 + sim/h8500/compile.c | 2519 +++++ sim/h8500/config.in | 158 + sim/h8500/configure | 3892 +++++++ sim/h8500/configure.in | 10 + sim/h8500/inst.h | 101 + sim/h8500/tconfig.in | 13 + sim/i960/ChangeLog | 86 + sim/i960/Makefile.in | 101 + sim/i960/README | 14 + sim/i960/TODO | 9 + sim/i960/acconfig.h | 15 + sim/i960/arch.c | 164 + sim/i960/arch.h | 52 + sim/i960/config.in | 162 + sim/i960/configure | 4222 +++++++ sim/i960/configure.in | 16 + sim/i960/cpu.c | 84 + sim/i960/cpu.h | 1860 +++ sim/i960/cpuall.h | 64 + sim/i960/decode.c | 6644 +++++++++++ sim/i960/decode.h | 433 + sim/i960/devices.c | 108 + sim/i960/i960-desc.c | 1784 +++ sim/i960/i960-desc.h | 342 + sim/i960/i960-opc.h | 156 + sim/i960/i960-sim.h | 49 + sim/i960/i960.c | 141 + sim/i960/mloop.in | 301 + sim/i960/model.c | 9793 ++++++++++++++++ sim/i960/sem-switch.c | 7181 ++++++++++++ sim/i960/sem.c | 7406 ++++++++++++ sim/i960/sim-if.c | 311 + sim/i960/sim-main.h | 69 + sim/i960/tconfig.in | 49 + sim/i960/traps.c | 213 + sim/igen/ChangeLog | 998 ++ sim/igen/Makefile.in | 177 + sim/igen/acconfig.h | 15 + sim/igen/config.in | 31 + sim/igen/configure | 1806 +++ sim/igen/configure.in | 52 + sim/igen/filter.c | 355 + sim/igen/filter.h | 86 + sim/igen/filter_host.c | 37 + sim/igen/filter_host.h | 27 + sim/igen/gen-engine.c | 807 ++ sim/igen/gen-engine.h | 37 + sim/igen/gen-icache.c | 859 ++ sim/igen/gen-icache.h | 81 + sim/igen/gen-idecode.c | 1391 +++ sim/igen/gen-idecode.h | 50 + sim/igen/gen-itable.c | 317 + sim/igen/gen-itable.h | 30 + sim/igen/gen-model.c | 416 + sim/igen/gen-model.h | 29 + sim/igen/gen-semantics.c | 390 + sim/igen/gen-semantics.h | 104 + sim/igen/gen-support.c | 219 + sim/igen/gen-support.h | 29 + sim/igen/gen.c | 1765 +++ sim/igen/gen.h | 227 + sim/igen/igen.c | 1621 +++ sim/igen/igen.h | 234 + sim/igen/ld-cache.c | 114 + sim/igen/ld-cache.h | 66 + sim/igen/ld-decode.c | 404 + sim/igen/ld-decode.h | 235 + sim/igen/ld-insn.c | 1829 +++ sim/igen/ld-insn.h | 703 ++ sim/igen/lf.c | 418 + sim/igen/lf.h | 143 + sim/igen/misc.c | 284 + sim/igen/misc.h | 149 + sim/igen/table.c | 632 ++ sim/igen/table.h | 155 + sim/m32r/ChangeLog | 1046 ++ sim/m32r/Makefile.in | 95 + sim/m32r/README | 14 + sim/m32r/TODO | 9 + sim/m32r/acconfig.h | 15 + sim/m32r/arch.c | 356 + sim/m32r/arch.h | 69 + sim/m32r/config.in | 162 + sim/m32r/configure | 4251 +++++++ sim/m32r/configure.in | 17 + sim/m32r/cpu.c | 196 + sim/m32r/cpu.h | 852 ++ sim/m32r/cpuall.h | 70 + sim/m32r/decode.c | 1996 ++++ sim/m32r/decode.h | 208 + sim/m32r/devices.c | 108 + sim/m32r/m32r-sim.h | 203 + sim/m32r/m32r.c | 413 + sim/m32r/mloop.in | 319 + sim/m32r/model.c | 4168 +++++++ sim/m32r/sem-switch.c | 2503 ++++ sim/m32r/sem.c | 2544 +++++ sim/m32r/sim-if.c | 287 + sim/m32r/sim-main.h | 85 + sim/m32r/tconfig.in | 47 + sim/m32r/traps.c | 170 + sim/mips/ChangeLog | 2046 ++++ sim/mips/Makefile.in | 293 + sim/mips/acconfig.h | 15 + sim/mips/config.in | 174 + sim/mips/configure | 4890 ++++++++ sim/mips/configure.in | 170 + sim/mips/dv-tx3904cpu.c | 246 + sim/mips/dv-tx3904irc.c | 413 + sim/mips/dv-tx3904sio.c | 621 + sim/mips/dv-tx3904tmr.c | 698 ++ sim/mips/interp.c | 3228 ++++++ sim/mips/m16.dc | 25 + sim/mips/m16.igen | 1236 ++ sim/mips/m16run.c | 74 + sim/mips/mips.dc | 16 + sim/mips/mips.igen | 3895 +++++++ sim/mips/sim-main.c | 579 + sim/mips/sim-main.h | 785 ++ sim/mips/tconfig.in | 31 + sim/mips/tx.igen | 41 + sim/mips/vr.igen | 78 + sim/mn10200/ChangeLog | 424 + sim/mn10200/Makefile.in | 52 + sim/mn10200/acconfig.h | 15 + sim/mn10200/config.in | 158 + sim/mn10200/configure | 3892 +++++++ sim/mn10200/configure.in | 10 + sim/mn10200/gencode.c | 154 + sim/mn10200/interp.c | 800 ++ sim/mn10200/mn10200_sim.h | 297 + sim/mn10200/simops.c | 2449 ++++ sim/mn10300/ChangeLog | 815 ++ sim/mn10300/Makefile.in | 157 + sim/mn10300/acconfig.h | 15 + sim/mn10300/config.in | 183 + sim/mn10300/configure | 4397 ++++++++ sim/mn10300/configure.in | 37 + sim/mn10300/dv-mn103cpu.c | 431 + sim/mn10300/dv-mn103int.c | 824 ++ sim/mn10300/dv-mn103iop.c | 555 + sim/mn10300/dv-mn103ser.c | 712 ++ sim/mn10300/dv-mn103tim.c | 1032 ++ sim/mn10300/gencode.c | 163 + sim/mn10300/interp.c | 1402 +++ sim/mn10300/mn10300.dc | 4 + sim/mn10300/mn10300.igen | 3537 ++++++ sim/mn10300/mn10300_sim.h | 383 + sim/mn10300/op_utils.c | 227 + sim/mn10300/sim-main.c | 4 + sim/mn10300/sim-main.h | 107 + sim/mn10300/simops.c | 3239 ++++++ sim/mn10300/tconfig.in | 26 + sim/ppc/.gdbinit | 2 + sim/ppc/BUGS | 123 + sim/ppc/COPYING | 340 + sim/ppc/COPYING.LIB | 481 + sim/ppc/ChangeLog | 3183 ++++++ sim/ppc/ChangeLog.00 | 2168 ++++ sim/ppc/INSTALL | 812 ++ sim/ppc/Makefile.in | 660 ++ sim/ppc/README | 353 + sim/ppc/RUN | 949 ++ sim/ppc/acconfig.h | 15 + sim/ppc/aclocal.m4 | 0 sim/ppc/basics.h | 139 + sim/ppc/bits.c | 114 + sim/ppc/bits.h | 257 + sim/ppc/cap.c | 134 + sim/ppc/cap.h | 60 + sim/ppc/config.in | 362 + sim/ppc/configure | 5197 +++++++++ sim/ppc/configure.in | 745 ++ sim/ppc/corefile-n.h | 97 + sim/ppc/corefile.c | 415 + sim/ppc/corefile.h | 227 + sim/ppc/cpu.c | 404 + sim/ppc/cpu.h | 254 + sim/ppc/dc-complex | 58 + sim/ppc/dc-simple | 25 + sim/ppc/dc-stupid | 58 + sim/ppc/dc-test.01 | 24 + sim/ppc/dc-test.02 | 24 + sim/ppc/debug.c | 153 + sim/ppc/debug.h | 172 + sim/ppc/device.c | 1998 ++++ sim/ppc/device.h | 797 ++ sim/ppc/device_table.c | 310 + sim/ppc/device_table.h | 323 + sim/ppc/dgen.c | 336 + sim/ppc/double.c | 42 + sim/ppc/dp-bit.c | 1307 +++ sim/ppc/emul_bugapi.c | 581 + sim/ppc/emul_bugapi.h | 27 + sim/ppc/emul_chirp.c | 2010 ++++ sim/ppc/emul_chirp.h | 75 + sim/ppc/emul_generic.c | 343 + sim/ppc/emul_generic.h | 178 + sim/ppc/emul_netbsd.c | 1439 +++ sim/ppc/emul_netbsd.h | 27 + sim/ppc/emul_unix.c | 2812 +++++ sim/ppc/emul_unix.h | 28 + sim/ppc/events.c | 387 + sim/ppc/events.h | 79 + sim/ppc/filter.c | 150 + sim/ppc/filter.h | 43 + sim/ppc/filter_filename.c | 38 + sim/ppc/filter_filename.h | 27 + sim/ppc/gen-icache.c | 675 ++ sim/ppc/gen-icache.h | 68 + sim/ppc/gen-idecode.c | 1545 +++ sim/ppc/gen-idecode.h | 40 + sim/ppc/gen-itable.c | 122 + sim/ppc/gen-itable.h | 28 + sim/ppc/gen-model.c | 393 + sim/ppc/gen-model.h | 30 + sim/ppc/gen-semantics.c | 250 + sim/ppc/gen-semantics.h | 81 + sim/ppc/gen-support.c | 132 + sim/ppc/gen-support.h | 29 + sim/ppc/hw_com.c | 559 + sim/ppc/hw_core.c | 143 + sim/ppc/hw_cpu.c | 167 + sim/ppc/hw_cpu.h | 34 + sim/ppc/hw_disk.c | 557 + sim/ppc/hw_eeprom.c | 839 ++ sim/ppc/hw_glue.c | 371 + sim/ppc/hw_htab.c | 683 ++ sim/ppc/hw_ide.c | 869 ++ sim/ppc/hw_init.c | 721 ++ sim/ppc/hw_iobus.c | 100 + sim/ppc/hw_memory.c | 538 + sim/ppc/hw_nvram.c | 264 + sim/ppc/hw_opic.c | 1827 +++ sim/ppc/hw_pal.c | 366 + sim/ppc/hw_phb.c | 1068 ++ sim/ppc/hw_phb.h | 40 + sim/ppc/hw_register.c | 131 + sim/ppc/hw_trace.c | 103 + sim/ppc/hw_vm.c | 275 + sim/ppc/idecode_branch.h | 62 + sim/ppc/idecode_expression.h | 410 + sim/ppc/idecode_fields.h | 105 + sim/ppc/igen.c | 516 + sim/ppc/igen.h | 199 + sim/ppc/inline.c | 98 + sim/ppc/inline.h | 490 + sim/ppc/interrupts.c | 545 + sim/ppc/interrupts.h | 172 + sim/ppc/ld-cache.c | 115 + sim/ppc/ld-cache.h | 81 + sim/ppc/ld-decode.c | 155 + sim/ppc/ld-decode.h | 143 + sim/ppc/ld-insn.c | 925 ++ sim/ppc/ld-insn.h | 281 + sim/ppc/lf.c | 440 + sim/ppc/lf.h | 129 + sim/ppc/main.c | 318 + sim/ppc/misc.c | 215 + sim/ppc/misc.h | 94 + sim/ppc/mon.c | 445 + sim/ppc/mon.h | 108 + sim/ppc/options.c | 247 + sim/ppc/options.h | 30 + sim/ppc/os_emul.c | 146 + sim/ppc/os_emul.h | 60 + sim/ppc/pk_disklabel.c | 401 + sim/ppc/ppc-cache-rules | 65 + sim/ppc/ppc-instructions | 4933 ++++++++ sim/ppc/ppc-spr-table | 88 + sim/ppc/ppc.mt | 3 + sim/ppc/psim.c | 1100 ++ sim/ppc/psim.h | 181 + sim/ppc/psim.texinfo | 1105 ++ sim/ppc/registers.c | 169 + sim/ppc/registers.h | 324 + sim/ppc/sim-endian-n.h | 134 + sim/ppc/sim-endian.c | 74 + sim/ppc/sim-endian.h | 409 + sim/ppc/sim_callbacks.h | 115 + sim/ppc/sim_calls.c | 445 + sim/ppc/std-config.h | 672 ++ sim/ppc/table.c | 279 + sim/ppc/table.h | 60 + sim/ppc/tree.c | 1256 +++ sim/ppc/tree.h | 139 + sim/ppc/vm.c | 1198 ++ sim/ppc/vm.h | 155 + sim/ppc/vm_n.h | 134 + sim/ppc/words.h | 116 + sim/sh/ChangeLog | 736 ++ sim/sh/Makefile.in | 41 + sim/sh/acconfig.h | 15 + sim/sh/config.in | 158 + sim/sh/configure | 3892 +++++++ sim/sh/configure.in | 10 + sim/sh/gencode.c | 1755 +++ sim/sh/interp.c | 1414 +++ sim/sh/syscall.h | 33 + sim/sh/tconfig.in | 17 + sim/testsuite/ChangeLog | 321 + sim/testsuite/Makefile.in | 182 + sim/testsuite/common/Make-common.in | 90 + sim/testsuite/common/Makefile.in | 53 + sim/testsuite/common/alu-n-tst.h | 260 + sim/testsuite/common/alu-tst.c | 104 + sim/testsuite/common/bits-gen.c | 319 + sim/testsuite/common/bits-tst.c | 408 + sim/testsuite/common/fpu-tst.c | 538 + sim/testsuite/config/default.exp | 42 + sim/testsuite/configure | 1022 ++ sim/testsuite/configure.in | 40 + sim/testsuite/d10v-elf/ChangeLog | 84 + sim/testsuite/d10v-elf/Makefile.in | 150 + sim/testsuite/d10v-elf/configure | 900 ++ sim/testsuite/d10v-elf/configure.in | 19 + sim/testsuite/d10v-elf/exit47.s | 4 + sim/testsuite/d10v-elf/hello.s | 5 + sim/testsuite/d10v-elf/loop.s | 6 + sim/testsuite/d10v-elf/t-dbt.s | 33 + sim/testsuite/d10v-elf/t-mac.s | 71 + sim/testsuite/d10v-elf/t-macros.i | 170 + sim/testsuite/d10v-elf/t-msbu.s | 28 + sim/testsuite/d10v-elf/t-mulxu.s | 28 + sim/testsuite/d10v-elf/t-mvtac.s | 19 + sim/testsuite/d10v-elf/t-mvtc.s | 81 + sim/testsuite/d10v-elf/t-rac.s | 16 + sim/testsuite/d10v-elf/t-rachi.s | 28 + sim/testsuite/d10v-elf/t-rdt.s | 18 + sim/testsuite/d10v-elf/t-rep.s | 45 + sim/testsuite/d10v-elf/t-rte.s | 18 + sim/testsuite/d10v-elf/t-sadd.s | 38 + sim/testsuite/d10v-elf/t-sp.s | 17 + sim/testsuite/d10v-elf/t-sub.s | 42 + sim/testsuite/d10v-elf/t-sub2w.s | 57 + sim/testsuite/d10v-elf/t-subi.s | 39 + sim/testsuite/d10v-elf/t-trap.s | 5 + sim/testsuite/d30v-elf/ChangeLog | 60 + sim/testsuite/d30v-elf/Makefile.in | 217 + sim/testsuite/d30v-elf/br-bra.S | 12 + sim/testsuite/d30v-elf/br-bratnz.S | 12 + sim/testsuite/d30v-elf/br-bratzr.S | 12 + sim/testsuite/d30v-elf/br-bsr.S | 12 + sim/testsuite/d30v-elf/br-dbra.S | 83 + sim/testsuite/d30v-elf/br-djmp.S | 83 + sim/testsuite/d30v-elf/br-djsr.S | 79 + sim/testsuite/d30v-elf/configure | 833 ++ sim/testsuite/d30v-elf/configure.in | 19 + sim/testsuite/d30v-elf/do-2wordops.S | 80 + sim/testsuite/d30v-elf/do-flags.S | 241 + sim/testsuite/d30v-elf/do-shifts.S | 182 + sim/testsuite/d30v-elf/em-e0.S | 4 + sim/testsuite/d30v-elf/em-e47.S | 4 + sim/testsuite/d30v-elf/em-pchr.S | 28 + sim/testsuite/d30v-elf/em-pstr.S | 8 + sim/testsuite/d30v-elf/exit47.s | 4 + sim/testsuite/d30v-elf/hello.s | 9 + sim/testsuite/d30v-elf/loop.s | 1 + sim/testsuite/d30v-elf/ls-ld2h.S | 11 + sim/testsuite/d30v-elf/ls-ld2w.S | 12 + sim/testsuite/d30v-elf/ls-ld4bh.S | 12 + sim/testsuite/d30v-elf/ls-ld4bhu.S | 11 + sim/testsuite/d30v-elf/ls-ldb.S | 11 + sim/testsuite/d30v-elf/ls-ldbu.S | 11 + sim/testsuite/d30v-elf/ls-ldh.S | 11 + sim/testsuite/d30v-elf/ls-ldhh.S | 11 + sim/testsuite/d30v-elf/ls-ldhu.S | 11 + sim/testsuite/d30v-elf/ls-ldw.S | 11 + sim/testsuite/d30v-elf/ls-modaddr.S | 56 + sim/testsuite/d30v-elf/ls-moddec.S | 3 + sim/testsuite/d30v-elf/ls-modinc.S | 3 + sim/testsuite/d30v-elf/ls-st2h.S | 13 + sim/testsuite/d30v-elf/ls-st2w.S | 13 + sim/testsuite/d30v-elf/ls-st4hb.S | 13 + sim/testsuite/d30v-elf/ls-stb.S | 12 + sim/testsuite/d30v-elf/ls-sth.S | 12 + sim/testsuite/d30v-elf/ls-sthh.S | 12 + sim/testsuite/d30v-elf/ls-stw.S | 12 + sim/testsuite/d30v-elf/os-dbt.S | 38 + sim/testsuite/d30v-elf/tick.s | 51 + sim/testsuite/d30v-elf/trap.S | 35 + sim/testsuite/fr30-elf/ChangeLog | 8 + sim/testsuite/fr30-elf/Makefile.in | 157 + sim/testsuite/fr30-elf/configure | 902 ++ sim/testsuite/fr30-elf/configure.in | 19 + sim/testsuite/fr30-elf/exit47.s | 7 + sim/testsuite/fr30-elf/hello.s | 15 + sim/testsuite/fr30-elf/loop.s | 2 + sim/testsuite/lib/sim-defs.exp | 318 + sim/testsuite/m32r-elf/ChangeLog | 4 + sim/testsuite/m32r-elf/Makefile.in | 157 + sim/testsuite/m32r-elf/configure | 902 ++ sim/testsuite/m32r-elf/configure.in | 19 + sim/testsuite/m32r-elf/exit47.s | 7 + sim/testsuite/m32r-elf/hello.s | 17 + sim/testsuite/m32r-elf/loop.s | 2 + sim/testsuite/mips64el-elf/ChangeLog | 5 + sim/testsuite/mips64el-elf/Makefile.in | 171 + sim/testsuite/mips64el-elf/configure | 904 ++ sim/testsuite/mips64el-elf/configure.in | 19 + sim/testsuite/sim/fr30/add.cgs | 55 + sim/testsuite/sim/fr30/add.ms | 13 + sim/testsuite/sim/fr30/add2.cgs | 43 + sim/testsuite/sim/fr30/addc.cgs | 50 + sim/testsuite/sim/fr30/addn.cgs | 55 + sim/testsuite/sim/fr30/addn2.cgs | 43 + sim/testsuite/sim/fr30/addsp.cgs | 31 + sim/testsuite/sim/fr30/allinsn.exp | 19 + sim/testsuite/sim/fr30/and.cgs | 51 + sim/testsuite/sim/fr30/andb.cgs | 31 + sim/testsuite/sim/fr30/andccr.cgs | 51 + sim/testsuite/sim/fr30/andh.cgs | 31 + sim/testsuite/sim/fr30/asr.cgs | 65 + sim/testsuite/sim/fr30/asr2.cgs | 36 + sim/testsuite/sim/fr30/bandh.cgs | 30 + sim/testsuite/sim/fr30/bandl.cgs | 30 + sim/testsuite/sim/fr30/bc.cgs | 109 + sim/testsuite/sim/fr30/beorh.cgs | 36 + sim/testsuite/sim/fr30/beorl.cgs | 36 + sim/testsuite/sim/fr30/beq.cgs | 109 + sim/testsuite/sim/fr30/bge.cgs | 109 + sim/testsuite/sim/fr30/bgt.cgs | 109 + sim/testsuite/sim/fr30/bhi.cgs | 109 + sim/testsuite/sim/fr30/ble.cgs | 109 + sim/testsuite/sim/fr30/bls.cgs | 109 + sim/testsuite/sim/fr30/blt.cgs | 109 + sim/testsuite/sim/fr30/bn.cgs | 109 + sim/testsuite/sim/fr30/bnc.cgs | 109 + sim/testsuite/sim/fr30/bne.cgs | 109 + sim/testsuite/sim/fr30/bno.cgs | 109 + sim/testsuite/sim/fr30/bnv.cgs | 109 + sim/testsuite/sim/fr30/borh.cgs | 30 + sim/testsuite/sim/fr30/borl.cgs | 30 + sim/testsuite/sim/fr30/bp.cgs | 109 + sim/testsuite/sim/fr30/bra.cgs | 109 + sim/testsuite/sim/fr30/btsth.cgs | 30 + sim/testsuite/sim/fr30/btstl.cgs | 30 + sim/testsuite/sim/fr30/bv.cgs | 109 + sim/testsuite/sim/fr30/call.cgs | 69 + sim/testsuite/sim/fr30/cmp.cgs | 53 + sim/testsuite/sim/fr30/cmp2.cgs | 27 + sim/testsuite/sim/fr30/copld.cgs | 21 + sim/testsuite/sim/fr30/copop.cgs | 21 + sim/testsuite/sim/fr30/copst.cgs | 21 + sim/testsuite/sim/fr30/copsv.cgs | 21 + sim/testsuite/sim/fr30/div.ms | 176 + sim/testsuite/sim/fr30/div0s.cgs | 64 + sim/testsuite/sim/fr30/div0u.cgs | 25 + sim/testsuite/sim/fr30/div1.cgs | 113 + sim/testsuite/sim/fr30/div2.cgs | 120 + sim/testsuite/sim/fr30/div3.cgs | 34 + sim/testsuite/sim/fr30/div4s.cgs | 34 + sim/testsuite/sim/fr30/dmov.cgs | 73 + sim/testsuite/sim/fr30/dmovb.cgs | 46 + sim/testsuite/sim/fr30/dmovh.cgs | 46 + sim/testsuite/sim/fr30/enter.cgs | 34 + sim/testsuite/sim/fr30/eor.cgs | 69 + sim/testsuite/sim/fr30/eorb.cgs | 40 + sim/testsuite/sim/fr30/eorh.cgs | 40 + sim/testsuite/sim/fr30/extsb.cgs | 36 + sim/testsuite/sim/fr30/extsh.cgs | 48 + sim/testsuite/sim/fr30/extub.cgs | 42 + sim/testsuite/sim/fr30/extuh.cgs | 54 + sim/testsuite/sim/fr30/hello.ms | 19 + sim/testsuite/sim/fr30/int.cgs | 35 + sim/testsuite/sim/fr30/inte.cgs | 36 + sim/testsuite/sim/fr30/jmp.cgs | 29 + sim/testsuite/sim/fr30/ld.cgs | 219 + sim/testsuite/sim/fr30/ldi20.cgs | 37 + sim/testsuite/sim/fr30/ldi32.cgs | 37 + sim/testsuite/sim/fr30/ldi8.cgs | 37 + sim/testsuite/sim/fr30/ldm0.cgs | 60 + sim/testsuite/sim/fr30/ldm1.cgs | 59 + sim/testsuite/sim/fr30/ldres.cgs | 25 + sim/testsuite/sim/fr30/ldub.cgs | 115 + sim/testsuite/sim/fr30/lduh.cgs | 115 + sim/testsuite/sim/fr30/leave.cgs | 23 + sim/testsuite/sim/fr30/lsl.cgs | 65 + sim/testsuite/sim/fr30/lsl2.cgs | 36 + sim/testsuite/sim/fr30/lsr.cgs | 65 + sim/testsuite/sim/fr30/lsr2.cgs | 36 + sim/testsuite/sim/fr30/misc.exp | 20 + sim/testsuite/sim/fr30/mov.cgs | 108 + sim/testsuite/sim/fr30/mul.cgs | 240 + sim/testsuite/sim/fr30/mulh.cgs | 211 + sim/testsuite/sim/fr30/mulu.cgs | 101 + sim/testsuite/sim/fr30/muluh.cgs | 90 + sim/testsuite/sim/fr30/nop.cgs | 16 + sim/testsuite/sim/fr30/or.cgs | 55 + sim/testsuite/sim/fr30/orb.cgs | 33 + sim/testsuite/sim/fr30/orccr.cgs | 38 + sim/testsuite/sim/fr30/orh.cgs | 33 + sim/testsuite/sim/fr30/ret.cgs | 75 + sim/testsuite/sim/fr30/reti.cgs | 57 + sim/testsuite/sim/fr30/st.cgs | 194 + sim/testsuite/sim/fr30/stb.cgs | 84 + sim/testsuite/sim/fr30/sth.cgs | 84 + sim/testsuite/sim/fr30/stilm.cgs | 41 + sim/testsuite/sim/fr30/stm0.cgs | 101 + sim/testsuite/sim/fr30/stm1.cgs | 97 + sim/testsuite/sim/fr30/stres.cgs | 25 + sim/testsuite/sim/fr30/sub.cgs | 36 + sim/testsuite/sim/fr30/subc.cgs | 62 + sim/testsuite/sim/fr30/subn.cgs | 36 + sim/testsuite/sim/fr30/testutils.inc | 306 + sim/testsuite/sim/fr30/xchb.cgs | 20 + sim/testsuite/sim/m32r/add.cgs | 16 + sim/testsuite/sim/m32r/add3.cgs | 15 + sim/testsuite/sim/m32r/addi.cgs | 16 + sim/testsuite/sim/m32r/addv.cgs | 21 + sim/testsuite/sim/m32r/addv3.cgs | 28 + sim/testsuite/sim/m32r/addx.cgs | 42 + sim/testsuite/sim/m32r/allinsn.exp | 21 + sim/testsuite/sim/m32r/and.cgs | 17 + sim/testsuite/sim/m32r/and3.cgs | 17 + sim/testsuite/sim/m32r/bc24.cgs | 24 + sim/testsuite/sim/m32r/bc8.cgs | 23 + sim/testsuite/sim/m32r/beq.cgs | 20 + sim/testsuite/sim/m32r/beqz.cgs | 18 + sim/testsuite/sim/m32r/bgez.cgs | 18 + sim/testsuite/sim/m32r/bgtz.cgs | 18 + sim/testsuite/sim/m32r/bl24.cgs | 18 + sim/testsuite/sim/m32r/bl8.cgs | 18 + sim/testsuite/sim/m32r/blez.cgs | 19 + sim/testsuite/sim/m32r/bltz.cgs | 19 + sim/testsuite/sim/m32r/bnc24.cgs | 20 + sim/testsuite/sim/m32r/bnc8.cgs | 20 + sim/testsuite/sim/m32r/bne.cgs | 20 + sim/testsuite/sim/m32r/bnez.cgs | 19 + sim/testsuite/sim/m32r/bra24.cgs | 15 + sim/testsuite/sim/m32r/bra8.cgs | 14 + sim/testsuite/sim/m32r/cmp.cgs | 23 + sim/testsuite/sim/m32r/cmpi.cgs | 24 + sim/testsuite/sim/m32r/cmpu.cgs | 23 + sim/testsuite/sim/m32r/cmpui.cgs | 22 + sim/testsuite/sim/m32r/div.cgs | 17 + sim/testsuite/sim/m32r/divu.cgs | 17 + sim/testsuite/sim/m32r/hello.ms | 19 + sim/testsuite/sim/m32r/hw-trap.ms | 31 + sim/testsuite/sim/m32r/jl.cgs | 18 + sim/testsuite/sim/m32r/jmp.cgs | 19 + sim/testsuite/sim/m32r/ld-d.cgs | 22 + sim/testsuite/sim/m32r/ld-plus.cgs | 28 + sim/testsuite/sim/m32r/ld.cgs | 21 + sim/testsuite/sim/m32r/ld24.cgs | 14 + sim/testsuite/sim/m32r/ldb-d.cgs | 20 + sim/testsuite/sim/m32r/ldb.cgs | 21 + sim/testsuite/sim/m32r/ldh-d.cgs | 21 + sim/testsuite/sim/m32r/ldh.cgs | 22 + sim/testsuite/sim/m32r/ldi16.cgs | 14 + sim/testsuite/sim/m32r/ldi8.cgs | 14 + sim/testsuite/sim/m32r/ldub-d.cgs | 21 + sim/testsuite/sim/m32r/ldub.cgs | 21 + sim/testsuite/sim/m32r/lduh-d.cgs | 20 + sim/testsuite/sim/m32r/lduh.cgs | 22 + sim/testsuite/sim/m32r/lock.cgs | 25 + sim/testsuite/sim/m32r/machi.cgs | 17 + sim/testsuite/sim/m32r/maclo.cgs | 17 + sim/testsuite/sim/m32r/macwhi.cgs | 18 + sim/testsuite/sim/m32r/macwlo.cgs | 18 + sim/testsuite/sim/m32r/misc.exp | 21 + sim/testsuite/sim/m32r/mul.cgs | 17 + sim/testsuite/sim/m32r/mulhi.cgs | 16 + sim/testsuite/sim/m32r/mullo.cgs | 16 + sim/testsuite/sim/m32r/mulwhi.cgs | 18 + sim/testsuite/sim/m32r/mulwlo.cgs | 18 + sim/testsuite/sim/m32r/mv.cgs | 17 + sim/testsuite/sim/m32r/mvfachi.cgs | 22 + sim/testsuite/sim/m32r/mvfaclo.cgs | 17 + sim/testsuite/sim/m32r/mvfacmi.cgs | 15 + sim/testsuite/sim/m32r/mvfc.cgs | 23 + sim/testsuite/sim/m32r/mvtachi.cgs | 20 + sim/testsuite/sim/m32r/mvtaclo.cgs | 17 + sim/testsuite/sim/m32r/mvtc.cgs | 18 + sim/testsuite/sim/m32r/neg.cgs | 17 + sim/testsuite/sim/m32r/nop.cgs | 10 + sim/testsuite/sim/m32r/not.cgs | 17 + sim/testsuite/sim/m32r/or.cgs | 17 + sim/testsuite/sim/m32r/or3.cgs | 17 + sim/testsuite/sim/m32r/rac.cgs | 23 + sim/testsuite/sim/m32r/rach.cgs | 22 + sim/testsuite/sim/m32r/rem.cgs | 17 + sim/testsuite/sim/m32r/remu.cgs | 23 + sim/testsuite/sim/m32r/rte.cgs | 87 + sim/testsuite/sim/m32r/seth.cgs | 20 + sim/testsuite/sim/m32r/sll.cgs | 15 + sim/testsuite/sim/m32r/sll3.cgs | 15 + sim/testsuite/sim/m32r/slli.cgs | 14 + sim/testsuite/sim/m32r/sra.cgs | 16 + sim/testsuite/sim/m32r/sra3.cgs | 16 + sim/testsuite/sim/m32r/srai.cgs | 14 + sim/testsuite/sim/m32r/srl.cgs | 15 + sim/testsuite/sim/m32r/srl3.cgs | 15 + sim/testsuite/sim/m32r/srli.cgs | 15 + sim/testsuite/sim/m32r/st-d.cgs | 26 + sim/testsuite/sim/m32r/st-minus.cgs | 29 + sim/testsuite/sim/m32r/st-plus.cgs | 28 + sim/testsuite/sim/m32r/st.cgs | 21 + sim/testsuite/sim/m32r/stb-d.cgs | 25 + sim/testsuite/sim/m32r/stb.cgs | 21 + sim/testsuite/sim/m32r/sth-d.cgs | 25 + sim/testsuite/sim/m32r/sth.cgs | 21 + sim/testsuite/sim/m32r/sub.cgs | 18 + sim/testsuite/sim/m32r/subv.cgs | 20 + sim/testsuite/sim/m32r/subx.cgs | 26 + sim/testsuite/sim/m32r/testutils.inc | 95 + sim/testsuite/sim/m32r/trap.cgs | 109 + sim/testsuite/sim/m32r/unlock.cgs | 30 + sim/testsuite/sim/m32r/uread16.ms | 18 + sim/testsuite/sim/m32r/uread32.ms | 18 + sim/testsuite/sim/m32r/uwrite16.ms | 18 + sim/testsuite/sim/m32r/uwrite32.ms | 18 + sim/testsuite/sim/m32r/xor.cgs | 16 + sim/testsuite/sim/m32r/xor3.cgs | 16 + sim/v850/ChangeLog | 1055 ++ sim/v850/Makefile.in | 142 + sim/v850/acconfig.h | 15 + sim/v850/config.in | 183 + sim/v850/configure | 4267 +++++++ sim/v850/configure.in | 18 + sim/v850/gencode.c | 149 + sim/v850/interp.c | 360 + sim/v850/sim-main.h | 388 + sim/v850/simops.c | 2733 +++++ sim/v850/v850-dc | 30 + sim/v850/v850.igen | 1407 +++ sim/v850/v850_sim.h | 8 + sim/w65/ChangeLog | 136 + sim/w65/Makefile.in | 247 + sim/w65/acconfig.h | 18 + sim/w65/config.in | 131 + sim/w65/configure | 3333 ++++++ sim/w65/configure.in | 48 + sim/w65/gencode.c | 991 ++ sim/w65/interp.c | 388 + sim/w65/interp.h | 194 + sim/w65/run.c | 131 + sim/z8k/ChangeLog | 470 + sim/z8k/Makefile.in | 66 + sim/z8k/acconfig.h | 15 + sim/z8k/comped1.c | 31 + sim/z8k/comped2.c | 25 + sim/z8k/comped3.c | 28 + sim/z8k/compedb3.c | 29 + sim/z8k/config.in | 161 + sim/z8k/configure | 3892 +++++++ sim/z8k/configure.in | 10 + sim/z8k/iface.c | 263 + sim/z8k/inlines.h | 486 + sim/z8k/list.c | 11266 +++++++++++++++++++ sim/z8k/mem.c | 126 + sim/z8k/mem.h | 8 + sim/z8k/quick.c | 783 ++ sim/z8k/sim.h | 9 + sim/z8k/support.c | 784 ++ sim/z8k/syscall.h | 43 + sim/z8k/tconfig.in | 13 + sim/z8k/tm.h | 192 + sim/z8k/writecode.c | 2011 ++++ 2470 files changed, 976797 insertions(+) create mode 100644 gdb/29k-share/README create mode 100644 gdb/29k-share/udi/udi2go32.c create mode 100644 gdb/29k-share/udi/udiids.h create mode 100644 gdb/29k-share/udi/udip2soc.c create mode 100644 gdb/29k-share/udi/udiphcfg.h create mode 100644 gdb/29k-share/udi/udiphunix.h create mode 100644 gdb/29k-share/udi/udiproc.h create mode 100644 gdb/29k-share/udi/udipt29k.h create mode 100644 gdb/29k-share/udi/udiptcfg.h create mode 100644 gdb/29k-share/udi/udisoc.h create mode 100644 gdb/29k-share/udi/udr.c create mode 100644 gdb/29k-share/udi_soc create mode 100644 gdb/COPYING create mode 100644 gdb/ChangeLog create mode 100644 gdb/ChangeLog-3.x create mode 100644 gdb/ChangeLog-9091 create mode 100644 gdb/ChangeLog-92 create mode 100644 gdb/ChangeLog-93 create mode 100644 gdb/ChangeLog-94 create mode 100644 gdb/ChangeLog-95 create mode 100644 gdb/ChangeLog-96 create mode 100644 gdb/ChangeLog-97 create mode 100644 gdb/ChangeLog-98 create mode 100644 gdb/Makefile.in create mode 100644 gdb/NEWS create mode 100644 gdb/README create mode 100644 gdb/TODO create mode 100644 gdb/a29k-tdep.c create mode 100644 gdb/a68v-nat.c create mode 100644 gdb/abug-rom.c create mode 100644 gdb/acconfig.h create mode 100644 gdb/acinclude.m4 create mode 100644 gdb/aclocal.m4 create mode 100644 gdb/alpha-nat.c create mode 100644 gdb/alpha-tdep.c create mode 100644 gdb/altos-xdep.c create mode 100644 gdb/annotate.c create mode 100644 gdb/annotate.h create mode 100644 gdb/arc-tdep.c create mode 100644 gdb/arm-convert.s create mode 100644 gdb/arm-tdep.c create mode 100644 gdb/arm-xdep.c create mode 100644 gdb/ax-gdb.c create mode 100644 gdb/ax-gdb.h create mode 100644 gdb/ax-general.c create mode 100644 gdb/ax.h create mode 100644 gdb/bcache.c create mode 100644 gdb/bcache.h create mode 100644 gdb/blockframe.c create mode 100644 gdb/breakpoint.c create mode 100644 gdb/breakpoint.h create mode 100644 gdb/buildsym.c create mode 100644 gdb/buildsym.h create mode 100644 gdb/c-exp.y create mode 100644 gdb/c-lang.c create mode 100644 gdb/c-lang.h create mode 100644 gdb/c-typeprint.c create mode 100644 gdb/c-valprint.c create mode 100644 gdb/call-cmds.h create mode 100644 gdb/ch-exp.c create mode 100644 gdb/ch-lang.c create mode 100644 gdb/ch-lang.h create mode 100644 gdb/ch-typeprint.c create mode 100644 gdb/ch-valprint.c create mode 100644 gdb/coff-solib.c create mode 100644 gdb/coff-solib.h create mode 100644 gdb/coffread.c create mode 100644 gdb/command.c create mode 100644 gdb/command.h create mode 100644 gdb/complaints.c create mode 100644 gdb/complaints.h create mode 100644 gdb/config.in create mode 100644 gdb/config/a29k/a29k-kern.mt create mode 100644 gdb/config/a29k/a29k-udi.mt create mode 100644 gdb/config/a29k/a29k.mt create mode 100644 gdb/config/a29k/nm-ultra3.h create mode 100644 gdb/config/a29k/tm-a29k.h create mode 100644 gdb/config/a29k/tm-ultra3.h create mode 100644 gdb/config/a29k/tm-vx29k.h create mode 100644 gdb/config/a29k/ultra3.mh create mode 100644 gdb/config/a29k/ultra3.mt create mode 100644 gdb/config/a29k/vx29k.mt create mode 100644 gdb/config/a29k/xm-ultra3.h create mode 100644 gdb/config/alpha/alpha-linux.mh create mode 100644 gdb/config/alpha/alpha-linux.mt create mode 100644 gdb/config/alpha/alpha-osf1.mh create mode 100644 gdb/config/alpha/alpha-osf1.mt create mode 100644 gdb/config/alpha/alpha-osf2.mh create mode 100644 gdb/config/alpha/alpha-osf3.mh create mode 100644 gdb/config/alpha/nm-linux.h create mode 100644 gdb/config/alpha/nm-osf.h create mode 100644 gdb/config/alpha/nm-osf2.h create mode 100644 gdb/config/alpha/nm-osf3.h create mode 100644 gdb/config/alpha/tm-alpha.h create mode 100644 gdb/config/alpha/tm-alphalinux.h create mode 100644 gdb/config/alpha/xm-alphalinux.h create mode 100644 gdb/config/alpha/xm-alphaosf.h create mode 100644 gdb/config/arc/arc.mt create mode 100644 gdb/config/arc/tm-arc.h create mode 100644 gdb/config/arm/arm.mh create mode 100644 gdb/config/arm/arm.mt create mode 100644 gdb/config/arm/nm-arm.h create mode 100644 gdb/config/arm/tm-arm.h create mode 100644 gdb/config/arm/xm-arm.h create mode 100644 gdb/config/convex/Convex.notes create mode 100644 gdb/config/convex/convex.mh create mode 100644 gdb/config/convex/convex.mt create mode 100644 gdb/config/convex/tm-convex.h create mode 100644 gdb/config/convex/xm-convex.h create mode 100644 gdb/config/d10v/d10v.mt create mode 100644 gdb/config/d10v/tm-d10v.h create mode 100644 gdb/config/d30v/d30v.mt create mode 100644 gdb/config/d30v/tm-d30v.h create mode 100644 gdb/config/fr30/fr30.mt create mode 100644 gdb/config/fr30/tm-fr30.h create mode 100644 gdb/config/gould/np1.mh create mode 100644 gdb/config/gould/np1.mt create mode 100644 gdb/config/gould/pn.mh create mode 100644 gdb/config/gould/pn.mt create mode 100644 gdb/config/gould/tm-np1.h create mode 100644 gdb/config/gould/tm-pn.h create mode 100644 gdb/config/gould/xm-np1.h create mode 100644 gdb/config/gould/xm-pn.h create mode 100644 gdb/config/h8300/h8300.mt create mode 100644 gdb/config/h8300/tm-h8300.h create mode 100644 gdb/config/h8500/h8500.mt create mode 100644 gdb/config/h8500/tm-h8500.h create mode 100644 gdb/config/i386/cygwin.mh create mode 100644 gdb/config/i386/cygwin.mt create mode 100644 gdb/config/i386/fbsd.mh create mode 100644 gdb/config/i386/fbsd.mt create mode 100644 gdb/config/i386/gdbserve.mt create mode 100644 gdb/config/i386/go32.mh create mode 100644 gdb/config/i386/i386aix.mh create mode 100644 gdb/config/i386/i386aix.mt create mode 100644 gdb/config/i386/i386aout.mt create mode 100644 gdb/config/i386/i386bsd.mh create mode 100644 gdb/config/i386/i386bsd.mt create mode 100644 gdb/config/i386/i386dgux.mh create mode 100644 gdb/config/i386/i386gnu.mh create mode 100644 gdb/config/i386/i386gnu.mt create mode 100644 gdb/config/i386/i386lynx.mh create mode 100644 gdb/config/i386/i386lynx.mt create mode 100644 gdb/config/i386/i386m3.mh create mode 100644 gdb/config/i386/i386m3.mt create mode 100644 gdb/config/i386/i386mach.mh create mode 100644 gdb/config/i386/i386mk.mh create mode 100644 gdb/config/i386/i386mk.mt create mode 100644 gdb/config/i386/i386nw.mt create mode 100644 gdb/config/i386/i386os9k.mt create mode 100644 gdb/config/i386/i386sco.mh create mode 100644 gdb/config/i386/i386sco4.mh create mode 100644 gdb/config/i386/i386sco5.mh create mode 100644 gdb/config/i386/i386sco5.mt create mode 100644 gdb/config/i386/i386sol2.mh create mode 100644 gdb/config/i386/i386sol2.mt create mode 100644 gdb/config/i386/i386v.mh create mode 100644 gdb/config/i386/i386v.mt create mode 100644 gdb/config/i386/i386v32.mh create mode 100644 gdb/config/i386/i386v4.mh create mode 100644 gdb/config/i386/i386v4.mt create mode 100644 gdb/config/i386/i386v42mp.mh create mode 100644 gdb/config/i386/i386v42mp.mt create mode 100644 gdb/config/i386/linux.mh create mode 100644 gdb/config/i386/linux.mt create mode 100644 gdb/config/i386/nbsd.mh create mode 100644 gdb/config/i386/nbsd.mt create mode 100644 gdb/config/i386/ncr3000.mh create mode 100644 gdb/config/i386/ncr3000.mt create mode 100644 gdb/config/i386/nm-fbsd.h create mode 100644 gdb/config/i386/nm-gnu.h create mode 100644 gdb/config/i386/nm-i386aix.h create mode 100644 gdb/config/i386/nm-i386bsd.h create mode 100644 gdb/config/i386/nm-i386lynx.h create mode 100644 gdb/config/i386/nm-i386mach.h create mode 100644 gdb/config/i386/nm-i386sco.h create mode 100644 gdb/config/i386/nm-i386sco4.h create mode 100644 gdb/config/i386/nm-i386sco5.h create mode 100644 gdb/config/i386/nm-i386sol2.h create mode 100644 gdb/config/i386/nm-i386v.h create mode 100644 gdb/config/i386/nm-i386v4.h create mode 100644 gdb/config/i386/nm-i386v42mp.h create mode 100644 gdb/config/i386/nm-linux.h create mode 100644 gdb/config/i386/nm-m3.h create mode 100644 gdb/config/i386/nm-nbsd.h create mode 100644 gdb/config/i386/nm-ptx4.h create mode 100644 gdb/config/i386/nm-sun386.h create mode 100644 gdb/config/i386/nm-symmetry.h create mode 100644 gdb/config/i386/ptx.mh create mode 100644 gdb/config/i386/ptx.mt create mode 100644 gdb/config/i386/ptx4.mh create mode 100644 gdb/config/i386/ptx4.mt create mode 100644 gdb/config/i386/sun386.mh create mode 100644 gdb/config/i386/sun386.mt create mode 100644 gdb/config/i386/symmetry.mh create mode 100644 gdb/config/i386/symmetry.mt create mode 100644 gdb/config/i386/tm-cygwin.h create mode 100644 gdb/config/i386/tm-fbsd.h create mode 100644 gdb/config/i386/tm-i386.h create mode 100644 gdb/config/i386/tm-i386aix.h create mode 100644 gdb/config/i386/tm-i386bsd.h create mode 100644 gdb/config/i386/tm-i386gnu.h create mode 100644 gdb/config/i386/tm-i386lynx.h create mode 100644 gdb/config/i386/tm-i386m3.h create mode 100644 gdb/config/i386/tm-i386mk.h create mode 100644 gdb/config/i386/tm-i386nw.h create mode 100644 gdb/config/i386/tm-i386os9k.h create mode 100644 gdb/config/i386/tm-i386sco5.h create mode 100644 gdb/config/i386/tm-i386sol2.h create mode 100644 gdb/config/i386/tm-i386v.h create mode 100644 gdb/config/i386/tm-i386v4.h create mode 100644 gdb/config/i386/tm-i386v42mp.h create mode 100644 gdb/config/i386/tm-linux.h create mode 100644 gdb/config/i386/tm-nbsd.h create mode 100644 gdb/config/i386/tm-ptx.h create mode 100644 gdb/config/i386/tm-ptx4.h create mode 100644 gdb/config/i386/tm-sun386.h create mode 100644 gdb/config/i386/tm-symmetry.h create mode 100644 gdb/config/i386/xm-cygwin.h create mode 100644 gdb/config/i386/xm-go32.h create mode 100644 gdb/config/i386/xm-i386aix.h create mode 100644 gdb/config/i386/xm-i386bsd.h create mode 100644 gdb/config/i386/xm-i386gnu.h create mode 100644 gdb/config/i386/xm-i386lynx.h create mode 100644 gdb/config/i386/xm-i386m3.h create mode 100644 gdb/config/i386/xm-i386mach.h create mode 100644 gdb/config/i386/xm-i386mk.h create mode 100644 gdb/config/i386/xm-i386sco.h create mode 100644 gdb/config/i386/xm-i386v.h create mode 100644 gdb/config/i386/xm-i386v32.h create mode 100644 gdb/config/i386/xm-i386v4.h create mode 100644 gdb/config/i386/xm-linux.h create mode 100644 gdb/config/i386/xm-nbsd.h create mode 100644 gdb/config/i386/xm-ptx.h create mode 100644 gdb/config/i386/xm-ptx4.h create mode 100644 gdb/config/i386/xm-sun386.h create mode 100644 gdb/config/i386/xm-symmetry.h create mode 100644 gdb/config/i386/xm-windows.h create mode 100644 gdb/config/i960/mon960.mt create mode 100644 gdb/config/i960/nindy960.mt create mode 100644 gdb/config/i960/tm-i960.h create mode 100644 gdb/config/i960/tm-mon960.h create mode 100644 gdb/config/i960/tm-nindy960.h create mode 100644 gdb/config/i960/tm-vx960.h create mode 100644 gdb/config/i960/vxworks960.mt create mode 100644 gdb/config/m32r/m32r.mt create mode 100644 gdb/config/m32r/tm-m32r.h create mode 100644 gdb/config/m68k/3b1.mh create mode 100644 gdb/config/m68k/3b1.mt create mode 100644 gdb/config/m68k/altos.mh create mode 100644 gdb/config/m68k/altos.mt create mode 100644 gdb/config/m68k/apollo68b.mh create mode 100644 gdb/config/m68k/apollo68b.mt create mode 100644 gdb/config/m68k/apollo68v.mh create mode 100644 gdb/config/m68k/cisco.mt create mode 100644 gdb/config/m68k/delta68.mh create mode 100644 gdb/config/m68k/delta68.mt create mode 100644 gdb/config/m68k/dpx2.mh create mode 100644 gdb/config/m68k/dpx2.mt create mode 100644 gdb/config/m68k/es1800.mt create mode 100644 gdb/config/m68k/hp300bsd.mh create mode 100644 gdb/config/m68k/hp300bsd.mt create mode 100644 gdb/config/m68k/hp300hpux.mh create mode 100644 gdb/config/m68k/hp300hpux.mt create mode 100644 gdb/config/m68k/isi.mh create mode 100644 gdb/config/m68k/isi.mt create mode 100644 gdb/config/m68k/linux.mh create mode 100644 gdb/config/m68k/linux.mt create mode 100644 gdb/config/m68k/m68klynx.mh create mode 100644 gdb/config/m68k/m68klynx.mt create mode 100644 gdb/config/m68k/m68kv4.mh create mode 100644 gdb/config/m68k/m68kv4.mt create mode 100644 gdb/config/m68k/monitor.mt create mode 100644 gdb/config/m68k/nbsd.mh create mode 100644 gdb/config/m68k/nbsd.mt create mode 100644 gdb/config/m68k/news.mh create mode 100644 gdb/config/m68k/news.mt create mode 100644 gdb/config/m68k/news1000.mh create mode 100644 gdb/config/m68k/nm-apollo68b.h create mode 100644 gdb/config/m68k/nm-apollo68v.h create mode 100644 gdb/config/m68k/nm-delta68.h create mode 100644 gdb/config/m68k/nm-dpx2.h create mode 100644 gdb/config/m68k/nm-hp300bsd.h create mode 100644 gdb/config/m68k/nm-hp300hpux.h create mode 100644 gdb/config/m68k/nm-linux.h create mode 100644 gdb/config/m68k/nm-m68klynx.h create mode 100644 gdb/config/m68k/nm-nbsd.h create mode 100644 gdb/config/m68k/nm-news.h create mode 100644 gdb/config/m68k/nm-sun2.h create mode 100644 gdb/config/m68k/nm-sun3.h create mode 100644 gdb/config/m68k/nm-sysv4.h create mode 100644 gdb/config/m68k/os68k.mt create mode 100644 gdb/config/m68k/st2000.mt create mode 100644 gdb/config/m68k/sun2os3.mh create mode 100644 gdb/config/m68k/sun2os3.mt create mode 100644 gdb/config/m68k/sun2os4.mh create mode 100644 gdb/config/m68k/sun2os4.mt create mode 100644 gdb/config/m68k/sun3os3.mh create mode 100644 gdb/config/m68k/sun3os3.mt create mode 100644 gdb/config/m68k/sun3os4.mh create mode 100644 gdb/config/m68k/sun3os4.mt create mode 100644 gdb/config/m68k/tm-3b1.h create mode 100644 gdb/config/m68k/tm-altos.h create mode 100644 gdb/config/m68k/tm-apollo68b.h create mode 100644 gdb/config/m68k/tm-cisco.h create mode 100644 gdb/config/m68k/tm-delta68.h create mode 100644 gdb/config/m68k/tm-dpx2.h create mode 100644 gdb/config/m68k/tm-es1800.h create mode 100644 gdb/config/m68k/tm-hp300bsd.h create mode 100644 gdb/config/m68k/tm-hp300hpux.h create mode 100644 gdb/config/m68k/tm-isi.h create mode 100644 gdb/config/m68k/tm-linux.h create mode 100644 gdb/config/m68k/tm-m68k.h create mode 100644 gdb/config/m68k/tm-m68klynx.h create mode 100644 gdb/config/m68k/tm-m68kv4.h create mode 100644 gdb/config/m68k/tm-mac.h create mode 100644 gdb/config/m68k/tm-monitor.h create mode 100644 gdb/config/m68k/tm-nbsd.h create mode 100644 gdb/config/m68k/tm-news.h create mode 100644 gdb/config/m68k/tm-os68k.h create mode 100644 gdb/config/m68k/tm-st2000.h create mode 100644 gdb/config/m68k/tm-sun2.h create mode 100644 gdb/config/m68k/tm-sun2os4.h create mode 100644 gdb/config/m68k/tm-sun3.h create mode 100644 gdb/config/m68k/tm-sun3os4.h create mode 100644 gdb/config/m68k/tm-vx68.h create mode 100644 gdb/config/m68k/vxworks68.mt create mode 100644 gdb/config/m68k/xm-3b1.h create mode 100644 gdb/config/m68k/xm-altos.h create mode 100644 gdb/config/m68k/xm-apollo68b.h create mode 100644 gdb/config/m68k/xm-apollo68v.h create mode 100644 gdb/config/m68k/xm-delta68.h create mode 100644 gdb/config/m68k/xm-dpx2.h create mode 100644 gdb/config/m68k/xm-hp300bsd.h create mode 100644 gdb/config/m68k/xm-hp300hpux.h create mode 100644 gdb/config/m68k/xm-isi.h create mode 100644 gdb/config/m68k/xm-linux.h create mode 100644 gdb/config/m68k/xm-m68k.h create mode 100644 gdb/config/m68k/xm-m68klynx.h create mode 100644 gdb/config/m68k/xm-m68kv4.h create mode 100644 gdb/config/m68k/xm-mpw.h create mode 100644 gdb/config/m68k/xm-nbsd.h create mode 100644 gdb/config/m68k/xm-news.h create mode 100644 gdb/config/m68k/xm-news1000.h create mode 100644 gdb/config/m68k/xm-sun2.h create mode 100644 gdb/config/m68k/xm-sun3.h create mode 100644 gdb/config/m68k/xm-sun3os4.h create mode 100644 gdb/config/m88k/cxux.mh create mode 100644 gdb/config/m88k/cxux.mt create mode 100644 gdb/config/m88k/delta88.mh create mode 100644 gdb/config/m88k/delta88.mt create mode 100644 gdb/config/m88k/delta88v4.mh create mode 100644 gdb/config/m88k/delta88v4.mt create mode 100644 gdb/config/m88k/m88k.mh create mode 100644 gdb/config/m88k/m88k.mt create mode 100644 gdb/config/m88k/nm-cxux.h create mode 100644 gdb/config/m88k/nm-delta88v4.h create mode 100644 gdb/config/m88k/nm-m88k.h create mode 100644 gdb/config/m88k/tm-cxux.h create mode 100644 gdb/config/m88k/tm-delta88.h create mode 100644 gdb/config/m88k/tm-delta88v4.h create mode 100644 gdb/config/m88k/tm-m88k.h create mode 100644 gdb/config/m88k/xm-cxux.h create mode 100644 gdb/config/m88k/xm-delta88.h create mode 100644 gdb/config/m88k/xm-delta88v4.h create mode 100644 gdb/config/m88k/xm-dgux.h create mode 100644 gdb/config/m88k/xm-m88k.h create mode 100644 gdb/config/mips/bigmips.mt create mode 100644 gdb/config/mips/bigmips64.mt create mode 100644 gdb/config/mips/decstation.mh create mode 100644 gdb/config/mips/decstation.mt create mode 100644 gdb/config/mips/embed.mt create mode 100644 gdb/config/mips/embed64.mt create mode 100644 gdb/config/mips/embedl.mt create mode 100644 gdb/config/mips/embedl64.mt create mode 100644 gdb/config/mips/irix3.mh create mode 100644 gdb/config/mips/irix3.mt create mode 100644 gdb/config/mips/irix4.mh create mode 100644 gdb/config/mips/irix5.mh create mode 100644 gdb/config/mips/irix5.mt create mode 100644 gdb/config/mips/littlemips.mh create mode 100644 gdb/config/mips/littlemips.mt create mode 100644 gdb/config/mips/mipsm3.mh create mode 100644 gdb/config/mips/mipsm3.mt create mode 100644 gdb/config/mips/mipsv4.mh create mode 100644 gdb/config/mips/mipsv4.mt create mode 100644 gdb/config/mips/news-mips.mh create mode 100644 gdb/config/mips/nm-irix3.h create mode 100644 gdb/config/mips/nm-irix4.h create mode 100644 gdb/config/mips/nm-irix5.h create mode 100644 gdb/config/mips/nm-mips.h create mode 100644 gdb/config/mips/nm-news-mips.h create mode 100644 gdb/config/mips/nm-riscos.h create mode 100644 gdb/config/mips/riscos.mh create mode 100644 gdb/config/mips/tm-bigmips.h create mode 100644 gdb/config/mips/tm-bigmips64.h create mode 100644 gdb/config/mips/tm-embed.h create mode 100644 gdb/config/mips/tm-embed64.h create mode 100644 gdb/config/mips/tm-embedl.h create mode 100644 gdb/config/mips/tm-embedl64.h create mode 100644 gdb/config/mips/tm-irix3.h create mode 100644 gdb/config/mips/tm-irix5.h create mode 100644 gdb/config/mips/tm-mips.h create mode 100644 gdb/config/mips/tm-mips64.h create mode 100644 gdb/config/mips/tm-mipsm3.h create mode 100644 gdb/config/mips/tm-mipsv4.h create mode 100644 gdb/config/mips/tm-tx39.h create mode 100644 gdb/config/mips/tm-tx39l.h create mode 100644 gdb/config/mips/tm-vr4100.h create mode 100644 gdb/config/mips/tm-vr4300.h create mode 100644 gdb/config/mips/tm-vr4300el.h create mode 100644 gdb/config/mips/tm-vr5000.h create mode 100644 gdb/config/mips/tm-vr5000el.h create mode 100644 gdb/config/mips/tm-vxmips.h create mode 100644 gdb/config/mips/tx39.mt create mode 100644 gdb/config/mips/tx39l.mt create mode 100644 gdb/config/mips/vr4100.mt create mode 100644 gdb/config/mips/vr4300.mt create mode 100644 gdb/config/mips/vr4300el.mt create mode 100644 gdb/config/mips/vr5000.mt create mode 100644 gdb/config/mips/vr5000el.mt create mode 100644 gdb/config/mips/vxmips.mt create mode 100644 gdb/config/mips/xm-irix3.h create mode 100644 gdb/config/mips/xm-irix4.h create mode 100644 gdb/config/mips/xm-irix5.h create mode 100644 gdb/config/mips/xm-mips.h create mode 100644 gdb/config/mips/xm-mipsm3.h create mode 100644 gdb/config/mips/xm-mipsv4.h create mode 100644 gdb/config/mips/xm-news-mips.h create mode 100644 gdb/config/mips/xm-riscos.h create mode 100644 gdb/config/mn10200/mn10200.mt create mode 100644 gdb/config/mn10200/tm-mn10200.h create mode 100644 gdb/config/mn10300/mn10300.mt create mode 100644 gdb/config/mn10300/tm-mn10300.h create mode 100644 gdb/config/nm-empty.h create mode 100644 gdb/config/nm-gnu.h create mode 100644 gdb/config/nm-lynx.h create mode 100644 gdb/config/nm-m3.h create mode 100644 gdb/config/nm-nbsd.h create mode 100644 gdb/config/nm-sysv4.h create mode 100644 gdb/config/none/nm-none.h create mode 100644 gdb/config/none/none.mh create mode 100644 gdb/config/none/none.mt create mode 100644 gdb/config/none/tm-none.h create mode 100644 gdb/config/none/xm-none.h create mode 100644 gdb/config/ns32k/merlin.mh create mode 100644 gdb/config/ns32k/merlin.mt create mode 100644 gdb/config/ns32k/nbsd.mh create mode 100644 gdb/config/ns32k/nbsd.mt create mode 100644 gdb/config/ns32k/nm-nbsd.h create mode 100644 gdb/config/ns32k/nm-umax.h create mode 100644 gdb/config/ns32k/ns32km3.mh create mode 100644 gdb/config/ns32k/ns32km3.mt create mode 100644 gdb/config/ns32k/tm-merlin.h create mode 100644 gdb/config/ns32k/tm-nbsd.h create mode 100644 gdb/config/ns32k/tm-ns32km3.h create mode 100644 gdb/config/ns32k/tm-umax.h create mode 100644 gdb/config/ns32k/umax.mh create mode 100644 gdb/config/ns32k/umax.mt create mode 100644 gdb/config/ns32k/xm-merlin.h create mode 100644 gdb/config/ns32k/xm-nbsd.h create mode 100644 gdb/config/ns32k/xm-ns32km3.h create mode 100644 gdb/config/ns32k/xm-umax.h create mode 100644 gdb/config/pa/hppabsd.mh create mode 100644 gdb/config/pa/hppabsd.mt create mode 100644 gdb/config/pa/hppahpux.mh create mode 100644 gdb/config/pa/hppahpux.mt create mode 100644 gdb/config/pa/hppaosf.mh create mode 100644 gdb/config/pa/hppaosf.mt create mode 100644 gdb/config/pa/hppapro.mt create mode 100644 gdb/config/pa/hpux1020.mh create mode 100644 gdb/config/pa/hpux1020.mt create mode 100644 gdb/config/pa/hpux1100.mh create mode 100644 gdb/config/pa/hpux1100.mt create mode 100644 gdb/config/pa/nm-hppab.h create mode 100644 gdb/config/pa/nm-hppah.h create mode 100644 gdb/config/pa/nm-hppah11.h create mode 100644 gdb/config/pa/nm-hppao.h create mode 100644 gdb/config/pa/tm-hppa.h create mode 100644 gdb/config/pa/tm-hppab.h create mode 100644 gdb/config/pa/tm-hppah.h create mode 100644 gdb/config/pa/tm-hppao.h create mode 100644 gdb/config/pa/tm-pro.h create mode 100644 gdb/config/pa/xm-hppab.h create mode 100644 gdb/config/pa/xm-hppah.h create mode 100644 gdb/config/pa/xm-pa.h create mode 100644 gdb/config/powerpc/aix.mh create mode 100644 gdb/config/powerpc/aix.mt create mode 100644 gdb/config/powerpc/cygwin.mh create mode 100644 gdb/config/powerpc/cygwin.mt create mode 100644 gdb/config/powerpc/gdbserve.mt create mode 100644 gdb/config/powerpc/linux.mh create mode 100644 gdb/config/powerpc/macos.mh create mode 100644 gdb/config/powerpc/macos.mt create mode 100644 gdb/config/powerpc/nm-aix.h create mode 100644 gdb/config/powerpc/nm-macos.h create mode 100644 gdb/config/powerpc/nm-solaris.h create mode 100644 gdb/config/powerpc/ppc-eabi.mt create mode 100644 gdb/config/powerpc/ppc-nw.mt create mode 100644 gdb/config/powerpc/ppc-sim.mt create mode 100644 gdb/config/powerpc/ppcle-eabi.mt create mode 100644 gdb/config/powerpc/ppcle-sim.mt create mode 100644 gdb/config/powerpc/solaris.mh create mode 100644 gdb/config/powerpc/solaris.mt create mode 100644 gdb/config/powerpc/tm-cygwin.h create mode 100644 gdb/config/powerpc/tm-macos.h create mode 100644 gdb/config/powerpc/tm-ppc-aix.h create mode 100644 gdb/config/powerpc/tm-ppc-eabi.h create mode 100644 gdb/config/powerpc/tm-ppc-nw.h create mode 100644 gdb/config/powerpc/tm-ppc-sim.h create mode 100644 gdb/config/powerpc/tm-ppcle-eabi.h create mode 100644 gdb/config/powerpc/tm-ppcle-sim.h create mode 100644 gdb/config/powerpc/tm-solaris.h create mode 100644 gdb/config/powerpc/xm-aix.h create mode 100644 gdb/config/powerpc/xm-cygwin.h create mode 100644 gdb/config/powerpc/xm-linux.h create mode 100644 gdb/config/powerpc/xm-mpw.h create mode 100644 gdb/config/powerpc/xm-solaris.h create mode 100644 gdb/config/pyr/pyramid.mh create mode 100644 gdb/config/pyr/pyramid.mt create mode 100644 gdb/config/pyr/tm-pyr.h create mode 100644 gdb/config/pyr/xm-pyr.h create mode 100644 gdb/config/romp/rtbsd.mh create mode 100644 gdb/config/romp/xm-rtbsd.h create mode 100644 gdb/config/rs6000/aix4.mh create mode 100644 gdb/config/rs6000/aix4.mt create mode 100644 gdb/config/rs6000/nm-rs6000.h create mode 100644 gdb/config/rs6000/nm-rs6000ly.h create mode 100644 gdb/config/rs6000/rs6000.mh create mode 100644 gdb/config/rs6000/rs6000.mt create mode 100644 gdb/config/rs6000/rs6000lynx.mh create mode 100644 gdb/config/rs6000/rs6000lynx.mt create mode 100644 gdb/config/rs6000/tm-rs6000-aix4.h create mode 100644 gdb/config/rs6000/tm-rs6000.h create mode 100644 gdb/config/rs6000/tm-rs6000ly.h create mode 100644 gdb/config/rs6000/xm-aix4.h create mode 100644 gdb/config/rs6000/xm-rs6000.h create mode 100644 gdb/config/rs6000/xm-rs6000ly.h create mode 100644 gdb/config/sh/sh.mt create mode 100644 gdb/config/sh/tm-sh.h create mode 100644 gdb/config/sparc/linux.mh create mode 100644 gdb/config/sparc/linux.mt create mode 100644 gdb/config/sparc/nbsd.mh create mode 100644 gdb/config/sparc/nbsd.mt create mode 100644 gdb/config/sparc/nm-linux.h create mode 100644 gdb/config/sparc/nm-nbsd.h create mode 100644 gdb/config/sparc/nm-sparclynx.h create mode 100644 gdb/config/sparc/nm-sun4os4.h create mode 100644 gdb/config/sparc/nm-sun4sol2.h create mode 100644 gdb/config/sparc/sp64.mt create mode 100644 gdb/config/sparc/sp64sim.mt create mode 100644 gdb/config/sparc/sp64sol2.mt create mode 100644 gdb/config/sparc/sparc-em.mt create mode 100644 gdb/config/sparc/sparclet.mt create mode 100644 gdb/config/sparc/sparclite.mt create mode 100644 gdb/config/sparc/sparclynx.mh create mode 100644 gdb/config/sparc/sparclynx.mt create mode 100644 gdb/config/sparc/sun4os4.mh create mode 100644 gdb/config/sparc/sun4os4.mt create mode 100644 gdb/config/sparc/sun4sol2.mh create mode 100644 gdb/config/sparc/sun4sol2.mt create mode 100644 gdb/config/sparc/tm-linux.h create mode 100644 gdb/config/sparc/tm-nbsd.h create mode 100644 gdb/config/sparc/tm-sp64.h create mode 100644 gdb/config/sparc/tm-sp64sim.h create mode 100644 gdb/config/sparc/tm-sparc.h create mode 100644 gdb/config/sparc/tm-sparclet.h create mode 100644 gdb/config/sparc/tm-sparclite.h create mode 100644 gdb/config/sparc/tm-sparclynx.h create mode 100644 gdb/config/sparc/tm-spc-em.h create mode 100644 gdb/config/sparc/tm-sun4os4.h create mode 100644 gdb/config/sparc/tm-sun4sol2.h create mode 100644 gdb/config/sparc/tm-vxsparc.h create mode 100644 gdb/config/sparc/vxsparc.mt create mode 100644 gdb/config/sparc/xm-linux.h create mode 100644 gdb/config/sparc/xm-nbsd.h create mode 100644 gdb/config/sparc/xm-sparc.h create mode 100644 gdb/config/sparc/xm-sparclynx.h create mode 100644 gdb/config/sparc/xm-sun4os4.h create mode 100644 gdb/config/sparc/xm-sun4sol2.h create mode 100644 gdb/config/tahoe/tahoe.mh create mode 100644 gdb/config/tahoe/tahoe.mt create mode 100644 gdb/config/tahoe/tm-tahoe.h create mode 100644 gdb/config/tahoe/xm-tahoe.h create mode 100644 gdb/config/tm-lynx.h create mode 100644 gdb/config/tm-nbsd.h create mode 100644 gdb/config/tm-sunos.h create mode 100644 gdb/config/tm-sysv4.h create mode 100644 gdb/config/v850/tm-v850.h create mode 100644 gdb/config/v850/v850.mt create mode 100644 gdb/config/vax/nm-vax.h create mode 100644 gdb/config/vax/tm-vax.h create mode 100644 gdb/config/vax/vax.mt create mode 100644 gdb/config/vax/vaxbsd.mh create mode 100644 gdb/config/vax/vaxult.mh create mode 100644 gdb/config/vax/vaxult2.mh create mode 100644 gdb/config/vax/xm-vax.h create mode 100644 gdb/config/vax/xm-vaxbsd.h create mode 100644 gdb/config/vax/xm-vaxult.h create mode 100644 gdb/config/vax/xm-vaxult2.h create mode 100644 gdb/config/w65/tm-w65.h create mode 100644 gdb/config/w65/w65.mt create mode 100644 gdb/config/xm-aix4.h create mode 100644 gdb/config/xm-lynx.h create mode 100644 gdb/config/xm-mpw.h create mode 100644 gdb/config/xm-nbsd.h create mode 100644 gdb/config/xm-sysv4.h create mode 100644 gdb/config/z8k/tm-z8k.h create mode 100644 gdb/config/z8k/z8k.mt create mode 100755 gdb/configure create mode 100644 gdb/configure.host create mode 100644 gdb/configure.in create mode 100644 gdb/configure.tgt create mode 100644 gdb/convex-tdep.c create mode 100644 gdb/convex-xdep.c create mode 100644 gdb/copying.awk create mode 100644 gdb/copying.c create mode 100644 gdb/core-aout.c create mode 100644 gdb/core-regset.c create mode 100644 gdb/core-sol2.c create mode 100644 gdb/corefile.c create mode 100644 gdb/corelow.c create mode 100644 gdb/cp-valprint.c create mode 100644 gdb/cpu32bug-rom.c create mode 100644 gdb/cxux-nat.c create mode 100644 gdb/d10v-tdep.c create mode 100644 gdb/d30v-tdep.c create mode 100644 gdb/dbug-rom.c create mode 100644 gdb/dbxread.c create mode 100644 gdb/dcache.c create mode 100644 gdb/dcache.h create mode 100644 gdb/debugify.c create mode 100644 gdb/debugify.h create mode 100644 gdb/defs.h create mode 100644 gdb/delta68-nat.c create mode 100644 gdb/demangle.c create mode 100644 gdb/dink32-rom.c create mode 100644 gdb/doc/ChangeLog create mode 100644 gdb/doc/HPPA-cfg.texi create mode 100644 gdb/doc/LRS create mode 100644 gdb/doc/Makefile.in create mode 100644 gdb/doc/a4rc.sed create mode 100644 gdb/doc/agentexpr.texi create mode 100644 gdb/doc/all-cfg.texi create mode 100644 gdb/doc/annotate.texi create mode 100755 gdb/doc/configure create mode 100644 gdb/doc/configure.in create mode 100644 gdb/doc/gdb.texinfo create mode 100644 gdb/doc/gdbint.texinfo create mode 100644 gdb/doc/libgdb.texinfo create mode 100644 gdb/doc/lpsrc.sed create mode 100644 gdb/doc/psrc.sed create mode 100644 gdb/doc/refcard.tex create mode 100644 gdb/doc/remote.texi create mode 100644 gdb/doc/stabs.texinfo create mode 100644 gdb/dpx2-nat.c create mode 100644 gdb/dsrec.c create mode 100644 gdb/dst.h create mode 100644 gdb/dstread.c create mode 100644 gdb/dve3900-rom.c create mode 100644 gdb/dwarf2read.c create mode 100644 gdb/dwarfread.c create mode 100644 gdb/elfread.c create mode 100644 gdb/environ.c create mode 100644 gdb/environ.h create mode 100644 gdb/eval.c create mode 100644 gdb/exc_request.defs create mode 100644 gdb/exec.c create mode 100644 gdb/expprint.c create mode 100644 gdb/expression.h create mode 100644 gdb/f-exp.y create mode 100644 gdb/f-lang.c create mode 100644 gdb/f-lang.h create mode 100644 gdb/f-typeprint.c create mode 100644 gdb/f-valprint.c create mode 100644 gdb/findvar.c create mode 100644 gdb/fork-child.c create mode 100644 gdb/fr30-tdep.c create mode 100644 gdb/frame.h create mode 100644 gdb/gdb-stabs.h create mode 100644 gdb/gdb.1 create mode 100644 gdb/gdb.gdb create mode 100644 gdb/gdb_stat.h create mode 100644 gdb/gdb_string.h create mode 100644 gdb/gdba.el create mode 100644 gdb/gdbarch.c create mode 100644 gdb/gdbarch.h create mode 100644 gdb/gdbcmd.h create mode 100644 gdb/gdbcore.h create mode 100644 gdb/gdbinit.in create mode 100644 gdb/gdbserver/Makefile.in create mode 100644 gdb/gdbserver/README create mode 100644 gdb/gdbserver/configure.in create mode 100644 gdb/gdbserver/gdbreplay.c create mode 100644 gdb/gdbserver/gdbserver.1 create mode 100644 gdb/gdbserver/low-hppabsd.c create mode 100644 gdb/gdbserver/low-linux.c create mode 100644 gdb/gdbserver/low-lynx.c create mode 100644 gdb/gdbserver/low-sim.c create mode 100644 gdb/gdbserver/low-sparc.c create mode 100644 gdb/gdbserver/low-sun3.c create mode 100644 gdb/gdbserver/remote-utils.c create mode 100644 gdb/gdbserver/server.c create mode 100644 gdb/gdbserver/server.h create mode 100644 gdb/gdbserver/utils.c create mode 100644 gdb/gdbthread.h create mode 100644 gdb/gdbtypes.c create mode 100644 gdb/gdbtypes.h create mode 100644 gdb/gnu-nat.c create mode 100644 gdb/gnu-nat.h create mode 100644 gdb/gnu-regex.c create mode 100644 gdb/gnu-regex.h create mode 100644 gdb/gould-tdep.c create mode 100644 gdb/gould-xdep.c create mode 100644 gdb/h8300-tdep.c create mode 100644 gdb/h8500-tdep.c create mode 100644 gdb/hp-psymtab-read.c create mode 100644 gdb/hp-symtab-read.c create mode 100644 gdb/hp300ux-nat.c create mode 100644 gdb/hppa-tdep.c create mode 100644 gdb/hppab-nat.c create mode 100644 gdb/hppah-nat.c create mode 100644 gdb/hppam3-nat.c create mode 100644 gdb/hpread.c create mode 100644 gdb/hpread.h create mode 100644 gdb/hpux-thread.c create mode 100644 gdb/i386-stub.c create mode 100644 gdb/i386-tdep.c create mode 100644 gdb/i386aix-nat.c create mode 100644 gdb/i386b-nat.c create mode 100644 gdb/i386gnu-nat.c create mode 100644 gdb/i386ly-tdep.c create mode 100644 gdb/i386m3-nat.c create mode 100644 gdb/i386mach-nat.c create mode 100644 gdb/i386v-nat.c create mode 100644 gdb/i386v4-nat.c create mode 100644 gdb/i387-tdep.c create mode 100644 gdb/i960-tdep.c create mode 100644 gdb/infcmd.c create mode 100644 gdb/inferior.h create mode 100644 gdb/inflow.c create mode 100644 gdb/infptrace.c create mode 100644 gdb/infrun.c create mode 100644 gdb/inftarg.c create mode 100644 gdb/infttrace.c create mode 100644 gdb/irix4-nat.c create mode 100644 gdb/irix5-nat.c create mode 100644 gdb/isi-xdep.c create mode 100644 gdb/jv-exp.y create mode 100644 gdb/jv-lang.c create mode 100644 gdb/jv-lang.h create mode 100644 gdb/jv-typeprint.c create mode 100644 gdb/jv-valprint.c create mode 100644 gdb/kdb-start.c create mode 100644 gdb/language.c create mode 100644 gdb/language.h create mode 100644 gdb/lynx-nat.c create mode 100644 gdb/m2-exp.y create mode 100644 gdb/m2-lang.c create mode 100644 gdb/m2-lang.h create mode 100644 gdb/m2-typeprint.c create mode 100644 gdb/m2-valprint.c create mode 100644 gdb/m3-nat.c create mode 100644 gdb/m32r-rom.c create mode 100644 gdb/m32r-stub.c create mode 100644 gdb/m32r-tdep.c create mode 100644 gdb/m68k-stub.c create mode 100644 gdb/m68k-tdep.c create mode 100644 gdb/m68klinux-nat.c create mode 100644 gdb/m68knbsd-nat.c create mode 100644 gdb/m88k-nat.c create mode 100644 gdb/m88k-tdep.c create mode 100644 gdb/mac-defs.h create mode 100644 gdb/mac-gdb.r create mode 100644 gdb/mac-nat.c create mode 100644 gdb/mac-xdep.c create mode 100644 gdb/main.c create mode 100644 gdb/maint.c create mode 100644 gdb/mdebugread.c create mode 100644 gdb/mem-break.c create mode 100644 gdb/minimon.h create mode 100644 gdb/minsyms.c create mode 100644 gdb/mips-nat.c create mode 100644 gdb/mips-tdep.c create mode 100644 gdb/mipsm3-nat.c create mode 100644 gdb/mipsread.c create mode 100644 gdb/mipsv4-nat.c create mode 100644 gdb/mn10200-tdep.c create mode 100644 gdb/mn10300-tdep.c create mode 100644 gdb/mon960-rom.c create mode 100644 gdb/monitor.c create mode 100644 gdb/monitor.h create mode 100644 gdb/mpw-config.in create mode 100644 gdb/mpw-make.sed create mode 100644 gdb/msg.defs create mode 100644 gdb/msg_reply.defs create mode 100644 gdb/news-xdep.c create mode 100644 gdb/nindy-share/Makefile create mode 100644 gdb/nindy-share/Onindy.c create mode 100644 gdb/nindy-share/README create mode 100644 gdb/nindy-share/VERSION create mode 100644 gdb/nindy-share/b.out.h create mode 100644 gdb/nindy-share/block_io.h create mode 100644 gdb/nindy-share/coff.h create mode 100644 gdb/nindy-share/env.h create mode 100644 gdb/nindy-share/nindy.c create mode 100644 gdb/nindy-share/stop.h create mode 100644 gdb/nindy-share/ttyflush.c create mode 100644 gdb/nindy-tdep.c create mode 100644 gdb/nlm/Makefile.in create mode 100755 gdb/nlm/configure create mode 100644 gdb/nlm/configure.in create mode 100644 gdb/nlm/gdbserve.c create mode 100644 gdb/nlm/gdbserve.def create mode 100644 gdb/nlm/i386.c create mode 100644 gdb/nlm/i386.h create mode 100644 gdb/nlm/ppc.c create mode 100644 gdb/nlm/ppc.h create mode 100644 gdb/nlm/prelude.c create mode 100644 gdb/nlmread.c create mode 100644 gdb/notify.defs create mode 100644 gdb/ns32k-tdep.c create mode 100644 gdb/ns32km3-nat.c create mode 100644 gdb/ns32knbsd-nat.c create mode 100644 gdb/objfiles.c create mode 100644 gdb/objfiles.h create mode 100644 gdb/ocd.c create mode 100644 gdb/ocd.h create mode 100644 gdb/op50-rom.c create mode 100644 gdb/os9kread.c create mode 100644 gdb/osf-share/AT386/cma_thread_io.h create mode 100644 gdb/osf-share/HP800/cma_thread_io.h create mode 100644 gdb/osf-share/README create mode 100644 gdb/osf-share/RIOS/cma_thread_io.h create mode 100644 gdb/osf-share/cma_attr.h create mode 100644 gdb/osf-share/cma_deb_core.h create mode 100644 gdb/osf-share/cma_debug_client.h create mode 100644 gdb/osf-share/cma_errors.h create mode 100644 gdb/osf-share/cma_handle.h create mode 100644 gdb/osf-share/cma_init.h create mode 100644 gdb/osf-share/cma_list.h create mode 100644 gdb/osf-share/cma_mutex.h create mode 100644 gdb/osf-share/cma_sched.h create mode 100644 gdb/osf-share/cma_semaphore_defs.h create mode 100644 gdb/osf-share/cma_sequence.h create mode 100644 gdb/osf-share/cma_stack.h create mode 100644 gdb/osf-share/cma_stack_int.h create mode 100644 gdb/osf-share/cma_tcb_defs.h create mode 100644 gdb/osf-share/cma_util.h create mode 100644 gdb/osfsolib.c create mode 100644 gdb/parse.c create mode 100644 gdb/parser-defs.h create mode 100644 gdb/partial-stab.h create mode 100644 gdb/ppc-bdm.c create mode 100644 gdb/ppcbug-rom.c create mode 100644 gdb/printcmd.c create mode 100644 gdb/process_reply.defs create mode 100644 gdb/procfs.c create mode 100644 gdb/ptx4-nat.c create mode 100644 gdb/pyr-tdep.c create mode 100644 gdb/pyr-xdep.c create mode 100644 gdb/rdi-share/Makefile.am create mode 100644 gdb/rdi-share/Makefile.in create mode 100644 gdb/rdi-share/README.CYGNUS create mode 100644 gdb/rdi-share/aclocal.m4 create mode 100644 gdb/rdi-share/adp.h create mode 100644 gdb/rdi-share/adperr.h create mode 100644 gdb/rdi-share/angel.h create mode 100644 gdb/rdi-share/ardi.c create mode 100644 gdb/rdi-share/ardi.h create mode 100644 gdb/rdi-share/armdbg.h create mode 100644 gdb/rdi-share/buffers.h create mode 100644 gdb/rdi-share/bytesex.c create mode 100644 gdb/rdi-share/bytesex.h create mode 100644 gdb/rdi-share/chandefs.h create mode 100644 gdb/rdi-share/channels.h create mode 100644 gdb/rdi-share/chanpriv.h create mode 100755 gdb/rdi-share/configure create mode 100644 gdb/rdi-share/configure.in create mode 100644 gdb/rdi-share/crc.c create mode 100644 gdb/rdi-share/crc.h create mode 100644 gdb/rdi-share/dbg_conf.h create mode 100644 gdb/rdi-share/dbg_cp.h create mode 100644 gdb/rdi-share/dbg_hif.h create mode 100644 gdb/rdi-share/dbg_rdi.h create mode 100644 gdb/rdi-share/devclnt.h create mode 100644 gdb/rdi-share/devices.h create mode 100644 gdb/rdi-share/devsw.c create mode 100644 gdb/rdi-share/devsw.h create mode 100644 gdb/rdi-share/drivers.c create mode 100644 gdb/rdi-share/drivers.h create mode 100644 gdb/rdi-share/endian.h create mode 100644 gdb/rdi-share/etherdrv.c create mode 100644 gdb/rdi-share/ethernet.h create mode 100644 gdb/rdi-share/host.h create mode 100644 gdb/rdi-share/hostchan.c create mode 100644 gdb/rdi-share/hostchan.h create mode 100644 gdb/rdi-share/hsys.c create mode 100644 gdb/rdi-share/hsys.h create mode 100644 gdb/rdi-share/logging.c create mode 100644 gdb/rdi-share/logging.h create mode 100644 gdb/rdi-share/msgbuild.c create mode 100644 gdb/rdi-share/msgbuild.h create mode 100644 gdb/rdi-share/params.c create mode 100644 gdb/rdi-share/params.h create mode 100644 gdb/rdi-share/rx.c create mode 100644 gdb/rdi-share/rxtx.h create mode 100644 gdb/rdi-share/serdrv.c create mode 100644 gdb/rdi-share/serpardr.c create mode 100644 gdb/rdi-share/sys.h create mode 100644 gdb/rdi-share/tx.c create mode 100644 gdb/rdi-share/unixcomm.c create mode 100644 gdb/rdi-share/unixcomm.h create mode 100644 gdb/remote-adapt.c create mode 100644 gdb/remote-array.c create mode 100644 gdb/remote-bug.c create mode 100644 gdb/remote-d10v.c create mode 100644 gdb/remote-e7000.c create mode 100644 gdb/remote-eb.c create mode 100644 gdb/remote-es.c create mode 100644 gdb/remote-est.c create mode 100644 gdb/remote-hms.c create mode 100644 gdb/remote-mips.c create mode 100644 gdb/remote-mm.c create mode 100644 gdb/remote-nindy.c create mode 100644 gdb/remote-nrom.c create mode 100644 gdb/remote-os9k.c create mode 100644 gdb/remote-rdi.c create mode 100644 gdb/remote-rdp.c create mode 100644 gdb/remote-sds.c create mode 100644 gdb/remote-sim.c create mode 100644 gdb/remote-st.c create mode 100644 gdb/remote-udi.c create mode 100644 gdb/remote-utils.c create mode 100644 gdb/remote-utils.h create mode 100644 gdb/remote-vx.c create mode 100644 gdb/remote-vx29k.c create mode 100644 gdb/remote-vx68.c create mode 100644 gdb/remote-vx960.c create mode 100644 gdb/remote-vxmips.c create mode 100644 gdb/remote-vxsparc.c create mode 100644 gdb/remote.c create mode 100644 gdb/reply_mig_hack.awk create mode 100644 gdb/rom68k-rom.c create mode 100644 gdb/rs6000-nat.c create mode 100644 gdb/rs6000-tdep.c create mode 100644 gdb/saber.suppress create mode 100644 gdb/scm-exp.c create mode 100644 gdb/scm-lang.c create mode 100644 gdb/scm-lang.h create mode 100644 gdb/scm-tags.h create mode 100644 gdb/scm-valprint.c create mode 100644 gdb/ser-e7kpc.c create mode 100644 gdb/ser-go32.c create mode 100644 gdb/ser-mac.c create mode 100644 gdb/ser-ocd.c create mode 100644 gdb/ser-tcp.c create mode 100644 gdb/ser-unix.c create mode 100644 gdb/serial.c create mode 100644 gdb/serial.h create mode 100644 gdb/sh-stub.c create mode 100644 gdb/sh-tdep.c create mode 100644 gdb/sh3-rom.c create mode 100644 gdb/signals.h create mode 100644 gdb/sol-thread.c create mode 100644 gdb/solib.c create mode 100644 gdb/solib.h create mode 100644 gdb/somread.c create mode 100644 gdb/somsolib.c create mode 100644 gdb/somsolib.h create mode 100644 gdb/source.c create mode 100644 gdb/sparc-nat.c create mode 100644 gdb/sparc-stub.c create mode 100644 gdb/sparc-tdep.c create mode 100644 gdb/sparcl-stub.c create mode 100644 gdb/sparcl-tdep.c create mode 100644 gdb/sparclet-rom.c create mode 100644 gdb/sparclet-stub.c create mode 100644 gdb/srec.h create mode 100644 gdb/stabsread.c create mode 100644 gdb/stabsread.h create mode 100644 gdb/stack.c create mode 100644 gdb/standalone.c create mode 100644 gdb/stop-gdb.c create mode 100644 gdb/stuff.c create mode 100644 gdb/sun3-nat.c create mode 100644 gdb/sun386-nat.c create mode 100644 gdb/symfile.c create mode 100644 gdb/symfile.h create mode 100644 gdb/symm-nat.c create mode 100644 gdb/symm-tdep.c create mode 100644 gdb/symmisc.c create mode 100644 gdb/symtab.c create mode 100644 gdb/symtab.h create mode 100644 gdb/tahoe-tdep.c create mode 100644 gdb/target.c create mode 100644 gdb/target.h create mode 100644 gdb/terminal.h create mode 100644 gdb/testsuite/.gdbinit create mode 100644 gdb/testsuite/ChangeLog create mode 100644 gdb/testsuite/Makefile.in create mode 100644 gdb/testsuite/TODO create mode 100644 gdb/testsuite/aclocal.m4 create mode 100644 gdb/testsuite/config/abug.exp create mode 100644 gdb/testsuite/config/arm-ice.exp create mode 100644 gdb/testsuite/config/cpu32bug.exp create mode 100644 gdb/testsuite/config/cygmon.exp create mode 100644 gdb/testsuite/config/d10v.exp create mode 100644 gdb/testsuite/config/dve.exp create mode 100644 gdb/testsuite/config/est.exp create mode 100644 gdb/testsuite/config/gdbserver.exp create mode 100644 gdb/testsuite/config/h8300.exp create mode 100644 gdb/testsuite/config/hmsirom.exp create mode 100644 gdb/testsuite/config/hppro.exp create mode 100644 gdb/testsuite/config/i386-bozo.exp create mode 100644 gdb/testsuite/config/i960.exp create mode 100644 gdb/testsuite/config/m32r-stub.exp create mode 100644 gdb/testsuite/config/m32r.exp create mode 100644 gdb/testsuite/config/m68k-emc.exp create mode 100644 gdb/testsuite/config/mips-idt.exp create mode 100644 gdb/testsuite/config/mips.exp create mode 100644 gdb/testsuite/config/mn10300-eval.exp create mode 100644 gdb/testsuite/config/monitor.exp create mode 100644 gdb/testsuite/config/mt-a29k-udi create mode 100644 gdb/testsuite/config/mt-i386-aout create mode 100644 gdb/testsuite/config/mt-i960-nindy create mode 100644 gdb/testsuite/config/mt-lynx create mode 100644 gdb/testsuite/config/mt-m68k create mode 100644 gdb/testsuite/config/mt-mips-ecoff create mode 100644 gdb/testsuite/config/mt-netware create mode 100644 gdb/testsuite/config/mt-slite create mode 100644 gdb/testsuite/config/mt-sparc-aout create mode 100644 gdb/testsuite/config/mt-unix create mode 100644 gdb/testsuite/config/mt-vxworks create mode 100644 gdb/testsuite/config/netware.exp create mode 100644 gdb/testsuite/config/nind.exp create mode 100644 gdb/testsuite/config/proelf.exp create mode 100644 gdb/testsuite/config/rom68k.exp create mode 100644 gdb/testsuite/config/sh.exp create mode 100644 gdb/testsuite/config/sim.exp create mode 100644 gdb/testsuite/config/slite.exp create mode 100644 gdb/testsuite/config/sparclet.exp create mode 100644 gdb/testsuite/config/udi.exp create mode 100644 gdb/testsuite/config/unix.exp create mode 100644 gdb/testsuite/config/unknown.exp create mode 100644 gdb/testsuite/config/vr4300.exp create mode 100644 gdb/testsuite/config/vr5000.exp create mode 100644 gdb/testsuite/config/vx.exp create mode 100644 gdb/testsuite/config/vxworks.exp create mode 100644 gdb/testsuite/config/vxworks29k.exp create mode 100755 gdb/testsuite/configure create mode 100644 gdb/testsuite/configure.in create mode 100644 gdb/testsuite/gdb.asm/Makefile.in create mode 100644 gdb/testsuite/gdb.asm/asm-source.exp create mode 100644 gdb/testsuite/gdb.asm/asmsrc1.s create mode 100644 gdb/testsuite/gdb.asm/asmsrc2.s create mode 100644 gdb/testsuite/gdb.asm/common.inc create mode 100755 gdb/testsuite/gdb.asm/configure create mode 100644 gdb/testsuite/gdb.asm/configure.in create mode 100644 gdb/testsuite/gdb.asm/d10v.inc create mode 100644 gdb/testsuite/gdb.base/Makefile.in create mode 100644 gdb/testsuite/gdb.base/README create mode 100644 gdb/testsuite/gdb.base/a1-selftest.exp create mode 100644 gdb/testsuite/gdb.base/a2-run.exp create mode 100644 gdb/testsuite/gdb.base/all-bin.exp create mode 100644 gdb/testsuite/gdb.base/all-types.c create mode 100644 gdb/testsuite/gdb.base/arithmet.exp create mode 100644 gdb/testsuite/gdb.base/assign.exp create mode 100644 gdb/testsuite/gdb.base/bar.c create mode 100644 gdb/testsuite/gdb.base/baz.c create mode 100644 gdb/testsuite/gdb.base/bitfields.c create mode 100644 gdb/testsuite/gdb.base/bitfields.exp create mode 100644 gdb/testsuite/gdb.base/bitops.exp create mode 100644 gdb/testsuite/gdb.base/branches.c create mode 100644 gdb/testsuite/gdb.base/break.c create mode 100644 gdb/testsuite/gdb.base/break.exp create mode 100644 gdb/testsuite/gdb.base/call-ar-st.c create mode 100644 gdb/testsuite/gdb.base/call-ar-st.exp create mode 100644 gdb/testsuite/gdb.base/call-rt-st.c create mode 100644 gdb/testsuite/gdb.base/call-rt-st.exp create mode 100644 gdb/testsuite/gdb.base/call-strs.c create mode 100644 gdb/testsuite/gdb.base/call-strs.exp create mode 100644 gdb/testsuite/gdb.base/callfuncs.c create mode 100644 gdb/testsuite/gdb.base/callfuncs.exp create mode 100644 gdb/testsuite/gdb.base/callfuncs2.c create mode 100644 gdb/testsuite/gdb.base/callfuncs2.exp create mode 100644 gdb/testsuite/gdb.base/commands.exp create mode 100644 gdb/testsuite/gdb.base/compiler.c create mode 100644 gdb/testsuite/gdb.base/completion.exp create mode 100644 gdb/testsuite/gdb.base/cond-expr.exp create mode 100644 gdb/testsuite/gdb.base/condbreak.c create mode 100644 gdb/testsuite/gdb.base/condbreak.exp create mode 100644 gdb/testsuite/gdb.base/configure create mode 100644 gdb/testsuite/gdb.base/configure.in create mode 100644 gdb/testsuite/gdb.base/constvars.c create mode 100644 gdb/testsuite/gdb.base/constvars.exp create mode 100644 gdb/testsuite/gdb.base/corefile.exp create mode 100644 gdb/testsuite/gdb.base/coremaker.c create mode 100644 gdb/testsuite/gdb.base/crossload.exp create mode 100644 gdb/testsuite/gdb.base/d10v.ld create mode 100644 gdb/testsuite/gdb.base/d10vovly.c create mode 100644 gdb/testsuite/gdb.base/default.exp create mode 100644 gdb/testsuite/gdb.base/define.exp create mode 100644 gdb/testsuite/gdb.base/display.c create mode 100644 gdb/testsuite/gdb.base/display.exp create mode 100644 gdb/testsuite/gdb.base/dollar.exp create mode 100644 gdb/testsuite/gdb.base/echo.exp create mode 100644 gdb/testsuite/gdb.base/ena-dis-br.exp create mode 100644 gdb/testsuite/gdb.base/ending-run.c create mode 100644 gdb/testsuite/gdb.base/ending-run.exp create mode 100644 gdb/testsuite/gdb.base/environ.exp create mode 100644 gdb/testsuite/gdb.base/eval-skip.exp create mode 100644 gdb/testsuite/gdb.base/exprs.c create mode 100644 gdb/testsuite/gdb.base/exprs.exp create mode 100644 gdb/testsuite/gdb.base/foo.c create mode 100644 gdb/testsuite/gdb.base/funcargs.c create mode 100644 gdb/testsuite/gdb.base/funcargs.exp create mode 100644 gdb/testsuite/gdb.base/gdbvars.exp create mode 100644 gdb/testsuite/gdb.base/grbx.c create mode 100644 gdb/testsuite/gdb.base/help.exp create mode 100644 gdb/testsuite/gdb.base/i486-elf.u create mode 100644 gdb/testsuite/gdb.base/i860-elf.u create mode 100644 gdb/testsuite/gdb.base/int-type.c create mode 100644 gdb/testsuite/gdb.base/interrupt.c create mode 100644 gdb/testsuite/gdb.base/interrupt.exp create mode 100644 gdb/testsuite/gdb.base/jump.c create mode 100644 gdb/testsuite/gdb.base/jump.exp create mode 100644 gdb/testsuite/gdb.base/langs.exp create mode 100644 gdb/testsuite/gdb.base/langs0.c create mode 100644 gdb/testsuite/gdb.base/langs1.c create mode 100644 gdb/testsuite/gdb.base/langs1.f create mode 100644 gdb/testsuite/gdb.base/langs2.c create mode 100644 gdb/testsuite/gdb.base/langs2.cxx create mode 100644 gdb/testsuite/gdb.base/list.exp create mode 100644 gdb/testsuite/gdb.base/list0.c create mode 100644 gdb/testsuite/gdb.base/list0.h create mode 100644 gdb/testsuite/gdb.base/list1.c create mode 100644 gdb/testsuite/gdb.base/logical.exp create mode 100644 gdb/testsuite/gdb.base/long_long.c create mode 100644 gdb/testsuite/gdb.base/long_long.exp create mode 100644 gdb/testsuite/gdb.base/m32r.ld create mode 100644 gdb/testsuite/gdb.base/m32rovly.c create mode 100644 gdb/testsuite/gdb.base/m68k-aout.u create mode 100644 gdb/testsuite/gdb.base/m68k-aout2.u create mode 100644 gdb/testsuite/gdb.base/m68k-elf.u create mode 100644 gdb/testsuite/gdb.base/maint.exp create mode 100644 gdb/testsuite/gdb.base/mips-ecoff.u create mode 100644 gdb/testsuite/gdb.base/mips_pro.c create mode 100644 gdb/testsuite/gdb.base/mips_pro.exp create mode 100644 gdb/testsuite/gdb.base/miscexprs.c create mode 100644 gdb/testsuite/gdb.base/miscexprs.exp create mode 100644 gdb/testsuite/gdb.base/nodebug.c create mode 100644 gdb/testsuite/gdb.base/nodebug.exp create mode 100644 gdb/testsuite/gdb.base/opaque.exp create mode 100644 gdb/testsuite/gdb.base/opaque0.c create mode 100644 gdb/testsuite/gdb.base/opaque1.c create mode 100644 gdb/testsuite/gdb.base/overlays.c create mode 100644 gdb/testsuite/gdb.base/overlays.exp create mode 100644 gdb/testsuite/gdb.base/ovlymgr.c create mode 100644 gdb/testsuite/gdb.base/ovlymgr.h create mode 100644 gdb/testsuite/gdb.base/pointers.c create mode 100644 gdb/testsuite/gdb.base/pointers.exp create mode 100644 gdb/testsuite/gdb.base/pointers2.c create mode 100644 gdb/testsuite/gdb.base/pointers2.exp create mode 100644 gdb/testsuite/gdb.base/printcmds.c create mode 100644 gdb/testsuite/gdb.base/printcmds.exp create mode 100644 gdb/testsuite/gdb.base/ptype.c create mode 100644 gdb/testsuite/gdb.base/ptype.exp create mode 100644 gdb/testsuite/gdb.base/radix.exp create mode 100644 gdb/testsuite/gdb.base/recurse.c create mode 100644 gdb/testsuite/gdb.base/recurse.exp create mode 100644 gdb/testsuite/gdb.base/regs.exp create mode 100644 gdb/testsuite/gdb.base/relational.exp create mode 100644 gdb/testsuite/gdb.base/reread.exp create mode 100644 gdb/testsuite/gdb.base/reread1.c create mode 100644 gdb/testsuite/gdb.base/reread2.c create mode 100644 gdb/testsuite/gdb.base/restore.c create mode 100644 gdb/testsuite/gdb.base/restore.exp create mode 100644 gdb/testsuite/gdb.base/return.c create mode 100644 gdb/testsuite/gdb.base/return.exp create mode 100644 gdb/testsuite/gdb.base/run.c create mode 100644 gdb/testsuite/gdb.base/scope.exp create mode 100644 gdb/testsuite/gdb.base/scope0.c create mode 100644 gdb/testsuite/gdb.base/scope1.c create mode 100644 gdb/testsuite/gdb.base/sect-cmd.exp create mode 100644 gdb/testsuite/gdb.base/setshow.c create mode 100644 gdb/testsuite/gdb.base/setshow.exp create mode 100644 gdb/testsuite/gdb.base/setvar.c create mode 100644 gdb/testsuite/gdb.base/setvar.exp create mode 100644 gdb/testsuite/gdb.base/shlib-call.exp create mode 100644 gdb/testsuite/gdb.base/shmain.c create mode 100644 gdb/testsuite/gdb.base/shr1.c create mode 100644 gdb/testsuite/gdb.base/shr2.c create mode 100644 gdb/testsuite/gdb.base/sigall.c create mode 100644 gdb/testsuite/gdb.base/sigall.exp create mode 100644 gdb/testsuite/gdb.base/signals.c create mode 100644 gdb/testsuite/gdb.base/signals.exp create mode 100644 gdb/testsuite/gdb.base/smoke.c create mode 100644 gdb/testsuite/gdb.base/smoke.cc create mode 100644 gdb/testsuite/gdb.base/smoke.exp create mode 100644 gdb/testsuite/gdb.base/so-impl-ld.c create mode 100644 gdb/testsuite/gdb.base/so-impl-ld.exp create mode 100644 gdb/testsuite/gdb.base/so-indr-cl.c create mode 100644 gdb/testsuite/gdb.base/so-indr-cl.exp create mode 100644 gdb/testsuite/gdb.base/solib.c create mode 100644 gdb/testsuite/gdb.base/solib.exp create mode 100644 gdb/testsuite/gdb.base/solib1.c create mode 100644 gdb/testsuite/gdb.base/solib2.c create mode 100644 gdb/testsuite/gdb.base/sparc-aout.u create mode 100644 gdb/testsuite/gdb.base/sparc-elf.u create mode 100644 gdb/testsuite/gdb.base/ss.h create mode 100644 gdb/testsuite/gdb.base/step-test.c create mode 100644 gdb/testsuite/gdb.base/step-test.exp create mode 100644 gdb/testsuite/gdb.base/structs2.c create mode 100644 gdb/testsuite/gdb.base/structs2.exp create mode 100644 gdb/testsuite/gdb.base/term.exp create mode 100644 gdb/testsuite/gdb.base/twice.c create mode 100644 gdb/testsuite/gdb.base/twice.exp create mode 100644 gdb/testsuite/gdb.base/varargs.c create mode 100644 gdb/testsuite/gdb.base/varargs.exp create mode 100644 gdb/testsuite/gdb.base/volatile.exp create mode 100644 gdb/testsuite/gdb.base/watchpoint.c create mode 100644 gdb/testsuite/gdb.base/watchpoint.exp create mode 100644 gdb/testsuite/gdb.base/whatis-exp.exp create mode 100644 gdb/testsuite/gdb.base/whatis.c create mode 100644 gdb/testsuite/gdb.base/whatis.exp create mode 100644 gdb/testsuite/gdb.c++/Makefile.in create mode 100644 gdb/testsuite/gdb.c++/anon-union.cc create mode 100644 gdb/testsuite/gdb.c++/anon-union.exp create mode 100644 gdb/testsuite/gdb.c++/classes.exp create mode 100644 gdb/testsuite/gdb.c++/compiler.cc create mode 100644 gdb/testsuite/gdb.c++/configure create mode 100644 gdb/testsuite/gdb.c++/configure.in create mode 100644 gdb/testsuite/gdb.c++/cplusfuncs.cc create mode 100644 gdb/testsuite/gdb.c++/cplusfuncs.exp create mode 100644 gdb/testsuite/gdb.c++/demangle.exp create mode 100644 gdb/testsuite/gdb.c++/derivation.cc create mode 100644 gdb/testsuite/gdb.c++/derivation.exp create mode 100644 gdb/testsuite/gdb.c++/inherit.exp create mode 100644 gdb/testsuite/gdb.c++/local.cc create mode 100644 gdb/testsuite/gdb.c++/local.exp create mode 100644 gdb/testsuite/gdb.c++/member-ptr.cc create mode 100644 gdb/testsuite/gdb.c++/member-ptr.exp create mode 100644 gdb/testsuite/gdb.c++/method.cc create mode 100644 gdb/testsuite/gdb.c++/method.exp create mode 100644 gdb/testsuite/gdb.c++/misc.cc create mode 100644 gdb/testsuite/gdb.c++/misc.exp create mode 100644 gdb/testsuite/gdb.c++/overload.cc create mode 100644 gdb/testsuite/gdb.c++/overload.exp create mode 100644 gdb/testsuite/gdb.c++/ovldbreak.cc create mode 100644 gdb/testsuite/gdb.c++/ovldbreak.exp create mode 100644 gdb/testsuite/gdb.c++/ref-types.cc create mode 100644 gdb/testsuite/gdb.c++/ref-types.exp create mode 100644 gdb/testsuite/gdb.c++/ref-types2.cc create mode 100644 gdb/testsuite/gdb.c++/ref-types2.exp create mode 100644 gdb/testsuite/gdb.c++/templates.cc create mode 100644 gdb/testsuite/gdb.c++/templates.exp create mode 100644 gdb/testsuite/gdb.c++/userdef.cc create mode 100644 gdb/testsuite/gdb.c++/userdef.exp create mode 100644 gdb/testsuite/gdb.c++/virtfunc.cc create mode 100644 gdb/testsuite/gdb.c++/virtfunc.exp create mode 100644 gdb/testsuite/gdb.chill/ChangeLog create mode 100644 gdb/testsuite/gdb.chill/Makefile.in create mode 100644 gdb/testsuite/gdb.chill/builtins.ch create mode 100644 gdb/testsuite/gdb.chill/builtins.exp create mode 100644 gdb/testsuite/gdb.chill/callch.ch create mode 100644 gdb/testsuite/gdb.chill/callch.exp create mode 100644 gdb/testsuite/gdb.chill/chexp.exp create mode 100644 gdb/testsuite/gdb.chill/chillvars.ch create mode 100644 gdb/testsuite/gdb.chill/chillvars.exp create mode 100755 gdb/testsuite/gdb.chill/configure create mode 100644 gdb/testsuite/gdb.chill/configure.in create mode 100644 gdb/testsuite/gdb.chill/enum.ch create mode 100644 gdb/testsuite/gdb.chill/enum.exp create mode 100644 gdb/testsuite/gdb.chill/extstruct-grt.ch create mode 100644 gdb/testsuite/gdb.chill/extstruct.ch create mode 100644 gdb/testsuite/gdb.chill/extstruct.exp create mode 100644 gdb/testsuite/gdb.chill/func1.ch create mode 100644 gdb/testsuite/gdb.chill/gch1041.ch create mode 100644 gdb/testsuite/gdb.chill/gch1041.exp create mode 100644 gdb/testsuite/gdb.chill/gch1272.ch create mode 100644 gdb/testsuite/gdb.chill/gch1272.exp create mode 100644 gdb/testsuite/gdb.chill/gch1280.ch create mode 100644 gdb/testsuite/gdb.chill/gch1280.exp create mode 100644 gdb/testsuite/gdb.chill/gch922.ch create mode 100644 gdb/testsuite/gdb.chill/gch922.exp create mode 100644 gdb/testsuite/gdb.chill/gch981.ch create mode 100644 gdb/testsuite/gdb.chill/gch981.exp create mode 100644 gdb/testsuite/gdb.chill/misc.ch create mode 100644 gdb/testsuite/gdb.chill/misc.exp create mode 100644 gdb/testsuite/gdb.chill/powerset.ch create mode 100644 gdb/testsuite/gdb.chill/powerset.exp create mode 100644 gdb/testsuite/gdb.chill/pr-4975-grt.ch create mode 100644 gdb/testsuite/gdb.chill/pr-4975.ch create mode 100644 gdb/testsuite/gdb.chill/pr-4975.exp create mode 100644 gdb/testsuite/gdb.chill/pr-5016.ch create mode 100644 gdb/testsuite/gdb.chill/pr-5016.exp create mode 100644 gdb/testsuite/gdb.chill/pr-5020.ch create mode 100644 gdb/testsuite/gdb.chill/pr-5020.exp create mode 100644 gdb/testsuite/gdb.chill/pr-5022.ch create mode 100644 gdb/testsuite/gdb.chill/pr-5022.exp create mode 100644 gdb/testsuite/gdb.chill/pr-5646-grt.ch create mode 100644 gdb/testsuite/gdb.chill/pr-5646.ch create mode 100644 gdb/testsuite/gdb.chill/pr-5646.exp create mode 100644 gdb/testsuite/gdb.chill/pr-5984.ch create mode 100644 gdb/testsuite/gdb.chill/pr-5984.exp create mode 100644 gdb/testsuite/gdb.chill/pr-6292.ch create mode 100644 gdb/testsuite/gdb.chill/pr-6292.exp create mode 100644 gdb/testsuite/gdb.chill/pr-6632-grt.ch create mode 100644 gdb/testsuite/gdb.chill/pr-6632.ch create mode 100644 gdb/testsuite/gdb.chill/pr-6632.exp create mode 100644 gdb/testsuite/gdb.chill/pr-8134.exp create mode 100644 gdb/testsuite/gdb.chill/pr-8136.ch create mode 100644 gdb/testsuite/gdb.chill/pr-8136.exp create mode 100644 gdb/testsuite/gdb.chill/pr-8405.ch create mode 100644 gdb/testsuite/gdb.chill/pr-8405.exp create mode 100644 gdb/testsuite/gdb.chill/pr-8742.ch create mode 100644 gdb/testsuite/gdb.chill/pr-8742.exp create mode 100644 gdb/testsuite/gdb.chill/pr-8894-grt.ch create mode 100644 gdb/testsuite/gdb.chill/pr-8894.ch create mode 100644 gdb/testsuite/gdb.chill/pr-8894.exp create mode 100644 gdb/testsuite/gdb.chill/pr-9095.ch create mode 100644 gdb/testsuite/gdb.chill/pr-9095.exp create mode 100644 gdb/testsuite/gdb.chill/pr-9946.ch create mode 100644 gdb/testsuite/gdb.chill/pr-9946.exp create mode 100644 gdb/testsuite/gdb.chill/result.ch create mode 100644 gdb/testsuite/gdb.chill/result.exp create mode 100644 gdb/testsuite/gdb.chill/string.ch create mode 100644 gdb/testsuite/gdb.chill/string.exp create mode 100644 gdb/testsuite/gdb.chill/tests1.ch create mode 100644 gdb/testsuite/gdb.chill/tests1.exp create mode 100644 gdb/testsuite/gdb.chill/tests2.ch create mode 100644 gdb/testsuite/gdb.chill/tests2.exp create mode 100644 gdb/testsuite/gdb.chill/tuples.ch create mode 100644 gdb/testsuite/gdb.chill/tuples.exp create mode 100644 gdb/testsuite/gdb.disasm/Makefile.in create mode 100644 gdb/testsuite/gdb.disasm/configure create mode 100644 gdb/testsuite/gdb.disasm/configure.in create mode 100644 gdb/testsuite/gdb.disasm/hppa.exp create mode 100644 gdb/testsuite/gdb.disasm/hppa.s create mode 100644 gdb/testsuite/gdb.disasm/mn10200.exp create mode 100644 gdb/testsuite/gdb.disasm/mn10200.s create mode 100644 gdb/testsuite/gdb.disasm/mn10300.exp create mode 100644 gdb/testsuite/gdb.disasm/mn10300.s create mode 100644 gdb/testsuite/gdb.disasm/sh3.exp create mode 100644 gdb/testsuite/gdb.disasm/sh3.s create mode 100644 gdb/testsuite/gdb.fortran/exprs.exp create mode 100644 gdb/testsuite/gdb.fortran/types.exp create mode 100644 gdb/testsuite/gdb.hp/Makefile.in create mode 100644 gdb/testsuite/gdb.hp/ambiguous.cc create mode 100644 gdb/testsuite/gdb.hp/ambiguous.exp create mode 100644 gdb/testsuite/gdb.hp/attach.c create mode 100644 gdb/testsuite/gdb.hp/attach.exp create mode 100644 gdb/testsuite/gdb.hp/attach2.c create mode 100644 gdb/testsuite/gdb.hp/attach2.exp create mode 100644 gdb/testsuite/gdb.hp/average.c create mode 100644 gdb/testsuite/gdb.hp/classes-hp.exp create mode 100644 gdb/testsuite/gdb.hp/compiler.c create mode 100644 gdb/testsuite/gdb.hp/compiler.cc create mode 100644 gdb/testsuite/gdb.hp/ctti-add.cc create mode 100644 gdb/testsuite/gdb.hp/ctti-add1.cc create mode 100644 gdb/testsuite/gdb.hp/ctti-add2.cc create mode 100644 gdb/testsuite/gdb.hp/ctti-add3.cc create mode 100644 gdb/testsuite/gdb.hp/ctti.exp create mode 100644 gdb/testsuite/gdb.hp/dbx.exp create mode 100644 gdb/testsuite/gdb.hp/exception.cc create mode 100644 gdb/testsuite/gdb.hp/exception.exp create mode 100644 gdb/testsuite/gdb.hp/execd-program.c create mode 100644 gdb/testsuite/gdb.hp/foll-exec.c create mode 100644 gdb/testsuite/gdb.hp/foll-exec.exp create mode 100644 gdb/testsuite/gdb.hp/foll-fork.c create mode 100644 gdb/testsuite/gdb.hp/foll-fork.exp create mode 100644 gdb/testsuite/gdb.hp/foll-vfork.c create mode 100644 gdb/testsuite/gdb.hp/foll-vfork.exp create mode 100644 gdb/testsuite/gdb.hp/gen-so-thresh.c create mode 100644 gdb/testsuite/gdb.hp/hwwatchbus.c create mode 100644 gdb/testsuite/gdb.hp/hwwatchbus.exp create mode 100644 gdb/testsuite/gdb.hp/inherit-hp.exp create mode 100644 gdb/testsuite/gdb.hp/misc-hp.cc create mode 100644 gdb/testsuite/gdb.hp/more-steps.c create mode 100644 gdb/testsuite/gdb.hp/more-steps.exp create mode 100644 gdb/testsuite/gdb.hp/namespace.cc create mode 100644 gdb/testsuite/gdb.hp/namespace.exp create mode 100644 gdb/testsuite/gdb.hp/optimize.c create mode 100644 gdb/testsuite/gdb.hp/optimize.exp create mode 100644 gdb/testsuite/gdb.hp/pxdb.c create mode 100644 gdb/testsuite/gdb.hp/pxdb.exp create mode 100644 gdb/testsuite/gdb.hp/quicksort.c create mode 100644 gdb/testsuite/gdb.hp/quicksort.exp create mode 100644 gdb/testsuite/gdb.hp/reg-test.exp create mode 100644 gdb/testsuite/gdb.hp/reg-test.s create mode 100644 gdb/testsuite/gdb.hp/run-hp.c create mode 100644 gdb/testsuite/gdb.hp/sized-enum.c create mode 100644 gdb/testsuite/gdb.hp/sized-enum.exp create mode 100644 gdb/testsuite/gdb.hp/so-thresh.exp create mode 100644 gdb/testsuite/gdb.hp/so-thresh.linkopts create mode 100644 gdb/testsuite/gdb.hp/so-thresh.mk create mode 100755 gdb/testsuite/gdb.hp/so-thresh.sh create mode 100644 gdb/testsuite/gdb.hp/start-stop.c create mode 100644 gdb/testsuite/gdb.hp/start-stop.exp create mode 100644 gdb/testsuite/gdb.hp/sum.c create mode 100644 gdb/testsuite/gdb.hp/templ-hp.cc create mode 100644 gdb/testsuite/gdb.hp/templ-hp.exp create mode 100644 gdb/testsuite/gdb.hp/thr-lib.c create mode 100644 gdb/testsuite/gdb.hp/thr-lib.exp create mode 100644 gdb/testsuite/gdb.hp/thr-lib.h create mode 100644 gdb/testsuite/gdb.hp/thr-liblib.c create mode 100644 gdb/testsuite/gdb.hp/thr-stg.exp create mode 100644 gdb/testsuite/gdb.hp/vforked-program.c create mode 100644 gdb/testsuite/gdb.hp/virtfun-hp.cc create mode 100644 gdb/testsuite/gdb.hp/virtfun-hp.exp create mode 100644 gdb/testsuite/gdb.hp/watch-cmd.exp create mode 100644 gdb/testsuite/gdb.hp/watch-hp.c create mode 100644 gdb/testsuite/gdb.hp/watch-hp.exp create mode 100644 gdb/testsuite/gdb.hp/xdb.c create mode 100644 gdb/testsuite/gdb.hp/xdb0.c create mode 100644 gdb/testsuite/gdb.hp/xdb0.h create mode 100644 gdb/testsuite/gdb.hp/xdb1.c create mode 100644 gdb/testsuite/gdb.hp/xdb1.exp create mode 100644 gdb/testsuite/gdb.hp/xdb2.exp create mode 100644 gdb/testsuite/gdb.hp/xdb3.exp create mode 100644 gdb/testsuite/gdb.stabs/Makefile.in create mode 100644 gdb/testsuite/gdb.stabs/aout.sed create mode 100755 gdb/testsuite/gdb.stabs/configure create mode 100644 gdb/testsuite/gdb.stabs/configure.in create mode 100644 gdb/testsuite/gdb.stabs/ecoff.sed create mode 100644 gdb/testsuite/gdb.stabs/hppa.sed create mode 100644 gdb/testsuite/gdb.stabs/weird.def create mode 100644 gdb/testsuite/gdb.stabs/weird.exp create mode 100644 gdb/testsuite/gdb.stabs/xcoff.sed create mode 100644 gdb/testsuite/gdb.threads/Makefile.in create mode 100644 gdb/testsuite/gdb.threads/config.in create mode 100755 gdb/testsuite/gdb.threads/configure create mode 100644 gdb/testsuite/gdb.threads/configure.in create mode 100644 gdb/testsuite/gdb.threads/pthreads.c create mode 100644 gdb/testsuite/gdb.threads/pthreads.exp create mode 100644 gdb/testsuite/gdb.threads/step.c create mode 100644 gdb/testsuite/gdb.threads/step.exp create mode 100644 gdb/testsuite/gdb.threads/step2.exp create mode 100644 gdb/testsuite/gdb.trace/Makefile.in create mode 100644 gdb/testsuite/gdb.trace/actions.c create mode 100644 gdb/testsuite/gdb.trace/actions.exp create mode 100644 gdb/testsuite/gdb.trace/backtrace.exp create mode 100644 gdb/testsuite/gdb.trace/circ.c create mode 100644 gdb/testsuite/gdb.trace/circ.exp create mode 100644 gdb/testsuite/gdb.trace/collection.c create mode 100644 gdb/testsuite/gdb.trace/collection.exp create mode 100755 gdb/testsuite/gdb.trace/configure create mode 100644 gdb/testsuite/gdb.trace/configure.in create mode 100644 gdb/testsuite/gdb.trace/deltrace.exp create mode 100644 gdb/testsuite/gdb.trace/gdb_c_test.c create mode 100644 gdb/testsuite/gdb.trace/infotrace.exp create mode 100644 gdb/testsuite/gdb.trace/limits.c create mode 100644 gdb/testsuite/gdb.trace/limits.exp create mode 100644 gdb/testsuite/gdb.trace/packetlen.exp create mode 100644 gdb/testsuite/gdb.trace/passc-dyn.exp create mode 100644 gdb/testsuite/gdb.trace/passcount.exp create mode 100644 gdb/testsuite/gdb.trace/report.exp create mode 100644 gdb/testsuite/gdb.trace/save-trace.exp create mode 100644 gdb/testsuite/gdb.trace/tfind.exp create mode 100644 gdb/testsuite/gdb.trace/tracecmd.exp create mode 100644 gdb/testsuite/gdb.trace/while-dyn.exp create mode 100644 gdb/testsuite/gdb.trace/while-stepping.exp create mode 100644 gdb/testsuite/lib/emc-support.exp create mode 100644 gdb/testsuite/lib/gdb.exp create mode 100644 gdb/testsuite/lib/trace-support.exp create mode 100644 gdb/thread.c create mode 100644 gdb/top.c create mode 100644 gdb/top.h create mode 100644 gdb/tracepoint.c create mode 100644 gdb/tracepoint.h create mode 100644 gdb/tui/ChangeLog create mode 100644 gdb/tui/Makefile.in create mode 100644 gdb/tui/tui.c create mode 100644 gdb/tui/tui.h create mode 100644 gdb/tui/tuiCommand.c create mode 100644 gdb/tui/tuiCommand.h create mode 100644 gdb/tui/tuiData.c create mode 100644 gdb/tui/tuiData.h create mode 100644 gdb/tui/tuiDataWin.c create mode 100644 gdb/tui/tuiDataWin.h create mode 100644 gdb/tui/tuiDisassem.c create mode 100644 gdb/tui/tuiDisassem.h create mode 100644 gdb/tui/tuiGeneralWin.c create mode 100644 gdb/tui/tuiGeneralWin.h create mode 100644 gdb/tui/tuiIO.c create mode 100644 gdb/tui/tuiIO.h create mode 100644 gdb/tui/tuiLayout.c create mode 100644 gdb/tui/tuiLayout.h create mode 100644 gdb/tui/tuiRegs.c create mode 100644 gdb/tui/tuiRegs.h create mode 100644 gdb/tui/tuiSource.c create mode 100644 gdb/tui/tuiSource.h create mode 100644 gdb/tui/tuiSourceWin.c create mode 100644 gdb/tui/tuiSourceWin.h create mode 100644 gdb/tui/tuiStack.c create mode 100644 gdb/tui/tuiStack.h create mode 100644 gdb/tui/tuiWin.c create mode 100644 gdb/tui/tuiWin.h create mode 100644 gdb/typeprint.c create mode 100644 gdb/typeprint.h create mode 100644 gdb/ultra3-nat.c create mode 100644 gdb/ultra3-xdep.c create mode 100644 gdb/umax-xdep.c create mode 100644 gdb/utils.c create mode 100644 gdb/v850-tdep.c create mode 100644 gdb/valarith.c create mode 100644 gdb/valops.c create mode 100644 gdb/valprint.c create mode 100644 gdb/valprint.h create mode 100644 gdb/value.h create mode 100644 gdb/values.c create mode 100644 gdb/vax-tdep.c create mode 100644 gdb/vx-share/README create mode 100644 gdb/vx-share/dbgRpcLib.h create mode 100644 gdb/vx-share/ptrace.h create mode 100644 gdb/vx-share/regPacket.h create mode 100644 gdb/vx-share/vxTypes.h create mode 100644 gdb/vx-share/vxWorks.h create mode 100644 gdb/vx-share/wait.h create mode 100644 gdb/vx-share/xdr_ld.c create mode 100644 gdb/vx-share/xdr_ld.h create mode 100644 gdb/vx-share/xdr_ptrace.c create mode 100644 gdb/vx-share/xdr_ptrace.h create mode 100644 gdb/vx-share/xdr_rdb.c create mode 100644 gdb/vx-share/xdr_rdb.h create mode 100644 gdb/w65-tdep.c create mode 100644 gdb/w89k-rom.c create mode 100644 gdb/win32-nat.c create mode 100644 gdb/xcoffread.c create mode 100644 gdb/xcoffsolib.c create mode 100644 gdb/xcoffsolib.h create mode 100644 gdb/xmodem.c create mode 100644 gdb/xmodem.h create mode 100644 gdb/z8k-tdep.c create mode 100644 mmalloc/COPYING.LIB create mode 100644 mmalloc/ChangeLog create mode 100644 mmalloc/Makefile.in create mode 100644 mmalloc/TODO create mode 100644 mmalloc/attach.c create mode 100755 mmalloc/configure create mode 100644 mmalloc/configure.in create mode 100644 mmalloc/detach.c create mode 100644 mmalloc/keys.c create mode 100644 mmalloc/mcalloc.c create mode 100644 mmalloc/mfree.c create mode 100644 mmalloc/mm.c create mode 100644 mmalloc/mmalloc.c create mode 100644 mmalloc/mmalloc.h create mode 100644 mmalloc/mmalloc.texi create mode 100644 mmalloc/mmap-sup.c create mode 100644 mmalloc/mmcheck.c create mode 100644 mmalloc/mmemalign.c create mode 100644 mmalloc/mmprivate.h create mode 100644 mmalloc/mmstats.c create mode 100644 mmalloc/mmtrace.awk create mode 100644 mmalloc/mmtrace.c create mode 100644 mmalloc/mrealloc.c create mode 100644 mmalloc/mvalloc.c create mode 100644 mmalloc/sbrk-sup.c create mode 100644 readline/ChangeLog create mode 100644 readline/MANIFEST.doc create mode 100644 readline/config.h.bot create mode 100644 readline/cross-build/cygwin.cache create mode 100644 readline/doc/ChangeLog create mode 100644 readline/doc/inc-hist.texi create mode 100644 sim/ChangeLog create mode 100644 sim/Makefile.in create mode 100644 sim/README-HACKING create mode 100644 sim/arm/COPYING create mode 100644 sim/arm/ChangeLog create mode 100644 sim/arm/Makefile.in create mode 100644 sim/arm/README.Cygnus create mode 100644 sim/arm/acconfig.h create mode 100644 sim/arm/armcopro.c create mode 100644 sim/arm/armdefs.h create mode 100644 sim/arm/armemu.c create mode 100644 sim/arm/armemu.h create mode 100644 sim/arm/armfpe.h create mode 100644 sim/arm/arminit.c create mode 100644 sim/arm/armopts.h create mode 100644 sim/arm/armos.c create mode 100644 sim/arm/armos.h create mode 100644 sim/arm/armrdi.c create mode 100644 sim/arm/armsupp.c create mode 100644 sim/arm/armvirt.c create mode 100644 sim/arm/bag.c create mode 100644 sim/arm/bag.h create mode 100644 sim/arm/communicate.c create mode 100644 sim/arm/communicate.h create mode 100644 sim/arm/config.in create mode 100755 sim/arm/configure create mode 100644 sim/arm/configure.in create mode 100644 sim/arm/dbg_conf.h create mode 100644 sim/arm/dbg_cp.h create mode 100644 sim/arm/dbg_hif.h create mode 100644 sim/arm/dbg_rdi.h create mode 100644 sim/arm/gdbhost.c create mode 100644 sim/arm/gdbhost.h create mode 100644 sim/arm/kid.c create mode 100644 sim/arm/main.c create mode 100644 sim/arm/parent.c create mode 100644 sim/arm/tconfig.in create mode 100644 sim/arm/thumbemu.c create mode 100644 sim/arm/wrapper.c create mode 100644 sim/common/ChangeLog create mode 100644 sim/common/Make-common.in create mode 100644 sim/common/Makefile.in create mode 100644 sim/common/acconfig.h create mode 100644 sim/common/aclocal.m4 create mode 100644 sim/common/callback.c create mode 100644 sim/common/cgen-cpu.h create mode 100644 sim/common/cgen-defs.h create mode 100644 sim/common/cgen-engine.h create mode 100644 sim/common/cgen-mem.h create mode 100644 sim/common/cgen-ops.h create mode 100644 sim/common/cgen-run.c create mode 100644 sim/common/cgen-scache.c create mode 100644 sim/common/cgen-scache.h create mode 100644 sim/common/cgen-sim.h create mode 100644 sim/common/cgen-trace.c create mode 100644 sim/common/cgen-trace.h create mode 100644 sim/common/cgen-types.h create mode 100644 sim/common/cgen-utils.c create mode 100644 sim/common/config.in create mode 100755 sim/common/configure create mode 100644 sim/common/configure.in create mode 100644 sim/common/dv-core.c create mode 100644 sim/common/dv-glue.c create mode 100644 sim/common/dv-pal.c create mode 100644 sim/common/dv-sockser.c create mode 100644 sim/common/dv-sockser.h create mode 100644 sim/common/gdbinit.in create mode 100644 sim/common/genmloop.sh create mode 100644 sim/common/gennltvals.sh create mode 100644 sim/common/gentmap.c create mode 100644 sim/common/gentvals.sh create mode 100644 sim/common/hw-alloc.c create mode 100644 sim/common/hw-alloc.h create mode 100644 sim/common/hw-base.c create mode 100644 sim/common/hw-base.h create mode 100644 sim/common/hw-device.c create mode 100644 sim/common/hw-device.h create mode 100644 sim/common/hw-events.c create mode 100644 sim/common/hw-events.h create mode 100644 sim/common/hw-handles.c create mode 100644 sim/common/hw-handles.h create mode 100644 sim/common/hw-instances.c create mode 100644 sim/common/hw-instances.h create mode 100644 sim/common/hw-main.h create mode 100644 sim/common/hw-ports.c create mode 100644 sim/common/hw-ports.h create mode 100644 sim/common/hw-properties.c create mode 100644 sim/common/hw-properties.h create mode 100644 sim/common/hw-tree.c create mode 100644 sim/common/hw-tree.h create mode 100644 sim/common/nltvals.def create mode 100644 sim/common/nrun.c create mode 100644 sim/common/run.1 create mode 100644 sim/common/run.c create mode 100644 sim/common/sim-abort.c create mode 100644 sim/common/sim-alu.h create mode 100644 sim/common/sim-arange.c create mode 100644 sim/common/sim-arange.h create mode 100644 sim/common/sim-assert.h create mode 100644 sim/common/sim-base.h create mode 100644 sim/common/sim-basics.h create mode 100644 sim/common/sim-bits.c create mode 100644 sim/common/sim-bits.h create mode 100644 sim/common/sim-break.c create mode 100644 sim/common/sim-break.h create mode 100644 sim/common/sim-config.c create mode 100644 sim/common/sim-config.h create mode 100644 sim/common/sim-core.c create mode 100644 sim/common/sim-core.h create mode 100644 sim/common/sim-cpu.c create mode 100644 sim/common/sim-cpu.h create mode 100644 sim/common/sim-endian.c create mode 100644 sim/common/sim-endian.h create mode 100644 sim/common/sim-engine.c create mode 100644 sim/common/sim-engine.h create mode 100644 sim/common/sim-events.c create mode 100644 sim/common/sim-events.h create mode 100644 sim/common/sim-fpu.c create mode 100644 sim/common/sim-fpu.h create mode 100644 sim/common/sim-hload.c create mode 100644 sim/common/sim-hrw.c create mode 100644 sim/common/sim-hw.c create mode 100644 sim/common/sim-hw.h create mode 100644 sim/common/sim-info.c create mode 100644 sim/common/sim-inline.c create mode 100644 sim/common/sim-inline.h create mode 100644 sim/common/sim-io.c create mode 100644 sim/common/sim-io.h create mode 100644 sim/common/sim-load.c create mode 100644 sim/common/sim-memopt.c create mode 100644 sim/common/sim-memopt.h create mode 100644 sim/common/sim-model.c create mode 100644 sim/common/sim-model.h create mode 100644 sim/common/sim-module.c create mode 100644 sim/common/sim-module.h create mode 100644 sim/common/sim-n-bits.h create mode 100644 sim/common/sim-n-core.h create mode 100644 sim/common/sim-n-endian.h create mode 100644 sim/common/sim-options.c create mode 100644 sim/common/sim-options.h create mode 100644 sim/common/sim-profile.c create mode 100644 sim/common/sim-profile.h create mode 100644 sim/common/sim-reason.c create mode 100644 sim/common/sim-reg.c create mode 100644 sim/common/sim-resume.c create mode 100644 sim/common/sim-run.c create mode 100644 sim/common/sim-signal.c create mode 100644 sim/common/sim-signal.h create mode 100644 sim/common/sim-stop.c create mode 100644 sim/common/sim-trace.c create mode 100644 sim/common/sim-trace.h create mode 100644 sim/common/sim-types.h create mode 100644 sim/common/sim-utils.c create mode 100644 sim/common/sim-utils.h create mode 100644 sim/common/sim-watch.c create mode 100644 sim/common/sim-watch.h create mode 100644 sim/common/syscall.c create mode 100644 sim/common/tconfig.in create mode 100755 sim/configure create mode 100644 sim/configure.in create mode 100644 sim/d10v/ChangeLog create mode 100644 sim/d10v/Makefile.in create mode 100644 sim/d10v/acconfig.h create mode 100644 sim/d10v/config.in create mode 100755 sim/d10v/configure create mode 100644 sim/d10v/configure.in create mode 100644 sim/d10v/d10v_sim.h create mode 100644 sim/d10v/endian.c create mode 100644 sim/d10v/gencode.c create mode 100644 sim/d10v/interp.c create mode 100644 sim/d10v/simops.c create mode 100644 sim/d30v/ChangeLog create mode 100644 sim/d30v/Makefile.in create mode 100644 sim/d30v/acconfig.h create mode 100644 sim/d30v/alu.h create mode 100644 sim/d30v/config.in create mode 100755 sim/d30v/configure create mode 100644 sim/d30v/configure.in create mode 100644 sim/d30v/cpu.c create mode 100644 sim/d30v/cpu.h create mode 100644 sim/d30v/d30v-insns create mode 100644 sim/d30v/dc-short create mode 100644 sim/d30v/engine.c create mode 100644 sim/d30v/ic-d30v create mode 100644 sim/d30v/sim-calls.c create mode 100644 sim/d30v/sim-main.h create mode 100644 sim/d30v/tconfig.in create mode 100644 sim/erc32/ChangeLog create mode 100644 sim/erc32/Makefile.in create mode 100644 sim/erc32/NEWS create mode 100644 sim/erc32/README.erc32 create mode 100644 sim/erc32/README.gdb create mode 100644 sim/erc32/README.sis create mode 100644 sim/erc32/acconfig.h create mode 100644 sim/erc32/config.in create mode 100755 sim/erc32/configure create mode 100644 sim/erc32/configure.in create mode 100644 sim/erc32/end.c create mode 100644 sim/erc32/erc32.c create mode 100644 sim/erc32/exec.c create mode 100644 sim/erc32/float.c create mode 100644 sim/erc32/func.c create mode 100644 sim/erc32/help.c create mode 100644 sim/erc32/interf.c create mode 100644 sim/erc32/sis.c create mode 100644 sim/erc32/sis.h create mode 100644 sim/erc32/startsim create mode 100644 sim/fr30/ChangeLog create mode 100644 sim/fr30/Makefile.in create mode 100644 sim/fr30/README create mode 100644 sim/fr30/TODO create mode 100644 sim/fr30/arch.c create mode 100644 sim/fr30/arch.h create mode 100644 sim/fr30/config.in create mode 100644 sim/fr30/configure create mode 100644 sim/fr30/configure.in create mode 100644 sim/fr30/cpu.c create mode 100644 sim/fr30/cpu.h create mode 100644 sim/fr30/cpuall.h create mode 100644 sim/fr30/decode.c create mode 100644 sim/fr30/decode.h create mode 100644 sim/fr30/devices.c create mode 100644 sim/fr30/fr30-sim.h create mode 100644 sim/fr30/fr30.c create mode 100644 sim/fr30/mloop.in create mode 100644 sim/fr30/model.c create mode 100644 sim/fr30/sem-switch.c create mode 100644 sim/fr30/sem.c create mode 100644 sim/fr30/sim-if.c create mode 100644 sim/fr30/sim-main.h create mode 100644 sim/fr30/tconfig.in create mode 100644 sim/fr30/traps.c create mode 100644 sim/h8300/ChangeLog create mode 100644 sim/h8300/Makefile.in create mode 100644 sim/h8300/acconfig.h create mode 100644 sim/h8300/compile.c create mode 100644 sim/h8300/config.in create mode 100755 sim/h8300/configure create mode 100644 sim/h8300/configure.in create mode 100644 sim/h8300/inst.h create mode 100644 sim/h8300/tconfig.in create mode 100644 sim/h8300/writecode.c create mode 100644 sim/h8500/ChangeLog create mode 100644 sim/h8500/Makefile.in create mode 100644 sim/h8500/acconfig.h create mode 100644 sim/h8500/compile.c create mode 100644 sim/h8500/config.in create mode 100755 sim/h8500/configure create mode 100644 sim/h8500/configure.in create mode 100644 sim/h8500/inst.h create mode 100644 sim/h8500/tconfig.in create mode 100644 sim/i960/ChangeLog create mode 100644 sim/i960/Makefile.in create mode 100644 sim/i960/README create mode 100644 sim/i960/TODO create mode 100644 sim/i960/acconfig.h create mode 100644 sim/i960/arch.c create mode 100644 sim/i960/arch.h create mode 100644 sim/i960/config.in create mode 100755 sim/i960/configure create mode 100644 sim/i960/configure.in create mode 100644 sim/i960/cpu.c create mode 100644 sim/i960/cpu.h create mode 100644 sim/i960/cpuall.h create mode 100644 sim/i960/decode.c create mode 100644 sim/i960/decode.h create mode 100644 sim/i960/devices.c create mode 100644 sim/i960/i960-desc.c create mode 100644 sim/i960/i960-desc.h create mode 100644 sim/i960/i960-opc.h create mode 100644 sim/i960/i960-sim.h create mode 100644 sim/i960/i960.c create mode 100644 sim/i960/mloop.in create mode 100644 sim/i960/model.c create mode 100644 sim/i960/sem-switch.c create mode 100644 sim/i960/sem.c create mode 100644 sim/i960/sim-if.c create mode 100644 sim/i960/sim-main.h create mode 100644 sim/i960/tconfig.in create mode 100644 sim/i960/traps.c create mode 100644 sim/igen/ChangeLog create mode 100644 sim/igen/Makefile.in create mode 100644 sim/igen/acconfig.h create mode 100644 sim/igen/config.in create mode 100755 sim/igen/configure create mode 100644 sim/igen/configure.in create mode 100644 sim/igen/filter.c create mode 100644 sim/igen/filter.h create mode 100644 sim/igen/filter_host.c create mode 100644 sim/igen/filter_host.h create mode 100644 sim/igen/gen-engine.c create mode 100644 sim/igen/gen-engine.h create mode 100644 sim/igen/gen-icache.c create mode 100644 sim/igen/gen-icache.h create mode 100644 sim/igen/gen-idecode.c create mode 100644 sim/igen/gen-idecode.h create mode 100644 sim/igen/gen-itable.c create mode 100644 sim/igen/gen-itable.h create mode 100644 sim/igen/gen-model.c create mode 100644 sim/igen/gen-model.h create mode 100644 sim/igen/gen-semantics.c create mode 100644 sim/igen/gen-semantics.h create mode 100644 sim/igen/gen-support.c create mode 100644 sim/igen/gen-support.h create mode 100644 sim/igen/gen.c create mode 100644 sim/igen/gen.h create mode 100644 sim/igen/igen.c create mode 100644 sim/igen/igen.h create mode 100644 sim/igen/ld-cache.c create mode 100644 sim/igen/ld-cache.h create mode 100644 sim/igen/ld-decode.c create mode 100644 sim/igen/ld-decode.h create mode 100644 sim/igen/ld-insn.c create mode 100644 sim/igen/ld-insn.h create mode 100644 sim/igen/lf.c create mode 100644 sim/igen/lf.h create mode 100644 sim/igen/misc.c create mode 100644 sim/igen/misc.h create mode 100644 sim/igen/table.c create mode 100644 sim/igen/table.h create mode 100644 sim/m32r/ChangeLog create mode 100644 sim/m32r/Makefile.in create mode 100644 sim/m32r/README create mode 100644 sim/m32r/TODO create mode 100644 sim/m32r/acconfig.h create mode 100644 sim/m32r/arch.c create mode 100644 sim/m32r/arch.h create mode 100644 sim/m32r/config.in create mode 100755 sim/m32r/configure create mode 100644 sim/m32r/configure.in create mode 100644 sim/m32r/cpu.c create mode 100644 sim/m32r/cpu.h create mode 100644 sim/m32r/cpuall.h create mode 100644 sim/m32r/decode.c create mode 100644 sim/m32r/decode.h create mode 100644 sim/m32r/devices.c create mode 100644 sim/m32r/m32r-sim.h create mode 100644 sim/m32r/m32r.c create mode 100644 sim/m32r/mloop.in create mode 100644 sim/m32r/model.c create mode 100644 sim/m32r/sem-switch.c create mode 100644 sim/m32r/sem.c create mode 100644 sim/m32r/sim-if.c create mode 100644 sim/m32r/sim-main.h create mode 100644 sim/m32r/tconfig.in create mode 100644 sim/m32r/traps.c create mode 100644 sim/mips/ChangeLog create mode 100644 sim/mips/Makefile.in create mode 100644 sim/mips/acconfig.h create mode 100644 sim/mips/config.in create mode 100755 sim/mips/configure create mode 100644 sim/mips/configure.in create mode 100644 sim/mips/dv-tx3904cpu.c create mode 100644 sim/mips/dv-tx3904irc.c create mode 100644 sim/mips/dv-tx3904sio.c create mode 100644 sim/mips/dv-tx3904tmr.c create mode 100644 sim/mips/interp.c create mode 100644 sim/mips/m16.dc create mode 100644 sim/mips/m16.igen create mode 100644 sim/mips/m16run.c create mode 100644 sim/mips/mips.dc create mode 100644 sim/mips/mips.igen create mode 100644 sim/mips/sim-main.c create mode 100644 sim/mips/sim-main.h create mode 100644 sim/mips/tconfig.in create mode 100644 sim/mips/tx.igen create mode 100644 sim/mips/vr.igen create mode 100644 sim/mn10200/ChangeLog create mode 100644 sim/mn10200/Makefile.in create mode 100644 sim/mn10200/acconfig.h create mode 100644 sim/mn10200/config.in create mode 100755 sim/mn10200/configure create mode 100644 sim/mn10200/configure.in create mode 100644 sim/mn10200/gencode.c create mode 100644 sim/mn10200/interp.c create mode 100644 sim/mn10200/mn10200_sim.h create mode 100644 sim/mn10200/simops.c create mode 100644 sim/mn10300/ChangeLog create mode 100644 sim/mn10300/Makefile.in create mode 100644 sim/mn10300/acconfig.h create mode 100644 sim/mn10300/config.in create mode 100755 sim/mn10300/configure create mode 100644 sim/mn10300/configure.in create mode 100644 sim/mn10300/dv-mn103cpu.c create mode 100644 sim/mn10300/dv-mn103int.c create mode 100644 sim/mn10300/dv-mn103iop.c create mode 100644 sim/mn10300/dv-mn103ser.c create mode 100644 sim/mn10300/dv-mn103tim.c create mode 100644 sim/mn10300/gencode.c create mode 100644 sim/mn10300/interp.c create mode 100644 sim/mn10300/mn10300.dc create mode 100644 sim/mn10300/mn10300.igen create mode 100644 sim/mn10300/mn10300_sim.h create mode 100644 sim/mn10300/op_utils.c create mode 100644 sim/mn10300/sim-main.c create mode 100644 sim/mn10300/sim-main.h create mode 100644 sim/mn10300/simops.c create mode 100644 sim/mn10300/tconfig.in create mode 100644 sim/ppc/.gdbinit create mode 100644 sim/ppc/BUGS create mode 100644 sim/ppc/COPYING create mode 100644 sim/ppc/COPYING.LIB create mode 100644 sim/ppc/ChangeLog create mode 100644 sim/ppc/ChangeLog.00 create mode 100644 sim/ppc/INSTALL create mode 100644 sim/ppc/Makefile.in create mode 100644 sim/ppc/README create mode 100644 sim/ppc/RUN create mode 100644 sim/ppc/acconfig.h create mode 100644 sim/ppc/aclocal.m4 create mode 100644 sim/ppc/basics.h create mode 100644 sim/ppc/bits.c create mode 100644 sim/ppc/bits.h create mode 100644 sim/ppc/cap.c create mode 100644 sim/ppc/cap.h create mode 100644 sim/ppc/config.in create mode 100755 sim/ppc/configure create mode 100644 sim/ppc/configure.in create mode 100644 sim/ppc/corefile-n.h create mode 100644 sim/ppc/corefile.c create mode 100644 sim/ppc/corefile.h create mode 100644 sim/ppc/cpu.c create mode 100644 sim/ppc/cpu.h create mode 100644 sim/ppc/dc-complex create mode 100644 sim/ppc/dc-simple create mode 100644 sim/ppc/dc-stupid create mode 100644 sim/ppc/dc-test.01 create mode 100644 sim/ppc/dc-test.02 create mode 100644 sim/ppc/debug.c create mode 100644 sim/ppc/debug.h create mode 100644 sim/ppc/device.c create mode 100644 sim/ppc/device.h create mode 100644 sim/ppc/device_table.c create mode 100644 sim/ppc/device_table.h create mode 100644 sim/ppc/dgen.c create mode 100644 sim/ppc/double.c create mode 100644 sim/ppc/dp-bit.c create mode 100644 sim/ppc/emul_bugapi.c create mode 100644 sim/ppc/emul_bugapi.h create mode 100644 sim/ppc/emul_chirp.c create mode 100644 sim/ppc/emul_chirp.h create mode 100644 sim/ppc/emul_generic.c create mode 100644 sim/ppc/emul_generic.h create mode 100644 sim/ppc/emul_netbsd.c create mode 100644 sim/ppc/emul_netbsd.h create mode 100644 sim/ppc/emul_unix.c create mode 100644 sim/ppc/emul_unix.h create mode 100644 sim/ppc/events.c create mode 100644 sim/ppc/events.h create mode 100644 sim/ppc/filter.c create mode 100644 sim/ppc/filter.h create mode 100644 sim/ppc/filter_filename.c create mode 100644 sim/ppc/filter_filename.h create mode 100644 sim/ppc/gen-icache.c create mode 100644 sim/ppc/gen-icache.h create mode 100644 sim/ppc/gen-idecode.c create mode 100644 sim/ppc/gen-idecode.h create mode 100644 sim/ppc/gen-itable.c create mode 100644 sim/ppc/gen-itable.h create mode 100644 sim/ppc/gen-model.c create mode 100644 sim/ppc/gen-model.h create mode 100644 sim/ppc/gen-semantics.c create mode 100644 sim/ppc/gen-semantics.h create mode 100644 sim/ppc/gen-support.c create mode 100644 sim/ppc/gen-support.h create mode 100644 sim/ppc/hw_com.c create mode 100644 sim/ppc/hw_core.c create mode 100644 sim/ppc/hw_cpu.c create mode 100644 sim/ppc/hw_cpu.h create mode 100644 sim/ppc/hw_disk.c create mode 100644 sim/ppc/hw_eeprom.c create mode 100644 sim/ppc/hw_glue.c create mode 100644 sim/ppc/hw_htab.c create mode 100644 sim/ppc/hw_ide.c create mode 100644 sim/ppc/hw_init.c create mode 100644 sim/ppc/hw_iobus.c create mode 100644 sim/ppc/hw_memory.c create mode 100644 sim/ppc/hw_nvram.c create mode 100644 sim/ppc/hw_opic.c create mode 100644 sim/ppc/hw_pal.c create mode 100644 sim/ppc/hw_phb.c create mode 100644 sim/ppc/hw_phb.h create mode 100644 sim/ppc/hw_register.c create mode 100644 sim/ppc/hw_trace.c create mode 100644 sim/ppc/hw_vm.c create mode 100644 sim/ppc/idecode_branch.h create mode 100644 sim/ppc/idecode_expression.h create mode 100644 sim/ppc/idecode_fields.h create mode 100644 sim/ppc/igen.c create mode 100644 sim/ppc/igen.h create mode 100644 sim/ppc/inline.c create mode 100644 sim/ppc/inline.h create mode 100644 sim/ppc/interrupts.c create mode 100644 sim/ppc/interrupts.h create mode 100644 sim/ppc/ld-cache.c create mode 100644 sim/ppc/ld-cache.h create mode 100644 sim/ppc/ld-decode.c create mode 100644 sim/ppc/ld-decode.h create mode 100644 sim/ppc/ld-insn.c create mode 100644 sim/ppc/ld-insn.h create mode 100644 sim/ppc/lf.c create mode 100644 sim/ppc/lf.h create mode 100644 sim/ppc/main.c create mode 100644 sim/ppc/misc.c create mode 100644 sim/ppc/misc.h create mode 100644 sim/ppc/mon.c create mode 100644 sim/ppc/mon.h create mode 100644 sim/ppc/options.c create mode 100644 sim/ppc/options.h create mode 100644 sim/ppc/os_emul.c create mode 100644 sim/ppc/os_emul.h create mode 100644 sim/ppc/pk_disklabel.c create mode 100644 sim/ppc/ppc-cache-rules create mode 100644 sim/ppc/ppc-instructions create mode 100644 sim/ppc/ppc-spr-table create mode 100644 sim/ppc/ppc.mt create mode 100644 sim/ppc/psim.c create mode 100644 sim/ppc/psim.h create mode 100644 sim/ppc/psim.texinfo create mode 100644 sim/ppc/registers.c create mode 100644 sim/ppc/registers.h create mode 100644 sim/ppc/sim-endian-n.h create mode 100644 sim/ppc/sim-endian.c create mode 100644 sim/ppc/sim-endian.h create mode 100644 sim/ppc/sim_callbacks.h create mode 100644 sim/ppc/sim_calls.c create mode 100644 sim/ppc/std-config.h create mode 100644 sim/ppc/table.c create mode 100644 sim/ppc/table.h create mode 100644 sim/ppc/tree.c create mode 100644 sim/ppc/tree.h create mode 100644 sim/ppc/vm.c create mode 100644 sim/ppc/vm.h create mode 100644 sim/ppc/vm_n.h create mode 100644 sim/ppc/words.h create mode 100644 sim/sh/ChangeLog create mode 100644 sim/sh/Makefile.in create mode 100644 sim/sh/acconfig.h create mode 100644 sim/sh/config.in create mode 100755 sim/sh/configure create mode 100644 sim/sh/configure.in create mode 100644 sim/sh/gencode.c create mode 100644 sim/sh/interp.c create mode 100644 sim/sh/syscall.h create mode 100644 sim/sh/tconfig.in create mode 100644 sim/testsuite/ChangeLog create mode 100644 sim/testsuite/Makefile.in create mode 100644 sim/testsuite/common/Make-common.in create mode 100644 sim/testsuite/common/Makefile.in create mode 100644 sim/testsuite/common/alu-n-tst.h create mode 100644 sim/testsuite/common/alu-tst.c create mode 100644 sim/testsuite/common/bits-gen.c create mode 100644 sim/testsuite/common/bits-tst.c create mode 100644 sim/testsuite/common/fpu-tst.c create mode 100644 sim/testsuite/config/default.exp create mode 100755 sim/testsuite/configure create mode 100644 sim/testsuite/configure.in create mode 100644 sim/testsuite/d10v-elf/ChangeLog create mode 100644 sim/testsuite/d10v-elf/Makefile.in create mode 100755 sim/testsuite/d10v-elf/configure create mode 100644 sim/testsuite/d10v-elf/configure.in create mode 100644 sim/testsuite/d10v-elf/exit47.s create mode 100644 sim/testsuite/d10v-elf/hello.s create mode 100644 sim/testsuite/d10v-elf/loop.s create mode 100644 sim/testsuite/d10v-elf/t-dbt.s create mode 100644 sim/testsuite/d10v-elf/t-mac.s create mode 100644 sim/testsuite/d10v-elf/t-macros.i create mode 100644 sim/testsuite/d10v-elf/t-msbu.s create mode 100644 sim/testsuite/d10v-elf/t-mulxu.s create mode 100644 sim/testsuite/d10v-elf/t-mvtac.s create mode 100644 sim/testsuite/d10v-elf/t-mvtc.s create mode 100644 sim/testsuite/d10v-elf/t-rac.s create mode 100644 sim/testsuite/d10v-elf/t-rachi.s create mode 100644 sim/testsuite/d10v-elf/t-rdt.s create mode 100644 sim/testsuite/d10v-elf/t-rep.s create mode 100644 sim/testsuite/d10v-elf/t-rte.s create mode 100644 sim/testsuite/d10v-elf/t-sadd.s create mode 100644 sim/testsuite/d10v-elf/t-sp.s create mode 100644 sim/testsuite/d10v-elf/t-sub.s create mode 100644 sim/testsuite/d10v-elf/t-sub2w.s create mode 100644 sim/testsuite/d10v-elf/t-subi.s create mode 100644 sim/testsuite/d10v-elf/t-trap.s create mode 100644 sim/testsuite/d30v-elf/ChangeLog create mode 100644 sim/testsuite/d30v-elf/Makefile.in create mode 100644 sim/testsuite/d30v-elf/br-bra.S create mode 100644 sim/testsuite/d30v-elf/br-bratnz.S create mode 100644 sim/testsuite/d30v-elf/br-bratzr.S create mode 100644 sim/testsuite/d30v-elf/br-bsr.S create mode 100644 sim/testsuite/d30v-elf/br-dbra.S create mode 100644 sim/testsuite/d30v-elf/br-djmp.S create mode 100644 sim/testsuite/d30v-elf/br-djsr.S create mode 100755 sim/testsuite/d30v-elf/configure create mode 100644 sim/testsuite/d30v-elf/configure.in create mode 100644 sim/testsuite/d30v-elf/do-2wordops.S create mode 100644 sim/testsuite/d30v-elf/do-flags.S create mode 100644 sim/testsuite/d30v-elf/do-shifts.S create mode 100644 sim/testsuite/d30v-elf/em-e0.S create mode 100644 sim/testsuite/d30v-elf/em-e47.S create mode 100644 sim/testsuite/d30v-elf/em-pchr.S create mode 100644 sim/testsuite/d30v-elf/em-pstr.S create mode 100644 sim/testsuite/d30v-elf/exit47.s create mode 100644 sim/testsuite/d30v-elf/hello.s create mode 100644 sim/testsuite/d30v-elf/loop.s create mode 100644 sim/testsuite/d30v-elf/ls-ld2h.S create mode 100644 sim/testsuite/d30v-elf/ls-ld2w.S create mode 100644 sim/testsuite/d30v-elf/ls-ld4bh.S create mode 100644 sim/testsuite/d30v-elf/ls-ld4bhu.S create mode 100644 sim/testsuite/d30v-elf/ls-ldb.S create mode 100644 sim/testsuite/d30v-elf/ls-ldbu.S create mode 100644 sim/testsuite/d30v-elf/ls-ldh.S create mode 100644 sim/testsuite/d30v-elf/ls-ldhh.S create mode 100644 sim/testsuite/d30v-elf/ls-ldhu.S create mode 100644 sim/testsuite/d30v-elf/ls-ldw.S create mode 100644 sim/testsuite/d30v-elf/ls-modaddr.S create mode 100644 sim/testsuite/d30v-elf/ls-moddec.S create mode 100644 sim/testsuite/d30v-elf/ls-modinc.S create mode 100644 sim/testsuite/d30v-elf/ls-st2h.S create mode 100644 sim/testsuite/d30v-elf/ls-st2w.S create mode 100644 sim/testsuite/d30v-elf/ls-st4hb.S create mode 100644 sim/testsuite/d30v-elf/ls-stb.S create mode 100644 sim/testsuite/d30v-elf/ls-sth.S create mode 100644 sim/testsuite/d30v-elf/ls-sthh.S create mode 100644 sim/testsuite/d30v-elf/ls-stw.S create mode 100644 sim/testsuite/d30v-elf/os-dbt.S create mode 100644 sim/testsuite/d30v-elf/tick.s create mode 100644 sim/testsuite/d30v-elf/trap.S create mode 100644 sim/testsuite/fr30-elf/ChangeLog create mode 100644 sim/testsuite/fr30-elf/Makefile.in create mode 100755 sim/testsuite/fr30-elf/configure create mode 100644 sim/testsuite/fr30-elf/configure.in create mode 100644 sim/testsuite/fr30-elf/exit47.s create mode 100644 sim/testsuite/fr30-elf/hello.s create mode 100644 sim/testsuite/fr30-elf/loop.s create mode 100644 sim/testsuite/lib/sim-defs.exp create mode 100644 sim/testsuite/m32r-elf/ChangeLog create mode 100644 sim/testsuite/m32r-elf/Makefile.in create mode 100755 sim/testsuite/m32r-elf/configure create mode 100644 sim/testsuite/m32r-elf/configure.in create mode 100644 sim/testsuite/m32r-elf/exit47.s create mode 100644 sim/testsuite/m32r-elf/hello.s create mode 100644 sim/testsuite/m32r-elf/loop.s create mode 100644 sim/testsuite/mips64el-elf/ChangeLog create mode 100644 sim/testsuite/mips64el-elf/Makefile.in create mode 100755 sim/testsuite/mips64el-elf/configure create mode 100644 sim/testsuite/mips64el-elf/configure.in create mode 100644 sim/testsuite/sim/fr30/add.cgs create mode 100644 sim/testsuite/sim/fr30/add.ms create mode 100644 sim/testsuite/sim/fr30/add2.cgs create mode 100644 sim/testsuite/sim/fr30/addc.cgs create mode 100644 sim/testsuite/sim/fr30/addn.cgs create mode 100644 sim/testsuite/sim/fr30/addn2.cgs create mode 100644 sim/testsuite/sim/fr30/addsp.cgs create mode 100644 sim/testsuite/sim/fr30/allinsn.exp create mode 100644 sim/testsuite/sim/fr30/and.cgs create mode 100644 sim/testsuite/sim/fr30/andb.cgs create mode 100644 sim/testsuite/sim/fr30/andccr.cgs create mode 100644 sim/testsuite/sim/fr30/andh.cgs create mode 100644 sim/testsuite/sim/fr30/asr.cgs create mode 100644 sim/testsuite/sim/fr30/asr2.cgs create mode 100644 sim/testsuite/sim/fr30/bandh.cgs create mode 100644 sim/testsuite/sim/fr30/bandl.cgs create mode 100644 sim/testsuite/sim/fr30/bc.cgs create mode 100644 sim/testsuite/sim/fr30/beorh.cgs create mode 100644 sim/testsuite/sim/fr30/beorl.cgs create mode 100644 sim/testsuite/sim/fr30/beq.cgs create mode 100644 sim/testsuite/sim/fr30/bge.cgs create mode 100644 sim/testsuite/sim/fr30/bgt.cgs create mode 100644 sim/testsuite/sim/fr30/bhi.cgs create mode 100644 sim/testsuite/sim/fr30/ble.cgs create mode 100644 sim/testsuite/sim/fr30/bls.cgs create mode 100644 sim/testsuite/sim/fr30/blt.cgs create mode 100644 sim/testsuite/sim/fr30/bn.cgs create mode 100644 sim/testsuite/sim/fr30/bnc.cgs create mode 100644 sim/testsuite/sim/fr30/bne.cgs create mode 100644 sim/testsuite/sim/fr30/bno.cgs create mode 100644 sim/testsuite/sim/fr30/bnv.cgs create mode 100644 sim/testsuite/sim/fr30/borh.cgs create mode 100644 sim/testsuite/sim/fr30/borl.cgs create mode 100644 sim/testsuite/sim/fr30/bp.cgs create mode 100644 sim/testsuite/sim/fr30/bra.cgs create mode 100644 sim/testsuite/sim/fr30/btsth.cgs create mode 100644 sim/testsuite/sim/fr30/btstl.cgs create mode 100644 sim/testsuite/sim/fr30/bv.cgs create mode 100644 sim/testsuite/sim/fr30/call.cgs create mode 100644 sim/testsuite/sim/fr30/cmp.cgs create mode 100644 sim/testsuite/sim/fr30/cmp2.cgs create mode 100644 sim/testsuite/sim/fr30/copld.cgs create mode 100644 sim/testsuite/sim/fr30/copop.cgs create mode 100644 sim/testsuite/sim/fr30/copst.cgs create mode 100644 sim/testsuite/sim/fr30/copsv.cgs create mode 100644 sim/testsuite/sim/fr30/div.ms create mode 100644 sim/testsuite/sim/fr30/div0s.cgs create mode 100644 sim/testsuite/sim/fr30/div0u.cgs create mode 100644 sim/testsuite/sim/fr30/div1.cgs create mode 100644 sim/testsuite/sim/fr30/div2.cgs create mode 100644 sim/testsuite/sim/fr30/div3.cgs create mode 100644 sim/testsuite/sim/fr30/div4s.cgs create mode 100644 sim/testsuite/sim/fr30/dmov.cgs create mode 100644 sim/testsuite/sim/fr30/dmovb.cgs create mode 100644 sim/testsuite/sim/fr30/dmovh.cgs create mode 100644 sim/testsuite/sim/fr30/enter.cgs create mode 100644 sim/testsuite/sim/fr30/eor.cgs create mode 100644 sim/testsuite/sim/fr30/eorb.cgs create mode 100644 sim/testsuite/sim/fr30/eorh.cgs create mode 100644 sim/testsuite/sim/fr30/extsb.cgs create mode 100644 sim/testsuite/sim/fr30/extsh.cgs create mode 100644 sim/testsuite/sim/fr30/extub.cgs create mode 100644 sim/testsuite/sim/fr30/extuh.cgs create mode 100644 sim/testsuite/sim/fr30/hello.ms create mode 100644 sim/testsuite/sim/fr30/int.cgs create mode 100644 sim/testsuite/sim/fr30/inte.cgs create mode 100644 sim/testsuite/sim/fr30/jmp.cgs create mode 100644 sim/testsuite/sim/fr30/ld.cgs create mode 100644 sim/testsuite/sim/fr30/ldi20.cgs create mode 100644 sim/testsuite/sim/fr30/ldi32.cgs create mode 100644 sim/testsuite/sim/fr30/ldi8.cgs create mode 100644 sim/testsuite/sim/fr30/ldm0.cgs create mode 100644 sim/testsuite/sim/fr30/ldm1.cgs create mode 100644 sim/testsuite/sim/fr30/ldres.cgs create mode 100644 sim/testsuite/sim/fr30/ldub.cgs create mode 100644 sim/testsuite/sim/fr30/lduh.cgs create mode 100644 sim/testsuite/sim/fr30/leave.cgs create mode 100644 sim/testsuite/sim/fr30/lsl.cgs create mode 100644 sim/testsuite/sim/fr30/lsl2.cgs create mode 100644 sim/testsuite/sim/fr30/lsr.cgs create mode 100644 sim/testsuite/sim/fr30/lsr2.cgs create mode 100644 sim/testsuite/sim/fr30/misc.exp create mode 100644 sim/testsuite/sim/fr30/mov.cgs create mode 100644 sim/testsuite/sim/fr30/mul.cgs create mode 100644 sim/testsuite/sim/fr30/mulh.cgs create mode 100644 sim/testsuite/sim/fr30/mulu.cgs create mode 100644 sim/testsuite/sim/fr30/muluh.cgs create mode 100644 sim/testsuite/sim/fr30/nop.cgs create mode 100644 sim/testsuite/sim/fr30/or.cgs create mode 100644 sim/testsuite/sim/fr30/orb.cgs create mode 100644 sim/testsuite/sim/fr30/orccr.cgs create mode 100644 sim/testsuite/sim/fr30/orh.cgs create mode 100644 sim/testsuite/sim/fr30/ret.cgs create mode 100644 sim/testsuite/sim/fr30/reti.cgs create mode 100644 sim/testsuite/sim/fr30/st.cgs create mode 100644 sim/testsuite/sim/fr30/stb.cgs create mode 100644 sim/testsuite/sim/fr30/sth.cgs create mode 100644 sim/testsuite/sim/fr30/stilm.cgs create mode 100644 sim/testsuite/sim/fr30/stm0.cgs create mode 100644 sim/testsuite/sim/fr30/stm1.cgs create mode 100644 sim/testsuite/sim/fr30/stres.cgs create mode 100644 sim/testsuite/sim/fr30/sub.cgs create mode 100644 sim/testsuite/sim/fr30/subc.cgs create mode 100644 sim/testsuite/sim/fr30/subn.cgs create mode 100644 sim/testsuite/sim/fr30/testutils.inc create mode 100644 sim/testsuite/sim/fr30/xchb.cgs create mode 100644 sim/testsuite/sim/m32r/add.cgs create mode 100644 sim/testsuite/sim/m32r/add3.cgs create mode 100644 sim/testsuite/sim/m32r/addi.cgs create mode 100644 sim/testsuite/sim/m32r/addv.cgs create mode 100644 sim/testsuite/sim/m32r/addv3.cgs create mode 100644 sim/testsuite/sim/m32r/addx.cgs create mode 100644 sim/testsuite/sim/m32r/allinsn.exp create mode 100644 sim/testsuite/sim/m32r/and.cgs create mode 100644 sim/testsuite/sim/m32r/and3.cgs create mode 100644 sim/testsuite/sim/m32r/bc24.cgs create mode 100644 sim/testsuite/sim/m32r/bc8.cgs create mode 100644 sim/testsuite/sim/m32r/beq.cgs create mode 100644 sim/testsuite/sim/m32r/beqz.cgs create mode 100644 sim/testsuite/sim/m32r/bgez.cgs create mode 100644 sim/testsuite/sim/m32r/bgtz.cgs create mode 100644 sim/testsuite/sim/m32r/bl24.cgs create mode 100644 sim/testsuite/sim/m32r/bl8.cgs create mode 100644 sim/testsuite/sim/m32r/blez.cgs create mode 100644 sim/testsuite/sim/m32r/bltz.cgs create mode 100644 sim/testsuite/sim/m32r/bnc24.cgs create mode 100644 sim/testsuite/sim/m32r/bnc8.cgs create mode 100644 sim/testsuite/sim/m32r/bne.cgs create mode 100644 sim/testsuite/sim/m32r/bnez.cgs create mode 100644 sim/testsuite/sim/m32r/bra24.cgs create mode 100644 sim/testsuite/sim/m32r/bra8.cgs create mode 100644 sim/testsuite/sim/m32r/cmp.cgs create mode 100644 sim/testsuite/sim/m32r/cmpi.cgs create mode 100644 sim/testsuite/sim/m32r/cmpu.cgs create mode 100644 sim/testsuite/sim/m32r/cmpui.cgs create mode 100644 sim/testsuite/sim/m32r/div.cgs create mode 100644 sim/testsuite/sim/m32r/divu.cgs create mode 100644 sim/testsuite/sim/m32r/hello.ms create mode 100644 sim/testsuite/sim/m32r/hw-trap.ms create mode 100644 sim/testsuite/sim/m32r/jl.cgs create mode 100644 sim/testsuite/sim/m32r/jmp.cgs create mode 100644 sim/testsuite/sim/m32r/ld-d.cgs create mode 100644 sim/testsuite/sim/m32r/ld-plus.cgs create mode 100644 sim/testsuite/sim/m32r/ld.cgs create mode 100644 sim/testsuite/sim/m32r/ld24.cgs create mode 100644 sim/testsuite/sim/m32r/ldb-d.cgs create mode 100644 sim/testsuite/sim/m32r/ldb.cgs create mode 100644 sim/testsuite/sim/m32r/ldh-d.cgs create mode 100644 sim/testsuite/sim/m32r/ldh.cgs create mode 100644 sim/testsuite/sim/m32r/ldi16.cgs create mode 100644 sim/testsuite/sim/m32r/ldi8.cgs create mode 100644 sim/testsuite/sim/m32r/ldub-d.cgs create mode 100644 sim/testsuite/sim/m32r/ldub.cgs create mode 100644 sim/testsuite/sim/m32r/lduh-d.cgs create mode 100644 sim/testsuite/sim/m32r/lduh.cgs create mode 100644 sim/testsuite/sim/m32r/lock.cgs create mode 100644 sim/testsuite/sim/m32r/machi.cgs create mode 100644 sim/testsuite/sim/m32r/maclo.cgs create mode 100644 sim/testsuite/sim/m32r/macwhi.cgs create mode 100644 sim/testsuite/sim/m32r/macwlo.cgs create mode 100644 sim/testsuite/sim/m32r/misc.exp create mode 100644 sim/testsuite/sim/m32r/mul.cgs create mode 100644 sim/testsuite/sim/m32r/mulhi.cgs create mode 100644 sim/testsuite/sim/m32r/mullo.cgs create mode 100644 sim/testsuite/sim/m32r/mulwhi.cgs create mode 100644 sim/testsuite/sim/m32r/mulwlo.cgs create mode 100644 sim/testsuite/sim/m32r/mv.cgs create mode 100644 sim/testsuite/sim/m32r/mvfachi.cgs create mode 100644 sim/testsuite/sim/m32r/mvfaclo.cgs create mode 100644 sim/testsuite/sim/m32r/mvfacmi.cgs create mode 100644 sim/testsuite/sim/m32r/mvfc.cgs create mode 100644 sim/testsuite/sim/m32r/mvtachi.cgs create mode 100644 sim/testsuite/sim/m32r/mvtaclo.cgs create mode 100644 sim/testsuite/sim/m32r/mvtc.cgs create mode 100644 sim/testsuite/sim/m32r/neg.cgs create mode 100644 sim/testsuite/sim/m32r/nop.cgs create mode 100644 sim/testsuite/sim/m32r/not.cgs create mode 100644 sim/testsuite/sim/m32r/or.cgs create mode 100644 sim/testsuite/sim/m32r/or3.cgs create mode 100644 sim/testsuite/sim/m32r/rac.cgs create mode 100644 sim/testsuite/sim/m32r/rach.cgs create mode 100644 sim/testsuite/sim/m32r/rem.cgs create mode 100644 sim/testsuite/sim/m32r/remu.cgs create mode 100644 sim/testsuite/sim/m32r/rte.cgs create mode 100644 sim/testsuite/sim/m32r/seth.cgs create mode 100644 sim/testsuite/sim/m32r/sll.cgs create mode 100644 sim/testsuite/sim/m32r/sll3.cgs create mode 100644 sim/testsuite/sim/m32r/slli.cgs create mode 100644 sim/testsuite/sim/m32r/sra.cgs create mode 100644 sim/testsuite/sim/m32r/sra3.cgs create mode 100644 sim/testsuite/sim/m32r/srai.cgs create mode 100644 sim/testsuite/sim/m32r/srl.cgs create mode 100644 sim/testsuite/sim/m32r/srl3.cgs create mode 100644 sim/testsuite/sim/m32r/srli.cgs create mode 100644 sim/testsuite/sim/m32r/st-d.cgs create mode 100644 sim/testsuite/sim/m32r/st-minus.cgs create mode 100644 sim/testsuite/sim/m32r/st-plus.cgs create mode 100644 sim/testsuite/sim/m32r/st.cgs create mode 100644 sim/testsuite/sim/m32r/stb-d.cgs create mode 100644 sim/testsuite/sim/m32r/stb.cgs create mode 100644 sim/testsuite/sim/m32r/sth-d.cgs create mode 100644 sim/testsuite/sim/m32r/sth.cgs create mode 100644 sim/testsuite/sim/m32r/sub.cgs create mode 100644 sim/testsuite/sim/m32r/subv.cgs create mode 100644 sim/testsuite/sim/m32r/subx.cgs create mode 100644 sim/testsuite/sim/m32r/testutils.inc create mode 100644 sim/testsuite/sim/m32r/trap.cgs create mode 100644 sim/testsuite/sim/m32r/unlock.cgs create mode 100644 sim/testsuite/sim/m32r/uread16.ms create mode 100644 sim/testsuite/sim/m32r/uread32.ms create mode 100644 sim/testsuite/sim/m32r/uwrite16.ms create mode 100644 sim/testsuite/sim/m32r/uwrite32.ms create mode 100644 sim/testsuite/sim/m32r/xor.cgs create mode 100644 sim/testsuite/sim/m32r/xor3.cgs create mode 100644 sim/v850/ChangeLog create mode 100644 sim/v850/Makefile.in create mode 100644 sim/v850/acconfig.h create mode 100644 sim/v850/config.in create mode 100755 sim/v850/configure create mode 100644 sim/v850/configure.in create mode 100644 sim/v850/gencode.c create mode 100644 sim/v850/interp.c create mode 100644 sim/v850/sim-main.h create mode 100644 sim/v850/simops.c create mode 100644 sim/v850/v850-dc create mode 100644 sim/v850/v850.igen create mode 100644 sim/v850/v850_sim.h create mode 100644 sim/w65/ChangeLog create mode 100644 sim/w65/Makefile.in create mode 100644 sim/w65/acconfig.h create mode 100644 sim/w65/config.in create mode 100755 sim/w65/configure create mode 100644 sim/w65/configure.in create mode 100644 sim/w65/gencode.c create mode 100644 sim/w65/interp.c create mode 100644 sim/w65/interp.h create mode 100644 sim/w65/run.c create mode 100644 sim/z8k/ChangeLog create mode 100644 sim/z8k/Makefile.in create mode 100644 sim/z8k/acconfig.h create mode 100644 sim/z8k/comped1.c create mode 100644 sim/z8k/comped2.c create mode 100644 sim/z8k/comped3.c create mode 100644 sim/z8k/compedb3.c create mode 100644 sim/z8k/config.in create mode 100755 sim/z8k/configure create mode 100644 sim/z8k/configure.in create mode 100644 sim/z8k/iface.c create mode 100644 sim/z8k/inlines.h create mode 100644 sim/z8k/list.c create mode 100644 sim/z8k/mem.c create mode 100644 sim/z8k/mem.h create mode 100644 sim/z8k/quick.c create mode 100644 sim/z8k/sim.h create mode 100644 sim/z8k/support.c create mode 100644 sim/z8k/syscall.h create mode 100644 sim/z8k/tconfig.in create mode 100644 sim/z8k/tm.h create mode 100644 sim/z8k/writecode.c diff --git a/gdb/29k-share/README b/gdb/29k-share/README new file mode 100644 index 0000000000..5e19715ffa --- /dev/null +++ b/gdb/29k-share/README @@ -0,0 +1,9 @@ +The files in this directory are shared with other debuggers and +debug interfaces that use Advanced Micro Devices' UDI (universal debug +interface) protocol. The protocol provides a common interface among +debuggers, logic analyzers, emulators, and embedded systems that use +AMD 29000 family processors. + +Do not change these files without coordinating with Advanced Micro +Devices, Embedded Processor Division, 5204 E. Ben White Blvd, Austin, TX 78741. +Maybe postmaster@cayman.amd.com can direct you to the current maintainers. diff --git a/gdb/29k-share/udi/udi2go32.c b/gdb/29k-share/udi/udi2go32.c new file mode 100644 index 0000000000..63d98ae401 --- /dev/null +++ b/gdb/29k-share/udi/udi2go32.c @@ -0,0 +1,607 @@ +/* + +Interface from UDI calls in 32-bit mode to go32 in 16-bit mode. +Communication is done through a single interrupt vector, which passes +data through two linear buffers. + +Call: + AH = 0xfe + AL = UDI function number + ECX = IN length + ESI = pointer to IN buffer + EDI = pointer to OUT buffer + +Return: + EAX = return value of UDI function + +Vector: + 0x21 + +*/ +#ifdef __GO32__ + +#include +#include "udiproc.h" +#include "udisoc.h" + +char dfe_errmsg[500]; + +static char in_buffer[4096]; +static char out_buffer[4096]; +static char *in_ptr; +static char *out_ptr; + +#define IN_INIT() in_ptr = in_buffer +#define IN_VAL(t,v) *((t *)in_ptr)++ = v +#define IN_DATA(ptr, cnt) memcpy(in_ptr, ptr, cnt), in_ptr += cnt + +#define OUT_INIT() out_ptr = out_buffer +#define OUT_VAL(t) (*((t *)out_ptr)++) +#define OUT_DATA(ptr, cnt) memcpy(ptr, out_ptr, cnt), out_ptr += cnt + +static int DO_CALL(int function) +{ + asm("pushl %esi"); + asm("pushl %edi"); + asm("movb %0, %%al" : : "g" (function)); + asm("movl _in_ptr, %ecx"); + asm("movl $_in_buffer, %esi"); + asm("subl %esi, %ecx"); + asm("movl $_out_buffer, %edi"); + asm("movb $0xfe, %ah"); + asm("int $0x21"); + asm("popl %edi"); + asm("popl %esi"); +} + +/*----------------------------------------------------------------------*/ + +#ifdef TEST_UDI +int main() +{ + int r; + long p2; + short p1; + IN_INIT(); + IN_VAL(long, 11111111); + IN_VAL(short, 2222); + IN_DATA("Hello, world\n", 17); + + r = DO_CALL(42); + + OUT_INIT(); + p1 = OUT_VAL(short); + p2 = OUT_VAL(long); + printf("main: p1=%d p2=%d rv=%d\n", p1, p2, r); + return r; +} +#endif + +/*----------------------------------------------------------------------*/ + +unsupported(char *s) +{ + printf("unsupported UDI host call %s\n", s); + abort(); +} + +UDIError UDIConnect ( + char *Configuration, /* In */ + UDISessionId *Session /* Out */ + ) +{ + int r; + out_buffer[0] = 0; /* DJ - test */ + IN_INIT(); + IN_DATA(Configuration, strlen(Configuration)+1); + + r = DO_CALL(UDIConnect_c); + + OUT_INIT(); + *Session = OUT_VAL(UDISessionId); + return r; +} + +UDIError UDIDisconnect ( + UDISessionId Session, /* In */ + UDIBool Terminate /* In */ + ) +{ + int r; + IN_INIT(); + IN_VAL(UDISessionId, Session); + IN_VAL(UDIBool, Terminate); + + return DO_CALL(UDIDisconnect_c); +} + +UDIError UDISetCurrentConnection ( + UDISessionId Session /* In */ + ) +{ + IN_INIT(); + IN_VAL(UDISessionId, Session); + + return DO_CALL(UDISetCurrentConnection_c); +} + +UDIError UDICapabilities ( + UDIUInt32 *TIPId, /* Out */ + UDIUInt32 *TargetId, /* Out */ + UDIUInt32 DFEId, /* In */ + UDIUInt32 DFE, /* In */ + UDIUInt32 *TIP, /* Out */ + UDIUInt32 *DFEIPCId, /* Out */ + UDIUInt32 *TIPIPCId, /* Out */ + char *TIPString /* Out */ + ) +{ + int r; + IN_INIT(); + IN_VAL(UDIUInt32, DFEId); + IN_VAL(UDIUInt32, DFE); + r = DO_CALL(UDICapabilities_c); + OUT_INIT(); + *TIPId = OUT_VAL(UDIUInt32); + *TargetId = OUT_VAL(UDIUInt32); + *TIP = OUT_VAL(UDIUInt32); + *DFEIPCId = OUT_VAL(UDIUInt32); + *TIPIPCId = OUT_VAL(UDIUInt32); + strcpy(TIPString, out_ptr); + return r; +} + +UDIError UDIEnumerateTIPs ( + UDIInt (*UDIETCallback) /* In */ + ( char *Configuration ) /* In to callback() */ + ) +{ + UDIETCallback("montip.exe"); +} + +UDIError UDIGetErrorMsg ( + UDIError ErrorCode, /* In */ + UDISizeT MsgSize, /* In */ + char *Msg, /* Out */ + UDISizeT *CountDone /* Out */ + ) +{ + int r; + if (MsgSize > 4000) + MsgSize = 4000; + IN_INIT(); + IN_VAL(UDIError, ErrorCode); + IN_VAL(UDISizeT, MsgSize); + + r = DO_CALL(UDIGetErrorMsg_c); + + OUT_INIT(); + *CountDone = OUT_VAL(UDISizeT); + OUT_DATA(Msg, *CountDone); + return r; +} + +UDIError UDIGetTargetConfig ( + UDIMemoryRange KnownMemory[], /* Out */ + UDIInt *NumberOfRanges, /* In/Out */ + UDIUInt32 ChipVersions[], /* Out */ + UDIInt *NumberOfChips /* In/Out */ + ) +{ + int r, i; + int nr = *NumberOfRanges; + int nc = *NumberOfChips; + IN_INIT(); + IN_VAL(UDIInt, *NumberOfRanges); + IN_VAL(UDIInt, *NumberOfChips); + r = DO_CALL(UDIGetTargetConfig_c); + if (r == UDIErrorIncomplete) + return r; + OUT_INIT(); + *NumberOfRanges = OUT_VAL(UDIInt); + *NumberOfChips = OUT_VAL(UDIInt); + for (i=0; iSpace = OUT_VAL(short); + Addr->Offset = OUT_VAL(CPUOffset); + *PassCount = OUT_VAL(UDIInt32); + *Type = OUT_VAL(UDIBreakType); + *CurrentCount = OUT_VAL(UDIInt32); + + return r; +} + +UDIError UDIClearBreakpoint ( + UDIBreakId BreakId /* In */ + ) +{ + IN_INIT(); + IN_VAL(UDIBreakId, BreakId); + + return DO_CALL(UDIClearBreakpoint_c); +} + +UDIError UDIGetStdout ( + UDIHostMemPtr Buf, /* Out */ + UDISizeT BufSize, /* In */ + UDISizeT *CountDone /* Out */ + ) +{ + int r; + IN_INIT(); + if (BufSize > 4000) + BufSize = 4000; + IN_VAL(UDISizeT,BufSize); + r = DO_CALL(UDIGetStdout_c); + OUT_INIT(); + *CountDone = OUT_VAL(UDISizeT); + if (*CountDone <= BufSize) + OUT_DATA(Buf, *CountDone); + return r; +} + +UDIError UDIGetStderr ( + UDIHostMemPtr Buf, /* Out */ + UDISizeT BufSize, /* In */ + UDISizeT *CountDone /* Out */ + ) +{ + int r; + IN_INIT(); + if (BufSize > 4000) + BufSize = 4000; + IN_VAL(UDISizeT,BufSize); + r = DO_CALL(UDIGetStderr_c); + OUT_INIT(); + *CountDone = OUT_VAL(UDISizeT); + OUT_DATA(Buf, *CountDone); + return r; +} + +UDIError UDIPutStdin ( + UDIHostMemPtr Buf, /* In */ + UDISizeT Count, /* In */ + UDISizeT *CountDone /* Out */ + ) +{ + int r; + IN_INIT(); + if (Count > 4000) + Count = 4000; + IN_VAL(UDISizeT,Count); + IN_DATA(Buf, Count); + r = DO_CALL(UDIPutStdin_c); + OUT_INIT(); + *CountDone = OUT_VAL(UDISizeT); + return r; +} + +UDIError UDIStdinMode ( + UDIMode *Mode /* Out */ + ) +{ + int r; + IN_INIT(); + r = DO_CALL(UDIStdinMode_c); + OUT_INIT(); + *Mode = OUT_VAL(UDIMode); + return r; +} + +UDIError UDIPutTrans ( + UDIHostMemPtr Buf, /* In */ + UDISizeT Count, /* In */ + UDISizeT *CountDone /* Out */ + ) +{ + int r; + IN_INIT(); + if (Count > 4000) + Count = 4000; + IN_VAL(UDISizeT,Count); + IN_DATA(Buf, Count); + r = DO_CALL(UDIPutTrans_c); + OUT_INIT(); + *CountDone = OUT_VAL(UDISizeT); + return r; +} + +UDIError UDIGetTrans ( + UDIHostMemPtr Buf, /* Out */ + UDISizeT BufSize, /* In */ + UDISizeT *CountDone /* Out */ + ) +{ + int r; + IN_INIT(); + if (BufSize > 4000) + BufSize = 4000; + IN_VAL(UDISizeT,BufSize); + r = DO_CALL(UDIGetTrans_c); + OUT_INIT(); + *CountDone = OUT_VAL(UDISizeT); + OUT_DATA(Buf, *CountDone); + return r; +} + +UDIError UDITransMode ( + UDIMode *Mode /* Out */ + ) +{ + int r; + IN_INIT(); + r = DO_CALL(UDITransMode_c); + OUT_INIT(); + *Mode = OUT_VAL(UDIMode); + return r; +} + +#define DFEIPCIdCompany 0x0001 /* Company ID AMD */ +#define DFEIPCIdProduct 0x1 /* Product ID 0 */ +#define DFEIPCIdVersion 0x125 /* 1.2.5 */ + +unsigned UDIGetDFEIPCId () +{ + return((((UDIUInt32)DFEIPCIdCompany) << 16) |(DFEIPCIdProduct << 12) | DFEIPCIdVersion); +} + +#endif /* __GO32__ */ diff --git a/gdb/29k-share/udi/udiids.h b/gdb/29k-share/udi/udiids.h new file mode 100644 index 0000000000..5f805e4690 --- /dev/null +++ b/gdb/29k-share/udi/udiids.h @@ -0,0 +1,48 @@ +/* This file contains the DFE and TIP IDs to be used by AMD products for + the UDICapabilities call. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + + /* Company Codes -- AMD assigns these */ +#define UDICompanyCode_AMD 1 + + /* Build a UDIID given a CompanyProdCode and 3 version pieces */ +#define UDIID(CompanyProdCode, v1,v2,v3) ((((CompanyProdCode) & 0xfffff)<<12)+\ + (((v1)&0xf)<<8) + (((v2)&0xf)<<4) + ((v3)&0xf)) + + + /* Extract a CompanyProdCode or a Version from a UDIID */ +#define UDIID_CompanyProdCode(id) (((id)>>12) & 0xfffff) +#define UDIID_Version(id) ((id)&0xfff) + + +#define UDIAMDProduct(ProdCode) ((UDICompanyCode_AMD<<4) + (ProdCode&0xf)) + + /* AMD DFE Product Codes */ +#define UDIProductCode_Mondfe UDIAMDProduct(0) +#define UDIProductCode_XRAY UDIAMDProduct(1) +#define UDIProductCode_TIPTester UDIAMDProduct(2) + + /* AMD TIP Product Codes (need not be distinct from DFE Product Codes) */ +#define UDIProductCode_Montip UDIAMDProduct(0) +#define UDIProductCode_Isstip UDIAMDProduct(1) + + +#define UDILatestVersion 0x120 /* UDI 1.2.0, can be used in DFE and TIP desired UDI params */ + diff --git a/gdb/29k-share/udi/udip2soc.c b/gdb/29k-share/udi/udip2soc.c new file mode 100644 index 0000000000..969e8502eb --- /dev/null +++ b/gdb/29k-share/udi/udip2soc.c @@ -0,0 +1,1250 @@ +/* Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +static char udip2soc_c[]="@(#)udip2soc.c 2.11 Daniel Mann"; +static char udip2soc_c_AMD[]="@(#)udip2soc.c 2.8, AMD"; +/* +* This module converts UDI Procedural calls into +* UDI socket messages for UNIX. +* It is used by DFE client processes +********************************************************************** HISTORY +*/ +/* This is all unneeded on DOS machines. */ +#ifndef __GO32__ + +#include +#include + +/* Before sys/file.h for Unixware. */ +#include + +#include + +/* This used to say sys/fcntl.h, but the only systems I know of that + require that are old (pre-4.3, at least) BSD systems, which we + probably don't need to worry about. */ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "udiproc.h" +#include "udisoc.h" + +extern int errno; +extern int sys_nerr; +extern int udr_errno; +extern char* getenv(); + +/* local type decs. and macro defs. not in a .h file ************* MACRO/TYPE +*/ +#define version_c 0x121 /* DFE-IPC version id */ +#define TRUE -1 +#define FALSE 0 +#define PORT_NUM 7000 +#define MAX_SESSIONS 5 /* maximum DFE-TIP connections */ +#define SOC_BUF_SIZE 4* 1024 /* size of socket comms buffer */ +#define SBUF_SIZE 500 /* size of string buffer */ +#define ERRMSG_SIZE 500 /* size of error message buffer */ + +typedef struct connection_str /* record of connect session */ +{ + int in_use; + char connect_id[20]; /* connection identifier */ + char domain_string[20]; /* dommaing for conection */ + char tip_string[30]; /* TIP host name for AF_INET */ + char tip_exe[80]; /* TIP exe name */ + int dfe_sd; /* associated DFE socket */ + int tip_pid; /* pid of TIP process */ + struct sockaddr_in dfe_sockaddr; + struct sockaddr_in tip_sockaddr_in; + struct sockaddr tip_sockaddr; +} connection_t; + +typedef struct session_str +{ + int in_use; + connection_t* soc_con_p; /* associated connection */ + UDISessionId tip_id; /* associated TIP session ID */ +} session_t; + +/* global dec/defs. which are not in a .h file ************* EXPORT DEC/DEFS +*/ +UDIError dfe_errno; +char dfe_errmsg[ERRMSG_SIZE];/* error string */ + +/* local dec/defs. which are not in a .h file *************** LOCAL DEC/DEFS +*/ +LOCAL connection_t soc_con[MAX_SESSIONS]; +LOCAL session_t session[MAX_SESSIONS]; +LOCAL UDR udr; +LOCAL UDR* udrs = &udr; /* UDR for current session */ +LOCAL int current; /* int-id for current session */ +LOCAL char sbuf[SBUF_SIZE]; /* String handler buffer */ +LOCAL char config_file[80]; /* path/name for config file */ + +/***************************************************************** UDI_CONNECT +* Establish a new FDE to TIP conection. The file "./udi_soc" or +* "/etc/udi_soc" may be examined to obtain the conection information +* if the "Config" parameter is not a completd "line entry". +* +* NOTE: the Session string must not start whith white-space characters. +* Format of string is: +* +* soc2cayman AF_INET cayman 7000 +* soc2tip AF_UNIX astring tip.exe ... +*/ +UDIError +UDIConnect(Config, Session) + char *Config; /* in -- identification string */ + UDISessionId *Session; /* out -- session ID */ +{ + UDIInt32 service_id = UDIConnect_c; + int domain; + int cnt=0; + int rcnt, pos, params_pos=0; + char *tip_main_string; + char *env_p; + struct hostent *tip_info_p; + FILE *fd; +#if 0 + FILE *f_p; +#endif + UDIUInt32 TIPIPCId; + UDIUInt32 DFEIPCId; + +#if 0 /* This is crap. It assumes that udi_soc is executable! */ + sprintf(sbuf, "which udi_soc"); + f_p = popen(sbuf, "r"); + if(f_p) + { while( (sbuf[cnt++]=getc(f_p)) != EOF); + sbuf[cnt-2]=0; + } + pclose(f_p); +#endif + + for (rcnt=0; + rcnt < MAX_SESSIONS && session[rcnt].in_use; + rcnt++); + + if (rcnt >= MAX_SESSIONS) + { + sprintf(dfe_errmsg, "DFE-ipc ERROR: Too many sessions already open"); + return UDIErrorIPCLimitation; + } + + /* One connection can be multiplexed between several sessions. */ + + for (cnt=0; + cnt < MAX_SESSIONS && soc_con[cnt].in_use; + cnt++); + + if (cnt >= MAX_SESSIONS) + { + sprintf(dfe_errmsg, + "DFE-ipc ERROR: Too many connections already open"); + return UDIErrorIPCLimitation; + } + + *Session = rcnt; + session[rcnt].soc_con_p = &soc_con[cnt]; + + if (strchr(Config, ' ')) /* test if file entry given */ + { + soc_con[cnt].in_use = TRUE; + sscanf(Config, "%s %s %s %s %n", + soc_con[cnt].connect_id, + soc_con[cnt].domain_string, + soc_con[cnt].tip_string, + soc_con[cnt].tip_exe, + ¶ms_pos); + tip_main_string = Config + params_pos; + } + else /* here if need to read udi_soc file */ + { + strcpy(config_file, "udi_soc"); + env_p = getenv("UDICONF"); + if (env_p) + strcpy(config_file, env_p); + + fd = fopen(config_file, "r"); + + if (!fd) + { + sprintf(dfe_errmsg, "UDIConnect, can't open udi_soc file:\n%s ", + strerror(errno)); + dfe_errno = UDIErrorCantOpenConfigFile; + goto tip_failure; + } + + while (1) + { + if (fscanf(fd, "%s %s %s %s %[^\n]\n", + soc_con[cnt].connect_id, + soc_con[cnt].domain_string, + soc_con[cnt].tip_string, + soc_con[cnt].tip_exe, + sbuf) == EOF) + break; + + if (strcmp(Config, soc_con[cnt].connect_id) != 0) + continue; + + soc_con[cnt].in_use = TRUE; /* here if entry found */ + + tip_main_string = sbuf; + break; + } + + fclose(fd); + if (!soc_con[cnt].in_use) + { + sprintf(dfe_errmsg, + "UDIConnect, can't find `%s' entry in udi_soc file", + Config); + dfe_errno = UDIErrorNoSuchConfiguration; + goto tip_failure; + } + } +/*----------------------------------------------------------- SELECT DOMAIN */ + if (strcmp(soc_con[cnt].domain_string, "AF_UNIX") == 0) + domain = AF_UNIX; + else if (strcmp(soc_con[cnt].domain_string, "AF_INET") == 0) + domain = AF_INET; + else + { + sprintf(dfe_errmsg, "DFE-ipc ERROR: socket address family not known"); + dfe_errno = UDIErrorBadConfigFileEntry; + goto tip_failure; + } + +/*---------------------------------------------------- MULTIPLEXED SOCKET ? */ +/* If the requested session requires communication with + a TIP which already has a socket connection established, + then we do not create a new socket but multiplex the + existing one. A TIP is said to use the same socket if + socket-name/host-name and the domain are the same. + */ + for (rcnt=0; rcnt < MAX_SESSIONS; rcnt++) + { + if (soc_con[rcnt].in_use + && rcnt != cnt + && strcmp(soc_con[cnt].domain_string, + soc_con[rcnt].domain_string) == 0 + && strcmp(soc_con[cnt].tip_string, + soc_con[rcnt].tip_string) == 0) + { + session[*Session].soc_con_p = &soc_con[rcnt]; + soc_con[cnt].in_use = FALSE; /* don't need new connect */ + goto tip_connect; + } + } +/*------------------------------------------------------------------ SOCKET */ + soc_con[cnt].dfe_sd = socket(domain, SOCK_STREAM, 0); + if (soc_con[cnt].dfe_sd == -1) + { + sprintf(dfe_errmsg, "DFE-ipc ERROR, socket() call failed %s ", + strerror (errno)); + dfe_errno = UDIErrorUnknownError; + goto tip_failure; + } + +/*--------------------------------------------------------- AF_UNIX CONNECT */ + if (domain == AF_UNIX) + { + if (strcmp(soc_con[cnt].tip_string, "*") == 0) + { + for (pos = 0; pos < 20; pos++) + { + int f; + + sprintf(soc_con[cnt].tip_string,"/tmp/U%d", getpid() + pos); + f = open(soc_con[cnt].tip_string, O_CREAT); + if (f == -1) + continue; + + close(f); + unlink(soc_con[cnt].tip_string); + break; + } + + if (pos >= 20) + { + sprintf(dfe_errmsg, + "DFE-ipc ERROR, can't create random socket name"); + dfe_errno = UDIErrorCantConnect; + goto tip_failure; + } + } + + soc_con[cnt].tip_sockaddr.sa_family = domain; + memcpy(soc_con[cnt].tip_sockaddr.sa_data, + soc_con[cnt].tip_string, + sizeof(soc_con[cnt].tip_sockaddr.sa_data)); + if (connect(soc_con[cnt].dfe_sd, + &soc_con[cnt].tip_sockaddr, + sizeof(soc_con[cnt].tip_sockaddr))) + { /* if connect() fails assume TIP not yet started */ +/*------------------------------------------------------------ AF_UNIX EXEC */ + int pid; + int statusp; + char *arg0; + + arg0 = strrchr(soc_con[cnt].tip_exe,'/'); + + if (arg0) + arg0++; + else + arg0 = soc_con[cnt].tip_exe; + + pid = vfork(); + + if (pid == 0) /* Child */ + { + execlp(soc_con[cnt].tip_exe, + arg0, + soc_con[cnt].domain_string, + soc_con[cnt].tip_string, + NULL); + _exit(1); + } + + if (waitpid(pid, &statusp, WNOHANG)) + { + sprintf(dfe_errmsg, "DFE-ipc ERROR: can't exec the TIP"); + dfe_errno = UDIErrorCantStartTIP; + goto tip_failure; + } + + pos = 3; + for (pos = 3; pos > 0; pos--) + { + if (!connect(soc_con[cnt].dfe_sd, + &soc_con[cnt].tip_sockaddr, + sizeof(soc_con[cnt].tip_sockaddr))) + break; + sleep(1); + } + + if (pos == 0) + { + sprintf(dfe_errmsg, "DFE-ipc ERROR, connect() call failed: %s", + strerror (errno)); + dfe_errno = UDIErrorCantConnect; + goto tip_failure; + } + } + } +/*--------------------------------------------------------- AF_INET CONNECT */ + else if (domain == AF_INET) + { + fprintf(stderr, + "DFE-ipc WARNING, need to have first started remote TIP"); + + soc_con[cnt].tip_sockaddr_in.sin_family = domain; + soc_con[cnt].tip_sockaddr_in.sin_addr.s_addr = + inet_addr(soc_con[cnt].tip_string); + if (soc_con[cnt].tip_sockaddr_in.sin_addr.s_addr == -1) + { + tip_info_p = gethostbyname(soc_con[cnt].tip_string); + if (tip_info_p == NULL) + { + sprintf(dfe_errmsg,"DFE-ipc ERROR, No such host %s", + soc_con[cnt].tip_string); + dfe_errno = UDIErrorNoSuchConnection; + goto tip_failure; + } + memcpy((char *)&soc_con[cnt].tip_sockaddr_in.sin_addr, + tip_info_p->h_addr, + tip_info_p->h_length); + } + soc_con[cnt].tip_sockaddr_in.sin_port + = htons(atoi(soc_con[cnt].tip_exe)); + + if (connect(soc_con[cnt].dfe_sd, + (struct sockaddr *) &soc_con[cnt].tip_sockaddr_in, + sizeof(soc_con[cnt].tip_sockaddr_in))) + { + sprintf(dfe_errmsg, "DFE-ipc ERROR, connect() call failed %s ", + strerror (errno)); + dfe_errno = UDIErrorCantConnect; + goto tip_failure; + } + } +/*------------------------------------------------------------- TIP CONNECT */ + if (cnt == 0) udr_create(udrs, soc_con[cnt].dfe_sd, SOC_BUF_SIZE); + +tip_connect: + current = cnt; + session[*Session].in_use = TRUE; /* session id is now in use */ + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + + DFEIPCId = (company_c << 16) + (product_c << 12) + version_c; + udr_UDIUInt32(udrs, &DFEIPCId); + + udr_string(udrs, tip_main_string); + + udr_sendnow(udrs); + + udrs->udr_op = UDR_DECODE; /* recv all "out" parameters */ + udr_UDIUInt32(udrs, &TIPIPCId); + if ((TIPIPCId & 0xfff) < version_c) + sprintf(dfe_errmsg, "DFE-ipc: Obsolete TIP Specified"); + + udr_UDIInt32(udrs, &soc_con[cnt].tip_pid); + + udr_UDISessionId(udrs, &session[*Session].tip_id); + + udr_UDIError(udrs, &dfe_errno); + if (dfe_errno > 0) UDIKill(*Session, 0); + + return dfe_errno; + +tip_failure: + + soc_con[cnt].in_use = FALSE; + session[*Session].in_use = FALSE; +/* XXX - Should also close dfe_sd, but not sure what to do if muxed */ + return dfe_errno; +} + +/************************************************************** UDI_Disconnect +* UDIDisconnect() should be called before exiting the +* DFE to ensure proper shut down of the TIP. +*/ +UDIError UDIDisconnect(Session, Terminate) +UDISessionId Session; +UDIBool Terminate; +{ + int cnt; + UDIInt32 service_id = UDIDisconnect_c; + if(Session < 0 || Session > MAX_SESSIONS) + { + sprintf(dfe_errmsg," SessionId not valid (%d)", Session); + return UDIErrorNoSuchConfiguration; + } + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISessionId(udrs, &session[Session].tip_id); + udr_UDIBool(udrs, &Terminate); + udr_sendnow(udrs); + + session[Session].in_use = FALSE; /* session id is now free */ + for (cnt=0; cnt < MAX_SESSIONS; cnt++) + if(session[cnt].in_use + && session[cnt].soc_con_p == session[Session].soc_con_p + ) break; + if(cnt >= MAX_SESSIONS) /* test if socket not multiplexed */ + if(shutdown(session[Session].soc_con_p->dfe_sd, 2)) + { + sprintf(dfe_errmsg, "DFE-ipc WARNING: socket shutdown failed"); + return UDIErrorIPCInternal; + } + else + session[Session].soc_con_p->in_use = 0; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/******************************************************************** UDI_KILL +* UDIKill() is used to send a signal to the TIP. +* This is a private IPC call. +*/ +UDIError UDIKill(Session, Signal) +UDISessionId Session; +UDIInt32 Signal; +{ + int cnt; + UDIInt32 service_id = UDIKill_c; + if(Session < 0 || Session > MAX_SESSIONS) + { + sprintf(dfe_errmsg," SessionId not valid (%d)", Session); + return UDIErrorNoSuchConfiguration; + } + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISessionId(udrs, &session[Session].tip_id); + udr_UDIInt32(udrs, &Signal); + udr_sendnow(udrs); + + session[Session].in_use = FALSE; /* session id is now free */ + for (cnt=0; cnt < MAX_SESSIONS; cnt++) + if(session[cnt].in_use + && session[cnt].soc_con_p == session[Session].soc_con_p + ) break; + if(cnt < MAX_SESSIONS) /* test if socket not multiplexed */ + if(shutdown(session[Session].soc_con_p->dfe_sd, 2)) + { + sprintf(dfe_errmsg, "DFE-ipc WARNING: socket shutdown failed"); + return UDIErrorIPCInternal; + } + else + session[Session].soc_con_p->in_use = 0; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/************************************************** UDI_Set_Current_Connection +* If you are connected to multiple TIPs, you can change +* TIPs using UDISetCurrentConnection(). +*/ +UDIError UDISetCurrentConnection(Session) +UDISessionId Session; +{ + UDIInt32 service_id = UDISetCurrentConnection_c; + + if(Session < 0 || Session > MAX_SESSIONS) + return UDIErrorNoSuchConfiguration; + if(!session[Session].in_use) /* test if not in use yet */ + return UDIErrorNoSuchConnection; + + current = Session; + /* change socket or multiplex the same socket */ + udrs->sd = session[Session].soc_con_p->dfe_sd; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISessionId(udrs, &session[Session].tip_id); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/************************************************************ UDI_Capabilities +* The DFE uses UDICapabilities() to both inform the TIP +* of what services the DFE offers and to inquire of the +* TIP what services the TIP offers. +*/ +UDIError UDICapabilities(TIPId, TargetId, DFEId, DFE, TIP, DFEIPCId, + TIPIPCId, TIPString) +UDIUInt32 *TIPId; /* out */ +UDIUInt32 *TargetId; /* out */ +UDIUInt32 DFEId; /* in */ +UDIUInt32 DFE; /* in */ +UDIUInt32 *TIP; /* out */ +UDIUInt32 *DFEIPCId; /* out */ +UDIUInt32 *TIPIPCId; /* out */ +char *TIPString; /* out */ +{ + UDIInt32 service_id = UDICapabilities_c; + int size; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIInt32(udrs, &DFEId); + udr_UDIInt32(udrs, &DFE); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" paramters */ + udr_UDIInt32(udrs, TIPId); + udr_UDIInt32(udrs, TargetId); + udr_UDIInt32(udrs, TIP); + udr_UDIInt32(udrs, DFEIPCId); + *DFEIPCId = (company_c << 16) + (product_c << 12) + version_c; + udr_UDIInt32(udrs, TIPIPCId); + udr_string(udrs, sbuf); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + size = strlen(sbuf); + if(size +1 > 80) return -1; /* test if sufficient space */ + strcpy(TIPString, sbuf); + return dfe_errno; +} + +/********************************************************** UDI_Enumerate_TIPs +* Used by the DFE to enquire about available TIP +* connections. +*/ +UDIError UDIEnumerateTIPs(UDIETCallback) + int (*UDIETCallback)(); /* In -- function to callback */ +{ + FILE *fp; + + fp = fopen(config_file, "r"); + if(fp == NULL) + return UDIErrorCantOpenConfigFile; + while(fgets( sbuf, SBUF_SIZE, fp)) + if(UDIETCallback( sbuf) == UDITerminateEnumeration) + break; + fclose( fp); + return UDINoError; /* return success */ +} + +/*********************************************************** UDI_GET_ERROR_MSG +* Some errors are target specific. They are indicated +* by a negative error return value. The DFE uses +* UDIGetErrorMsg() to get the descriptive text for +* the error message which can then be displayed to +* the user. +*/ +UDIError UDIGetErrorMsg(error_code, msg_len, msg, CountDone) +UDIError error_code; /* In */ +UDISizeT msg_len; /* In -- allowed message space */ +char* msg; /* Out -- length of message*/ +UDISizeT *CountDone; /* Out -- number of characters */ +{ + UDIInt32 service_id = UDIGetErrorMsg_c; + int size; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIError(udrs, &error_code); + udr_UDISizeT(udrs, &msg_len); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_string(udrs, sbuf); + udr_UDISizeT(udrs, CountDone); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + size = strlen(sbuf); + if(size +1 > msg_len) return -1; /* test if sufficient space */ + strcpy(msg, sbuf); + return dfe_errno; +} + +/******************************************************* UDI_GET_TARGET_CONFIG +* UDIGetTargetConfig() gets information about the target. +*/ +UDIError UDIGetTargetConfig(KnownMemory, NumberOfRanges, ChipVersions, + NumberOfChips) +UDIMemoryRange KnownMemory[]; /* Out */ +UDIInt *NumberOfRanges; /* In and Out */ +UDIUInt32 ChipVersions[]; /* Out */ +UDIInt *NumberOfChips; /* In and Out */ +{ + UDIInt32 service_id = UDIGetTargetConfig_c; + int cnt; + int MaxOfRanges = *NumberOfRanges; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIInt(udrs, NumberOfRanges); + udr_UDIInt(udrs, NumberOfChips); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" paramters */ + for(cnt=1; cnt <= MaxOfRanges; cnt++) + udr_UDIMemoryRange(udrs, &KnownMemory[cnt-1]); + udr_UDIInt(udrs, NumberOfRanges); + udr_UDIInt(udrs, NumberOfChips); + for(cnt=1; cnt <= *NumberOfChips; cnt++) + udr_UDIUInt32(udrs, &ChipVersions[cnt -1]); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/********************************************************** UDI_CREATE_PRCOESS +* UDICreateProcess() tells the target OS that a +* process is to be created and gets a PID back unless +* there is some error. +*/ +UDIError UDICreateProcess(pid) +UDIPId *pid; /* out */ +{ + UDIInt32 service_id = UDICreateProcess_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIPId(udrs, pid); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/***************************************************** UDI_Set_Current_Process +* UDISetCurrentProcess uses a pid supplied by +* UDICreateProcess and sets it as the default for all +* udi calls until a new one is set. A user of a +*/ +UDIError UDISetCurrentProcess (pid) +UDIPId pid; /* In */ +{ + UDIInt32 service_id = UDISetCurrentProcess_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIPId(udrs, &pid); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/****************************************************** UDI_INITIALISE_PROCESS +* UDIInitializeProcess() prepare process for +* execution. (Reset processor if process os processor). +*/ +UDIError UDIInitializeProcess( ProcessMemory, NumberOfRanges, EntryPoint, + StackSizes, NumberOfStacks, ArgString) +UDIMemoryRange ProcessMemory[]; /* In */ +UDIInt NumberOfRanges; /* In */ +UDIResource EntryPoint; /* In */ +CPUSizeT *StackSizes; /* In */ +UDIInt NumberOfStacks; /* In */ +char *ArgString; /* In */ +{ + UDIInt32 service_id = UDIInitializeProcess_c; + int cnt; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIInt(udrs, &NumberOfRanges); + for(cnt = 0; cnt < NumberOfRanges; cnt++) + udr_UDIMemoryRange(udrs, &ProcessMemory[cnt] ); + udr_UDIResource(udrs, &EntryPoint); + udr_UDIInt(udrs, &NumberOfStacks); + for(cnt = 0; cnt < NumberOfStacks; cnt++) + udr_CPUSizeT(udrs, &StackSizes[cnt]); + udr_string(udrs, ArgString); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/********************************************************* UDI_DESTROY_PROCESS +* UDIDestroyProcess() frees a process resource +* previously created by UDICreateProcess(). +*/ +UDIError UDIDestroyProcess(pid) +UDIPId pid; /* in */ +{ + UDIInt32 service_id = UDIDestroyProcess_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIPId(udrs, &pid); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/****************************************************************** UDI_READ +* UDIRead() reads a block of objects from a target +* address space to host space. +*/ + +UDIError UDIRead (from, to, count, size, count_done, host_endian) +UDIResource from; /* in - source address on target */ +UDIHostMemPtr to; /* out - destination address on host */ +UDICount count; /* in -- count of objects to be transferred */ +UDISizeT size; /* in -- size of each object */ +UDICount *count_done; /* out - count actually transferred */ +UDIBool host_endian; /* in -- flag for endian information */ +{ + UDIInt32 service_id = UDIRead_c; + int byte_count; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIResource(udrs, &from); + udr_UDICount(udrs, &count); + udr_UDISizeT(udrs, &size); + udr_UDIBool(udrs, &host_endian); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" paramters */ + udr_UDICount(udrs, count_done); + byte_count = (*count_done) * size; + if(*count_done > 0 && *count_done <= count) + udr_bytes(udrs, to, byte_count); + if(udr_errno) return udr_errno; + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/****************************************************************** UDI_WRITE +* UDIWrite() writes a block of objects from host +* space to a target address+space. +*/ +UDIError UDIWrite( from, to, count, size, count_done, host_endian ) +UDIHostMemPtr from; /* in -- source address on host */ +UDIResource to; /* in -- destination address on target */ +UDICount count; /* in -- count of objects to be transferred */ +UDISizeT size; /* in -- size of each object */ +UDICount *count_done; /* out - count actually transferred */ +UDIBool host_endian; /* in -- flag for endian information */ +{ + UDIInt32 service_id = UDIWrite_c; + int byte_count = count * size; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIResource(udrs, &to); + udr_UDICount(udrs, &count); + udr_UDISizeT(udrs, &size); + udr_UDIBool(udrs, &host_endian); + udr_bytes(udrs, from, byte_count); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" paramters */ + udr_UDICount(udrs, count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/******************************************************************** UDI_COPY +* UDICopy() copies a block of objects from one target +* get address/space to another target address/space. +*/ +UDIError UDICopy(from, to, count, size, count_done, direction ) +UDIResource from; /* in -- destination address on target */ +UDIResource to; /* in -- source address on target */ +UDICount count; /* in -- count of objects to be transferred */ +UDISizeT size; /* in -- size of each object */ +UDICount *count_done; /* out - count actually transferred */ +UDIBool direction; /* in -- high-to-low or reverse */ +{ + UDIInt32 service_id = UDICopy_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIResource(udrs, &from); + udr_UDIResource(udrs, &to); + udr_UDICount(udrs, &count); + udr_UDISizeT(udrs, &size); + udr_UDIBool(udrs, &direction); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDICount(udrs, count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/***************************************************************** UDI_EXECUTE +* UDIExecute() continues execution of the default +* process from the current PC. +*/ +UDIError UDIExecute() +{ + UDIInt32 service_id = UDIExecute_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/******************************************************************** UDI_STEP +* UDIStep() specifies a number of "instruction" +* steps to make. +*/ +UDIError UDIStep(steps, steptype, range) +UDIUInt32 steps; /* in -- number of steps */ +UDIStepType steptype; /* in -- type of stepping to be done */ +UDIRange range; /* in -- range if StepInRange is TRUE */ +{ + UDIInt32 service_id = UDIStep_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIInt32(udrs, &steps); + udr_UDIStepType(udrs, &steptype); + udr_UDIRange(udrs, &range); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/******************************************************************** UDI_STOP +* UDIStop() stops the default process +*/ +UDIVoid UDIStop() +{ + if (strcmp(session[current].soc_con_p->domain_string, "AF_UNIX") == 0) + kill(session[current].soc_con_p->tip_pid, SIGINT); + else + udr_signal(udrs); + +/* XXX - should clean up session[] and soc_con[] structs here as well... */ + + return; +} + +/******************************************************************** UDI_WAIT +* UDIWait() returns the state of the target procesor. +*/ +UDIError UDIWait(maxtime, pid, stop_reason) +UDIInt32 maxtime; /* in -- maximum time to wait for completion */ +UDIPId *pid; /* out -- pid of process which stopped if any */ +UDIUInt32 *stop_reason; /* out -- PC where process stopped */ +{ + UDIInt32 service_id = UDIWait_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIInt32(udrs, &maxtime); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIPId(udrs, pid); + udr_UDIUInt32(udrs, stop_reason); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/********************************************************** UDI_SET_BREAKPOINT +* UDISetBreakpoint() sets a breakpoint at an adress +* and uses the passcount to state how many +* times that instruction should be hit before the +* break occurs. +*/ +UDIError UDISetBreakpoint (addr, passcount, type, break_id) +UDIResource addr; /* in -- where breakpoint gets set */ +UDIInt32 passcount; /* in -- passcount for breakpoint */ +UDIBreakType type; /* in -- breakpoint type */ +UDIBreakId *break_id; /* out - assigned break id */ +{ + UDIInt32 service_id = UDISetBreakpoint_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIResource(udrs, &addr); + udr_UDIInt32(udrs, &passcount); + udr_UDIBreakType(udrs, &type); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIBreakId(udrs, break_id); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/******************************************************** UDI_QUERY_BREAKPOINT +*/ +UDIError UDIQueryBreakpoint (break_id, addr, passcount, type, current_count) +UDIBreakId break_id; /* in -- assigned break id */ +UDIResource *addr; /* out - where breakpoint was set */ +UDIInt32 *passcount; /* out - trigger passcount for breakpoint */ +UDIBreakType *type; /* out - breakpoint type */ +UDIInt32 *current_count; /* out - current count for breakpoint */ +{ + UDIInt32 service_id = UDIQueryBreakpoint_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIBreakId(udrs, &break_id); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIResource(udrs, addr); + udr_UDIInt32(udrs, passcount); + udr_UDIBreakType(udrs, type); + udr_UDIInt32(udrs, current_count); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/******************************************************** UDI_CLEAR_BREAKPOINT +* UDIClearBreakpoint() is used to clear a breakpoint. +*/ +UDIError UDIClearBreakpoint (break_id) +UDIBreakId break_id; /* in -- assigned break id */ +{ + UDIInt32 service_id = UDIClearBreakpoint_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIBreakId(udrs, &break_id); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/************************************************************** UDI_GET_STDOUT +* UDIGetStdout() is called when a call to +* UDIWait() indicates there is STD output data ready. +*/ +UDIError UDIGetStdout(buf, bufsize, count_done) +UDIHostMemPtr buf; /* out -- buffer to be filled */ +UDISizeT bufsize; /* in -- buffer size in bytes */ +UDISizeT *count_done; /* out -- number of bytes written to buf */ +{ + UDIInt32 service_id = UDIGetStdout_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISizeT(udrs, &bufsize); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDISizeT(udrs, count_done); + udr_bytes(udrs, buf, *count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/************************************************************** UDI_GET_STDERR +* UDIGetStderr() is called when a call to +* UDIWait() indicates there is STDERR output data ready +*/ +UDIError UDIGetStderr(buf, bufsize, count_done) +UDIHostMemPtr buf; /* out -- buffer to be filled */ +UDISizeT bufsize; /* in -- buffer size in bytes */ +UDISizeT *count_done; /* out -- number of bytes written to buf */ +{ + UDIInt32 service_id = UDIGetStderr_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISizeT(udrs, &bufsize); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDISizeT(udrs, count_done); + udr_bytes(udrs, buf, *count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/*************************************************************** UDI_PUT_STDIN +* UDIPutStdin() is called whenever the DFE wants to +* deliver an input character to the TIP. +*/ +UDIError UDIPutStdin (buf, count, count_done) +UDIHostMemPtr buf; /* in -- buffer to be filled */ +UDISizeT count; /* in -- buffer size in bytes */ +UDISizeT *count_done; /* out - number of bytes written to buf */ +{ + UDIInt32 service_id = UDIPutStdin_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISizeT(udrs, &count); + udr_bytes(udrs, buf, count); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDISizeT(udrs, count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/************************************************************** UDI_STDIN_MODE +* UDIStdinMode() is used to change the mode that chazcters +* are fetched from the user. +*/ +UDIError UDIStdinMode(mode) +UDIMode *mode; /* out - */ +{ + UDIInt32 service_id = UDIStdinMode_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIMode(udrs, mode); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/*************************************************************** UDI_PUT_TRANS +* UDIPutTrans() is used to feed input to the passthru mode. +*/ +UDIError UDIPutTrans (buf, count, count_done) +UDIHostMemPtr buf; /* in -- buffer address containing input data */ +UDISizeT count; /* in -- number of bytes in buf */ +UDISizeT *count_done; /* out-- number of bytes transfered */ +{ + UDIInt32 service_id = UDIPutTrans_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISizeT(udrs, &count); + udr_bytes(udrs, buf, count); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDISizeT(udrs, count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/*************************************************************** UDI_GET_TRANS +* UDIGetTrans() is used to get output lines from the +* passthru mode. +*/ +UDIError UDIGetTrans (buf, bufsize, count_done) +UDIHostMemPtr buf; /* out -- buffer to be filled */ +UDISizeT bufsize; /* in -- size of buf */ +UDISizeT *count_done; /* out -- number of bytes in buf */ +{ + UDIInt32 service_id = UDIGetTrans_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDISizeT(udrs, &bufsize); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDISizeT(udrs, count_done); + udr_bytes(udrs, buf, *count_done); + udr_UDIError(udrs, &dfe_errno); /* get any TIP error */ + return dfe_errno; +} + +/************************************************************** UDI_Trans_Mode +* UDITransMode() is used to change the mode that the +* transparent routines operate in. +*/ +UDIError UDITransMode(mode) +UDIMode *mode; /* out -- selected mode */ +{ + UDIInt32 service_id = UDITransMode_c; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + udr_UDIMode(udrs, mode); + udr_sendnow(udrs); + if(udr_errno) return udr_errno; + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + udr_UDIError(udrs, &dfe_errno); + return dfe_errno; +} + +/******************************************************************** UDI_TEST +*/ +UDIError UDITest( cnt, str_p, array) +UDISizeT cnt; +UDIHostMemPtr str_p; +UDIInt32 array[]; +{ + UDIInt32 service_id = UDITest_c; + UDIInt16 scnt = cnt; + UDISizeT r_cnt; + char buf[256]; + + udr_errno = 0; + udrs->udr_op = UDR_ENCODE; /* send all "in" parameters */ + udr_UDIInt32(udrs, &service_id); + + printf("send cnt=%d scnt=%d\n", cnt, scnt); + udr_UDISizeT(udrs, &cnt); + udr_UDIInt16(udrs, &scnt); + printf(" array[0]=0x%x array[1]=0x%x array[2]=0x%x array[3]=0x%x\n", + array[0], array[1], array[2], array[3]); + udr_bytes(udrs, (char*)array, 4*sizeof(UDIInt32)); + printf(" string=%s\n", str_p); + udr_string(udrs, str_p); + udr_sendnow(udrs); + if(udr_errno) + { fprintf(stderr, " DFE-ipc Send ERROR\n"); + return udr_errno; + } + + udrs->udr_op = UDR_DECODE; /* receive all "out" parameters */ + printf("recv "); + udr_UDISizeT(udrs, &r_cnt); + udr_UDIInt16(udrs, &scnt); + printf(" rcnt=%d scnt=%d\n", r_cnt, scnt); + udr_bytes(udrs, (char*)array, 4*sizeof(UDIInt32)); + + printf(" array[0]=0x%x array[1]=0x%x array[2]=0x%x array[3]=0x%x\n", + array[0], array[1], array[2], array[3]); + udr_string(udrs, str_p); + printf(" string=%s\n", str_p); + + udr_UDIError(udrs, &dfe_errno); + return dfe_errno; +} + + + +UDIUInt32 UDIGetDFEIPCId() +{ + return ((company_c << 16) + (product_c << 12) + version_c); +} +#endif /* __GO32__ */ diff --git a/gdb/29k-share/udi/udiphcfg.h b/gdb/29k-share/udi/udiphcfg.h new file mode 100644 index 0000000000..e9eff0a3c8 --- /dev/null +++ b/gdb/29k-share/udi/udiphcfg.h @@ -0,0 +1,44 @@ +/* This file just picks the correct udiphxxx.h depending on the host. + The two hosts that are now defined are UNIX and MSDOS. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +/* + * For the moment, we will default to BSD_IPC; this might change if/when + * another type of IPC (Mach? SysV?) is implemented. + */ + +#if 0 + +/* We don't seem to have a copy of udiphdos.h. Furthermore, all the + things in udiphunix.h are pretty much generic 32-bit machine defines + which don't have anything to do with IPC. */ + +#ifdef DOS_IPC +#include "udiphdos.h" +#else +/*#ifdef BSD_IPC */ +#include "udiphunix.h" +#endif + +#else + +#include "udiphunix.h" + +#endif diff --git a/gdb/29k-share/udi/udiphunix.h b/gdb/29k-share/udi/udiphunix.h new file mode 100644 index 0000000000..172fbbfd85 --- /dev/null +++ b/gdb/29k-share/udi/udiphunix.h @@ -0,0 +1,81 @@ +/* Originally called "udiphsun.h", however it was not very + Sun-specific; now it is used for generic-unix-with-bsd-ipc. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +/* This file is to be used to reconfigure the UDI Procedural interface + for a given host. This file should be placed so that it will be + included from udiproc.h. Everything in here may need to be changed + when you change either the host CPU or its compiler. Nothing in + here should change to support different targets. There are multiple + versions of this file, one for each of the different host/compiler + combinations in use. +*/ + +#define UDIStruct struct /* _packed not needed on unix */ +/* First, we need some types */ +/* Types with at least the specified number of bits */ +typedef double UDIReal64; /* 64-bit real value */ +typedef float UDIReal32; /* 32-bit real value */ + +typedef unsigned long UDIUInt32; /* unsigned integers */ +typedef unsigned short UDIUInt16; +typedef unsigned char UDIUInt8; + +typedef long UDIInt32; /* 32-bit integer */ +typedef short UDIInt16; /* 16-bit integer */ +typedef char UDIInt8; /* unreliable signedness */ + +/* To aid in supporting environments where the DFE and TIP use +different compilers or hosts (like DOS 386 on one side, 286 on the +other, or different Unix machines connected by sockets), we define +two abstract types - UDIInt and UDISizeT. +UDIInt should be defined to be int except for host/compiler combinations +that are intended to talk to existing UDI components that have a different +sized int. Similarly for UDISizeT. +*/ +typedef int UDIInt; +typedef unsigned int UDIUInt; + +typedef unsigned int UDISizeT; + +/* Now two void types. The first is for function return types, +the other for pointers to no particular type. Since these types +are used solely for documentational clarity, if your host/compiler +doesn't support either one, replace them with int and char * +respectively. +*/ +typedef void UDIVoid; /* void type */ +typedef void * UDIVoidPtr; /* void pointer type */ +typedef void * UDIHostMemPtr; /* Arbitrary memory pointer */ + +/* Now we want a type optimized for boolean values. Normally this + would be int, but on some machines (Z80s, 8051s, etc) it might + be better to map it onto a char +*/ +typedef int UDIBool; + +/* Now indicate whether your compiler support full ANSI style + prototypes. If so, use #if 1. If not use #if 0. +*/ +#if 0 +#define UDIParams(x) x +#else +#define UDIParams(x) () +#endif diff --git a/gdb/29k-share/udi/udiproc.h b/gdb/29k-share/udi/udiproc.h new file mode 100644 index 0000000000..0cc1c2049c --- /dev/null +++ b/gdb/29k-share/udi/udiproc.h @@ -0,0 +1,308 @@ +/* local type decs. and macro defs. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +#include "udiphcfg.h" /* Get host specific configuration */ +#include "udiptcfg.h" /* Get target specific configuration */ + +/* Here are all of the CPU Families for which UDI is currently defined */ +#define Am29K 1 /* AMD's Am290xx and Am292xx parts */ + +typedef UDIInt UDIError; +typedef UDIInt UDISessionId; +typedef UDIInt UDIPId; +typedef UDIInt UDIStepType; +typedef UDIInt UDIBreakType; +typedef UDIUInt UDIBreakId; +typedef UDIUInt UDIMode; + +typedef UDIStruct +{ + CPUSpace Space; + CPUOffset Offset; +} UDIResource; + +typedef UDIStruct +{ + CPUOffset Low; + CPUOffset High; +} UDIRange; + +typedef UDIStruct +{ + CPUSpace Space; + CPUOffset Offset; + CPUSizeT Size; + } UDIMemoryRange; + +/* Values for UDIStepType parameters */ +#define UDIStepNatural 0x0000 +#define UDIStepOverTraps 0x0001 +#define UDIStepOverCalls 0x0002 +#define UDIStepInRange 0x0004 +#define UDIStepNatural 0x0000 + +/* Values for UDIBreakType parameters */ +#define UDIBreakFlagExecute 0x0001 +#define UDIBreakFlagRead 0x0002 +#define UDIBreakFlagWrite 0x0004 +#define UDIBreakFlagFetch 0x0008 + +/* Special values for UDIWait MaxTime parameter */ +#define UDIWaitForever (UDIInt32) -1 /* Infinite time delay */ + +/* Special values for PId */ +#define UDIProcessProcessor -1 /* Raw Hardware, if possible */ + +/* Values for UDIWait StopReason */ +#define UDIGrossState 0xff +#define UDITrapped 0 /* Fine state - which trap */ +#define UDINotExecuting 1 +#define UDIRunning 2 +#define UDIStopped 3 +#define UDIWarned 4 +#define UDIStepped 5 +#define UDIWaiting 6 +#define UDIHalted 7 +#define UDIStdoutReady 8 /* fine state - size */ +#define UDIStderrReady 9 /* fine state - size */ +#define UDIStdinNeeded 10 /* fine state - size */ +#define UDIStdinModeX 11 /* fine state - mode */ +#define UDIBreak 12 /* Fine state - Breakpoint Id */ +#define UDIExited 13 /* Fine state - exit code */ + +/* Enumerate the return values from the callback function + for UDIEnumerateTIPs. +*/ +#define UDITerminateEnumeration 0 +#define UDIContinueEnumeration 1 + +/* Enumerate values for Terminate parameter to UDIDisconnect */ +#define UDITerminateSession 1 +#define UDIContinueSession 0 + +/* Error codes */ +#define UDINoError 0 /* No error occured */ +#define UDIErrorNoSuchConfiguration 1 +#define UDIErrorCantHappen 2 +#define UDIErrorCantConnect 3 +#define UDIErrorNoSuchConnection 4 +#define UDIErrorNoConnection 5 +#define UDIErrorCantOpenConfigFile 6 +#define UDIErrorCantStartTIP 7 +#define UDIErrorConnectionUnavailable 8 +#define UDIErrorTryAnotherTIP 9 +#define UDIErrorExecutableNotTIP 10 +#define UDIErrorInvalidTIPOption 11 +#define UDIErrorCantDisconnect 12 +#define UDIErrorUnknownError 13 +#define UDIErrorCantCreateProcess 14 +#define UDIErrorNoSuchProcess 15 +#define UDIErrorUnknownResourceSpace 16 +#define UDIErrorInvalidResource 17 +#define UDIErrorUnsupportedStepType 18 +#define UDIErrorCantSetBreakpoint 19 +#define UDIErrorTooManyBreakpoints 20 +#define UDIErrorInvalidBreakId 21 +#define UDIErrorNoMoreBreakIds 22 +#define UDIErrorUnsupportedService 23 +#define UDIErrorTryAgain 24 +#define UDIErrorIPCLimitation 25 +#define UDIErrorIncomplete 26 +#define UDIErrorAborted 27 +#define UDIErrorTransDone 28 +#define UDIErrorCantAccept 29 +#define UDIErrorTransInputNeeded 30 +#define UDIErrorTransModeX 31 +#define UDIErrorInvalidSize 32 +#define UDIErrorBadConfigFileEntry 33 +#define UDIErrorIPCInternal 34 +/* TBD */ + +/****************************************************************** PROCEDURES +*/ + +UDIError UDIConnect UDIParams(( + char *Configuration, /* In */ + UDISessionId *Session /* Out */ + )); + +UDIError UDIDisconnect UDIParams(( + UDISessionId Session, /* In */ + UDIBool Terminate /* In */ + )); + +UDIError UDISetCurrentConnection UDIParams(( + UDISessionId Session /* In */ + )); + +UDIError UDICapabilities UDIParams(( + UDIUInt32 *TIPId, /* Out */ + UDIUInt32 *TargetId, /* Out */ + UDIUInt32 DFEId, /* In */ + UDIUInt32 DFE, /* In */ + UDIUInt32 *TIP, /* Out */ + UDIUInt32 *DFEIPCId, /* Out */ + UDIUInt32 *TIPIPCId, /* Out */ + char *TIPString /* Out */ + )); + +UDIError UDIEnumerateTIPs UDIParams(( + UDIInt (*UDIETCallback) /* In */ + UDIParams(( char *Configuration )) /* In to callback() */ + )); + +UDIError UDIGetErrorMsg UDIParams(( + UDIError ErrorCode, /* In */ + UDISizeT MsgSize, /* In */ + char *Msg, /* Out */ + UDISizeT *CountDone /* Out */ + )); + +UDIError UDIGetTargetConfig UDIParams(( + UDIMemoryRange KnownMemory[], /* Out */ + UDIInt *NumberOfRanges, /* In/Out */ + UDIUInt32 ChipVersions[], /* Out */ + UDIInt *NumberOfChips /* In/Out */ + )); + +UDIError UDICreateProcess UDIParams(( + UDIPId *PId /* Out */ + )); + +UDIError UDISetCurrentProcess UDIParams(( + UDIPId PId /* In */ + )); + +UDIError UDIDestroyProcess UDIParams(( + UDIPId PId /* In */ + )); + +UDIError UDIInitializeProcess UDIParams(( + UDIMemoryRange ProcessMemory[], /* In */ + UDIInt NumberOfRanges, /* In */ + UDIResource EntryPoint, /* In */ + CPUSizeT StackSizes[], /* In */ + UDIInt NumberOfStacks, /* In */ + char *ArgString /* In */ + )); + +UDIError UDIRead UDIParams(( + UDIResource From, /* In */ + UDIHostMemPtr To, /* Out */ + UDICount Count, /* In */ + UDISizeT Size, /* In */ + UDICount *CountDone, /* Out */ + UDIBool HostEndian /* In */ + )); + +UDIError UDIWrite UDIParams(( + UDIHostMemPtr From, /* In */ + UDIResource To, /* In */ + UDICount Count, /* In */ + UDISizeT Size, /* In */ + UDICount *CountDone, /* Out */ + UDIBool HostEndian /* In */ + )); + +UDIError UDICopy UDIParams(( + UDIResource From, /* In */ + UDIResource To, /* In */ + UDICount Count, /* In */ + UDISizeT Size, /* In */ + UDICount *CountDone, /* Out */ + UDIBool Direction /* In */ + )); + +UDIError UDIExecute UDIParams(( + void + )); + +UDIError UDIStep UDIParams(( + UDIUInt32 Steps, /* In */ + UDIStepType StepType, /* In */ + UDIRange Range /* In */ + )); + +UDIVoid UDIStop UDIParams(( + void + )); + +UDIError UDIWait UDIParams(( + UDIInt32 MaxTime, /* In */ + UDIPId *PId, /* Out */ + UDIUInt32 *StopReason /* Out */ + )); + +UDIError UDISetBreakpoint UDIParams(( + UDIResource Addr, /* In */ + UDIInt32 PassCount, /* In */ + UDIBreakType Type, /* In */ + UDIBreakId *BreakId /* Out */ + )); + +UDIError UDIQueryBreakpoint UDIParams(( + UDIBreakId BreakId, /* In */ + UDIResource *Addr, /* Out */ + UDIInt32 *PassCount, /* Out */ + UDIBreakType *Type, /* Out */ + UDIInt32 *CurrentCount /* Out */ + )); + +UDIError UDIClearBreakpoint UDIParams(( + UDIBreakId BreakId /* In */ + )); + +UDIError UDIGetStdout UDIParams(( + UDIHostMemPtr Buf, /* Out */ + UDISizeT BufSize, /* In */ + UDISizeT *CountDone /* Out */ + )); + +UDIError UDIGetStderr UDIParams(( + UDIHostMemPtr Buf, /* Out */ + UDISizeT BufSize, /* In */ + UDISizeT *CountDone /* Out */ + )); + +UDIError UDIPutStdin UDIParams(( + UDIHostMemPtr Buf, /* In */ + UDISizeT Count, /* In */ + UDISizeT *CountDone /* Out */ + )); + +UDIError UDIStdinMode UDIParams(( + UDIMode *Mode /* Out */ + )); + +UDIError UDIPutTrans UDIParams(( + UDIHostMemPtr Buf, /* In */ + UDISizeT Count, /* In */ + UDISizeT *CountDone /* Out */ + )); + +UDIError UDIGetTrans UDIParams(( + UDIHostMemPtr Buf, /* Out */ + UDISizeT BufSize, /* In */ + UDISizeT *CountDone /* Out */ + )); + +UDIError UDITransMode UDIParams(( + UDIMode *Mode /* Out */ + )); diff --git a/gdb/29k-share/udi/udipt29k.h b/gdb/29k-share/udi/udipt29k.h new file mode 100644 index 0000000000..5de2f3ff86 --- /dev/null +++ b/gdb/29k-share/udi/udipt29k.h @@ -0,0 +1,87 @@ +/* This file is to be used to reconfigure the UDI Procedural interface + for a given target. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +/* This file should be placed so that it will be + included from udiproc.h. Everything in here will probably need to + be changed when you change the target processor. Nothing in here + should need to change when you change hosts or compilers. +*/ + +/* Select a target CPU Family */ +#define TargetCPUFamily Am29K + +/* Enumerate the processor specific values for Space in a resource */ +#define UDI29KDRAMSpace 0 +#define UDI29KIOSpace 1 +#define UDI29KCPSpace0 2 +#define UDI29KCPSpace1 3 +#define UDI29KIROMSpace 4 +#define UDI29KIRAMSpace 5 +#define UDI29KLocalRegs 8 +#define UDI29KGlobalRegs 9 +#define UDI29KRealRegs 10 +#define UDI29KSpecialRegs 11 +#define UDI29KTLBRegs 12 /* Not Am29005 */ +#define UDI29KACCRegs 13 /* Am29050 only */ +#define UDI29KICacheSpace 14 /* Am2903x only */ +#define UDI29KAm29027Regs 15 /* When available */ +#define UDI29KPC 16 +#define UDI29KDCacheSpace 17 /* When available */ + +/* Enumerate the Co-processor registers */ +#define UDI29KCP_F 0 +#define UDI29KCP_Flag 8 +#define UDI29KCP_I 12 +#define UDI29KCP_ITmp 16 +#define UDI29KCP_R 20 +#define UDI29KCP_S 28 +#define UDI29KCP_RTmp 36 +#define UDI29KCP_STmp 44 +#define UDI29KCP_Stat 52 +#define UDI29KCP_Prec 56 +#define UDI29KCP_Reg0 60 +#define UDI29KCP_Reg1 68 +#define UDI29KCP_Reg2 76 +#define UDI29KCP_Reg3 84 +#define UDI29KCP_Reg4 92 +#define UDI29KCP_Reg5 100 +#define UDI29KCP_Reg6 108 +#define UDI29KCP_Reg7 116 +#define UDI29KCP_Mode 124 + +/* Enumerate the stacks in StackSizes array */ +#define UDI29KMemoryStack 0 +#define UDI29KRegisterStack 1 + +/* Enumerate the chips for ChipVersions array */ +#define UDI29K29KVersion 0 +#define UDI29K29027Version 1 + +/* Define special value for elements of ChipVersions array for + * chips not present */ +#define UDI29KChipNotPresent -1 + +typedef UDIInt32 UDICount; +typedef UDIUInt32 UDISize; + +typedef UDIInt CPUSpace; +typedef UDIUInt32 CPUOffset; +typedef UDIUInt32 CPUSizeT; diff --git a/gdb/29k-share/udi/udiptcfg.h b/gdb/29k-share/udi/udiptcfg.h new file mode 100644 index 0000000000..1641a53bcd --- /dev/null +++ b/gdb/29k-share/udi/udiptcfg.h @@ -0,0 +1,19 @@ +/* Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +#include "udipt29k.h" diff --git a/gdb/29k-share/udi/udisoc.h b/gdb/29k-share/udi/udisoc.h new file mode 100644 index 0000000000..bc68b3944e --- /dev/null +++ b/gdb/29k-share/udi/udisoc.h @@ -0,0 +1,184 @@ +/* This module defines constants used in the UDI IPC modules. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +static char udisoc_h[]="@(#)udisoc.h 2.6 Daniel Mann"; +static char udisoc_h_AMD[]="@(#)udisoc.h 2.4, AMD"; + +#define LOCAL static +#define company_c 1 /* AMD Company id */ +#define product_c 1 /* socket IPC id */ + +/* Enumerate the UDI procedure services +*/ +#define UDIConnect_c 0 +#define UDIDisconnect_c 1 +#define UDISetCurrentConnection_c 2 +#define UDICapabilities_c 3 +#define UDIEnumerateTIPs_c 4 +#define UDIGetErrorMsg_c 5 +#define UDIGetTargetConfig_c 6 +#define UDICreateProcess_c 7 +#define UDISetCurrentProcess_c 8 +#define UDIDestroyProcess_c 9 +#define UDIInitializeProcess_c 10 +#define UDIRead_c 11 +#define UDIWrite_c 12 +#define UDICopy_c 13 +#define UDIExecute_c 14 +#define UDIStep_c 15 +#define UDIStop_c 16 +#define UDIWait_c 17 +#define UDISetBreakpoint_c 18 +#define UDIQueryBreakpoint_c 19 +#define UDIClearBreakpoint_c 20 +#define UDIGetStdout_c 21 +#define UDIGetStderr_c 22 +#define UDIPutStdin_c 23 +#define UDIStdinMode_c 24 +#define UDIPutTrans_c 25 +#define UDIGetTrans_c 26 +#define UDITransMode_c 27 +#define UDITest_c 28 +#define UDIKill_c 29 + +#define udr_UDIInt8(udrs, obj) udr_work(udrs, obj, 1) +#define udr_UDIInt16(udrs, obj) udr_work(udrs, obj, 2) +#define udr_UDIInt32(udrs, obj) udr_work(udrs, obj, 4) +#define udr_UDIInt(udrs, obj) udr_work(udrs, obj, 4) + +#define udr_UDIUInt8(udrs, obj) udr_work(udrs, obj, 1) +#define udr_UDIUInt16(udrs, obj) udr_work(udrs, obj, 2) +#define udr_UDIUInt32(udrs, obj) udr_work(udrs, obj, 4) +#define udr_UDIUInt(udrs, obj) udr_work(udrs, obj, 4) + +#define udr_UDIBool(udrs, obj) udr_UDIInt32(udrs, obj) +#define udr_UDICount(udrs, obj) udr_UDIInt32(udrs, obj) +#define udr_UDISize(udrs, obj) udr_UDIUInt32(udrs, obj) +#define udr_CPUSpace(udrs, obj) udr_UDIInt32(udrs, obj) +#define udr_CPUOffset(udrs, obj) udr_UDIUInt32(udrs, obj) +#define udr_CPUSizeT(udrs, obj) udr_UDIUInt32(udrs, obj) +#define udr_UDIBreakId(udrs,obj) udr_UDIUInt(udrs, obj) +#define udr_UDISizeT(udrs, obj) udr_UDIUInt(udrs, obj) +#define udr_UDIMode(udrs, obj) udr_UDIUInt(udrs, obj) + +#define udr_UDIHostMemPtr(udrs, obj) udr_UDIUInt32(udrs, obj) +#define udr_UDIVoidPtr(udrs, obj) udr_UDIUInt32(udrs, obj) +#define udr_UDIPId(udrs, obj) udr_UDIUInt(udrs, obj) +#define udr_UDISessionId(udrs, obj) udr_UDIInt32(udrs, obj) +#define udr_UDIError(udrs, obj) udr_UDIInt32(udrs, obj) +#define udr_UDIStepType(udrs, obj) udr_UDIInt32(udrs, obj) +#define udr_UDIBreakType(udrs, obj) udr_UDIInt32(udrs, obj) + + +#define UDR_ENCODE 1 +#define UDR_DECODE 2 + +typedef struct UDR_str +{ + int udr_op; /* UDR operation */ + int previous_op; + int sd; + int bufsize; + char* buff; + char* getbytes; + char* putbytes; + char* putend; + int domain; + char* soc_name; +} UDR; + +/******************************************* Declare UDR suport functions */ +int udr_create UDIParams(( + UDR* udrs, + int sd, + int size + )); + +int udr_free UDIParams(( + UDR* udrs, + )); + +int udr_signal UDIParams(( + UDR* udrs, + )); + +int udr_sendnow UDIParams(( + UDR* udrs + )); + +int udr_work UDIParams(( + UDR* udrs, + void* object_p, + int size + )); + +int udr_UDIResource UDIParams(( + UDR* udrs, + UDIResource* object_p + )); + +int udr_UDIRange UDIParams(( + UDR* udrs, + UDIRange* object_p + )); + +int udr_UDIMemoryRange UDIParams(( + UDR* udrs, + UDIMemoryRange* object_p + )); + +int udr_UDIMemoryRange UDIParams(( + UDR* udrs, + UDIMemoryRange* object_p + )); + +int udr_int UDIParams(( + UDR* udrs, + int* int_p + )); + +int udr_bytes UDIParams(( + UDR* udrs, + char* ptr, + int len + )); + +char* udr_inline UDIParams(( + UDR* udrs, + int size + )); + +char* udr_getpos UDIParams(( + UDR* udrs + )); +int udr_setpos UDIParams(( + UDR* udrs, + char* pos + )); + +int udr_readnow UDIParams(( + UDR* udrs, + int size + )); + +int udr_align UDIParams(( + UDR* udrs, + int size, + )); diff --git a/gdb/29k-share/udi/udr.c b/gdb/29k-share/udi/udr.c new file mode 100644 index 0000000000..10a9f38c6a --- /dev/null +++ b/gdb/29k-share/udi/udr.c @@ -0,0 +1,427 @@ +/* This module supports sending and receiving data objects over a + socket conection. + + Copyright 1993 Free Software Foundation, Inc. + + This file is part of GDB. + + 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. */ + +static char udr_c[]="@(#)udr.c 2.8 Daniel Mann"; +static char udr_c_AMD[]="@(#)udr.c 2.3, AMD"; +/* +* All data is serialised into a character stream, +* and de-serialised back into the approproiate objects. +********************************************************************** HISTORY +*/ +/* This is all unneeded on DOS machines. */ +#ifndef __GO32__ + +#include +#include + +/* This used to say sys/fcntl.h, but the only systems I know of that + require that are old (pre-4.3, at least) BSD systems, which we + probably don't need to worry about. */ +#include + +#include +#include "udiproc.h" +#include "udisoc.h" + +extern int errno; +extern char* malloc(); + +/* local type decs. and macro defs. not in a .h file ************* MACRO/TYPE +*/ + +/* global dec/defs. which are not in a .h file ************* EXPORT DEC/DEFS +*/ +int udr_errno; /* error occurs during UDR service */ + +/* local dec/defs. which are not in a .h file *************** LOCAL DEC/DEFS +*/ + +/****************************************************************** UDR_CREATE +* Build UDR structure for character stream processing. +*/ +int udr_create(udrs, sd, size) +UDR* udrs; +int sd; +int size; +{ + udrs->sd = sd; + if(!udrs->buff) udrs->buff = malloc(size); + udrs->getbytes = udrs->buff; /* set the buffer to the start */ + udrs->putbytes = udrs->buff; + udrs->putend = udrs->buff; + udrs->udr_op = -1; /* don't know the direction */ + udrs->previous_op = -1; /* don't know the direction */ + udrs->bufsize = size; + return 0; +} + +/******************************************************************** UDR_FREE +* Free USR structure and close socket. +*/ +int udr_free(udrs) +UDR* udrs; +{ + close(udrs->sd); + free(udrs->buff); + return 0; +} + +/****************************************************************** UDR_SIGNAL +* Send a signal to the process at the other end of the socket, +* indicating that it should expect to recieve a new message shortly. +*/ +int udr_signal(udrs) +UDR* udrs; +{ + if(send(udrs->sd, "I", 1, MSG_OOB) == -1) + { perror("ERROR, udr_signal(), send(...MSG_OOB)"); + udr_errno = UDIErrorIPCInternal; + return -1; /* return error code */ + } + return 0; +} + +/***************************************************************** UDR_SENDNOW +* used to flush the current character stream buffer to +* the associated socket. */ +int udr_sendnow(udrs) +UDR* udrs; +{ + int size = (UDIUInt32)(udrs->putend) - (UDIUInt32)(udrs->buff); + if(udrs->previous_op == 0) + { udr_errno = UDIErrorIPCInternal; + return -1; + } + udrs->putbytes = udrs->buff; + udrs->putend = udrs->buff; + if (write(udrs->sd, udrs->buff, size) == -1) + { perror("ERROR, udr_sendnow(), write() call: "); + udr_errno = UDIErrorIPCInternal; + return -1; /* return error code */ + } + return 0; +} + +/******************************************************************** UDR_WORK +* Function to send or recieve data from the buffers supporting +* socket communication. The buffer contains serialised objects +* sent/recieved over a socket connection. +*/ +int udr_work(udrs, object_p, size) +UDR* udrs; +void* object_p; +int size; +{ + int cnt, remain; + + if(udrs->udr_op != udrs->previous_op) + { if(udrs->previous_op == 0) + { udr_errno = UDIErrorIPCInternal; + return -1; + } + udrs->previous_op= udrs->udr_op; + udrs->putbytes = udrs->buff; + udrs->getbytes = udrs->buff; + } + + if(udrs->udr_op == UDR_ENCODE) + { /* write data into character stream buffer */ + if( (UDIUInt32)(udrs->putbytes) + size > + (UDIUInt32)(udrs->buff) + (UDIUInt32)(udrs->bufsize) ) + { udr_errno = UDIErrorIPCInternal; + return -1; + } + memcpy(udrs->putbytes, (char*)object_p, size); + udrs->putbytes += size; + if(udrs->putbytes > udrs->putend) udrs->putend = udrs->putbytes; + } + else if(udrs->udr_op == UDR_DECODE) + { + if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size ) + { /* need more data in character stream buffer */ + remain = (UDIUInt32)(udrs->bufsize) - + ( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->buff) ); + if( ((UDIUInt32)(udrs->bufsize) + (UDIUInt32)(udrs->buff) + - (UDIUInt32)(udrs->getbytes)) < size) + { udr_errno = UDIErrorIPCInternal; + return -1; + } + cnt = read(udrs->sd, (char*)udrs->putbytes, remain); + if(cnt == -1) perror("ERROR udr_work(), read() failure: "); + udrs->putbytes += cnt; + if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size ) + { udr_errno = UDIErrorIPCInternal; + return -1; /* return error code */ + } + } /* read data from character stream buffer */ + memcpy((char*)object_p, udrs->getbytes, size); + udrs->getbytes += size; + } + else + { udr_errno = UDIErrorIPCInternal; + return -1; + } + return 0; +} + +/************************************************************* UDR_UDIResource +*/ +int udr_UDIResource(udrs, object_p) +UDR* udrs; +UDIResource* object_p; +{ + int retval; + + retval = udr_CPUSpace(udrs, &object_p->Space); + retval = retval | udr_CPUOffset(udrs, &object_p->Offset); + return retval; +} + +/**************************************************************** UDR_UDIRange +*/ +int udr_UDIRange(udrs, object_p) +UDR* udrs; +UDIRange* object_p; +{ + int retval; + + retval = udr_CPUOffset(udrs, &object_p->Low); + retval = retval | udr_CPUOffset(udrs, &object_p->High); + return retval; +} + +/********************************************************** UDR_UDIMemoryRange +*/ +int udr_UDIMemoryRange(udrs, object_p) +UDR* udrs; +UDIMemoryRange* object_p; +{ + int retval; + + retval = udr_CPUSpace(udrs, &object_p->Space); + retval = retval | udr_CPUOffset(udrs, &object_p->Offset); + retval = retval | udr_CPUSizeT(udrs, &object_p->Size); + return retval; +} + +/****************************************************************** UDR_string +*/ +int udr_string(udrs, sp) +UDR* udrs; +char* sp; +{ + int len, retval; + + if(udrs->udr_op == UDR_ENCODE) + { + if(sp) + { len = strlen(sp) + 1; + retval = udr_UDIInt32(udrs, &len); + retval = retval | udr_work(udrs, sp, len); + } + else /* deal with NULL pointer */ + { len = 0; + retval = udr_UDIInt32(udrs, &len); + } + } + else if(udrs->udr_op == UDR_DECODE) + { + retval = udr_UDIInt32(udrs, &len); + if(len) + retval = retval | udr_work(udrs, sp, len); + else *sp = '\0'; /* terminate string */ + } + else + { udr_errno = UDIErrorIPCInternal; + return -1; + } + return retval; +} + +/******************************************************************* UDR_BYTES +*/ +int udr_bytes(udrs, ptr, len) +UDR* udrs; +char* ptr; +int len; +{ + return udr_work(udrs, ptr, len); +} + +/********************************************************************* UDR_INT +*/ +int udr_int(udrs, int_p) +UDR* udrs; +int* int_p; +{ + int ret_val; + UDIInt32 udr_obj; /* object of know size */ + + if(udrs->udr_op == UDR_ENCODE) + { + udr_obj = *int_p; /* copy into know object size */ + return udr_UDIInt32(udrs, &udr_obj); + } + else if(udrs->udr_op == UDR_DECODE) + { + ret_val = udr_UDIInt32(udrs, &udr_obj); /* get object of known size */ + *int_p = udr_obj; + return ret_val; + } + else + { udr_errno = UDIErrorIPCInternal; + return -1; + } +} + +/****************************************************************** UDR_INLINE +*/ +char* udr_inline(udrs, size) +UDR* udrs; +int size; +{ + if(udrs->udr_op != udrs->previous_op) + { if(udrs->previous_op == 0) + { udr_errno = UDIErrorIPCInternal; + return 0; + } + udrs->previous_op= udrs->udr_op; + udrs->putbytes = udrs->buff; + udrs->getbytes = udrs->buff; + } + if(udrs->udr_op == UDR_ENCODE) + { + if(udrs->putbytes + size > udrs->bufsize + udrs->buff) + return 0; + udrs->putbytes += size; + return udrs->putbytes - size; + } + else if(udrs->udr_op == UDR_DECODE) + { + if(udrs->getbytes + size > udrs->bufsize + udrs->buff) + return 0; + udrs->getbytes += size; + return udrs->getbytes - size; + } + else + { udr_errno = UDIErrorIPCInternal; + return 0; + } +} + +/****************************************************************** UDR_GETPOS +*/ +char* udr_getpos(udrs) +UDR* udrs; +{ + if(udrs->udr_op == UDR_ENCODE) + { + return udrs->putbytes; + } + else if(udrs->udr_op == UDR_DECODE) + { + return udrs->getbytes; + } + else + { udr_errno = UDIErrorIPCInternal; + return 0; + } +} + +/****************************************************************** UDR_SETPOS +*/ +int udr_setpos(udrs, pos) +UDR* udrs; +char* pos; +{ + if( ((UDIUInt32)pos > (UDIUInt32)(udrs->buff) + (UDIUInt32)(udrs->bufsize)) + || ((UDIUInt32)pos < (UDIUInt32)(udrs->buff) ) ) + { udr_errno = UDIErrorIPCInternal; + return 0; + } + if(udrs->udr_op == UDR_ENCODE) + { + udrs->putbytes = pos; + return 1; + } + else if(udrs->udr_op == UDR_DECODE) + { + udrs->getbytes = pos; + return 1; + } + else + { udr_errno = UDIErrorIPCInternal; + return 0; + } +} + +/***************************************************************** UDR_READNOW +* Try and ensure "size" bytes are available in the +* receive buffer character stream. +*/ +int udr_readnow(udrs, size) +UDR* udrs; +int size; +{ + int cnt, remain; + + if(udrs->udr_op == UDR_ENCODE) + { + udr_errno = UDIErrorIPCInternal; + return -1; + } + else if(udrs->udr_op == UDR_DECODE) + { + if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size ) + { /* need more data in character stream buffer */ + remain = (UDIUInt32)(udrs->bufsize) - + ( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->buff) ); + cnt = read(udrs->sd, (char*)udrs->putbytes, remain); + if(cnt == -1) perror("ERROR udr_work(), read() failure: "); + udrs->putbytes += cnt; + if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size ) + { fprintf(stderr,"ERROR, udr_readnow() too few bytes in stream\n"); + return -1; /* return error code */ + } + } + } + else + { udr_errno = UDIErrorIPCInternal; + return -1; + } + return 0; +} + +/******************************************************************* UDR_ALIGN +*/ +int udr_align(udrs, size) +UDR* udrs; +int size; +{ + char* align; + int offset; + + align = udr_getpos(udrs); + offset = size - ((int)align & (size -1)); + offset = offset & (size -1); + if(offset) udr_setpos(udrs, align + offset); +} +#endif /* __GO32__ */ diff --git a/gdb/29k-share/udi_soc b/gdb/29k-share/udi_soc new file mode 100644 index 0000000000..343317f255 --- /dev/null +++ b/gdb/29k-share/udi_soc @@ -0,0 +1,9 @@ +# @(#)udi_soc 2.1 Daniel Mann +# NOTE: the Session string must not start whith white-space characters. +# Format of string is: +# +soc2cayman AF_INET cayman /bin/udi_tip ... +soc2tip AF_UNIX astring tip.exe ... +cuba AF_UNIX soc_name ../bin.68020/udi_tip stuff to pass +cayman AF_INET cayman this_entry_not_matter stuff to pass +iss AF_UNIX * sun4/isstip -r osboot diff --git a/gdb/COPYING b/gdb/COPYING new file mode 100644 index 0000000000..60549be514 --- /dev/null +++ b/gdb/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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 + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/gdb/ChangeLog b/gdb/ChangeLog new file mode 100644 index 0000000000..0ae5117e62 --- /dev/null +++ b/gdb/ChangeLog @@ -0,0 +1,1116 @@ +1999-04-07 Jim Blandy + + * GDB 4.18 released. + +1999-04-06 Jim Blandy + + * README: Change revision numbers in text to "4.18". + * Makefile.in (VERSION): Set to 4.18. + +1999-04-06 Stan Shebs + + * solib.c (clear_solib): Don't call disable_breakpoints_in_shlibs, + this breaks rerunning on sun4 native. + +1999-04-05 Stan Shebs + + * NEWS: Incorporate suggestions from David Taylor and Jason Molenda. + +1999-04-02 Jim Blandy + + * README: Note that GDB requires an ANSI C compiler, and explain + how to get GCC. + + * README: Update. + It says we provide HTML documentation, but we don't. + The instructions for building the .info files were wrong. + It didn't mention that texinfo.tex was provided with GDB. + It didn't mention the intl, texinfo, etc, or util directories. + (Perhaps util would be best left unmentioned.) + It didn't mention the --enable-build-warnings flag, or the --host + flag. + It didn't mention remote-array.c or remote-d10v.c. + It had an old address for reporting bugs. It's now gdb@gnu.org. + It mentioned xxgdb, which is obsolete, but didn't mention DDD. + + * config/sparc/nm-linux.h: Don't redefine PT_ATTACH to use the + deprecated PTRACE_SUNATTACH compatibility commands. The + definitions from are fine. + +1999-04-01 Stan Shebs + + * NEWS: Add more notes about user-visible changes. + +1999-04-01 Jim Blandy + + Fix for cross-debugging on an AIX host from Johanna Svenningsson: + * ax-gdb.h (enum axs_lvalue_kind): Remove trailing comma from enum. + * ax.h (enum agent_op, enum agent_flaws): Same. + * tracepoint.h (enum actionline_type): Same. + * config/xm-aix4.h: Add declaration for termdef. + +1999-03-31 Stan Shebs + + * jv-lang.h (dynamics_objfile): Remove decl, conflicts with static + decl in jv-lang.c. + +1999-03-31 Jim Blandy + + Mon Mar 29 14:40:44 1999 David Taylor + + * valops.c (search_struct_field): revert HP merge change + to this function -- it causes messages to be printed about + member class ambiguity when the compiler is happy. + (search_struct_field_aux): delete -- added as part of HP merge + change; with aforementioned change it is no longer called. + +1999-03-26 Jim Blandy + + Merged change from Keith Seitz: + + 1999-03-16 Keith Seitz + + * remote.c (reomte_binary_checked): New file global. + (check_binary_download): New function to check if + stub supports binary downloading that works with + stubs that are not eight bit clean. + (remote_write_bytes): Check for binary download capability + and use it if available. + Remove references to global remote_binary_length. What a hack. + (putpkt_binary): New function. + (putpkt): Call putpkt_binary. + Use xor to escape trouble characters. + * m32r-stub.c (bin2mem): Follow escape char convention change. + + Applied patch from Stu Grossman: + + Mon Feb 22 12:32:19 1999 Per Bothner + + * jv-valprint.c (java_val_print): Restore line that somehow got lost. + +1999-03-24 Stan Shebs + + * Makefile (VERSION): Bump to 4.17.87. + + Attempt to sort out SCO-related configs. + * configure.host (i[3456]86-*-sysv4.2*): Use instead of + i[3456]86-*-sysv4.2MP and i[3456]86-*-sysv4.2uw2*. + (i[3456]86-*-sysv5*): Recognize. + * configure.tgt (i[3456]86-*-sco3.2v5*, i[3456]86-*-sco3.2v4*): + Recognize. + +Wed Mar 24 01:01:27 1999 Andrew Cagney + + * rs6000-tdep.c (rs6000_software_single_step): Change SIGNAL to + unsigned int. + + From Rodney Brown : + * target.h (enum thread_control_capabilities), breakpoint.h (enum + bptype), breakpoint.c (enum insertion_state_t): Strict ISO-C + doesn't allow trailing comma in enum definition. + +1999-03-23 Jason Molenda (jsm@bugshack.cygnus.com) + + * hppa-tdep.c (pa_register_look_aside): Remove CPU_HPPA_RISC_20 + check, test for presence of struct save_state_t and the ss_wide + member directly. + * configure.in: Remove CPU_HPPA_RISC_20 test. Add tests for + HAVE_STRUCT_SAVE_STATE_T and HAVE_STRUCT_MEMBER_SS_WIDE. + * acconfig.h: Add HAVE_STRUCT_SAVE_STATE_T HAVE_STRUCT_MEMBER_SS_WIDE. + * configure, config.in: Regenerated. + +Tue Mar 23 17:22:57 1999 Philippe De Muyter + + * remote.c, parse.c: Include ctype.h. + +Mon Mar 22 13:25:13 1999 Michael Snyder + + * infttrace.c (proc_wait): rename to ptrace_wait. + +1999-03-17 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in (HAVE_MULTIPLE_PROC_FDS): Don't define for Solaris + hosts--gdb doesn't support this yet. + * configure: Regenerated. + +Tue Mar 16 01:11:33 1999 Andrew Cagney + + * target.h (struct target_ops), target.c (debug_to_query), + remote.c (pack_hex_byte, remote_query): Promote char parameters to + int. Stops compile problems with pedantic ISO-C compilers. + +Tue Mar 16 15:29:04 1999 Stan Shebs + + * jv-lang.c, jv-lang.h (java_primitive_type): Declare argument + as int instead of char. + +1999-03-15 Jim Blandy + + Merged changes for binary downloads from Michael Snyder: + + Fri Mar 12 13:11:48 1999 Michael Snyder + + * remote.c (remote_write_bytes): fix 'X' packet protocol so that it + can't overwrite the end of its buffer with escaped characters. + +1999-03-12 Jim Blandy + + Merged changes for HP/UX 9 from Jason Molenda: + + 1999-03-08 Jason Molenda (jsm@bugshack.cygnus.com) + + * infttrace.c (hppa_get_process_events): Removed. Function only + usable on HPUX 10 and above. It is not called by any other part + of GDB. + * hppah-nat.c (hppa_get_process_events): Ditto. + (child_pid_to_exec_file): Only call ptrace with PT_GET_PROCESS_PATHNAME + if that symbol has been defined. + * config/pa/nm-hppah.h: Don't set up prototypes et al for + hppa_get_process_events. + + * config/pa/hppahpux.mh (TERM_LIB): Do not initialize, let autoconf + determine best library automatically. + * config/pa/hpux1020.mh: Ditto. + * config/pa/hpux1100.mh: Ditto. + * configure.in (TERM_LIB): Also check for libHcurses. + * configure: Regenerated. + + Merged changes to accomodate the Hurd: + + Thu Mar 11 18:05:11 1999 Michael Snyder + + * infptrace.c (proc_wait): Rename to ptrace_wait. + * inftarg.c (child_wait): call ptrace_wait instead of proc_wait. + * inferior.h: Declare ptrace_wait instead of proc_wait. + +1999-03-11 Jim Blandy + + * Makefile.in (VERSION): click to 4.17.86, for next snapshot. + +1999-03-09 Rodney Brown + + Get working on UnixWare 2.1.1. + * acconfig.h: Update for defines for procfs.c. + * configure.in: Identify defines for procfs.c. + * configure.host: i386-*-sysv4.2uw2* => i386v42mp + * configure.tgt: i386-*-sysv4.2uw2* => i386v42mp + * configure, config.in: Regenerate. + * procfs.c: Rename HAVE_NO_PRRUN_T to HAVE_PRRUN_T (autoconf + standard), wrap UNIXWARE difference in THE_PR_LWP macro for + legibility. + * config/i386/tm-i386v42mp.h: Remove HAVE_PSTATUS_T, + HAVE_NO_PRRUN_T; now set by configure. + +1999-03-04 Jim Blandy + + Merged changes from Jason Molenda: + + 1999-02-24 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Set CPU_HPPA_RISC_20 if the host CPU is a PA 2.0 + processor. + * acconfig.h: Add CPU_HPPA_RISC_20 + * config.in, configure: Regenerated. + * hppa-tdep.c (pa_register_look_aside): Only refer to new + structure elements if we are on a PA2.0 system. + * defs.h: Include limits.h. + + Merged changes from Stu Grossman: + + Wed Feb 17 10:10:27 1999 Stu Grossman + + * gdbtypes.h (get_discrete_bounds): Remove duplicate decl. + + * jv-typeprint.c (java_type_print_base): Change fputs => fputs_filtered. + + Mon Jan 25 18:30:57 1999 Per Bothner + + * jv-lang.h (JAVA_OBJECT_SIZE): Change from hard-wired constant. + (java_primitive_type_from_name, get_java_object_header_size): Declare. + * jv-lang.c (java_class_from_object): Use get_java_object_type. + * jv-lang.c: Update Class field names: dtable->vtable, + msize->method_count, nfields->field_count, bfsize->size_in_bytes, + nmethods->method_count. + (type_from_class): Demangle array type names. + (java_link_class_type): Array type names are now demangled. + (get_java_object_type): If not defined yet, try looking it up. + (get_java_object_header_size): New function. + (java_primitive_type_from_name): New function. + (java_demangled_signature_length, java_demangled_signature_copy): New. + (java_demangle_type_signature): Re-implement using above functions. + (evaluate_subexp_java): For UNOP_IND, call evaluate_subexp_java + to evaluate subexp (not evaluate_subexp_standard). + For BINOP_SUBSCRIPT update for new array type naming scheme. + * jv-valprint.c (java_value_print): Use java_class_from_object. + Update array printing to new array type naming convention. + (java_val_print): Doing check_typedef when printing a pointer is + is a waste of effort. Also, handle TYPE_CODE_INT, to make sure + Java bytes as not printed as C chars. + + Fri Jan 8 16:58:22 1999 Stu Grossman + + * blockframe.c (find_pc_sect_partial_function): Search full symtabs as + a last ditch effort (after the partial & minimal symtabs). + * defs.h utils.c: Fixup prototypes for vprintf_filtered, + vfprintf_filtered, vfprintf_unfiltered and vprintf_unfiltered to return + ints to match their standard equivalents. + * defs.h symtab.c top.c: Create skip_prologue_hook to allow Java to + control the prologue skipping process. + * jv-typeprint.c (java_type_print_base): Remove extern for + jv_class_demangle, add new arg for objfile (NULL). + * symtab.h: Remove struct sourcevector and struct source. Definately + not needed. + * values.c (value_virtual_fn_field): Fixes code to handle new vtable + debug info format. Patch from marka. + + Wed Dec 16 23:11:25 1998 Stu Grossman + + * jv-lang.c (java_class_from_object java_class_is_primitive + is_object_type): Change dtable to vtable. + * (java_primitive_type): Change arg to type char. + * (_initialize_java_language): Make java_char_type be unsigned. + * jv-lang.h: Fixup prototypes. + + Mon Dec 7 19:02:15 1998 Stu Grossman + + * jv-valprint.c (java_value_print): Fix printing of values where + run time type != compile time type. + + Fri Dec 4 15:23:38 1998 Stu Grossman + + * Makefile.in: Whack out m2-typeprint.c. + * c-typeprint.c (c_type_print_varspec_suffix) typeprint.h: Make this + global. It's needed by Java. + * (c_type_print_base): Whack prefix off of qualified method names + (names with name spaces). + * gdbtypes.h (struct cplus_struct_type): Add bits for Java attributes. + Shrink voffset + to 16 bits to compensate for added bits above (hopefully this is still + enough). + * Add new accessor macros (TYPE_FND_FIELD_PUBLIC, ...) for all new + attribute bits. + * jv-typeprint.c (java_type_print_base): Fix printing of method + attributes. Handle JVM style manglings. + * (java_print_type): Enable code type print varspec_suffix to allow + array indices to print out. + * jv-valprint.c (java_val_print): Minor formatting. + * m2-lang.c (m2_language_d): Change m2_print_type to c_print_type. + * stabsread.c (read_member_functions): Save public and static attributes. + +1999-03-02 Stan Shebs + + From Gary Thomas : + * arm-tdep.c (ARM_LE_BREAKPOINT, ARM_BE_BREAKPOINT, + THUMB_LE_BREAKPOINT, THUMB_BE_BREAKPOINT): Use illegal instruction + instead of SWI 24. + * config/arm/tm-arm.h (CALL_DUMMY): Ditto. + (IN_SIGTRAMP): Define. + +1999-03-01 Jim Blandy + + * configure.in (TERM_LIB): Move the code which sets this to a + better place. + +1999-02-25 Stan Shebs + + * breakpoint.c (SOLIB_LOADED_LIBRARY_PATHNAME, + SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_CREATE_CATCH_LOAD_HOOK, + SOLIB_CREATE_CATCH_UNLOAD_HOOK): Supply default definitions. + * infrun.c (SOLIB_IN_DYNAMIC_LINKER): Ditto. + +1999-02-23 Jim Blandy + + Patch from Jason Molenda (jsm@bugshack.cygnus.com) + * configure.in (TERM_LIB): Move checking for TERM_LIB, substituting. + * configure, aclocal.m4, config.in: Regenerated. + +1999-02-22 Jim Blandy + + * Makefile.in (VERSION): Bump to 4.17.85, for the release process. + + Patch from Elena Zannoni + * breakpoint.c (watch_command_1): Reformat comment. + + Patch from Elena Zannoni + * c-typeprint.c (c_type_print_base): Reformat comments. + + Patch from Edith Epstein : + * config/pa/nm-hppah.h: Added prototype declarations for + hppa_enable_page_protection_events and + hppa_disable_page_protection_events. + + Patch from Edith Epstein : + * infttrace.c (hppa_insert_hw_watchpoint): Make sure that + function always returns a value. + (hppa_remove_hw_watchpoint): Make sure that function always + returns a value. + + Patch from Edith Epstein : + * inftarg.c (child_wait): Fixed code that checks whether + or not the target program has done a fork/vfork. + related_pid does not have a value unless the target + program has forked/vforked. + +1999-02-22 Jim Blandy + + * tm-h8500.h, i386lynx-nat.c: Removed. These files are long + dead; it seems that they only appeared due to some CVS weirdness. + If they appear again, we may need to distribute garlic and holy + water. + +1999-02-16 Jim Blandy + + * Makefile.in (VERSION): Bump to 4.17.2. + +Sun Feb 14 18:21:08 1999 Mark Alexander + + * config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that + coffread.c will correctly handle char or short function parameters. + +1999-02-11 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure, aclocal.m4: Regenerate with correct version of aclocal. + +1999-02-10 Syd Polk + + * acinclude.m4: Fix for new location of itclConfig.sh and itkConfig.sh. + * aclocal.m4: Regnerate. + * configure: Regenerate. + +1999-02-10 Jason Molenda (jsm@bugshack.cygnus.com) + + * demangle.c: Fix comments to mention "set demangle-style" + instead of "set demangle". + Run through indent to fix minor indenting problems. + +Wed Feb 10 17:53:09 1999 Bob Manson + + * i386-tdep.c (gdb_print_insn_i386): Add missing returns. + +Wed Feb 10 13:17:21 1999 Stan Shebs + + Declare Gould configuration obsolete: + * configure.host, configure.tgt: Comment out Gould configs. + * Makefile.in: Comment out Gould-related actions. + * gould-xdep.c, gould-tdep.c, config/gould/*: Comment out. + * NEWS: Mention obsolete status. + +1999-02-09 DJ Delorie + + * sparcl-tdep.c: UDP download works in cygwin + +1999-02-08 Jason Molenda (jsm@bugshack.cygnus.com) + + * gnu-regex.c: Check ENABLE_NLS instead of HAVE_LIBINTL_H. + * configure.in: Don't check for libintl.h. + * configure, config.in: Regenerated. + +Mon Feb 8 18:10:50 1999 Stan Shebs + + * NEWS: Mention new X packet and PowerPC variant support. + +1999-02-08 Nick Clifton + + * configure.host: Add support for StrongARM host. + * configure.tgt: Add support for StrongARM target. + +Mon Feb 8 12:05:05 1999 David Taylor + + * dsrec.c (make_srec): Cast targ_addr to int in call to sprintf + otherwise on big endian machine with a bfd_vma of 64 bits, + *everything* gets loaded at location 0. + +Mon Feb 7 10:05:43 1999 Frank Ch. Eigler + + * infrun.c (wait_for_inferior): Allow SIGTRAP to be "pass"ed + to target program. + +Fri Feb 5 16:46:14 1999 Stan Shebs + + * NEWS: Add mentions of various new things. + +Thu Feb 4 00:19:14 1999 Christopher Faylor + + * configure.in: Move termcap determination later in the + file to catch setting of cygwin flag. + * configure: Regenerate. + +Wed Feb 3 14:16:38 1999 Christopher Faylor + + * config/i386/cygwin.mh: Move TERMCAP test code to configure.in. + * configure.in: Treat libtermcap.a detection as a special case + when hosting on cygwin. + * configure: Regenerate. + +1999-02-03 Keith Seitz + + * remote.c (remote_binary_download, remote_binary_length): New + static globals for dealing with binary transmissions. + (remote_write_bytes): Add support for binary downloads + by shadowing the "M" packet with a new "X" packet. This + defaults to ON; if the stub does not understand this, it + will fall back to using "M". + (putpkt): Add support for binary downloading. + * monitor.c (monitor_expect): The mon2000 monitor + on the MSA2000 will also emit random DC1/DC3 chars. + * m32r-stub.c: Change all char's to unsigned char's + to support binary downloading. + (handle_exception): Add support for binary downloading + via a new "X" packet. + (getpacket): Do NOT strip eighth bit of incoming chars. + Watch out for escaped characters in the incoming stream. + (putpacket): Do NOT strip eighth bit of incoming chars. + (bin2mem): New function to write binary data directly to + memory. + * m32r-rom.c: Add new "mon2000" target. + +Tue Feb 2 18:40:29 1999 Elena Zannoni + + * hp-psymtab-read.c (hpread_build_psymtabs): Coerce first arg + passed to make_cleanup to the correct type. + (hpread_quick_traverse): Change fifth arg to call to + hpread_end_psymtab to be 0. + Compare CURR_MODULE_END to 0 rather than NULL. + Get rid of ifdef'ed out code. + (scan_procs): Get rid of ifdef'ed out code. + + * somread.c (som_symfile_read): Coerce first argument passed to + make_cleanup to the correct type. + +Tue Feb 2 17:36:29 1999 Elena Zannoni + + * hp-psymtab-read.c (do_pxdb): New function. Check whether the + file needs to be processed by pxdb (an HP debug info massaging + tool), if so call it. + (hpread_build_psymtabs): Initialize scan_start to 0 and + simplify flow of control. + + * somread.c (som_symfile_read): Add call to do_pxdb (), + in hp-psymtab-read.c. + + * symfile.c (symbol_file_add): Remove ifdef'ed out HPUX specific + code. + (symfile_bfd_open): Remove HPUXHPPA ifdef'ed code. Code is now + in hp-psymtab-read.c. + +1999-02-02 Martin Hunt + + * printcmd.c (print_scalar_formatted): Use strcat to concat all + the output together before calling fprintf_filtered(). + +1999-02-01 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Require autoconf 2.13. + (AM_EXEEXT): Replace with new AC_EXEEXT. + * acinclude.m4: Move itcl header macros from aclocal.m4 to here. + * aclocal.m4: Regenerated. + * configure: Regenerated. + +1999-02-01 Jim Blandy + + Allow PPC users to select which PPC/RS6000 variant they're + debugging at run-time. At the moment, the only thing this affects + is the set of registers visible. + * config/rs6000/tm-rs6000.h (REGISTER_NAME): Define this as a call + to the function rs6000_register_name. + (rs6000_register_name): Include extern decl. + (NUM_REGS): Bump to 183. What's the right way to do this? + (FIRST_UISA_SP_REGNUM, LAST_UISA_SP_REGNUM): Renamed from + FIRST_SP_REGNUM, LAST_SP_REGNUM. + (REGISTER_BYTES): Recompute this. + * rs6000-tdep.c: Renamed all uses of FIRST_SP_REGNUM and + LAST_SP_REGNUM to FIRST_UISA_SP_REGNUM and LAST_UISA_SP_REGNUM, with + some concomitant formatting changes. + #include "gdbcmd.h", so we can define commands here. + (struct variant): New structure. + (COMMON_UISA_REG_NAMES, PPC_UISA_SPR_NAMES, PPC_SEGMENT_REG_NAMES, + PPC_32_OEA_SPR_NAMES, num_registers): New macros. + (register_names_rs6000, register_names_uisa, register_names_403, + register_names_403GC, register_names_505, register_names_860, + register_names_601, register_names_602, register_names_603, + register_names_604, register_names_750, variants): New variables. + (rs6000_register_name, install_variant, find_variant_by_name, + install_variant_by_name, list_variants, show_current_variant, + set_processor, show_processor): New functions. + (_initialize_rs6000_tdep): Define new commands `set processor' and + `show processor', and call install_variant_by_name to set the + default variant. + * rs6000-nat.c: Renamed all uses of FIRST_SP_REGNUM and + LAST_SP_REGNUM to FIRST_UISA_SP_REGNUM and LAST_UISA_SP_REGNUM, with + some concomitant formatting changes. + * configure.in: Accept the `--with-cpu' flag, to specify a default + processor variant. + * acconfig.h: Provide a blurb for TARGET_CPU_DEFAULT, which is set + by configure's `--with-cpu' flag. + * config.in, configure: Regenerated. + +Sun Jan 31 15:24:24 1999 Stan Shebs + + * buildsym.h, buildsym.c: Convert to ANSI-only. + + * buildsym.h, buildsym.c: Reformat to standard. + + * buildsym.c (merge_symbol_lists): Remove unused variable. + (_initialize_buildsym): Remove, does nothing. + +1999-01-31 J.T. Conklin + + * i386-stub.c, m32r-stub.c, m68k-stub.c, sh-stub.c, sparc-stub.c, + sparcl-stub, sparclet-stub.c: Change declaration of putDebugChar + to include explicit void return type as per documentation. Fix up + occasions where stubs erroneously checked return type. + +Sun Jan 31 13:18:33 1999 Stan Shebs + + From J.T. Conklin : + * remote.c (remote_query): Fix tipo. + +Fri Jan 29 15:25:09 1999 Stan Shebs + + * configure.tgt (v850): Add wildcard to match. + +Fri Jan 29 16:44:01 1999 Edith Epstein + + * inferior.h: Ran indent. + + * fork-child.c: Ran indent. + + * infrun.c : Ran indent. + +Fri Jan 29 12:57:34 1999 Elena Zannoni + + * infrun.c (_initialize_infrun): Do not stop or print anything + when a SIGWINCH is received. + + * Makefile.in (m2-exp.tab.c): Use YACC not BISON. + (f-exp.tab.c): Ditto. + (jv-exp.tab.c): Ditto. + (c-exp.tab.c): Ditto. + (YACC): Define as @YACC@. + +1999-01-29 Martin Hunt + + Changes from Keith Seitz + * valops.c (value_assign): Add calls to register_changed_hook and + memory_changed_hook to inform UIs that the user has changed + the target's registers/memory. + * findvar.c (write_register_gen): Remove call to pc_changed_hook. + * defs.h: Remove declaration for pc_changed_hook and + add declarations for register_changed_hook and + memory_changed_hook. + * top.c: Ditto. + +1999-01-29 Mark Alexander + + * procfs.c (wait_fd): Handle deleted threads correctly. + +1999-01-28 Jason Molenda (jsm@bugshack.cygnus.com) + + * utils.c (init_page_info): Force window size if running under emacs. + +1999-01-27 James Ingham + + * typeprint.c (whatis_exp): Remove static declaration. + +Wed Jan 27 16:50:25 1999 Elena Zannoni + + * hp-psymtab-read.c: Reformat using indent. + +Wed Jan 27 13:20:25 1999 Elena Zannoni + + * hp-psymtab-read.c: Reformat comments, update copyright. + +Tue Jan 26 16:02:47 1999 Mark Alexander + + * v850-tdep.c (v850_generic_reg_names, v850e_reg_names, + v850_register_names, v850_processor_type_table): Declare tables + and structures for handling differences in register names for + v850 and v850e. + (struct reg_list): Define new structure for creating tables + of register bit masks in v850e instrutions. + (handle_prepare, handle_pushm): New helpers for v850_scan_prologue. + (v850_scan_prologue): Recognize v850e instructions: callt, prepare, + and pushm. + (v850_target_architecture_hook): New function to set register + names based on current machine. + (_initialize_v850_tdep): Set up target_architecture_hook. + * config/v850/tm-v850.h (v850_register_names): Declare. + (REGISTER_NAME): Define to refer to v850_register_names. + (SR0_REGNUM, CTBP_REGNUM): Define. + (PS_REGNUM): Redefine in terms of SR0_REGNUM. + +Tue Jan 26 18:27:26 1999 Elena Zannoni + + * Makefile.in (c-exp.tab.c): Use BISON instead of YACC, to pick + the correct value from configure output. + (jv-exp.tab.c): Ditto. + (f-exp.tab.c): Ditto. + (m2-exp.tab.c): Ditto. + +1999-01-26 Jason Molenda (jsm@bugshack.cygnus.com) + + * breakpoint.h (ep_is_exception_catchpoint): Add prototype. + * frame.h (select_and_print_frame): Add prototype. + * stack.c (func_command): Call select_and_print_frame with correct + number of arguments. Reformat whitespace. + +Tue Jan 26 16:53:54 1999 Fernando Nasser + + * remote.c (remote_query): fix maximum packet size to account for + remote_debug use. + (putpkt): add comment to alert about extra byte need. + +Mon Jan 25 19:55:30 1999 Mark Alexander + + * sh-tdep.c (sh_target_architecture_hook): Return immediately + when a matching machine is found. + +Fri Jan 22 09:10:35 1999 Mark Alexander + + * remote-mips.c (mips_initialize): Fix parameters to clear_breakpoint. + (common_breakpoint): Restore support for instruction breakpoints + on non-LSI targets. + +Thu Jan 21 17:16:19 1999 Andrew Cagney + + * stack.c: Close open comment. + * symtab.c (find_pc_sect_line): Ditto. + +Thu Jan 21 17:51:51 1999 Stan Shebs + + * procfs.c (init_procfs_ops): New function, fills in procfs_ops, + init only nonzero fields, leave to_require_attach and + to_require_detach empty, not needed for /proc systems yet. + (_initialize_procfs): Call init_procfs_ops. + + From J.T. Conklin : + * top.c (init_main): Fix tipo in description of the remotetimeout + variable. + * breakpoint.c (bpstat_stop_status): Handle systems where + DECR_PC_AFTER_BREAK != DECR_PC_AFTER_HW_BREAK. + +Thu Jan 21 17:25:46 1999 Mark Alexander + + * mon960-rom.c (_initialize_mon960): Call init_mon960_cmds + to fill in mon960_cmds structure properly. + +Wed Jan 20 17:53:22 1999 Stan Shebs + + * remote-sds.c (sds_ops): Define only once. + (init_sds_ops, sds_command, _initialize_remote_sds): Declare. + (init_sds_ops): Init only non-zero fields. + +Wed Jan 20 15:45:15 1999 Mark Alexander + + * h8300-tdep.c (original_register_names, h8300h_register_names, + h8300_register_names): Define new variables. + (set_register_names): New function to set register names based on + current CPU type. + (h8300_command, h8300h_command, h8300s_command): Call + set_register_names. + * config/h8300/tm-h8300.h (h8300_register_names): Declare. + (REGISTER_NAME): Define to refer to h8300_register_names. + +1999-01-19 Fernando Nasser + + * sol-thread.c abug-rom.c cpu32bug-rom.c dbug-rom.c m32r-rom.c + mac-nat.c mon960-rom.c op50-rom.c ppc-bdm.c remote-adapt.c + remote-array.c remote-bug.c remote-e7000.c remote-eb.c remote-es.c + remote-est.c remote-hms.c remote-mm.c remote-nindy.c remote-nrom.c + remote-os9k.c remote-rdp.c remote-sds.c remote-sim.c remote-st.c + remote-udi.c rom68k-rom.c sh3-rom.c sparcl-tdep.c sparclet-rom.c + v850ice.c win32-nat.c: cosmetic changes to conform to coding + standards. + +1999-01-19 Jim Blandy + + Use aclocal to generate GDB's aclocal.m4 script. + * acinclude.m4: New file, containing the hand-written local macro + definitions that used to be in aclocal.m4. Don't sinclude + ../bfd/aclocal.m4 any more; running aclocal in this directory will + get us the definitions we need. HOWEVER: Do sinclude + ../bfd/acinclude.m4, because we need the definition of + BFD_NEED_DECLARATION. + * aclocal.m4: Regenerated by aclocal. + * configure: Regenerated by autoconf. + +Tue Jan 19 10:27:23 1999 David Taylor + + * breakpoint.c (disable_breakpoints_in_shlibs): new parameter, + silent, controls whether to print message about removal of shared + library breakpoints. + * breakpoint.h (disable_breakpoints_in_shlibs): decl updated. + * irix5-nat.c (clear_solib): call disable_breakpoints_in_shlibs. + * osfsolib.c (clear_solib): ditto. + * solib.c (clear_solib): ditto. + * somsolib.c (som_solib_restart): update call to + disable_breakpoints_in_shlibs. + + * target.h (child_post_attach): only declare if CHILD_POST_ATTACH + is define. + +Tue Jan 19 18:07:11 1999 Andrew Cagney + + * corelow.c (solib_add_stub): Ditto. + (core_file_to_sym_file): Cast make_cleanup parameter. + + * solib.c (symbol_add_stub, solib_map_sections): Change argument + to PTR insted of a char*. Matches catch_errors interface. + +Mon Jan 18 14:01:24 1999 Andrew Cagney + + * remote-array.c (array_open): Don't use fprintf_filtered to send + data to the log file. + + * remote-array.c (handle_load_dll): Change argument type to PTR so + that it is compatible with catch_errors. + * ocd.c (ocd_start_remote): Ditto. + * remote-sds.c (sds_start_remote): Ditto. + + * win32-nat.c (win32_child_thread_alive): Namespace proof + child_thread_alive. + (init_child_ops): Update. + +Mon Jan 18 12:03:47 1999 Andrew Cagney + + * remote-rdi.c (arm_rdi_open): Set gdb_hostif.hostosarg and + gdb_hostif.dbgarg to NULL instead of stdout. + (voiddummy, myprint, mywritec): Use gdb_stdout instead of stdout. + +Mon Jan 18 16:40:50 1999 Stan Shebs + + * ser-ocd.c (ocd_open): Handle Unix case gracefully. + + * target.c (dummy_target): Don't initialize statically. + (init_dummy_target): New function, fills in dummy_target. + (initialize_targets): Use it. + * hpux-thread.c (hpux_thread_ops): Don't initialize statically. + (init_hpux_thread_ops): New function, fills in hpux_thread_ops. + (_initialize_hpux_thread): Use it. + * m3-nat.c (m3_ops): Don't initialize statically. + (init_m3_ops): New function, fills in m3_ops. + (_initialize_m3): Use it. + +1999-01-18 Fernando Nasser + + * sol-thread.c: delete compile time initialization of target_ops + (_initialize_sol_thread): initialize target_ops at run time. + * hpux-thread.c: added target_ops entry. + * m3-nat.c: ditto. + +Mon Jan 18 15:19:13 1999 David Taylor + + * procfs.c (procfs_ops): delete compile time initialization. + (_initialize_procfs): initialize procfs_ops at run time. + +Mon Jan 18 12:51:44 1999 Christopher Faylor + + * configure.in: Ensure that -luser32 is always linked in + for cygwin build. + * configure: Regenerated. + +Mon Jan 18 08:38:05 1999 Mark Alexander + + * values.c (value_virtual_fn_field): Clear the pointed-to + offset when casting to the base class. + +Mon Jan 18 10:30:51 1999 David Taylor + + * remote-udi.c (init_udi_ops): change non-existant udi_run_ops to + udi_ops; delete NULL initializers. + +Mon Jan 18 12:03:47 1999 Andrew Cagney + + * serial.c (serial_close): gdb_fclose tages gdb_file** arg, not + gdb_file*. + + * f-valprint.c, target.c, gdbarch.c: Pass gdb_stderr not stderr. + +Mon Jan 18 10:46:12 1999 Andrew Cagney + + * stack.c (print_frame_info_base): Don't cast call to + catch_errors. + (print_args_stub): Change char* arg to PTR. + * symmisc.c (print_symbol): Ditto. + * top.c (quit_cover): Ditto. + * remote.c (remote_open_1, remote_start_remote): Ditto. + * infrun.c (normal_stop, hook_stop_stub, restore_selected_frame): + Ditto. + + * stack.c (backtrace_command): Cast first arg of make_cleanup to + make_cleanup_func. + * remote.c (remote_kill): Cast putpkt arg to catch_errors_ftype. + +Mon Jan 18 08:47:02 1999 Andrew Cagney + + * defs.h (catch_errors_ftype): Define. + (catch_errors): Replace char* arg with PTR arg. + * top.c (catch_errors): Update + + * breakpoint.c (bpstat_stop_status, bpstat_stop_status, + delete_breakpoint, breakpoint_re_set): Delete all casts in call to + catch_errors. + (breakpoint_cond_eval, watchpoint_check, + cover_target_enable_exception_callback, breakpoint_re_set_one): + Arg is PTR not char*. + + * breakpoint.c (cover_target_enable_exception_callback): Change + type to int. Check for cast values of 0 and -1. Return a result! + (insert_breakpoints): Move declaration of SAL and ARGS to where + they are used. + +1999-01-16 Fernando Nasser + + * remote.c (remote_query): new function - creates proper interface + to the remote protocol "q" command. + +Fri Jan 15 17:11:48 EST 1999 Zdenek Radouch (radouch@cygnus.com) + + * config/fr30/tm-fr30.h: Changed ABI to match GCC change + (always use pointer for structs passed by value). + +1999-01-15 Fernando Nasser + + * target.h: added entry for target queries (to_query) + target.c: ditto. + +Thu Jan 14 18:29:17 1999 David Taylor + + * remote-mm.c (mm_wait): fix stream arg to gdb_flush. + * remote-udi.c (udi_wait): fix stream arg to fwrite. + * symmisc.c (maintenance_check_symtabs): fix stream argument to + print_address_numeric. + +Wed Jan 13 19:33:16 1999 David Taylor + + * breakpoint.c (insert_breakpoints): insert cast to eliminate + warning. + +Wed Jan 13 14:59:02 1999 Michael Snyder + + * infrun.c (set/show scheduler-locking) New command. Set a + mode bit that will control how GDB attempts to control thread + scheduling for step, continue, etc. (resume): make use of + the schedule-locking mode. + * target.h (struct target_ops): new field to_has_thread_control. + * sol-thread.c: initialize target_ops to_has_thread_control. + * procfs.c: ditto. + * target.c: ditto. + * m3-nat.c: ditto. + * remote.c: ditto. + * hpux-thread.c: ditto. + * thread.c: cull duplicate prototypes. Move prototypes to top. + * serial.c: indentation cleanup. + * breakpoint.c: add casts to eliminate compiler warnings. + +Tue Jan 12 17:00:00 1999 Edith Epstein + + * inftarg.c (child_create_inferior): fixed HPUXHPPA specific + call to fork_inferior. The shell param is now NULL. + +1999-01-12 Jason Molenda (jsm@bugshack.cygnus.com) + + * monitor.c (init_base_monitor_ops): Whitespace cleanup. + (_initialize_remote_monitors): Same. + +1999-01-12 Jason Molenda (jsm@bugshack.cygnus.com) + + * monitor.c (init_monitor_ops): Initialize the monitor_ops + structure if it hasn't already been done. + +Tue Jan 12 14:50:10 1999 Stan Shebs + + * inftarg.c (child_ops): Don't initialize statically. + (init_child_ops): New function, fills in child_ops. + (_initialize_inftarg): Use it. + (child_post_attach): Declare extern. + (child_wait): Fix ambiguous parens. + (child_attach_to_process): Remove unused local wstatus. + (child_insert_fork_catchpoint, child_remove_fork_catchpoint, + child_insert_vfork_catchpoint, child_remove_vfork_catchpoint, + child_has_forked, child_insert_exec_catchpoint, + child_remove_exec_catchpoint): Return a value. + +Mon Jan 11 16:43:44 1999 Michael Snyder + + * remote.c (remote_wait): Add inferior_pid to thread list only + if it is not already there. + +1999-01-11 Jason Molenda (jsm@bugshack.cygnus.com) + + * scm-tags.h: Update FSF's address on copyright notice. + * ser-e7kpc.c: Same. + * gnu-nat.h: Same. + +Mon Jan 11 13:45:57 1999 Stu Grossman + + * dwarf2read.c (dump_die): Change stderr to gdb_stderr. + * expprint.c (print_subexp): fprintf => fprintf_unfiltered. + * jv-typeprint.c (java_type_print_base): fputs => fputs_filtered. + * stack.c (struct function_bounds): Remove superfluous `typedef'. + * symfile.c (list_overlays_command): stdout => gdb_stdout. + * symmisc.c (maintenance_check_symtabs): stdout => gdb_stdout. + * utils.c (print_spaces): Make more efficient. + +Mon Jan 11 13:55:51 1999 David Taylor + + * utils (print_spaces): fix arg to strcat; fix formatting. + +Fri Jan 8 11:57:24 1999 Stan Shebs + + * exec.c (exec_ops): Don't initialize statically. + (init_exec_ops): New function, fills in exec_ops. + (_initialize_exec): Use it. + +Thu Jan 7 17:50:15 EST 1999 Zdenek Radouch (radouch@cygnus.com) + + Beta FR30 port. + * fr30-tdep.c + * config/fr30/tm-fr30.h + +Wed Jan 6 12:28:35 1999 David Taylor + + * configure.in: Add an --enable-tui argument. Construct + tui/Makefile from tui/Makefile.in. Use AM_PROG_CC_STDC. If we + have the GUI, then we need this to process libgui.h. + (ENABLE_CFLAGS): define and export BUILD_TUI. + (AC_CHECK_HEADERS): Add check for term.h. + + * configure.host (hppa-*-hpux10.20, hppa-*-hpux11.0*): New configs. + + * config.in, configure : regenerated. + + * Makefile.in: Allow the TUI code to be conditionally enabled. + (TUI_LIBRARY): New variable, value are set by the configuration + script. Set to the empty string when the TUI isn't enabled. + (gdb$(GDBEXT)): Use those, instead of referring to all-tui and + tui/libtui.a directly. + (BUILD_TUI): build the tui -- only when configured with + --enable-tui. + (YLWRAP): use ylwrap to avoid problems on systems w/o bison. + (gdb$(EXEEXT)): make it dependent on BUILD_TUI. + (all-tui): remove dependency from phony target. + (c-exp.tab.c): use ylwrap instead of bison. + (jv-exp.tab.c): ditto. + (f-exp.tab.c): ditto. + (m2-exp.tab.c): ditto. + (ALLDEPFILES): add somread.c, hp-psymtab-read.c, hp-symtab-read.c. + (SFILES): remove the above files + (COMMON_OBS): remove somread.o + (SFILES): Add the tui files to this, so they get included in etags + tables. + (gdb$(EXEEXT)): Add all-tui to the list of dependencies, and add + tui/libtui.a to the link list. + (all-tui): New rule, which does a recursive make in the tui + subdir. + (tui/libtui.a): When recursing, pass down ${FLAGS_TO_PASS}. And + don't echo the make command. This is closer to what the other + recursions do. + (HFILES_NO_SRCDIR): add hpread.h + (COMMON_OBS): add hp-psymtab-read.o, hp-symtab-read.o + (SFILES): add hp-psymtab-read.c, hp-symtab-read.c add rules for + the new files. Remove hpread.c, hpread.o + (gdb$(EXEEXT)): Depend on the actual tui library, not on a + fictitious target. Since the fictitious target never existed, + make would always relink. + (tui/libtui.a): Always recurse to make sure the library is up to + date. + +Wed Jan 6 12:05:12 1999 Stan Shebs + + * remote.c: Pacify --enable-build-warnings, reformat code + to conform to standards, fix spelling errors. + (ishex, stubhex, record_currthread, etc): Declare. + (ishex, stubhex): Declare char arg as int. + (pack_string): Comment out, never used but possibly useful. + (threadref_to_int, remote_get_threadinfo, etc): Make static. + +Wed Jan 6 11:43:32 1999 David Taylor + + The following changes were made by Elena Zannoni + and Edith Epstein as + part of a project to merge in changes made by HP. + + * c-exp.y: use external flag hp_som_som_object_present to decide + whether code was compiled by HP's compilers. Add two new C++ + tokens for true and false. + (yylex): check for template name is done differently for the + HP/aCC compiler case. Change some of the template processing code + for handling HP aCC templates. Handle true and false tokens. + +Tue Jan 5 11:13:36 1999 Michael Snyder + + * remote.c (record_curthread): Must not modify inferior_pid when + called from wait_for_inferior. Instead, if a new thread-id is + detected, call add_thread. + (MAGIC_NULL_PID): new macro, use instead of the magic number + "42000". + (remote_find_new_threads): if inferior_pid is unknown, get and use + the current thread id. + (remote_start_remote): on connecting, attempt to get the current + thread id for inferior_pid. + (remote_resume): If pid == -1, then resume any-thread (not the + current thread specifically). Also some cosmetic fixups. + + * thread.c (info_threads_command): don't initialize current_pid + until after call to FIND_NEW_THREADS (which may change inferior_pid). + Also some cosmetic fixups. + * infrun.c: cosmetic fixups and casts to avoid warnings. + * infcmd.c: cosmetic fixups, mainly long lines. + +Tue Jan 5 11:55:57 1999 David Taylor + + * target.c (noprocess): terminate sentence with a period. + * breakpoint.c (catch_command_1): ditto. + + * c-valprint.c (c_value_print): remove hack^2 from HP; it causes + testsuite losses with no real gain. + + * inferior.h (START_INFERIOR_TRAPS_EXPECTED): restore, but only + if tm-*.h hasn't overridden default value. + +1999-01-04 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Fix whitespace indentation for --help. + * configure: Regenerated. + +1999-01-04 Manuel Bouyer + + * main.c: Add --write command line option, document -w. + * gdb.1: Document --write. + +1999-01-04 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Require autoconf 2.12.1 or higher. + * doc/configure.in: Ditto. + * nlm/configure.in: Ditto. + * rdi-share/configure.in: Ditto. + * testsuite/configure.in: Ditto. + * doc/Makefile.in: Don't hardcode $(SHELL). + * nlm/Makefile.in: Ditto. + * rdi-share/Makefile.in: Ditto. + * testsuite/Makefile.in: Ditto. + +Mon Jan 4 12:53:03 1999 Stan Shebs + + * remote-vx.c (init_vx_ops, init_vx_run_ops): Remove unneeded + inits of new fields, including ref to bogus field. + (vx_ops, vx_run_ops): Make static. + +Mon Jan 4 15:05:29 1999 David Taylor + + * inferior.h (START_INFERIOR_TRAPS_EXPECTED): delete, + already defined in tm.h. + + * inftarg.c: change to and + conditionalize its inclusion. + * infttrace.c: ditto. + +For older changes see ChangeLog-98 + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-3.x b/gdb/ChangeLog-3.x new file mode 100644 index 0000000000..672aa3daa1 --- /dev/null +++ b/gdb/ChangeLog-3.x @@ -0,0 +1,4838 @@ +Tue Jan 23 15:49:47 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c (define_symbol): Deal with deftype 'X'. + + * convex-dep.c (wait): Make it pid_t. + + * convex-dep.c (comm_registers_info): accept decimal comm register + specification, as "i comm 32768". + + * dbxread.c (process_one_symbol): Make VARIABLES_INSIDE_BLOCK + macro say by itself where variables are. Pass it desc. + m-convex.h (VARIABLES_INSIDE_BLOCK): Nonzero for native compiler. + + * m-convex.h (SET_STACK_LIMIT_HUGE): Define. + (IGNORE_SYMBOL): Take out #ifdef N_MONPT and put in 0xc4. + +Fri Jan 19 20:04:15 1990 Jim Kingdon (kingdon at albert.ai.mit.edu) + + * printcmd.c (print_frame_args): Always set highest_offset to + current_offset when former is -1. + + * dbxread.c (read_struct_type): Print nice error message + when encountering multiple inheritance. + +Thu Jan 18 13:43:30 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Always treat N_FN as a potential + source for a x.o or -lx symbol, ignoring OFILE_FN_FLAGGED. + + * printcmd.c (print_frame_args): Cast -1 to (CORE_ADDR). + + * hp300bsd-dep.c (_initialize_hp300_dep): Get kernel_u_addr. + m-hp300bsd.h (KERNEL_U_ADDR): Use kernel_u_addr. + + * infcmd.c (run_command): #if 0 out call to + breakpoint_clear_ignore_counts. + +Thu Jan 11 12:58:12 1990 Jim Kingdon (kingdon at mole) + + * printcmd.c (print_frame_args) [STRUCT_ARG_SYM_GARBAGE]: + Try looking up name of var before giving up & printing '?'. + +Wed Jan 10 14:00:14 1990 Jim Kingdon (kingdon at pogo) + + * many files: Move stdio.h before param.h. + + * sun3-dep.c (store_inferior_registers): Only try to write FP + regs #ifdef FP0_REGNUM. + +Mon Jan 8 17:56:15 1990 Jim Kingdon (kingdon at pogo) + + * symtab.c: #if 0 out "info methods" code. + +Sat Jan 6 12:33:04 1990 Jim Kingdon (kingdon at pogo) + + * dbxread.c (read_struct_type): Set TYPE_NFN_FIELDS_TOTAL + from all baseclasses; remove vestigial variable baseclass. + + * findvar.c (read_var_value): Check REG_STRUCT_HAS_ADDR. + printcmd.c (print_frame_args): Check STRUCT_ARG_SYM_GARBAGE. + m-sparc.h: Define REG_STRUCT_HAS_ADDR and STRUCT_ARG_SYM_GARBAGE. + + * blockframe.c (get_frame_block): Subtract one from pc if not + innermost frame. + +Fri Dec 29 15:26:33 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * printcmd.c (print_frame_args): check highest_offset != -1, not i. + +Thu Dec 28 16:21:02 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * valops.c (value_struct_elt): Clean up error msg. + + * breakpoint.c (describe_other_breakpoints): + Delete extra space before "also set at" and add period at end. + +Tue Dec 19 10:28:42 1989 Jim Kingdon (kingdon at pogo) + + * source.c (print_source_lines): Tell user which line number + was out of range when printing error message. + +Sun Dec 17 14:14:09 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * blockframe.c (find_pc_partial_function): Use + BLOCK_START (SYMBOL_BLOCK_VALUE (f)) instead of + SYMBOL_VALUE (f) to get start of function. + + * dbxread.c: Make xxmalloc just a #define for xmalloc. + +Thu Dec 14 16:13:16 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m68k-opcode.h (fseq & following fp instructions): + Change @ to $. + +Fri Dec 8 19:06:44 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * breakpoint.c (breakpoint_clear_ignore_counts): New function. + infcmd.c (run_command): Call it. + +Wed Dec 6 15:03:38 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * valprint.c: Change it so "array-max 0" means there is + no limit. + + * expread.y (yylex): Change error message "invalid token in + expression" to "invalid character '%c' in expression". + +Mon Dec 4 16:12:54 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * blockframe.c (find_pc_partial_function): Always return 1 + for success, 0 for failure, and set *NAME and *ADDRESS to + match the return value. + + * dbxread.c (symbol_file_command): Use perror_with_name on + error from stat. + (psymtab_to_symtab, add_file_command), + core.c (validate_files), source.c (find_source_lines), + default-dep.c (exec_file_command): Check for errors from stat, + fstat, and myread. + +Fri Dec 1 05:16:42 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * valops.c (check_field): When following pointers, just get + their types; don't call value_ind. + +Thu Nov 30 14:45:29 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * config.gdb (pyr): New machine. + core.c [REG_STACK_SEGMENT]: New code. + dbxread.c (process_one_symbol): Cast return from copy_pending + to long before casting to enum namespace. + infrun.c: Split registers_info into DO_REGISTERS_INFO + and registers_info. + m-pyr.h, pyr-{dep.c,opcode.h,pinsn.c}: New files. + + * hp300bsd-dep.c: Stay in sync with default-dep.c. + + * m-hp300bsd.h (IN_SIGTRAMP): Define. + +Mon Nov 27 23:48:21 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * m-sparc.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): + Return floating point values in %f0. + +Tue Nov 21 00:34:46 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (read_type): #if 0 out code which skips to + comma following x-ref. + +Sat Nov 18 20:10:54 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * valprint.c (val_print): Undo changes of Nov 11 & 16. + (print_string): Add parameter force_ellipses. + (val_print): Pass force_ellipses true when we stop fetching string + before we get to the end, else pass false. + +Thu Nov 16 11:59:50 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * infrun.c (restore_inferior_status): Don't try to restore + selected frame if the inferior no longer exists. + + * valprint.c (val_print): Rewrite string printing code not to + call print_string. + + * Makefile.dist (clean): Remove xgdb and xgdb.o. + +Tue Nov 14 12:41:47 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * Makefile.dist (XGDB, bindir, xbindir, install, all): New stuff. + +Sat Nov 11 15:29:38 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * valprint.c (val_print): chars_to_get: New variable. + +Thu Nov 9 12:31:47 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * main.c (main): Process "-help" as a switch that doesn't + take an argument. + +Wed Nov 8 13:07:02 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * Makefile.dist (gdb.tar.Z): Add "else true". + +Tue Nov 7 12:25:14 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * infrun.c (restore_inferior_status): Don't dereference fid if NULL. + + * config.gdb (sun3, sun4): Accept "sun3" and "sun4". + +Mon Nov 6 09:49:23 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * Makefile.dist (Makefile): Move comments after commands. + + * *-dep.c [READ_COFF_SYMTAB]: Pass optional header size to + read_section_hdr(). + + * inflow.c: Include regardless of USG. + + * coffread.c (read_section_hdr): Add optional_header_size. + (symbol_file_command): Pass optional header size to + read_section_hdr(). + (read_coff_symtab): Initialize filestring. + + * version.c: Change version to 3.4.xxx. + + * GDB 3.4 released. + +Sun Nov 5 11:39:01 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * version.c: Change version to 3.4. + + * symtab.c (decode_line_1): Only skip past "struct" if it + is there. + + * valops.c (value_ind), eval.c (evaluate_subexp, case UNOP_IND): + Have "*" return an int, not a LONGEST. + + * utils.c (fprintf_filtered): Pass arg{4,5,6} to sprintf. + + * printcmd.c (x_command): Use variable itself rather + than treating it as a pointer only if it is a function. + (See comment "this makes x/i main work"). + + * coffread.c (symbol_file_command): Use error for + "%s does not have a symbol-table.\n". + +Wed Nov 1 19:56:18 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c [BELIEVE_PCC_PROMOTION_TYPE]: New code. + m-sparc.h: Define BELIEVE_PCC_PROMOTION_TYPE. + +Thu Oct 26 12:45:00 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * infrun.c: Include . + + * dbxread.c (read_dbx_symtab, case N_LSYM, case 'T'): + Check for enum types and put constants in psymtab. + +Mon Oct 23 15:02:25 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (define_symbol, read_dbx_symtab): Handle enum + constants (e.g. "b:c=e6,0"). + +Thu Oct 19 14:57:26 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * stack.c (frame_info): Use FRAME_ARGS_ADDRESS_CORRECT + m-vax.h (FRAME_ARGS_ADDRESS_CORRECT): New macro. + (FRAME_ARGS_ADDRESS): Restore old meaning. + + * frame.h (Frame_unknown): New macro. + stack.c (frame_info): Check for Frame_unknown return from + FRAME_ARGS_ADDRESS. + m-vax.h (FRAME_ARGS_ADDRESS): Sometimes return Frame_unknown. + + * utils.c (fatal_dump_core): Add "internal error" to message. + + * infrun.c (IN_SIGTRAMP): New macro. + (wait_for_inferior): Use IN_SIGTRAMP. + m-vax.h (IN_SIGTRAMP): New macro. + +Wed Oct 18 15:09:22 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * config.gdb, Makefile.dist: Shorten m-i386-sv32.h. + + * coffread.c (symbol_file_command): Pass 0 to select_source_symtab. + +Tue Oct 17 12:24:41 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * i386-dep.c (i386_frame_num_args): Take function from m-i386.h + file. Check for pfi null. + m-i386.h (FRAME_NUM_ARGS): Use i386_frame_num_args. + + * infrun.c (wait_for_inferior): set stop_func_name to 0 + before calling find_pc_partial_function. + +Thu Oct 12 01:08:50 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * breakpoint.c (_initialize_breakpoint): Add "disa". + + * Makefile.dist: Add GLOBAL_CFLAGS and pass to readline. + + * config.gdb (various): "$machine =" -> "machine =". + +Wed Oct 11 11:54:31 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * inflow.c (try_writing_regs): #if 0 out this function. + + * main.c (main): Add "-help" option. + + * dbxread.c (read_dbx_symtab): Merge code for N_FUN with + N_STSYM, etc. + +Mon Oct 9 14:21:55 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * inflow.c (try_writing_regs_command): Don't write past end + of struct user. + + * dbxread.c (read_struct_type): #if 0 out code which checks for + bitpos and bitsize 0. + + * config.gdb: Accept sequent-i386 (not seq386). + (symmetry): Set depfile and paramfile. + + * m-convex.h (IGNORE_SYMBOL): Check for N_MONPT if defined. + +Thu Oct 5 10:14:26 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * default-dep.c (read_inferior_memory): Put #if 0'd out comment + within /* */. + +Wed Oct 4 18:44:41 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * config.gdb: Change /dev/null to m-i386.h for various + 386 machine "opcodefile" entries. + + * config.gdb: Accept seq386 for sequent symmetry. + +Mon Oct 2 09:59:50 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * hp300bsd-dep.c: Fix copyright notice. + +Sun Oct 1 16:25:30 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * Makefile.dist (DEPFILES): Add isi-dep.c. + + * default-dep.c (read_inferior_memory): Move #endif after else. + +Sat Sep 30 12:50:16 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * version.c: Change version number to 3.3.xxx. + + * GDB 3.3 released. + + * version.c: Change version number to 3.3. + + * Makefile.dist (READLINE): Add vi_mode.c + + * config.gdb (i386): Change /dev/null to m-i386.h + + * config.gdb: Add ';;' before 'esac'. + + * Makefile.dist (gdb.tar.Z): Move comment above dependency. + + * dbxread.c (read_ofile_symtab): Check symbol before start + of source file for GCC_COMPILED_FLAG_SYMBOL. + (start_symtab): Don't clear processing_gcc_compilation. + +Thu Sep 28 22:30:23 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * valprint.c (print_string): If LENGTH is zero, print "". + +Wed Sep 27 10:15:10 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * config.gdb: "rm tmp.c" -> "rm -f tmp.c". + +Tue Sep 26 13:02:10 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * utils.c (_initialize_utils): Use termcap to set lines_per_page + and chars_per_line. + +Mon Sep 25 10:06:43 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (read_dbx_symtab, N_SOL): Do not add the same file + more than once. + +Thu Sep 21 12:43:18 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * infcmd.c (unset_environment_command): Delete all variables + if called with no arg. + + * remote.c, inferior.h (remote_{read,write}_inferior_memory): + New functions. + core.c ({read,write}_memory): Use remote_{read,write}_inferior_memory. + + * valops.c (call_function): When reserving stack space for + arguments, call value_arg_coerce. + + * m-hp9k320.h: define BROKEN_LARGE_ALLOCA. + + * breakpoint.c (delete_command): Ask for confirmation only + when there are breakpoints. + + * dbxread.c (read_struct_type): If lookup_basetype_type has + copied a stub type, call add_undefined_type. + + * sparc_pinsn.c (compare_opcodes): Check for "1+i" anywhere + in args. + + * val_print.c (type_print_base): Print stub types as + "". + +Wed Sep 20 07:32:00 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * sparc-opcode.h (swapa): Remove i bit from match. + (all alternate space instructions): Delete surplus "foo rs1+0" + patterns. + + * Makefile.dist (LDFLAGS): Set to $(CFLAGS). + + * remote-multi.shar (remote_utils.c, putpkt): Change csum to unsigned. + +Tue Sep 19 14:15:16 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * sparc-opcode.h: Set i bit in lose for many instructions which + aren't immediate. + + * stack.c (print_frame_info): add "func = 0". + +Mon Sep 18 16:19:48 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * sparc-opcode.h (mov): Add mov to/from %tbr, %psr, %wim. + + * sparc-opcode.h (rett): Fix notation to use suggested assembler + syntax from architecture manual. + + * symmetry-dep.c (I386_REGNO_TO_SYMMETRY): New macro. + (i386_frame_find_saved_regs): Use I386_REGNO_TO_SYMMETRY. + +Sat Sep 16 22:21:17 1989 Jim Kingdon (kingdon at spiff) + + * remote.c (remote_close): Set remote_desc to -1. + + * gdb.texinfo (Output): Fix description of echo to match + reality and ANSI C. + +Fri Sep 15 14:28:59 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * symtab.c (lookup_symbol): Add comment about "asm". + + * sparc-pinsn.c: Use NUMOPCODES. + + * sparc-opcode.h (NUMOPCODES): Use sparc_opcodes[0] not *sparc_opcodes. + +Thu Sep 14 15:25:20 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * dbxread.c (xxmalloc): Print error message before calling abort(). + + * infrun.c (wait_for_inferior): Check for {stop,prev}_func_name + null before passing to strcmp. + +Wed Sep 13 12:34:15 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * sparc-opcode.h: New field delayed. + sparc-pinsn.c (is_delayed_branch): New function. + (print_insn): Check for delayed branches. + + * stack.c (print_frame_info): Use misc_function_vector in + case where ar truncates file names. + +Tue Sep 12 00:16:14 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * convex-dep.c (psw_info): Move "struct pswbit *p" with declarations. + +Mon Sep 11 14:59:57 1989 Jim Kingdon (kingdon at spiff) + + * convex-dep.c (core_file_command): Delete redundant printing + of "Program %s". + + * m-convex.h (ENTRY_POINT): New macro. + + * m-convex.h (FRAME_CHAIN_VALID): Change outside_first_object_file + to outside_startup_file + + * main.c: #if 0 out catch_termination and related code. + + * command.c (lookup_cmd_1): Consider underscores part of + command names. + +Sun Sep 10 09:20:12 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * printcmd.c: Change asdump_command to disassemble_command + (_initialize_printcmd): Change asdump to diassemble. + + * main.c (main): Exit with code 0 if we hit the end of a batch + file. + + * Makefile.dist (libreadline.a): Fix syntax of "CC=${CC}". + +Sat Sep 9 01:07:18 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * values.c (history_info): Renamed to value_history_info. + Command renamed to "info value" (with "info history" still + accepted). + + * sparc-pinsn.c (print_insn): Extend symbolic address printing + to cover "sethi" following by an insn which uses 1+i. + +Fri Sep 8 14:24:01 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m-hp9k320.h, m-hp300bsd.h, m-altos.h, m-sparc.h, m-sun3.h + (READ_GDB_SYMSEGS): Remove. + dbxread.c [READ_GDB_SYMSEGS]: Remove code to read symsegs. + + * sparc-pinsn.c (print_insn): Detect "sethi-or" pairs and + print symbolic address. + + * sparc-opcode.h (sethi, set): Change lose from 0xc0000000 to + 0xc0c00000000. + + * remote.c (remote_desc): Initialize to -1. + + * Makefile.dist (libreadline.a): Pass CC='${CC}' to readline makefile. + +Thu Sep 7 00:07:17 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_struct_type): Check for static member functions. + values.c, eval.c, valarith.c, valprint.c, valops.c: Merge changes + from Tiemann for static member functions. + + * sparc-opcode.h (tst): Fix all 3 patterns. + + * Makefile.dist (gdb1): New rule. + + * sparc-opcode.h: Change comment about what the disassembler + does with the order of the opcodes. + + * sparc-pinsn.c (compare_opcodes): Put 1+i before i+1. + Also fix mistaken comment about preserving order of original table. + + * sparc-opcode.h (clr, mov): Fix incorrect lose entries. + + * m-symmetry.h (FRAME_NUM_ARGS): Add check to deal with code that + GCC sometimes generates. + + * config.gdb: Change all occurances of "skip" to "/dev/null". + + * README (about languages other than C): Update comments about + Pascal and FORTRAN. + + * sparc-opcode.h (nop): Change lose from 0xae3fffff to 0xfe3fffff. + + * values.c (value_virtual_fn_field): #if 0-out assignment to + VALUE_TYPE(vtbl). + +Wed Sep 6 12:19:22 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * utils.c (fatal_dump_core): New function. + Makefile.dist (MALLOC_FLAGS): use -Dbotch=fatal_dump_core + +Tue Sep 5 15:47:18 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * breakpoint.c (enable_command): With no arg, enable all bkpts. + + * Makefile.dist (Makefile): Remove \"'s around $(MD). + + * Makefile.dist: In "cd readline; make . . ." change first + SYSV_DEFINE to SYSV. + + * m68k-pinsn.c (_initialize_pinsn): Use alternate assembler + syntax #ifdef HPUX_ASM + +Sat Sep 2 23:24:43 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * values.c (history_info): Don't check num_exp[0] if num_exp + is nil (just like recent editing_info change). + +Fri Sep 1 19:19:01 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * gdb.texinfo (inc-history, inc-readline): Copy in the inc-* files + because people might not have makeinfo. + + * README (xgdb): Strengthen nasty comments. + + * gdb.texinfo: Change @setfilename to "gdb.info". + +Thu Aug 31 17:23:50 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * main.c (editing_info): Don't check arg[0] if arg is null. + + * m-vax.h: Add comment about known sigtramp bug. + + * sun3-dep.c, sparc-dep.c (IS_OBJECT_FILE, exec_file_command): + Get right text & data addresses for .o files. + +Wed Aug 30 13:54:19 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * utils.c (tilde_expand): Remove function (it's in readline). + + * sparc-opcode.h (call): Change "8" to "9" in first two + patterns (%g7->%o7). + +Tue Aug 29 16:44:41 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * printcmd.c (whatis_command): Change 4th arg to type_print + from 1 to -1. + +Mon Aug 28 12:22:41 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (psymtab_to_symtab_1): In "and %s ..." change + pst->filename to pst->dependencies[i]->filename. + + * blockframe.c (FRAMELESS_LOOK_FOR_PROLOGUE): New macro + made from FRAMELESS_FUNCTION_INVOCATION from m-sun3.h except + that it checks for zero return from get_pc_function_start. + m-hp9k320.h, m-hp300bsd.h, m-i386.h, m-isi.h, m-altos.h, + m-news.h, m-sparc.h, m-sun2.h, m-sun3.h, m-symmetry.h + (FRAMELESS_FUNCTION_INVOCATION): Use FRAMELESS_LOOK_FOR_PROLOGUE. + + * dbxread.c (read_struct_type): Give warning and ignore field + if bitpos and bitsize are zero. + +Sun Aug 27 04:55:20 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * dbxread.c (psymtab_to_symtab{,_1}): Print message about + reading in symbols before reading stringtab, not after. + +Sat Aug 26 02:01:53 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (IS_OBJECT_FILE, ADDR_OF_TEXT_SEGMENT): New macros. + (read_dbx_symtab): Use text_addr & text_size to set end_of_text_addr. + (symbol_file_command): pass text_addr & text_size to read_dbx_symtab. + +Fri Aug 25 23:08:13 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * valprint.c (value_print): Try to give the name of function + pointed to when printing a function pointer. + +Thu Aug 24 23:18:40 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * core.c (xfer_core_file): In cases where MEMADDR is above the + largest address that makes sense, set i to len. + +Thu Aug 24 16:04:17 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * valprint.c (print_string): New function to print a character + string, doing array-max limiting and repeat count processing. + (val_print, value_print): Use print_string. + (REPEAT_COUNT_THRESHOLD): New #define, the max number of elts to print + without using a repeat count. Set to ten. + (value_print, val_print): Use REPEAT_COUNT_THRESHOLD. + + * utils.c (printchar): Use {fputs,fprintf}_filtered. + + * valprint.c (val_print): Pass the repeat count arg to the + fprintf_filtered call for "" messages. + +Wed Aug 23 22:53:47 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * utils.c: Include . + + * main.c: Declare free. + +Wed Aug 23 05:05:59 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * utils.c, defs.h: Add tilde_expand. + source.c (directory_command), + main.c (cd_command), + main.c (set_history_filename), + dbxread.c (symbol_file_command), + coffread.c (symbol_file_command), + dbxread.c (add_file_command), + symmisc.c (print_symtabs), + *-dep.c (exec_file_command, core_file_command), + main.c (source_command): Use tilde_expand. + + * dbxread.c (read_type): When we get a cross-reference, resolve + it immediately if possible, only calling add_undefined_type if + necessary. + + * gdb.texinfo: Uncomment @includes and put comment at start + of file telling people to use makeinfo. + + * valprint.c (type_print_base): Print the right thing for + bitfields. + + * config.gdb (sun3os3): Set paramfile and depfile. + +Tue Aug 22 05:38:36 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (symbol_file_command): Pass string table size to + read_dbx_symtab(). + (read_dbx_symtab): Before indexing into string table, check + string table index for reasonableness. + (psymtab_to_symtab{,_1}, read_ofile_symtab): Same. + +Tue Aug 22 04:04:39 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * m68k-pinsn.c: Replaced many calls to fprintf and fputs with + calls to fprintf_filtered and fputs_filtered. + (print_insn_arg): Use normal MIT 68k syntax for postincrement, + predecrement, and register indirect addressing modes. + +Mon Aug 21 10:08:02 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * main.c (initialize_signals): Set signal handler for SIGQUIT + and SIGHUP to do_nothing. + + * ns32k-opcode.h (ord): Change 1D1D to 1D2D. + + * ns32k-pinsn.c (print_insn_arg, print_insn): Handle index + bytes correctly. + + * ns32k-opcode.h: Add comments. + + * dbxread.c (read_type): Put enum fields in type.fields in order + that they were found in the debugging symbols (not reverse order). + +Sun Aug 20 21:17:13 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * main.c (source_command): Read .gdbinit if run without argument. + + * source.c (directory_command): Only print "foo already in path" + if from_tty. + + * version.c: Change version number to 3.2.xxx + +Sat Aug 19 00:24:08 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * m-news.h: Define HAVE_WAIT_STRUCT. + + * m-isi.h, isi-dep.c: Replace with new version from Adam de Boor. + config.gdb: Remove isibsd43. + + * main.c (catch_termination): Don't say we have written + .gdb_history until after we really have. + + * convex-dep.c (attach): Add "sleep (1)". + (write_vector_register): Use "LL" with long long constant. + (wait): Close comment. + (wait): Change "unix 7.1 bug" to "unix 7.1 feature" & related + changes in comment. + (scan_stack): And fp with 0x80000000 in while loop test. + (core_file_command): Move code to set COREFILE. + (many places): Change printf to printf_filtered. + (psw_info): Allow argument giving value to print as a psw. + (_initialize_convex_dep): Update docstrings. + + * m-convex.h (WORDS_BIG_ENDIAN): Correct typo ("WRODS") + define NO_SIGINTERRUPT. + define SET_STACK_LIMIT_HUGE. + add "undef BUILTIN_TYPE_LONGEST" before defining it. + Use "LL" after constants in CALL_DUMMY. + + * dbxread.c: In the 3 places it says error "ridiculous string + table size"... delete extra parameter to error. + + * dbxread.c (scan_file_globals): Check for FORTRAN common block. + Allow multiple references for the sake of common blocks. + + * main.c (initialize_main): Set history_filename to include + current directory. + + * valprint.c (decode_format): Don't return a defaulted size + field if osize is zero. + + * gdb.texinfo (Compilation): Update information on -gg symbols. + Document problem with ar. + +Fri Aug 18 19:45:20 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * valprint.c (val_print, value_print): Add "" code. + Also put "..." outside quotes for strings. + + * main.c (initialize_main): Add comment about history output file + being different from history input file. + + * m-newsos3.h: Undefine NO_SIGINTERRUPT. Rearrange a few comments. + + * m-newsos3.h (REGISTER_U_ADDR): Use new version from Hikichi. + + * sparc-opcode.h: Add comment clarifying meaning of the order of + the entries in sparc_opcodes. + + * eval.c (evaluate_subexp, case UNOP_IND): Deal with deferencing + things that are not pointers. + + * valops.c (value_ind): Make dereferencing an int give a LONGEST. + + * expprint.c (print_subexp): Add (int) cast in OP_LAST case. + + * dbxread.c (read_array_type): Set lower and upper if adjustable. + + * symtab.c (lookup_symbol): Don't abort if symbol found in psymtab + but not in symtab. + +Thu Aug 17 15:51:20 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * config.gdb: Changed "Makefile.c" to "Makefile.dist". + +Thu Aug 17 01:58:04 1989 Roland McGrath (roland at apple-gunkies.ai.mit.edu) + + * sparc-opcode.h (or): Removed incorrect lose bit 0x08000000. + [many]: Changed many `lose' entries to have the 0x10 bit set, so + they don't think %l0 is %g0. + +Wed Aug 16 00:30:44 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m-symmetry.h (STORE_STRUCT_RETURN): Also write reg 0. + (EXTRACT_RETURN_VALUE): Call symmetry_extract_return_value. + symmetry-dep.c (symmetry_extract_return_value): New fn. + + * main.c (symbol_completion_function): Deal with changed + result_list from lookup_cmd_1 for ambiguous return. + command.c (lookup_cmd): Same. + + * inflow.c [TIOCGETC]: Move #include "param.h" back before + system #includes. Change all #ifdef TIOCGETC to + #if defined(TIOCGETC) && !defined(TIOCGETC_BROKEN) + m-i386-sysv3.2.h, m-i386gas-sysv3.2.h: Remove "#undef TIOCGETC" + and add "#define TIOCGETC_BROKEN". + + * command.c (lookup_cmd_1): Give the correct result_list in the + case of an ambiguous return where there is a partial match + (e.g. "info a"). Add comment clarifying what is the correct + result_list. + + * gdb.texinfo (GDB History): Document the two changes below. + + * main.c (command_line_input): Make history expansion not + just occur at the beginning of a line. + + * main.c (initialize_main): Make history expansion off by default. + + * inflow.c: Move #include "param.h" after system #includes. + + * i386-dep.c (i386_float_info): Use U_FPSTATE macro. + + * m-i386-sysv3.2.h, m-i386gas-sysv3.2.h: New files. + Makefile.dist, config.gdb: Know about these new files. + +Tue Aug 15 21:36:11 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * symtab.c (lookup_struct_elt_type): Use type_print rather + than assuming type has a name. + +Tue Aug 15 02:25:43 1989 Roland McGrath (roland at apple-gunkies.ai.mit.edu) + + * sparc-opcode.h (mov): Removed bogus "or i,0,d" pattern. + + * sparc-opcode.h (mov, or): Fixed incorrect `lose' members. + + * sparc-dep.c: Don't include "sparc-opcode.h". + (skip_prologue, isanulled): Declare special types to recognize + instructions, and use them. + + * sparc-pinsn.c (print_insn): Sign-extend 13-bit immediate args. + If they are less than +9, print them in signed decimal instead + of unsigned hex. + + * sparc-opcode.h, sparc-pinsn.c: Completely rewritten to share an + opcode table with gas, and thus produce disassembly that looks + like what the assembler accepts. + +Tue Aug 15 16:20:52 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * symtab.c (find_pc_psymbol): Move best_pc=psymtab->textlow-1 + after test for psymtab null. + + * main.c (editing_info): Remove variable retval. + + * config.gdb (sun3, isi): Comment out obsolete message about telling + it whether you have an FPU (now that it detects it). + + * config.gdb (sun3): Accept sun3os3. + + * m68k-insn.h: Include . + + * m68k-pinsn.h (convert_{to,from}_68881): Add have_fpu code + + * m-newsos3.h: Undefine USE_PCB. That code didn't seem to work. + + * sparc-dep.c: Put in insn_fmt and other stuff from the old + sparc-opcode.h. + + * sparc-opcode.h, sparc-pinsn.c: Correct copyright notice. + + * sparc-opcode.h, sparc-pinsn.c: Replace the old ones with the new + ones by roland. + +Tue Aug 15 02:25:43 1989 Roland McGrath (roland at apple-gunkies.ai.mit.edu) + + * Makefile.dist: Don't define CC at all. + + * Makefile.dist (Makefile): Remove tmp.c after preprocessing. + Use $(MD) instead of M_MAKEDEFINE in the cc command. + + * Makefile.dist: Don't define RL_LIB as + "${READLINE}/libreadline.a", since READLINE is a list of files. + +Mon Aug 14 23:49:29 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * main.c (print_version): Change 1988 to 1989. + + * main.c (copying_info, initialize_main): Remove #if 0'd code. + +Tue Aug 1 14:44:56 1989 Hikichi (hikichi at sran203) + + * m-newsos3.h + (NO_SIGINTERRUPT): have SIGINTERRUPT on NEWS os 3. + + * m-news.h(FRAME_FIND_SAVED_REGS): use the sun3's instead of old + one. + +Mon Aug 14 15:27:01 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m-news.h, m-newsos3.h, news-dep.c: Merge additional changes + by Hikichi (ChangeLog entries above). + + * Makefile.dist (READLINE): List readline files individually + so we don't accidently get random files from the readline + directory. + + * m-news.h (STORE_RETURN_VALUE, EXTRACT_RETURN_VALUE): + Expect floating point returns to be in fp0. + + * gdb.texinfo (Format options): New node. + + * gdb.texinfo: Comment out "@include"s until bfox fixes the + readline & history docs. + + * dbxread.c (read_addl_syms): Set startup_file_* if necessary at + the end (as well as when we hit ".o"). + + * printcmd.c (decode_format): Set val.format & val.size to '?' at + start and set defaults at end. + + * symtab.c (decode_line_1): Check for class_name null. + + * valops.c: Each place where it compares against field names, + check for null field names. (new t_field_name variables). + + * utils.c (fputs_filtered): Check for linebuffer null before + checking whether to call fputs. Remove later check for linebuffer + null. + +Sun Aug 13 15:56:50 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m-isi.h, m-sun3.h ({PUSH,POP}_FP_REGS): New macros. + m-sun3.h (NUM_REGS): Conditionalize on FPU. + config.gdb (sun3, isi): Add message about support for machines + without FPU. + + * main.c (catch_termination, initialize_signals): new functions. + + * main.c (editing_info): Add "info editing n" and "info editing +". + Rewrite much of this function. + gdb.texinfo (GDB Readline): Document it. + + * values.c (history_info): Add "info history +". Also add code to + do "info history +" when command is repeated. + gdb.texinfo (Value History): Document "info history +". + + * expprint.c (print_subexp): Add OP_THIS to case stmt. + + * config.gdb (sun4os4): Put quotes around make define. + + * config.gdb: Canonicalize machine name at beginning. + +Sat Aug 12 00:50:59 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * config.gdb: define M_MAKEDEFINE + Makefile (Makefile, MD): Be able to re-make Makefile. + + * main.c (command_line_input): Add comments to + the command history. + + * Makefile.dist (Makefile): Add /bin/false. + +Fri Aug 11 14:35:33 1989 Jim Kingdon (kingdon at spiff) + + * Makefile.dist: Comment out .c.o rule and add TARGET_ARCH. + + * m-altos.h: Include sys/page.h & sys/net.h + + * m-altos.h (FRAME_CHAIN{,_VALID}): Use outside_startup_file. + + * config.gdb (altos, altosgas): Add M_SYSV & M_BSD_NM and remove + M_ALLOCA=alloca.o from makedefine. + + * coffread.c (complete_symtab): Change a_entry to entry. + + * m-altosgas.h: New file. + + * m-symmetry (REGISTER_BYTE): Fix dumb mistake. + +Fri Aug 11 06:39:49 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * utils.c (set_screensize_command): Check for ARG being nil, since + that's what execute_command will pass if there's no argument. + + * expread.y (yylex): Recognize "0x" or "0X" as the beginning of a + number. + +Thu Aug 10 15:43:12 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * config.gdb, Makefile.dist: Rename Makefile.c to Makefile.dist. + + * m-altos.h: Add comment about porting to USGR2. + + * config.gdb (sparc): Add -Usparc. + +Wed Aug 9 14:20:39 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m-sun3os4.h: Define BROKEN_LARGE_ALLOCA. + + * values.c (modify_field): Check for value too large to fit in + bitfield. + + * utils.c (fputs_filtered): Allow LINEBUFFER to be NULL. + + * breakpoint.c (condition_command): Check for attempt to specify + non-numeric breakpoint number. + + * config.gdb, Makefile, m-altos.h, altos-dep.c: Merge Altos + port. + + * README: Change message about editing Makefile. + + * config.gdb: Edit Makefile. + Copied Makefile to Makefile.c and changed to let config.gdb + run us through the C preprocessor. + + * expread.y (yylex): Test correctly for definition of number. + +Wed Aug 9 11:56:05 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Put bracketing of entry point in + test case for .o symbols so that it will be correct even without + debugging symbols. + (end_psymtab): Took bracketing out. + + * blockframe.c (outside_startup_file): Reverse the sense of the + return value to make the functionality implied by the name + correct. + +Tue Aug 8 11:48:38 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * coffread.c (symbol_file_command): Do not assume presence of a.out + header. + + * blockframe.c: Replace first_object_file_end with + startup_file_{start,end} + (outside_startup_file): New function. + dbxread.c (read_addl_syms, read_dbx_symtab, end_psymbol): set + startup_file_*. Delete first_object_file_end code. + Add entry_point and ENTRY_POINT + coffread.c (complete_symtab): Set startup_file_*. + (first_object_file_end): Add as static. + m-*.h (FRAME_CHAIN, FRAME_CHAIN_VALID): Call outside_startup_file + instead of comparing with first_object_file_end. + + * breakpoint.c (breakpoint_1): Change -1 to (CORE_ADDR)-1. + + * config.gdb (i386, i386gas): Add missing quotes at end of "echo" + + * source.c (directory_command): Add dont_repeat (); + +Mon Aug 7 18:03:51 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * dbxread.c (read_addl_syms): Change strcmp to strncmp and put 3rd + arg back. + + * command.h (struct cmd_list_element): Add comment clarifying + purpose of abbrev_flag. + +Mon Aug 7 12:51:03 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * printcmd.c (_initialize_printcmd): Changed "undisplay" not to + have abbrev flag set; it isn't an abbreviation of "delete + display", it's an alias. + +Mon Aug 7 00:25:15 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * symtab.c (lookup_symtab_1): Remove filematch (never used). + + * expread.y [type]: Add second argument to 2 calls to + lookup_member_type which were missing them. + + * dbxread.c (symbol_file_command): Add from_tty arg. + Check it before calling query. + + * infcmd.c (tty_command): Add from_tty arg. + + * eval.c (evaluate_subexp): Remove 3rd argument from + calls to value_x_unop. + + * dbxread.c (read_addl_syms): Remove 3rd argument from + call to strcmp. + + * gdb.texinfo (Command editing): @include inc-readline.texinfo + and inc-history.texinfo and reorganize GDB-specific stuff. + + * Makefile: Add line MAKE=make. + + * README (second paragraph): Fix trivial errors. + + * dbxread.c (read_struct_type): Make sure p is initialized. + + * main.c (symbol_completion_function): Complete correctly + on the empty string. + +Sun Aug 6 21:01:59 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * symmetry-dep.c: Remove "long" from definition of i386_follow_jump. + + * gdb.texinfo (Backtrace): Document "where" and "info stack". + + * dbxread.c (cleanup_undefined_types): Strip off "struct " + or "union " from type names before doing comparison + +Sat Aug 5 02:05:36 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * config.gdb (i386, i386gas): Improve makefile editing instructions. + + * Makefile: Fix typo in CLIBS for SYSV. + + * dbxread.c (read_dbx_symtab): Deal with N_GSYM typedefs. + + * dbxread.c (add_file_command): Do not free name. We didn't + allocate it; it just points into arg_string. + + * Makefile, m-*.h: Change LACK_VPRINTF to HAVE_VPRINTF. + +Fri Jul 28 00:07:48 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * valprint.c (val_print): Made sure that all returns returned a + value (usually 0, indicating no memory printed). + + * core.c (read_memory): Changed "return" to "return 0". + + * expread.y (parse_number): Handle scientific notation when the + string does not contain a '.'. + +Thu Jul 27 15:14:03 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * infrun.c (signals_info): Error if signal number passed is out of + bounds. + + * defs.h: Define alloca to be __builtin_alloca if compiling with + gcc and localized inclusion of alloca.h on the sparc with the + other alloca stuff. + * command.c: Doesn't need to include alloca.h on the sparc; defs.h + does it for you. + + * printcmd.c (print_frame_args): Changed test for call to + print_frame_nameless_args to check i to tell if any args had been + printed. + +Thu Jul 27 04:40:56 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * blockframe.c (find_pc_partial_function): Always check that NAME + and/or ADDRESS are not nil before storing into them. + +Wed Jul 26 23:41:21 1989 Roland McGrath (roland at hobbes.ai.mit.edu) + + * m-newsos3.h: Define BROKEN_LARGE_ALLOCA. + * dbxread.c (symbol_file_command, psymtab_to_symtab): + Use xmalloc #ifdef BROKEN_LARGE_ALLOCA. + +Tue Jul 25 16:28:18 1989 Jay Fenlason (hack at apple-gunkies.ai.mit.edu) + + * m68k-opcode.h: moved some of the fmovem entries so they're + all consecutive. This way the assembler doesn't bomb. + +Mon Jul 24 22:45:54 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * symtab.c (lookup_symbol): Changed error to an informational (if + not very comforting) message about internal problems. This will + get a null symbol returned to decode_line_1, which should force + things to be looked up in the misc function vector. + +Wed Jul 19 13:47:34 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symtab.c (lookup_symbol): Changed "fatal" to "error" in + external symbol not found in symtab in which it was supposed to be + found. This can be reached because of a bug in ar. + +Tue Jul 18 22:57:43 1989 Randy Smith (roland at hobbes.ai.mit.edu) + + * m-news.h [REGISTER_U_ADDR]: Decreased the assumed offset of fp0 + by 4 to bring it into (apparently) appropriate alignment with + reality. + +Tue Jul 18 18:14:42 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * Makefile: pinsn.o should depend on opcode.h + + * m68k-opcode.h: Moved fmovemx with register lists to before other + fmovemx. + +Tue Jul 18 11:21:42 1989 Jim Kingdon (kingdon at susie) + + * Makefile, m*.h: Only #define vprintf (to _doprnt or printf, + depends on the system) if the library lacks it (controlled by + LACK_VPRINTF_DEFINE in makefile). Unpleasant, but necessary to + make this work with the GNU C library. + +Mon Jul 17 15:17:48 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * breakpoint.c (breakpoint_1): Change addr-b->address to + b->address-addr. + +Sun Jul 16 16:23:39 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * eval.c (evaluate_subexp): Change error message printed when + right operand of '@' is not an integer to English. + + * infcmd.c (registers_info): Fix call to print_spaces_filtered + to specify right # of arguments. + + * gdb.texinfo (Command Editing): Document info editing command. + + * coffread.c (read_file_hdr): Add MC68MAGIC. + + * source.c (select_source_symtab): Change MAX to max. + +Fri Jul 14 21:19:11 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * infcmd.c (registers_info): Clean up display to look good with long + register names, to say "register" instead of "reg", and to put the + "relative to selected stack frame" bit at the top. + +Fri Jul 14 18:23:09 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (record_misc_function): Put parens around | to force + correct evaluation. + +Wed Jul 12 12:25:53 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * m-newsos3, m-news, infrun.c, Makefile, config.gdb, news-dep.c: + Merge in Hikichi's changes for Sony/News-OS 3 support. + +Tue Jul 11 21:41:32 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * utils.c (fputs_filtered): Don't do any filtering if output is + not to stdout, or if stdout is not a tty. + (fprintf_filtered): Rely on fputs_filtered's check for whether to + do filtering. + +Tue Jul 11 00:33:58 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * GDB 3.2 Released. + + * valprint.h: Deleted. + + * utils.c (fputs_filtered): Don't do any filtering if filtering is + disabled (lines_per_page == 0). + +Mon Jul 10 22:27:53 1989 Randy Smith (roland at hobbes.ai.mit.edu) + + * expread.y [typebase]: Added "unsigned long int" and "unsigned + short int" to specs. + +Mon Jul 10 21:44:55 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * main.c (main): Make -cd use cd_command to avoid + current_directory with non-absolute pathname. + +Mon Jul 10 00:34:29 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (symbol_file_command): Catch errors from stat (even + though they should never happen). + + * source.c (openp): If the path is null, use the current + directory. + + * dbxread.c (read_dbx_symtab): Put N_SETV symbols into the misc + function vector ... + (record_misc_function): ... as data symbols. + + * utils.c (fprintf_filtered): Return after printing if we aren't + going to do filtering. + + * Makefile: Added several things for make clean to take care of. + + * expread.y: Lowered "@" in precedence below +,-,*,/,%. + + * eval.c (evaluate_subexp): Return an error if the rhs of "@" + isn't integral. + + * Makefile: Added removal of core and gdb[0-9] files to clean + target. + + * Makefile: Made a new target "distclean", which cleans things up + correctly for making a distribution. + +Sun Jul 9 23:21:27 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * dbxread.c: Surrounded define of gnu symbols with an #ifndef + NO_GNU_STABS in case you don't want them on some machines. + * m-npl.h, m-pn.h: Defined NO_GNU_STABS. + +Sun Jul 9 19:25:22 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * utils.c (fputs_filtered): New function. + (fprintf_filtered): Use fputs_filtered. + utils.c (print_spaces_filtered), + command.c (help_cmd,help_cmd_list), + printcmd.c (print_frame_args), + stack.c (print_block_frame_locals, print_frame_arg_vars), + valprint.c (many functions): Use fputs_filtered instead of + fprintf_filtered to avoid arbitrary limit. + + * utils.c (fprintf_filtered): Fix incorrect comment. + +Sat Jul 8 18:12:01 1989 Randy Smith (randy at hobbes.ai.mit.edu) + + * valprint.c (val_print): Changed assignment of pretty to use + prettyprint as a conditional rather than rely on values of the + enum. + + * Projects: Cleaned up a little for release. + + * main.c (initialize_main): Initialize + rl_completion_entry_function instead of completion_entry_function. + + * Makefile: Modified to use the new readline library setup. + + * breakpoint.c (break_command_1, delete_breakpoint, + enable_breakpoint, disable_breakpoint): Put in new printouts for + xgdb usage triggered off of xgdb_verbose. + * main.c (main): Added check for flag to set xgdb_verbose. + * stack.c (frame_command): Set frame_changed when frame command + used. + +Fri Jul 7 16:20:58 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * Remove valprint.h and move contents to value.h (more logical). + +Fri Jul 7 02:28:06 1989 Randall Smith (randy at rice-chex) + + * m68k-pinsn.c (print_insn): Included a check for register list; + if there is one, make sure to start p after it. + + * breakpoint.c (break_command_1, delete_breakpoint, + enable_breakpoint, disable_breakpoint): #ifdef'd out changes + below; they produce unwanted output in gdb mode in gnu-emacs. + + * gdb.texinfo: Spelled. Also removed index references from + command editing section; the relevance/volume ratio was too low. + Removed all references to the function index. + + * ns32k-opcode.h, ns32k-pinsn.c: Backed out changes of June 24th; + haven't yet received legal papers. + + * .gdbinit: Included message telling the user what it is doing. + + * symmetry-dep.c: Added static decls for i386_get_frame_setup, + i386_follow_jump. + * values.c (unpack_double): Added a return (double)0 at the end to + silence a compiler warning. + + * printcmd.c (containing_function_bounds, asdump_command): Created + to dump the assembly code of a function (support for xgdb and a + useful hack). + (_initialize_printcmd): Added this to command list. + * gdb.texinfo [Memory]: Added documentation for the asdump + command. + * breakpoint.c (break_command_1, delete_breakpoint, + enable_breakpoint, disable_breakpoint): Added extra verbosity for + xgdb conditionalized on the new external frame_full_file_name. + * source.c (identify_source_line): Increase verbosity of fullname + prointout to include pc value. + * stack.c: Added a new variable; "frame_changed" to indicate when + a frame has been changed so that gdb can print out a frame change + message when the frame only changes implicitly. + (print_frame_info): Check the new variable in determining when to + print out a new message and set it to zero when done. + (up_command): Increment it. + (down_command): Decrement it. + + * m68k-pinsn.c (print_insn_arg [lL]): Modified cases for register + lists to reset the point to point to after the word from which the + list is grabbed *if* that would cause point to point farther than + it currently is. + +Thu Jul 6 14:28:11 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * valprint.c (val_print, value_print): Add parameter to control + prettyprinting. + valprint.h: New file containing constants used for passing + prettyprinting parameter to val{,ue}_print. + expprint.c, infcmd.c, printcmd.c, valprint.c, values.c: + Change all calls to val{,ue}_print to use new parameter. + +Mon Jul 3 22:38:11 1989 Randy Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (,process_one_symbol): Moved extern declaration for + index out of function to beginning of file. + +Mon Jul 3 18:40:14 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) + + * gdb.texinfo (Registers): Add "ps" to list of standard registers. + +Sun Jul 2 23:13:03 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * printcmd.c (enable_display): Change d->next to d = d->next so + that "enable display" without args works. + +Fri Jun 30 23:42:04 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * source.c (list_command): Made error message given when no + symtab is loaded clearer. + + * valops.c (value_assign): Make it so that when assigning to an + internal variable, the type of the assignment exp is the type of + the value being assigned. + +Fri Jun 30 12:12:43 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c (verbose_info): Created. + (initialize_main): Put "info verbose" into command list. + + * utils.c (screensize_info): Created. + (_initialize_utils): Defined "info screensize" as a normal command. + + * valprint.c (format_info): Added information about maximum number + of array elements to function. + + * blockframe.c (find_pc_partial_function): Again. + + * blockframe.c (find_pc_partial_function): Replaced a "shouldn't + happen" (which does) with a zero return. + + * main.c (dont_repeat): Moved ahead of first use. + +Thu Jun 29 19:15:08 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * vax-opcode.h: Made minor modifications (moved an instruction and + removed a typo) to bring this into accord with gas' table; also + changed copyright to reflect it being part of both gdb and gas. + + * m68k-opcode.h: Added whole scads and bunches of new stuff for + the m68851 and changed the coptyrightto recognize that the file + was shared between gdb and gas. + + * main.c (stop_sig): Use "dont_repeat ()" instead of *line = 0; + + * core.c (read_memory): Don't do anything if length is 0. + + * Makefile: Added readline.c to the list of files screwed by + having the ansi ioctl.h compilation with gcc. + + * config.gdb: Added sun4os3 & sun4-os3 as availible options. + +Wed Jun 28 02:01:26 1989 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) + + * command.c (lookup_cmd): Add ignore_help_classes argument. + (lookup_cmd_1): Add ignore_help_classes argument. + command.c, main.c: Change callers of lookup_cmd{,_1} to supply + value for ignore_help_classes. + +Tue Jun 27 18:01:31 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * utils.c (print_spaces_filtered): Made more efficient. + * defs.h: Declaration. + * valprint.c (val_print): Used in a couple of new places. + +Mon Jun 26 18:27:28 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * m68k-pinsn.c (print_insn_arg ['#', '^']): Combined them into one + case which always gets the argument from the word immediately + following the instruction. + (print_insn_arg ["[lL]w"]): Make sure to always get the register + mask from the word immediately following the instruction. + +Sun Jun 25 19:14:56 1989 Randall Smith (randy at galapas.ai.mit.edu) + + * Makefile: Added hp-include back in as something to distribute. + + * stack.c (print_block_frame_locals): Return value changed from + void to int; return 1 if values printed. Use _filtered. + (print_frame_local_vars): Use return value from + print_block_frame_locals to mention if nothing printed; mention + lack of symbol table, use _filtered. + (print_frame_arg_vars): Tell the user if no symbol table + or no values printed. Use fprintf_filtered instead of fprintf. + * blockframe.c (get_prev_frame_info): Check for no inferior or + core file before crashing. + + * inflow.c (inferior_died): Set current frame to zero to keep from + looking like we're in start. + +Sat Jun 24 15:50:53 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * stack.c (frame_command): Added a check to make sure that there + was an inferior or a core file. + + * expread.y (yylex): Allow floating point numbers of the form ".5" + to be parsed. + + Changes by David Taylor at TMC: + * ns32k-pinsn.c: Added define for ?floating point coprocessor? and + tables for register names to be used for each of the possibilities. + (list_search): Created; searches a list of options for a specific + value. + (print_insn_arg): Added 'Q', 'b', 'M', 'P', 'g', and 'G' options + to the value location switch. + * ns32k-opcode.h: Added several new location flags. + [addr, enter, exit, ext[bwd], exts[bwd], lmr, lpr[bwd], restore, + rett, spr[bwd], smr]: Improved insn format output. + + * symtab.c (list_symbols): Rearrange printing to produce readable + output for "info types". + + * eval.c (evaluate_subexp_for_address): Fixed typo. + + * dbxread.c (read_type): Don't output an error message when + there isn't a ',' after a cross-reference. + + * dbxread.c (read_dbx_symtab): #if'd out N_FN case in + read_dbx_symtab if it has the EXT bit set (otherwise multiple + cases with the same value). + +Fri Jun 23 13:12:08 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * symmisc.c: Changed decl of print_spaces from static to extern + (since it's defined in utils.c). + + * remote.c (remote_open): Close remote_desc if it's already been + opened. + + * Remote_Makefile, remote_gutils.c, remote_inflow.c, + remote_server.c, remote_utils.c: Combined into remote-multi.shar. + * remote-multi.shar: Created (Vikram Koka's remote stub). + * remote-sa.m68k.shar: Created (Glenn Engel's remcom.c). + * README: Updated to reflect new organization of remote stubs. + + * dbxread.c (read_dbx_symtab): Put an N_FN in with N_FN | N_EXT to + account for those machines which don't use the external bit here. + Sigh. + + * m-symmetry.h: Defined NO_SIGINTERRUPT. + +Thu Jun 22 12:51:37 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * printcmd.c (decode_format): Make sure characters are printed + using a byte size. + + * utils.c (error): Added a terminal_ours here. + + * stack.c (locals_info): Added check for selected frame. + + * dbxread.c (read_type): Checked to make sure that a "," was + actually found in the symbol to end a cross reference. + +Wed Jun 21 10:30:01 1989 Randy Smith (randy at tartarus.uchicago.edu) + + * expread.y (parse_number, [exp]): Allowed for the return of a + number marked as unsigned; this will allow inclusion of unsigned + constants. + + * symtab.h: Put in default definitions for BUILTIN_TYPE_LONGEST + and BUILTIN_TYPE_UNSIGNED_LONGEST. + + * expread.y (parse_number): Will now accept integers suffixed with + a 'u' (though does nothing special with it). + + * valarith.c (value_binop): Added cases to deal with unsigned + arithmetic correctly. + +Tue Jun 20 14:25:54 1989 Randy Smith (randy at tartarus.uchicago.edu) + + * dbxread.c (psymtab_to_symtab_1): Changed reading in info message + to go through printf_filtered. + + * symtab.c (list_symbols): Placed header message after all calls + to psymtab_to_symtab. + + * symtab.c (smash_to_{function, reference, pointer}_type): Carried + attribute of permanence for the type being smashed over the bzero + and allowed any type to point at this one if it is permanent. + + * symtab.c (smash_to_{function, reference, pointer}_type): Fix + typo: check flags of to_type instead of type. + + * m-hp9k320.h: Changed check on __GNU__ predefine to __GNUC__. + + * Makefile: Made MUNCH_DEFINE seperate and based on SYSV_DEFINE; + they aren't the same on hp's. + +Mon Jun 19 17:10:16 1989 Randy Smith (randy at tartarus.uchicago.edu) + + * Makefile: Fixed typo. + + * valops.c (call_function): Error if the inferior has not been + started. + + * ns32k-opcode.h [check[wc], cmpm[bwd], movm[bwd], skpsb]: Fixed + typos. + +Fri Jun 9 16:23:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-news.h [NO_SIGINTERRUPT]: Defined. + + * dbxread.c (read_type): Start copy of undefined structure name + past [sue] defining type of cross ref. + + * dbxread.c (process_one_symbol): Changed strchr to index. + + * ns32k-opcode.h, ns32k-pinsn.c: More changes to number of + operands, addition of all of the set condition opcodes, addition + of several flag letters, all patterned after the gas code. + + * ns32k-opcode.h [mov{su,us}[bwd], or[bwd]]: Changed number of + operands from 1 to 2. + +Wed Jun 7 15:04:24 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symseg.h [TYPE_FLAG_STUB]: Created. + * dbxread.c (read_type): Set flag bit if type is stub. + (cleanup_undefined_types): Don't mark it as a stub if it's been + defined since we first learned about it. + * valprint.c (val_print): Print out a message to that effect if + this type is encountered. + + * symseg.h, symtab.h: Moved the definition of TYPE_FLAG_PERM over + to symseg.h so that all such definitions would be in the same place. + + * valprint.c (val_print): Print out for a + structure if there aren't any. + + * dbxread.c (read_type): Set type name of a cross reference type + to "struct whatever" or something. + +Tue Jun 6 19:40:52 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * breakpoint.c (breakpoint_1): Print out symbolic location of + breakpoints for which there are no debugging symbols. + +Mon Jun 5 15:14:51 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * command.c (help_cmd_list): Made line_size static. + +Sat Jun 3 17:33:45 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * Makefile: Don't include the binutils hp-include directory in the + distribution anymore; refer the users to the binutils distribution. + +Thu Jun 1 16:33:07 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * printcmd.c (disable_display_command): Fixed loop iteration for + no arg case. + + * printcmd.c (disable_display_command): Added from_tty parameter + to function. + + * valops.c (value_of_variable): Call read_var_value with 0 cast to + FRAME instead of CORE_ADDR. + + * eval.c (evaluate_subexp): Corrected number of args passed to + value_subscript (to 2). + + * infrun.c (wait_for_inferior), symtab.c (decode_line_1), + m-convex.h: Changed name of FIRSTLINE_DEBUG_BROKEN to + PROLOGUE_FIRSTLINE_OVERLAP. + + * m-merlin.h: Fixed typo. + * ns32k-opcode.h: Added ns32381 opcodes and "cinv" insn, and fixed + errors in movm[wd], rett, and sfsr. + + * eval.c (evaluate_subexp, evaluate_subexp_for_address), valops.c + (value_zero): Change value_zero over to taking two arguments + instead of three. + + * eval.c (evaluate_subexp) + [OP_VAR_VALUE]: Get correct lval type for AVOID_SIDE_EFFECTS for + all types of symbols. + [BINOP_DIV]: Don't divide if avoiding side effects; just return + an object of the correct type. + [BINOP_REPEAT]: Don't call value_repeat, just allocate a + repeated value. + (evaluete_subexp_for_address) [OP_VAR_VALUE]: Just return a thing + of the right type (after checking to make sure that we are allowed + to take the address of whatever variable has been passed). + +Mon May 29 11:01:02 1989 Randall Smith (randy at galapas.ai.mit.edu) + + * breakpoint.c (until_break_command): Set the breakpoint with a + frame specification so that it won't trip in inferior calls to the + function. Also set things up so that it works based on selected + frame, not current one. + +Sun May 28 15:05:33 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * eval.c (evalue_subexp): Change subscript case to use value_zero + in EVAL_AVOID_SIDE_EFFECTS case. + +Fri May 26 12:03:56 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_addl_syms, psymtab_to_symtab): Removed + cleanup_undefined_types; this needs to be done on a symtab basis. + (end_symtab): Called cleanup_undefined_types from here. + (cleanup_undefined_types): No longer uses lookup_symbol (brain + dead idea; oh, well), now it searches through file_symbols. + +Wed May 24 15:52:43 1989 Randall Smith (randy at galapas) + + * source.c (select_source_symtab): Only run through + partial_symtab_list if it exists. + + * coffread.c (read_coff_symtab): Don't unrecord a misc function + when a function symbol is seen for it. + + * expread.y [variable]: Make sure to write a type for memvals if + you don't get a mft you recognize. + +Tue May 23 12:15:57 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * dbxread.c (read_ofile_symtab, psymtab_to_symtab): Moved cleanup + of undefined types to psymtab_to_symtab. That way it will be + called once for all readins (which will, among other things, + help reduce infinite loops). + + * symtab.h [misc_function_type]: Forced mf_unknown to 0. + * dbxread.c (record_misc_function): Cast enum to unsigned char (to + fit). + * expread.y [variable]: Cast unsigned char back to enum to test. + +Mon May 22 13:08:25 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + Patches by John Gilmore for dealing well with floating point: + * findvar.c (value_from_register, locate_var_value): Used + BYTES_BIG_ENDIAN instead of an inline test. + * m-sparc.h [IEEE_FLOAT]: Created to indicate that the sparc is + IEEE compatible. + * printcmd.c (print_scalar_formatted): Use BYTES_BIG_ENDIAN and + the stream argument for printing; also modify default type for + 'f'. Change handling of invalid floats; changed call syntax for + is_nan. + (print_command): Don't print out anything indicating that + something was recorded on the history list if it wasn't. + * valprint.c (val_print): Fixed to deal properley with new format + of is_nan and unpacking doubles without errors occuring. + (is_nan): Changed argument list and how it figures big endianness + (uses macros). + * values.c (record_latest_value): Return -1 and don't record if + it's an invalid float. + (value_as_double): Changed to use new unpack_double calling + convention. + (unpack_double): Changed not to call error if the float was + invalid; simply to set invp and return. Changed calling syntax. + (unpack_field_as_long, modify_field): Changed to use + BITS_BIG_ENDIAN to determine correct action. + + * m-hp9k320.h [HP_OS_BUG]: Created; deals with problem where a + trap happens after a continue. + * infrun.c (wait_for_inferior): Used. + + * m-convex.h [FIRSTLINE_DEBUG_BROKEN]: Defined a flag to indicate + that the debugging symbols output by the compiler for the first + line of a function were broken. + * infrun.c (wait_for_inferior), symtab.c (decode_line_1): Used. + + * gdb.texinfo [Data, Memory]: Minor cleanups of phrasing. + +Fri May 19 00:16:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (add_undefined_type, cleanup_undefined_types): Created + to keep a list of cross references to as yet undefined types. + (read_type): Call add_undefined_type when we run into such a case. + (read_addl_syms, read_ofile_symtab): Call cleanup_undefined_types + when we're done. + + * dbxread.c (psymtab_to_symtab, psymtab_to_symtab_1): Broke + psymtab_to_symtab out into two routines; made sure the string + table was only readin once and the globals were only scanned once, + for any number of dependencies. + +Thu May 18 19:59:18 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-*.h: Defined (or not, as appropriate per machine) + BITS_BIG_ENDIAN, BYTES_BIG_ENDIAN, and WORDS_BIG_ENDIAN. + +Wed May 17 13:37:45 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c (symbol_completion_function): Always complete on result + command list, even if exact match found. If it's really an exact + match, it'll find it again; if there's something longer than it, + it'll get the right result. + + * symtab.c (make_symbol_completion_function): Fixed typo; strcmp + ==> strncmp. + + * dbxread.c (read_dbx_symtab): Change 'G' case to mark symbols as + LOC_EXTERNAL. + + * expread.y [variables]: Changed default type of text symbols to + function returning int so that one can use, eg. strcmp. + + * infrun.c (wait_for_inferior): Include a special flag indicating + that one shouldn't insert the breakpoints on the next step for + returning from a sigtramp and forcing at least one move forward. + + * infrun.c (wait_for_inferior): Change test for nexting into a + function to check for current stack pointer inner than previous + stack pointer. + + * infrun.c (wait_for_inferior): Check for step resume break + address before dealing with normal breakpoints. + + * infrun.c (wait_for_inferior): Added a case to deal with taking + and passing along a signal when single stepping past breakpoints + before inserting breakpoints. + + * infrun.c (wait_for_inferior): Inserted special case to keep + going after taking a signal we are supposed to be taking. + +Tue May 16 12:49:55 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * inflow.c (terminal_ours_1): Cast result of signal to (int + (*)()). + + * gdb.texinfo: Made sure that references to the program were in + upper case. Modify description of the "set prompt" command. + [Running]: Cleaned up introduction. + [Attach]: Cleaned up. + [Stepping]: Change "Proceed" to "Continue running" or "Execute". + Minor cleanup. + [Source Path]: Cleaned up intro. Cleared up distinction between + the executable search path and the source path. Restated effect + of the "directory" command with no arguments. + [Data]: Fixed typos and trivial details. + [Stepping]: Fixed up explanation of "until". + + * source.c (print_source_lines): Print through filter. + + * printcmd.c (x_command): If the format with which to print is + "i", use the address of anything that isn't a pointer instead of + the value. This is for, eg. "x/10i main". + + * gdb.texinfo: Updated last modification date on manual. + +Mon May 15 12:11:33 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symtab.c (lookup_symtab): Fixed typo (name ==> copy) in call to + lookup_symtab_1. + + * gdb.texinfo: Added documentation for "break [+-]n" and for new + actions of "directory" command (taking multiple directory names at + the same time). + + * m68k-opcode.h: Replaced the version in gdb with an up-to-date + version from the assembler directory. + * m68k-pinsn.c (print_insn_arg): Added cases 'l' & 'L' to switch + to print register lists for movem instructions. + + * dbxread.c, m-convex.h: Moved convex dependent include files over + from dbxread.c to m-convex.h. + + * printcmd.c (disable_display, disable_display_command): Changed + name of first to second, and created first which takes an int as + arg rather than a char pointer. Changed second to use first. + (_initialize_printcmd): Changed to use second as command to call. + (delete_current_display, disable_current_display): Changed name of + first to second, and changed functionality to match. + * infrun.c (normal_stop), main.c (return_to_top_level): Changed to + call disable_current_display. + + * dbxread.c (process_one_symbol, read_dbx_symtab): Changed N_FN to + be N_FN | N_EXT to deal with new Berkeley define; this works with + either the old or the new. + + * Remote_Makefile, remote_gutils.c, remote_inflow.c, + remote_server.c, remote_utils.c: Created. + * Makefile: Included in tag and tar files. + * README: Included a note about them. + + * printcmd.c (print_address): Use find_pc_partial_function to + remove need to readin symtabs for symbolic addresses. + + * source.c (directory_command): Replaced function with new one + that can accept lists of directories seperated by spaces or :'s. + + * inflow.c (new_tty): Replaced calls to dup2 with calls to dup. + +Sun May 14 12:33:16 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * stack.c (args_info): Make sure that you have an inferior or core + file before taking action. + + * ns32k-opcode.h [deiw, deid]: Fixed machine code values for these + opcodes. + + * dbxread.c (scan_file_globals): Modified to use misc function + vector instead of file itself. Killed all arguments to the + funciton; no longer needed. + (psymtab_to_symtab): Changed call for above to reflect new (void) + argument list. + + * dbxread.c (read_dbx_symtab, ): Moved HASH_OFFSET define out of + read_dbx_symtab. + + * expread.y [variable]: Changed default type of misc function in + text space to be (void ()). + + * Makefile: Modified for proper number of s/r conflicts (order is + confusing; the mod that necessitated this change was on May 12th, + not today). + + * expread.y (yylex): Added SIGNED, LONG, SHORT, and INT keywords. + [typename]: Created. + [typebase]: Added rules for LONG, LONG INT, SHORT, SHORT INT, + SIGNED name, and UNSIGNED name (a good approximation of ansi + standard). + + * Makefile: Included .c.o rule to avoid sun's make from throwing + any curves at us. + + * blockframe.c: Included + + * command.c (lookup_cmd): Clear out trailing whitespace. + + * command.c (lookup_cmd_1): Changed malloc to alloca. + +Fri May 12 12:13:12 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * printcmd.c (print_frame_args): Only print nameless args when you + know how many args there are supposed to be and when you've + printed fewer than them. Don't print nameless args between + printed args. + + * symtab.c (make_symbol_completion_function): Fixed typo (= ==> + ==). + + * remote.c (remote_open): ifdef'd out siginterrupt call by #ifndef + NO_SIGINTERRUPT. + * m-umax.h: Defined NO_SIGINTERRUPT. + + * expread.y [ptype, array_mod, func_mod, direct_abs_decl, + abs_decl]: Added rules for parsing and creating arbitrarily + strange types for casts and sizeofs. + + * symtab.c, symtab.h (create_array_type): Created. Some minor + misfeatures; see comments for details (main one being that you + might end up creating two arrays when you only needed one). + +Thu May 11 13:11:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * valops.c (value_zero): Add an argument for type of lval. + * eval.c (evaluate_subexp_for_address): Take address properly in + the avoid side affects case (ie. keep track of whether we have an + lval in memory and we can take the address). + (evaluate_subexp): Set the lval type of expressions created with + value_zero properley. + + * valops.c, value.h (value_zero): Created--will return a value of + any type with contents filled with zero. + * symtab.c, symtab.h (lookup_struct_elt_type): Created. + * eval.c (evaluate_subexp): Modified to not read memory when + called with EVAL_AVOID_SIDE_EFFECTS. + + * Makefile: Moved dbxread.c ahead of coffread.c in the list of + source files. + +Wed May 10 11:29:19 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * munch: Make sure that sysv version substitutes for the whole + line. + + * symtab.h: Created an enum misc_function_type to hold the type of + the misc function being recorded. + * dbxread.c (record_misc_function): Branched on dbx symbols to + decide which type to assign to a misc function. + * coffread.c (record_misc_function): Always assign type unknown. + * expread.y [variable]: Now tests based on new values. + +Tue May 9 13:03:54 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symtab.c: Changed inclusion of (doesn't work on + SYSV) to declaration of index. + + * Makefile: Changed last couple of READLINE_FLAGS SYSV_DEFINE + + * source.c ({forward, reverse}_search_command): Made a default + search file similar to for the list command. + +Mon May 8 18:07:51 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * printcmd.c (print_frame_args): If we don't know how many + arguments there are to this function, don't print the nameless + arguments. We don't know enough to find them. + + * printcmd.c (print_frame_args): Call print_frame_nameless_args + with proper arguments (start & end as offsets from addr). + + * dbxread.c (read_addl_syms): Removed cases to deal with global + symbols; this should all be done in scan_global_symbols. + +Sun May 7 11:36:23 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * Makefile: Added copying.awk to ${OTHERS}. + +Fri May 5 16:49:01 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * valprint.c (type_print_varspec_prefix): Don't pass + passed_a_pointer onto children. + + * valprint.c (type_print_varspec_suffix): Print "array of" with + whatever the "of" is after tha array brackets. + + * valprint.c (type_print_varspec_{prefix,suffix}): Arrange to + parenthesisze pointers to arrays as well as pointers to other + objects. + + * valprint.c (type_print_varspec_suffix): Make sure to print + subscripts of multi-dimensional arrays in the right order. + + * infcmd.c (run_command): Fixed improper usages of variables + within remote debugging branch. + + * Makefile: Added Convex.notes to the list of extra files to carry + around. + + * dbxread.c (symbol_file_command): Made use of alloca or malloc + dependent on macro define. + +Thu May 4 15:47:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * Makefile: Changed READLINE_FLAGS to SYSV_DEFINE and called munch + with it also. + * munch: Check first argument for -DSYSV and be looser about + picking up init routines if you find it. + + * coffread.c: Made fclose be of type int. + + * breakpoint.c (_initialize_breakpoint): Put "unset" into class + alias. + +Wed May 3 14:09:12 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h [STACK_END_ADDR]: Parameterized off of + machine/vmparam.h (as per John Gilmore's suggestion). + + * blockframe.c (get_prev_frame_info): Changed this function back + to checking frameless invocation first before checking frame + chain. This means that a backtrace up from start will produce the + wrong value, but that a backtrace from a frameless function called + in main will show up correctly. + + * breakpoint.c (_initialize_breakpoint): Added entry in help for + delete that indicates that unset is an alias for it. + + * main.c (symbol_completion_function): Modified recognition of + being within a single command. + +Tue May 2 15:13:45 1989 Randy Smith (randy at gnu) + + * expread.y [variable]: Add some parens to get checking of the + misc function vector right. + +Mon May 1 13:07:03 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * default-dep.c (core_file_command): Made reg_offset unsigned. + + * default-dep.c (core_file_command): Improved error messages for + reading in registers. + + * expread.y: Allowed a BLOCKNAME to be ok for a variable name (as + per C syntax). + + * dbxread.c (psymtab_to_symtab): Flushed stdout after printing + starting message about reading in symbols. + + * printcmd.c (print_frame_args): Switched starting place for + printing of frameless args to be sizeof int above last real arg + printed. + + * printcmd.c (print_frame_args): Modified final call to + print_nameless_args to not use frame slots used array if none had + been used. + + * infrun.c (wait_for_inferior): Take FUNCTION_START_OFFSET into + account when dealing with comparison of pc values to function + addresses. + + * Makefile: Added note about compiling gdb on a Vax running 4.3. + +Sun Apr 30 12:59:46 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * command.c (lookup_cmd): Got correct error message on bad + command. + + * m-sun3.h [ABOUT_TO_RETURN]: Modified to allow any of the return + instructions, including trapv and return from interupt. + + * command.c (lookup_cmd): If a command is found, use it's values + for error reporting and determination of needed subcommands. + + * command.c (lookup_cmd): Use null string for error if cmdtype is + null; pass *line to error instead of **. + + * command.c (lookup_cmd_1): End of command marked by anything but + alpha numeric or '-'. Included ctype.h. + +Fri Apr 28 18:30:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * source.c (select_source_symtab): Kept line number from ever + being less than 1 in main decode. + +Wed Apr 26 13:03:20 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * default-dep.c (core_file_command): Fixed typo. + + * utils.c (fprintf_filtered): Don't use return value from + numchars. + + * main.c, command.c (complete_on_cmdlist): Moved function to + command.c. + + * command.c (lookup_cmd): Modified to use my new routine. Old + version is still there, ifdef'd out. + + * command.c, command.h (lookup_cmd_1): Added a routine to do all + of the work of lookup_cmd with no error reporting and full return + of information garnered in search. + +Tue Apr 25 12:37:54 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * breakpoint.c (_initialize_breakpoint): Change "delete + breakpionts" to be in class alias and not have the abbrev flag + set. + + * main.c (symbol_completion_function): Fix to correctly complete + things that correspond to multiword aliases. + + * main.c (complete_on_cmdlist): Don't complete on something if it + isn't a command or prefix (ie. if it's just a help topic). + + * main.c (symbol_completion_function): Set list index to be 0 if + creating a list with just one element. + + * main.c (complete_on_cmdlist): Don't allow things with + abbrev_flag set to be completion values. + (symbol_completion_function): Don't accept an exact match if the + abbrev flag is set. + + * dbxread.c (read_type): Fixed typo in comparision to check if + type number existed. + + * dbxread.c (read_type): Made sure to only call dbx_lookup_type on + typenums if typenums were not -1. + +Mon Apr 24 17:52:12 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symtab.c: Added strings.h as an include file. + +Fri Apr 21 15:28:38 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symtab.c (lookup_partial_symtab): Changed to only return a match + if the name match is exact (which is what I want in all cases in + which this is currently used. + +Thu Apr 20 11:12:34 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * m-isi.h [REGISTER_U_ADDR]: Installed new version from net. + * default-dep.c: Deleted inclusion of fcntl.h; apparently not + necessary. + * Makefile: Added comment about compiling on isi under 4.3. + + * breakpoint.c (break_command_1): Only give decode_line_1 the + default_breakpoint_defaults if there's nothing better (ie. make + the default be off of the current_source notes if at all + possible). + + * blockframe.c (get_prev_frame_info): Clean up comments and + delete code ifdefed out around FRAMELESS_FUNCTION_INVOCATION test. + + * remote.c: Added a "?" message to protocol. + (remote_open): Used at startup. + (putpkt): Read whatever garbage comes over the line until we see a + '+' (ie. don't treat garbage as a timeout). + + * valops.c (call_function): Eliminated no longer appropriate + comment. + + * infrun.c (wait_for_inferior): Changed several convex conditional + compilations to be conditional on CANNOT_EXECUTE_STACK. + +Wed Apr 19 10:18:17 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * printcmd.c (print_frame_args): Added code to attempt to deal + with arguments that are bigger than an int. + + Continuation of Convex/Fortran changes: + * printcmd.c (print_scalar_formatted): Added leading zeros to + printing of large integers. + (address_info, print_frame_args): Added code to deal with + LOC_REF_ARG. + (print_nameless_args): Allow param file to specify a routine with + which to print typeless integers. + (printf_command): Deal with long long values well. + * stack.c (print_frame_arg_vars): Change to deal with LOC_REF_ARG. + * symmisc.c (print_symbol): Change to deal with LOC_REF_ARG. + * symseg.h: Added LOC_REF_ARG to enum address_class. + * symtab.c (lookup_block_symbol): Changed to deal with + LOC_REF_ARG. + * valarith.c (value_subscripted_rvalue): Created. + (value_subscript): Used above when app. + (value_less, value_equal): Change to cast to (char *) before doing + comparison, for machines where that casting does something. + * valops.c (call_function): Setup to deal with machines where you + cannot execute code on the stack segment. + * valprint.c (val_print): Make sure that array element size isn't + zero before printing. Set address of default array to address of + first element. Put in a couple of int cast. Removed some convex + specific code. Added check for endianness of machine in case of a + packed structure. Added code for printing typeless integers and + for LONG LONG's. + (set_maximum_command): Change to use parse_and_eval_address to get + argument (so can use expressions there). + * values.c (value_of_internalvar, set_internalvar_component, + set_internalvar, convenience_info): Add in hooks for trapped + internal vars. + (unpack_long): Deal with LONG_LONG. + (value_field): Remove LONGEST cast. + (using_struct_return): Fixed typo ENUM ==> UNION. + * xgdb.c (_initialize_xgdb): Make sure that specify_exec_file_hook + is not called unless we are setting up a windowing environ. + +Tue Apr 18 13:43:37 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + Various changes involved in 1) getting gdb to work on the convex, + and 2) Getting gdb to work with fortran (due to convex!csmith): + * convex-dep.c, convex-opcode.h, m-convex.h, convex-pinsn.c: + Created (or replaced with new files). + * Makefile: Add convex dependent files. Changed default flags to + gnu malloc to be CFLAGS. + * config.gdb: Added convex to list of machines. + * core.c (files_info): Added a FILES_INFO_HOOK to be used if + defined. + (xfer_core_file): Conditionalized compilation of xfer_core_file on + the macro XFER_CORE_FILE. + * coffread.c (record_misc_function): Made sure it zerod type field + (which is now being used; see next). + * dbxread.c: Included some convex dependent include files. + (copy_pending, fix_common_blocks): Created. + [STAB_REG_REGNUM, BELIEVE_PCC_PROMOTION]: Created default values; + may be overridden in m-*.h. + Included data structures for keeping track of common blocks. + (dbx_alloc_type): Modified; if called with negative 1's will + create a type without putting it into the type vector. + (read_dbx_symtab, read_addl_syms): Modified calls to + record_misc_function to include the new information. + (symbol_file_command, psymtab_to_symtab, add_file_command): + Modified reading in of string table to adapt to machines which + *don't* store the size of the string table in the first four bytes + of the string table. + (read_dbx_symtab, scan_file_globals, read_ofile_symtab, + read_addl_syms): Modified assignment of namestring to accept null + index into symtab as ok. + (read_addl_syms): Modified readin of a new object file to fiddle + with common blocks correctly. + (process_one_symbol): Fixed incorrect comment about convex. Get + symbols local to a lexical context from correct spot on a per + machine basis. Catch a bug in pcc which occaisionally puts an SO + where there should be an SOL. Seperate sections for N_BCOMM & + N_ECOMM. + (define_symbol): Ignore symbols with no ":". Use + STAB_REG_TO_REGNUM. Added support for function args calling by + reference. + (read_type): Only read type number if one is there. Remove old + (#if 0'd out) array code. + (read_array_type): Added code for dealing with adjustable (by + parameter) arrays half-heartedly. + (read_enum_type): Allow a ',' to end a list of values. + (read_range_type): Added code to check for long long. + * expread.y: Modified to use LONGEST instead of long where + necessary. Modified to use a default type of int for objects that + weren't in text space. + * findvar.c (locate_var_value, read_var_value): Modified to deal + with args passed by reference. + * inflow.c (create_inferior): Used CREATE_INFERIOR_HOOK if it + exists. + * infrun.c (attach_program): Run terminal inferior when attaching. + (wait_for_inferior): Removed several convex dependencies. + * main.c (float_handler): Created. + Made whatever signal indicates a stop configurable (via macro + STOP_SIGNAL). + (main): Setup use of above as a signal handler. Added check for + "-nw" in args already processed. + (command_line_input): SIGTSTP ==>STOP_SIGNAL. + + * expread.y: Added token BLOCKNAME to remove reduce/reduce + conflict. + * Makefile: Change message to reflect new grammar. + +Mon Apr 17 13:24:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * printcmd.c (compare_ints): Created. + (print_frame_args): Modified to always print arguments in the + order in which they were found in the symbol table. Figure out + what apots are missing on the fly. + + * stack.c (up_command): Error if no inferior or core file. + + * m-i386.h, m-symmetry.h [FRAMELESS_FUNCTION_INVOCATION]: Created; + same as m68k. + + * dbxread.c (define_symbol): Changed "desc==0" test to + "processing_gcc_compilation", which is the correct way to do it. + +Sat Apr 15 17:18:38 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * expread.y: Added precedence rules for arglists, ?:, and sizeof + to eliminate some shift-reduce conflicts. + * Makefile: Modified "Expect" message to conform to new results. + +Thu Apr 13 12:29:26 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * inflow.c (terminal_init_inferior): Fixed typo in recent diff + installation; TIOGETC ==> TIOCGETC. + + * m-vax.h, m-sun2.h, m-sun3.h, m-sparc.h, m-hp*.h, m-isi.h, + m-news.h [FRAMELESS_FUNCTION_INVOCATION]: Created macro with + appropriate definition. + +Wed Apr 12 15:30:29 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * blockframe.c (get_prev_frame_info): Added in a macro to specify + when a "frame" is called without a frame pointer being setup. + + * Makefile [clean]: Made sure to delete gnu malloc if it was being + used. + +Mon Apr 10 12:43:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (process_one_symbol): Reset within_function to 0 after + last RBRAC of a function. + + * dbxread.c (read_struct_type): Changed check for filling in of + TYPE_MAIN_VARIANT of type. + + * inflow.c (create_inferior): Conditionalized fork so that it + would be used if USG was defined and HAVE_VFORK was not defined. + + * defs.h: Added comment about enum command_class element + class_alias. + + * dbxread.c (process_one_symbol): Fixed a typo with interesting + implications for associative processing in the brain (':' ==> 'c'). + + * sparc-dep.c (isabranch): Changed name to isannulled, modified to + deal with coprocessor branches, and improved comment. + (single_step): Changed to trap at npc + 4 instead of pc +8 on + annulled branches. Changed name in call to isabranch as above. + + * m-sun4os4.h (STACK_END_ADDRESS): Changed it to 0xf8000000 under + os 4.0. + +Sat Apr 8 17:04:07 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (process_one_symbol): In the case N_FUN or N_FNAME the + value being refered to is sometimes just a text segment variable. + Catch this case. + + * infrun.c (wait_for_inferior), breakpoint.c + (breakpoint_stop_status): Move the selection of the frame to + inside breakpoint_stop_status so that the frame only gets selected + (and the symbols potentially read in) if the symbols are needed. + + * symtab.c (find_pc_psymbol): Fixed minor misthough (pc >= + fucntion start, not >). + + * breakpoint.c (_initialize_breakpoint): Change "delete" internal + help entry to simply refer to it being a prefix command (since the + list of subcommands is right there on a "help delete"). + +Fri Apr 7 15:22:18 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * blockframe.c (find_pc_partial_function): Created; figures out + what function pc is in (name and address) without reading in any + new symbols. + * symtab.h: Added decl for above. + * infrun.c (wait_for_inferior): Used instead of + find_pc_function_start. + * stack.c (print_frame_info): Used instead of hand coding for same + thing. + + * dbxread.c (psymtab_to_symtab): No longer patch readin pst's out + of the partial_symtab_list; need them there for some checks. + * blockframe.c (block_for_pc), source.c (select_source_symtab), + symtab.c (lookup_symbol, find_pc_symtab, list_symbols): Made extra + sure not to call psymtab_to_symtab with ->readin == 1, since these + psymtab now stay on the list. + * symtab.c (sources_info): Now distinguishes between psymtabs with + readin set and those with it not set. + + * symtab.c (lookup_symtab): Added check through partial symtabs + for name with .c appended. + + * source.c (select_source_symtab): Changed semantics a little so + that the argument means something. + * source.c (list_command), symtab.c (decode_line_1): Changed call + to select_source_symtab to match new conventions. + + * dbxread.c (add_file_command): This command no longer selects a + symbol table to list from. + + * infrun.c (wait_for_inferior): Only call find_pc_function (to + find out if we have debugging symbols for a function and hence if + we should step over or into it) if we are doing a "step". + +Thu Apr 6 12:42:28 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c (command_line_input): Added a local buffer and only + copied information into the global main.c buffer when it is + appropriate for it to be saved (and repeated). + (dont_repeat): Only nail line when we are reading from stdin + (otherwise null lines won't repeat and what's in line needs to be + saved). + (read_command_lines): Fixed typo; you don't what to repeat when + reading command lines from the input stream unless it's standard + input. + + John Gilmore's (gnu@toad.com) mods for USG gdb: + * inflow.c: Removed inclusion of sys/user.h; no longer necessary. + (, terminal_init_inferior, terminal_inferior, terminal_ours_1, + term_status_command, _initialize_inflow) Seperated out declaration + and usage of terminal mode structures based on the existence of + the individual ioctls. + * utils.c (request_quit): Restore signal handler under USG. If + running under USG initialize sys_siglist at run time (too much + variation between systems). + +Wed Apr 5 13:47:24 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + John Gilmore's (gnu@toad.com) mods for USG gdb: + * default-dep.c: Moved include of sys/user.h to after include of + a.out.h. + (store_inferior_registers): Fixed error message. + (core_file_command): Improved error messages from reading in of + u area in core file. Changed calculation of offset of registers + to account for some machines putting it in as an offset rather + than an absolute address. Changed error messages for reading of + registers from core file. + + * coffread.c (read_file_hdr): Added final check for BADMAG macro + to use if couldn't recognize magic number. + * Makefile: Added explicit directions for alloca addition. + Included alloca.c in list of possible library files. Cleaned up + possible library usage. Included additional information on gcc + and include files. + + * source.c, remote.c, inflow.c, dbxread.c, core.c, coffread.c: + Changed include of sys/fcntl.h to an include of fcntl.h (as per + posix; presumably this will break fewer machines. I hopw). + * README: Added a pointer to comments at top of Makefile. + * Makefile: Added a comment about machines which need fcntl.h in + sys. + +Tue Apr 4 11:29:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * valprint.c (set_prettyprint_command, set_unionprint_command, + format_info): Created. + (_initialize_valprint): Added to lists of commands. + + * gdb.texinfo [Backtrace]: Added a section describing the format + if symbols have not yet been read in. + + * valprint.c (val_print): Added code to prettyprint structures if + "prettyprint" is set and only to print unions below the top level + if "unionprint" is set. + + * infcmd.c (registers_info), valprint.c (value_print, val_print): + Added argument to call to val_print indicating deptch of recursion. + + * symtab.[ch] (find_pc_psymbol): Created; finds static function + psymbol with value nearest to but under value passed. + * stack.c (print_frame_info): Used above to make sure I have best + fit to pc value. + + * symseg.h (struct partial_symbol): Added value field. + * dbxread.c (read_dbx_symtab): Set value field for partial symbols + saved (so that we can lookup static symbols). + + * symtab.[ch] (find_pc_symtab): Changed to external. + * stack.c (select_frame): Call above to make sure that symbols for + a selected frame is readin. + +Mon Apr 3 12:48:16 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * stack.c (print_frame_info): Modified to only print out full + stack frame info on symbols whose tables have been read in. + * symtab.c, symtab.h (find_pc_psymtab): Made function external; + above needed it. + + * main.c (,set_verbose_command, initialize_main): Created a + variable "info_verbose" which says to talk it up in various and + sundry places. Added command to set this variable. + * gdb.texinfo (GDB Output): Added documentation on "set verbose" + and changed the name of the "Screen Output" section to "GDB + Output". + * dbxread.c (psymtab_to_symtab): Added information message about + symbol readin. Conditionalized on above. + + * dbxread.c (define_symbol): Made an "i" constant be of class + LOC_CONST and an "r" constant be of class LOC_CONST_BYTES. + + * README: Made a note about modifications which may be necessary + to the manual for this version of gdb. + + * blockframe.c (get_prev_frame_info): Now we get saved address and + check for validity before we check for leafism. This means that + we will catch the fact that we are in start, but we will miss any + fns that start calls without an fp. This should be fine. + + * m-*.h (FRAME_CHAIN): Modified to return 0 if we are in start. + This is usually a test for within the first object file. + * m-sparc.h (FRAME_CHAIN): The test here is simply if the fp saved + off the the start sp is 0. + + * blockframe.c (get_prev_frame_info): Removed check to see if we + were in start. Screws up sparc. + + * m-sparc.h (FRAME_FIND_SAVED_REGISTERS): Changed test for dummy + frame to not need frame to be innermost. + + * gdb.texinfo: Added section on frameless invocations of functions + and when gdb can and can't deal with this. + + * stack.c (frame_info): Disallowed call if no inferior or core + file; fails gracefully if truely bad stack specfication has been + given (ie. parse_frame_specification returns 0). + +Fri Mar 31 13:59:33 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * infrun.c (normal_stop): Changed references to "unset-env" to + "delete env". + + * infcmd.c (_initialize_infcmd): Change reference to set-args in + help run to "set args". + + * remote.c (getpkt): Allow immediate quit when reading from + device; it could be hung. + + * coffread.c (process_coff_symbol): Modify handling of REG + parameter symbols. + +Thu Mar 30 15:27:23 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (symbol_file_command): Use malloc to allocate the + space for the string table in symbol_file_command (and setup a + cleanup for this). This allows a more graceful error failure if + there isn't any memory availible (and probably allows more memory + to be avail, depending on the machine). + + Additional mods for handling GNU C++ (from Tiemann): + * dbxread.c (read_type): Added case for '#' type (method type, I + believe). + (read_struct_type): If type code is undefined, make the main + variant for the type be itself. Allow recognition of bad format + in reading of structure fields. + * eval.c (evaluate_subexp): Modify evaluation of a member of a + structure and pointer to same to make sure that the syntax is + being used correctly and that the member is being accessed correctly. + * symseg.h: Added TYPE_CODE_METHOD to enum type_code. Add a + pointer to an array of argument types to the type structure. + * symtab.c (lookout_method_type, smash_to_method_type): Created. + * symtab.h (TYPE_ARG_TYPES): Created. + * valops.c (call_function): Modified handling of methods to be the + same as handling of functions; no longer check for members. + * valprint.c (val_print, type_print_varspec_{prefix,suffix}, + type_print_base): Added code to print method args correctly. + * values.c (value_virtual_fn_field): Modify access to virtual + function table. + +Wed Mar 29 13:19:34 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * findvar.c: Special cases for REGISTER_WINDOWS: 1) Return 0 if we + are the innermost frame, and 2) return the next frame in's value + if the SP is being looked for. + + * blockframe.c (get_next_frame): Created; returns the next (inner) + frame of the called frame. + * frame.h: Extern delcaration for above. + + * main.c (command_line_input): Stick null at end before doing + history expansion. + +Tue Mar 28 17:35:50 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Added namestring assignment to + N_DATA/BSS/ABS case. Sigh. + +Sat Mar 25 17:49:07 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * expread.y: Defined YYDEBUG. + +Fri Mar 24 20:46:55 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symtab.c (make_symbol_completion_list): Completely rewrote to + never call psymtab_to_symtab, to do a correct search (no + duplicates) through the visible symbols, and to include structure + and union fields in the things that it can match. + +Thu Mar 23 15:27:44 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (dbx_create_type): Created; allocates and inits space + for a type without putting it on the type vector lists. + (dbx_alloc_type): Uses above. + + * Makefile: xgdb.o now produced by default rules for .o.c. + +Fri Mar 17 14:27:50 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * infrun.c: Fixed up inclusion of aouthdr.h on UMAX_PTRACE. + + * Makefile, config.gdb: Added hp300bsd to potential + configurations. + * hp300bsd-dep.c, m-hp300bsd.h: Created. + + * infrun.c (wait_for_inferior): Rewrote to do no access to + inferior until we make sure it's still there. + + * inflow.c (inferior_died): Added a select to force the selected + frame to null when inferior dies. + + * dbxread.c (symbol_file_command): free and zero symfile when + discarding symbols. + + * core.c (xfer_core_file): Extended and cleaned up logic in + interpeting memory address. + + * core.c (xfer_core_file): Extended opening comment. + +Thu Mar 16 15:39:42 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * coffread.c (symbol_file_command): Free symfile name when freeing + contents. + + * blockframe.c (get_prev_frame_info): Added to fatal error message + to indicate that it should never happen. + + * stack.c (frame_info): Printed out value of "saved" sp seperately + to call attention to the fact that it isn't stored in memory + anywhere; the actual previous frames address is printed. + + * m-sparc.h (FRAME_FIND_SAVED_REGS): Set address of sp saved in + frame to value of fp (rather than value of sp in current frame). + + * expread.y: Allow "unsigned" as a type itself, as well as a type + modifier. + + * coffread.c: Added declaration for fclose + +Fri Mar 10 17:22:31 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c (command_line_input): Checked for -1 return from + readline; indicates EOF. + +Fri Mar 3 00:31:27 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * remote.c (remote_open): Cast return from signal to (void (*)) to + avoid problems on machines where the return type of signal is (int + (*)). + + * Makefile: Removed deletion of version control from it (users + will need it for their changes). + +Thu Mar 2 15:32:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symmetry-dep.c (print_1167_regs): Print out effective doubles on + even number regs. + (fetch_inferior_registers): Get the floating point regs also. + + * xgdb.c (do_command): Copied command before calling execute + command (so that execute_command wouldn't write into text space). + + * copying.awk: Created (will produce copying.c as output when + given COPYING as input). + * Makefile: Used above to create copying.c. + * main.c: Took out info_warranty and info_copying. + + * *.*: Changed copyright notice to use new GNU General Public + License (includes necessary changes to manual). + + * xgdb.c (create_text_widget): Created text_widget before I create + the source and sink. + (print_prompt): Added fflush (stdout). + + * Makefile: Added -lXmu to the compilation line for xgdb. Left + the old one there incase people still had R2. + + * README: Added note about -gg format. + + * remote.c (getpkt): Fixed typo; && ==> &. + + * Makefile: Added new variable READLINE_FLAGS so that I could + force compilation of readline.c and history.c with -DSYSV on + system V machines. Mentioned in Makefile comments at top. + +Wed Mar 1 17:01:01 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * hp9k320-dep.c (store_inferior_registers): Fixed typo. + +Fri Feb 24 14:58:45 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * hp9k320-dep.c (store_inferior_registers, + fetch_inferior_registers): Added support for remote debugging. + + * remote.c (remote_timer): Created. + (remote_open, readchar): Setup to timeout reads if they take + longer than "timeout". This allows one to debug how long such + things take. + (putpkt): Modified to print a debugging message (if such things + are enabled) each time it resends a packet. + (getpkt): Modified to make the variable CSUM unsigned and read it + CSUM with an & 0xff (presumably to deal with poor sign extension + on some machines). Also made c1 and c2 unsigned. + (remote_wait): Changed buffer to unsigned status. + (remote_store_registers, remote_write_bytes): Puts a null byte at + the end of the control string. + + * infcmd.c (attach_command, detach_command, _initialize_infcmd): + Made attach_command and detach_command always availible, but + modified them to only allow device file attaches if ATTACH_DETACH + is not defined. + + * gdb.texinfo: Added cross reference from attach command to remote + debugging. + +Thu Feb 23 12:37:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * remote.c (remote_close): Created to close the remote connection + and set the remote_debugging flag to 0. + * infcmd.c (detach_command): Now calls the above when appropriate. + + * gdb.texinfo: Removed references to the ``Distribution'' section + in the copyright. + + * main.c, utils.c (ISATTY): Created default defintions of this + macro which use isatty and fileno. + * utils.c (fprintf_filtered, print_spaces_filtered), main.c + (command_loop, command_line_input): Used this macro. + * m-news.h: Created a definition to override this one. + + * utils.c (fprintf_filtered): Made line_size static (clueless). + + * utils.c (fprintf_filtered): Changed max length of line printed + to be 255 chars or twice the format length. + + * symmetry-dep.c, m-symmetry: Fixed typo (^L ==> ). + + * printcmd.c (do_examine): Fixed typo (\n ==> \t). + +Wed Feb 22 16:00:33 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + Contributed by Jay Vosburgh (jay@mentor.cc.purdue.edu) + * m-symmetry.h, symmetry-dep.c: Created. + * Makefile: Added above in appropriate lists. + * config.gdb: Added "symmetry" target. + + * utils.c (prompt_for_continue): Zero'd chars_printed also. + + * utils.c (fprintf_filtered): Call prompt for continue instead of + doing it yourself. + + * dbxread.c (read_dbx_symtab): Added code to conditionalize what + symbol type holds to "x.o" or "-lx" symbol that indicates the + beginning of a new file. + +Tue Feb 21 16:22:13 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * gdb.texinfo: Deleted @ignore block at end of file. + + * findvar.c, stack.c: Changed comments that refered to "frame + address" to "frame id". + + * findvar.c (locate_var_value): Modified so that taking the + address of an array generates an object whose type is a pointer to + the elements of the array. + +Sat Feb 18 16:35:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * gdb.texinfo: Removed reference to "!" as a shell escape + character. Added a section on controling screen output + (pagination); changing "Input" section to "User Interface" + section. Changed many inappropriate subsubsection nodes into + subsections nodes (in the readline and history expansion + sections). + +Fri Feb 17 11:10:54 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * utils.c (set_screensize_command): Created. + (_initialize_utils): Added above to setlist. + + * main.c (main): Added check to see if ~/.gdbinit and .gdbinit + were the same file; only one gets read if so. Had to include + sys/stat.h for this. + + * valprint.c (type_print_base): Changed calls to print_spaces to + print_spaces_filtered. + + * main.c (command_line_input): Chaned test for command line + editing to check for stdin and isatty. + + * main.c (command_loop): Call reinitialize_more_filter before each + command (if reading from stdin and it's a tty). + utils.c (initialize_more_filter): Changed name to + reinitialize_more_filter; killed arguments. + utils.c (_initialize_utils): Created; initialized lines_per_page + and chars_per_line here. + + * utils.c (fprintf_filtered): Removed printing of "\\\n" after + printing linesize - 1 chars; assume that the screen display will + take care of that. Still watching that overflow. + + * main.c: Created the global variables linesize and pagesize to + describe the number of chars per line and lines per page. + +Thu Feb 16 17:27:43 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * printcmd.c (do_examine, print_scalar_formatted, print_address, + whatis_command, do_one_display, ptype_command), valprint.c + (value_print, val_print, type_print_method_args, type_print_1, + type_print_derivation_info, type_print_varspec_suffix, + type_print_base), breakpoint.c (breakpoints_info, breakpoint_1), + values.c (history_info), main.c (editing_info, warranty_info, + copying_info), infcmd.c (registers_info), inflow.c + (term_status_command), infrun.c (signals_info), stack.c + (backtrace_command, print_frame_info), symtab.c (list_symbols, + output_source_filename), command.c (help_cmd, help_list, + help_command_list): Replaced calls to printf, fprintf, and putc + with calls to [f]printf_filtered to handle more processing. + Killed local more emulations where I noticed them. + +Wed Feb 15 15:27:36 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * defs.h, utils.c (initialize_more_filter, fprintf_filtered, + printf_filtered): Created a printf that will also act as a more + filter, prompting the user for a whenever the page length + is overflowed. + + * symtab.c (list_symbols): Elminated some code inside of an #if 0. + +Tue Feb 14 11:11:24 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * Makefile: Turned off backup versions for this file; it changes + too often. + + * command.c (lookup_cmd, _initialize_command): Changed '!' so that + it was no longer a shell escape. "sh" must be used. + + * main.c (command_line_input, set_history_expansion, + initialize_main): Turned history expansion on, made it the + default, and only execute it if the first character in the line is + a '!'. + + * version.c, gdb.texinfo: Moved version to 3.2 (as usual, jumping + the gun some time before release). + + * gdb.texinfo: Added sections (adapted from Brian's notes) on + command line editing and history expansion. + + * main.c (set_command_editing, initialize_main): Modified name to + set_editing and modified command to "set editing". + + * Makefile: Put in dependencies for READLINEOBJS. + + * main.c (history_info, command_info): Combined into new command + info; deleted history_info. + (initialize_main): Deleted "info history" command; it was + interfering with the value history. + + * coffread.c (enter_linenos): Modified to do bit copy instead of + pointer dereference, since the clipper machine can't handle having + longs on short boundaries. + (read_file_hdr): Added code to get number of syms for clipper. + + * stack.c (return_command): Fixed method for checking when all of + the necessary frames had been popped. + + * dbxread.c (read_dbx_symtab (ADD_PSYMBOL_TO_LIST)): Fixed typo in + allocation length. + +Mon Feb 13 10:03:27 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Split assignment to namestring into + several different assignments (so that it wouldn't be done except + when it had to be). Shortened switches and duplicated code to + produce the lowest possible execution time. Commented (at top of + switch) which code I duplicated. + + * dbxread.c (read_dbx_symtab): Modified which variables were + register and deleted several variables which weren't used. Also + eliminated 'F' choice from subswitch, broke out strcmp's, reversed + compare on line 1986, and elminated test for !namestring[0]; it is + caught by following test for null index of ':'. + +Sun Feb 12 12:57:56 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * main.c (gdb_completer_word_break_characters): Turned \~ into ~. + +Sat Feb 11 15:39:06 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * symtab.c (find_pc_psymtab): Created; checks all psymtab's till + it finds pc. + (find_pc_symtab): Used; fatal error if psymtab found is readin + (should have been caught in symtab loop). + (lookup_symbol): Added check before scan through partial symtab + list for symbol name to be on the misc function vector (only if in + VAR_NAMESPACE). Also made sure that psymtab's weren't fooled with + if they had already been read in. + (list_symbols): Checked through misc_function_vector for matching + names if we were looking for functions. + (make_symbol_completion_list): Checked through + misc_function_vector for matching names. + * dbxread.c (read_dbx_symtab): Don't bother to do processing on + global function types; this will be taken care of by the + misc_function hack. + + * symtab.h: Modified comment on misc_function structure. + +Fri Feb 10 18:09:33 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * symseg.h, dbxread.c (read_dbx_symtab, init_psymbol_list, + start_psymtab, end_psymtab), coffread.c (_initialize_coff), + symtab.c (lookup_partial_symbol, list_symbols, + make_symbol_completion_list): Changed separate variables for + description of partial symbol allocation into a specific kind of + structure. + + (read_dbx_symtab, process_symbol_for_psymtab): Moved most of + process_symbol_for_psymtab up into read_dbx_symtab, moved a couple + of symbol types down to the ingore section, streamlined (I hope) + code some, modularized access to psymbol lists. + +Thu Feb 9 13:21:19 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c (command_line_input): Made sure that it could recognize + newlines as indications to repeat the last line. + + * symtab.c (_initialize_symtab): Changed size of builtin_type_void + to be 1 for compatibility with gcc. + + * main.c (initialize_main): Made history_expansion the default + when gdb is compiled with HISTORY_EXPANSION. + + * readline.c, readline.h, history.c, history.h, general.h, + emacs_keymap.c, vi_keymap.c, keymaps.c, funmap.c: Made all of + these links to /gp/gnu/bash/* to keep them updated. + * main.c (initialize_main): Made default be command editing on. + +Wed Feb 8 13:32:04 1989 & Smith (randy at hobbes) + + * dbxread.c (read_dbx_symtab): Ignore N_BSLINE on first + readthrough. + + * Makefile: Removed convex-dep.c from list of distribution files. + +Tue Feb 7 14:06:25 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c: Added command lists sethistlist and unsethistlist to + accesible command lists. + (parse_binary_operation): Created to parse a on/1/yes vs. off/0/no + spec. + (set_command_edit, set_history, set_history_expansion, + set_history_write, set_history_size, set_history_filename, + command_info, history_info): Created to allow users to control + various aspects of command line editing. + + * main.c (symbol_creation_function): Created. + (command_line_input, initialize_main): Added rest of stuff + necessary for calling bfox' command editing routines under + run-time control. + * Makefile: Included readline and history source files for command + editing; also made arrangements to make sure that the termcap + library was available. + * symtab.c (make_symbol_completion_list): Created. + +Mon Feb 6 16:25:25 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c: Invented variables to control command editing. + command_editing_p, history_expansion_p, history_size, + write_history_p, history_filename. Initialized them to default + values in initialize_main. + + * infcmd.c (registers_info), infrun.c (signals_info), + * main.c (gdb_read_line): Changed name to command_line_input. + (readline): Changed name to gdb_readline; added second argument + indicating that the read value shouldn't be saved (via malloc). + * infcmd.c (registers_info), infrun.c (signals_info), main.c + (copying_info), symtab.c (output_source_filename, MORE, + list_symbols): Converted to use gdb_readline in place of + gdb_read_line. + + +Sun Feb 5 17:34:38 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * blockframe.c (get_frame_saved_regs): Removed macro expansion + that had accidentally been left in the code. + +Sat Feb 4 17:54:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * main.c (gdb_read_line, readline): Added function readline and + converted gdb_read_line to use it. This was a conversion to the + line at a time style of input, in preparation for full command + editing. + +Fri Feb 3 12:39:03 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Call end_psymtab at the end of + read_dbx_symtab if any psymtab still needs to be completed. + + * config.gdb, sun3-dep.c: Brought these into accord with the + actual sun2 status (no floating point period; sun3-dep.c unless + has os > 3.0). + * m-sun2os2.h: Deleted; not needed. + + * config.gdb: Added a couple of aliases for machines in the + script. + + * infrun.c: Added inclusion of aouthdr.h inside of #ifdef UMAX + because ptrace needs to know about the a.out header. + + * Makefile: Made dep.o depend on dep.c and config.status only. + + * expread.y: Added declarations of all of the new write_exp_elt + functions at the include section in the top. + + * Makefile: Added a YACC definition so that people can use bison + if they wish. + + * Makefile: Added rms' XGDB-README to the distribution. + + * Makefile: Added removal of init.o on a "make clean". + +Thu Feb 2 16:27:06 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * *-dep.c: Deleted definition of COFF_FORMAT if AOUTHDR was + defined since 1) We *may* (recent mail message) want to define + AOUTHDR under a basically BSD system, and 2) AOUTHDR is sometimes + a typedef in coff encapsulation setups. Also removed #define's of + AOUTHDR if AOUTHDR is already defined (inside of coff format). + * core.c, dbxread.c: Removed #define's of AOUTHDR if AOUTHDR is + already defined (inside of coff format). + +Tue Jan 31 12:56:01 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * GDB 3.1 released. + + * values.c (modify_field): Changed test for endianness to assign + to integer and reference character (so that all bits would be + defined). + +Mon Jan 30 11:41:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * news-dep.c: Deleted inclusion of fcntl.h; just duplicates stuff + found in sys/file.h. + + * i386-dep.c: Included default definition of N_SET_MAGIC for + COFF_FORMAT. + + * config.gdb: Added checks for several different operating + systems. + + * coffread.c (read_struct_type): Put in a flag variable so that + one could tell when you got to the end of a structure. + + * sun3-dep.c (core_file_command): Changed #ifdef based on SUNOS4 + to ifdef based on FPU. + + * infrun.c (restore_inferior_status): Changed error message to + "unable to restore previously selected frame". + + * dbxread.c (read_dbx_symtab): Used intermediate variable in error + message reporting a bad symbol type. (scan_file_globals, + read_ofile_symtab, read_addl_syms): Data type of "type" changed to + unsigned char (which is what it is). + * i386-dep.c: Removed define of COFF_FORMAT if AOUTHDR is defined. + Removed define of a_magic to magic (taken care of by N_MAGIC). + (core_file_command): Zero'd core_aouthdr instead of setting magic + to zero. + * i386-pinsn.c: Changed jcxz == jCcxz in jump table. + (putop): Added a case for 'C'. + (OP_J): Added code to handle possible masking of PC value on + certain kinds of data. + m-i386gas.h: Moved COFF_ENCAPSULATE to before inclusion of + m-i386.h and defined NAMES_HAVE_UNDERSCORE. + + * coffread.c (unrecrod_misc_function, read_coff_symtab): Added + symbol number on which error occured to error output. + +Fri Jan 27 11:55:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * Makefile: Removed init.c in make clean. Removed it without -f + and with leading - in make ?gdb. + +Thu Jan 26 15:08:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + Changes to get it to work on gould NP1. + * dbxread.c (read_dbx_symtab): Included cases for N_NBDATA and + N_NBBSS. + (psymtab_to_symtab): Changed declaration of hdr to + DECLARE_FILE_HEADERS. Changed access to use STRING_TABLE_SIZE and + SYMBOL_TABLE_SIZE. + * gld-pinsn.c (findframe): Added declaration of framechain() as + FRAME_ADDR. + + * coffread.c (read_coff_symtab): Avoided treating typedefs as + external symbol definitions. + +Wed Jan 25 14:45:43 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * Makefile: Removed reference to alloca.c. If they need it, they + can pull alloca.o from the gnu-emacs directory. + + * version.c, gdb.texinfo: Updated version to 3.1 (jumping the gun + a bit so that I won't forget when I release). + + * m-sun2.h, m-sun2os2.h, m-sun3os4.h, config.gdb: Modified code so + that default includes new sun core, ptrace, and attach-detach. + Added defaults for sun 2 os 2. + + Modifications to reset stack limit back to what it used to be just + before exec. All mods inside of #ifdef SET_STACK_LIMIT_HUGE. + * main.c: Added global variable original_stack_limit. + (main): Set original_stack_limit to original stack limit. + * inflow.c: Added inclusion of necessary files and external + reference to original_stack_limit. + (create_inferior): Reset stack limit to original_stack_limit. + + * dbxread.c (read_dbx_symtab): Killed PROFILE_SYMBOLS ifdef. + + * sparc-dep.c (isabranch): Multiplied offset by 4 before adding it + to addr to get target. + + * Makefile: Added definition of SHELL to Makefile. + + * m-sun2os4.h: Added code to define NEW_SUN_PTRACE, NEW_SUN_CORE, + and ATTACH_DETACH. + * sun3-dep.c: Added code to avoid fp regs if we are on a sun2. + +Tue Jan 24 17:59:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_array_type): Added function. + (read_type): Added call to above instead of inline code. + + * Makefile: Added ${GNU_MALLOC} to the list of dependencies for + the executables. + +Mon Jan 23 15:08:51 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * gdb.texinfo: Added paragraph to summary describing languages + with which gdb can be run. Also added descriptions of the + "info-methods" and "add-file" commands. + + * symseg.h: Commented a range type as having TYPE_TARGET_TYPE + pointing at the containing type for the range (often int). + * dbxread.c (read_range_type): Added code to do actual range types + if they are defined. Assumed that the length of a range type is + the length of the target type; this is a lie, but will do until + somebody gets back to me as to what these silly dbx symbols mean. + + * dbxread.c (read_range_type): Added code to be more picky about + recognizing builtins as range types, to treat types defined as + subranges of themselves to be subranges of int, and to recognize + the char type idiom from dbx as a special case. + +Sun Jan 22 01:00:13 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-vax.h: Removed definition of FUNCTION_HAS_FRAME_POINTER. + * blockframe.c (get_prev_frame_info): Removed default definition + and use of above. Instead conditionalized checking for leaf nodes + on FUNCTION_START_OFFSET (see comment in code). + +Sat Jan 21 16:59:19 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_range_type): Fixed assumption that integer was + always type 1. + + * gdb.texinfo: Fixed spelling mistake and added a note in the + running section making it clear that users may invoke subroutines + directly from gdb. + + * blockframe.c: Setup a default definition for the macro + FUNCTION_HAS_FRAME_POINTER. + (get_prev_frame_info): Used this macro instead of checking + SKIP_PROLOGUE directly. + * m-vax.h: Overroad definition; all functions on the vax have + frame pointers. + +Fri Jan 20 12:25:35 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * core.c: Added default definition of N_MAGIC for COFF_FORMAT. + + * xgdb.c: Installed a fix to keep the thing from dying when there + isn't any frame selected. + + * core.c: Made a change for the UMAX system; needs a different + file included if using that core format. + + * Makefile: Deleted duplicate obstack.h in dbxread.c dependency. + + * munch: Modified (much simpler) to cover (I hope) all cases. + + * utils.c (save_cleanups, restore_cleanups): Added functions to + allow you to push and pop the chain of cleanups to be done. + * defs.h: Declared the new functions. + * main.c (catch_errors): Made sure that the only cleanups which + would be done were the ones put on the chain *after* the current + location. + + * m-*.h (FRAME_CHAIN_VALID): Removed check on pc in the current + frame being valid. + * blockframe.c (get_prev_frame_info): Made the assumption that if + a frame's pc value was within the first object file (presumed to + be /lib/crt0.o), that we shouldn't go any higher. + + * infrun.c (wait_for_inferior): Do *not* execute check for stop pc + at step_resume_break if we are proceeding over a breakpoint (ie. + if trap_expected != 0). + + * Makefile: Added -g to LDFLAGS. + + * m-news.h (POP_FRAME) Fixed typo. + + * printcmd.c (print_frame_args): Modified to print out register + params in order by .stabs entry, not by register number. + + * sparc-opcode.h: Changed declaration of (struct + arith_imm_fmt).simm to be signed (as per architecture manual). + * sparc-pinsn.c (fprint_addr1, print_insn): Forced a cast to an + int, so that we really would get signed behaivior (default for sun + cc is unsigned). + + * i386-dep.c (i386_get_frame_setup): Replace function with new + function provided by pace to fix bug in recognizing prologue. + +Thu Jan 19 11:01:22 1989 Randall Smith (randy at plantaris.ai.mit.edu) + + * infcmd.c (run_command): Changed error message to "Program not + restarted." + + * value.h: Changed "frame" field in value structure to be a + FRAME_ADDR (actually CORE_ADDR) so that it could survive across + calls. + + * m-sun.h (FRAME_FIND_SAVED_REGS): Fixed a typo. + + * value.h: Added lval: "lval_reg_frame_relative" to indicate a + register that must be interpeted relative to a frame. Added + single entry to value structure: "frame", used to indicate which + frame a relative regnum is relative to. + * findvar.c (value_from_register): Modified to correctly setup + these fields when needed. Deleted section to fiddle with last + register copied on little endian machine; multi register + structures will always occupy an integral number of registers. + (find_saved_register): Made extern. + * values.c (allocate_value, allocate_repeat_value): Zero frame + field on creation. + * valops.c (value_assign): Added case for lval_reg_frame_relative; + copy value out, modify it, and copy it back. Desclared + find_saved_register as being external. + * value.h: Removed addition of kludgy structure; thoroughly + commented file. + * values.c (free_value, free_all_values, clear_value_history, + set_internalvar, clear_internavars): Killed free_value. + +Wed Jan 18 20:09:39 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * value.h: Deleted struct partial_storage; left over from + yesterday. + + * findvar.c (value_from_register): Added code to create a value of + type lval_reg_partsaved if a value is in seperate registers and + saved in different places. + +Tue Jan 17 13:50:18 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * value.h: Added lval_reg_partsaved to enum lval_type and + commented enum lval_type. Commented value structure. + Added "struct partial_register_saved" to value struct; added + macros to deal with structure to value.h. + * values.c (free_value): Created; special cases lval_reg_partsaved + (which has a pointer to an array which also needs to be free). + (free_all_values, clear_value_history, set_internalvar, + clear_internalvars): Modified to use free_values. + + * m-sunos4.h: Changed name to sun3os4.h. + * m-sun2os4.h, m-sun4os4.h: Created. + * config.gdb: Added configuration entries for each of the above. + * Makefile: Added into correct lists. + + * Makefile: Added dependencies on a.out.encap.h. Made + a.out.encap.h dependent on a.out.gnu.h and dbxread.c dependent on + stab.gnu.h. + + * infrun.c, remote.c: Removed inclusion of any a.out.h files in + these files; they aren't needed. + + * README: Added comment about bug reporting and comment about + xgdb. + + * Makefile: Added note to HPUX dependent section warning about + problems if compiled with gcc and mentioning the need to add + -Ihp-include to CFLAGS if you compile on those systems. Added a + note about needing the GNU nm with compilers *of gdb* that use the + coff encapsulate feature also. * hp-include: Made symbolic link + over to /gp/gnu/binutils. + + * Makefile: Added TSOBS NTSOBS OBSTACK and REGEX to list of things + to delete in "make clean". Also changed "squeakyclean" target as + "realclean". + + * findvar.c (value_from_register): Added assignment of VALUE_LVAL + to be lval_memory when that is appropriate (original code didn't + bother because it assumed that it was working with a pre lval + memoried value). + + * expread.y (yylex): Changed to only return type THIS if the + symbol "$this" is defined in some block superior or equal to the + current expression context block. + +Mon Jan 16 13:56:44 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-*.h (FRAME_CHAIN_VALID): On machines which check the relation + of FRAME_SAVED_PC (thisframe) to first_object_file_end (all except + gould), make sure that the pc of the current frame also passes (in + case someone stops in _start). + + * findvar.c (value_of_register): Changed error message in case of + no inferior or core file. + + * infcmd.c (registers_info): Added a check for inferior or core + file; error message if not. + + * main.c (gdb_read_line): Modified to take prompt as argument and + output it to stdout. + * infcmd.c (registers_info, signals_info), main.c (command_loop, + read_command_lines, copying_info), symtab.c (decode_line_2, + output_source_filename, MORE, list_symbols): Changed calling + convention used to call gdb_read_line. + + * infcmd.c, infrun.c, main.c, symtab.c: Changed the name of the + function "read_line" to "gdb_read_line". + * breakpoint.c: Deleted external referenced to function + "read_line" (not needed by code). + +Fri Jan 13 12:22:05 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * i386-dep.c: Include a.out.encap.h if COFF_ENCAPSULATE. + (N_SET_MAGIC): Defined if not defined by include file. + (core_file_command): Used N_SET_MAGIC instead of assignment to + a_magic. + (exec_file_command): Stuck in a HEADER_SEEK_FD. + + * config.gdb: Added i386-dep.c as depfile for i386gas choice. + + * munch: Added -I. to cc to pick up things included by the param + file. + + * stab.gnu.def: Changed name to stab.def (stab.gnu.h needs this name). + * Makefile: Changed name here also. + * dbxread.c: Changed name of gnu-stab.h to stab.gnu.h. + + * gnu-stab.h: Changed name to stab.gnu.h. + * stab.gnu.def: Added as link to binutils. + * Makefile: Put both in in the distribution. + +Thu Jan 12 11:33:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c: Made which stab.h is included dependent on + COFF_ENCAPSULATE; either or "gnu-stab.h". + * Makefile: Included gnu-stab.h in the list of files to include in + the distribution. + * gnu-stab.h: Made a link to /gp/gnu/binutils/stab.h + + * Makefile: Included a.out.gnu.h and m-i386gas.h in list of + distribution files. + * m-i386gas.h: Changed to include m-i386.h and fiddle with it + instead of being a whole new file. + * a.out.gnu.h: Made a link to /gp/gnu/binutils/a.out.gnu.h. + + Chris Hanson's changes to gdb for hp Unix. + * Makefile: Modified comments on hpux. + * hp9k320-dep.c: #define'd WOPR & moved inclusion of signal.h + * inflow.c: Moved around declaratiosn of and + inside of USG depends and deleted all SYSV ifdef's + (use USG instead). + * munch: Modified to accept any number of spaces between the T and + the symbol name. + + Pace's changes to gdb to work with COFF_ENCAPSULATE (robotussin): + * config.gdb: Added i386gas to targets. + * default-dep.c: Include a.out.encap.h if COFF_ENCAPSULATE. + (N_SET_MAGIC): Defined if not defined by include file. + (core_file_command): Used N_SET_MAGIC instead of assignment to a_magic. + (exec_file_command): Stuck in a HEADER_SEEK_FD. + * infrun.c, remote.c: Added an include of a.out.encap.h if + COFF_ENCAPSULATE defined. This is commented out in these two + files, I presume because the definitions aren't used. + * m-i386gas.h: Created. + * dbxread.c: Included defintions for USG. + (READ_FILE_HEADERS): Now uses HEADER_SEEK_FD if it exists. + (symbol_file_command): Deleted use of HEADER_SEEK_FD. + * core.c: Deleted extra definition of COFF_FORMAT. + (N_MAGIC): Defined to be a_magic if not already defined. + (validate_files): USed N_MAGIC instead of reading a_magic. + +Wed Jan 11 12:51:00 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * remote.c: Upped PBUFSIZ. + (getpkt): Added zeroing of c inside loop in case of error retry. + + * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Removed + code to not put stuff with debugging symbols in the misc function + list. Had been ifdef'd out. + + * gdb.texinfo: Added the fact that the return value for a function + is printed if you use return. + + * infrun.c (wait_for_inferior): Removed test in "Have we hit + step_resume_breakpoint" for sp values in proper orientation. Was + in there for recursive calls in functions without frame pointers + and it was screwing up calls to alloca. + + * dbxread.c: Added #ifdef COFF_ENCAPSULATE to include + a.out.encap.h. + (symbol_file_command): Do HEADER_SEEK_FD when defined. + * dbxread.c, core.c: Deleted #ifdef ROBOTUSSIN stuff. + * robotussin.h: Deleted local copy (was symlink). + * a.out.encap.h: Created symlink to + /gp/gnu/binutils/a.out.encap.h. + * Makefile: Removed robotussin.h and included a.out.encap.h in + list of files. + + * valprint.c (val_print, print_scalar_formatted): Changed default + precision of printing float value; now 6 for a float and 16 for a + double. + + * findvar.c (value_from_register): Added code to deal with the + case where a value is spread over several registers. Still don't + deal with the case when some registers are saved in memory and + some aren't. + +Tue Jan 10 17:04:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * xgdb.c (xgdb_create_window): Removed third arg (XtDepth) to + frameArgs. + + * infrun.c (handle_command): Error if signal number is less or + equal to 0 or greater or equal to NSIG or a signal number is not + provided. + + * command.c (lookup_cmd): Modified to not convert command section + of command line to lower case in place (in case it isn't a + subcommand, but an argument to a command). + +Fri Jan 6 17:57:34 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c: Changed "text area" to "data area" in comments on + N_SETV. + +Wed Jan 4 12:29:54 1989 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c: Added definitions of gnu symbol types after inclusion + of a.out.h and stab.h. + +Mon Jan 2 20:38:31 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * eval.c (evaluate_subexp): Binary logical operations needed to + know type to determine whether second value should be evaluated. + Modified to discover type before binup_user_defined_p branch. + Also commented "enum noside". + + * Makefile: Changed invocations of munch to be "./munch". + + * gdb.texinfo: Updated to refer to current version of gdb with + January 1989 last update. + + * coffread.c (end_symtab): Zero context stack when finishing + lexical contexts. + (read_coff_symtab): error if context stack 0 in ".ef" else case. + + * m-*.h (FRAME_SAVED_PC): Changed name of argument from "frame" to + "FRAME" to avoid problems with replacement of "->frame" part of + macro. + + * i386-dep.c (i386_get_frame_setup): Added codestream_get() to + move codestream pointer up to the correct location in "subl $X, + %esp" case. + +Sun Jan 1 14:24:35 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * valprint.c (val_print): Rewrote routine to print string pointed + to by char pointer; was producing incorrect results when print_max + was 0. + +Fri Dec 30 12:13:35 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Put + everything on the misc function list. + + * Checkpointed distribution. + + * Makefile: Added expread.tab.c to the list of things slated for + distribution. + +Thu Dec 29 10:06:41 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * stack.c (set_backtrace_limit_command, backtrace_limit_info, + bactrace_command, _initialize_stack): Removed modifications for + limit on backtrace. Piping the backtrace through an interuptable + "more" emulation is a better way to do it. + +Wed Dec 28 11:43:09 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * stack.c + (set_backtrace_limit_command): Added command to set a limit to the + number of frames for a backtrace to print by default. + (backtrace_limit_info): To print the current limit. + (backtrace_command): To use the limit. + (_initialize_stack): To initialize the limit to its default value + (30), and add the set and info commands onto the appropriate + command lists. + + * gdb.texinfo: Documented changes to "backtrace" and "commands" + commands. + + * stack.c (backtrace_command): Altered so that a negative argument + would show the last few frames on the stack instead of the first + few. + (_initialize_stack): Modified help documentation. + + * breakpoint.c (commands_command): Altered so that "commands" with + no argument would refer to the last breakpoint set. + (_initialize_breakpoint): Modified help documentation. + + * infrun.c (wait_for_inferior): Removed ifdef on Sun4; now you can + single step through compiler generated sub calls and will die if + you next off of the end of a function. + + * sparc-dep.c (single_step): Fixed typo; "break_insn" ==> "sizeof + break_insn". + + * m-sparc.h (INIT_EXTRA_FRAME_INFO): Set the bottom of a stack + frame to be the bottom of the stack frame inner from this, if that + inner one is a leaf node. + + * dbxread.c (read_dbx_symtab): Check to make sure we don't add a + psymtab to it's own dependency list. + + * dbxread.c (read_dbx_symtab): Modified check for duplicate + dependencies to catch them correctly. + +Tue Dec 27 17:02:09 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-*.h (FRAME_SAVED_PC): Modified macro to take frame info + pointer as argument. + * stack.c (frame_info), blockframe.c (get_prev_frame_info), + gld-pinsn.c (findframe), m-*.h (SAVED_PC_AFTER_CALL, + FRAME_CHAIN_VALID, FRAME_NUM_ARGS): Changed usage of macros to + conform to above. + * m-sparc.h (FRAME_SAVED_PC), sparc-dep.c (frame_saved_pc): + Changed frame_saved_pc to have a frame info pointer as an + argument. + + * m-vax.h, m-umax.h, m-npl.h, infrun.c (wait_for_inferior), + blockframe.c (get_prev_frame_info): Modified SAVED_PC_AFTER_CALL + to take a frame info pointer as an argument. + + * blockframe.c (get_prev_frame_info): Altered the use of the + macros FRAME_CHAIN, FRAME_CHAIN_VALID, and FRAME_CHAIN_COMBINE to + use frame info pointers as arguments instead of frame addresses. + * m-vax.h, m-umax.h, m-sun3.h, m-sun3.h, m-sparc.h, m-pn.h, + m-npl.h, m-news.h, m-merlin.h, m-isi.h, m-hp9k320.h, m-i386.h: + Modified definitions of the above macros to suit. + * m-pn.h, m-npl.h, gould-dep.c (findframe): Modified findframe to + use a frame info argument; also fixed internals (wouldn't work + before). + + * m-sparc.h: Cosmetic changes; reordered some macros and made sure + that nothing went over 80 lines. + +Thu Dec 22 11:49:15 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * Version 3.0 released. + + * README: Deleted note about changing -lobstack to obstack.o. + +Wed Dec 21 11:12:47 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-vax.h (SKIP_PROLOGUE): Now recognizes gcc prologue also. + + * blockframe.c (get_prev_frame_info): Added FUNCTION_START_OFFSET + to result of get_pc_function_start. + * infrun.c (wait_for_inferior): Same. + + * gdb.texinfo: Documented new "step" and "next" behavior in + functions without line number information. + +Tue Dec 20 18:00:45 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * infcmd.c (step_1): Changed behavior of "step" or "next" in a + function witout line number information. It now sets the step + range around the function (to single step out of it) using the + misc function vector, warns the user, and continues. + + * symtab.c (find_pc_line): Zero "end" subsection of returned + symtab_and_line if no symtab found. + +Mon Dec 19 17:44:35 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * i386-pinsn.c (OP_REG): Added code from pace to streamline + disassembly and corrected types. + * i386-dep.c + (i386_follow_jump): Code added to follow byte and word offset + branches. + (i386_get_frame_setup): Expanded to deal with more wide ranging + function prologue. + (i386_frame_find_saved_regs, i386_skip_prologue): Changed to use + i386_get_frame_setup. + + +Sun Dec 18 11:15:03 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h: Deleted definition of SUN4_COMPILER_BUG; was designed + to avoid something that I consider a bug in our code, not theirs, + and which I fixed earlier. Also deleted definition of + CANNOT_USE_ARBITRARY_FRAME; no longer used anywhere. + FRAME_SPECIFICATION_DYADIC used instead. + + * infrun.c (wait_for_inferior): On the sun 4, if a function + doesn't have a prologue, a next over it single steps into it. + This gets around the problem of a "call .stret4" at the end of + functions returning structures. + * m-sparc.h: Defined SUN4_COMPILER_FEATURE. + + * main.c (copying_info): Seperated the last printf into two + printfs. The 386 compiler will now handle it. + + * i386-pinsn.c, i386-dep.c: Moved print_387_control_word, + print_387_status_word, print_387_status, and i386_float_info to + dep.c Also included reg.h in dep.c. + +Sat Dec 17 15:31:38 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * main.c (source_command): Don't close instream if it's null + (indicating execution of a user-defined command). + (execute_command): Set instream to null before executing + commands and setup clean stuff to put it back on error. + + * inflow.c (terminal_inferior): Went back to not checking the + ioctl returns; there are some systems when this will simply fail. + It seems that, on most of these systems, nothing bad will happen + by that failure. + + * values.c (value_static_field): Fixed dereferencing of null + pointer. + + * i386-dep.c (i386_follow_jump): Modified to deal with + unconditional byte offsets also. + + * dbxread.c (read_type): Fixed typo in function type case of switch. + + * infcmd.c (run_command): Does not prompt to restart if command is + not from a tty. + +Fri Dec 16 15:21:58 1988 Randy Smith (randy at calvin) + + * gdb.texinfo: Added a third option under the "Cannot Insert + Breakpoints" workarounds. + + * printcmd.c (display_command): Don't do the display unless there + is an active inferior; only set it. + + * findvar.c (value_of_register): Added an error check for calling + this when the inferior isn't active and a core file isn't being + read. + + * config.gdb: Added reminder about modifying REGEX in the + makefile for the 386. + + * i386-pinsn.c, i386-dep.c: Moved m-i386.h helper functions over + to i386-dep.c.b + +Thu Dec 15 14:04:25 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * README: Added a couple of notes about compiling gdb with itself. + + * breakpoint.c (set_momentary_breakpoint): Only takes FRAME_FP of + frame if frame is non-zero. + + * printcmd.c (print_scalar_formatted): Implemented /g size for + hexadecimal format on machines without an 8 byte integer type. It + seems to be non-trivial to implement /g for other formats. + (decode_format): Allowed hexadecimal format to make it through /g + fileter. + +Wed Dec 14 13:27:04 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * expread.y: Converted all calls to write_exp_elt from the parser + to calls to one of write_exp_elt_{opcode, sym, longcst, dblcst, + char, type, intern}. Created all of these routines. This gets + around possible problems in passing one of these things in one ear + and getting something different out the other. Eliminated + SUN4_COMPILER_BUG ifdef's; they are now superfluous. + + * symmisc.c (free_all_psymtabs): Reinited partial_symtab_list to 0. + (_initialize_symmisc): Initialized both symtab_list and + partial_symtab_list. + + * dbxread.c (start_psymtab): Didn't allocate anything on + dependency list. + (end_psymtab): Allocate dependency list on psymbol obstack from + local list. + (add_psymtab_dependency): Deleted. + (read_dbx_symtab): Put dependency on local list if it isn't on it + already. + + * symtab.c: Added definition of psymbol_obstack. + * symtab.h: Added declaration of psymbol_obstack. + * symmisc.c (free_all_psymtabs): Added freeing and + reinitionaliztion of psymbol_obstack. + * dbxread.c (free_all_psymbols): Deleted. + (start_psymtab, end_psymtab, + process_symbol_for_psymtab): Changed most allocation + of partial symbol stuff to be off of psymbol_obstack. + + * symmisc.c (free_psymtab, free_all_psymtabs): Deleted + free_psymtab subroutine. + + * symtab.h: Removed num_includes and includes from partial_symtab + structure; no longer needed now that all include files have their + own psymtab. + * dbxread.c (start_psymtab): Eliminated initialization of above. + (end_psymtab): Eliminated finalization of above; get + includes from seperate list. + (read_dbx_symtab): Moved includes from psymtab list to + their own list; included in call to end_psymtab. + * symmisc.c (free_psymtab): Don't free includes. + +Tue Dec 13 14:48:14 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * i386-pinsn.c: Reformatted entire file to correspond to gnu + software indentation conventions. + + * sparc-dep.c (skip_prologue): Added capability of recognizign + stores of input register parameters into stack slots. + + * sparc-dep.c: Added an include of sparc-opcode.h. + * sparc-pinsn.c, sparc-opcode.h: Moved insn_fmt structures and + unions from pinsn.c to opcode.h. + * sparc-pinsn.c, sparc-dep.c (isabranch, skip_prologue): Moved + this function from pinsn.c to dep.c. + + * Makefile: Put in warnings about compiling with gcc (non-ansi + include files) and compiling with shared libs on Sunos 4.0 (can't + debug something that's been compiled that way). + + * sparc-pinsn.c: Put in a completely new file (provided by + Tiemann) to handle floating point disassembly, load and store + instructions, and etc. better. Made the modifications this file + (ChangeLog) list for sparc-pinsn.c again. + + * symtab.c (output_source_filename): Included "more" emulation hack. + + * symtab.c (output_source_filename): Initialized COLUMN to 0. + (sources_info): Modified to not print out a line for + all of the include files within a partial symtab (since + they have pst's of their own now). Also modified to + make a distinction between those pst's read in and + those not. + + * infrun.c: Included void declaration of single_step() if it's + going to be used. + * sparc-dep.c (single_step): Moved function previous to use of it. + + * Makefile: Took removal of expread.tab.c out of make clean entry + and put it into a new "squeakyclean" entry. + +Mon Dec 12 13:21:02 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * sparc-pinsn.c (skip_prologue): Changed a struct insn_fmt to a + union insn_fmt. + + * inflow.c (terminal_inferior): Checked *all* return codes from + ioctl's and fcntl's in routine. + + * inflow.c (terminal_inferior): Added check for sucess of + TIOCSPGRP ioctl call. Just notifies if bad. + + * dbxread.c (symbol_file_command): Close was getting called twice; + once directly and once through cleanup. Killed the direct call. + +Sun Dec 11 19:40:40 1988 & Smith (randy at hobbes.ai.mit.edu) + + * valprint.c (val_print): Deleted spurious printing of "=" from + TYPE_CODE_REF case. + +Sat Dec 10 16:41:07 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c: Changed allocation of psymbols from using malloc and + realloc to using obstacks. This means they aren't realloc'd out + from under the pointers to them. + +Fri Dec 9 10:33:24 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * sparc-dep.c inflow.c core.c expread.y command.c infrun.c + infcmd.c dbxread.c symmisc.c symtab.c printcmd.c valprint.c + values.c source.c stack.c findvar.c breakpoint.c blockframe.c + main.c: Various cleanups inspired by "gcc -Wall" (without checking + for implicit declarations). + + * Makefile: Cleaned up some more. + + * valops.c, m-*.h (FIX_CALL_DUMMY): Modified to take 5 arguments + as per what sparc needs (programming for a superset of needed + args). + + * dbxread.c (process_symbol_for_psymtab): Modified to be slightly + more picky about what it puts on the list of things *not* to be + put on the misc function list. When/if I shift everything over to + being placed on the misc_function_list, this will go away. + + * inferior.h, infrun.c: Added fields to save in inferior_status + structure. + + * maketarfile: Deleted; functionality is in Makefile now. + + * infrun.c (wait_for_inferior): Modified algorithm for determining + whether or not a single-step was through a subroutine call. See + comments at top of file. + + * dbxread.c (read_dbx_symtab): Made sure that the IGNORE_SYMBOL + macro would be checked during initial readin. + + * dbxread.c (read_ofile_symtab): Added macro GCC_COMPILED_FLAG_SYMBOL + into dbxread.c to indicate what string in a local text symbol will + indicate a file compiled with gcc. Defaults to "gcc_compiled.". + +Thu Dec 8 11:46:22 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h (FRAME_FIND_SAVED_REGS): Cleaned up a little to take + advantage of the new frame cache system. + + * inferior.h, infrun.c, valops.c, valops.c, infcmd.c: Changed + mechanism to save inferior status over calls to inferior (eg. + call_function); implemented save_inferior_info and + restore_inferior_info. + + * blockframe.c (get_prev_frame): Simplified this by a direct call + to get_prev_frame_info. + + * frame.h, stack.c, printcmd.c, m-sparc.h, sparc-dep.c: Removed + all uses of frame_id_from_addr. There are short routines like it + still in frame_saved_pc (m-sparc.h) and parse_frame_spec + (stack.c). Eventually the one in frame_saved_pc will go away. + + * infcmd.c, sparc-dep.c: Implemented a new mechanism for + re-selecting the selected frame on return from a call. + + * blockframe.c, stack.c, findvar.c, printcmd.c, m-*.h: Changed + all routines and macros that took a "struct frame_info" as an + argument to take a "struct frame_info *". Routines: findarg, + framechain, print_frame_args, FRAME_ARGS_ADDRESS, + FRAME_STRUCT_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, FRAME_NUM_ARGS, + FRAME_FIND_SAVED_REGS. + + * frame.h, stack.c, printcmd.c, infcmd.c, findvar.c, breakpoint.c, + blockframe.c, xgdb.c, i386-pinsn.c, gld-pinsn.c, m-umax.h, + m-sun2.h, m-sun3.h, m-sparc.h, m-pn.h, m-npl.h, m-news.h, + m-merlin.h, m-isi.h, m-i386.h, m-hp9k320.h: Changed routines to + use "struct frame_info *" internally. + +Wed Dec 7 12:07:54 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * frame.h, blockframe.c, m-sparc.h, sparc-dep.c: Changed all calls + to get_[prev_]frame_cache_item to get_[prev_]frame_info. + + * blockframe.c: Elminated get_frame_cache_item and + get_prev_frame_cache_item; functionality now taken care of by + get_frame_info and get_prev_frame_info. + + * blockframe.c: Put allocation on an obstack and eliminated fancy + reallocation routines, several variables, and various nasty + things. + + * frame.h, stack.c, infrun.c, blockframe.c, sparc-dep.c: Changed + type FRAME to be a typedef to "struct frame_info *". Had to also + change routines that returned frame id's to return the pointer + instead of the cache index. + + * infcmd.c (finish_command): Used proper method of getting from + function symbol to start of function. Was treating a symbol as a + value. + + * blockframe.c, breakpoint.c, findvar.c, infcmd.c, stack.c, + xgdb.c, i386-pinsn.c, frame.h, m-hp9k320.h, m-i386.h, m-isi.h, + m-merlin.h, m-news.h, m-npl.h, m-pn.h, m-sparc.h, m-sun2.h, + m-sun3.h, m-umax.h: Changed get_frame_info and get_prev_frame_info + to return pointers instead of structures. + + * blockframe.c (get_pc_function_start): Modified to go to misc + function table instead of bombing if pc was in a block without a + containing function. + + * coffread.c: Dup'd descriptor passed to read_coff_symtab and + fdopen'd it so that there wouldn't be multiple closes on the same + fd. Also put (fclose, stream) on the cleanup list. + + * printcmd.c, stack.c: Changed print_frame_args to take a + frame_info struct as argument instead of the address of the args + to the frame. + + * m-i386.h (STORE_STRUCT_RETURN): Decremented sp by sizeof object + to store (an address) rather than 1. + + * dbxread.c (read_dbx_symtab): Set first_object_file_end in + read_dbx_symtab (oops). + + * coffread.c (fill_in_vptr_fieldno): Rewrote TYPE_BASECLASS as + necessary. + +Tue Dec 6 13:03:43 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * coffread.c: Added fake support for partial_symtabs to allow + compilation and execution without there use. + * inflow.c: Added a couple of minor USG mods. + * munch: Put in appropriate conditionals so that it would work on + USG systems. + * Makefile: Made regex.* handled same as obstack.*; made sure tar + file included everything I wanted it to include (including + malloc.c). + + * dbxread.c (end_psymtab): Create an entry in the + partial_symtab_list for each subfile of the .o file just read in. + This allows a "list expread.y:10" to work when we haven't read in + expread.o's symbol stuff yet. + + * symtab.h, dbxread.c (psymtab_to_symtab): Recognize pst->ldsymlen + == 0 as indicating a dummy psymtab, only in existence to cause the + dependency list to be read in. + + * dbxread.c (sort_symtab_syms): Elminated reversal of symbols to + make sure that register debug symbol decls always come before + parameter symbols. After mod below, this is not needed. + + * symtab.c (lookup_block_symbol): Take parameter type symbols + (LOC_ARG or LOC_REGPARM) after any other symbols which match. + + * dbxread.c (read_type): When defining a type in terms of some + other type and the other type is supposed to have a pointer back + to this specific kind of type (pointer, reference, or function), + check to see if *that* type has been created yet. If it has, use + it and fill in the appropriate slot with a pointer to it. + +Mon Dec 5 11:25:04 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * symmisc.c: Eliminated existence of free_inclink_symtabs and + init_free_inclink_symtabs; they aren't called from anywhere, and + if they were they could disrupt gdb's data structure badly + (elimination of struct type's which values that stick around past + elimination of inclink symtabs). + + * dbxread.c (symbol_file_command): Fixed a return pathway out of + the routine to do_cleanups before it left. + + * infcmd.c (set_environment_command), gdb.texinfo: Added + capability to set environmental variable values to null. + + * gdb.texinfo: Modified doc on "break" without args slightly. + +Sun Dec 4 17:03:16 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c (symbol_file_command): Added check; if there weren't + any debugging symbols in the file just read, the user is warned. + + * infcmd.c: Commented set_environment_command (a little). + + * createtags: Cleaned up and commented. + + * Makefile: Updated dependency list and cleaned it up somewhat + (used macros, didn't make .o files depend on .c files, etc.) + +Fri Dec 2 11:44:46 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * value.h, values.c, infcmd.c, valops.c, m-i386.h, m-sparc.h, + m-merlin.h, m-npl.h, m-pn.h, m-umax.h, m-vax.h, m-hp9k320.h, + m-isi.h, m-news.h, m-sun2.h, m-sun3.h: Cleaned up dealings with + functions returning structures. Specifically: Added a function + called using_struct_return which indicates whether the function + being called is using the structure returning conventions or it is + using the value returning conventions on that machine. Added a + macro, STORE_STRUCT_RETURN to store the address of the structure + to be copied into wherever it's supposed to go, and changed + call_function to handle all of this correctly. + + * symseg.h, symtab.h, dbxread.c: Added hooks to recognize an + N_TEXT symbol with name "*gcc-compiled*" as being a flag + indicating that a file had been compiled with gcc and setting a + flag in all blocks produced during processing of that file. + +Thu Dec 1 13:54:29 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h (PUSH_DUMMY_FRAME): Saved 8 less than the current pc, + as POP_FRAME and sparc return convention restore the pc to 8 more + than the value saved. + + * valops.c, printcmd.c, findvar.c, value.h: Added the routine + value_from_register, to access a specific register of a specific + frame as containing a specific type, and used it in read_var_value + and print_frame_args. + +Wed Nov 30 17:39:50 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbxread.c (read_number): Will accept either the argument passed + as an ending character, or a null byte as an ending character. + + * Makefile, createtags: Added entry to create tags for gdb + distribution which will make sure currently configured machine + dependent files come first in the list. + +Wed Nov 23 13:27:34 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * stack.c, infcmd.c, sparc-dep.c: Modified record_selected_frame + to work off of frame address. + + * blockframe.c (create_new_frame, get_prev_frame_cache_item): + Added code to reset pointers within frame cache if it must be + realloc'd. + + * dbxread.c (read_dbx_symtab): Added in optimization comparing + last couple of characters instead of first couple to avoid + strcmp's in read_dbx_symtab (recording extern syms in misc + functions or not). 1 call to strlen is balanced out by many fewer + calls to strcmp. + +Tue Nov 22 16:40:14 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Took out optimization for ignoring + LSYM's; was disallowing typedefs. Silly me. + + * Checkpointed distribution (mostly for sending to Tiemann). + + * expression.h: Added BINOP_MIN and BINOP_MAX operators for C++. + * symseg.h: Included flags for types having destructors and + constructors, and flags being defined via public and via + virtual paths. Added fields NEXT_VARIANT, N_BASECLASSES, + and BASECLASSES to this type (tr: Changed types from + having to be derived from a single baseclass to a multiple + base class). + * symtab.h: Added macros to access new fields defined in symseg.h. + Added decl for lookup_basetype_type. + * dbxread.c + (condense_addl_misc_bunches): Function added to condense the misc + function bunches added by reading in a new .o file. + (read_addl_syms): Function added to read in symbols + from a new .o file (incremental linking). + (add_file_command): Command interface function to indicate + incrmental linking of a new .o file; this now calls + read_addl_syms and condense_addl_misc_bunches. + (define_symbol): Modified code to handle types defined from base + types which were not known when the derived class was + output. + (read_struct_type): Modified to better handle description of + struct types as derived types. Possibly derived from + several different base classes. Also added new code to + mark definitions via virtual paths or via public paths. + Killed seperate code to handle classes with destructors + but without constructors and improved marking of classes + as having destructors and constructors. + * infcmd.c: Modified call to val_print (one more argument). + * symtab.c (lookup_member_type): Modified to deal with new + structure in symseg.h. + (lookup_basetype_type): Function added to find or construct a type + ?derived? from the given type. + (decode_line_1): Modified to deal with new type data structures. + Modified to deal with new number of args for + decode_line_2. + (decode_line_2): Changed number of args (?why?). + (init_type): Added inits for new C++ fields from + symseg.h. + *valarith.c + (value_x_binop, value_binop): Added cases for BINOP_MIN & + BINOP_MAX. + * valops.c + (value_struct_elt, check_field, value_struct_elt_for_address): + Changed to deal with multiple possible baseclasses. + (value_of_this): Made SELECTED_FRAME an extern variable. + * valprint.c + (val_print): Added an argument DEREF_REF to dereference references + automatically, instead of printing them like pointers. + Changed number of arguments in recursive calls to itself. + Changed to deal with varibale numbers of base classes. + (value_print): Changed number of arguments to val_print. Print + type of value also if value is a reference. + (type_print_derivation_info): Added function to print out + derivation info a a type. + (type_print_base): Modified to use type_print_derivation_info and + to handle multiple baseclasses. + +Mon Nov 21 10:32:07 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * inflow.c (term_status_command): Add trailing newline to output. + + * sparc-dep.c (do_save_insn, do_restore_insn): Saved + "stop_registers" over the call for the sake of normal_stop and + run_stack_dummy. + + * m-sparc.h (EXTRACT_RETURN_VALUE): Put in parenthesis to force + addition of 8 to the int pointer, not the char pointer. + + * sparc-pinsn.c (print_addr1): Believe that I have gotten the + syntax right for loads and stores as adb does it. + + * symtab.c (list_symbols): Turned search for match on rexegp into + a single loop. + + * dbxread.c (psymtab_to_symtab): Don't read it in if it's already + been read in. + + * dbxread.c (psymtab_to_symtab): Changed error to fatal in + psymtab_to_symtab. + + * expread.y (parse_number): Fixed bug which treated 'l' at end of + number as '0'. + +Fri Nov 18 13:57:33 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Was + being foolish and using pointers into an array I could realloc. + Converted these pointers into integers. + +Wed Nov 16 11:43:10 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h (POP_FRAME): Made the new frame be PC_ADJUST of the + old frame. + + * i386-pinsn.c, m-hp9k320.h, m-isi.h, m-merlin.h, m-news.h, + m-npl.h, m-pn.h, m-sparc.h, m-sun2.h, m-sun3.h, m-umax.h, m-vax.h: + Modified POP_FRAME to use the current frame instead of + read_register (FP_REGNUM) and to flush_cached_frames before + setting the current frame. Also added a call to set the current + frame in those POP_FRAMEs that didn't have it. + + * infrun.c (wait_for_inferior): Moved call to set_current_frame up + to guarrantee that the current frame will always be set when a + POP_FRAME is done. + + * infrun.c (normal_stop): Added something to reset the pc of the + current frame (was incorrect because of DECR_PC_AFTER_BREAK). + + * valprint.c (val_print): Changed to check to see if a string was + out of bounds when being printed and to indicate this if so. + + * convex-dep.c (read_inferior_memory): Changed to return the value + of errno if the call failed (which will be 0 if the call + suceeded). + +Tue Nov 15 10:17:15 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * infrun.c (wait_for_inferior): Two changes: 1) Added code to + not trigger the step breakpoint on recursive calls to functions + without frame info, and 2) Added calls to distinguish recursive + calls within a function without a frame (which next/nexti might + wish to step over) from jumps to the beginning of a function + (which it generally doesn't). + + * m-sparc.h (INIT_EXTRA_FRAME_INFO): Bottom set correctly for leaf + parents. + + * blockframe.c (get_prev_frame_cache_item): Put in mod to check + for a leaf node (by presence or lack of function prologue). If + there is a leaf node, it is assumed that SAVED_PC_AFTER_CALL is + valid. Otherwise, FRAME_SAVED_PC or read_pc is used. + + * blockframe.c, frame.h: Did final deletion of unused routines and + commented problems with getting a pointer into the frame cache in + the frame_info structure comment. + + * blockframe.c, frame.h, stack.c: Killed use of + frame_id_from_frame_info; used frame_id_from_addr instead. + + * blockframe.c, frame.h, stack.c, others (oops): Combined stack + cache and frame info structures. + + * blockframe.c, sparc-dep.c, stack.c: Created the function + create_new_frame and used it in place of bad calls to + frame_id_from_addr. + + * blockframe.c, inflow.c, infrun.c, i386-pinsn.c, m-hp9k320.h, + m-npl.h, m-pn.h, m-sparc.h, m-sun3.h, m-vax.h, default-dep.c, + convex-dep.c, gould-dep.c, hp9k320-dep.c, news-dep.c, sparc-dep.c, + sun3-dep.c, umax-dep.c: Killed use of + set_current_Frame_by_address. Used set_current_frame + (create_new_frame...) instead. + + * frame.h: Killed use of FRAME_FP_ID. + + * infrun.c, blockframe.c: Killed select_frame_by_address. Used + select_frame (get_current_frame (), 0) (which was correct in all + cases that we need to worry about. + +Mon Nov 14 14:19:32 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * frame.h, blockframe.c, stack.c, m-sparc.h, sparc-dep.c: Added + mechanisms to deal with possible specification of frames + dyadically. + +Sun Nov 13 16:03:32 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ns32k-opcode.h: Add insns acbw, acbd. + +Sun Nov 13 15:09:58 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * breakpoint.c: Changed breakpoint structure to use the address of + a given frame (constant across inferior runs) as the criteria for + stopping instead of the frame ident (which varies across inferior + calls). + +Fri Nov 11 13:00:22 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * gld-pinsn.c (findframe): Modified to work with the new frame + id's. Actually, it looks as if this routine should be called with + an address anyway. + + * findvar.c (find_saved_register): Altered bactrace loop to work + off of frames and not frame infos. + + * frame.h, blockframe.c, stack.c, sparc-dep.c, m-sparc.h: Changed + FRAME from being the address of the frame to being a simple ident + which is an index into the frame_cache_item list. + * convex-dep.c, default-dep.c, gould-dep.c, hp9k320-dep.c, + i386-pinsn.c, inflow.c, infrun.c, news-dep.c, sparc-dep.c, + sun3-dep.c, umax-dep.c, m-hp9k320.h, m-npl.h, m-pn.h, m-sparc.h, + m-sun3.h, m-vax.h: Changed calls of the form set_current_frame + (read_register (FP_REGNUM)) to set_current_frame_by_address (...). + +Thu Nov 10 16:57:57 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * frame.h, blockframe.c, gld-pinsn.c, sparc-dep.c, stack.c, + infrun.c, findvar.c, m-sparc.h: Changed the FRAME type to be + purely an identifier, using FRAME_FP and FRAME_FP_ID to convert + back and forth between the two. The identifier is *currently* + still the frame pointer value for that frame. + +Wed Nov 9 17:28:14 1988 Chris Hanson (cph at kleph) + + * m-hp9k320.h (FP_REGISTER_ADDR): Redefine this to return + difference between address of given FP register, and beginning of + `struct user' that it occurs in. + + * hp9k320-dep.c (core_file_command): Fix sign error in size + argument to myread. Change buffer argument to pointer; was + copying entire structure. + (fetch_inferior_registers, store_inferior_registers): Replace + occurrences of `FP_REGISTER_ADDR_DIFF' with `FP_REGISTER_ADDR'. + Flush former definition. + +Wed Nov 9 12:11:37 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * xgdb.c: Killed include of initialize.h. + + * Pulled in xgdb.c from the net. + + * Checkpointed distribution (to provide to 3b2 guy). + + * coffread.c, dbxread.c, symmisc.c, symtab.c, symseg.h: Changed + format of table of line number--pc mapping information. Can + handle negative pc's now. + + * command.c: Deleted local copy of savestring; code in utils.c is + identical. + +Tue Nov 8 11:12:16 1988 Randall Smith (randy at plantaris.ai.mit.edu) + + * gdb.texinfo: Added documentation for shell escape. + +Mon Nov 7 12:27:16 1988 Randall Smith (randy at sugar-bombs.ai.mit.edu) + + * command.c: Added commands for shell escape. + + * core.c, dbxread.c: Added ROBOTUSSIN mods. + + * Checkpointed distribution. + + * printcmd.c (x_command): Yanked error if there is no memory to + examine (could be looking at executable straight). + + * sparc-pinsn.c (print_insn): Amount to leftshift sethi imm by is + now 10 (matches adb in output). + + * printcmd.c (x_command): Don't attempt to set $_ & $__ if there + is no last_examine_value (can happen if you did an x/0). + +Fri Nov 4 13:44:49 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * printcmd.c (x_command): Error if there is no memory to examine. + + * gdb.texinfo: Added "cont" to the command index. + + * sparc-dep.c (do_save_insn): Fixed typo in shift amount. + + * m68k-opcode.h: Fixed opcodes for 68881. + + * breakpoint.c, infcmd.c, source.c: Changed defaults in several + places for decode_line_1 to work off of the default_breakpoint_* + values instead of current_source_* values (the current_source_* + values are off by 5 or so because of listing defaults). + + * stack.c (frame_info): ifdef'd out FRAME_SPECIFCATION_DYADIC in + the stack.c module. If I can't do this right, I don't want to do + it at all. Read the comment there for more info. + +Mon Oct 31 16:23:06 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * gdb.texinfo: Added documentation on the "until" command. + +Sat Oct 29 17:47:10 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * breakpoint.c, infcmd.c: Added UNTIL_COMMAND and subroutines of + it. + + * breakpoint.c, infcmd.c, infrun.c: Added new field to breakpoint + structure (silent, indicating a silent breakpoint), and modified + breakpoint_stop_status and things that read it's return value to + understand it. + +Fri Oct 28 17:45:33 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c, symmisc.c: Assorted speedups for readin, including + special casing most common symbols, and doing buffering instead of + calling malloc. + +Thu Oct 27 11:11:15 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * stack.c, sparc-dep.c, m-sparc.h: Modified to allow "info frame" + to take two arguments on the sparc and do the right thing with + them. + + * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Put + stuff to put only symbols that didn't have debugging info on the + misc functions list back in. + +Wed Oct 26 10:10:32 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * valprint.c (type_print_varspec_suffix): Added check for + TYPE_LENGTH(TYPE_TARGET_TYPE(type)) > 0 to prevent divide by 0. + + * printcmd.c (print_formatted): Added check for VALUE_REPEATED; + value_print needs to be called for that. + + * infrun.c (wait_for_inferior): Added break when you decide to + stop on a null function prologue rather than continue stepping. + + * m-sun3.h: Added explanatory comment to REGISTER_RAW_SIZE. + + * expread.y (parse_c_1): Initialized paren_depth for each parse. + +Tue Oct 25 14:19:38 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * valprint.c, coffread.c, dbxread.c: Enum constant values in enum + type now accessed through TYPE_FIELD_BITPOS. + + * dbxread.c (process_symbol_for_psymtab): Added code to deal with + possible lack of a ":" in a debugging symbol (do nothing). + + * symtab.c (decode_line_1): Added check in case of all numbers for + complete lack of symbols. + + * source.c (select_source_symtab): Made sure that this wouldn't + bomb on complete lack of symbols. + +Mon Oct 24 12:28:29 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h, findvar.c: Ditched REGISTER_SAVED_UNIQUELY and based + code on REGISTER_IN_WINDOW_P and HAVE_REGISTER_WINDOWS. This will + break when we find a register window machine which saves the + window registers within the context of an inferior frame. + + * sparc-dep.c (frame_saved_pc): Put PC_ADJUST return back in for + frame_saved_pc. Seems correct. + + * findvar.c, m-sparc.h: Created the macro REGISTER_SAVED_UNIQUELY + to handle register window issues (ie. that find_saved_register + wasn't checking the selected frame itself for shit). + + * sparc-dep.c (core_file_command): Offset target of o & g register + bcopy by 1 to hit correct registers. + + * m-sparc.h: Changed STACK_END_ADDR. + +Sun Oct 23 19:41:51 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * sparc-dep.c (core_file_command): Added in code to get the i & l + registers from the stack in the corefile, and blew away some wrong + code to get i & l from inferior. + +Fri Oct 21 15:09:19 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * m-sparc.h (PUSH_DUMMY_FRAME): Saved the value of the RP register + in the location reserved for i7 (in the created frame); this way + the rp value won't get lost. The pc (what we put into the rp in + this routine) gets saved seperately, so we loose no information. + + * sparc-dep.c (do_save_insn & do_restore_insn): Added a wrapper to + preserve the proceed status state variables around each call to + proceed (the current frame was getting munged because this wasn't + being done). + + * m-sparc.h (FRAME_FIND_SAVED_REGS): Fix bug: saved registers + addresses were being computed using absolute registers number, + rather than numbers relative to each group of regs. + + * m-sparc.h (POP_FRAME): Fixed a bug (I hope) in the context + within which saved reg numbers were being interpetted. The + values to be restored were being gotten in the inferior frame, and + the restoring was done in the superior frame. This means that i + registers must be restored into o registers. + + * sparc-dep.c (do_restore_insn): Modified to take a pc as an + argument, instead of a raw_buffer. This matches (at least it + appears to match) usage from POP_FRAME, which is the only place + from which do_restore_insn is called. + + * sparc-dep.c (do_save_insn and do_restore_insn): Added comments. + + * m-sparc.h (FRAME_FIND_SAVED_REGS): Modified my code to find the + save addresses of out registers to use the in regs off the stack + pointer when the current frame is 1 from the innermost. + +Thu Oct 20 13:56:15 1988 & Smith (randy at hobbes.ai.mit.edu) + + * blockframe.c, m-sparc.h: Removed code associated with + GET_PREV_FRAME_FROM_CACHE_ITEM. This code was not needed for the + sparc; you can always find the previous frames fp from the fp of + the current frame (which is the sp of the previous). It's getting + the information associated with a given frame (ie. saved + registers) that's a bitch, because that stuff is saved relative to + the stack pointer rather than the frame pointer. + + * m-sparc.h (GET_PREV_FRAME_FROM_CACHE_ITEM): Modified to return + the frame pointer of the previous frame instead of the stack + pointer of same. + + * blockframe.c (flush_cached_frames): Modified call to + obstack_free to free back to frame_cache instead of back to zero. + This leaves the obstack control structure in finite state (and + still frees the entry allocated at frame_cache). + +Sat Oct 15 16:30:47 1988 & Smith (randy at tartarus.uchicago.edu) + + * valops.c (call_function): Suicide material here. Fixed a typo; + CALL_DUMMY_STACK_ADJUST was spelled CAll_DUMMY_STACK_ADJUST on + line 530 of the file. This cost me three days. I'm giving up + typing for lent. + +Fri Oct 14 15:10:43 1988 & Smith (randy at tartarus.uchicago.edu) + + * m-sparc.h: Corrected a minor mistake in the dummy frame code + that was getting the 5th argument and the first argument from the + same place. + +Tue Oct 11 11:49:33 1988 & Smith (randy at tartarus.uchicago.edu) + + * infrun.c: Made stop_after_trap and stop_after_attach extern + instead of static so that code which used proceed from machine + dependent files could fiddle with them. + + * blockframe.c, frame.h, sparc-dep.c, m-sparc.h: Changed sense of + ->prev and ->next in struct frame_cache_item to fit usage in rest + of gdb (oops). + +Mon Oct 10 15:32:42 1988 Randy Smith (randy at gargoyle.uchicago.edu) + + * m-sparc.h, sparc-dep.c, blockframe.c, frame.h: Wrote + get_frame_cache_item. Modified FRAME_SAVED_PC and frame_saved_pc + to take only one argument and do the correct thing with it. Added + the two macros I recently defined in blockframe.c to m-sparc.h. + Have yet to compile this thing on a sparc, but I've now merged in + everything that I received from tiemann, either exactly, or simply + effectively. + + * source.c: Added code to allocated space to sals.sals in the case + where no line was specified. + + * blockframe.c, infrun.c: Modified to cache stack frames requested + to minimize accesses to subprocess. + +Tue Oct 4 15:10:39 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) + + * config.gdb: Added sparc. + +Mon Oct 3 23:01:22 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) + + * Makefile, blockframe.c, command.c, core.c, dbxread.c, defs.h, + expread.y, findvar.c, infcmd.c, inflow.c, infrun.c, sparc-pinsn.c, + m-sparc.h, sparc-def.c, printcmd.c, stack.c, symmisc.c, symseg.h, + valops.c, values.c: Did initial merge of sparc port. This will + not compile; have to do stack frame caching and finish port. + + * inflow.c, gdb.texinfo: `tty' now resets the controling terminal. + +Fri Sep 30 11:31:16 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * inferior.h, infcmd.c, infrun.c: Changed the variable + stop_random_signal to stopped_by_random signal to fit in better + with name conventions (variable is not a direction to the + proceed/resume set; it is information from it). + +Thu Sep 29 13:30:46 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) + + * infcmd.c (finish_command): Value type of return value is now + whatever the function returns, not the type of the function (fixed + a bug in printing said value). + + * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): + Put *all* global symbols into misc_functions. This is what was + happening anyway, and we need it for find_pc_misc_function. + + ** This was eventually taken out, but I didn't mark it in the + ChangeLog. Oops. + + * dbxread.c (process_symbol_for_psymtab): Put every debugger + symbol which survives the top case except for constants on the + symchain. This means that all of these *won't* show up in misc + functions (this will be fixed once I make sure it's broken the way + it's supposed to be). + + * dbxread.c: Modified placement of debugger globals onto the hash + list; now we exclude the stuff after the colon and don't skip the + first character (debugger symbols don't have underscores). + + * dbxread.c: Killed debuginfo stuff with ifdef's. + +Wed Sep 28 14:31:51 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) + + * symtab.h, dbxread.c: Modified to deal with BINCL, EINCL, and + EXCL symbols produced by the sun loader by adding a list of + pre-requisite partial_symtabs that each partial symtab needs. + + * symtab.h, dbxread.c, symtab.c, symmisc.c: Modified to avoid + doing a qsort on the local (static) psymbols for each file to + speed startup. This feature is not completely debugged, but it's + inclusion has forced the inclusion of another feature (dealing + with EINCL's, BINCL's and EXCL's) and so I'm going to go in and + deal with them. + + * dbxread.c (process_symbol_for_psymtab): Made sure that the class + of the symbol made it into the partial_symbol entry. + +Tue Sep 27 15:10:26 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c: Fixed bug; init_psymbol_list was not being called + with the right number of arguments (1). + + * dbxread.c: Put ifdef's around N_MAIN, N_M2C, and N_SCOPE to + allow compilation on a microvax. + + * config.gdb: Modified so that "config.gdb vax" would work. + + * dbxread.c, symtab.h, symmisc.h, symtab.c, source.c: Put in many + and varied hacks to speed up gdb startup including: A complete + rewrite of read_dbx_symtab, a modification of the partial_symtab + data type, deletion of select_source_symtab from + symbol_file_command, and optimiztion of the call to strcmp in + compare_psymbols. + +Thu Sep 22 11:08:54 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * dbxread.c (psymtab_to_symtab): Removed call to + init_misc_functions. + + * dbxread.c: Fixed enumeration type clash (used enum instead of + integer constant). + + * breakpoint.c: Fixed typo; lack of \ at end of line in middle of + string constant. + + * symseg.h: Fixed typo; lack of semicolon after structure + definition. + + * command.c, breakpoint.c, printcmd.c: Added cmdlist editing + functions to add commands with the abbrev flag set. Changed + help_cmd_list to recognize this flag and modified unset, + undisplay, and enable, disable, and delete breakpoints to have + this flag set. + +Wed Sep 21 13:34:19 1988 Randall Smith (randy at plantaris.ai.mit.edu) + + * breakpoint.c, infcmd.c, gdb.texinfo: Created "unset" as an alias + for delete, and changed "unset-environment" to be the + "environment" subcommand of "delete". + + * gdb.texinfo, valprint.c: Added documentation in the manual for + breaking the set-* commands into subcommands of set. Changed "set + maximum" to "set array-max". + + * main.c, printcmd.c, breakpoint.c: Moved the declaration of + command lists into main and setup a function in main initializing + them to guarrantee that they would be initialized before calling + any of the individual files initialize routines. + + * command.c (lookup_cmd): A null string subcommand is treated as + an unknown subcommand rather than an ambiguous one (eg. "set $x = + 1" will now work). + + * infrun.c (wait_for_inferior): Put in ifdef for Sony News in + check for trap by INNER_THAN macro. + + * eval.c (evaluate_subexp): Put in catch to keep the user from + attempting to call a non function as a function. + +Tue Sep 20 10:35:53 1988 Randall Smith (randy at oatmeal.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Installed code to keep track of + which global symbols did not have debugger symbols refering to + them, and recording these via record_misc_function. + + * dbxread.c: Killed code to check for extra global symbols in the + debugger symbol table. + + * printcmd.c, breakpoint.c: Modified help entries for several + commands to make sure that abbreviations were clearly marked and + that the right commands showed up in the help listings. + + * main.c, command.c, breakpoint.c, infcmd.c, printcmd.c, + valprint.c, defs.h: Modified help system to allow help on a class + name to show subcommands as well as commands and help on a command + to show *all* subcommands of that command. + +Fri Sep 16 16:51:19 1988 Randall Smith (randy at gluteus.ai.mit.edu) + + * breakpoint.c (_initialize_breakpoint): Made "breakpoints" + subcommands of enable, disable, and delete use class 0 (ie. they + show up when you do a help xxx now). + + * infcmd.c,printcmd,c,main.c,valprint.c: Changed the set-* + commands into subcommands of set. Created "set variable" for use + with variables whose names might conflict with other subcommands. + + * blockframe.c, dbxread.c, coffread.c, expread.y, source.c: + Fixed mostly minor (and one major one in block_for_pc) bugs + involving checking the partial_symtab_list when a scan through the + symtab_list fails. + +Wed Sep 14 12:02:05 1988 Randall Smith (randy at sugar-smacks.ai.mit.edu) + + * breakpoint.c, gdb.texinfo: Added enable breakpoints, disable + breakpoints and delete breakpoints as synonyms for enable, + disable, and delete. This seemed reasonable because of the + immeninent arrival of watchpoints & etc. + + * gdb.texinfo: Added enable display, disable display, and delete + display to manual. + +Tue Sep 13 16:53:56 1988 Randall Smith (randy at sugar-smacks.ai.mit.edu) + + * inferior.h, infrun.c, infcmd.c: Added variable + stop_random_signal to indicate when a proceed had been stopped by + an unexpected signal. Used this to determine (in normal_stop) + whether the current display point should be deleted. + + * valops.c: Fix to value_ind to check for reference before doing a + COERCE_ARRAY. + +Sun Jul 31 11:42:36 1988 Richard Stallman (rms at frosted-flakes.ai.mit.edu) + + * breakpoint.c (_initialize_breakpoint): Clean up doc for commands + that can now apply also to auto-displays. + + * coffread.c (record_line): Corrected a spazz in editing. + Also removed the two lines that assume line-numbers appear + only in increasing order. + +Tue Jul 26 22:19:06 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * expression.h, eval.c, expprint.c, printcmd.c, valarith.c, + valops.c, valprint.c, values.c, m-*.h: Changes for evaluating and + displaying 64-bit `long long' integers. Each machine must define + a LONGEST type, and a BUILTIN_TYPE_LONGEST. + + * symmisc.c: (print_symtab) check the status of the fopen and call + perror_with_name if needed. + +Thu Jul 21 00:56:11 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * Convex: core.c: changes required by Convex's SOFF format were + isolated in convex-dep.c. + +Wed Jul 20 21:26:10 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * coffread.c, core.c, expread.y, i386-pinsn.c, infcmd.c, inflow.c, + infrun.c, m-i386.h, main.c, remote.c, source.c, valops.c: + Improvements for the handling of the i386 and other machines + running USG. (Several of these files just needed extra header files + such as types.h.) utils.c: added bcopy, bcmp, bzero, getwd, list + of signals, and queue routines for USG systems. Added vfork macro + to i386 + + * printcmd.c, breakpoint.c: New commands to enable/disable + auto-displays. Also `delete display displaynumber' works like + `undisplay displaynumber'. + +Tue Jul 19 02:17:18 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * coffread.c: (coff_lookup_type) Wrong portion of type_vector was + being bzero'd after type_vector was reallocated. + + * printcmd.c: (delete_display) Check for a display chain before + attempting to delete a display. + + * core.c, *-dep.c (*-infdep moved to *-dep): machine-dependent + parts of core.c (core_file_command, exec_file_command) moved to + *-dep.c. + +Mon Jul 18 19:45:51 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * dbxread.c: typo in read_struct_type (missing '=') was causing a + C struct to be parsed as a C++ struct, resulting in a `invalid + character' message. + +Sun Jul 17 22:27:32 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * printcmd.c, symtab.c, valops.c, expread.y: When an expression is + read, the innermost block required to evaluate the expression is + saved in the global variable `innermost_block'. This information + is saved in the `block' field of an auto-display so that + expressions with inactive variables can be skipped. `info display' + tells the user which displays are active and which are not. New + fn `contained_in' returns nonzero if one block is contained within + another. + +Fri Jul 15 01:53:14 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * infrun.c, m-i386.h: Use macro TRAPS_EXPECTED to set number of + traps to skip when sh execs the program. Default is 2, m-i386.h + overrides this and sets to 4. + + * coffread.c, infrun.c: minor changes for the i386. May be able + to eliminate them with more general code. + + * default-infdep.c: #ifdef SYSTEMV, include header file types.h. + Also switched the order of signal.h and user.h, since System 5 + requires signal.h to come first. + + * core.c main.c, remote,c, source.c, inflow.c: #ifdef SYSTEMV, + include various header files. Usually types.h and fcntl.h. + + * utils.c: added queue routines needed by the i386 (and other sys + 5 machines). + + * sys5.c, regex.c, regex.h: new files for sys 5 systems. (The + regex files are simply links to /gp/gnu/lib.) + +Thu Jul 14 01:47:14 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * config.gdb, README: Provide a list of known machines when user + enters an invalid machine. New second arg is operating system, + currently only used with `sunos4' or `os4'. Entry for i386 added. + + * news-infdep.c: new file. + + * m-news.h: new version which deals with new bugs in news800's OS. + +Tue Jul 12 19:52:16 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * Makefile, *.c, munch, config.gdb, README: New initialization + scheme uses nm to find functions whose names begin with + `_initialize_'. Files `initialize.h', `firstfile.c', + `lastfile.c', `m-*init.h' no longer needed. + + * eval.c, symtab.c, valarith.c, valops.c, value.h, values.c: Bug + fixes from gdb+ 2.5.4. evaluate_subexp takes a new arg, type + expected. New fn value_virtual_fn_field. + +Mon Jul 11 00:48:49 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * core.c (read_memory): xfer_core_file was being called with an + extra argument (0) by read_memory. + + * core.c (read_memory), *-infdep.c (read_inferior_memory), + valops.c (value_at): read_memory and read_inferior_memory now work + like write_memory and write_inferior_memory in that errno is + checked after each ptrace and returned to the caller. Used in + value_at to detect references to addresses which are out of + bounds. Also core.c (xfer_core_file): return 1 if invalid + address, 0 otherwise. + + * inflow.c, -infdep.c: removed all calls to ptrace from + inflow.c and put them in machine-dependent files *-infdep.c. + +Sun Jul 10 19:19:36 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * symmisc.c: (read_symsegs) Accept only format number 2. Since + the size of the type structure changed when C++ support was added, + format 1 can no longer be used. + + * core.c, m-sunos4.h: (core_file_command) support for SunOS 4.0. + Slight change in the core structure. #ifdef SUNOS4. New file + m-sunos4.h. May want to change config.gdb also. + +Fri Jul 8 19:59:49 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * breakpoint.c: (break_command_1) Allow `break if condition' + rather than parsing `if' as a function name and returning an + error. + +Thu Jul 7 22:22:47 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * C++: valops.c, valprint.c, value.h, values.c: merged code to deal + with C++ expressions. + +Wed Jul 6 03:28:18 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * C++: dbxread.c: (read_dbx_symtab, condense_misc_bunches, + add_file_command) Merged code to read symbol information from + an incrementally linked file. symmisc.c: + (init_free_inclink_symtabs, free_inclink_symtabs) Cleanup + routines. + +Tue Jul 5 02:50:41 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * C++: symtab.c, breakpoint.c, source.c: Merged code to deal with + ambiguous line specifications. In C++ one can have overloaded + function names, so that `list classname::overloadedfuncname' + refers to several different lines, possibly in different files. + +Fri Jul 1 02:44:20 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) + + * C++: symtab.c: replaced lookup_symtab_1 and lookup_symtab_2 with + a modified lookup_symbol which checks for fields of the current + implied argument `this'. printcmd.c, source.c, symtab.c, + valops.c: Need to change callers once callers are + installed. + +Wed Jun 29 01:26:56 1988 Peter TerMaat (pete at frosted-flakes.ai.mit.edu) + + * C++: eval.c, expprint.c, expread.y, expression.h, valarith.c, + Merged code to deal with evaluation of user-defined operators, + member functions, and virtual functions. + binop_must_be_user_defined tests for user-defined binops, + value_x_binop calls the appropriate operator function. + +Tue Jun 28 02:56:42 1988 Peter TerMaat (pete at frosted-flakes.ai.mit.edu) + + * C++: Makefile: changed the echo: expect 101 shift/reduce conflicts + and 1 reduce/reduce conflict. + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-9091 b/gdb/ChangeLog-9091 new file mode 100644 index 0000000000..42f8d0b4af --- /dev/null +++ b/gdb/ChangeLog-9091 @@ -0,0 +1,8322 @@ +Mon Dec 30 10:57:02 1991 Per Bothner (bothner at cygnus.com) + + Mainly stuff to improve handling of TYPE_CODE_REF values. + * valops.c (value_addr): If taking the addres of a + TYPE_CODE_REF, just cast the object to the corresponding + TYPE_CODE_PTR. This yields correct C++ semantics, and + preserves the location information, which has the nice effect + that &(&R) given the location containing R. + * values.c (value_copy): Make non-static (used by value_addr). + * eval.c (evaluate_subexp_for_address): Use the default + scheme (with value_addr) for a variable if it has TYPE_CODE_REF. + * valops.c (value_addr), eval.c (evaluate_subexp_for_address, + evaluate_subexp_with_coercion): Factor out some common + expressions into variables, for easier reading. + * findvar.c (locate_var_value): Remove code to handle + TYPE_CODE_REF - it should no longer be needed. + * valops.c (value_assign): Do a COERCE_REF on the + destination operand, for correct C++ semantics. + * valarith.c (value_x_binop): Ditto: De-reference C++ + references in the arguments. + * valops.c: ANSI-fy: bcopy->memcpy, bzero->memset. + +Sat Dec 28 11:30:26 1991 Per Bothner (bothner at cygnus.com) + + * dwarfread.c, coffread.c: Use INIT_CPLUS_SPECIFIC. + * symtab.c (gdb_mangle_name): Recognize and handle + constructors specially. + * symtab.c (check_stub_method): Test for failure from + cplus-demangle by calling error() instead of seg-faulting ... + +Fri Dec 27 22:21:30 1991 Fred Fish (fnf at cygnus.com) + + * defs.h: Add definition of null_cleanup() + + * procfs.c: Many small changes to add base support for a new + "info proc" command (currently only printing of the address + space mapping is implemented) and allow iteration over the + address space mapping, calling an arbitrary function for each + mapping (used for shared library support). + + * solib.c: Change all ifdefs that checked for "sun" to check + for "!SVR4_SHARED_LIBS" instead. Rewrite lookup_base() to + handle locating the debug base address even when not currently + stopped at the dynamic linker entry point. + + * utils.c: Add null_cleanup() as a known function that does + nothing to serve as a base for possibly long cleanup chains + with no specific "first cleanup" to serve as an anchor. + + * xm-sysv4.h: Add define of SVR4_SHARED_LIBS + +Fri Dec 27 10:11:33 1991 Per Bothner (bothner at cygnus.com) + + * arm-opcode.h, m88k-opcode.h, pn-opcode.h, np1-opcode.h, + pyr-opcode.h, tahoe-opcode, vax-opcode.h: Removed - + these are all essentially the same as the versions + in ../include/opcode. The remaining *-opcode.h here + are not quite so obviously the same, and need study. + * arm-pinsn.c, gould-pinsn.c, m88k-pinsn.c, pyr-pinsn.c, + tahoe-pinsn.c, vax-pinsn.c: Change so these include + opcode/FOO.h (actually ../include/opcode/FOO.h) + instead of the recenntly departed opcode-FOO.h files. + * sparc-pinsn.c: Now that we're using the much tighter + opcode table in ../include/opcode/sparc.h, we shouldn't + need to sort the opcodes before dis-assembly. + + * symtab.h, symmisc.c: Make cplus_struct_default be const. + * symtab.h, buildsym.c: Add and use INIT_CPLUS_SPECIFIC macro. + * symmisc.c: Remove unused 'nfields' variable. + * buildsym.h: Add extern decl of unknown_symtype_complaint, + since it used used by partial-stab.h (included two places). + * partial-stab.h: Re-arrange DBXREAD_ONLY #ifdefs so that + we should never hit the default case (until new stab codes + are added). Hence, we can leave the complaint in the + default case in even when DBXREAD_ONLY is off. + * partial_stab.h: Recognize a pair of N_SO stabs (one for the + directory, one for the filename proper) without peeking ahead. + * dbxread.c, mipsread.c: Because of previous change, don't need + ugly CHECK_SECOND_N_SO macro. + * buildsym.h, dbxread.c, mipsread.c: Make next_symbol_text a + macro that invokes a function pointer in next_symbol_text_func. + * mipsread.c: Added comments various places to + explain what is going on. + * mipsread.c (parse_symbol): Support the new (SGI-specific?) + symbol types stStruct, stUnion, and stEnum. + Also, some fixes in the code for dealing with tags. + * mipsread.c: Change handling of startup_file_start and _end + - now just use the textlow and texhigh of a psymtab + to check if we've found the startup-file. + * mipsread.c: Replace s_idx by global cur_sdx in many places. + This is so mips_next_symbol_text can get at it. + +Thu Dec 26 19:52:01 1991 Fred Fish (fnf at cygnus.com) + + * dbxread.c, symmisc.c: Move add_psymbol_to_plist() from + dbxread.c to symmisc and change name to add_psymbol_to_list. + Ditto for add_psymbol_addr_to_plist(). Also expand their + body to not use ADD_PSYMBOL_VT_TO_LIST. + + * dwarfread.c: Remove add_psymbol_to_list() and convert usages + to the ADD_PSYMBOL_TO_LIST macro. + + * ieee-float.c: Change "#ifdef DEBUG" to "#ifdef IEEE_DEBUG" + to avoid collision with the DEBUG for ADD_PSYMBOL_VT_TO_LIST. + + * partial-stab.h, symfile.h: Move definitions of the macros + ADD_PSYMBOL_TO_LIST and ADD_PSYMBOL_ADDR_TO_LIST from + partial-stab.h to symfile.h. They aren't stab specific. + Change ADD_PSYMBOL_VT_TO_LIST to use memcpy rather than strncpy. + +Tue Dec 24 11:38:08 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll VERSION to 4.3.2. + +Mon Dec 23 13:54:35 1991 Per Bothner (bothner at cygnus.com) + + * m68k-opcode.h, mips-opcode.h, sparc-opcode.h: Deleted. + * m68k-pinsn.c, mips-pinsn.c, sparc-pinsn.c: + Include instead of . + + * symtab.h, symtab.c, coffread.c, dwarfread.c, symmisc.c, + dbxread.c: The TYPE_CPLUS_SPECIFIC structure is now only + allocated when it is needed. Until it is needed, it points + to a shared statically allocated structure. + + * buildsym.h, buildsym.c, dbxread.c: Remove the kludgy code + in read_ofile_symtab to recognize two initial N_SO stabs, + and let process_on_symbol handle it. This is cleaner, more + efficient, and lets mipsread.c share the same code. + + * symfile.h, partial-stab.h: Move ADD_PSYMBOL_VT_TO_LIST + and related macros to here ... + * dbxread.c: ... from here. + * symmisc.c: Move the "overflow" handling from + ADD_PSYMBOL_VT_TO_LIST macro into new function extend_psymbol_list. + * dwarfread.c: Re-write add_psymbol_to_list to use + ADD_PSYMBOL_VT_TO_LIST macro. + + * mipsread.c: Extend mipsread.c to handle stabs-style symbols + encapsulated in ecoff symbols. This enable full g++ debugging. + * partial-stab.h: Move the code for pre-scanning symbols + and building psymtabs to an include file, out from dbxread.c. + This way, the same code can also be used by mipsread.c. + * dbxread.c, buildsym.h: Various changes to allow some functions + to be used by mipsread.c (also some arguable stylistic changes). + + * tm-mips.h: Define BLOCK_ADDRESS_ABSOLUTE, at least for now, + since mips-tfile puts relocatable addresses into LBRAC/RBRAC + stabs. + + * mipsread.c: Replace code to handle ambiguous tag blocks. + Instead of allocating a TYPE_CODE_UNDEF, guess (by looking + at types and offsets) if a tag is a struct, union, or enum. + Still patch it later if we find out for sure. + * mipsread.c: In various ways, replace Forin's + ideo-syncratic code by code that fits better with the + rest of gdb, for both stabs-based and ecoff-based symtabs. + E.g. use end_psymtab; don't do extra passes over FDR table to + pre-partition global data; don't use external symbols to + create static/global symbols (just put them in the + misc_vector); use ADD_PSYMBOL_TO_LIST macro; don't + sort psymtabs or symtabs; use obstacks more. + + * symtab.c, mipsread.c, dbxread.c, buildsym.c: + ANSIfy: Replace bcopy by memcpy, bzero by memset. + +Sun Dec 22 19:31:04 1991 Fred Fish (fnf at cygnus.com) + + * solib.c (locate_base): Fix uninitialized variable that was + causing return of random value to callee. + + * config/mh-amix, config/mh-i386v4: Change to find alloca by + compiling and linking alloca.c, even when it is not strictly + required. Also arrange to link with -ltermlib rather than + -ltermcap. + + * Makefile.in: Move TERMCAP definition to prior to inclusion + of host makefile fragments so it can be overridden. + +Fri Dec 20 16:33:39 1991 John Gilmore (gnu at cygnus.com) + + * xcoffread.c (read_symbol_lineno): Logic error in incrementing + symbol table entry number. (From Metin Ozisik.) + +Fri Dec 20 11:36:38 1991 Fred Fish (fnf at cygnus.com) + + * config/mh-i386v4: Change XM_CLIBS to "-lc /usr/ucblib/libucb.a" + so compiles with native compilers (without builtin alloca) can + pick up the version from the bsd emulation library. However, we + search the standard C library first so we don't pick up lots of + other broken stuff from libucb.a, that we *don't* want. + + * configure.in, tm-amix.h, tm-i386v4.h, xm-amix.h, xm-i386v4.h: + Change svr4 references to sysv4. + + * source.c: Move declaration of external function index to + front of file so it is in scope for all references. + + * utils.c (error, fatal): Make definitions consistent with + defs.h declarations (declared as "volatile void"). + +Fri Dec 20 10:55:36 1991 John Gilmore (gnu at cygnus.com) + + * rs6k-opcode.h: Bugfix sfe and stbrx. By Al Kossow. + +Wed Dec 18 17:09:06 1991 Stu Grossman (grossman at cygnus.com) + + * command.h, defs.h, eval.h, expression.h, remote-sa.sparc.c, + sparc-tdep.c, symtab.h, target.h, value.h, vx-share/ptrace.h, + vx-share/xdr_ptrace.h, vx-share/xdr_rdb.h: ANSIfy enums. + +Mon Dec 16 12:31:46 1991 Fred Fish (fnf at cygnus.com) + + * config/mt-amix, config/mt-i386v4: Add solib.o to TDEPFILES + for these SVR4 systems. + + * symfile.c (symbol_file_add): When verbose is set, print + the names of files from which symbols are being loaded, as + when from_tty is true. + + * solib.c: Completely reorganized (rewritten) to support + SVR4 shared libraries in a manner very close to the original + SunOS implementation. This support is expected to change and + become more general at some future time. The SVR4 version + does not yet work for attached processes, for example. + + * dwarfread.c: Arrange in dwarf_build_psymtabs() for the + relocation address to be valid whether or not symbols are + being read from a shared library or an executable. Use the + relocation address recorded in the psymtab when reading + full symbol tables (in read_ofile_symtab). Ensure that the + relocated address ranges are recorded in partial symtabs. + + * elfread.c: Add new function elf_interpreter() to return the + string from the ELF ".interp" section. This is the interpreter + that the kernel tries to run and feed the executable to. + Expand arguments to record_misc_function to include a type arg. + Modify elf_symtab_read() to supply the type arg, and to do symbol + relocations for symbols read in from shared libraries. + + * procfs.c: Add new functions proc_base_address() and + proc_address_to_fd(), used by shared library support. + + * tm-svr4.h: Add macros to support SVR4 shared libraries. + Definitions for SOLIB_ADD, SOLIB_CREATE_INFERIOR_HOOK, + CLEAR_SOLIB, and DISABLE_UNSETTABLE_BREAK. + +Fri Dec 13 20:11:26 1991 John Gilmore (gnu at cygnus.com) + + * infrun.c, remote-eb.c, remote-nindy.c, remote-vx.c: Remove + unused START_INFERIOR_HOOK. + + * remote-eb.c: Change timeout to 24 seconds (*10 fits in byte) + to account for slow loading from floppies. + (eb_create_inferior): New fn, from eb_start and + nindy_create_inferior. + (eb_close): Only use log_file if nonzero. + (eb_xfer_inferior_memory): If not writing, then read! + (eb_read_inferior_memory, eb_write_inferior_memory): Return length. + (eb_kill): A new no-op. + (eb_mourn_inferior): Remove breakpoints, then generically weep. + +Fri Dec 13 16:09:23 1991 Fred Fish (fnf at cygnus.com) + + * breakpoint.c, findvar.c, infrun.c, putenv.c, stack.c: Fix + miscellaneous comparisons of integer with NULL that elicit + compiler warnings about comparison of integer with pointer, when + NULL is ((void *) 0) rather than just a bare 0. + +Wed Dec 11 13:02:58 1991 John Gilmore (gnu at cygnus.com) + + * breakpoint.c (breakpoint_re_set_one): Disable each breakpoint + while we reset it, in case of problems. Print breakpoint number + in error messages. + + * buildsym.c (read_struct_type): Avoid sun3 compiler bug with + foo[--n]. + + * source.c (find_source_lines): If getting file mod time fails, + don't warn. + + * target.c (target_xfer_memory): If errno is set, return it, + rather than EIO. + +Tue Dec 10 04:07:22 1991 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: infodir belongs in datadir. + +Sun Dec 8 21:13:33 1991 Michael Tiemann (tiemann at sphagnum.cygnus.com) + + * symtab.h (struct fn_field): Add new fields `is_private', + `is_protected', `is_stub', making room by reducing the size of + `voffset'. + (struct fn_fieldlist): Delete the fields `private_fn_field_bits' + and `protected_fn_field_bits'. + (TYPE_FN_{PRIVATE,PROTECTED}_BITS): Deleted. + (SET_TYPE_FN_{PRIVATE,PROTECTED}): Deleted. + (TYPE_FN_{PRIVATE,PROTECTED}): Deleted. + (TYPE_FN_FIELD_{STUB,PRIVATE,PROTECTED}): New macros. + * valops.c, valprint.c, symtab.c: All callers updated. + + * buildsym.c (read_struct_type): Delete the `visibility' field + from `struct next_fnfield', and rework code so that visibility + info is stored into the fn_field directly. Also, hacked to set + TYPE_FN_FIELD_STUB for both static and normal member functions. + +Sat Dec 7 18:13:11 1991 Fred Fish (fnf at cygnus.com) + + * i386-tdep.c: Fix a problem on i386 systems where buffered code + stream access was failing to take into account the minimum size + granularity of the code section. For now, the buffering is simply + disabled. There is a similar problem in the i386 disassember code + that has not yet been fixed (FIXME). + + * gmalloc.c: Use macros to hide some of the ugly casting required + in the previously applied fix for pointers with high bits set. + +Sat Dec 7 16:49:35 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll VERSION to 4.3.1. + +Sat Dec 7 04:12:35 1991 John Gilmore (gnu at cygnus.com) + + GDB-4.3 release! + + * Makefile.in: Roll VERSION to 4.3 + * README, TODO, WHATS.NEW, depend: Update. + + * inflow.c (terminal_inferior): Avoid error msg if attached. + + * gmalloc.c: Fix bug that causes malloc & free to + fail on systems where pointers have the high bit set (0x800efcf0 + for example). The problem is that the difference between two + pointers is a signed integer, so the computation + + (char *) 0x800efcf0 - (char *) 0 + + yields a negative value. The sign of the result of the modulus + operator is machine dependent for negative operands, thus it is + possible for it to end up negative. From Fred Fish. + +Sat Dec 7 00:00:15 1991 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: install using INSTALL_PROGRAM and INSTALL_DATA. + added clean-info. added some standards.text support and made it + look like our other Makefiles. + + * configure.in: mark this directory target dependent. configure + now runs entirely in objdir so make existence tests and + references against ${srcdir}. + +Fri Dec 6 08:30:36 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (enum_type, struct_type): Fixes for opaque and + anonymous enumerations, structures, and unions. Now passes all + the current gdb test suite tests. + +Thu Dec 5 22:46:13 1991 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: idestdir and ddestdir go away. Added copyrights + and shift gpl to v2. Added ChangeLog if it didn't exist. docdir + and mandir now keyed off datadir by default. + +Thu Dec 5 21:53:21 1991 John Gilmore (gnu at cygnus.com) + + * symtab.c (decode_line_1): If SKIP_PROLOGUE leaves us in + mid-line, be more careful about possibly advancing to the next line. + +Thu Dec 5 18:59:51 1991 Michael Tiemann (tiemann at cygnus.com) + + * cplus-dem.c (cplus_demangle): Call `string_need' when + null-terminating a partially-computed string. + +Thu Dec 5 18:19:43 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (enum_type): Build a correct TYPE_NAME, add a + symbol to the symbol table for each member of the enum. + + * dwarfread.c (struct_type): Build a correct TYPE_NAME. + + * dwarfread.c (add_enum_psymbol): New function to extract enum + member names and add them to the partial symbol table while + building partial symbol tables. + +Thu Dec 5 17:31:05 1991 John Gilmore (gnu at cygnus.com) + + * symtab.c (check_stub_method): Must allocate two extra argument + slots (one for `this', one for arglist terminator). + +Thu Dec 5 10:51:05 1991 Fred Fish (fnf at cygnus.com) + + * inflow.c (child_terminal_info): Supply missing '"' character. + + * buildsym.c (define_symbol): Supply missing parenthesis. + +Thu Dec 5 03:34:21 1991 John Gilmore (gnu at cygnus.com) + + * coredep.c (fetch_core_registers): Fencepost error. Fixed by + Jay Lepreau . + + * inflow.c: Remember whether GDB has a terminal. Avoid switching + terminals back and forth if we don't have one. + + * c-exp.y (parse_number): Zero is not an unsigned int constant! + * dbxread.c (read_dbx_symtab): Enum type numbers can be in (1,2) form. + + Improve type parsing. + * buildsym.c (define_symbol, read_range_type): Add + long_kludge_name that passes the names of range types being + defined, down to where we must choose between 'int' and 'long' + variants. This fails on Sun C anyway since the compiler itself is + confused between int and long. + (read_array_type, cleanup_undefined_types): Correct the size of + array type whose element-type size isn't immediately known. + + Early preparation to blow away many builtin types, building them + on the fly as needed. Don't compare types to builtin types with + ==; examine the relevant fields instead. + * coffread.c (process_coff_symbol: C_ARG, C_REGPARM): Avoid ==. + * buildsym.c (define_symbol, case 'p'): Avoid ==. + * valops.c (value_arg_coerce): Avoid ==. Don't assume host and + target types are the same. + * valprint.c (val_print): I finally understand arrays, remove FIXME. + + * symmisc.c (printpsyms_command): Reduce redundancy, and put all + addresses in GDB itself into parens for easy cleanup and diffing. + +Wed Dec 4 21:05:30 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread (enum_type): Arrange for the order of enumeration + members to match the source code order; not the order in the + Dwarf information, which is explicitly reverse order. + +Wed Dec 4 18:24:39 1991 John Gilmore (gnu at cygnus.com) + + * main.c (input_from_terminal_p): Check whether GDB has a + terminal at all. + (initialize_main): Revise doc for `set editing'. + +Wed Dec 4 15:36:39 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (struct_type): Handle structures and unions which + contain DIE's other than just member dies. + +Wed Dec 4 01:59:05 1991 John Gilmore (gnu at cygnus.com) + + * symfile.c (reread_symbols): Avoid kludging mtime_set, now that + BFD is fixed. + +Tue Dec 3 17:24:57 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: VERSION 4.2.96. + + * main.c (initialize_main): Revise command descriptions. + * command.c (show_user): `info user' -> `show user'. + * symtab.c (_initialize_symtab): Typo in `info types' desc. + + * coffread.c (coff_symfile_read): Avoid select_source_symtab, + since it is not needed and can cause errors when examining ".o"s. + (read_coff_symtab, decode_base_type): Use complain, not printf. + Print symbol name, not its number. + Remove "#if defined(clipper) #define BELIEVE_PCC_PROMOTION", which + someday should go in a clipper target config file. + + * symfile.c (compact_misc_function_vector): Handle empty vector. + (complain, clear_complaints, syms_from_objfile): Fix complaint + formatting. + * xcoffexec.c: Change syms_from_objfile caller. + + * sparc-xdep.c: Force tm-file as tm-sparc.h, to make it compile + when configured for cross debugging. FIXME, this needs a more + general solution. + +Mon Dec 2 11:04:05 1991 Per Bothner (bothner at cygnus.com) + + * mips-tdep.c (init_extra_frame_info): Float register + 'i' has gdb-internal number 'FP0+i', not '32+i'. + * mipsread.c (new_symbol): Translate g++ special + symbol "$t" to "this". + +Sat Nov 30 21:29:55 1991 Steve Chamberlain (sac at cygnus.com) + Changes due to include file renaming: + + * xcoffread.c: internalcoff.h ->coff/internal.c, + coff-rs6000.h ->coff/rs6000.h + * mipsread.c: coff-mips.h ->coff/mips.h + * elfread.c: elf-common.h ->elf/common.h + elf-external.h ->elf/external.h, + elf-internal.h ->elf/internal.h + * dwarfread.c dwarf.h ->elf/dwarf.h + * dbxread.c: aout64.h ->aout/aout64.h + stab.gnu.h ->aout/stab_gnu.h + + * coffread.c: internalcoff.h ->coff/internal.h + * buildsym.c: stab.gnu.h ->aout/stab_gnu.h + * depend Updated to take the above into account. + +Fri Nov 29 16:59:25 1991 Fred Fish (fnf at cygnus.com) + + * configure.in: Add SVR4 i386 configurations. + + * config/mh-i386v4, config/mt-i386v4, tm-i386v4.h, xm-i386v4.h: + New files for i386/SVR4. + + * tm-i386v.h: Allow START_INFERIOR_TRAPS_EXPECTED and + DECR_PC_AFTER_BREAK to be predefined by files including + tm-i386v.h. + + * i386-tdep.c: Add supply_gregset(), fill_gregset(), + supply_fpregset(), and fill_fpregset() functions, which are + target dependent support functions for the SVR4 /proc register + interface. + + * dwarfread.c (enum_type, struct_type): Expand recognized + compiler generated tags to include symbols beginning with '.' as + well as '~'. + + * symtab.c (sources_info): Change simple printf of error message + to call to error(). + +Fri Nov 29 16:04:21 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/gdb.texinfo: remove leading comments that survived M4 but + described its role in the doc; add one more font to colophon; + strengthen disclaimer about unsupported configs. + +Wed Nov 27 01:23:41 1991 John Gilmore (gnu at cygnus.com) + + Fix bugs in C++ debugging. + + * symtab.h: target_type is not used in record types. + Eliminate TYPE_MAIN_VARIANT and TYPE_NEXT_VARIANT. Eliminate + lookup_method_type. Add TYPE_TYPE_SPECIFIC macro. + + * symtab.c (lookup_member_type): Don't chain them up, just + allocate one in symbol_obstack when we need one. + (allocate_stub_method): Build stub in symbol_obstack. + (check_stub_method): Move here from values.c. Don't deallocate + stub; overwrite it. + (lookup_method_type): Gone now. + + * buildsym.c: Handle g++ v1 stabs a little bit better. + Change some C++ parsing error()s to complain()ts. + * buildsym.c, findvar.c, printcmd.c, symtab.c: Make unions and + structs have the same representation and work the same as far as + C++ is concerned. + * buildsym.c, symtab.c, values.c: Remove all references to + TYPE_MAIN_VARIANT and TYPE_NEXT_VARIANT. + + * valops.c: Improve comments and indentation. Only call + check_stub_method when the stub flag is on. + * valprint.c: Fix or mark minor bugs and unportabilities. + + * coffread.c (anonymous unions): Allocate a cplus structure. + + * mipsread.c: Eliminate "template" types. Build new, real + types whenever we need them. Allocate cplus structures as needed. + Bulletproof the type parsing a bit more. Mark storage leaks. + (parse_type): Copy TYPE_TYPE_SPECIFIC when copying a real type + on top of a partial type. + +Fri Nov 22 16:39:57 1991 John Gilmore (gnu at cygnus.com) + + * inflow.c (terminal_inferior): Check the results of ioctl's, and + print a message if any of them fail. + (terminal_ours_1): Store result of ioctl's for debugging, but + don't print (the terminal isn't ours...). + + * tm-tahoe.h (FRAME_ARGS_ADDRESS): No need to offset from frame + pointer. + + * m2-exp.y (MAX, MIN): Rename to MAX_FUNC, MIN_FUNC to avoid + conflicts with system header files. + +Fri Nov 22 08:27:40 1991 John Gilmore (gnu at cygnus.com) + + * Roll VERSION to 4.2.95. + + * buildsym.c, coredep.c, mem-break.c, xcoffread.c: Put + first, before defs.h. + * config/mh-i386sco: Override compiler to gcc, print warning. + * configure.in: Handle i386-none-aout rather than i386-aout-none. + * infptrace.c, language.h, utils.c: Lint. + * m2-exp.y: #undef MAX and MIN in case system includes set them. + * xm-tahoe.h: Set HOST_BYTE_ORDER. Include system versions of + {BIG,LITTLE}_ENDIAN and the INT_MAX family first, to avoid + redefinition warnings. + * defs.h: Reorder things so that the xm-file gets first crack + at #define's, followed by defs.h and then the tm-file. + * Makefile.in: Remove spaces after 'ignore exit code' - flags. + Late-model BSD 'make's don't cope with them. + +Thu Nov 21 23:48:56 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll new files into various lists. + +Thu Nov 21 18:26:11 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (struct_type): Must initialize the c++ specific + portion of union types as well as struct types, since gdb attempts + to reference the c++ specific info for both types. + +Thu Nov 21 10:23:52 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll VERSION to 4.2.90. + + * defs.h: Incorporate param.h into defs.h. All users changed. + * param-no-tm.h: Change users to define TM_FILE_OVERRIDE instead. + * param.h, param-no-tm.h: Removed. + * Update copyrights in all changed files. + * dbxread.c, dwarfread.c, inflow.c, infrun.c, m2-exp.y, putenv.c, + solib.c, symtab.h, tm-umax.h, valprint.c: Lint. + * tm-convex.h, tm-hp300hpux.h, tm-merlin.h, tm-sparc.h, + xm-merlin.h: Avoid host include files in target descriptions. + * getpagesize.h: Removed, libiberty copes now. + * Makefile.in: Remove getpagesize.h, param.h, param-no-tm.h. + + * exec.c (exec_files_info): If `verbose' is set, show file offset + as well. + + * main.c: Use getcwd rather than getwd. + * standalone.c: Fake getcwd rather than getwd. + * xm-*.h: Remove fake values of MAXPATHLEN. + + * xcoffexec.c: Add /* */ to #if 0'd thing to help ANSI. + +Wed Nov 20 18:35:56 1991 John Gilmore (gnu at cygnus.com) + + * Remove gdb/hp-include. Support for HP a.out oddities should be + in BFD, not in GDB. Move gdb/hp-include/a.out.h to include/a.out.hp.h. + + * infptrace.c, tm-sun386.h: Cashier , remove refs. + + * configure.in, xconfig, tconfig, Makefile.in, doc/gdbint.texinfo: + Makefile fragments for various hosts and targets now come from + gdb/config/mh-* and gdb/config/mt-*. This is for consistency with + other config setups. + + * rs6000-pinsn.c, rs6k-opcode.h: Clean up. + * rs6k-opcode.def: Delete. + +Wed Nov 20 05:04:40 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c: Recognize obsolete form of AT_element_list + attribute still used by at least one AT&T compiler, and possibly + more. + +Tue Nov 19 07:53:55 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (enum_type, struct_type): Ignore names invented by + helpful compilers for anonymous structs, unions, and enums. + + * c-exp.y, m2-exp.y: Add defines for yymaxdepth, yy_yys, and + yy_yyv, so multiple parsers produced by SVR4 versions of yacc + can coexist in the same executable without collision. + + * symtab.h: Add declaration for lookup_template_type() to kill + compiler warnings about conversions from int to pointer. + +Mon Nov 18 17:45:18 1991 Fred Fish (fnf at cygnus.com) + + * procfs.c: Move inclusion of defs.h to before param.h, as in + all the other source files that include both. This is required + to supply some typedefs that are used in files included by param.h. + + * m68k-tdep.c (m68k_skip_prologue): Add generic m68k support for + skipping function prologues, ala the other cpu families (i386, + mips, m88k, etc). Add the ability to skip movm and fmovm + instructions in the prologues. Still needs support for profile + (-p compiled) prologue sequences (FIXME). + + * tm-68k.h: Change SKIP_PROLOGUE macro to use the new generic + m68k prologue skipping function by default. + + * tm-altos.h, tm-isi.h: Continue to use the old definition of + SKIP_PROLOGUE. + +Mon Nov 18 15:12:45 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Remove tdesc stuff, and extra blanks before colons. + * blockframe.c: Remove tdesc-related code. Default + FRAME_CHAIN_COMBINE. + * infrun.c: Remove tdesc-related code. + * m88k-tdep.c (frame_chain_combine, init_frame_pc): Remove copies + of defaultable things. + * tm-m88k.h: New file, common to all Moto 88k target configs. + Derived from tm-delta88.h. + * tm-delta88.h: Use it. + * xm-m88k.h: Common file for 88K hosts. Remove obsolete stuff. + * xm-delta88.h: Use it. + * tm-*.h: Remove FRAME_CHAIN_COMBINE macros, since all are + default. + * coffread.c: Remove tdesc stuff. + * tconfig/delta88, tconfig/m88k: Remove tdesc stuff. + * xconfig/m88k: Rename tm-88k.h to tm-m88k.h. + +Mon Nov 18 13:51:37 1991 Per Bothner (bothner at cygnus.com) + + * source.c (open_source_file): If openp fails, try again + using just the base (non-directory) part of the filename. + This solves various annoying problems, such as when the + source was compiled with an absolute pathname - and the + source files have moved. Or if the source was compiled + using a relative pathname, it can be more convenient + to just specific the source directory to the dir command. + +Mon Nov 18 00:04:41 1991 Fred Fish (fnf at cygnus.com) + + * cplus-dem.c (munge_function_name): Add missing third arg to + instance of call to do_type(). + + * dwarfread.c: Changes to match new dwarf.h. Remove + AT_deriv_list, AT_loclist, AT_incomplete, AT_const_data, + and AT_is_external. + +Sun Nov 17 16:20:53 1991 Michael Tiemann (tiemann at rtl.cygnus.com) + + * symtab.h (struct type): Moved C++-specific fields into new type + `struct cplus_struct_type'. Now takes 10% less memory. Many + macros changed. + * symtab.c (init_type): Don't set fields belonging to + TYPE_CPLUS_SPECIFIC unless TYPE is TYPE_CODE_STRUCT. + * buildsym.c (read_type): Allocate TYPE_CPLUS_SPECIFIC for + TYPE_CODE_STRUCT. + (read_struct_type): Ditto. Also, add comments about how we can + deduce TYPE_VPTR_FIELDNO from inheritance info and fieldname info. + * coffread.c (decode_base_type): Allocate TYPE_CPLUS_SPECIFIC for + TYPE_CODE_STRUCT. + (read_struct_type): Ditto. + * dwarfread.c (struct_type): Ditto. + + * symtab.c (read_range_type): Don't set TYPE_MAIN_VARIANT. + (lookup_pointer_type): Don't use or set TYPE_MAIN_VARIANT. + (lookup_reference_type): Ditto. + + * cplus-dem.c: Many changes made to handle decoding of + ANSI-mangled names. + * symtab.c (gdb_mangle_name): Mangle/demangle ANSI-mangled names + as well. + +Fri Nov 15 17:57:59 1991 Stu Grossman (grossman at cygnus.com) + + * mipsread.c (parse_partial_symbols): patch to keep DEC C + compiler from making gdb bomb out. Thanks to Ed Santiago! + +Thu Nov 14 19:27:30 1991 Fred Fish (fnf at cygnus.com) + + * symfile.c: Add function compact_misc_function_vector() to + remove duplicate misc function vector entries. See comments + in source for why this is necessary/desirable. + + * dwarfread.c: Add misc function type parameter to internal + record_misc_function(). Remove calls to init_misc_bunches() + and condense_misc_bunches(), these are now done in elfread.c. + + * elfread.c: Add support for reading bfd canonical symbol tables + and generating misc function vector entries for global and + absolute symbols. Do calls to init_misc_bunches() and + condense_misc_bunches() where they will enclose all calls to + record_misc_function(), including those in dwarfread.c. + +Thu Nov 14 17:02:11 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/Makefile.in: new targets gdb.me, gdb.ms, gdb.mm + (roffable documentation). + * doc/gdb.texinfo: embedded hints (as comments) for better + texi2roff conversion. + +Thu Nov 14 13:18:25 1991 John Gilmore (gnu at cygnus.com) + + * m88k-tdep.c (examine_prologue): Deal with OR instructions + that shuffle parameters into other regs. + * symtab.c (decode_line_1): Fix bug introduced in Per's change + of Nov 12th. + +Wed Nov 13 19:51:11 1991 Steve Chamberlain (sac at cygnus.com) + + * Makefile.in, xconfig/delta88 made it install a sysV manual page; + gdb.z into the right place. + +Wed Nov 13 16:45:13 1991 John Gilmore (gnu at cygnus.com) + + Motorola 88000 port without tears, I mean without tdescs. + + * m88k-tdep.c: Blow away all tdesc stuff. + Provide functions for all the frame-related macros in + tm-delta88.h. Adopt i960-style EXTRA_FRAME_INFO. + (examine_prologue, frame_find_saved_regs, skip_prologue): borrow + from i960-tdep.c and adapt to the function prologues on the 88k. + (read_next_frame_reg): Borrow from mips-tdep.c. + FIXME: frame_locals_address should go away. + + * tm-delta88.h: Dump all the tdesc stuff. + Macros for all frame-related stuff call fns of same name. + Remove duplicated definitions. FP_REGNUM becomes same as + SP_REGNUM. + + * xm-88k.h: Eliminate lots of library dependencies, now handled + in libiberty. Eliminate KDB nonsupport. + + * doc/gdbint.texinfo: Add rudiments on frames. FIXME, add more. + + + * stack.c (frame_info): Mark frameless functions. + Print locals address (FIXME, remove if same). + * blockframe.c: Comment changes, FIXME after. + * coffread.c: Even without TDESC, need to zap "@" symbols. + Don't register for wierd format names; change the names in BFD. + + * alloca.c, language.c, tdesc.c: Lint. + * tdesc.c, tdesc-lib: FIXME: remove these. + +Tue Nov 12 19:30:22 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Add tdesc library support. Fixups to lint, + copying.c rules. + +Tue Nov 12 13:43:26 1991 Per Bothner (bothner at cygnus.com) + + * symtab.c (decode_line_1): Remove spurious call to operator_chars. + + Allow setting breakpoints on C++ destructors. + * valops.c (destructor_name_p): Don't check TYPE_HAS_DESTRUCTOR, + since it lies. Rely on callers to catch missing destructors. + * symtab.c (decode_line_1): For example (see above), here. + * buildsym.c, symtab.h: Remove TYPE_FLAGS_HAS{CON,DE}STRUCTOR + flags since they are no longer used. + + Fixes to support C++ methods with functional parameters. + * c-exp.y (func_mod rule): Allow (and ignore) list of parameter + types in a function type. + * eval.c (parse_and_eval_type), value.h: New function, + parse_and_eval_type, is based on old code from check_stub_method. + But don't actually evaluate the cast, since that calls + value_cast(), whcih may fail. Just extract the type + from the parsed expression. + * values.c (check_stub_method): While looping through the + arguments, adjust depth *after* parameter has been handled. + Replace call and setup of parse_and_eval with new function + parse_and_eval_type. + +Tue Nov 12 09:40:07 1991 Fred Fish (fnf at cygnus.com) + + * utils.c, rem-multi.shar: Remove fixed arg count version of + concat(). + + * altos-xdep.c, arm-xdep.c, coffread.c, command.c, convex-xdep.c, + core.c, dwarfread.c, gould-xdep.c, infcmd.c, language.c, + m88k-xdep.c, main.c, printcmd.c, pyr-xdep.c, source.c, + sun386-xdep.c, symm-xdep.c, umax-xdep.c, values.c, xcoffread.c: + Change all instances of use of fixed args concat() to variable + args concat() now located in libiberty. + +Tue Nov 12 07:23:46 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Add xcoffread.c, xcoffexec.c. + * xcoffread.c: New file for handling AIX mangled-coff files. + * xconfig/rs6000, tconfig/rs6000: New files. + * buildsym.c: Add hooks for xcoffread.c. + * rs6000-pinsn.c, rs6000-tdep.c, rs6000-xdep.c, tm-rs6000.h, + xm-rs6000.h, rs6k-opcode.def, rs6k-opcode.h: New files. + * xcoffexec.c: New file for handling AIX shared libraries. + +Mon Nov 11 19:14:31 1991 Fred Fish (fnf at cygnus.com) + + * core.c: Minor rewording of message to user containing name of + (and possibly arguments to) the program that generated a core + file. + + * elfread.c: Remove the register_addr() stub now that it is no + longer needed. + + * procfs.c: Move misplaced #endif for ATTACH_DETACH. Add new + fetch_core_registers() function for core file support. + +Sat Nov 9 13:37:57 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (dwarf_psymtab_to_symtab): Remove leftover call + to do_cleanups() which resulted from a previous change. + + * elfread.c: Re-enable compilation of register_addr() stub + whenever it is not supplied by coredep.c + +Sat Nov 9 00:40:32 1991 John Gilmore (gnu at cygnus.com) + + Add tracking of object files (that contain symbols) to gdb. + This includes a "struct objfile" that owns symtabs and psymtabs + that were read in from that binary file. + + * symfile.h: Add struct objfile. Add pointer to the objfile + into the struct sym_fns. + Replace global `symfile' and `symfile_mtime' with + `symfile_objfile'. Add global object_files chain. + + * symfile.c: Move param.h above symtab.h. + (sort_misc_function_vector): Add. + (syms_from_objfile): Was syms_from_bfd. + (symfile_open): Now returns objfile. + (allocate_objfile): New. + (free_objfile): New, replacing free_all_.*symtabs. + (symfile_init): Takes objfile arg, puts it in sym_fns result. + (reread_symbols): Searches whole chain of objfiles. + (allocate_symtab): Takes objfile as new parameter, chains them. + Handle INIT_EXTRA_SYMTAB_INFO. + (free_all_psymtabs, free_all_symtabs): Move here from symmisc.c. + + * dbxread.c: Make more errors into complaints. + (push_subfile, pop_subfile): Move to buildsym.c. + (dbx_symfile_read, dbx_symfile_init, fill_symbuf, read_dbx_symtab, + start_psymtab, psymtab_to_symtab_1, read_ofile_symtab, + dbx_psymtab_to_symtab, ): Use bfd ops, don't use file descriptor. + Pass objfile. Change callers. + (fill_symbuf, SWAP_SYMBOL): Take bfd as arg. + (read_dbx_symtab): Just wipe out new symbols, not all, on error. + (end_psymtab): Blow away psymtab if empty. + (process_symbol_pair): Swallow into read_ofile_symtab. + (process_one_symbol): Use push_context and pop_context. + (virtual_context): Delete #if 0'd obsolete stuff. + + * buildsym.c (end_symtab): Pass objfile. + (dbx_lookup_type): Handle null typevector. + (dbx_alloc_type): Check file number, not sym number, for -1. + (find_symbol_in_list): Add for xcoffread. + (start_symtab): Default typevector is empty. Keep reusing same + context_stack. + (end_symtab): Take objfile argument and pass it to + allocate_symtab. Don't make a symtab if no blocks or symbols. + Handle empty typevector. + (push_context): New function for context stack nesting. + (read_type): Mark FIXME where we need to reintroduce type smashing. + + * buildsym.h (pop_context): Macro, paired with push_context. + (subfile_stack): Move here from dbxread.c. + + * coffread.c (end_symtab, read_coff_symtab): Take and use objfile arg. + (read_coff_symtab): Cleanup by freeing objfile, not all symtabs. + + * mipsread.c (read_mips_symtab, parse_partial_symbols, parse_fdr, + new_psymtab, new_symtab): Take and use objfile arg. + + * dwarfread.c (scan_compilation_units, start_psymtab, + process_dies, end_symtab, dwarf_build_psymtabs, + read_lexical_block_scope, read_func_scope, read_file_scope): Take + and use objfile argument. + (psymtab_to_symtab_1, read_ofile_symtab): Don't take or use file + descriptor. Use BFD internal functions instead. + (end_symtab): Call global allocate_symtab. + + * elfread.c, target.c: Minor changes to accommodate objfiles. + * symtab.h: partial_symbol_table has no symfile_name member now. + (fn_fieldlists voffset): avoid non-int bitfield. + (struct symtab): Add objfile * and objfile_chain * of symtabs. + (struct partial_symtab): Add objfile * and objfile_chain * of + psymtabs. Remove symfile_name. + + * symmisc.c: Lose free_all_symtabs, free_all_psymtabs. + (printsyms_command): Rename from print_symtabs. Add selective + listing if 2nd argument given. Print objfile info. + (printpsyms_command): Rename from print_partial_symtabs. Ditto all. + (printobjfiles_command): New; prints objfiles lists, and checks + for consistency of symtab, psymtab, and objfile lists. + + * symfile.h, symfile.c, symtab.h: Lint + +Fri Nov 8 23:38:48 1991 John Gilmore (gnu at cygnus.com) + + * command.c: Include param.h. + * defs.h (warning_setup, warning): Declare. + * expprint.c (print_subexp, UNOP_MEMVAL case): Lint. + * inflow.c (new_tty): Use USE_O_NOCTTY #define. + * language.c, printcmd.c (print_scalar_formatted), signame.c, + stack.c: lint. + +Thu Nov 7 18:26:15 1991 Steve Chamberlain (sac at rtl.cygnus.com) + + * Makefile.in: link with libiberty after libreadline, since + readline might want something in libiberty. + * m88k-xdep.c: Fixed the register offsets in the ptrace_user + struct for BCS 88k machines. + * xm-m88k.h: don't define USIZE if already defined. + * configure.in: Added delta88 target. + +Thu Nov 7 04:51:19 1991 John Gilmore (gnu at cygnus.com) + + * am29k-pinsn.c, am29k-opcode.h: Fix decoding of mtacc, dmac, fmac. + + * tm-*.h: Remove READ_DBX_FORMAT, COFF_FORMAT, and + READ_MIPS_FORMAT, which have been unused since BFD. Still + remaining is COFF_NO_LONG_FILE_NAMES. + * tm-sun3.h, tm-altos.h: Remove detritus accidentally left from + function calling code moved to m68k-tdep.c. + +Wed Nov 6 17:21:59 1991 John Gilmore (gnu at cygnus.com) + + * coffread.c: Eliminate c_nsyms in favor of c_naux. + Complain if no auxents on .bf and .ef FCN symbols, and assume + lots of line numbers. + (init_linenos, enter_linenos): Use a sentinel at the end of the + read-in linenos, to make for a fast, safe loop-end test. + +Wed Nov 6 02:54:08 1991 Steve Chamberlain (sac at cygnus.com) + + * coffread.c (read_coff_symtab): coffread used to rely on the + x_sym.x_misc.x_lnsz.x_lnno field giving the # of linnos in a + function. Two of the formats I'm using (29k and 88k) don't seem to + set it. Ths patch to fcn_last_line and (enter_linenos) is an + attempt to use the actual size of the linno table in the file to set + the number of linenos to process. + +Tue Nov 5 22:47:46 1991 Steve Chamberlain (sac at cygnus.com) + + * Makefile.in: put a - infront of the mv y.tab.c c-exp.tab.c and + mv y.tab.c m2-exp.tab.c, so that if bison is used, and the files + are created in place, so the mv fails, then the make continues. + +Tue Nov 5 16:47:47 1991 Per Bothner (bothner at cygnus.com) + + Add C++ as a separate language. + * defs.h (enum language): Add language_cplus. + * dwarfread.c (end_symtab): Support language_cplus. + * c-exp.y: Add new struct language_defn cplus_language_defn. + Don't set c to be the default language (see main.c). + * c-exp.y (yylex): Only look for field of this if + language is C++. (First difference from C!) + * language.c: Add case branches for C++ (currently, all + the same as C). Also, add c++ to "usage" note for "set lang". + * valprint.c (typedef_print). Add case branches for C++. + * main.c (main): New way to set initial language: Look at + file extension of psymtab containing main(). (Same as we + do for symtabs, but avoid loading the symtab yet.) + * symtab.c: New routine find_main_psymtab(), used by main() + to set initial language. + * symfile.c (allocate_symtab): Move code for mapping file + extensions-> languages to new deduce_language_from_filename(). + + Fix a C++ problem when looking for methods in super-classes. + There was confusion between base and derived types. + * valops.c (value_fn_field): Change function interface. + * values.c: Use new value_fn_field interface. + +Mon Nov 4 10:49:33 1991 Per Bothner (bothner at cygnus.com) + + * infrun.c: Fixed typo in comment. + * utils.c: All the v*fprintf emulation is now in libiberty, + so we can get rid of some junk. + * xm-sun3os4.h, xm-sun4os4.h, xconfig/decstation, xconfig/i386sco, + xconfig/sun3os4, xconfig/sun4os4: Don`t need HAVE_STRSTR any more. + * m68k-pinsn.c (print_insn_arg): Support BB/BW/BL + type operands, as used by branch instructions. + * gmalloc.c: Fix prototype of memcpy. + * elfread.c: Comment out register_addr, since it conflicts + with the one in coredep.c. + * buildsym.h: Remove extern declarations of two functions + that are really static in buildsym.c. + * tm-mips.h: Add symbolic names for more registers. + * mips-xdep.c (store_inferior_registers): Use new register names. + * xm-mips.h: Simplify REGISTER_U_ADDR, since it is now + only used for core files, not ptrace. Therefore, + the KERNEL_U_ADDR hack is no longer needed. + The mapping to ptrace number is now in in mips-xdep.c. + * mips-xdep.c: Define REGISTER_PTRACE_ADDR (using the + mapping from the old REGISTER_U_ADDR), and use it + in {fetch,store}_inferior_registers. + * mipsread.c: Rename #include ecoff.h to new name coff-mips.h. + * mips-tdep.c (mips_push_dummy_frame, mips_pop_frame): + Save/restore FP regs correctly (?). + * dbxread.c: Remove duplicate define_symbol and type_synonym_name + (these had been previously moved to buildsym.c). + Hence, define_symbol becomes extern instead of static. + * buildsym.c (read_struct_type): Comment out bogus handling + of C++ operator methods. Minor hacking of reading of class + contexts. Make define_symbol non-static, so dbxread.c can call it. + +Fri Nov 1 11:05:47 1991 John Gilmore (gnu at cygnus.com) + + * mipsread.c (read_mips_symtab, read_the_mips_symtab): Use real + filename with error messages. + * stack.c (frame_select_command): Rename to select_frame_command + to avoid "fr" and "fra" having nonunique completions. + * symfile.c (sort_symtab_syms): Ignore sort of zero symtab *. + (symfile_init): Print file format name when unable to handle it. + (free_named_symtabs): Use BLOCKVECTOR rather than obsolete BLOCKLIST. + * symmisc.c (free_symtab): Only free linetable if nonzero. + * symtab.h: Remove obsolete BLOCKLIST macros. + +Thu Oct 31 18:12:43 1991 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior): another stepi/nexti fix. Ensure + that stop_step is 1 at bottom of main loop. I don't know why this + needs to be done, but it helps me sleep better at night. + +Sun Oct 27 18:18:39 1991 Stu Grossman (grossman at cygnus.com) + + * main.c (initialize_history): Read history after reading all + init files. + +Sun Oct 27 14:09:25 1991 John Gilmore (gnu at cygnus.com) + + * buildsym.c: Break out initial malloc sizes. + (record_line): Record directly in a subfile. Alloc on demand. + (compare_line_numbers): Add from xcoffread.c. + (end_symtab): New params say whether to sort pendings and + linetable. Patch block stabs if defined. Shrink linetable before + allocating the symtab. + * buildsym.h: Delete line_vector* and prev_line_number. Add + global_stabs and file_stabs for xcoffread. + * dbxread.c (start_subfile): Move to buildsym. Change above calls. + * symtab.h: LINETABLE(symtab) can now be null. Zap LINELIST. + * symmisc.c, symtab.c: Cope with null LINETABLEs. + + * blockframe.c: Pass fromleaf to INIT_EXTRA_FRAME_INFO. + * tm-29k.h, tm-88k.h, tm-i960.h, tm-irix3.h, tm-mips.h, tm-pyr.h, + tm-sparc.h: Accept fromleaf parameter. + * c-exp.y (yyerror): Pass error message if given. + * configure.in: Add rs6000 host and target. + * inflow.c (new_tty): O_NOCTTY kludge for RS/6000. + * symfile.h (entry_point): Add. + +Sat Oct 26 00:16:32 1991 John Gilmore (gnu at cygus.com) + + * buildsym.c: New file. Breaks out symbol-table-building routines + from dbxread.c, so they can be shared with xcoffread.c. + * buildsym.h: New file. Declarations for buildsym.c users. + * dbxread.c: Remove large chunks into buildsym.c. + * Makefile.in: Add buildsym.c and buildsym.h. + + * symfile.c (syms_from_bfd): New routine. + (add_symbol_file): Call it to do the real work. + (syms_from_bfd): Initialize entry_point before calling symfile_init. + * symtab.h, symfile.c, coffread.c, mipsread.c, dwarfread.c: + Avoid declaring or setting entry_point (symfile.h & symfile.c cope). + +Fri Oct 25 10:58:16 1991 Mark Eichin (eichin at cygnus.com) + + * cplus-dem.c (cplus-demangle): added support for templates, static + data, and the new (correct) mangling for destructors. + + * dwarfread.c: (dwarfwarn): created a varargs version of + dwarfwarn, for non __STDC__ compilers. + + * c-exp.y: (yylex): added match for "template" token. + (typebase): added TEMPLATE name '<' type '>' clause, for explicit + specification of template types. + + * symtab.c: (lookup_template_type): new function for finding + templates in symbol table. + (type_name_no_tag): changed to explicitly check for s/u/e at the + beginning of the symbol - if it is a template, none of these will + be there (but the name will still contain spaces.) + +Fri Oct 25 18:59:32 1991 Per Bothner (bothner at cygnus.com) + + Various fixes to improve g++ debugging. + * symtab.h: Add is_const and is_volatile flags for each method. + These are bit fields - take their space from voffset, + which shrinks to 30 bits. Since voffset is now a bitfield, + make it unsigned for portability. This changes its interpretation + slightly: Static methods now have voffset 1 instead of -1, + and virtual offsets start at 2, not 1. + * symtab.c: Renamed gdb_mangle_typename to gdb_mangle_name, + since it now returns an entire magled method name, not just + the type part. This avoids some duplication. + It also allows us to correctly mangle const and volatile + methods (using the new is_const and is_volatile bit fields + mentioned above). + * valprint.c (type_print_base), values.c (check_stub_method): + Simplify by using new gdb_mangle_name. + * values.c (value_headof): Fix to correctly handle single + inheritance (actually two fixes, either of which suffices). + * dbxread.c (read_struct_type): Handle const and volatile + method specifiers. + * dbxread.c (read_struct_type): Yet one more place where + we must handle '\\' continuations. + * valprint.c (vtbl_ptr_name): Add final '\0'. + +Fri Oct 25 16:06:38 1991 Stu Grossman (grossman at cygnus.com) + + * tm-sparc.h, tm-68k.h (EXTRACT_RETURN_VALUE): fix output of + short return values for sparc and 68k. Patch from Paul Eggert. + + * coffread.c, coredep.c, i386-xdep.c: install patches for + SysV/386 3.2 from Mauro DePalma. + +Fri Oct 25 02:02:13 1991 John Gilmore (gnu at cygnus.com) + + * core.c (core_file_info), exec.c (exec_file_info): Print file + type. Use printf_filtered. + + * valops.c (value_fetch_lazy): Avoid 0-length fetches. + +Thu Oct 24 23:06:40 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c: Add casts to remove compiler warnings. + + * tm-3b1.h, tm-68k.h, tm-altos.h, tm-amix.h, tm-hp300bsd.h, + tm-hp300hpux.h, tm-isi.h, tm-news.h, tm-pn.h, tm-sun2.h, + tm-sun3.h: Remove locally duplicated code for calling functions + in the inferior. The only differences were in the specific trap + vectors used and whether or not an fpu was present. These are + now handled by appropriate definitions of BPT_VECTOR and + HAVE_68881 respectively. Other minor obvious cleanups. + + * valops.c: Correct a minor misspelling. + + * utils.c: Remove local BSD/USG hacks that are now in libiberty. + + * dwarfread.c: Remove prototype for dwarfwarn. Does not work + with . + +Thu Oct 24 09:33:44 1991 John Gilmore (gnu at cygnus.com) + + * stack.c (frame_command): Always print. Use new + frame_select_command to select a frame without printing. + + * dwarfread.c: Use , since is not portable. + +Thu Oct 24 01:32:51 1991 Fred Fish (fnf at cygnus.com) + + * dwarfread.c: New file for DWARF debugging format support. + + * elfread.c: New file for ELF object file format support. + + * procfs.c: New file for SVR4 /proc (process file system) support. + + * tm-amix.h, xm-amix.h, tconfig/amix, xconfig/amix: New files for + Amiga UNIX support. + + * xm-svr4.h, tm-svr4.h: New files for SVR4 support. + + * xm-m68k.h: New file for host machines with m68k cpu. + + * Makefile.in: Add elfread.c and dwarfread.c to SFILES_MAINDIR. + Add elfread.o and dwarfread.o to OBS. + + * symfile.h: Add "elf" to list of supported formats in comment. + + * c-exp.y, defs.h, symtab.h, valprint.c: Add three new builtin + types to gdb, builtin_type_long_double, builtin_type_complex, and + builtin_type_double_complex. Add and use new TARGET_SHORT_BIT, + TARGET_INT_BIT, TARGET_LONG_BIT, TARGET_FLOAT_BIT, + TARGET_DOUBLE_BIT, TARGET_LONG_DOUBLE_BIT, TARGET_COMPLEX_BIT, and + TARGET_DOUBLE_COMPLEX_BIT, as the sizes in bits of the indicated + types on the target machine (ala the existing TARGET_LONG_LONG_BIT). + + * infrun.c: When using SVR4 /proc interface instead of ptrace(), + call proc_set_exec_trap() to setup child to stop at first instruction. + + * inftarg.c: When using SVR4 /proc interface, call proc_wait() + rather than wait(). + + * m68k-tdep.c: Add new routines supply_gregset(), fill_gregset(), + supply_fpregset(), and fill_fpregset(), which are machine + dependent support routines for SVR4 /proc interface. + + * utils.c: Add warning_setup() and warning(). Warning() behaves + the same as error() except that it returns normally rather than + jumping back to command level. Modules that don't want to call + warning() for some reason, but want to produce their own warnings, + can call warning_setup() to ensure compatibility with the way + warning() and error() deal with the terminal. + + * symtab.c: Make internal errors produce more useful messages. + + * tm-68k.h: Move code that is duplicated in almost every single + m68k based machine's configuration files to this common file. + Duplications in the configuration files still need to be removed + (FIXME). + + * infrun.c (child_create_inferior): System V versions must call + setpgrp() with no arguments, to comply with prototyping typically + in . + + * munch: Add support for SVR4 style nm output. + + * dbxread.c, mipsread.c symmisc.c, symtab.c: Remove the object + file specific fields from the partial symbol table structure and + replace them with a pointer to private data for each different + flavor of object file reader to initialize appropriately. + +Wed Oct 23 09:38:20 1991 John Gilmore (gnu at cygnus.com) + + * xconfig/sun[34]os4: Add note about strstr botch on sunos4.0.3c + and previous. + + * mipsread.c (fixup_undef_type): New function. If a struct / + union / enum is defined in a header file but nowhere else used, + (by typedefing, pointer referencing or declaration) the mipsread code + builds the complete tree for the structure but leaves its code as + TYPE_CODE_UNDEF as it doesn't know what kind of aggregate it is. + Guess its type based on the details of the members. + +Tue Oct 22 18:04:32 1991 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior): Check return value from + find_pc_line. + +Mon Oct 21 17:47:03 1991 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior): fix stepi/nexti that was broken + by my last edit to this routine. + +Mon Oct 21 14:27:43 1991 John Gilmore (gnu at cygnus.com) + + * tm-sun3.h (FIX_CALL_DUMMY): problem with cross debugging. + FIX_CALL_DUMMY does unaligned accesses and/or forgets to byte swap + the values before putting them into the dummy code. (From Peter + Schauer) + +Mon Oct 21 10:04:39 1991 Steve Chamberlain (steve at rtl.cygnus.com) + + * configure.in: added ebmon target. + +Wed Oct 16 22:49:58 1991 John Gilmore (gnu at cygnus.com) + + GDB-4.2 release! + + * Makefile.in: Roll VERSION to 4.2. + * README, TODO, WHATS.NEW: Update. + + * core.c (core_open): Improve error message for bad file. + Pass .reg virtual memory address to fetch_core_registers to help + it find the registers in the core-file header. + * coredep.c (fetch_core_registers): Take new argument, use it, + and pass it to register_addr to locate the block of registers. + * xm-mips.h: Update KERNEL_U_ADDR for new scheme. Cleanup a bit. + + * dbxread.c (read_dbx_symtab, process_one_symbol): Handle + Sequent N_FN_SEQ like everybody else's N_FN. + + * main.c: Circumvent SCO cc bug with #if !!defined(USG). + * tm-i386v.h: #endif guck. + * xconfig/i386*: Remove -Dgetpagesize()=4096 kludge. + * xconfig/i386sco: Add HAVE_STRSTR to avoid ANSI bdeath. + * xconfig/tahoe: Add REGEX, which seems to be missing. + + * coredep.c: Add for SCOnix. + * dbxread.c (read_dbx_symntab): Avoid coredump on malformed file. + * printcmd.c (print_formatted): Flush output before disassembly. + +Tue Oct 15 20:12:32 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * doc/refcard.tex (sec "Working Files"): consistent metavars and + other improvements, due to comments by François Pinard + (pinard@iro.umontreal.ca) + + * doc/gdb.texinfo (appendix "Installing GDB"): changes in + configure, and improvenets related to Pinard's refcard comments + +Tue Oct 15 08:45:12 1991 John Gilmore (gnu at cygnus.com) + + Changes from Fred Fish: + * tm-68k.h (FPI_REGNUM): Add. + * infrun.c (child_create_inferior): flush stdout and stderr + before forking. + * configure.in: Handle amigados, amix hosts and targets. + * inflow.c: Handle TIOCGLTC_BROKEN for Amiga. + + From Andreas Schwab: + * values.c (show_convenience): Use printf_filtered. + * main.c (define_command): Check result of lookup_command for + exact match. + (echo_command): Use printf_filtered, and force output out. + + * dbxread.c (read_enum_type): Avoid Modula-2 kludge that breaks C + programs. + * i387-tdep.c (double_to_i387): Fix typo for double_to_ieee_extended. + * utils.c (_initialize_utils): If !ISATTY, don't paginate. + * configure.in, tconfig/decstation, xconfig/decstation: Rename + dec3100 to decstation. + +Mon Oct 14 13:37:50 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/gdb.texinfo: Catch up to changes recorded here in ChangeLog + (nodes Continuing and Stepping; Memory; Targets) clarifications + due to Larry Breed + +Fri Oct 11 23:27:06 1991 John Gilmore (gnu at cygnus.com) + + * tm-{irix3,mips,nindy960,pn,symmetry,vx960}.h: Move + REGISTER_U_ADDR to corresponding xm- file. Sugg. by Peter Schauer. + + * symmisc.c (print_partial_symtabs): Add printpsyms debug cmd. + + * m68k-tdep.c (m68k_push_dummy_frame, m68k_pop_frame): Add + generic routines for calling inferior functions. + + * blockframe.c (inside_main_scope, inside_entry_scope): New. + + * copying.awk: Filter formfeeds out of copying & warrantee. + Make them available as `show copying' and `show warrantee' also. + * main.c (print_gnu_advertisement): Advt `show' commands. + +Thu Oct 10 17:25:47 1991 John Gilmore (gnu at cygnus.com) + + * mach386-xdep.c: Even when cross-compiling, leave in the + core-file reading code. + * core.c (get_core_registers): Avoid coredump if no .reg section. + +Wed Oct 9 17:03:34 1991 John Gilmore (gnu at cygnus.com) + + * mipsread.c, coffread.c: initialise TYPE_VPTR_FIELDNO to -1. + This avoids coredumps under `set print object on' in value_headof + (called erroneously by value_from_vtable_info) for `p &struct' + or `p *struct'. From Peter Schauer. + +Mon Oct 7 00:06:52 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll version to 4.1.2. + * dbxread.c: Use aout64.h, not a.out.gnu.h. Get external symbol entry + size from BFD (but, FIXME, we don't yet read external nlists's and + convert them to internal nlists's before handling them -- we still + assume they have the same size and alignment.) Use SET_NAMESTRING + everywhere useful. + * exec.c (exec_file_command): Move dead coff-encapsulation code + to BFD. + * m88k-tdep.c, m88k-xdep.c: Remove encap test and #inc . + +Fri Oct 4 22:30:06 1991 John Gilmore (gnu at cygnus.com) + + * configure.in, tm-i386v.h, xm-i386v.h: Intel 386 Mach host port. + * xm-i386mach.h, mach386-xdep.c, xconfig/i386mach: New files. + +Fri Oct 4 17:04:31 1991 Per Bothner (bothner at cygnus.com) + + More patches from Peter Schauer : + * mips-xdep.c (store_inferior_registers): Don't try to + write the (pseudo) FP. + * mipsread.c (parse_partial_symbols): Improved algorithm for + setting pst->texthigh. + +Fri Oct 4 16:47:32 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/Makefile: make TEXINPUTS include . everywhere + +Fri Oct 4 00:35:56 1991 John Gilmore (gnu at cygnus.com) + + * coffread.c, dbxread.c, symfile.c, symmisc.c, symtab.h: Remove + vestiges of typevectors, which were for symsegs and are no longer + used. (From a question by Eliot Dresselhaus + ). + +Thu Oct 3 09:33:26 1991 John Gilmore (gnu at cygnus.com) + + * dbxread.c, coffread.c: static-ize functions that were + gratuitiously external. (From Fred Fish.) + + * c-exp.y: sym->class to SYMBOL_CLASS (sym). + + * dbxread.c (dbx_lookup_type): Keep doubling size of typevector + until it is large enough. + + * dbxread.c (read_type): Handle error case slightly better. + Make complaint message not C++-specific. + +Wed Oct 2 17:21:07 1991 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior): Fix step/next so that you only + stop at the beginning of a new line. This fixes various problems + with for loops, nested if-else's and switch statements. + +Tue Oct 1 06:33:55 1991 John Gilmore (gnu at cygnus.com) + + * symtab.c (lookup_symtab_1, lookup_symbol): "fatal" errors + between symtabs and psymtabs become ordinary error()s. + + * dbxread.c (read_dbx_symtab): Relocate end_of_text_addr + properly, making "end pc" correct in shared lib psymtabs. + (From Guy Harris .) + +Mon Sep 30 13:15:31 1991 John Gilmore (gnu at cygnus.com) + + * dbxread.c: Enable, but soften, const_vol_complaint. + (read_dbx_symtab): N_STSYM and N_LCSYM define static vars. + Ditto Gould N_NBSTS and N_NBLCS. Also, all types in the psymtab + should be file-scope, not global. + (read_struct_type): Remove ancient multiple-inheritance warning. + (read_range_type): Check base type, complain & patch if undefined. + * stack.c (frame_info): Demangle the function name in `info stack'. + (From Peter Schauer) + +Sat Sep 28 10:02:33 1991 John Gilmore (gnu at cygnus.com) + + * eval.c (evaluate_subexp_for_address): Don't use + TYPE_POINTER_TYPE directly (it might be zero if this type has + never had a pointer created before); use lookup_pointer_type. + * symtab.c (lookup_method_type): Arguments were swapped in all + callers, so fix it here. I'm amazed this worked at all! + +Fri Sep 27 18:09:31 1991 John Gilmore (gnu at cygnus.com) + + * c-exp.y, m2-exp.y: Define more yysymbols that happen to be + "bss" rather than "data" symbols, but which still conflict. + * m2-exp.y: Lint. + + * coffread.c (coff_symfile_read): Use xmalloc, not malloc. + * core.c (core_files_info): Shorten output. + * exec.c (exec_files_info): Ditto. + (build_section_table): Ignore zero-length sections. + * language.c, printcmd.c: Lint. + * language.h (get_frame_language): Declare. + * saber.suppress: update. + * stack.c (find_relative_frame): Remove complex code that was + #if 0'd, stick with simple code. Lint. + * saber.suppress: Update a bit. + * symfile.c (add_symbol_file_command): Add "?" to question. + * utils.c (parse_escape): Avoid \a due to bdead compilers. + * value.h: Declare typedef_print. + + * valprint.c (val_print, type_print_base): TYPE_CODE_RANGE less + kludgey. + + * nindy-tdep.c (nindy_frame_chain_valid): Use lookup_misc_func. + (Reported by Mark Peek .) + + * solib.c (solib_map_sections): Relocate all sections, even + though only the text section's size is tracked. Mark ld_text + for eventual elimination as we generalize to N sections. + + * infrun.c (wait_for_inferior): Don't check if the PC is in a + call_dummy if we were stopped by a random signal that is being + passed to the program. This produced wierd results when calling + functions in the inferior and signals (e.g. SIGALRM) were in use. + +Tue Sep 24 18:05:30 1991 John Gilmore (gnu at cygnus.com) + + * infrun.c (IN_SIGTRAMP): Not parenthesized properly. + Bugfix from Paul Eggert . + * tm-ultra3.h (IN_SIGTRAMP): Ditto. + * valprint.c (print_floating): Print 9 digits for IEEE floats. + From Paul Eggert. + +Mon Sep 23 15:50:07 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll VERSION to 4.1.1. + * source.c (line_info): Peter Schauer fixes a bug I introduced in + hex conversion. + +Fri Sep 20 16:10:52 1991 John Gilmore (gnu at cygnus.com) + + GDB-4.1 release! + + * Makefile.in (VERSION): Set to 4.1. + * language.c (set_language_command): Print useful help message, + and restore the language string after giving help. + * valprint.c (typedef_print): Print typedef in C or M2. + * symtab.c (list_symbols): Use it. + * main.c (main): Avoid any output before (gdb) prompt when -q. + * language.c (set_language_command): Handle errors by restoring + the language string to its current state (fix from A. Beers). + * doc/gdbint.texinfo: Roll in information from README. Rearrange + "how to install" and "how to print the doc" stuff so it drops + easier into README. + * configure.in: Rename rtpc CPU to romp to match config.sub. + * README, WHATS.NEW, TODO: Update for gdb-4.1. + +Fri Sep 20 17:39:14 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/gdb.texinfo: Updates from ChangeLog. set/show write, + autoloading shared libs, copyright etc on GDB startup, clean up $_ + and $__ index refs, set/show listsize and related updates to list + cmd. New host/target configs. + +Fri Sep 20 15:46:00 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/Makefile: generate aux version-no file doc/gdbVN.m4 + from main Makefile.in version definition + doc/gdb.texinfo: use version recorded in doc/gdbVN.m4 for current + GDB version no refs + Makefile.in (setup-to-dist): generate doc/gdbVN.m4 + + * doc/gdb.texinfo: merge new language-switching and lang-specific + doc by Andrew Beers + +Fri Sep 20 15:00:57 1991 Per Bothner (bothner at cygnus.com) + + * mcheck.c: Add __ONEFILE kludge to allow compilation by non-ANSI + compilers (which may lack stddef.h). + +Fri Sep 20 13:29:42 1991 John Gilmore (gnu at cygnus.com) + + * dbxread.c (read_dbx_symtab, process_one_symbol): N_FN and + N_WARNING are the same except for the N_EXT bit, so just use their + values alone, rather than OR-ing them with N_EXT. + +Fri Sep 20 12:27:55 1991 Stu Grossman (grossman at cygnus.com) + + * mipsread.c (parse_lines): Deal with negative extended line + offsets correctly. + + * c-exp.y, m2-exp.y: #define yyerrflag and yynerrs to avoid + global symbol conflicts. + +Fri Sep 20 02:28:15 1991 John Gilmore (gnu at cygnus.com) + + * .gdbinit: Move 'set complaints' to top, so it runs even in + case we aren't debugging GDB. + * language.c (_initialize_language): Fix type check and range + check documentation strings. + * utils.c (!HAVE_VPRINTF): Define vfprintf as a function, so + language.c can use it. (Though language.c should really not be + handling warnings/errors the way it does, FIXME.) + * symtab.c (lookup_primitive_type): const lint. + + Bugfix from Peter Schauer: + * source.c (lines_to_list): Make signed, to avoid comparison + going unsigned and complaining that -3 is too high for 21 lines. + * stack.c (lines_to_list): Ditto. + +Thu Sep 19 23:33:41 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in (HFILES): Add minimon.h. + (VERSION): Roll version number to 4.0.95. + (gdb.tar.Z, make-proto-gdb.dir, setup-to-dist, gdb-XXX.tar.Z): + New rules for building distributions. Normal distribution + is built by doing `make -f Makefile.in gdb.tar.Z' in the directory + one level up from here; it calls make-proto-gdb.dir to build a + directory `proto-gdb' which is an image of the release. The old + `gdb.tar.Z' rule still works too. + * config.sub, configure: Roll in latest from .. + +Thu Sep 19 17:41:24 1991 Roland H. Pesch (pesch at cygnus.com) + + * doc/gdbint.texinfo: Reorder contents; reorganize new-host, + new-target, and new-config chapters; fix minor typos; come closer + to usual GNU markup conventions for @file @samp @code @var. + +Thu Sep 19 17:04:12 1991 Per Bothner (bothner at cygnus.com) + + Patches from Peter Schauer : + * mipsread.c (parse_partial_symbols): Enter the name of all + structs/unions... into the psymtab so we can access them if the + symtab is not read in. + * mips-tdep.c: Remove some unneeded #includes. + * xconfig/dec3100: Add HAVE_STRSTR. + +Thu Sep 19 15:14:23 1991 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Circumvent Sun Make bug on *-exp.tab.o. + * c-exp.y, m2-exp.y: Lint. + * m2-exp.y: Avoid using yytname[] which is a Bison-ism. + * valprint.c (val_print_fields): Check for stub type. + * mipsread.c (_initialize_mipsread): Avoid using + builtin_type_void at initialize time. + (mipscoff_symfile_read): use it now. + +Wed Sep 18 15:55:51 1991 John Gilmore (gnu at cygnus.com) + + Merge multiple-language support, and partial Modula-2 support, + from Andrew Beers . + + * i387-tdep.c: New file, consolidates most 80387 support, + and eliminates host dependency on double<->extended conversions. + * i386-xdep.c, symm-xdep.c: Remove most 387 support. + * xconfig/i386{sco,v,v-g,v32,v32-g}: Now need i387-tdep.o. + + * symfile.c (allocate_symtab): New fn, consolidates the work + of allocating and initializing a new struct symtab. Set the + language of the symtab based on its filename extension. + * symfile.h: Declare it. + * mipsread.c (new_symtab): Use it. Minor formatting changes. + * dbxread.c (end_symtab): Use it. + + * mipsread.c (parse_symbol, case stParam and stProc): Add #if 0'd + code for saving types of parameters with each function definition. + * dbxread.c (define_symbol, function and parameter cases): Ditto. + (read_dbx_symtab, case N_DEFD): Ignore. + (read_enum_type): Recognize FALSE/TRUE enum as Modula-2 BOOLEAN. + (read_range_type): Rename MAX_OF_TYPE to MAX_OF_C_TYPE, etc. + #if 0 out its uses, though, since they set a dead value. + * coffread.c (end_symtab): Use allocate_symtab. + (process_coff_symbol): #if 0'd for functions and params as above. + (read_enum_type): Recognize Modula-2 BOOLEAN. + * symtab.c (add_param_to_type): #if 0'd function to add a + parameter type to a function type's field list. + + * defs.h (local_hex_format, local_hex_string, *_custom): Add. + * i386-xdep.c, pyr-tdep.c, pyr-xdep.c, remote-vx.c, solib.c, + source.c, symfile.c, dbxread.c, breakpoint.c, core.c, exec.c, + i387-tdep.c, infcmd.c, mips-tdep.c, stack.c, printcmd.c: Output + hex with local_hex_string for Modula-2 support. + + * breakpoint.c (breakpoint_cond_eval): Use new value_true to test + breakpoint condition language-independently. + + * parse.c: New file with the common code remains of expread.y. + * parser-defs.h: New file with common declarations from expread.y. + * c-exp.y: New file with the C parser from expread.y, and other + language-specific information. + * m2-exp.y: New file with the Modula-2 parser and etc. + * expread.y, expread.tab.c: Remove. + * breakpoint.c, eval.c, printcmd.c, expression.h: Use + parse_expression and parse_exp_1 rather than parse_c_expression + and parse_c_1. + + * symtab.h (enum languages): Move to defs.h. + (enum type_code): Add TYPE_CODE_CHAR and TYPE_CODE_BOOL. + Declare Modula-2 builtin types. + Add MAX_OF_TYPE and MIN_OF_TYPE macros. + + * symtab.c (_initialize_symtab): Remove builtin type + definition and initialization to *-exp.y. + (lookup_primitive_typename): Use language-dependent vector. + (lookup_typename): Fix bug, make it work if primitive typename. + (lookup_unsigned_typename): Call above. + (create_array_type): Set up range type for array index. + (list_symbols): Call typedef_print to print typedefs. + + * values.c (unpack_long, value_from_longest): Handle + TYPE_CODE_BOOL and TYPE_CODE_CHAR. + + * expression.h (enum exp_opcode): Add Modula-2 specific opcodes. + * expprint.c: Look up expression opcodes in language-specific + table, based on expression's language. Handle some Modula-2 + specific opcodes. + + * stack.c (frame_info): Print language of stack frame. + (select_frame): Also select language, if in auto-mode. + (get_frame_language): New subroutine. + * main.c (execute_command): Warn as language changes automatically. + + * printcmd.c (ptype_command): Parse types using the language + parser, both for language-independence, and so that scopes can + be specified. + + * language.h, language.c: New files for language-specific macros, + declarations, and definitions. + + Misc fixes: + + * main.c (main): If error() is called during early + initialization, print its message and then exit(1) from GDB. + + * valprint.c (type_print_base): Avoid printing garbage for ints + of unusual sizes. + (_initialize_valprint): Warn about host/target size assumption; + improve long long support slightly. + + * convex-tdep.c (comm_registers_info): Avoid parsing decimal and + hex -- let parse_and_eval_address do it. + + * doc/gdbint.texinfo (Languages): Doc how to add a language. + + * Makefile.in: Cope with new files and removed files. + +Tue Sep 17 08:37:41 1991 John Gilmore (gnu at cygint.cygnus.com) + + Add Andrew Beers' changes for Modula-2 support. His ChangeLog + entries are enclosed herein. Not all of these changes + have been merged into the master GDB sources -- check the + ChangeLog above here for the merge log. + +Mon Jun 3 17:05:45 EDT 1991 + + m2-exp.y Created. Tested outside of GDB for a few days. Proper + operators were added, C specific operators and tokens + removed. yylex() revamped to some extent. Still things + missing from the grammar, such as sets. + Tested for two weeks in GDB v3.5. + +Tue Jun 11 17:23:48 EDT 1991 + + m2-exp.y Added boolean constants TRUE and FALSE to the grammar + so they are built-in. Sort of a hack. + +Fri Jun 14 12:53:51 EDT 1991 + + m2-exp.y Added range checking for numeric constants. Any numeric + constant is assumed to be of builtin type INTEGER unless: + (1) it is octal or hexadecimal, in which case it is a + CARDINAL; (2) it is too big to fit into an INTEGER, in + which case it is a CARDINAL. + eval.c Added simple range checking for +, -, and * on integers. + Doesn't work very well for *, since 6 * 1,000,000,000 = + 1,705,032,704, which fails the simple test of result >= + first_operand, no matter in what order the operands are. + +Tue Jun 18 14:11:30 EDT 1991 + + Broke the parser into parts, one containing the C grammar and the other + containing code to be shared by all of the grammars. + + The following files no longer exist: + + expread.y + expread.tab.c + + The following files were added: + + c-exp.y (The C grammar) + m2-exp.y (The Modula-2 grammar) + parser-code.c (Code that is shared by the above grammar) + parser-code.h + parser-defs.h + + Makefile.dist Changed to reflect the above dependencies. NOTE: It is + now necessary to use the Bison compiler compiler, since it + will generate function/variable prefixes other than yy. + +Tue Jun 18 16:47:49 EDT 1991 + + symtab.[ch] Added the external variable working_lang, than holds the + value of the current working language. + Added the ennumerated type language_mode, with the values + language_auto and language_manual, the former meaning that + GDB sets working_lang as needed, and the latter meaning + that the value of working_lang is totally under user + control. + symtab.[ch] Added the Modula-2 pervasive types INTEGER, CARDINAL, + REAL, BOOLEAN and CHAR. Also added the type codes + TYPE_CODE_BOOL and TYPE_CODE_CHAR. + utils.c Added set_language_command and show_language_command to + implement the GDB support commands "set language" and + "show language". + expression.h A number of identifiers were added to the type exp_opcode + to facilitate Modula-2 builtin functions, integer + division, and array indexing. + +Wed Jun 19 13:25:58 EDT 1991 + + language.h Added the macro STRICT_TYPE, which evaluates to non-zero + if the language specified by working_lang requires the use + of strict typing of expressions. Eventually, even this + will be able to be changed by the user. + Added the macro RANGE_CHECK, which evaluates to non-zero + if the language specified by working_lang requires the + checking of a value against the domain of its type. + Eventually, even this will be able to be changed by the + user. + language.[ch] Predicates involving types (simple_type, ordered_type, + same_type, integral_type, numeric_type, character_type, + boolean_type, float_type) are added. These predicates are + based on the current value of working_lang, and are handy + in type-checking. + +Wed Jun 19 15:39:34 EDT 1991 + + eval.c Added the function type_array_rank which computes the rank + of an array type. + valarith.c Added the funtion value_bool, which when given a integer + value.h value (ie. struct value *) as an argument, it returns a + boolean value (ie. struct value *) true if that integer + is non-zero, and a boolean value false otherwise. + valprint.c Added cases for TYPE_CODE_BOOL, so Modula-2 BOOLEAN values + will print out properly. + +Wed Jun 19 16:36:34 EDT 1991 + + valops.c Added the function value_capitalize, which returns it + value.h argument capitalized if its argument is a lowercase + letter, or the argument unchanged if its argument is not a + letter. + valarith.c Added the function range_check_p, which returns non-zero + value.h if its value argument is between the integral bounds upper + and lower. + Added the function range_check_enum_p, which makes sure + that its value argument is a valid member of the domain of + its type argument. + Added the function range_check_range_p, which makes sure + its value argument lies between the upper and lower bounds + of its type argument, which must be a ranged type. + Added the function check_array_index, which range and type + checks an index of an array. + Added the function value_multi_subscript, which computes + array[idx1,idx2...idxN], given a value array and an array + of values representing indicies. + values.c Changed value_from_long to work with TYPE_CODE_CHAR and + unpack_long to work with TYPE_CODE_BOOL and + TYPE_CODE_CHAR. + +Wed Jun 19 18:04:08 EDT 1991 + + symtab.c Stored pervasive types in a structure and make + lookup_pervasive_type() a lookup function that was based + on working_lang. If lookup_pervasive_type() returned + non-zero, then that value was returned (a fix, since + before it simply wouldn't return the pervasive type.) + language.h Added the macro CAST_IS_CONVERSION, which evaluates to + non-zero if the language specified by working_lang means + "conversion" when it says "cast". + valops.c Added the function value_real_cast(), which performs a + value.h *cast*, not a *conversion*, which is what value_cast() + does when it can. In particular, + value_cast(,4) = 4.0, while + value_real_cast(,4) = some mess. + eval.c Modula-2 builtin functions implemented: ABS, CAP, CHR, + parser-code.c FLOAT, HIGH, MAX, MIN, ODD, ORD, TRUNC, and VAL. + expression.h Added macros MAX_OF_TYPE and MIN_OF_TYPE to work with MAX + and MIN on integral types. *NOTE*: These are currently + hardcoded to work only if there are 8 bits per storage + unit. FIXME. + eval.c Made logical functions call value_bool to return a + properly typed boolean value, based on working_lang. + +Thu Jun 20 11:55:27 EDT 1991 + + valprint.c Types now print out in a Modula-2 fashion. This works for + the cases when the type is printed out step-by-step, that + is, it doesn't work when the name of a structured type + (which includes the keyword "struct", etc.) is simply + displayed. + FIXME: Perhaps this is bad. Parts of it seem to kludgey, + since type specifications in C and Modula-2 are very + different. The C printing of a type is very recursive, + whereas in Modula-2 it is generally very simple. C has + type prefixes and suffixes, which have no real analogue in + Modula-2. Maybe type_print() should call a language + specific type printer. This is also advantageous if we + compile GDB to exclude some of the languages. We'll just + leave those functions out. + +Thu Jun 20 16:57:10 EDT 1991 + + dbxread.c When reading the complete symbol table in (via + psymtab_to_symtab()), the number and types of function + arguments are added to a function type. define_symbol() + calls add_param_to_type() to accomplish this. + Assumption: when we come across a function definition + (N_FUN symbol with an 'f' or 'F' in the name), its + arguments will appear before another function definition. + When a function is found, a pointer to its type is placed + in the global in_function_type. Changes that + add_param_to_type() makes are to this global. + valprint.c The type of a function now includes (for Modula-2) the + types of its parameters. + eval.c Type checking and a check for the proper number of + arguments is now done for function calls. Not sure of the + impact this has on C++ member function yet. + +Thu Jun 20 19:58:48 EDT 1991 + + valprint.c Rewrote the type printer. Broke it into two language + specific parts, adding the functions type_print_m2() and + type_print_m2_1(). + An unfortunate consequence is this: if you debugging a C + program in Modula-2 mode (why?), info types does not work + well with regular expressions, since the types are printed + out in Modula-2 terminology, but stored in C terminology. + language.[ch] Added the functions new_type_last(), type_keyword(), and + type_sep() to aid in the printing of typedefs. + symtab.c Made the printing of typedefs as language independent as + possible through calls to new_type_last(), type_keyword(), + and type_sep(). + +Fri Jun 21 11:50:26 EDT 1991 + + dbxread.c Check all incoming ennumerated types. If it looks like + Modula-2's BOOLEAN type, then change the type_code of the + type to TYPE_CODE_BOOL so we can process it as a boolean + variable. + valprint.c Replaced some of the 0x%x with calls to sprintf and + hexformat() in val_print(). + language.[ch] Added the function hex_to_string(), which converts its + integral argument to a hexadecimal number (format is + language based) and returns the result as a string. + +Mon Jun 24 12:25:07 EDT 1991 + + valprint.c Some functions call type_print_1() directly, instead of + value.h using type_print(), so they can specify where (column) to + print things. Since type_print() takes care of language + dependence, that needs to be called first. Added a + parameter depth to type_print() (so it is now like + type_print_1). Changed type_print to type_print_at, and + made type_print a macro that passes a depth argument of + zero. + symmisc.c Changed all calls to type_print_1 to calls to + type_print_at. + Makefile.dist Made it possible to build GDB for a specific set of + depend languages. Do this by passing a definition for the macro + LANGS to make. LANGS should be a string containing a + space-separated list of language names (ie. LANGS="c m2"). + The default is to build all languages. Note that grammar + files must follow the naming convention of -exp.y. + gdb.lang This holds the current value of the LANGS macro. It is + examined every time make is called, and is updated if + necessary. + eval.c Added #ifdef _LANG_ to these files. + expread.c Still need to add them to dbxread.c and coffread.c. + main.c + source.c + symtab.c + utils.c + valarith.c + valprint.c + +Mon Jun 24 16:33:11 EDT 1991 + + language.[ch] Added the functions hexformat_pre() and + hex_to_string_pre(), which take a prefix argument to + include in the format string. Thus, hexformat_pre("08") will + return "0x08x" (if the working language is language_c). + Made hexformat() and hex_to_string() calls to the above + with "" as the prefix argument. + + am29k-pinsn.c, arm-pinsn.c, breakpoint.c, convex-tdep.c, exec.c, core.c, + dbxread.c, i386-pinsn.c, i386-stub.c, i386-xdep.c, i960-pinsn.c, + infcmd.c, inflow.c, m68k-pinsn.c, m68k-stub.c, m88k-pinsn.c, + mips-pinsn.c, mips-tdep.c, ns32k-pinsn.c, printcmd.c, pyr-pinsn.c, + pyr-tdep.c, pyr-xdep.c, remote-vx.c, remote.c, solib.c, source.c, + stack.c, sun386-xdep.c, symfile.c, symm-xdep.c, symmisc.c, tahoe-pinsn.c, + valprint.c, vax-pinsn.c + + Changed all occurences of 0x%[0-9]*l*x in printf format strings to + calls to hexformat() and hex_to_string(). Format strings without + the leading "0x" were ignored. + + depend Updated to take the above into account. + + +Tue Jun 25 15:27:18 EDT 1991 + + symtab.h Added the types range_mode_t, range_check_t, type_mode_t, + and type_check_t to keep track of the current state of + range and type checking. + main.c Added the variables range_mode, range_check, type_mode, + and type_check to record the current state of range and + type checking. Added initialization code to main(). + language.h Changed the macros STRICT_TYPE and RANGE_CHECK to examine + the above variables. + + +Tue Jun 25 17:57:08 EDT 1991 + + dbxread.c process_one_symbol() updates the variable (enum language) + source_lang based on the extension of the filename + contained in the N_SO sybmol that started this symtab. + When end_symtab() is called, the value of source_lang is + put into the language field. + stack.c select_frame() sets working_lang (and possibly type_check + and range_check) to the language field of the symtab + associated with the frame that is selected if working_mode + is language_auto. If working_mode is language_manual, a + warning is printed and working_lang is not set. + language.c Added the function set_type_range(), which sets the value of + type_check and range_check (if their modes call for + automatic setting) based on the current value of + working_lang. A non-zero argument will cause the current + settings to be output. + + +Wed Jun 26 14:51:40 EDT 1991 + + eval.c Added range checks on assignment. + m2-exp.y Added the grammar for sets to the language. Currently, + these do not do anything except print an error message. + +Wed Jun 26 17:01:04 EDT 1991 + + m2-exp.y Added the ability for parse_number() to parse negative + numbers. A global flag is set upon encountering a unary + minus. This was done to make, for example, 1 parse as a + CARDINAL, and not as an integer, per Wirth's examples in + Programming in Modula-2 ed.4. + valprint.c Added support for "set radix 2" by then setting + output_format to 't'. + eval.c Implemented range checking on subrange types. Added calls + to range_check_range_p for BINOP_ASSIGN and BINOP_VAL. + Implemented MIN and MAX for ennumerated types. The + minimum value of an ennumerated type is defined by Wirth + as the first identifier, and the maximum as the last. + m2-exp.y Made octal numbers ending with "B" be characters and those + ending with "C" be numbers, per Wirth's book. (p. 34) + +Thu Jun 27 14:11:52 EDT 1991 + + stack.c select_frame() now only sets working_lang, it does not + notify the user. If working_mode is language_manual, then + a warning is issued once. + main.c At the end of each call to execute_command(), working_lang + is checked against the local static (enum language) + current. If they differ and working_mode is + language_auto, the new settings of language, type and + range checking are printed out. + stack.c Modified frame_info() to include the language of the + current frame in the output of "info frame". + language.[ch] Added the function language_str() which returns the name + of the current language. + +Fri Jun 28 15:33:14 EDT 1991 + + m2-exp.y Added the built-in procedures INC, INCL, DEC, and DECL to + the language. INCL and DECL currently cause an error, + since sets are not implemented yet. INC and DEC are + implemented as PREINCREMENT/PREDECREMENT with one + argument, and as ASSIGN_MODIFY with two arguments. + eval.c Added type checking to the above cases. + value.h Added not_lval_constant to the lval_type ennumerated type. + not_lval_constant means that the value is a constant + value; that is 3 or 'a' or TRUE, not as in a constant + identifier. This is used to help coerce numbers such as 3 + to either signed or unsigned numbers. + valops.c Added the function value_coerce_constants() which coerces + constant integers as following: if one is a constant and + the other is not, the constant's type is set to the type + of the other argument. If both are constants and one is + signed, the other is converted to a signed constant. + +Sat Jun 29 17:26:29 EDT 1991 + + valarith.c Added a better range checker. It now checks range + (successfully) on integral operations [+-] (signed and + unsigned) for any C sized type. Still does not work well + for multiplication.) + int_in_size() returns an integer that is coerced to fit into + specified number of bytes. + +Mon Jul 1 13:04:14 EDT 1991 + + language.[ch] Added the function binop_result_type(), which returns the + builtin (struct type *) type that would be the result of a + binop on the two values V1 and V2. + +Wed Jul 3 19:22:53 EDT 1991 + + source.c Extended source_info() to include the source language in + the output from "info source". + +Fri Jul 5 13:48:52 EDT 1991 + + utils.c Moved the support functions for the GDB set/show commands + dealing with language into language.c. + language.c Added the function language_info(), which displays info + about the current working language, type and range check + settings. Called via the GDB command "info language". + Added an initialization routine _initialize_language(), + that sets defaults for the language, type and range + variables and sets up the new GDB commands. + main.c Language setup moved to language.c. + depend Rebuilt. + +Mon Jul 8 10:10:22 EDT 1991 + + valarith.c Debugged the range checker for arithmetic. Still does not + work for multiplication very well. + +Mon Jul 8 12:40:37 EDT 1991 + + language.[ch] Added the function value_true() which returns non-zero if + its argument represents a boolean true value. + breakpoint.c Changed breakpoint_cond_eval() to call value_true() to + check the truth of an expression. + +Thu Jul 11 12:51:34 EDT 1991 + + language.[ch] Added the predicate structured_type(), which returns + non-zero if the argument is a structured type. + Added the predicate pointer_type(), which returns non-zero + if the argument is a pointer type. + eval.c Added the ability to do addition and substraction on + pointers and integers. This case simply bypasses the + type checker. + +Thu Jul 11 14:41:42 EDT 1991 + + include/stab.def + Added the symbol N_DEFD (0x4a) which is a definition + module dependency that is used by the GNU Modula-2 + compiler and the linker. It is not important to GDB, + except that [dbx|coff|mips]read.c should ignore these + symbols. + +Fri Jul 12 16:07:00 EDT 1991 + + valprint.c Changed the TYPE_LENGTH(type) >= 0 to TYPE_LENGTH(type) > + 0 in val_print(). Also added statements to the else part + to coerce type (argument to val_print) to a pointer type + if it is an "array of unspecified length". + valops.c Added the function value_m2_string(), which returns a + (value) value which is a constant string, whose type is + (ARRAY [0..n] OF CHAR). The length field of the type + structure is set to zero, so it will be interpreted as an + "array of unspecified length". + stack.c Moved the language/frame mismatch check to + main.c:execute_command(). + main.c The working language is recorded each time + execute_command() is executed. If working lang has + changed during its execution, then the new + language/type/range info is printed out for the user. If + the working language does not match the language of the + frame, a warning is issued. + +Sat Jul 13 16:16:39 EDT 1991 + + eval.c Moved all the type-checking stuff for operators to + language.[ch] language.c. This is so we can keep language-specific + stuff (like for what type operators are defined) in + language.c. + language.[ch] Added the function binop_type_check(), which checks to see + if its two (value) arguments are type-compatible with its + opcode argument. The opcode should represent an operation + involving an operator. Also added the macro function + unop_type_check, which calls binop_type_check with a + NULL second argument. + expprint.c Added Modula-2 operators to the op_print_tab, so info + expression.h break works correctly. Also added "op_string", which + returns the string corresponding to the (enum exp_opcode) + opcode that is its argument. + + +Sat Jul 13 18:26:18 EDT 1991 + + coffread.c Added code to record the type of function arguments with + each paricular function. Code is very similar to that + added to dbxread.c. + dbxread.c Moved add_param_to_type() to symtab.c + symtab.[ch] Added function add_param_to_type() from dbxread.c + + *** NOTE: The above additions have not been tested. + +Mon Jul 15 12:50:47 EDT 1991 + + langauge.[ch] Added the functions type_error and range_error, which work + like error() except if the type/range mode is set to + *_mode_warn, then they do not do a return_to_top_level(), + but merely print a warning. + Also changed [set|show]_[type|range]_command() to support + the new "warn" feature. + +Thu Jul 18 17:50:54 EDT 1991 + + mipsread.c Added code to record the type of function arguments with + each particular function. Code is very similar to that + added to dbxread.c. + + *** NOTE: The above additions have not been tested. + +Fri Jul 19 11:19:10 EDT 1991 + + defs.h Added macros MAX_OF_SIZE, MIN_OF_SIZE, UMAX_OF_SIZE, and + UMIN_OF_SIZE, which when given a size of a numeric type, + return the maximum and minimum value it can hold. UMAX... + and UMIN... return the result for unsigned types. + symtab.h Added the macros MAX_OF_TYPE and MIN_OF_TYPE to operate on + struct types. They call above macros. + dbxread.c Renamed the MAX and MIN_OF_TYPE macros to ..._OF_CTYPE to + avoid a name conlict with the above. + c-exp.y Added range checking on numeric constants in + parse_number() for completeness. + valarith.c Made binop_user_defined_p() and unop_user_defined_p() + return 0 if working_lang is not language_c. + +Thu Aug 8 14:17:22 EDT 1991 + + main.c + printcmd.c + breakpoint.c Documentation strings of some commands changed to + eliminate the references to the C language where + appropriate. + +Tue Aug 13 15:48:03 EDT 1991 + + m2-exp.y Added qualified identifiers to the grammar. The semantics + are slightly different from those of the GDB operator :: + c-exp.y + m2-exp.y Added a rule to each grammar of the form: start ::= exp | + type_exp, where type_exp is any valid type expression. + expression.h + eval.c Added the opcode OP_TYPE, and an error case in eval.c. + printcmd.c Modified ptype_command() so it actually parses the input + (necessary for type expressions with scope qualifiers). + Added the function ptype_eval() which expects an + expression composed of one OP_TYPE element. + *.[ch] Replaced all occurences of parse_c_expression with + parse_expression + *.[ch] Replaced all occurences of parse_c_1 with parse_exp_1 + +[End of ChangeLog entries from Andrew Beers for Modula-2 support.] + +Mon Sep 16 17:19:46 1991 John Gilmore (gnu at cygnus.com) + + Small fixes from Peter Schauer: + + * infrun.c (child_attach): Lint. + * solib.c (find_solib): Handle shared libs version 2. + + Small fixes from David Wood: + + * xm-ultra3.h (SYS_SIGLIST_MISSING): Typo. + + Small fixes: + + * remote-vx.c: Move to top, for FILE. Fix from + John S . + + * utils.c (wrap_here): Avoid wrap action of fputs_filtered if + chars_per_line is at maximum (user typed `set width 0'). Fix + from Andreas Schwab . + +Tue Sep 17 17:31:04 1991 Stu Grossman (grossman at cygnus.com) + + * coredep.c: include ptrace.h where necessary. + * mipsread.c(parse_lines): fix unsigned char problem that was + messing up line numbers on SGI's and possibly other MIPS based + platforms. + * infrun.c (child_create_inferior): use better test to check + return val from setpgrp(). + * tm-irix3.h, xm-irix3.h, tconfig/irix3, xconfig/irix3: add these + for sgi/irix support. + +Wed Sep 18 04:33:31 1991 Per Bothner (bothner at cygnus.com) + + * mipsread.c (parse_symbol): Put non-static procedures + in the global block. + +Fri Sep 13 00:14:52 1991 John Gilmore (gnu at cygnus.com) + + Patch together `text_start' and `text_end' for 29K port. + + * exec.c (exec_command): If NEED_TEXT_START_END, define the + variables and set them based on the exec file. + * am29k-tdep.c: declare text_start. + * valops.c (call_function_by_hand): declare text_end. + + * inferior.h: Eliminate CANNOT_EXECUTE_STACK in favor of + defining CALL_DUMMY_LOCATION as BEFORE_TEXT_END. This is + because machines that do this will also have to know to + set NEED_TEXT_START_END. Besides, it was a redundant way to + say the same thing. + * tm-29k.h, tm-convex.h, tm-np1.h: Eliminate + CANNOT_EXECUTE_STACK, define CALL_DUMMY_LOCATION and + NEED_TEXT_START_END. + +Thu Sep 12 00:22:24 1991 John Gilmore (gnu at cygint.cygnus.com) + + AMD 29000 changes from David Wood : + + * Makefile.in (CLIBS): Put XM_CLIBS and TM_CLIBS at end. + Pass MUNCH_DEFINE to munch whenever we run it. + * am29k-pinsn.c (print_insn): Handle NOP specially. Avoid %#x + format string; use 0x%x instead. + * am29k-tdep.c: Use DUMMY_SAVE_GREGS and RETURN_REGNUM. + * ultra-xdep.c, xm-ultra.h: New files for Ultracomputer host system. + * xm-rtbsd.h: New host support for RT/PC running BSD Unix. + * inflow.c: Handle `short' process group IDs. + * infptrace.c (fetch_register): Support CANNOT_FETCH_REGISTER, + and check for ptrace errors. + * coffread.c (SDB_REG_TO_REGNUM): Define if not already. + (coff_symfile_init): Initialize text_bfd_scnum. + (read_coff_symtab): Use it to find the text [and absolute?] sections. + * ../config.sub: Add vendor nyu and os "sym[1-9]*". + * configure.in: Add hosts rtpc-*-* and a29k-*-*. + Merge target arm case with other "easy" cases. Add target + cases a29k-*-none (rehack of am29k), a29k-*-kern (remote to + Ultracomputer kernel), and a29k-*-sym1 (ultracomputer OS's user + process). + * minimon.h, remote-adapt.c, remote-mm.c: Add. + * munch: Cope with RT/PC putting fns in data segment. + Restore ability to override `nm' by specifying MUNCH_NM. + * xconfig/rtbsd, xconfig/ultra3: New host systems. + * tconfig/a29k: Rename from tconfig/am29k. Add remote-mm + and remote-adapt. Remove encapsulated coff #define's (the + support should go in BFD, and gdb shouldn't know or care). + * tconfig/a29k-kern: Same, but for remote kernel debugging. + * tconfig/ultra3: For debugging user processes on Ultra3/Sym1. + * tm-29k.h: Update BADMAG (though it should go away). + Allow the register definitions to be overridden in another + tm-file. Fix SR_REGNUM. Add a mess of _REGNUM's. Separate + RETURN_REGNUM from GR96_REGNUM and DUMMY_SAVE_GREGS from + DUMMY_SAVE_GR96, for handling kernel calling conventions + that use GR64+ rather than GR96+. + * tm-ultra3.h: New file, for use on Ultra3 Unix as well as for + remote debugging of Ultra3 kernel. Includes tm-29k.h and + overrides various things. + + * remote-mm.c (mm_attach, mm_wait): Handle attach like + child_attach does, making a clean stop in the newly attached + program. + * remote-eb.c: Lint. + + * coffread.c: Make coffread independent of any particular + variant of COFF. Avoid #include-ing any particular one except + internalcoff.h. BFD now passes key values for symbol reading + as part of its coff_data structure (LINESZ, SYMESZ, AUXESZ, + and the symbol masks and shifts); use them. + Remove obsolete end_of_text_addr. + + * exec.c: Remove unused include files. + +Wed Sep 11 19:38:44 1991 John Gilmore (gnu at cygint.cygnus.com) + + * Makefile.in (documentation targets): Pass $(M4). + Bugfix from eggert@twinsun.com (Paul Eggert). + + * stack.c (down_silently_command): Check for stack existence. + +Tue Sep 10 23:08:29 1991 John Gilmore (gnu at cygint.cygnus.com) + + * Makefile.in (VERSION): Update to 4.0.3. + +Tue Sep 10 09:19:29 1991 John Gilmore (gnu at cygint.cygnus.com) + + * core.c (core_file_command): Print frame at coredump with + its level number, by calling print_stack_frame. + * frame.h: Add selected_frame_level, print_stack_frame. + * frame.h, stack.c: Remove print_sel_frame, print_selected_frame. + * convex-tdep.c, convex-xdep.c, infcmd.c, inflow.c, infrun.c: + Change print_sel_frame and print_selected_frame callers to + print_stack_frame. + + * dbxread.c (read_ofile_symtab): Avoid empty else clause. + * symfile.c (free_named_symtabs): Ditto. + * main.c (main): wrap_here needs an arg. + * solib.c (find_solib): Avoid memory access if _DYNAMIC is zero. + (solib_add): Avoid noise. + (solib_create_inferior_hook): Lint. + (sharedlibrary_command): Move dont_repeat to here. + * utils.c (error): Call wrap_here to force buffered output. + + Small patches from Peter Schauer: + + * coffread.c (start_symtab): Free any existing line_vector before + malloc-ing new one. + (read_coff_symtab): Ditto for type_vector. + + * source.c (lines_to_list): New variable, replacing function. + (all uses): Use as variable. + (_initialize_source): Add 'set listsize' and 'show listsize'. + * utils.c (lines_to_list): Remove function. + * stack.c (print_frame_info): Use as variable. + * defs.h (lines_to_list): Remove declaration. + +Mon Sep 9 13:45:57 1991 John Gilmore (gnu at cygint.cygnus.com) + + * breakpoint.c (insert_breakpoints): Restore warning about + the program might be running in another process, but only for + systems with this brain death (#ifdef ONE_PROCESS_WRITETEXT). + * xm-hp300bsd.h, xm-mips.h, xm-vax.h: Define it. + + * utils.c (error): if error_pre_print is set, print the string + first. + * main.c (main, print_gnu_advertisement, print_gdb_version): + Reformat legalese so it always prints, but acts as an "I'm here" + message while symbols are being read. If any errors occur, + print a few newlines to set off the message and start it at the + left margin. Remove mention of "help" command, and don't yak + about symbol reading. + (catch_errors): Error string is now printed first in case of + error, not last. + * command.c (undef_cmd_error, lookup_cmd): On undefined command, + suggest the "help" command. + + * Makefile.in (VERSION): Set to 4.0.2. + +Thu Sep 5 23:49:48 1991 John Gilmore (gnu at cygint.cygnus.com) + + * .gdbinit: Remove useless "rr" command. Set complaints + to 1 for people debugging gdb. + + * breakpoint.c, remote-vx.c: Reword strings printed by + catch_errors callers. + +Wed Sep 4 11:07:50 1991 John Gilmore (gnu at cygint.cygnus.com) + + * WHATS.NEW: "history write -> history save". Doc "write on/off". + (Fix from kenc@viewlogic.com.) + + Fix some infrastructure to be able to cope with host and target + machines with different sized basic types (ints, ptrs, etc). + (Idea from pierre@la.tce.com (Pierre Willard).) + + * values.c (value_from_longest): Rename from value_from_long. + Handle pointer types as well as integers, so that targets with + different pointer sizes from the host can be accomodated. + * breakpoint.c, convex-tdep.c, eval.c, expprint.c, printcmd.c, + valarith.c, valops.c, valprint.c, value.h, values.c: Rename + uses of value_from_long to value_from_longest. + * eval.c, findvar.c, printcmd.c, valarith.c, valops.c: Pass + the correct pointer type to value_from_long{est}. + + * doc/gdb.texinfo ($_, $__): Describe types of these variables. + + * remote-vx.c: Remove obsolete code for calling functions via + vxworks kludge interface (it referenced value_from_long). + + * valops.c (value_string): Find malloc with lookup_misc_func, not + raw search. + +Tue Sep 3 18:37:46 1991 John Gilmore (gnu at cygint.cygnus.com) + + Make writing to files work properly. (Fixes to BFD are also needed.) + + * core.c (core_open): Open file ourselves, read or r/w, depending on + write_files. Use bfd_fdopenr. + * gdbcore.h (write_files): New variable. + * exec.c (write_files): Define variable, add set&show for it. + (exec_file_command): Use write_files to open for read or r/write. + + Make shared library reading happen automatically. These changes + are mostly from Peter Schauer . + + * inferior.h (stop_soon_quietly): Add to exported variables. + * infrun.c (child_create_inferior): call solib hook, if defined. + (child_attach): call solib hook, if defined. + * solib.c: Include inferior.h. Add from_tty to so_list as kludge. + (find_solib): Use lookup_misc_func rather than hand-rolled. + (symbol_add_stub): New stub for catch_errors. + (solib_add): Avoid output if !from_tty. Catch errors rather + than just calling symbol_file_add and bombing. + (solib_create_inferior_hook): Interface with the target process + to let it read and alloc shared libs, then figure out what it did. + + * core.c (validate_files): Fix typo, soften warning. + (Fix from Hiroto Kagotani .) + + * utils.c (fputs_demangled): Avoid duplicate printing if + demangling is off. (Fix from J.T. Conklin .) + + * infrun.c (proceed): Cast -1 to (CORE_ADDR) before comparing. + (Fix from pierre@la.tce.com (Pierre Willard).) + + * main.c (catch_errors): Change argument to a char * from an int, + since a char * can point to a struct full of glop, but an int + is not guaranteed to be able to hold a pointer. + * breakpoint.c (breakpoint_cond_eval, bpstat_stop_status, + breakpoint_re_set_one, breakpoint_re_set): Adapt. + * core.c (core_open, solib_add_stub): Adapt. + * remote-vx.c (symbol_stub, add_symbol_stub, callers): Adapt. + +Wed Aug 28 18:18:05 1991 John Gilmore (gnu at cygint.cygnus.com) + + * Makefile.in: Update VERSION to 4.0.1. Evade GNU Make bug + by adding .NOEXPORT target. + +Fri Aug 23 17:14:25 1991 John Gilmore (gnu at cygint.cygnus.com) + + * GDB-4.0 release! + * Update README. + * Makefile.in (VERSION): Roll to 4.0. + (gdb.tar.Z): Make refcard.ps as well, for shipment. + +Fri Aug 23 14:07:09 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/gdb.texinfo: minor rewordings, crossref to ptype from print, + more on printsyms. + + * doc/Makefile, Makefile.in: generate "gdb-all.texi" rather than + "gdb-all.texinfo" + + * doc/rdl-apps.texi: renamed from rdl-apps.texinfo + + * Makefile.in, doc/Makefile, doc/gdb.texinfo: + reflect above name change + + * WHATS.NEW: correct pointer to refcard. + + * doc/gdb.texinfo: update New Features, Installing + + * doc/gdbint.texinfo: add short description of configure +template + +Fri Aug 23 11:46:08 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/gdb.texinfo: update, fix bugs in "Installing" appendix + +Fri Aug 23 01:02:00 1991 John Gilmore (gnu at cygint.cygnus.com) + + * Makefile.in: Add config.sub, make doc/rdl-apps.texinfo for + tar file, add dependencies for referenced doc files. + +Thu Aug 22 22:17:06 1991 Stu Grossman (grossman at cygint.cygnus.com) + + * coffread.c, symfile.c, stack.c: saberized. + +Thu Aug 22 16:20:27 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/refcard.tex: permuted Essential Commands sec + + * doc/gdb.texinfo: new C++ chapter; revised installation appendix; + new doc for + set/show symbol-reloading + default set complaints 0 + info all-registers + RET-repeat disabled after prompted long displays + processID (attach) interpretation of 2nd GDB cmdline arg + +Thu Aug 22 14:05:47 1991 Stu Grossman (grossman at cygint.cygnus.com) + + * expread.y, coffread.c, dbxread.c, target.c, mem-break.c, + cplus-dem.c, values.c, valprint.c, symfile.c, remote.c, + breakpoint.c, main.c: lint. + +Thu Aug 22 02:02:26 1991 John Gilmore (gnu at cygint.cygnus.com) + + Install new configuration scheme for GDB and friends. + + * config.sub: Translate ordinary names to three-part names. + * configure: Use three-part names internally. + * configure.in: Translate three-part names to filenames. + + * README, WHATS.NEW: Update for gdb-4.0. + * Makefile.in: Roll VERSION to 3.99. + +Wed Aug 21 18:21:09 1991 John Gilmore (gnu at cygint.cygnus.com) + + * infptrace.c (KERNEL_U_ADDR_BSD): Include a.out.gnu.h. + * i960-tdep.c, m68k-tdep.c, sparc-tdep.c, tm-i960.h, + tm-m68k.h, remote-nindy.c: Change ext_format_XXX structs + to single structures rather than arrays; when passing + their address, use &. This avoids trouble with bdead compilers. + * mcheck.c: Don't include ; just declare "void abort();" + instead. This avoids portability headaches. + * mips-tdep.c (mips_do_registers_info): Only print FP regs if + asked to. + * source.c (open_source_file): Avoid ANSI const bdeath by + skipping declaration and then casting result value. + * tm-hp300bsd.h: Clarify comment. + * utils.c (strstr): Result is const char *; ANSI bdeath. + * xm-hp300bsd.h: Define HOST_BYTE_ORDER. Redefine INT_MIN, + since system include file defines it differently from "defs.h", + though the two are equivalent for our purposes. + * tconfig/hp300bsd: Add m68k-tdep.o. + +Tue Aug 20 16:01:11 1991 John Gilmore (gnu at cygint.cygnus.com) + + * tconfig/sun*4: Remove warnings about system assembler. + +Mon Aug 19 13:44:46 1991 John Gilmore (gnu at cygint.cygnus.com) + + * mcheck.c: Avoid warning about undeclared abort fn. + * tm-sparc.h (PC_ADJUST): Avoid calling error() from this; + it causes recursive calls to error() when used in cleanups. + To do so requires that we make it a function, so we do. + * sparc-tdep.c (sparc_pc_adjust): New implem of PC_ADJUST. + * utils.c (do_cleanups): Remove the current cleanup from the + chain *before* calling it, in case error() is called from it. + The result won't be pretty, but won't be an infinite loop either. + +Mon Aug 19 00:41:04 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * dbxread.c (read_struct_type): Grok anon structs for C++. + (vb_name, vptr_name): Null terminate these strings. + +Fri Aug 16 08:31:03 1991 John Gilmore (gnu at cygint.cygnus.com) + + Minor bug fixes from BSD Net2 gdb: + + * blockframe.c (get_prev_frame_info): If FRAME_CHAIN_COMBINE + returns 0, there is no previous frame. + * breakpoint.c (commands_command): If !from_tty, don't call + input_from_terminal_p(). + * dbxread.c (record_misc_function): Speed up slightly. + (compare_psymbols): Ditto. + * infcmd.c (do_registers_info): Take a second argument to + determine whether to print float registers. "info registers" + does not do so anymore. "info all-registers" does, now. + * mips-tdep.c, pyr-tdep.c (xxx_do_registers_info): Take second + arg and ignore it. + * tm-mips.h, tm-pyr.h (DO_REGISTERS_INFO): Pass second arg. + * inflow.c (initialize_inflow): Set tflags_ours correctly. + + Other fixes: + + * breakpoint.c (bpstat_do_actions): Use a cleanup to restore + executing_breakpoint_commands if we are interrupted by error. + * coffread.c (init_lineno): Avoid problem with zero-sized linetab + versus malloc/free. From: john@labtam.labtam.oz.au (John Carey). + * core.c (solib_add_stub, core_open): Call SOLIB_ADD inside a + catch_errors() so we can setup the frame regardless of whether + the shared libs work. + * ieee-float.c (double_to_ieee_extended): Get exponent from + right place in little-endian systems. From John Carey. + +Thu Aug 15 18:43:57 1991 John Gilmore (gnu at cygint.cygnus.com) + + * main.c: Remove unused terminating_signals and catch_termination(). + (long_options): Terminate with a zero element. + [Bugfix from Atsuo Kawaguchi .] + (gdb_readline): Make call-compatible with readline. + (init_signals): Improve comments re vfork vs. signal. + + * utils.c (prompt_for_continue): Use new gdb_readline(). + If we prompt for continuation, we don't let CR repeat the previous + command, once we get back to a prompt. It's too easy to keep + hitting CR, expecting "--more--" prompts, and have some long + command start repeating on you. + +Tue Aug 13 16:17:56 1991 John Gilmore (gnu at cygint.cygnus.com) + + * blockframe.c (frameless_look_for_prologue): Speed up by + calling SKIP_PROLOGUE_FRAMELESS_P if it's defined. + * tm-sparc.h (SKIP_PROLOGUE, SKIP_PROLOGUE_FRAMELESS_P): + Define two variants, one faster. + * sparc-tdep.c (sparc_frame_chain): Use target_read_memory + and return zero, rather than giving an error. + (setup_arbitrary_frame): Initialize the PC in the new frame. + (skip_prologue): Add a second arg saying whether we're just + checking for a frameless function or not. + + * core.c (core_open, core_close, core_xfer_memory): Move + section table pointers and bfd* into the target_ops. + (core_open): Allow errors in shared lib reading, etc. + (core_files_info): Describe shared library sections. + + * exec.c (exec_open, exec_close, exec_xfer_memory, xfer_memory, + exec_files_info, set_section_command): Move section table + pointers and bfd* into the target_ops. + (add_to_section_table): Add BFD to section table. + + * target.c (target_xfer_memory, target_info): Pass target to + xfer_memory and target_info functions. + * target.h: '' + + * gdbcore.h: Move struct section_table. + * target.h: New home of struct section_table. + + * solib.c (solib_add): New argument is the target_ops whose + section list is to be added to, if any. Reallocate the + sections in that target to add any that come from shared libs. + (throughout) so_sections renamed to sections. + (solib_xfer_memory): Deleted. + * tm-sunos.h (SOLIB_ADD): Add target argument. + (SOLIB_XFER_MEMORY): Delete. + + * core.c, exec.c, inftarg.c, remote-eb.c, remote-nindy.c, + remote-vx.c, remote.c, target.c, target.h: Remove add_syms vector + from target_ops. It's the same on all targets. Add two section + pointers to target_ops. + + * stack.c (find_relative_frame): Dump ancient algorithm for + "down", just use handy "next" pointers. + (frame_command): Don't error if there is no stack; let user + set one. + + * inflow.c (new_tty_prefork, new_tty): New prefork routine + modifies static state in the parent process; new_tty itself + runs in the child and modifies the child's file descriptors + to match the saved static state. + * infrun.c (child_create_inferior): Call new_tty_prefork, + fork, then new_tty. + + * infptrace.c (child_xfer_memory): Add ignored target arg. + * remote-eb.c (eb_xfer_inferior_memory): '' + * remote-nindy.c (nindy_xfer_inferior_memory): '' + * remote-vx.c (vx_xfer_memory): '' + * remote.c (remote_xfer_memory): ''. Rename from + remote_xfer_inferior_memory. + + * main.c (main): Only try to attach "corefile" argument if + it starts with a digit. + + * symfile.c (symbol_reloading): New "set/show" variable. + (symbol_file_add): Shorten message about symbol reading. + (add_symbol_file_command): Merge with add_syms_addr_command, + since this should work on all targets now. + (stop_whining): Default to zero, to shut up complaints + about bad symbol tables on many systems. + (free_named_symtabs): Just exit unless symbol_reloading. + + * xm-sun3os4.h, xm-sun4os4.h: Define BROKEN_LARGE_ALLOCA, + and add comment explaining shared library screw. + + * source.c: #if defined => #ifdef. + +Thu Aug 8 12:23:19 1991 John Gilmore (gnu at cygint.cygnus.com) + + * doc/gdbint.texinfo: Improve doc on porting to new OS's. + +Tue Aug 6 17:16:15 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/rdl-apps.texinfo: provide default readline-appendix finder + (doc/Makefile knows how to make one for local config) + + * Makefile.in: use doc/Makefile for doc targets + + * doc/Makefile: GDB documentation now has its own Makefile + doc/refcard.tex: renamed from "gdbrc.tex" + doc/gdbint.texinfo: add markup in "Cleanups" chapter + + +Fri Aug 2 00:13:06 1991 John Gilmore (gnu at cygint.cygnus.com) + + * values.c (baseclass_addr): When reading target memory, use the + length of the basetype, not the upper type. We've only malloc'd + enough space for the basetype, leading to errors in free(). + + * expprint.c (print_subexp): Print UNOP_MEMVAL of an OP_LONG that + ends up as a function specially, since we know the actual type of + the pointed-to address. This (somewhat) fixes display of + expressions that include misc_function_vector names. Try `cond 1 + !strcmp("a","b")' then `i b'. + + * infrun.c: Move DO_DEFERRED_STORES from proceed() to resume(). + The child can be proceeded from inside wait_for_inferior in + evaluating breakpoint conditions, and DO_DEFERRED_STORES was + getting skipped in that case. + + * expprint.c (print_subexp): Use filtered output, since the + subroutines we call use it, otherwise the output is horribly + mangled, since output of wrappable stuff comes out late. + + * Makefile.in: Bump VERSION to 3.98.1 + + * infrun.c (child_create_process): Use execlp to find the + shell to exec our target program. This requires some fiddling + with `environ' since there is no execlpe(). + +Thu Aug 1 15:35:17 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * Makefile.in, doc/gdbrc.tex, doc/rc-* (new files): + Minor rearrangement of refcard permits two new make targets-- + gdbrc.dvi DVI output for refcard, using CM fonts + gdbrc.ps PostScript refcard, using PS fonts + +Wed Jul 31 16:46:21 1991 John Gilmore (gnu at cygint.cygnus.com) + + * GDB-3.98 release. + + * TODO, Projects, WHATS.NEW, README: Update for gdb-3.98. + * Makefile.in (gdb-all.texinfo): Avoid touching file if M4 dies. + +Wed Jul 31 16:35:58 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/gdb.texinfo: last changes for release. + Minor typo and formatting fixes; incorporated most fixes remaining from + filed mail commenting on earlier drafts. + + Added warnings: pipes don't work in run command; + conditions are converse of assertions; + step over fn without debug info goes to next fn; + vars may have "wrong" values near fn entrance, exit + + Added example from Kingston on printing repeated nonadjacent values + + Added explicit mention that in Emacs gdb mode C-c and C-z are like + shell mode for signals + + Renamed "Stepping and Continuing" to "Continuing and Stepping" so it + doesn't sound so much like its parent "Stopping and Continuing"; also + moved entries on continue to top of section, so they don't get lost. + + Improved installation directions in appendix, added manual formatting + instructions + +Tue Jul 30 17:26:39 1991 John Gilmore (gnu at cygint.cygnus.com) + + * configure.in: Remove xm.h and tm.h even if we aren't linking + new ones, so "./configure sun4; ./configure none" does the right + thing. Assume that alldeps.mak and depend are already built in + srcdir, and avoid running "make" (particularly "make depend", + which involves "gcc") from inside configure. Build Makefile + directly rather than building Makefile.conf first. + * configure: Regenerate with above changes. + * Makefile.in: Use $(BISON) to find bison. Roll VERSION + to 3.98. Revise gdb.tar.Z procedure to produce a file + called gdb-$(VERSION).tar.Z but which unpacks into a + directory called "gdb". Move non-source files out of + $(SFILES_SUBDIR). Pretty up alldeps.mak with comments. + (depend): Don't try to do "gcc expread.y". + (expread.o): Update dependencies by hand. + +Mon Jul 29 15:21:09 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/gdb.texinfo: + Fixed a variety of small typos that prevented info from formatting + cleanly; altered too-long heading for GPL Appendix, as discussed + w/RMS; Changed date on cover to July 91. + +Fri Jul 26 13:20:02 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * doc/gdb.texinfo: + (1) Applied some fixes due to comments from Larry Breed (easier ones + through chapsec 5.2) + (2) Eliminated use of @footnote---had my doubts about it anyways, and + it's broken in latest texinfo + (3) Introduced *some* use of [] for optional arguments, where + explanation is not simpler by listing cmd w arg and cmd w/out arg + separately. Still not using @deffn. + (4) Dropped in GPL-2. NOTE: one of GPL-2 or texinfo is broken; a + couple of headings are too long. Need patches to texinfo or revision + to GPL-2. + + * Partial update to README (which still needs work for this + release!): (1) use of configure corrected for new script, + (2) "make gdb.dvi" and "make gdb.info" mentioned. + +Wed Jul 24 06:44:02 1991 John Gilmore (gnu at cygint.cygnus.com) + + * symtab.c (lookup_symbol): Don't complain right off about + no debug symbols; use the misc function vector first. + (list_symbols): Use misc function vector to find symbols + that don't have debug info, and print them. + (find_pc_symtab): Temporarily avoid fatal() when psymtab + PC range doesn't match symtab PC range, as it does on the + MIPS because our symtab reading isn't perfect. + + * dbxread.c (dbx_symfile_read): Make warning about + "no debug symbols" slightly nicer. + + * source.c (select_source_symtab): If "main" symbol exists, + but decode_line_spec can't find line info, don't just return + a zero; try other source symtabs or give an error. + + * mipsread.c (parse_partial_symbols): Sort the psymtabs by + their low addresses first, then rip through fixing high addrs. + + * ns32k-opcode.h (sfsr): Bugfix from Rune Nerg}rd, + . + (NS32K_SVC_IMMED_OPERANDS): Reverse the #ifndef. + +Tue Jul 23 18:52:43 1991 Roland H. Pesch (pesch at cygint.cygnus.com) + + * Minor, mostly mechanical, cleanup of doc subdir for clean + makeinfo'ing and TeXing; also ensured gdb-all.texinfo (post-m4) + and gdb.info (post- texinfo2 makeinfo) generated for distribution. + +Sun Jul 21 03:54:52 1991 John Gilmore (gnu at cygint.cygnus.com) + + Mostly MIPS and general symbol-reading fixups. + + * doc/gdbint.texinfo: Add documentation on symbol-reading + interface. + + * mipsread.c: Remove kludges around #include "ecoff.h". + Remove redefinitions of a_magic, etc, no longer used. + (parse_symbol, ): Convert "Internal:" printfs to complain()ts. + Fix global overview comments to match symfile.c protocol. + (mipscoff_new_init): Eliminate cur_hdr if we have one. + (mipscoff_symfile_read): Eliminate unused code. Avoid + sorting all the symtabs, when all we have read here is psymtabs. + The symtabs are sorted as they are created anyway. Tell + condense_misc_bunches whether we're mainline. + (psymtab_to_symtab_1): Pass filename when recursing, to make + stack trace more informative. + (parse_partial_symbols): Assume cur_hdr as argument. + (read_mips_symtab): Don't clobber cur_hdr, so it can be freed. + Pass cur_hdr implicitly to parse_partial_symbols. Avoid checking + the TYPE_NAME of char *, since that's done in symfile.c. + (free_numargs, parse_symbol, add_symbol, add_block, + shrink_linetable): Declare these fns void. + (upgrade_type): Convert tree of if's to switch. Clean up + bogus "off == 0" handling with a complaint. Avoid setting + field bitpos and bitsize of array with lower and upper bounds. + Check specified bitsize of elements against their actual type's + bitsize, and complain if different. Complain about unknown + type qualifiers. + (parse_fdr): Don't assume sizeof(char *) == sizeof (struct *). + (psymtab_to_symtab_1): Print names of subsidiary files that + are being read in. FIXME, we read far too many files. This code + is not the problem, the problem is in parse_fdr where the psymtabs + are set up. + (cross_ref): Result should indicate that we used one aux entry + normally, or two if we encountered a "next" entry. This used + to leave the caller pointing at the wrong aux entry. + (add_symbol): If overflowed cur_block, reallocate it larger, + chase all pointers to it, and complain(), rather than clobber memory. + (shrink_block): Use xrealloc rather than xmalloc-and-copy. + (new_field): Only allocate one field initially, not two. + Pull ++ out of macro argument. Simplify. + (_initialize_mipsread): Avoid initialization of importd + global_psymbols and static_psymbols. + + * symfile.c (psymtab_to_symtab): Depend on XXX_psymtab_to_symtab + to properly set pst->symtab; avoid searching for it. + (symfile_fns): Improve comments, add a FIXME. + * dbxread.c: Update comments to reflect symfile protocol. + (read_ofile_symtab, end_symtab): Return the symtab. + (psymtab_to_symtab_1): Set pst->symtab. + + * coffread.c (coff_symfile_read): tell condense_misc_bunches + whether we're mainline. + + * symfile.h (sym_fns): Remove unused sym_discard member. + * coffread.c, mipsread.c, dbxread.c: Remove XXX_symfile_discard. + + * mtrace.c (mtrace): Take effect if mallwatch is set, even if + the environment variable is not. + * infcmd.c (finish_command): Use filtered printfs. + * cplus-dem.c: Add struct tags to a few unnamed structs. + * valops.c (value_coerce_array): Improve comments. + * valprint.c (type_print_varspec_suffix): Print array size only + if greater than zero. + * m88k-tdep.c: Shift some lines left by one space, that had + apparently been trashed at some point. + * TODO: More things to do, a few got done. + +Thu Jul 18 22:46:05 1991 John Gilmore (gnu at cygint.cygnus.com) + + * symtab.h (LOC_EXTERNAL): Eliminate in favor of LOC_STATIC. + (ldsymoff, ldsymlen, globals_offset, statics_offset): Improve + comments. + * dbxread.c (read_dbx_symtab): LOC_EXTERNAL -> LOC_STATIC. + * expread.y, findvar.c, symmisc.c: Ditto. + * printcmd.c (address_info): Update printed forms of LOC_ + symbols. Elim LOC_EXTERNAL. + (print_frame_args): Keep track of param stack offsets before + re-looking up to find the local register param is kept in. + + * mipsread.c: Use and rather than . + Further integration of mipsread into gdb. Eliminate unused + routines, duplicate declarations. Handle static symbols in + psymtabs as well as external symbols. When reading symtabs, + insert symbols into the correct block (global, static, or a local + block). + (read_mips_symtab, parse_partial_symbols): Don't pass useless + "incremental" arg. + (mipscoff_symfile_read): Don't call select_source_symtab. + (parse_symbol): Use SYMBOL_VALUE_ADDRESS where appropriate, + rather than SYMBOL_VALUE. + (parse_external): Comment clobbering of top_stack. + (parse_partial_symbols): Update comments. Allocate and parse + static symbols as well as external symbols. FIXME, enum values + are not handled in this pass, but should be. Inline new_psymbol. + Use SYMBOL_VALUE_ADDRESS. + (psymtab_to_symtab_1): Read symbols into global static block + by default (until enter some function's local block context). + (sort_blocks): Clean up STATIC_BLOCK as well as GLOBAL_BLOCK. + (destroy_all_symtabs, new_psymbol): Eliminate, unused. + + * source.c (select_source_symtab): Select a source symtab + from either the symtabs or, failing that, the psymtabs. + (list_command): Update error message. + (forward_search_command, reverse_search_command): Use getc, not + fgetc, for speed. FIXME, add comment about buffers that die if + overrun by long line. + + * values.c (unpack_field_as_long, modify_field): Avoid shifting + by an entire word, which is not portable, if we have a 32-bit + field. (Code in dbxread.c already turns such bitfields, if + aligned, into ordinary ints, but fixing this will help for other + symbol formats and for future changes.) + * core.c (core_open): Handle ANSI const brain death. + * utils.c (vprintf): Fix varargs typo. + +Sun Jul 14 00:42:53 1991 John Gilmore (gnu at cygint.cygnus.com) + + * findvar.c (find_var_value): Handle &function better. + * TODO: Document work needed on &fn and &array. + * printcmd.c (print_address_symbolic): New arg is the prefix + to print if a name is printed. + (print_address_demangle): Honor "set print address" now. + Use new arg above to improve spacing of output. + * valprint.c (val_print): When printing function pointers, + print symbolic form too. + * breakpoint.c (breakpoint_1): Use new print_address_symbolic. + +Mon Jul 8 19:02:46 1991 John Gilmore (gnu at cygint.cygnus.com) + + * core.c (memory_error): Reword error msg to mislead less. + + * mips-pinsn.c (print_insn_arg 'd'): Print $ with reg name. + + * mipsread.c (read_mips_symtab, read_the_mips_symtab, + parse_partial_symbols): Use newer BFD internals (external_filehdr + and external_aouthdr), byte-swap the fields that we care about + before using them, and make the file header data local to + read_the_mips_symtab rather than global. + +Sat Jul 6 01:34:15 1991 John Gilmore (gnu at cygint.cygnus.com) + + * ns32k-opcode.h (movmw, movmd): Fix opcodes. Bug fix + from Rune Nerg}rd on 5 Jul 1991. + + * main.c (command_line_input): Flush stdout and stderr + before every call to readline. This reportedly fixes a bug + that comes up in Sys V running emacs-gdb and/or xxgdb, + when stdin/out are pipes or sockets. + +Thu Jul 4 14:47:06 1991 John Gilmore (gnu at cygint.cygnus.com) + + * configure.in, Makefile.in: Avoid rebuilding "depend" as much. + Avoid declaring Makefile dependencies, because GNU Make stupidly + tries to update it if we do. + + * coffread.c: Revise for minor changes to bfd internal coff + indexes. + + * configure: If -template= is given a relative path, make it + absolute before recurring in subdirectories. + + * configure, configure.in, Makefile.in: Install "configure" script + as replacement for config.gdb. + * config.gdb, Makefile.dist, Makefile.sdir: Remove + * README: Update for configure, mostly. FIXME. + + * Add dec3100 as equivalent to littlemips. Indicate in all host & + target config files that they are for the host. When the lines + get copied into the Makefile, this makes it more obvious what's + up. + +Mon Jun 24 23:49:07 1991 John Gilmore (gnu at cygint.cygnus.com) + + * sparc-opcode.h (trap opcodes): Avoid leading spaces or + tabs, which end up in the disassembler output inadvertently. + +Wed May 29 23:01:03 1991 John Gilmore (gnu at cygint.cygnus.com) + + Make it compile cleanly in an ANSI GCC2 environment. + + * blockframe.c: + * cplus-dem.c: free takes a void *, ifdef __STDC__ + * dbxread.c (read_huge_number): avoid gcc2 bug hoisting calc of + LONG_MAX/radix. + * defs.h (alloca): Avoid doing anything if alloca already def'd. + * stddef.h, stdlib.h: Remove these files. + * symtab.c: Avoid declaring qsort, close. + * symfile.c: Avoid declaring close. + * utils.c (vprintf): Declare "ap" arg as proper va_alist. + * sparc-tdep.c: Avoid including lots of Sun-host-specific files. + + Assorted other changes. + * dbxread.c: include "libaout.h", not "liba.out.h". + * printcmd.c (print_frame_args): Set recurse properly for + indentation of struct and array parameters. + * valops.c (value_cast): Allow cast to void. + * infrun.c (resume): If NO_SINGLE_STEP, call machine dependent + single_step() in a target-independent fashion. + * sparc-tdep.c (single_step): Don't call ptrace ourselves, just + set up to be ready to continue. This makes us target independent. + * infptrace.c (child_resume): Remove call to single_step; now + can single step a SPARC target of any kind. + +Wed May 22 18:18:24 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * Makefile.dist, doc/gdb.texinfo, doc/*-m4.texinfo: split up GDB + docn into separate sections---basically chapters, plus two loose + pieces that can be configured to go in different places. This + allows GNU m4 to preprocess the manual without coredumping. + + * Makefile.dist: tell TeX where to find texinfo. + +Mon May 20 12:15:04 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * Makefile.dist, doc/gdb.texinfo: respectively create, and use, + the new target "rdl-apps.texinfo" which captures the Makefile + variable that records where to find the Readline libraries. + +Sun May 19 05:36:59 1991 John Gilmore (gnu at cygint.cygnus.com) + + * tahoe-pinsn.c: #include "tahoe-opcode.h", not "opcode.h". + * tm-tahoe.h (FIX_CALL_DUMMY): Ignore more parameters. + * defs.h (const, volatile): Only define if not already defined. + * Makefile.dist (gdb.tar.Z): Create doc subdir w/out CVS/RCS crud. + + * README: Update for release 3.95. + * config.gdb: Don't create readline dir in subdir builds. + * main.c: Include with "..." form for non-system include files, + so "gcc -MM" for "make depend" works. + Include readline files with "...h" rather than . + * mipsread.c: Include "ecoff.h" rather than "intel-coff.h". + + * coffread.c: Undo minor damage done by Rich Pixley. Use + different internal and external representations of COFF + data structures. Use new BFD routines for swapping them in and + out. + * symfile.c (free_named_symtabs): Avoid freeing file names that + are null or empty. Old i960 tools seem to produce files that + claim to have empty names, causing each successive file read + to blow away the previous one. + * sparc-xdep.c (deferred_stores): Repair minor damage by Rich. + Move deferred_stores to top of file, but don't separate its + #define's from its variable. Add commentary. + * Makefile.dist: Fix Rich damage; undo "configure" changes in + favor of keeping the (working) config.gdb. Move readline + library up a notch. + +Fri May 17 12:49:56 1991 Per Bothner (via gnu at cygint.cygnus.com) + + * dbxread.c (read_struct_type): Try to handle g++ version 1 MI + debug info. + * infptrace.c (fetch_registers): no result, since now void. + * tconfig/news: target depends on m68k-tdep too. + +Fri May 17 14:40:14 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * Makefile.dist: added readline/inc-*.texinfo to dependencies for + gdb.dvi target + + * readline/inc-history.texinfo, readline/inc-readline.texinfo: + applied various small fixes due to or inspired by RMS comments + + * doc/gdb.texinfo: finished using all RMS comments, save those for + appendices on readline and cmd history (which are in other source + files) + +Thu May 16 18:06:05 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * doc/gdb.texinfo: (1) Updated w/ref to RMS comments through + chapter 9; (2) documented 'break' command's menu mode for + overloaded names, in response to hgs problem report C++ p-31 + +Wed May 15 11:02:48 1991 Roland H. Pesch (pesch at fowanton.cygnus.com) + + * doc/gdb.texinfo: (1) better introductory example; (2) more + consistent use of @code, @samp, @file, @kbd throughout; small + cleanups to first three nodes; (3) new "Contributors" node; + (4) Appendix, Renamed Commands; (5) divert specialized startup + instructions to "Targets" chapter for generic manuals, while + leaving them up front for manuals specific to specialized + environments; (6) apply fixes from RMS comments through chapter 4. + + * pretex.m4: modify explanatory text slightly (and redefine + "regexp") to keep GNU m4 from complaining. (It still crashes + later, but one step at a time...) + +Wed May 15 10:32:12 1991 John Gilmore (gnu at cygint.cygnus.com) + + * readline/readline.c (update_line): Avoid dereferencing a pointer + before comparing it to its bounds. Saber caught this. + (init_terminal_io): Don't set BC from the "pc=" termcap variable, + and only set PC if tgetstr returned non-null. Saber caught this. + +Tue May 14 16:29:53 PDT 1991 Roland Pesch (pesch at cygint.cygnus.com) + + * Makefile.dist: put gdb.dvi stuff (updated to use M4 preprocessor + stuff for config manual) here where it counts; updated + to use new subdir structure (gdb/doc/). + + * Makefile: generated from above via + config.gdb none + before checkin + + * gdbint.texinfo: added instructions on generating gdb.info* files + locally for release. These are ordinary info + files, formatted from gdb.texinfo (via gdb-all.texinfo, see + Makefile)---but due to use of texinfo 2, can't count on makeinfo + to generate these, so we distribute them already formatted. + + * gdb.texinfo: included full Info node and menu crud (as generated + by C-u M-x texinfo-master-menu using the texinfo-2 elisp code). + + * Makefile: updated "gdb.dvi" target to use M4 preprocessor; + put in comments-for-future gdb.info target (one day makeinfo will + work again). + +Tue May 14 13:51:36 PDT 1991 Roland Pesch (pesch at cygint.cygnus.com) + + * gdb.texinfo: Updated to include new or old undocumented + commands, at least the following (perhaps some others I forgot to + record): info f, info float, info path, info program, info s, info + set, info source, info terminal, info types, info user, set/show + print object. + Also covered all recent GDB command renames for v4. + +Mon May 13 14:57:46 1991 John Gilmore (gnu at cygint.cygnus.com) + + * mipsread.c: Rather than keeping count of how many symtabs + and psymtabs we have, for sorting purposes, count them when + we need to sort. This fixes bug in rereading of symbol tables. + +Fri May 10 15:43:33 PDT 1991 Roland Pesch (pesch at cygint.cygnus.com) + + * infcmd.c: renamed "info path" to "show paths" + * gdbrc.tex: documented above. + +Wed May 8 04:51:11 1991 John Gilmore (gnu at cygint.cygnus.com) + + * remote.c: Fix comments. + * utils.c (error): Force out any pending wrap output. + +Sat May 4 11:11:07 1991 John Gilmore (gnu at cygint.cygnus.com) + + * Makefile.dist: Roll VERSION to 3.95. + Fix up "saber_gdb" to work again. + * saber.suppress: Update. + + * coffread.c, exec.c, infptrace.c, inftarg.c, remote.c, solib.c, + symtab.h, target.c, target.h: Lint. + * core.c: setup and select frame after reading shared libs, + else reading shared libs will clobber them. Lint. + * utils.c (error): Force out any buffered wrap text. + +Fri May 3 22:01:56 1991 John Gilmore (gnu at cygint.cygnus.com) + + * remote.c: Remove decls of memory_insert_breakpoint + and memory_remove_breakpoint, no longer used. (Suggestion of + Jan Norden). + + * Makefile.dist: use ${subdir} in paths of BFD and LIBIBERTY, + to make it easier to interface to "configure"'d libraries. + +Fri May 3 13:10:01 PDT 1991 Roland Pesch (pesch at fowanton.cygnus.com) + + * valprint.c: introduce "set p", "set pr", "show p" and "show pr" as + aliases for set/show print. + +Thu May 2 11:22:02 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * coffread.c (coff_sym_fns) [TDESC]: Make the type be m88kbcs. + + * m88k-tdep.c (IEEE_isNAN): New function. + + * infrun.c, m88k-tdep.c, m88k-xdep.c: Change + initialize_{tdesc,dcontext} to init_{tdesc,dcontext}. + + * infrun.c [TDESC]: Add a bunch of crud. + + * xm-88k.h [__GNUC__]: Don't define memset. + + * m88k-xdep.c: #if 0 out push_breakpoint. + + * tm-88k.h: Define GET_SAVED_REGISTER. + + * tm-88k.h: Define DGUX. + + * m88k-opcode.h (UEXT, SEXT, MAKE): Put parentheses around arguments. + + * m88k-pinsn.c (sprint_address): Declare at top of file. + + * m88k-xdep.c: #if 0 out core_file_command. + + * values.c ({unpack_,value_as_}pointer): Just call + {unpack_,value_as_}long (for now anyway). + + * m88k-tdep.c (get_saved_register): Make get_reg a dc_word_t (*)(). + (psr_register): Change return type to dc_word_t. + + * m88k-tdep.c (tdesc_read_function): Comment out call to ptrace. + + * m88k-tdep.c (get_saved_register): Add lvalp parameter. + + * gdbcore.h (write_memory): Don't prototype it. + + * tm-88k.h, m88k-tdep.c: Make stack_error, stack_jmp global. + m88k-xdep.c: Don't mention stack_error. + + * {x,t}config/m88k ({X,T}DEPFILES): Add missing files. + + * mtrace.c: Don't typedef things like size_t, just #define them. + + * coffread.c [TDESC]: #if 0 out references to coffsyn. + + * symtab.h (struct symtab): Include EXTRA_SYMTAB_INFO. + tm-88k.h: Define EXTRA_SYMTAB_INFO. + + * coffread.c [TDESC]: Include "tdesc.h" and make tdesc_handle + dc_dcontext_t not int. + + * coffread.c [TDESC]: Use system include files not . + + * coffread.c [TDESC]: Move setting of debug_info from + coff_symfile_read to find_linenos and make it work with BFD. + + * cplus-dem.c [__STDC__]: Make x{m,re}alloc return void*. + + * signame.c: Cast const char* to char* when assigning to sys_siglist. + + * utils.c (strsave): Make arg const char* not char*. + + * infrun.c (wait_for_inferior) [SHIFT_INSN_REGS]: Use + bpstat_explains_signal (stop_bpstat) not stop_breakpoint. + + * tm-88k.h (START_INFERIOR_HOOK): Make tdesc_handle a dc_handle_t. + + * tm-88k.h (EXTRACT_RETURN_VALUE): Use char * not void *. + + * findvar.c (read_var_value, case LOC_CONST_BYTES): Put the address + in a char *, not a CORE_ADDR. Use SYMBOL_VALUE_BYTES. + + * tm-88k.h (INIT_EXTRA_FRAME_INFO): Use fci not prev (fci is + prev except from create_new_frame). Make next_frame a + local variable. + Declare get_prev_context. + {x,t}m-88k.h: Enclose USG and BCS defines in #if !defined. + m88k-{opcode.h,pinsn.c,xdep.c,tdep.c}: New files (same contents as + before; they had just been left out of the distribution for a long + time). + +Thu May 2 17:53:56 1991 John Gilmore (gnu at cygint.cygnus.com) + + Mips bringup and general cleanup + + * cplus-dem.c: Move CPLUS_MARKER define to after defs.h. + * infptrace.c (PT_WRITE_D, PT_READ_D): Use correct values. + (This still doesn't seem to make MIPS bkpts work.) + * mipsread.c: Remove dup "Reading symbol data..." msg. + (symbol_file_command, add_file_command): Remove, obsol. + * printcmd.c (ptype_command): Say "an enum" rather than "a enum". + Wrap output appropriately. + * stack.c (locals_info, catch_info, args_info): Check + selected_frame rather than target_has_stack or coredumping. + * valprint.c (type_print_varspec_suffix): Wrap "ptype" output of + enums appropriately. + +Wed May 1 14:10:22 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * signame.c: Include defs.h and param.h. + + * cplus-dem.c: Include defs.h and param.h. + Makefile.dist: Don't hack in the "param.h". + param.h: Don't include defs.h. + + * expread.y: Use a union to deal with the fact that type_stack + can have both ints and enum type_pieces in it. + ({push,pop}_type_int): New functions. + +Tue Apr 30 13:18:58 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * cplus-dem.c (cplus_mangle_opname): Don't call error. + values.c (check_stub_method): Call error if NULL return from + cplus_mangle_opname. + + * blockframe.c, breakpoint.c, core.c, command.c, findvar.c, + eval.c, expprint.c, infcmd.c, infrun.c, main.c, printcmd.c, + remote.c, source.c, stack.c, dbxread.c, coffread.c, symfile.h, + symfile.c, utils.c, valarith.c, values.c, valops.c, tm-68k.h, + target.c, inftarg.c, ieee-float.c, environ.c, defs.h, + command.h, inferior.h, gdbcore.h, symtab.h, expression.h, + symtab.c, cplus-dem.c, value.h, expread.y, valprint.c, + copying.awk, solib.c, inflow.c, symmisc.c + : Lint. Use read_memory not read_memory_integer on CORE_ADDR's. + Use {value_as,unpack}_pointer (added to values.c) + not {value_as,unpack}_long on CORE_ADDR's. + Use longest_to_int (added to defs.h) instead of cast to int. + Remove from_tty arg to mod_path. + Put symfile_bfd in {coff,dbx}read.c not symfile.h. + Use OP_NULL instead of 0 where dummy enum exp_opcode needed. + + * tm-sparc.h: Remove GET_RWINDOW_REG. + (FRAME_CHAIN): Call sparc_frame_chain. + sparc-tdep.c (sparc_frame_chain): New function. + tm-sparc.h (EXTRACT_STRUCT_VALUE_ADDRESS): call + sparc_extract_struct_value_address (added to sparc-tdep.c). + + * xm-sun386.h: Don't define SET_STACK_LIMIT_HUGE. + +Tue Apr 30 13:13:33 1991 Michael Tiemann (tiemann at cygint.cygnus.com) + + * valprint.c (type_print_base): If the type being printed is a + struct containing undefined types, print "" + as the type instead of crashing. + * values.c (value_headof): Get the vtable pointer taking + TYPE_VPTR_BASETYPE into account. + * symtab.c, symtab.h, dbxread.c: Fix various whitespace splotches. + +Mon Apr 29 13:22:51 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * Move BROKEN_LARGE_ALLOCA from tm-sun386.h to xm-sun386.h. + + * sun386-xdep.c [!GDB_TARGET_IS_SUN386]: Just provide empty + functions which don't do anything. + tm-sun386.h: Define GDB_TARGET_IS_SUN386. + + * Makefile.dist: Add comment about tm-sun3os4.h: tm-sun3.h, etc. + + * sun3-xdep.c, tm-sun3.h, tm-68k.h: Change TARGET_SUN3 to + GDB_TARGET_IS_SUN3. + + * infrun.c: Don't include sys/user.h and friends (wrong for + cross-debugging and not necessary anymore (see IN_SIGTRAMP in + xm-vax.h)). + [SET_STACK_LIMIT_HUGE]: Include . + xm-tahoe.h: Don't define _DIRENT_. + + * xm-tahoe.h: Remove USE_OLD_TTY (not needed now that terminal.h + includes sgtty.h before sys/ioctl.h). + +Sun Apr 28 22:04:47 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * param-no-tm.h: Make BITS_BIG_ENDIAN defined to 0/1, not defined + or not defined. Don't define it based on TARGET_BYTE_ORDER if + it's already defined (in the tm.h file). + mips-opcode.h (BIT_FIELDS_*), + values.c (modify_field, unpack_field_as_long): + Use #if BITS_BIG_ENDIAN not #ifdef BITS_BIG_ENDIAN. + {x,t}m-tahoe.h, tahoe-pinsn.c, tahoe-opcode.h: New files. + +Fri Apr 26 12:02:06 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * tm-sparc.h: Add comments about gcc version 2 and structure passing. + + * xconfig/i386v{,32}{,-g}: Add XM_CFLAGS=-Dgetpagesize()=4096. + gmalloc.c: #if 0 out !HAVE_GETPAGESIZE code. + + * expread.y (abs_decl): Accept '&' and '&' abs_decl. + + * symtab.c, symtab.h: Have a builtin_type_{,unsigned_}long_long + regardless of LONG_LONG. + defs.h (TARGET_LONG_LONG_BIT): New macro. + expread.y (typebase): Add {unsigned,} long long {,int}. + +Thu Apr 25 12:31:22 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * valops.c (typecmp): If t2 == 0, return 1. + +Wed Apr 24 09:45:17 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + Changes from Tiemann: + * cplus-dem.c (optable): Add "nw", "dl", "compound". + (cplus_mangle_opname): New function. + (do_type): Add case 'Q'. + * values.c (check_stub_method): Do lookup_method_type and stuff + rather than smash_to_method_type. + symtab.c, symtab.h (allocate_stub_method): New function. + dbxread.c (read_type): If we get "##", don't lookup_function_type + and start clobbering it; allocate_stub_method instead. + * printcmd.c (x_command): Dereference references. + * valprint.c (type_print_varspec_prefix, case TYPE_CODE_METHOD): + Don't print " " type_print_base (...) "::" if !passed_a_ptr. + * dbxread.c (read_struct_type): Put "op$" instead of "operator" + in the symbol table. + * values.c (check_stub_method): Deal with operator names. + * valprint.c (cplus_val_print): Check for error in baseclass_addr. + * values.c: Move declaration of cplus_demangle to top of file. + * values.c (baseclass_addr): If can't read memory, set *ERRP + rather than calling error(). + * value.h: Remove redundant declaration of value_static_field. + * values.c (value_static_field): Recursively check all baseclasses. + Return NULL if not found. + * values.c, value.h: New functions value_{headof,from_vtable_info}. + * valprint.c (val_print): Print out first element of vtbl + specially. + * valprint.c: Move print controls to top and add objectprint. + Add command "set print object on/off". + * valprint.c (value_print, is_vtbl_member): Put things in local + variables rather than continually doing VALUE_TYPE (val), etc. + * valops.c (value_struct_elt_for_address): Call check_stub_method. + * valops.c (value_struct_elt): Remove found, arg1_as_ptr. + * valops.c (search_struct_method): Give error if j > 0 && args == 0. + * valops.c (search_struct_field): New argument looking_for_baseclass. + Give error if value_static_field or value_primitive_field + return NULL. + valops.c (various): Call search_struct_field with extra parameter. + * symtab.c (decode_line_1): Deal with operators specified as + "operator" . + (operator_chars): Help do it. + * symtab.c (lookup_struct_elt_type): Call check_stub_type. + Take additional argument noerr. + Don't dump core if TYPE_FIELD_NAME is NULL. + Check the baseclasses recursively. + * symfile.c (fill_in_vptr_fieldno): Don't call check_stub_type. + Return void not int. (also declarations in symfile.h and value.h). + Deal with multiple inheritance. + * printcmd.c (print_command_1): Add if (objectprint) code. + * expread.y (variable): Allow for destructor with foo::~name. + * eval.c (evaluate_subexp, case UNOP_LOGNOT): If following opcode + is OP_SCOPE, give an error. + * eval.c (evaluate_subexp): Pass third arg to lookup_struct_elt_type. + * eval.c (evaluate_subexp), values.c (value_virtual_fn_field): + Don't bother to do anything with + return value from fill_in_vptr_fieldno. + * eval.c (evaluate_subexp): If value_static_field returns NULL, + give an error. + * dbxread.c (read_struct_type): Set fcontext to 0 for normal member + function. + * dbxread.c (read_struct_type): Initialize name to 0. + * dbxread.c (read_ofile_symtab, N_CATCH): Add offset to bufp->n_value. + * dbxread.c (dbx_create_type): Zero TYPE_VPTR_BASETYPE. + (read_struct_type): Don't bother to set TYPE_VTPR_{BASETYPE,FIELDNO} + if it's just going to be {0,1}. + + * dbxread.c (virtual_context): Use TYPE_BASECLASS starting at 0 + (yes, it's #if 0, but just in case...). + + * vax-opcode.h, expread.y, expprint.c, cplus-dem.c: Declare some + things "const". + + * i386-stub.c: New file. + + * WHATS.NEW: Remove mention of readline and more paging (in 3.5). + Try to keep command names up to date with renaming. + + * gmalloc.c [!HAVE_GETPAGESIZE]: Try to figure out the pagesize. + + * infun.c (resume, resume_cleanups): New functions. + (wait_for_inferior, proceed, child_create_inferior): Use resume + not target_resume. + + * remote.c (getpkt): Don't set immediate_quit. + + * blockframe.c, frame.h (reinit_frame_cache): New function. + solib.c (solib_add), symfile.c ({,add_}symbol_file_command): + Use it. + +Tue Apr 23 10:38:41 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * symtab.c (lookup_symbol): Add 3 more of those loops through + the symtabs which we all know and love: (1) Look in the + STATIC_BLOCK for mangled symbols right after we check the blocks, + (2, 3) Look in the STATIC_BLOCK for all the symtabs and psymtabs + at the end. + + * main.c (cd_command): Call dont_repeat. + + * dbxread.c (read_struct_type): If const/volatile character is + missing, don't complain, just continue. + + * dbxread.c (read_struct_type): Only try to read the fcontext if + it is there. Also change "error_type " to "return error_type ". + values.c (value_virtual_fn_field): If there is no fcontext, + then do things the way GDB 3.x did. + valops.c (search_struct_method): Add type to value_virtual_fn_field + arguments. + + * dbxread.c (read_struct_type): Fix typo: *pp != '\0' -> **pp != '\0'. + +Mon Apr 22 00:02:43 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * printcmd.c (print_scalar_formatted): Add 't' for binary. + + * dbxread.c (end_psymtab): Initialize pst->symtab. + + * core.c (core_open): Call ADD_SOLIB. + + * tm-sparc.h: Include not . + sparc-tdep.c: Don't include . + + * sun3-xdep.c [!TARGET_SUN3]: Just provide empty functions which + don't do anything. + + * core.c (core_open): Add make_cleanup (unpush_target, &core_ops). + + * Shared library/corefile changes from Peter Schauer: + core.c (core_close): Call CLEAR_SOLIB. + (core_open): Remove comment about "should deal with shared lib". + (core_xfer_memory): If we can't xfer the usual way, try the + shared libraries. + solib.c (so_list): New fields so_bfd and so_sections{,_end}. + (find_solib): Use solib_map_sections to get ld_text. + (solib_map_sections, solib_xfer_memory): New functions. + (clear_solib): Free so_sections and close so_bfd. + tm-sunos.h: Add solib_xfer_memory, solib_add. + + * sparc-tdep.c (skip_prologue): Don't skip anything unless there + is a "save" instruction in there somewhere. + + * symfile.c (symbol_file_add): Add comment. + solib.c (solib_add): Don't malloc name passed to symbol_file_add. + + * exec.c (build_section_table): If *start isn't NULL, free it. + + * stack.c (parse_frame_specification): Error if NULL selected_frame. + infcmd.c (finish_command): Error if NULL selected_frame. + inflow.c (kill_command): Deal with NULL selected_frame. + stack.c (record_selected_frame): Set *FRAMEP to NULL if there + is no selected frame. + infrun.c (restore_inferior_status): Add comment. + findvar.c (read_var_value): Check for NULL frame where we need + a frame. + breakpoint.c (get_catch_sals): Check for NULL selected_frame. + + * breakpoint.c (bpstat_print): Try all elements on the bpstat + chain before giving up with an internal error. + +Sun Apr 21 21:43:10 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * value.h, values.c (value_{,free_to_}mark): New functions. + breakpoint.c (bpstat_stop_status): Use them. + + * tm-i386v{,-g}.h: Remove N_SET_MAGIC define. + +Sat Apr 20 21:42:47 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * i386-tdep.c: Remove unnecessary #includes. + + * symtab.c (various): Change error return of find_line_common to -1. + + * coffread.c (find_linenos): Use LINESZ not sizeof (struct lineno). + + * coffread.c (end_symtab): Initialize language, dirname, and + fullname fields. + +Fri Apr 19 18:18:31 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * mips-tdep.c (mips_frame_chain): Don't chain if saved_pc == 0. + + * stddef.h (size_t): Let either _SIZE_T or _SIZE_T_ guard it. + + * mipsread.c (parse_symbol): Set startup_file_{start,end} if + entry_point is in current file. + + * findvar.c (read_register_gen): Add "target byte-order" comment. + +Wed Apr 17 17:09:48 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * i386-tdep.c (i386_get_frame_setup): Use SWAP_TARGET_AND_HOST + before returning locals or slocals. + + * i386-tdep.c (i386_follow_jump): Do not add data16 to pos in + call to codestream_seek; add one to pos if (and only if) + we are dealing with a jump with data16 == 1 (i.e. 0x66, 0xe9). + +Mon Apr 15 12:04:32 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * valops.c (call_function_by_hand): Put dummy1 in target order + before FIX_CALL_DUMMY. + + * tm-i386v.h (FIX_CALL_DUMMY): Don't depend on host byte order. + +Sun Apr 14 11:55:19 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * valops.c (push_word): Add SWAP_TARGET_AND_HOST. + + * remote.c (remote_open): Send '+' before calling putpkt(). + + * tm-i386v.h (REGISTER_VIRTUAL_TYPE): Return pointer to void, + not int, for pc, fp, and sp. + + * remote.c (remote_open): Call start_remote after putpkt("?"); + infrun.c (start_remote): Also call wait_for_inferior & normal_stop. + +Sat Apr 13 22:11:42 1991 Jim Kingdon (kingdon at spiff.cygnus.com) + + * exec.c: Include . + + * sun3-xdep.c (fetch_core_registers): Add #ifdef FP0_REGNUM. + +Fri Apr 19 09:36:50 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * tm-68k.h (NUM_REGS): Conditionalize on TARGET_SUN3 not sun. + tm-sun3.h: Define TARGET_SUN3. + + * utils.c: Use CPLUS_MARKER not '$'. + + * cplus-dem.c: Use CPLUS_MARKER not '$'. If CPLUS_MARKER isn't + defined, define it to '$'. + + * arm-opcode.h: New file (same contents as before; it had + just been left out of the distribution for a long time). + + * tm-68k.h: Put declaration of ext_format_68881 outside the macros. + + * main.c: New HAVE_SIGSETMASK #ifdefs. + + * coffread.c (read_coff_symtab): Check for "LF%" with all the + other L*% things. + + * coffread.c (SDB_TYPE): New macro. + various: Use it instead of checking against T_NULL. + + * Makefile.dist (cplus-dem.o): Hack in an #include "param.h" + before we compile it. + defs.h: Protect against multiple inclusion. + param.h: Include defs.h. + signame.c: Change #ifdef SYS_SIGLIST_MISSING to #if. + param-no-tm.h: Define SYS_SIGLIST_MISSING from USG. + +Thu Apr 18 19:49:10 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * i386-pinsn.c (OP_E): Change %d to 0x%x for consistency. + + * putenv.c: New file + Makefile.dist: Add it to $(OBS). + + * mipsread.c [!CMUCS]: #include . + + * mips-xdep.c (fetch_core_registers): #if 0 out the whole function. + + * Move read_memory_nobpt from mem-break.c to breakpoint.c. + +Mon Apr 15 21:45:35 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * utils.c (_initialize_utils): Rename "set demangle" to + "set print demangle", "set asm-demangle" to "set print + asm-demangle" and "set sevenbit-strings" to "set print + sevenbit-strings". + + * main.c (initialize_main): Rename "set history write" to + "set history save". + + * main.c (initialize_main): Rename "set caution" to + "set confirm". + + * values.c (_initialize_values): Remove "info history" alias + for (what is now) "show values". + + * infcmd.c, gdbcmd.h: Add unsetlist. + infcmd.c: Add unset_command. + (_initialize_infcmd): Add "unset" and use it for "unset env". + + * breakpoint.c (_initialize_breakpoint): Remove "unset". + + * valprint.c: Add "set/show print", {set,show}_print. + Rename "set addressprint" to "set print address". + Rename "set arrayprint" to "set print array". + Rename "set array-max" to "set print elements". + Rename "set prettyprint" to "set print pretty". + Rename "set unionprint" to "set print union". + Rename "set vtblprint" to "set print vtbl". + + * main.c: Rename version_info to show_version. + (_initialize_main): Rename "info version" to "show version". + + * values.c: Rename value_history_info to show_values. + (_initialize_values): Rename "info values" to "show values". + +Sun Apr 14 23:08:34 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * inftarg.c (child_open), remote-vx{,.68}.c (vx_proc_open): + New function to give correct error message. + +Thu Apr 11 17:19:41 1991 Jim Kingdon (kingdon at cygint.cygnus.com) + + * target.h: Add to_doc and target_preopen. + target.c: Add target_preopen and target_command. + Remove target_info. + (add_target): Call add_cmd and mess with targetlist->doc. + core.c, exec.c, remote-eb.c, remote-nindy.c, remote-vx.c, + remote-vx.68.c, inftarg.c, remote.c: Add doc field to target struct. + Call target_preopen from open routine. + + * main.c: Rename editing_info to show_commands. + (_initialize_main): Rename "info editing" to "show commands". + + * source.c: Rename directories_info to show_directories. + (_initialize_values): Rename "info directories" to "show directories". + + * values.c: Rename convenience_info to show_convenience. + (_initialize_values): Rename "info convenience" to "show convenience". + + * copying.awk (_initialize_copying): Rename "info copying" to + "show copying" and "info warranty" to "show warranty". + Rename {copying,warranty}_info to show_{copying,warranty}. + + * symfile.c: Rename add_syms_command to add_symbol_file_command. + (_initialize_symfile, add_syms_addr_command): + Rename add-syms to add-symbol-file. + +Thu Apr 18 18:08:30 1991 John Gilmore (gnu at cygint.cygnus.com) + + * symfile.h (free_named_symtabs): Rename from free_named_symtab. + * symfile.c (clear_symtab_users_once, cashier_psymtab, + free_named_symtabs): Move these routines from symmisc.c. + * symmisc.c (same): same. + (free_symtab): Make non-static. + * symtab.h (free_symtab): Declare as exported void fn now. + * dbxread.c (end_symtab, end_psymtab): Change comments. + (initialize_dbxread): Call dbx_new_init() in case the first + command is add-symbols. + * target.c (dummy_target): Permit add_syms_addr_command. + +Sat Apr 13 14:46:07 1991 John Gilmore (gnu at cygint.cygnus.com) + + Permit symbols to be superseded when new symbol files have + been read in, particularly for VxWorks. + + * dbxread.c (read_dbx_symtab): Allow N_SOL to cleanly take us back + to the main file, as well as to include files. Also, put global + functions into the global psymtab, to make "i fun" work. + (end_psymtab): Free named symtabs and psymtabs for a file, once a + new psymtab for it has been read. + * coffread.c (end_psymtab): Free named symtabs and psymtabs for + a file, once a new symtab has been read for it. + * mipsread.c: FIXME. We need to do the same for MIPS, but it + looks harder to determine the top-level block before it's been + queued to the psymtab list. + + * symfile.c (symbol_file_add): Use filtered printing and wrap it. + If we have wiped out any old symbol tables, clean up at end of + symbol reading. + (symbol_file_command): Don't reference symfile_fns if it's zero. + + * symtab.h (GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK): New + defines for the blocks of a blockvector that contain global and + file-static symbols and the first of the smaller scope contours. + * symtab.c (lookup_symbol, find_pc_symtab, find_pc_line, + decode_line_1, make_symbol_completion_list): Use the above. + * coffread.c (end_symtab, patch_opaque_types): Ditto. + * dbxread.c (end_symtab): Ditto. + * expread.y (block): Ditto. + * mipsread.c (throughout): Ditto. + * symmisc.c (free_named_symtabs): Ditto. + + * symtab.c (list_symbols): Process the first symbol of the + static psymbols list. + (types_info): Restore this function from its untimely #if 0. + It's not perfect, but it is better than nothing. + (_initialize_symtab): Restore "info types". + +Thu Apr 11 05:23:19 1991 John Gilmore (gnu at cygint.cygnus.com) + + * m68k-stub.c: Remote stub for 680x0's, created from + rem-m68k.shar (which is removed). + * nindy-share/{Makefile,Onindy.c,blout.h,env.h,nindy.c,ttyflush.c}: + Remove RCS log stuff now that we use CVS and it blows our diffs. + +Wed Apr 10 14:18:06 1991 John Gilmore (gnu at cygint.cygnus.com) + + * symmisc.c (free_named_symtab): Make it work, in its current + kludgy fashion. Change result to indicate if we blew away bkpts. + * dbxread.c (end_symtab): Accumulate result from + free_named_symtab and print warning if we blew user's state. + * symfile.h: free_named_symtab now returns an int. + +Mon Apr 8 23:57:43 1991 John Gilmore (gnu at cygint.cygnus.com) + + * dbxread.c (dbx_symfile_read): Initialize psymbol list if this + is the first symbol read, even if not mainline. + (dbx_psymtab_to_symtab): symfile might be zero, cope. + * exec.c (exec_ops): Add_syms_addr is valid in our tvec. + (set_section_command): New command ("section xxx yyy" -- should + be renamed to "set section xxx yyy" FIXME) which sets the + base address of a section of the exec file, overriding the + virtual address that BFD reports. + +Fri Apr 5 17:14:39 1991 John Gilmore (gnu at cygint.cygnus.com) + + * exec.c: Add add_syms_addr_command to exec_ops, so you can + load symbols at any address while examining an exec file. + +Thu Apr 4 10:09:35 1991 John Gilmore (gnu at cygint.cygnus.com) + + * tm-i386v.h (FLOAT_INFO): Don't define it, since the code + for printing the float info is host-dependent, not + target-dependent. FIXME. + * i386-pinsn.c: Move #includes to top, remove useless ones. + * i386-tdep.c: Don't bother including <.../reg.h> since we + don't use it (and it doesn't exist on host systems). + + * ieee-float.c (ieee_extended_to_double): Convert NaN to Inf. + Convert negative numbers properly. + (ieee_test): Make numbers really random; fix format arg. + + * infcmd.c (attach_command, detach_command): Don't repeat on CR. + * core.c (core_detach): Unpush core_ops, which might not be on + top. We used to just pop the top, which broke things. Don't + need dont_repeat() any more. + (core_file_command): Psst! Don't repeat it. + * remote-nindy.c (nindy_detach): Don't need dont_repeat() now. + * expprint.c (print_subexp): Avoid switch fallthru on + BINOP_ASSIGN_MODIFY, so we can print += and such. + * frame.h: Fix typo. + * inflow.c (kill_command): After killing inferior, print our + current frame in the core file, if we have one. + (generic_mourn_inferior): When inferior dies, either select + the current frame (in the new target, e.g. core file), or + set both the current and selected frames to NULL. + + Changes from Peter Schauer. + + * infptrace.c: Avoid on USG. + + * Make all file names fit in 14 characters (sigh and damn!): + mv hp300hpux-xdep.c hp300ux-xdep.c + mv symmetry-xdep.c symm-xdep.c + mv symmetry-tdep.c symm-tdep.c + mv convex-opcode.h convx-opcode.h + mv tm-vxworks960.h tm-vx960.h + mv tm-vxworks68.h tm-vx68.h + mv Makefile.srcdir Makefile.sdir + mv gdb-int.texinfo gdbint.texinfo + mv remote-sa.m68k.shar rem-m68k.shar + mv remote-multi.shar rem-multi.shar + * Makefile.dist, README, config.gdb, convex-pinsn.c, + tconfig/symmetry, tconfig/vxworks960, tconfig/vxworks68, + xconfig/hp300hpux, xconfig/symmetry: Change names to shorter + names. + + * command.c (user_info_1, user_info): New command for listing + the user-defined commands. + +Wed Apr 3 15:00:26 1991 John Gilmore (gnu at cygint.cygnus.com) + + * dbxread.c (really_free_pendings): Clear file_symbols + and global_symbols after freeing them; otherwise, running + this function twice (if it appears twice on the cleanup + chain), we try to free things twice. + + * dbxread.c (read_dbx_symtab): Calculate end_of_text_addr + based on text_addr (the address of text in core), not on addr (the + offset between text in the .o file and in core). This change + is from Peter Schauer. + + * main.c: Define ALL_CLEANUPS as a cast of zero. + (return_to_top_level): Use it. + (main): Do all cleanups after each command run as part + of the gdb startup sequence. Also do all cleanups before + entering the command loop, and every time we exit the command + loop and reenter. Before, the cleanups from the startup sequence + were being left undone until the first error! + (command_loop): Rename do_nothing cleanup to command_loop_marker + so we can see it easily when examining the cleanup chain. + (init_signals): Add another do_nothing for signal handling. + (quit_command): Only try to kill target if it has execution. + Problems in the target stack got us into a state where + inferior_pid was nonzero but none of the targets had execution. + In this state you couldn't exit gdb. + + * dbxread.c: Two changes from Peter Schauer. + (echo_command): Fflush output after an echo command. + (show_history): Pass all args to cmd_show_list. + + * utils.c (init_malloc): Call mtrace to turn on tracing + if the environment variable MALLOC_TRACE is set to a file name. + * mtrace.c: Add source file which provides a log of every malloc, + free, and realloc to a trace file. + * mtrace.awk: Add source file which analyzes the trace file. + * Makefile.dist (GNU_MALLOC, MALLOCSRC): Add mtrace.{c,o,awk}. + (VERSION): Roll to 3.94.3. + + * breakpoint.c (breakpoint_1): Add a space to "i watch" output. + (check_duplicates): Don't bother with watchpoints. + (set_raw_breakpoint): Comment about danger of this routine. + (watch_command): Parse and eval all args before calling + set_raw_breakpoint. + + * solib.c (find_solib): Avoid error in referencing memory to + see if any more shared libraries have been added. This is + particularly useful if the target has terminated. Bug reported + by Peter Schauer. + + Changes from Peter Schauer + in bringing up 3.94.2 on the Sun-3. + + * Makefile.dist: Include CFLAGS in rule for cplus-dem.o. + * breakpoint.c (enable_breakpoint): Check for valid watchpoint + expression (in scope) before reenabling watchpoint. + * signame.c (init_sigs): Add missing declaration of i, fix + sys_siglist declaration. + * source.c (list_command): Fixed range computation to use + lines_to_list (). + * stack.c (backtrace_command): Do not allow command if target has + no stack, print informative error message. + * target.c (target_command): Do not write into command line + because this fails if the target command is used in a user defined + command. [This change was enhanced by gnu to support any- + unique-prefix matching on target names.] + * valops.c (value_struct_elt): Avoid infinite loop on an + erroneous attempt to print the member of function (try p main.p). + +Mon Apr 1 17:05:45 1991 John Gilmore (gnu at cygint.cygnus.com) + + * expread.y (name_no_typename): Avoid reduce/reduce errors + caused by ambiguity in handling NAME_OR_INT and NAME_OR_UINT. + Since the GDB parser really doesn't use name_no_typename in a + name-only context, the parser can't tell the diff between + names and numbers here. Avoid allowing a name_no_typename + to be a NAME_OR_*INT to resolve the conflict. + +Sun Mar 31 20:12:07 1991 John Gilmore (gnu at cygint.cygnus.com) + + Bugfixes from Mark Fox (markf@wrs.com) (test=testField.c): + + * valprint.c (val_print_fields): bitfield printing didn't handle + byte order. Indirect through a few more fns to cope. + + * values.c (modify_field): also cope with byte order. + +Sat Mar 23 10:02:21 1991 John Gilmore (gnu at cygint.cygnus.com) + + Cleanup for release 3.94.2: + + * Makefile.dist: Pull REMOTE_OBS. Fix saber includes for BFD + include files. Roll version to 3.94.2. + + * coffread.c (init_stringtab): Read length into unsigned char + array before swapping; don't assume 32-bit longs. + + * target.c (target_info): Don't bother with get_sym_file, just use + the symfile global variable. + * symtab.h, symfile.c (get_sym_file): Delete it. + + * dbxread.c (dbx_symfile_init): Don't depend on long == 4 bytes. + (define_symbol): Set symbol line number to 0 if not gcc-compiled. + (read_type): Replace one more error() with complain(). + + * mipsread.c (parse_partial_symbols): Replace printf with complain. + + * i960-tdep.c: Fix copyright attribution. + + * config.gdb: Quote all backquotes in doublequotes. You can + quote me on that. BSD 4.4 shell found this one. + + * infptrace.c (throughout): The third argument to ptrace is an + int *, not an int. + + * infrun.c (wait_for_inferior): When program has terminated, we + have to call target_terminal_ours before we pop that target off + the stack (e.g. before a call to target_kill or + target_mourn_inferior). This fixes problem where a program + terminates, then GDB stops for (tty output) and you have to type + "fg" to the shell to resume it. FIXME: This code for what to + do after termination really should be in normal_stop instead. + + * gdbcore.h (read_memory_check): Change declaration; it changed + names months ago. + + * terminal.h: Include before , since in BSD + 4.4 prereleases, this avoids a bug in their sgtty compatability + support. + * remote.c: Use terminal.h rather than hand-rolling the same. + + * signame.c, signame.h (psignal): Arg is unsigned, not int. + * utils.c (strsave, strstr): Fix arg types. + * valprint.c (val_print): lint + + MIPS symbol table support from Per Bothner: + + * symfile.c (symtab_fns): Remove initializer table that needs to + be hacked for each new symbol file format supported. + (add_symtab_fns): New function, chains symbol table + handlers into the global list. + (symfile_init): Search this list. + * symfile.h: Add next pointer, declare add_symtab_fns. + * coffread.c (_initialize_coffread): Call add_symtab_fns. + * dbxread.c (_initialize_dbxread): Call add_symtab_fns. + + * mipsread.c (psymtab_to_symtab_1): return void instead of (struct + symbol *). Thus, we no longer need the hack to trash + pst->filename. Good, since that hack confused code in symfile.c! + + (reorder_symtabs, destroy_all_symtabs): Removed static + all_symtabs, which was used to qsort symtabs in reorder_symtabs. + Instead, the latter now uses a temporary array (stack-allocated + from an obstack, and then freed). + + (parse_symbol): Added a hack to fix up BLOCK_{START,END} if they + haven't been set in the outermost stBlock of a procedure. This was + a problem with f77 binaries on Ultrix 4.?. + + (new_symtab, new_symbol, new_type): Continue changing code to use + obstacks more and otherwise conform to dbxread internal style. + Made the free_code of symtabs be free_linetable (as in dbxread) + instead of free_contents. This implies memory leaks when reading + a new symbol table, until the conversion is finished. Did change + (struct symbol) and (struct type) to be allocated on the + symbol_obstack. Blocks and blockvectors are among the things + still "leaking." + + * mipsread.c (parse_partial_symbols, parse_fdr): It hasn't been + tested much, but it solved one problem (reported by Meissner), and + cleans up some other things. The problem happened when an + included file contains actual code (functions) and not just + definitions. The mips coff is a little inconvenient there, since + it may cause a procedure to be mapped to the wrong psymtab. + + * mips-tdep.c (heuristic_proc_desc): Minor cleanup. + * mips-xdep.c (fetch_core_registers): Minor cleanup. FIXME, + this will need work for the new core paradigm. + + Opcode patches from the net: + + * mips-opcode.h: fix incorrect disassembly of the mfc1, cfc1, and + ctc1 instructions. Also, the cvt.d.w and cvt.s.w instructions were + missing altogether - they are added here. From Bruce Bauman. + * mips-opcode.h: The low mask for C0 instructions was too small. + From Garrett Lau. I modified the fix to check the entire 32-bit + opcode. + + * ns32k-opcode.h: Fix opcodes for deiw and deid. From Bruce + Bauman. + +Thu Mar 21 12:56:46 1991 John Gilmore (gnu at cygint.cygnus.com) + + Roll in changes from Per Bothner (Tue, 25 Sep 90 11:11:04): + + * dbxread.c (read_type): Pointer subtraction (value_sub in + valarith.c) sometimes failed because the types of the + pointers being subtracted were not identical. + These differed because dbxread.c was allocating pointer types + using dbx_alloc_type+smash_to_pointer_type instead of + lookup_pointer_type. I failed to find a justification for the + former, so I changed it to use the latter. Similarly, I + replaced smash_to_function_type by lookup_function_type, + and smash_to_reference_type by lookup_reference_type. + + * mipsread.c (parse_symbol, upgrade_type, parse_procedure, + _initialize_mipsread): corresponding changes. + + * symtab.c (smash_to_{pointer,reference,function}_type): eliminate. + + * source.c (mod_path): Do tilde_expand on each component of the path, + rather than on the (list of) paths as a whole. + (print_source_lines): Set first_line_listed in addition to + current_source_symtab and current_source_line. If the source was + not findable, after a "dir" command to fix the problem, + a "list" would get the wrong lines. + + While I was there... (gnu): + + * dbxread.c (read_type): Change error to complaint. + +Thu Mar 21 12:56:46 1991 John Gilmore (gnu at cygint.cygnus.com) + + First attempt at detailed understanding of symbol table memory alloc. + + * dbxread.c (dbx_symfile_read): Free our string table if we + aren't the mainline. Free the "info" struct since we're done with + it. + (init_psymbol_list): Free any previously allocated psymbol lists. + (): FIXME: Should realloc-down the psymbol lists when done reading + the main symbol file? + + * symmisc.c (free_symtab): Free fullname field too. + + * xm-hp300hpux.h (USG): #undef then #define so Makefile can -D. + (REGISTER_ADDR): Make result type unsigned int. + + * xconfig/{i386*,hp300hpux,altosgas,altos}: All config files that + define REGEX must also define REGEX1 (its dependency). + +Tue Mar 19 21:28:57 1991 John Gilmore (gnu at cygint.cygnus.com) + + * tconfig/i960: No longer works, points you at vxworks960 or + nindy960. + + * xgdb.c, XGDB-README: Remove file. Users can get the much + better xxgdb. + * Makefile.dist: Remove all trace of xgdb. + + * breakpoint.c (breakpoint_1): Pass demangle arg to + print_address_symbolic. + (clear_breakpoints): Remove unused function. + (breakpoint_re_set_one): Guts of breakpoint_re_set. + (breakpoint_re_set): Use catch_errors to do them all anyway. + + * gdb-int.texinfo (Host versus Target): Add section on what is + a "host" feature versus what is a "target" feature. + + * infcmd.c (path_command, path_info): Handle the PATH variable + (object search path) as conveniently as the source search path. + * environ.c (set_in_environ): Set some vars in GDB's environment, + in addition to the child's. PATH, G960BASE, G960BIN for starters. + * source.c (mod_path): New function, from guts of + directory_command, modifies a path. Used by path_command. + (directory_command): Call it. + * defs.h (strsave): Declare. + + * utils.c (sevenbit_strings): Add new printing option. + (printchar): Use it. + (strsave): Provide this handy helper routine. + (set_width_command): Rename set_screen_width_command. + (_initialize_utils): "set screen-width" => "set width"; + "set screen-height" => "set height"; add sevenbit-strings. + + * infcmd.c (do_registers_info): Print floating point registers + in raw hex as well as float format, regardless of whether it is + a "virtual" convertible register. + * tm-sparc.h (PRINT_REGISTER_HOOK): Print every pair of float + regs as a double, just in case it's being used that way. + * values.c (unpack_long): Comment on array/function coercion. + (unpack_double): Argument is in target byte order now. For + integer arguments, just call unpack_long and float the result. + * m68k-tdep.c: include defs.h for "const" handling. + * remote-nindy.c: Use ieee-float stuff. + (nindy_fetch_registers): Unpack double regs to host double, then + to extended. + (nindy_store_registers): Pack extendeds to host double, flip + around by misusing unpack_double, send as target double. + + * tm-vxworks68.h (FRAME_CHAIN): Handle current frame pointer of + zero, as when stopped at the first instruction of a process. + + * blockframe.c: Fix filename in comment (param.h => tm.h). + * sparc-tdep.c (skip_prologue): More explicit nudging comments. + * tm-68k.h: Fix typos. + +Fri Mar 15 01:09:34 1991 John Gilmore (gnu at cygint.cygnus.com) + + Changes from a bringup on the DEC Vax under Ultrix 4.0. + + * coredep.c (fetch_core_registers): Pass end-address of register + section to register_addr as expected. Don't call supply_register + if we'd just pass it garbage. + + * dbxread.c (read_dbx_symtab): Skip N_NSYMS on Ultrix. + + * exec.c (xfer_memory): Use boolean xfer_fn result, not int. + + * target.c (push_target, target_info): Cast enums to int for < or + > comparison. + + * stack.c (print_frame_info): Identify source file & line + even if we can't print it. + + * xm-vax.h (MISSING_VPRINTF): No longer missing in Ultrix V4.0. + +Sat Mar 9 10:08:20 1991 John Gilmore (gnu at cygint.cygnus.com) + + Clean up IEEE floating point support. + + * ieee-float.h: New file. + * ieee-float.c: Write real routines to convert between host + doubles and various target IEEE extendeds. + * m68k-xdep.c: Eliminate assembler code for extended floats. + * xconfig/{3b1,altos,altosgas,hp300bsd,isi,news,news1000,sun2os3, + sun2os4,sun3,sun3os3,sun3os4}: Eliminate use of m68k-xdep.o. + * tm-i960.h, tm-68k.h (REGISTER_CONVERT_TO_VIRTUAL, + REGISTER_CONVERT_TO_RAW): Use ieee_extended_to_double and + double_to_ieee_extended. + * i960-tdep.c: Define ext_format_i960. + * m68k-tdep.c: Define ext_format_68881. + * sparc-tdep.c: Define ext_format_sparc, though unused. + * Makefile.dist (HFILES): Add ieee-float.h. + * inftarg.c: #include "ieee-float.h" for the REGISTER_CONVERT + macros. + + Obsolete the "coffstrip" program in favor of using BFD's strip. + + * nindy-share/coffstrip.c: Remove file. + * nindy-share/nindy.c (coffstrip): Routine to run bfd_strip. + * Makefile.dist: Remove references to nindy-share/coffstrip.c. + * tconfig/nindy960: Remove reference to coffstrip.o. + + * Makefile.dist: Roll version number to 3.94.1 (not yet final). + +Wed Mar 6 09:56:45 1991 John Gilmore (gnu at cygint.cygnus.com) + + * symfile.h: Add symfile_bfd, common between dbxread and coffread. + * dbxread.c: Remove static symfile_bfd. + * infcmd.c (do_registers_info): Add PRINT_REGISTER_HOOK, though + it is not used yet. + * inftarg.c (child_detach): Pop the child_ops vector if the + detach is successful. + * remote-nindy.c (nindy_create_inferior): Don't push a new + nindy_ops since nindy uses the same one for execution and memory + examination anyway. + * core.c (core_ops): Use child_attach and child_create_inferior + rather than default attach and create_inferior functions. + + Handle floating point registers in core files. + + * sparc-xdep.c (fetch_core_registers): Rewrite for float support. + * sun3-xdep.c (fetch_core_registers): Rewrite for float support. + This version untested since BFD doesn't yet support sun3 core + files. + * hp300hpux-xdep.c: Rewrite fetch_core_registers to new calling + conventions. Fix comments and style. This version has not + been compiled yet, since we have no HP inhouse. + * core.c (get_core_registers): Look for two sections, ".reg" + and ".reg2", and pass both to fetch_core_registers sequentially. + + Revise directory path yet again. + + * source.c (forget_cached_source_info): Not static any more. + (init_source_path): New default source path is "$cdir:$cwd". + (dir_command): Handle variable arguments ($cdir, $cwd). + (source_info): Print "Compilation directory" rather than + "Originally compiled in" to remind people of $cdir. + (openp): If the path contains $cwd, use current directory. + (open_source_file): If compilation directory is known, replace + first $cdir in path with the compilation directory. + (print_source_lines): Even if we can't print the lines, set the + current symtab and line for future commands like "info source" or + "breakpoint". Also, error message now contains the file name, + line number, and file access error message. + (_initialize_source): Fix help text to describe changes. + * main.c (cd_command): Forget cached source info when we chdir. + * utils.c (strstr): Add simple implementation. + +Tue Mar 5 01:41:40 1991 John Gilmore (gnu at fowanton.cygnus.com) + + * coffread.c (read_one_sym, init_linetable, init_stringtab): + Byte-swap COFF symbol tables if necessary when reading them in. + Use complain() to replace error message in one spot. Needs + corresponding change in bfd/coff-code.h to make some symbol + swapping routines non-static. + +Mon Mar 4 00:53:40 1991 John Gilmore (gnu at cygint.cygnus.com) + + Merge changes from Eirik Fuller, for UTek. + + * defs.h (errno): Add declaration. + * altos-xdep.c, arm-xdep.c, convex-xdep.c, gould-xdep.c, + hp300hpux-xdep.c, infrun.c, inflow.c, infptrace.c, i386-tdep.c, + i386-xdep.c, pyr-xdep.c, mips-xdep.c, remote-eb.c, remote-nindy.c, + remote-vx.c, source.c, standalone.c, stuff.c, sun386-xdep.c, + symmetry-tdep.c, symmetry-xdep.c, umax-xdep.c, utils.c: Eliminate + declarations of errno. + + * remote-eb.c: Define B19200 and B38400 as EXTA and EXTB. + + * remote-vx.c: Include for UTek; Sun gets it via + and . + +Sat Mar 2 15:47:55 1991 John Gilmore (gnu at cygint.cygnus.com) + + * i960-tdep.c (examine_prologue): Add new argument limit, + which stops the scan at the end of the prologue, or at the PC. + This fixes a problem where it walks down into the code for the + user's statements if that code looks like function prologues. + Mark Fox and I have been bouncing this code back and forth, making + small changes to it. Callers changed to match. + +Tue Feb 26 01:47:07 1991 Cygnus John Gilmore (cygnus at yuba) + + Cleanup for gdb-3.94 release final: + + * Makefile.dist: Remove remote-vx.c, remote-nindy.c, and all + the .c files from vx-share and nindy-share, from the various + macros, since they are not found via ALLDEPFILES. + (SFILES): Add tm-i960.h. + (alldeps.mak rule): Break out ALLDEPFILES_MAINDIR and + ALLDEPFILES_SUBDIR. List all the nindy and vxworks subdir files + in the SUBDIR list. + (TAGFILES_MAINDIR): Change ALLDEPFILES to ALLDEPFILES_MAINDIR. + (gdb.tar.Z): Use ALLDEPFILES_SUBDIR as well as SFILES_SUBDIR. + +Mon Feb 25 16:02:35 1991 Cygnus John Gilmore (cygnus at oldman) + + * am29k-tdep.c: Add contribution line. + (examine_prologue): Cache information about function prologues in + the misc-function-vector to avoid lots of references over the + serial line while examining instructions. + + * core.c (core_close): New function made from cleanup_core. + + * core.c, exec.c, inftarg.c, remote-eb.c, remote-nindy.c, + remote-vx.c, remote.c, target.c, target.h, + Update target_ops vector to add attach, close, and load entries. + Use add_syms_addr_command, not add_file_addr_command, for + add_file. Break out close routine from existing code. + + * dbxread.c (really_free_pendings): Don't free pending_blocks; + they are in an obstack. + (read_dbx_symtab): Relocate end_of_text_addr in the psymtab. + Lint. + (define_symbol): Add symbol type parameter; change callers; + pass type parameter to DBX_PARM_SYMBOL_CLASS macro to allow + it to influence the symbol class on the i960. + (define_symbol): Swap LOC_CONST's into target byte order. + + * exec.c (exec_close): New function. + (exec_file_command): Call it. + + * findvar.c (read_relative_register_raw_bytes): Doc byte order, + Fix byte order of frame pointer. + (read_var_value): Result of 0 if var's value can't be found, + e.g. missing FRAME_ARGS_ADDRESS. Byte-swap LOC_CONST and + LOC_LABEL values to target order. Add LOC_LOCAL_ARG. + (locate_var_value): Use read_var_value and use its lazy address + as the location of the var's value. Lint. + + * i960-pinsn.c (next_insn): Add routine from vxgdb for scanning + instructions. + + * i960-tdep.c (arg_address, i960_frame_find_saved_regs): Remove + obsolete Intel versions in favor of vxgdb versions. + (check_host, byteswap, byteswap_val, reorder_val): Eliminate + code dealing with byte order of values, which Intel did in host byte + order rather than gdb-4's target byte order. + (i960_frame_chain_valid): Move to nindy-tdep.c. + (examine_prologue, skip_prologue, frame_find_saved_regs, + frame_args_address, leafproc_return, saved_pc_after_call, + pop_frame): Add vxgdb versions from Mark Fox. + (examine_prologue, frame_struct_result_address): Add code + to deal with the saved value of G13 (struct return address + pointer). + (frame_args_address): Modify Mark's version to prefer the + saved value over the current value in the topmost frame. + Cache result in the frame info to avoid performance hair in + callers. + (print_fault): Add gdb960 code for printing faults. + (_initialize_i960): Actually call check_host. + + * ieee-float.c (ieee_extended_to_double, ieee_double_to_extended): + add stub routines. FIXME, these currently just return zero! + + * infcmd.c (program_info): Use PRINT_RANDOM_SIGNAL. + (attach_command): Call target_attach, not target_open, now. + + * infrun.c (normal_stop): Make global, not static, for vx_attach. + (child_attach): Rename from child_open. + (wait_for_inferior): Use PRINT_RANDOM_SIGNAL. If stop_pc is zero, + don't confuse it with a zero step_resume_break_address. + + * inftarg.c (child_detach): Eliminate inferior_pid test. + (child_files_info): Clean up message a bit. + (child_ops): Use child_attach, not child_open, to attach. + + * mem-break.c: #ifdef out the whole file if BREAKPOINT is not + set (e.g. on VxWorks or NINDY). Move read_memory_nobpt from + findvar.c to here, since it depends on the contents of the + shadow_contents of breakpoints, but keep if #if 0 since it is + never called. + + * nindy-tdep.c: New file, contains nindy_frame_chain_valid, moved + from i960-tdep.c. + + * printcmd.c (address_info): Handle LOC_LOCAL_ARG. Lint. + (ptype_command, display_command): Eliminate have_inferior_p and + have_core_file_p in favor of target_has_stack or + target_has_execution. + (print_frame_args): Handle LOC_LOCAL_ARG. Eliminate duplicate + code for actually finding the values of arguments, though we still + keep track of the maximum stack offset for use in printing unnamed + arguments. Handle missing FRAME_ARGS_ADDRESS. + + * remote-nindy.c (i960_print_fault): Move to i960-tdep.c. + (struct nindy_regs): Define registers passed to/from nindy. + (nindy_fetch_registers, nindy_store-registers): Translate between + nindy and GDB formats for the registers. + (dcache_init): Statically allocate the cache, since it was being + allocated by a malloc that was never freed anyway. + (nindy_create_inferior): Error, not core dump, if no exec file. + (nindy_before_main_loop): Use target_load, not target_add_file. + + * remote-vx.c (net_load): Specify large timeout for load + requests. Allow user to break out with INTERRUPT. + (net_break): Remove useless code, clean up. Change callers. + (parse-args, skip_white_space, find_white_space): Clean up arg + parsing to cope with quoted strings. + (net_wait, net_quit): Never call error, just return status. + (vx_read_register, vx_write_register): Cleanup status checking. + #ifdef the code based on which CPU we are using (960 or 68k), + FIXME, this should be completely general but it isn't yet. + (vx_xfer_memory, vx_resume): Cleanup status checking. + (vx_run_files_info): Improve message. + (vx_load_command): Renamed from vx_add_file_command. Allow load + to be interrupted. + (net_ptrace): Remove unused routine. + (vx_wait): Adopt code from vxgdb960 to cope with broken + connections to target machine and prompt to disconnect. Remove + debug printouts. Map some EVENT_'s to SIGnals. + (add_symbol_stub, vx_open): Print names of object files we found, + and "ok" if we read their symbols OK. Clarify output in general. + (vx_attach, vx_detach, vx_kill): Add these commands. + (vx_convert_from_virtual, vx_convert_to_virtual): Simplify. + (vx_run_ops): Turn off all_mem, to avoid spurious msg in the + "info files" output, and create_inferior, since we already have + an inferior. + + * stack.c (frame_info): Replace Frame_unknown with 0. + (print_frame_arg_vars): Handle LOC_LOCAL_ARG. + (return_command): Pop until the PC matches as well as the FP, + so it works even if the FP is shared with another function, + as in "frameless" or "leaf" procedures. + + * symfile.c (load_command): renamed from add_file_target_command. + (add_syms_addr_command): renamed from add_file_addr_command. + (add_syms_command): Stub to call target_add_syms. + (_initialize_symfile): Change command names and descriptions, + add-file => add-syms, and load from alias to its own command. + + * target.c (kill_or_be_killed, maybe_kill_then_attach, + maybe_kill_then_create_inferior): Default for attempts to start + a process, if one is already running, is to ask about killing + it and retry if yes. + (upstack_create_inferior): #if-0 it, strata obsolete it. + (push_target, unpush_target, pop_target): to_close() a target + before unstacking it. + (target_info): Renamed from target_files_info. + (_initialize_targets): Rename "i files" as "i target", accessible + under both names. + + * target.h: Improve comments about the target_ vectored routines. + + * tm-i960.h: Remove NINDY-specific stuff to tm-nindy960.h. + Convert commenting style to standard GNU style. + (DBX_PARM_SYMBOL_CLASS): allow LOC_LOCAL_ARG's to be recognized. + (SKIP_PROLOGUE): No longer a no-op. + (SAVED_PC_AFTER_CALL): Now handles leaf procedures. + (*_REGNUM): Sort register numbers. + (REGISTER_BYTES, REGISTER_BYTE, REGISTER_RAW_SIZE, + MAX_REGISTER_RAW_SIZE, REGISTER_CONVERTIBLE, + REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Float regs + are now 10 byte extendeds, not 8 byte doubles. + (FRAME_CHAIN_VALID): Make this config-dependent, since it differs + for nindy versus vxworks targets. FIXME, this should possibly go + in the target vector. + (EXTRA_FRAME_INFO, INIT_EXTRA_FRAME_INFO): Cache both + frame_saved_regs and arg pointer with each frame. + (FRAMELESS_FUNCTION_INVOCATION): New leafproc support. + (FRAME_ARGS_ADDRESS): Use cached result. + (FRAME_ARGS_ADDRESS_CORRECT): New, avoids g14 guessing. + (FRAME_FIND_SAVED_REGS): Change arg to subsidiary fn. + (PRINT_RAMDON_SIGNAL): Call print_fault. + (POP_FRAME): Now works. + + * tm-nindy960.h: Break this off tm-i960.h. NINDY-specific + option parsing and startup; STACK_END_ADDR, FRAME_CHAIN_VALID, + BREAKPOINT, and DECR_PC_AFTER_BREAK are here. + (ADDITIONAL_OPTION_HANDLER): use target_load, not + target_add_file. + + * tm-vxworks960.h: Break this off tm-i960.h. VxGDB specific + startup; DECR_PC_AFTER_BREAK, and FRAME_CHAIN_VALID are here. + + * valarith.c (value_subscripted_rvalue): Avoid handling + floats and doubles specially; it gave alignment errors. Lint. + + * valops.c (value_of_variable, value_of_this): Error if unknown + value. + + * valprint.c (print_floating): Bcopy rather than pointer-deref, + to avoid alignment problems. + (value_print): Handle unknown value address. + (cplus_val_print): Two args are ignored; remove them. Change caller. + (val_print): Use unpack_long rather than pointer-deref. + + * values.c: Lint. + (unpack_long, unpack_double): Use bcopy rather than pointer-deref + to avoid alignment problems. + (value_being_returned): Error if return value unknown. + (set_return_value): Add bogosity warning, FIXME. * + + * TODO: A woman's work is never done. + + * Makefile.dist: Distribute REMOTE_OBS into tconfig files. + Separate INCLUDE_CFLAGS for use with lint. Add LINTFILES. + Add ieee-float.o to OBS. + * tconfig/{nindy960,vxworks68,vxworks960}: Include the desired + REMOTE_OBS remote-interface files in the TDEPFILES and TM_FILE. + * tconfig/i960: FIXME. Half-merge, produce warning if config'd. + + Changes to generalize the VxWorks RPC protocol slightly, to handle + i960 as well as 68000. + + * vx-share/dbgRpcLib.h (VX_SOURCE_STEP): Add. + * vx-share/reg.h: Produce i960 regs #ifdef I80960 + * vx-share/xdr_ptrace.c: Skip FPA registers if 960. + * vx-share/xdr_rdb.h: Add SOURCE_STEP struct and xdr decl. + * vx-share/xdr_rdb.c: Add xdr_SOURCE_STEP routine. + * vx-share/xdr_regs.c: Add xdr_regs, xdr_fp_status, xdr_ext_fp + for i960. Change xdr_vectors to xdr_opaques for 68k registers, + so they will move in target byte order rather than network + byte order (happens to be the same). + +Mon Feb 25 03:41:44 1991 John Gilmore (gnu at cygint.cygnus.com) + + * tm-convex.h (END_OF_TEXT_DEFAULT): Remove #if 0'd block. + +Sun Feb 24 00:55:53 1991 John Gilmore (gnu at cygint.cygnus.com) + + * am29k-pinsn.c, + Add contribution lines to various files, showing where they + came from. + + * breakpoint.c (break_insn, check_break_insn_size, + read_memory_nobpt): Remove to mem-break.c. + + * xm-*.h, param-no-tm.h, tm-29k.h, valprint.c: Change BYTE_ORDER to + HOST_BYTE_ORDER. + + * tm-29k.h (STAB_REG_TO_REGNUM): Warn user if symbol table + entry has bad register number. This change is not + tested in this release, FIXME. + + * frame.h: Eliminate Frame_unknown in favor of a simple zero. + tm-vax.h: Ditto. + + * value.h: Force value's contents field to be aligned to hold + at least a double or a long long (if supported). This avoids + doing bcopy's in and out of the contents field. + + (step_1): Avoid coredump under obscure circumstances when we + have no frame. + + * symtab.h (misc_info): Add field to misc function vector for + any kind of cached information the target code desires. AMD + 29000 uses this to avoid repeating examine_function_prologue's. + + * coffread.c: Lint. Remove static symfile, read_section_header. + core.c (have_core_file_p): Lint: remove. + expprint.c (print_subexp): Lint. + infptrace.c, valops.c, valprint.c: lint. + + Roll in changes from vxgdb-5.0.1: + + * symtab.h: Comment byte order of each address class. Add + LOC_LOCAL_ARG for frame-relative args (960). + expread.y: Use LOC_LOCAL_ARG where LOC_ARG is used. + symtab.c, symmisc.c: ditto. + + * infrun.c (init_wait_for_inferior): Clear stop_signal. + + * remote.c (remote_resume): Error if resume with a signal. + + * symfile.c (prim_record_misc_function): Clear misc_info. + (fill_in_vptr_fieldno): Check stub type of arg. + + * valops.c (value_cast): Avoid looking up names of types whose + name we don't know, to prevent coredump. Sun CC produces typedef + rtx and the name of *rtx is zero... + +Mon Feb 18 21:16:25 1991 John Gilmore (gnu at cygint.cygnus.com) + + Roll in changes from final AMD 29000 port (Tiemann). + + tconfig/am29k: Add COFF_ENCAPSULATE and TARGET=TARGET_AM29K + for ../include/a.out.encap.h. This might not work now that BFD + is separately compiled. Instead, BFD support for encap will have + to translate machine type 29k into the right COFF_MAGIC. + + * infcmd.c: Remove references to inferior_pid that aren't used + in actual ptrace calls; use target_has_execution, etc. + (have_inferior_p): Remove function. + (program_info): Print target info rather than "process number"; + avoid gratuitous messages unless from_tty. + (run_stack_dummy, finish_command): Set proceed_to_finish. + infrun.c: Remove inferior_pid refs. Decl & init proceed_to_finish. + main.c: Lint. Lose have_inferior_p(). + inferior.h (have_inferior_p): Remove, lint. + (proceed_to_finish): Add flag to ask that all regs be saved + by normal_stop, for the few commands that need it, speeding up + serial I/O. Add comments to stop_registers. + + * remote-eb.c: Remove newline from breakpoint message we grep + for. Never time out when running the user program. + + + +Wed Feb 13 15:34:40 1991 John Gilmore (gnu at cygint.cygnus.com) + + Roll in changes from vxgdb-5.0.1: + + * dbxread.c (read_dbx_symtab): If we encounter a "FORTRAN COMMON" + symbol in its raw form, we are processing an unlinked ".o" file. + See if the target environment has assigned it an address, using + target_lookup_symbol (VxWorks does), and enter it into the symtab + that way. + + * tm-vxworks.h (FRAME_CHAIN, FRAME_CHAIN_VALID): Override usual + 68k versions for a simpler version that assumes zero FP at bottom. + Fixes bug of truncated stack reports. + + * target.h (target_lookup_symbol): Define this routine's args + and result, finally. + + * target.c (nosymbol): Default routine for target_lookup_symbol. + (target_default): Default lookup_symbol and call_function too. + (files_info): Only print has_all_memory warning if a non-dummy + target follows. + + * remote-vx.c (vx_read_register, vx_convert_to_virtual, + vx_convert_from_virtual): If target does not have floating point, + zero register "values", and avoid doing cross-net conversions. + (vx_lookup_symbol): Rename net_lookup_symbol, add to vectors. + (vx_open): Rearrange code that attaches to target and reads + symbols for all loaded modules, to work if some of the modules + are not accessible. Add symbol_stub() and add_symbol_stub() + as callbacks from catch_errors(). Allow connect attempt to be + interrupted painlessly with ^C (FIXME, there are still some bugs + if the interrupt happens during symbol reading.). Print + final message with puts_filtered, since symbol messages are + now filtered too. + + Misc cleanup: + + * main.c (catch_errors): Only print errstring if non-null. + (command_loop): Avoid an ioctl per command to test ISATTY. + + * remote-vx.c (net_load): make static; avoid sophomoric msg. + (vx_xfer_memory): Return correct result! + (vx_files_info): Indicate whether target has float or not. + (vx_lookup_symbol): Complain, not error, if target gone. + (vx_open): Print "Connected" msg before disabling immediate-quit. + [FIXME: lookup_symbol and vx_open changes need testing.] + + target.c, remote-eb.c, inftarg.c, am29k-opcode.h, target.h, + tm-29k.h, tmm-vxworks68.h, symfile.c, gdb-int.texinfo: Add + contributor lines and update copyrights to 1991. + + Changes from an attempted H-PUX host port: + + * infptrace.c (PT_ATTACH, PT_DETACH): Handle HP/UX, which + defines PT_ATTACH and PT_DETACH but not PT_KILL. + * remote-eb.c (eb_open): Misplaced endif kills sysv H/PUX. + * remote-vx.c: include for HPUX. + * hp300hpux-xdep.c (fetch_core_registers): Rewrite old + "core_file_command" routine to BFD regime. May not work yet. + + Attempted port of "gdb-3.4 Van Jacobson xgdb" to modern gdb. + + * xgdb.c: Replace X10 version with some VJ version. + (FIXME: Its copyright assignment is not on record.) + * xgdb.c: Update include files to X11R4 (Xaw crud). + (xgdb_display_source, create_text_widget): fix call to + get_filename_and_charpos. Rewack source window stuff for X11R4 + (gleaned from include files, and "nm's" of binary libraries, since + I had no doc available). + (append_selection, append_selection_word): Disable with FIXME + since R4 changed interface here. + (create_buttons): Add back the old set of buttons. + (xgdb_create_window): Fix call to XtInitialize (&argc not argc). + + * Makefile.dist (xgdb, xgdb-init.c): Update for X11R4 on Suns. + Roll VERSION to 3.94 (not yet final though). + +Sat Feb 9 09:46:25 1991 John Gilmore (gnu at cygint.cygnus.com) + + * obstack.h (obstack_ptr_grow, obstack_ptr_grow_fast, + obstack_int_grow, obstack_int_grow_fast): Eliminate + cast on left of assignment, which gives MIPS cc fits and is + not Standard C. + + * sparc-pinsn.c (print_insn): Eliminate 'set' test, subsumed by + F_ALIAS. Use printf, not fprintf, when not passing a file + pointer... + (compare_opcodes): Check that identical instructions have + identical opcodes, complain otherwise. + + * sparc-opcode.h (st %fsr): Fix opcode "lose" mask. This + was reported by Roland McGrath. + (unimp): Only match if exactly zero instruction. (Roland) + (branches and traps): Generate all variations of these + instructions with macros, based on a single call that defines + each condition name and its binary representation. + (set): Turn on alias bit, to avoid test in sparc-pinsn.c. + + * valprint.c (val_print_fields): Take, and use, format parameter. + This means that "p/x struct" again prints the elements in the + desired format. Changed callers. + + * stack.c (frame_info): Use filtered output, and indicate wrap + points. Remove kludgy formatting designed to avoid line wrap. + + * utils.c (wrap_here): If the line is already full (because + we had printed a long indent or long wrapped string), do an + immediate newline-and-indent. + + * m68k-pinsn.c (print_insn_arg): Bugfix from + ntmtv!thompson@ames.arc.nasa.gov (Mike Thompson): 'bkpt #0' + instruction is incorrectly disassembled as bkpt #8. + + * dbxread.c (end_psymtab): Bugfix from Peter Schauer + : If you want to set a + breakpoint in a *.y file gdb will say Reading in symbols for *.y... + and then will dump core (sometimes). I traced it back to an + uninitialized symfile_name in psymtab_to_symtab. + (const_vol_complaint): Add quotes to message. + (define_symbol): Only believe line number if gcc_compiled. + Avoid allocating symbol if we will not return it. + + Add target strata support so that newly established targets go + into their right place in the target stack (e.g. a new exec file + doesn't wipe out the ability to access the running process). + + * target.h, core.c, exec.c, inftarg.c, remote-eb.c, + remote-nindy.c, remote-vx.c, remote.c, target.c: Add to_stratum + and initialize it properly in all the targets. + + * target.h: Document strata. Change return type of push_target. + + * target.c (nomemory): new function for dummy memory access. + (tcomplain): Rename complain, now also used in symfile.c. + (push_target): Push targets within strata. New return value shows + whether new target is on top of stack or not. Always keep dummy + target on stack. + (target_files_info): Ignore dummy target. + + * core.c (core_open): Warn user, and skip accessing file, if the + core target is not the topmost target in the stack. + * remote-nindy.c (nindy_create_inferior): Avoid unpush_target, now + already handled. + + * remote-vx.c: Remove vx_prepare_to_store from vxworks memory + target_ops, it doesn't belong there since we have no regs there. + Change name of target from machine => memory to clarify. + +Thu Feb 7 16:32:09 1991 John Gilmore (gnu at spiff.cygnus.com) + + * Freeze version 3.93 for release. + + * Makefile.dist: Handle vx-share and nindy-share subdirs + properly when building gdb.tar.Z. + + * symtab.c: lint; add no_symtab_msg to consolidate the messages + printed in various places, so I could change just one copy. + + * dbxread.c, coffread.c: Change references to bfd->iostream + to cast to FILE *, now that BFD avoids needing types defined + in other header files. + +Tue Feb 5 21:39:35 1991 John Gilmore (gnu at cygint.cygnus.com) + + * command.c, dbxread.c, expprint.c, infcmd.c, infptrace.c, + infrun.c, printcmd.c, remote-nindy.c, source.c, sparc-tdep.c, + sparc-xdep.c, symfile.h, symmisc.c, utils.c, valprint.c: Lint + (actually gcc -Wall). + + * dbxread.c: Remove first_global_sym, last_global_sym, since + they are never referenced. + + * defs.h (baud_rate): Declare. + main.c: Define it, and add the -b option to set it. + + * gdb-int.texinfo: Add text on how to define a new host or target + architecture, prompted by Per Bothner's questions about MIPS + support. + + * gdb.texinfo: Document "complaints". Change doc of -q since + gdb no longer prints the copyright and blurb if you specify a file + name to be debugged (just like Emacs). Add doc for Nindy-specific + command line flags for specifying target serial port and such. + Update copyright to 1991. + + * gdbcore.h: Remove a large mass of now-useless crud, since BFD + has taken over for us the job of ripping up executable files. The + crud caused Per Bothner's port to not compile. + + * infrun.c (normal_stop): Avoid printing "Program exited + normally" if we are in batch mode. This allows a GDB which + executes a program on a target system, to behave like a Unix + command (input from stdin, output to stdout, no extraneous + output). + + * main.c (main): Allow additional machine-dependent command line + options to be specified with the ADDITIONAL_OPTIONS, + ADDITIONAL_OPTION_CASES, ADDITIONAL_OPTION_HELP, and + ADDITIONAL_OPTION_HANDLER macros. Also allow machine-dependent + processing to occur just before the main loop with + BEFORE_MAIN_LOOP_HOOK. + (main): If a "core file" argument is specified, and it is not a + core file, try it as a process ID to attach. + (symbol_completion_function): Attempt to cope with + "show screen-" TAB, not very successfully. This needs more work, + FIXME. + (batch_file): New function, returns whether we are reading + commands from an interactive tty on stdin, or from somewhere else. + Called by normal_stop since it doesn't get from_tty passed down + to it like many commands do. + + * remote-nindy.c: Handle command line options for nindy + connection. + (nindy_before_main_loop): Prompt user for tty name if they + don't specify it before getting to the interactive command loop. + + * tm-i960.c: Add ADDITIONAL_OPTIONS, etc, to handle -O, -brk, + and -r command line options. Also add hook before main loop + to make it easy to specify a tty. + + * TODO: More things to do, one done. + +Mon Feb 4 23:57:39 1991 John Gilmore and Mike Tiemann (at cygint.cygnus.com) + + * dbxread.c: Make complaint() calls pass pointer, not struct. + Add complaints about badly formatted C++ type information + (const/volatile indicator, and parse errors resulting in + error_type). Fix C++ virtual member fn comment. + (read_struct_type): Avoid bumping pointer if we got a parse + error; this prevents our walking beyond the end of a string. + Terminate loop on null char as well as semicolon. + (process_one_symbol): Fix the LBRAC fix so that it uses the + last previous SLINE, FUN, or SO record's PC address. C++ debug + symbols did not have SLINE records in a useful order compared + to the LBRAC records. + (define_symbol): Handle "catch" records. + + * symtab.c (check_stub_type): Added new complain + `stub_noname_complain' and added a consistency check to + keep the debugger from crashing when finishing from an + exception frame. A real fix will be needed later. + +Sat Feb 2 10:43:05 1991 John Gilmore (gnu at cygint.cygnus.com) + + * infcmd.c (attach_command): Make global. + + * Makefile.dist (REMOTE_OBS): Make these compile by default, + but make them easy to comment out. Perhaps later they should + be enabled by what CPU you configure for? FIXME. + (VERSION): Roll to 3.93. + (pinsn.o): Remove rule for obsolete file. + (dbxread.o,coffread.o,mipsread.o): Use ${srcdir} explicitly. + + Run down a problem that manifested by printing the wrong function + name in stack traces of read_ofile_symtab. Turned out that the + problem was the SunOS 4.1.1 (and previous) C compiler outputs + the LBRAC symbol with an address in the *data* segment, which + blew our binary search through the blocks. + + * dbxread.c: Use the complain() facility consistently to bitch + about problems in the symbol file we are reading. + (finish_block): Add code to check the nesting of the blocks; + complain and Procrust them to fit if wrong. + (make_blockvector): Check the order of the blocks, complain + [but don't cope] if wrong. + (process_one_symbol): ifndef SUN_FIXED_LBRAC_BUG, check LBRAC + symbols to be sure their PC value is greater than the last SLINE + (line number) symbol we've seen, complaining and adopting the + SLINE PC value if wrong. + + * symfile.h (struct complaint, complaint_root, complain, + clear_complaints): Add. + * symfile.c (complain, complaint_root, clear_complaints): Add + facility to deal with non-fatal complaints and to regularize their + suppression. + (symbol_file_add): Clear complaint counters to allow new complaints. + (initialize_symfile): Add 'set complaints' and 'show complaints'. + + * dbxread.c (dbx_symfile_read): Remember the address and size + of the string table for the main symbol file, so we won't read it + more than once. + (dbx_psymtab_to_symtab): Fix the check for main symbol file, + to avoid reading the string table yet again. Lint. + (throughout): Improve filtered output, including word wrap. + (read_range_type): Improve Bothner's fix to handle other types too. + + * utils.c: Improve line wrap implementation. Handle unlimited + width by making chars_per_line unsigned. + (puts_filtered): New, easy, function. + + * defs.h (puts_filtered): add. + + * mipsread.c (compare_symbols, sort_symtab): Remove these fns, + call the identical sort_symtab_syms() in symfile.c instead. + + * expread.y: Suggest the `file' command rather than `symbol-file'. + + * command.h (enum var_types): Add zinteger for seroable + unsigned integer. + * command.c (do_setshow_command): Handle var_zinteger. Restructure + nested if's into a switch. + + * breakpoint.c (bpstat_print): If bpstat "print" flag is not set, + we did not stop because of a breakpoint (it must have been for + some other reason, like a "stepi"), so don't print anything. + + * symtab.c: Include all the time. Now that BFD + doesn't include , old SunOS's require it for + . + +Sat Feb 2 10:39:15 1991 Per Bothner (bothner@cs.wisc.edu) + + A test port of gdb-3.92.6 to the Sony NEWS. + + * Makefile.dist + Don't normally link in remote- or vx stuff. + Some of it doesn't compile, and it wastes space for 99% of the users. + Remove reference to no-longer-used HAVE_VPRINTF. + Fixed BFD_DEP typo to BFD_DIR. + * dbxread.c + Fix cast in arg to bfd_h_getlong. + Make char *prefix be const. + Fix how certain range types are mapped into builtin unsigned int types. + * infrun.c + Remove 2 #includes. They cause errors (on Sony, at least), + and aren't needed (they wern't in earlier versions). + * printcmd.c + print_address_symbolic should never demangle labels + (since it prints *assembler-level* labels). + + [This was superseded by the change to printcmd below.] + + * utils.c + Add some "volatile" return types to avoid warnings. + If MISSING_VPRINTF add vprintf function and not just macro + (since vprintf is used in printcmd.c). + * valprint.c + Unless __GNUC__, use obstack_grow instead of obstack_ptr_grow. + (The latter isn't grokked by some PCC-based compilers.) + + [This change is in abeyance, we prefer to fix obstack_ptr_grow.] + + Make chunk size of dont_print_obstack 32*4 instead of default 4096. + * nindy-share/coffstrip.c + Added some forward declarations (otherwise, gcc complains + about implicit extern redefined as static). + +Sun Jan 20 02:38:19 1991 John Gilmore (gnu at cygint.cygnus.com) + + Changes inspired by Per Bothner: + * printcmd.c (print_address_symbolic): Take additional parameter + specifying whether to demangle. + (print_address): Pass in asm_demangle to control demangling. + (print_address_demangle): New fn, takes explicit arg to control + demangling. + * utils.c: Add new vars demangle and asm_demangle, and let them + be set and shown. + (fputs_demangled): If !demangle, just print the argument. + (fprint_symbol): If !demangle, just print raw symbol. + * valprint.c (val_print): Call print_address_demangle rather than + print_address, to cause demangling to depend on the global + rather than assembler-level demangling setting. + * WHATS.NEW, gdb.texinfo: Document. + + * main.c (show_command): Show all settings if no arg. + (initialize_main): Make "info set" the same as naked "show". + * command.c (cmd_show_list): Handle prefix commands in the + list, and print the name of the setting as well as its English + description and value. + + Allow gdb functions to specify where a line should wrap if it + exceeds the size of a terminal line. Use it to make the output + prettier. + * utils.c (set_screen_width_command): New fn, mallocs a buffer + of the right size when screen width changes. + (set_screensize_command, screensize_info): Remove #if 0'd fns. + (wrap_here): New fn, indicates a point in the output where we + should wrap the line rather than just letting it overflow at a + random place. + (fputs_filtered): Implement wrapping. + (n_spaces): New fn, returns a pointer to N spaces. + (print_spaces_filtered): Use n_spaces. + * defs.h (n_spaces): Declare. + * stack.c (print_frame_info): Wrap with 4-space indent after + fn name and before filename and line number. + * printcmd.c (print_frame_args): Wrap with 4-space indent + before each argument name is printed. + * valprint.c (value_print): Wrap with no indentation before + each repetition. + (val_print_fields): Wrap with indentation relative to nesting + level before each field name. + (val_print): Wrap with nesting indentation before array elements. + * command.c (do_setshow_command): Avoid extra newlines, + wrap with 4-space indent around values printed, end with period. + * WHATS.NEW, gdb.texinfo, gdb-int.texinfo: Document. + + * breakpoint.c (breakpoint_1): Implement addressprint for + "info breakpoints" display. Change file name and line number + format to " at file:nnn" rather than " (file line nnn)". + * gdb.texinfo: Document. + + +Fri Jan 18 07:21:25 1991 John Gilmore (gnu at cygint.cygnus.com) + + Frozen for gdb-3.92.6 release. + + README, WHATS.NEW: Update for 3.92.6 release. + + tconfig/{altos, i386v, i386v32, m88k, umax}: Eliminate + coffread.o from configs since it is now built by default. + tconfig/{3b1, altosgas, arm, convex, hp300bsd, hp300hpux, + i386v-g, i386v32-g, isi, merlin, news, news1000, np1, pn, + pyramid, symmetry, vax, vxworks68}: Eliminate dbxread.o + from configs since it is now built by default. + + Makefile.dist: Update for release 3.92.6. Handle files that + have been moved to ../include, ../getopt, or ../bfd. Add + saber.suppress and tests directory. Add config.status to + the release (it will say "none"). + + coredep.c: Minor formatting fixes. + + These changes were made in early December but only checked in now: + * nindy-share/Onindy.c, nindy-share/coffstrip.c, + nindy-share/nindy.c: lint + * nindy-share/nindy.c (ninStopWhy): Don't byteswap the + register values coming back from the target; we store values + in target byte order everywhere. + +Wed Jan 16 19:01:37 1991 John Gilmore (gnu at cygint.cygnus.com) + + * am29k-opcode.h, am29k-pinsn.c: Add 29050 opcodes. + + * valprint.c (cplus_val_print, val_print_fields): New functions, + which print C++ objects. They conspire to avoid printing a + virtual base class more than once, following all the twists and + turns of C++ virtual base rules. + (val_print): Call the above rather than do it by hand. + + * symfile.c (symbol_file_add): Only reset symfile_mtime for main + symbol file, not for added files like shared libs. This really + needs to be generalized to a timestamp per file. + + * core.c (cleanup_core): Avoid coredump if no core file. + + * config.gdb: Accept -host or -target in place of +host or + +target. + + * coffread.c (find_linenos): Avoid desupported BFD interface + to line numbers. We still read them manually rather than using + BFD's "generic" features. + + * gdbrc.tex, threecol.tex: Add GDB reference card and its + formatting code. + Makefile.dist: Add refcard to OTHERS list for creating tar files. + + * Makefile.dist: Eliminate use of $< in explicit targets. + + * readline/Makefile: Use $< rather than $*.c, which does not + include the VPATH in GNU Make. + + * tconfig/i960-bout, tconfig/i960-coff: These are identical + copies of tconfig/i960, added for global configuration + compatability. All i960 versions can read both coff and b.out. + + * tm-88k.h: Fix multiline macro that lacked \'s. Remove + COFF_FORMAT and COFF_CHECK_X_ZEROES since these are now handled + automaticaly. + + * TODO: Think of more things to do. + +Wed Jan 2 19:09:29 1991 John Gilmore (gnu at spiff.cygnus.com) + + tconfig/{am29k,i960,sun2*,sun3*,sun4*}: Eliminate config + of sdb versus dbx debug symbols. Add kludge for 68881 80-bit to + 64-bit float conversion. + + tconfig/sun4, tconfig/sun3, xconfig/sun4, xconfig/sun3: Make + equivalent to sun?os4 so global config works. + +Wed Jan 2 18:20:51 1991 John Gilmore (gnu at spiff.cygnus.com) + + Fix from Eberhard Mattes + + * main.c: Only declare linesize once; declare pagesize not at + all, since it is never used. + (main): Clear newly allocated line before it is used. + +Fri Dec 28 00:13:42 1990 John Gilmore (gnu at cygint) + + Further stabilization for the Intel 960. + + * Makefile.dist: Parameterize the location of the "include" + and "bfd" directories, as well as "getopt". Add symfile.c. + Link in both dbxread and coffread. Fix up "make depend" to + rewack the locations of include, bfd, and getopt in its output. + + * README: Document moving include files, improve some of + the other doc. + + * coffread.c: Move common code out to symfile.c. Change + symbol_file_command style interface to use new *_symfile_init + and *_symfile_read interface under BFD. Use BFD internal + info to locate line table, symbols, etc. + + * core.c (core_fetch_registers): Rename to get_core_registers + to avoid confusion with fetch_core_registers. + (register_addr): Move to coredep.c, which is already machine + dependent. This leaves core.c pretty clean of dependencies. + + * coredep.c (register_addr): Accept this routine from core.c. + + * dbxread.c: Move common code (with coffread.c, etc) into new + symfile.c. Each psymtab now contains a pointer to the + format-dependent function that knows how to read it in. Make + some things static. + (dbx_psymtab_to_symtab): Renamed from psymtab_to_symtab_2. + (process_one_symbol): Add code to complain about a "compiler bug + we muzzle here", if we actually see it. + + * eval.c (evaluate_subexp): Insert missing "break" statements + in code that determines whether a variable is an lvalue in + memory, register, or whatever. I detected this via a compiler + bug in which it *almost* mashed out the whole switch statement. + + * gdb-int.texinfo: Add minor sections on configuring gdb for + release, and about the README file. + + * infcmd.c (registers_info): Fix formatting somewhat. Still + not as pretty as before, but it handles byte swapping. + + * remote-nindy.c: If data cache routines are interrupted while + waiting for the remote end, be sure that any uninitialized cache + blocks are on the free list, not on the valid list! + + * symfile.h: Flesh out this header file with all the various + routines and variables that have been merged in from dbxread.c + coffread.c, and symtab.c to symfile.c. + + * symfile.c: New file, containing code common to dbxread.c, + coffread.c, and some code from symtab.c. All generic code for + reading symbol files should be in here now. + (unrecord_misc_function): Remove unused function. + + * symtab.h: Remove file-reading things to symfile.h. + + * symtab.c: Remove file-reading things to symfile.c. + + * tm-i960.h: Fix FRAME_CHAIN types; define PRINT_RANDOM_SIGNAL + to decode i960 fault types. + + * target.h, remote.c, remote-eb.c, remote-vx.c, remote-nindy.c, + target.c: Change type of the "resume" function from int to void, + since its result was never used. + +Sat Dec 22 02:51:40 1990 John Gilmore (gnu at cygint) + + * main.c: Replace "stupid" with "caution"; you now "set caution + on or off". + + * printcmd.c (print_scalar_formatted): Fix typo in 'g' format + + * infcmd.c (do_registers_info): Call val_print to deal with the + byte order of the registers being printed. FIXME, this makes + the formatting of the output uglier. + + * infcmd.c (wait_for_inferior): If PRINT_RANDOM_SIGNAL is + defined, call it for signals the debugger doesn't itself use. + The i960 uses this for more detailed fault information. + + * remote.c (remote_open): If arg is null, print help rather than + dumping core. + + * sparc-xdep.c (register_valid): Avoid declaring size, since + various modules will think of various sizes depending on the + architecture of their tm-file. FIXME, we need protection against + actually entering one of those modules, which would clobber + storage if not for the target architecture compiled into gdb. + + * stack.c (up_command, down_command): Always print the frame + you arrive at. + (up_silently_command, down_silently_command): New commands + for use in scripts. + + * i960-pinsn.c (reg), i960-tdep.c: Lint. + + * i960-tdep.c (i960_frame_chain_valid): Lookup_symbol now takes + more parameters than it used to. + + * findvar.c (registers): Increase slop to 256 bytes, which should + protect us against even most RISC machines with large register + sets. + (locate_var_value): Move declaration inside related ifdef. + + * remote-nindy.c (): Use TIOCSETN rather than TIOCSETP + throughout, to avoid throwing away buffered input from the board. + (nindy_wait): Supply_register takes addr_of_value, not value. + (i960_print_fault): Renamed from i80960_fault. + (nindy_fetch_registers): Avoid have_regs stuff, just get them. + (nindy_store_registers): Avoid regs_changed stuff, just stuff + them. + (nindy_create_inferior): Don't bother to write PC_REGNUM since + we can set the PC in the call to proceed(). Unpush nindy_ops + before pushing it on top, to avoid message to user. Eliminate + commentary from Unix machines that just misleads here. + (reset_command): Fix error message to suggest target command. + +Wed Dec 19 11:03:56 1990 John Gilmore (gnu at cygint) + + Release 3.92.5 as frozen. + + Stabilize the merged release...with help from lint, Saber C, + gcc -W, etc. + + Everywhere: Add include files needed to declare return types + of functions called. + + * gdb.texinfo: Roland Pesch is documenting gdb, glory be! + + * breakpoint.h: Add undeclared breakpoint functions, and some + functions for display handling since I couldn't think of a better + .h to put them in. + + * breakpoint.c (insert_breakpoints): Make code for disabling + shared library bkpts more likely to work. It's used when we + rerun a program and stop before the shared library has been + mapped in. + (breakpoint_cond_eval, bpstat_stop_status): Pass arg as int, + cast from pointer, so it squeezes through catch_errors. + (bpstat_stop_status): Fix logic broken some time ago. We now + always create a bpstat if the stop address matches a breakpoint, + even if we don't stop there -- just like the old code used to do + before I got my fingers into it (sigh). + (breakpoint_1): Print "ignore count" after "stop only if" + condition, since that's how it actually works. + (mention): Handle watchpoints as well as breakpoints. + (watch_command): use set_raw_breakpoint and mention to do most + of the work (and initialize all the fields!). Only pass one + arg to parse_c_expression, since that's all it takes. + + * command.c (not_just_help_class_command): Rename arg to args + since we ignore "unused argument" warnings on vars named "args". + inflow.c (child_terminal_info): ditto. + infptrace.c (kill_inferior): ditto + main.c (catch_errors, version_info, quit_command, pwd_command, + source_command, dump_me_command, editing_info, + set_history_size_command, set_history, show_history, + set_verbose): ditto + stack.c (locals_info): ditto + target.c (target_files_info): ditto + valprint.c (set_input_radix, set_output_radix): ditto + + * core.c: Remove old variables for handling core and exec file + sections (data_start, data_end, stack_start, stack_end, + reg_stack_start, reg_stack_end, reg_stack_offset, text_start, + text_end, exec_data_start, exec_data_end, text_offset, + exec_data_offset, data_offset, stack_offset). They're + superseded the more general build_section_table and + xfer_memory. + (get_exec_file): Mention the `file' command. + (read_memory_check): Rename to memory_error, and only call it + in the case of an actual error. + (read_memory, write_memory): call memory_error. + (core_fetch_registers): Register section name is ".reg". + + coredep.c: Remove a bunch of crud now that all this file does + is pull the registers out of a core file. + (fetch_core_registers): Rewrite to actually work, I hope. + + dbxread.c: Use a.out.gnu.h, not system a.out, now. + Replace index() with strchr(). Remove all the pre-BFD macro + definitions for accessing the symbol file. + (struct dbx_symfile_info): Encapsulate the information that + dbx_symfile_init needs to pass to dbx_symfile_read in this + struct. + + (dbx_new_init, dbx_symfile_init, dbx_symfile_read, + dbx_symfile_discard): Rearrange symbol file reading to divide + the format-specific part from the format-independent part, + leaving the format-independent part such as file name expansion + and opening in symtab.c. This replaces + partial_symbol_file_open and partial_symbol_file_read. + Symbol_file_read, add_file, add_file_target_command, + add_file_addr_command move to symtab.c. Pass an explicit + "mainline" flag for when reading the main symbol table, rather + than relying on the offset address to be zero or nonzero. + + (dbx_symfile_read): Don't allow void *'s to be printed as + typedefs. + (SWAP_SYMBOL): Use bfd routines to byte-swap the symbols. + (ADD_PSYMBOL_TO_LIST): Make the "function call rather than + macro" debug version really work. + (read_dbx_symtab): Remove unref'd parameter inclink. + Avoid swapping N_SLINE symbols, for speed. + Merge N_TEXT!N_EXT case with the other external symbol + definitions' case. Add comments. + (start_psymtab): Allocate the symfile name in the psymtab on + the psymbol_obstack, rather than using the caller's storage. + (end_psymtab): Only allocate a dependencies list if there are + more than zero. + (psymtab_to_symtab_2): Use BFD when reopening file to read + its symbols for real. + (read_struct_type): Add FIXME comments where it needs work + for C++ bogosity. + (read_huge_number): Add FIXME about overflows. + (read_range_type): Add FIXME about comparing a long to 1<<32. + + * coffread.c: Minor changes to move things closer to the new + regime with symtab.c and dbxread.c Major work is still needed + here. + + * exec.c (exec_file_command): Remove old variables (see core.c + above). + (xfer_memory): If memory transfer is right at the end of a + section, don't lose. + + * findvar.c (get_saved_register): If value is in a real + register, LVAL is lval_register, not lval_memory. + + frame.h: Declare print_sel_frame and record_selected_frame. + + gdb-int.texinfo: New file, for GDB internals documentation. + Very simple, unformatted doc of cleanups is there for now. + + gdbcore.h: Remove obsolete variables that described a.out + section addresses and offsets. (See core.c above.) + Declare fetch_core_registers and registers_fetched. + + getopt.c: Declare char *alloca(); even on SPARC. + + infcmd.c (run_command): Call target_kill rather than + kill_inferior. + (step_command, next_command, stepi_command, nexti_command): + Declare from_tty parameter even though we don't use it. + (run_stack_dummy): argument BUFFER is a char array, not + a pointer to REGISTER_TYPE. + (finish_command): using_struct_return needed a value *, + not a struct symbol *. + + * infptrace.c (child_xfer_memory): To avoid dependency on + where sections are in memory, try PT_WRITE_D and if that fails, + try PT_WRITE_I. Most Unixes don't care which you use. + + * infrun.c (step_resume_break_shadow): Change to array to + match other breakpoint shadow storage. + (clear_proceed_status): Pass address of bpstat to + bpstat_clear, not the bpstat itself. + (child_create_inferior): FIXME comment about if the child + exits. + (start_inferior): Remove old function. + (child_open): Use target_kill rather than kill_inferior. + (wait_for_inferior): Ditto. + (insert_step_breakpoint, remote_step_breakpoint): Use + new step_resume_break_shadow. + + * inftarg.c (child_wait): If all child processes die, + pretend that the one being waited for exited with signal 42. + + * main.c (command_line_input): When scanning for comments, + don't coredump on unclosed quotes. + (quit_command): Use target_kill rther than kill_inferior. + (_initialize_main): Rename class_user from "user" to + "user-defined". + + * printcmd.c (print_command_1): Initialize "fmt" if no format + is specified by the user. + (print_frame_args): Only add to args_printed if we are + actually fetching args from the stack (avoiding undefined + arg_size). + (_initialize_printcmd): Remove bogus \{ from string. + + * remote-eb.c (eb_open): Avoid coredump on no argument. + + * remote-nindy.c: Bring out of Intel environment into new + target environment. Remove all conditional compilation on + I80960. Massive hacking throughout. + (nindy_xfer_inferior_memory): New routine stolen from + infptrace.c. + (nindy_create_inferior): New routine pieced together, probably + not quite working yet. + (nindy_ops): New target_ops struct for nindy. + + * remote-vx.c: Use write_memory rather than target_write_memory + to get error checking. + (vx_add_file_command, vx_open): Use symbol_file_add rather than + add_file. + (vx_create_inferior): Use target_terminal_ours... + + * signame.c (_initialize_signame): Always initialize, since + we need the table for things other than psignal. + + * solib.c (solib_add): Use symbol_file_add, not add_file. + (solib_address): Return boolean result rather than struct + pointer which nobody else knows the type of. + + * sparc-tdep.c, valops.c: Use write_memory rather than + target_write_memory, to get error checking. + + * stack.c (locals_info, catch_info, args_info, + get_selected_block, frame_command, up_command): Use + target_has_stack, rather than have_inferior_p or + have_core_file_p. + + * sun3-xdep.c (fetch_core_registers): Rewrite for new BFD regime. + + * symfile.h: New file, defining the interface between the + generic and object-file-specific symbol reading code. + + * symtab.c: Move generic symbol-reading interface to symtab.c, + from dbxread.c, coffread.c, mipsread.c, etc. Add symtab_fns + table to map BFD targets to symbol-reading modules in GDB. + Change index to strchr. + (lookup_struct_elt_type): Use error() rather than hand-made + simulations thereof. + (lookup_partial_symbol): Speedup slightly when length == 0. + (symbol_file_add): New function. + (symbol_file_command): Call it. + (symfile_open, symfile_init): New function. + (add_file_target_command, add_file_addr_command): moved from + dbxread.c. + + * target.c (target_command): use target_kill. + + * target.h (target_files_info): Don't declare, never called + from outside. + + * tm-sun2.h, tm-sun3.h (STACK_END_ADDR): Use system include + files to determine stack end address. + + * valarith.c (value_x_binop, value_x_unop): Change error message + to be more useful. Pass proper argument to value_struct_elt. + + * valops.c (value_assign): FIXME comment that long long + bitfields will break here. + + * Makefile.dist: Add symfile.h, remote-nindy.c, remote-eb.c. + Update `make saber_gdb' to work better. + + * TODO: A woman's work is never done. + + * cplus-dem.c, environ.c, inferior.h, infrun.c, inftarg.c, + main.c, obstack.c, printcmd.c, remote-eb.c, remote-nindy.c, + remote-vx.c, remote.c, solib.c, source.c, sparc-pinsn.c, + sparc-tdep.c, sparc-xdep.c, symmisc.c, symtab.c, symtab.h + target.c, terminal.h, tm-sparc.h, tm-sunos.h, utils.c, + valops.c, valprint.c, exec.c: Lint. + + +Wed Dec 12 23:44:15 1990 John Gilmore (gnu at cygnus.com) + + Continuing Intel 960 port merge of GDB. + + * Makefile.dist: Merge i960 "nindy-share" files. Rename + malloc.h to gmalloc.h to avoid name conflicts in /usr/include. + Don't ship gdb.dvi in tar file. Link gdb with init.o, not init.c. + Wack over "make depend" so it handles files in subdirectories + vx-share, nindy-share, bfd, and in the current directory. + + * blockframe.c (get_prev_frame_info): Remove fatal error + if stack not defined. + + * core.c (core_open, core_detach): New functions that handle + the old "core-file" command as "target core" and "detach" instead. + (core_file_command): Call them. + (core_xfer_memory): Use common routine xfer_memory. + + * dbxread.c: Include a.out.gnu.h, not system a.out.h. + dbxread now uses bfd for everything but symbol reading itself. + BFD internals are used to drag out the relevant file offsets. + (partial_symbol_file_open): Change args all around for BFD. + + * symtab.c: Rename "value" to "val" everywhere, so we can + #include "value.h". + (symbol_file_command): New command, moved from dbxread.c + and coffread.c. It uses BFD to read the file, then vectors + based on its type, to dbx or coff symbol readers. + * symtab.h: Extern a few vars for symbol_file_command. + + * target.h: Breakpoint takes a char * save area, not a char **. + + * valprint.c (val_print): When unpacking bitfields, offset + the address in gdb of the value, if it is declared with a shorter + type. Remove the last "runtime kludge test" of host byte order. + + * utils.c: Remove old my_bfd_read routine. + + * stack.c (frame_info): Use target_has_stack. Print program counter + register's actual name rather than "pc", since it's called the + "ip" (instruction pointer) on the i960 (sigh). + + * target.c (target_command): Add command for selecting a target + type and calling its open routine. This is used for initiating + communication with a particular target, in a generic way. + + * tm-i960.h: Update for modern gdb. Remove semicolons from + various macros. Handle reading struct return convention, and + error-out attempts to return structs with the "return" command. + Be sure gdb doesn't think we know how to call functions in the + inferior. + + * i960-tdep.c: Rename FRAME_CHAIN_VALID and FRAME_FIND_SAVED_REGS + to i960_xxx in lower case. + (arg_address): Circumvent errors due to LOC_ARG_BLOCK + not being defined yet. + + * remote.c (remote_open): Call start_remote to initialize + wait_for_inferior during open. + (remote_xfer_inferior_memory): Return length written rather + than errno value. + + * remote-vx.c (target_command -> vx_open): Use new generic + target command. + * remote-eb.c, inftarg.c, exec.c: ditto. + + * infrun.c: Fix comments. + (attach_program -> child_open): Use new generic target command. + (wait_for_inferior): Clear saved register values before target_wait, + so target_wait can set some of them if convenient. + + * infptrace.c (fetch_inferior_registers, store_inferior_registers): + Return success indicator, not void. + (child_xfer_memory): Avoid fetching initial word if we'll + overwrite it anyway. + + * infcmd.c (attach_command): Use new generic target open routine. + (_initialize_infcmd): Update doc on attach and detach commands. + (do_registers_info): Merge in a byte-order problem as a FIXME + comment. + + * findvar.c (find_saved_register): Avoid problem in current frame. + (read_relative_register): Ditto. + (write_register): Convert byte order on the way out. + + * exec.c (file_command): Add. + (add_to_section_table, exec_command): Use new bfd_map_over_sections. + (xfer_memory): Common function between core_xfer_memory and + exec_xfer_memory. + (exec_xfer_memory): Use it. + + * pn-opcode.h: Document that a "PN" is a Gould PowerNode. + + * breakpoint.c, breakpoint.h, symtab.h, value.h, frame.h, utils.c, + valops.c, stack.c, target.c, sparc-xdep.c, source.c, printcmd.c, + infcmd.c, i960-pinsn.c, eval.c, defs.h: lint and gcc -Wall. + +Sun Dec 2 16:45:06 1990 John Gilmore (gnu at cygnus.com) + + Merge Intel 960 port of gdb, continuing... + + * dbxread.c (partial_symbol_file_open, partial_symbol_file_read, + symbol_file_command): Pass from_tty arg to hush 'em up. + + * coffread.c (symbol_file_command): Avoid output if from_tty != 1. + Add magic numbers for 960 COFF format. + +Fri Nov 30 09:18:20 1990 John Gilmore (gnu at cygnus.com) + + Merge Intel 960 port of gdb, from Intel "1.2" release. + + CHANGE_LOG entries from their port, which was based on + gdb+-2.8.0: + + Thu Sep 6 11:02:22 PDT 1990 + Remove temp file if download is interrupted. + + Wed Aug 1 09:08:33 PDT 1990 + Now uses binary protocol to talk to NINDY. + Old hex protocol (NINDY 2.13 and older) supported with -O switch. + Times out after 5 seconds when trying to talk to NINDY. + + Tue May 29 12:54:49 PDT 1990 + Added variable baud rate (-b switch). + Source code reorganization. + + Thu Apr 26 11:09:55 PDT 1990 + More cleanup of batch mode; specifically, execute "-s", "-e", and + "-se" switches as soon as they are encountered on the invocation line. + + Fri Apr 20 13:47:15 PDT 1990 + Add -brk switch. + + Thu Apr 19 09:54:28 PDT 1990 + Add 'reset' command. + + Wed Apr 18 09:48:07 PDT 1990 + After opening remote tty, wait for 1 second to go by without input + from it before trying to talk to NINDY (fixes problems with the + Heurikon HK80/V960E). + + Mon Apr 4 16:33:05 PDT 1990 + Some output was not being suppressed in 'batch' mode. + + Thu Mar 22 15:31:11 PST 1990 + Ask user if old symbol table should be deleted when new file is + downloaded. + + Allow user to run a program downloaded before gdb960 was brought up. + + Correct "exec-file" help message for i80960 context. + + Correct bug in calculating user space address: could occasionally + corrupt user program. + + Make sure to zero low-order bits in rip's because of bug in 960CA + A-step part: could cause operation faults when "next"ing across + a function call. + + Correct bug that made it impossible to get source line numbers for + code loaded at addresses higher than 0x7fffffff. + + Wed Jan 10 12:43:22 PST 1990 + Open remote tty for exclusive use. + + Fri Jan 5 12:14:42 PST 1990 + Correct disassembly (CA manual was right after all): + opcode for sysctl is 0x659 + + Mon Oct 23 12:03:04 PDT 1989 + Use G960BASE and G960BIN environment variables to find 'sx' utility. + + Mon Oct 16 14:15:09 PDT 1989 + "sfr0"-"sfr31" should have been named "sf0"-"sf31" + + Mon Oct 2 15:56:31 PDT 1989 + + Added 960CA disassembly support. + + To simplify maintenance: + - eliminated use of symblic links on pinsn.c: use i960-pinsn.c + directly instead. + - eliminated opcode.h: incorporates tables into i960-pinsn.c + - moved 960-specific routines from i960-pinsn.c to i960-md.c + - made disassembly interface identical to that in gdmp960. + + + +Wed Nov 28 21:32:48 1990 John Gilmore (gnu at cygint) + + * target.h: Allow targets to stack. Add target_has_memory, + _registers, etc. Restructure memory access and "info files" + to walk the target stack. + * exec.c, core.c, inftarg.c, remote.c, remote-vx.c, remote-eb.c, + target.c: Change tables to match target.h. + * inflow.c (child_mourn_inferior): pop child_ops. + (generic_mourn_inferior): Use new has_stack flag. + * infptrace.c (child_xfer_memory): New memory regime. + * inftarg.c (child_files_info): New "info files" regime. + * remote-eb.c: New memory regime, new info files. + * remote-vx.c: New memory regime, new info files. Now use + separate targets for VxWorks attachment to machine, and + actually running a process under VxWorks, since one has + stack & execution & regs and the other doesn't. + * remote.c: New memory regime, new info files. + * sparc-xdep.c (fetch_core-registers): New memory regime. + * target.c: New routines and support for stacked targets, + new memory regime, new info files regime. + + + Generalize section handling for an arbitrary number of sections, + including use of the new BFD (binary file) library. + * gdbcore.h: Add struct section_table. + * exec.c (build_section_table): Iterate all sections and + record what gdb needs to know about them. + (exec_command): Use it. + (exec_xfer_memory): Use the table. + (exec_files_info): Print the table. + * core.c (core_file_command, core_xfer_memory, core_files_info): + Likewise. + * source.c (find_source_lines): Use bfd_get_mtime. + * dbxread.c: Quick changes to make it compile with new BFD. + * utils.c (error): Avoid using bfd_error in generic routines. + + * core.c (core_fetch_registers): Get from the ".regs" section of + the BFD core file. + * sparc-xdep.c (fetch_core_registers): Use the .regs info. + + * inferior.h (attach_flag): Export. + * infcmd.c (run_command): use new target_create_inferior. + * infrun.c (child_create_inferior): Don't return result. + * Makefile.dist (VERSION): 3.91.4. + +Fri Nov 23 28:15:38 1990 John Gilmore (gnu at cygint) + + * breakpoint.c (bpstat_num): Handle breakpoints which have + since been deleted, such as temporary breakpoints. + infcmd.c (program_info): ditto. + + * core.c (core_file_command): Display the frame where the core + dump occurred. + + * main.c: lint. + + * remote-vx.c (target_command): Merge in target command from + targ-vx.c. A few other cleanups. + + * TODO, Projects: Lots more stuff to do... + +Fri Nov 23 18:15:38 1990 John Gilmore (gnu at cygint) + + Massive changes to wall off the remote-debugging interface + behind a function vector. The port to handle VxWorks targets + is also part of this. + + All files: Replace references to renamed functions, + remove references to remote_debugging, remove references to + have_include_file, have_core_file in favor of target_has_stack, + target_has_memory, etc. + + * Modularize the breakpoint interface. + breakpoint.h (BREAKPOINT_MAX): New define sets max length of + a breakpoint instruction. + breakpoint.c: struct breakpoint's shadow_contents now sized as + BREAKPOINT_MAX. + (insert_breakpoints): Vector to target to install breakpoints. + (remove_breakpoints): Vector to target here too. + Remove REMOTE_SA_SPARC kludges and other remote_debugging. + sparc-tdep.c (single_step): Use new breakpoint interface for + the single-step breakpoints. + mem-break.c (memory_insert_breakpoint, memory_remove_breakpoint): + New file, contains routines to insert and remove breakpoints by + reading out the old contents and later replacing them. This is + how ptrace breakpoints work, and many remote systems as well. + + * tm-vxworks68.h: New config file, overrides a few things for + Wind River's preferences. + + * target.h: New file, for transfer vector used to talk to the + inferior (child, attached, core, exec, remote, etc). All accesses + to the thing being debugged should come through these vectors. + target.c: New file, routines to handle transfer vector. + (various files): Add transfer vectors XXX_ops for the various + targets and pseudo-targets (core files, etc) we support. + + * breakpoint.c (bpstat_stop_status): Further explorations of + watchpoints and why things don't work all the time. + (bpstat_alloc): New fn to allocate a bpstat and chain it. + + * config.gdb: Only add "source ${srcdir}/.gdbinit" to + the local gdbinit if it doesn't already have it. + + * core.c (core_ops): add and install. + Allow core debugging without exec file. + + * dbxread.c (free_and_init_header_files): Merge two fns. + (end_symtab): Free named symbol table when a new version comes in. + (read_dbx_symtab): Relocate all kinds of symbols with base + address. First step toward handling different text, data, bss + reloc. + (add_file_addr_command): Renamed add_file_command. + (add_file_command): Vector to remote handler. + Add "load" as an alias for "add-file" command. + + * defs.h: Allow "volatile" to be used in non-ANSI; use it for + non-returning functions. + + * exec.c: Add exec_ops, and push it as a target when an exec + file is specified. + + * infcmd.c (run_command): Pass executable file name and arg list + separately when starting an inferior. Permit "run" when no exec + file is specified, for VxWorks. + (detach_command): Move to child_detach in inftarg.c. + + * inftarg.c: New file. Unix-child-specific routines, and the + child_ops structure. + + * inferior.h (registers): Export "registers" as the way for + target dependent register handlers to find gdb's local copy of + the registers. Rename "stop_after_attach" to "stop_soon_quietly" + since it is now used by places that want wait_for_inferior to + handle the grunge but want to see every trap from the inferior. + + * inflow.c (create_inferior): Pull out, and merge into infrun.c. + Eliminate remote_debugging hooks in terminal handling. + + * infrun.c: Replace start_inferior with child_create_inferior. + Move all the hair of Unix shells and ptrace idiosyncracies into + child_create_inferior, so remote handlers don't have to deal. + Remove running_in_shell. Rename stop_after_attach to + stop_soon_quietly, and use it in a few other places where we want + to just call wait_for_inferior and get control back on the first + trap. trap_expected now never takes a value > 1. + (init_wait_for_inferior): Initialize static vars when a new + process is created. + + main.c (gdbinit): Add new hook for .gdbinit file name, let + it be overridden by config files as GDBINIT_FILENAME. + (DEFAULT_PROMPT): Add new hook for overriding (gdb) prompt. + Both of these are used for VxWorks gdb. + + mcheck.c: rename include file "gmalloc.c" to avoid problems + with system include file "malloc.c". + + param-no-tm.h: New include file, same as param.h but does not + include the default "tm.h" file. This is used in files where + the target is known, e.g. remote-eb.c or sparc-xdep.c. + + param.h: Now just a shell that includes tm.h and param-no-tm.h. + + remote-vx.c: New file, VxWorks remote debugging support. Uses + RPC routines that are shared with the target system, in directory + ${srcdir}/vx-share. + + remote.c: Vectorize remote interface. + + source.c: Globalize source_path, and make an alias "l" for "list" + since we now have the "load" command. + + sparc-xdep.c: Use new param-no-tm.h. + + symmisc.c (free_named_symtab): Add new function from Wind River. + However, ifdef it out for now while we think about what it should + really be doing. + + tm-sun3.h, xm-sparc.h, xm-sun3.h, xm-symmetry.h: Move + PREPARE_TO_STORE to + the xm- file, and change its name to CHILD_PREPARE_TO_STORE, since + non-Unix-children handle this with their own code in the target + transfer vector. + + Makefile.dist: Roll version to 3.92.3. Add vx-share stuff to + source and target lists. Add vx-share to default list of include + directories. Add new files to src and target lists: mem-break, + target, inftarg, remote-eb, remote-vx, targ-vx. Be sure the + ${srcdir} versions of munch and createtags are used. + + * valops.c (find_function_addr): Split out of call_function. + (call_function_by_hand): Rename call_function; this function + calls functions in the target by laboriously patching the target + word-by-word with the right stack, args, regs, etc. + + +Mon Nov 5 17:29:10 1990 John Gilmore (gnu at cygint) + + Handle AMD 29000 a bit better. + + * remote-eb.c (readchar): Mask received char log to make it readable. + (remote_start): Pass arguments down to executing program. + Make startaddr unsigned. + infrun.c (start_inferior): Accept args, pass them to + remote_start. + infcmd.c (run_command): Pass args down to start_inferior. + + * tconfig/am29k-aout, tconfig/am29k-coff: New files specifying + the target object file format. + tm-29k.h: Pay heed to COFF_ENCAPSULATE. + + * am29k-pinsn.c (print_insn): Print 0x on hex numbers in disassembly. + am29k-tdep.c (examine_prologue): Better checking of function prefixes. + +Sun Oct 7 18:20:45 1990 John Gilmore (gnu at cygint) + + * Makefile.dist (VERSION): Roll version to 3.91.9 and freeze. + * TODO: We did a few things, we have more to do though. + + * xm-sparc.h (CLEAR_DEFERRED_STORES): Define. + * inflow.c (inferior_died): Clear deferred stores. + + * Debug problems with dummy frames and calls to the inferior. + * tm-sparc.h (PUSH_DUMMY_FRAME, POP_FRAME): Move to sparc-tdep.c. + * sparc-tdep.c (do_restore_insn): Simplify. + (sparc_frame_find_saved_regs): Simplify and fix what we find. + (sparc_push_dummy_frame): Simplify and fix what we push. + (sparc_pop_frame): Slightly more hair here, deciding whether + we are restoring a saved PC or returning to a return address in %i7. + * sparc-xdep.c (read_inferior_registers): Debug if valid reg is read. + + * utils.c (xmalloc, xrealloc): Return type depends on __STDC__. + * symtab.h (xmalloc): ditto, for obstack_chunk_alloc. + * obstack.h (chunkfun): ditto. + * defs.h (xmalloc, xrealloc): ditto + + * utils.c (quit): Grab the terminal from the child if necessary. + + * inflow.c (term_status_command): Rename to term_info, change + to "info terminal". + + * sparc-pinsn.c (print_insn): Disassembly prefers real instructions. + (is_delayed_branch): Speed up. + * sparc-opcode.h: Add ALIAS bit to aliases. Fix up opcode tables. + Still missing some float ops, and needs testing. + + * Support for input and output radixes other than base 10 + * defs.h (input_radix, output_radix): Declare. + * expread.y (yyparse, parse_number): Handle changes of input + radix, and ambiguous names-or-numbers in radixes >10. + * printcmd.c (print_scalar_formatted): Print formatted hex + numbers in varying column widths. + * valprint.c (val_print): Use output_format to print scalar ints. + (set_input_radix, set_output_radix, set_radix): Create. + (set_output_radix): Set output_format from output_radix. + (_initialize_valprint): add `set radix' but leave the others off. + + * main.c (execute_command): Let stupid questions be turned off. + (_initialize_main): Handle "set stupidity", etc. + + * main.c, inflow.c, inferior.h, frame.h, command.c, defs.h, + sparc-pinsn.c, sparc-xdep.c, value.h, valops.c, values.c: Lint. + +Tue Oct 2 11:20:02 1990 John Gilmore (gnu at cygint) + + * TODO, Makefile.dist, ChangeLog: Freeze for 3.91.8 release. + bfd stuff is still screwed up, but with some manual work, it + compiles. + + * breakpoint.c (bpstat_do_actions): Start over if a command + proceeds the inferior, since the inferior will have stopped and + will need to have its new stop-actions taken care of. + + * dbxread.c (read_struct_type): Expression gives Sun3 4.0.3 + compiler fits, simplify it. + + * gdb.texinfo (directory command): Doc new dir command. + source.c (directory_command): "dir" now puts things on the front + of the path, moves dups up front, and handles multiple names + on the command line, inserting each one in order. It also + blows away cached line and full_filename info. + + * stack.c (backtrace_command): Skip "more stack frames follow" + unless interactive. + + * Change #ifndef HAVE_VPRINTF to #define MISSING_VPRINTF in + xm-convex.h, xm-hp300bsd.h, xm-isi.h, xm-merlin.h, xm-news.h, + xm-np1.h, xm-pn.h, xm-pyr.h, xm-symmetry.h, xm-umax.h, xm-vax.h. + The only odd one was Gould NP1, which had defined vprintf to + "printf"!!! + + * Merge Ted Goldstein 's changes for epoch. + printcmd.c (print_command_1): Pass 'inspect' flag down as a global + variable, inspect_it. + valprint.c (print_string, val_print): Use the global inspect_it + to indicate whether to print in Epoch style or normal style. + +Mon Oct 1 23:55:26 1990 John Gilmore (gnu at cygint) + + * printcmd.c (call_command): add an alias for the "print" command + which runs expressions and doesn't print the result if void. + (print_command_1): implement it. + + * command.c: Remove #if 0'd code. Initialize all the fields + in add_cmd (). Rename do_nothing_command to + not_just_help_class_command, and make it externally visible. + command.h: add user_commands to struct. + * main.c (define_command): Don't overload c->function with a char + string as well as a function pointer. + + * eval.c (evaluate_subexp): Reinstall tiemann changes to + calling convention of value_struct_elt () that got dropped in + merge. + + * tm-sparc.h (FRAME_FIND_SAVED_REGS): move to sparc-xdep.c. + sparc-tdep.c (sparc_frame_find_saved_regs): ditto. + + * tm-sparc.h (POP_FRAME): replace some constants with defines. + + * sparc-xdep.c (store_inferior_registers): defer stores to regs + until a good time (e.g. when we are about to run the child), + saving ptrace calls. + * infrun.c (proceed): handle DO_DEFERRED_STORES. + * tm-sparc.h: define DO_DEFERRED_STORES. + + * sparc-xdep.c (store_inferior_registers): when storing float + registers, don't store stack regs too. When storing the SP, + however, DO store the stack regs too. This fixes a bug in which + the dummy frame is not recognized when a call_function finishes, + because its frame pointer (in the stack regs) was never + initialized. + (read_inferior_registers): Mark WIM and TBR and FPS and CPS valid + even though we don't know how to read them from an inferior. + valops.c (call_function): Comment about storing SP. + + * infrun.c (save_inferior_status): Save away the original bpstat + chain so it can be restored later. Install the copied version for + use by whoever saved the status. It will be blow away by + restore_inferior_status, and the original chain restored. This is + important for people who have pointers into the original. + + * breakpoint.c, command.h, copying.awk, dbxread.c, defs.h, + findvar.c, frame.h, obstack.h, obstack.c, inflow.c, value.h, + main.c, printcmd.c, sparc-tdep.c, symtab.c, valprint.c: lint + + +Fri Sep 28 20:32:46 1990 John Gilmore (gnu at cygnus.com) + + * Makefile.dist: Roll version to 3.91.8. Add bfd.h and bfdconfig.h + temporarily to the makefile. Add am29k-opcode.h and WHATS.NEW. + Add stuff.c and kdb-start.c to the OTHERS list for tar files. + +Fri Sep 28 19:12:12 1990 John Gilmore (gnu at cygint) + + * Merge Mike Tiemann's multiple inheritance changes from Sun. + Store the baseclasses in a type struct starting from array element + 0 rather than from the unusual array element 1. + + dbxread.c: the above. + (virtual_context): Add + Read new debug information about which virtual function table + a virtual function is from, and store it in fn_field.fcontext. + + symtab.h: Add fcontextt. Fix baseclass indices. Typo in + TYPE_FN_FIELD_STATIC_P. + + symtab.c: the above. + valops.c: the above. Handle pointer casts of object *'s. + (search_struct_method): Add. + (value_struct_elt): First arg is now a pointer to a value, and is + modified on return. + + valprint.c: the above. + values.c (value_virtual_fn_field): Add type arg. Handle + offsetting to the proper object when calling virtual fns. + The above. + (baseclass_addr): Add valuep arg. + + * README: Document the current state of BFD config (missing). + * TODO, ChangeLog, Makefile.dist: Roll version. + * WHATS.NEW: Add summary of changes since 3.5. + +Thu Sep 27 16:23:12 1990 John Gilmore (gnu at cygint) + + * dbxread.c (read_struct_type): Clear bit vectors whenever + we allocate one. + symtab.c (B_CLRALL): define. + + * tm-sparc.h (STORE_RETURN_VALUE): Avoid clobbering types by + using == rather than =. Huh... This fixes the dreaded problem + wherein builtin_type_int becomes TYPE_CODE_FLT. + + * core.c (info_files): Show the inferior pid. + + * config.gdb: Avoid putting "dir" command into .gdbinit. GDB + already knows how to look in the source directory. + + * Remove psymtab hair from many places. Remove duplicated code + for searching symbol tables. Hide psymtabs from most places. + Make it fast to get from a psymtab to its symtab. + + blockframe.c (blockvector_for_pc): Remove psymtab hair. + coffread.c (psymtab_to_symtab): Rename to psymtab_to_symtab2. + mipsread.c (psymtab_to_symtab): Rename to psymtab_to_symtab2. + dbxread.c: export psymtab_to_symtab, make it work if called N times. + (psymtab_to_symtab): Rename to psymtab_to_symtab2. Initialize + new symtab completely. New psymtabs get symtab pointer + initialized to zero. Remove MI warning printf. + symtab.h: Comments. Add psymtab to symtab pointer. + (PSYMTAB_TO_SYMTAB): New macro. + symtab.c: use PSYMTAB_TO_SYMTAB. Add psymtab_to_symtab and export it. + source.c: use PSYMTAB_TO_SYMTAB. Remove symtab version and + compilation fields. + stack.c (backtrace_command): Avoid pre-pass to read symbols, if + verbose is not set. + (print_frame_info): Avoid special-casing symbols that have not yet + been read in. + + * source.c (open_source_file): Quick path if we have already + located the source file by its full name. + + * symtab.c (lookup_symbol): Use find_pc_symtab rather than + find_pc_psymtab. When a name is found in the misc function + vector, search the symbol table for its mangled name, not the + name that the user typed. + + * bfd.h: Fix missing comment terminators, make #endifs match. + + * valarith.c (value_less): Handle unsigned int comparisons. + Add FIXME about pointer compares, which assume host and target + pointers are the same. + + * command.c (do_nothing_command): lint + dbxread.c: lint. Remove sort_syms. Document C++ visibility info, + fix comments on debug symbol format for visibility. Actually set + visibility of symbols. + main.c (echo_command): lint; use . + tm-sparc.h (FRAME_FIND_SAVED_REGS): lint + obstack.h (_obstack_blank): Rearrange pointer math to avoid + pointing past end of allocated memory; saber complains. + obstack.h: Declare the external functions that we use. + valarith.h: use + solib.c (solib_add): lint. + +Fri Sep 21 17:05:19 1990 John Gilmore (gnu at cygint) + + * main.c (initialize_main): Default info_verbose to off, now that + symbol reading is fast. + (quit_command): Avoid clobbering exec_bfd while quitting. + + * Initial BFD (binary file diddling library) merger: + coffread.c: Change AOUTHDR to struct exe_hdr. + dbxread.c: ditto. + core.c: initialize initialized data at compile time. + (core_file_command): Move from coredep.c, convert to bfd. + (xfer_core_file): Convert to bfd. + exec.c (exec_file_command): use bfd routines. + gdbcore.h: BFD. + mips-tdep.c: Remove exec_file_command and friends. + source.c: bfd. + + * coredep.c: (fetch_core_registers) Convert core_file_command to + fetch_core_registers. + mips-xdep.c, sparc-xdep.c, sun3-xdep.c: ditto. + + * utils.c: (error): Bogus crap, FIXME, to print bfd errors. + (my_bfd_read): More bogosity, which I don't think we call. + (program_name): Remove this atrocity asap! + +Wed Sep 19 13:36:41 1990 John Gilmore (gnu at cygint) + + * From Per Bothner: + values.c: allocate_repeat_value was not clearing the + optimized_out field. + (value_static_field): minor stylistic fix (wrong macro was used). + valops.c (value_struct_elt_for_address): didn't work for C++ + static fields. + + * signame.c (_initialize_signame): Initialize signal names once. + + * breakpoint.h, command.c, copying.awk, defs.h, environ.c, + exec.c, frame.h, infcmd.c, inferior.h, main.c, munch, sun3-xdep.c, + symtab.h, tm-29k.h, valprint.c, value.h, values.c: Lint. + + * remote-eb.c: Support user-settable baud rates on the serial port. + + * tm-sun3.h (PREPARE_TO_STORE): fix typo. + +Fri Sep 14 13:28:29 1990 John Gilmore (gnu at cygint) + + * tconfig/sun3os4: Remove warning about native assembler, + since it also occurs in the xconfig file. + + * findvar.c (registers): Allocate some slop after `registers' + to prevent stray accesses from trashing the next variable. + + * tm-68k.h (REGISTER_BYTES): Allocate the right number of bytes + on the sun-3, by changing the #ifdef from `sun3' (which is not + defined by cc) to `sun'. Symptom was trashed builtin_type_XXX + vars, which happened to follow `registers' in the executable. + + * readline/history.c (history_search): Heed gcc-2's advice + and parenthesize && inside ||). + + * am29k-opcode.h, am29k-pinsn.c, am29k-tdep.c, remote-eb.c, + tm-29k.c: Insert FSF copyright headers. + + * remote-eb.c: Better comments. + + * Makefile.dist: Update to 3.91.6. + * TODO: note PREPARE_TO_STORE problem. + +Thu Sep 13 09:52:33 1990 Jim Kingdon (kingdon at cygint) + + * stack.c (frame_info): Only use FRAME_FIND_SAVED_REGS if defined. + + * remote.c: Wrap the whole file in #if !defined (SPECIAL_REMOTE). + + * infrun.c (wait_for_inferior, at end): Don't set up + prev_* if the inferior no longer exists. + + * inferior.h (CALL_DUMMY_LOCATION): New macro, to replace + CANNOT_EXECUTE_STACK. + valops.c (call_function): Use it. + + * tm-convex.h: Add CALL_DUMMY_LENGTH for use by PC_IN_CALL_DUMMY. + + * inferior.h (PC_IN_CALL_DUMMY): New macro. + infrun.c (wait_for_inferior, 2 places): Use it. + + * values.c (value_being_returned): Only use + EXTRACT_STRUCT_VALUE_ADDRESS if defined. + + * Move PREPARE_TO_STORE from xm-sun3.h to tm-sun3.h to do the + right thing for remote-eb.c. + + * sun3-xdep.c: Remove extraneous call to remote_store_registers. + * sun386-xdep.c, hp300hpux-xdep.c, sparc-xdep.c: Ditto. + + * blockframe.c: Put get_frame_saved_regs inside #if !defined + (FRAME_FIND_SAVED_REGS). + + * findvar.c ({fetch,store}_registers): Check for + REMOTE_{FETCH_STORE}_REGISTER macro. + + * findvar.c (get_saved_register): Add argument lval and + change meaning of argument addr. + findvar.c: Change calls to get_saved_register to reflect + new calling convention. + valops.c (value_assign): Use get_saved_register instead of + find_saved_register. + +Sun Sep 2 12:40:20 1990 Jim Kingdon (kingdon at cygint.cygnus.com) + + * coffread.c (read_one_sym): Make temp_aux an AUXENT, not + an (uninitialized) pointer to one. Use "&" when passing it + to fread. + +Fri Aug 31 22:57:54 1990 Jim Kingdon (kingdon at cygint.cygnus.com) + + * coffread.c (getfilename): Use DGUX x_offset and x_name if + defined. + + * coffread.c (symbol_file_command): Put semicolon after + "int from_tty". + Put safe_to_init_tdesc_context in #if defined (TDESC). + Put #ifdef TDESCs in 1st column for non-ANSI cpp's. + coffread.c: #include . + (read_coff_symtab): Typo: in_source_files -> in_source_file. + Add missing ')' in check for "lc%" and friends. Remove + extraneous '}'. + Declare read_one_sym() at top of file. + (read_file_hdr): Put in extra #ifdefs so MC68MAGIC and + MC68WRMAGIC can have the same value without causing a duplicate + case. + +Thu Sep 13 15:55:36 1990 John Gilmore (gnu at cygint) + + * Allow a Makefile to be built without building the + tm and xm file links that screw up builds in subdirectories. + This is done with `config.gdb none', then you can do things + like `make gdb.tar.Z'. + * tconfig/none: Config file for no target system + * xconfig/none: Config file for no host system + * config.gdb: If no TM or XM files are called out by the + host or target file, don't make links for them. + + * cplus-dem.c: Add documentation. + + * dbxread.c (read_ofile_symtab): Turn a fatal error into a + simple error, so the user's gdb doesn't crash due to some object + file problem (e.g. somebody is rebuilding the file out from under + gdb). + + * printcmd.c (print_address_symbolic): demangle the symbol. + + * Makefile.dist (OTHERS): Remove tdesc-lib because it has + Motorola copyrights in it. Make "make gdb.tar.Z" work. + (alldeps.mak): sort and uniq all results from this; duplicates + hose gdb.tar.Z link building. Remove RCS files from + tconfig and xconfig. Add config files for sun386. Add + a few odd files to OTHERS and HFILES. + +Mon Sep 10 21:20:24 1990 John Gilmore (gnu at cygint) + + * Makefile.dist: Pull solib.c to tconfig/sun?os4. + Roll version number to 3.91.5. Make lint work in bindir. + + * README: Document cross-debugging and new file structure. + + * blockframe.c: Lint. Include "value.h" to declare read_register. + (find_pc_partial_function): remove duplicate line. + + * command.h: Lint. Declare error_no_arg and dont_repeat. + + * tm-news.h: Remove inadvertently duplicated stuff. + + * mipsread.c: Remove cache_pc_function stuff, now done cleanly. + Clean up usage of misc_function_type. Declare some CORE_ADDRs. + + * config.gdb: Allow `config.gdb host target' form. Clean + up previous change that printed bogus messages when you just said + `config.gdb'. + + * core.c: #include "command.h" for lint. + * dbxread.c: lint + * eval.c: lint + * main.c: Remove some casts of enums. Lint. + * source.c: lint + * symtab.c: lint + * symtab.h: lint + * expread.y: lint + * valarith.c: lint + + * printcmd.c (initialize_printcmd): Fix thinko in inspect cmd. + + * sparc-tdep.c (isannulled): Take instruction as parameter, don't + read it from memory. This will allow us to save ptrace calls + eventually. Changed caller single_step too. + + * sparc-xdep.c (fetch_inferior_registers): Avoid reading regs + that we aren't going to use, saving many ptrace calls, especially + when watchpointing or single stepping. Use some #define's for + constants. + (store_inferior_registers): Ditto. + (core_file_command): Use some #define's for constants. + + * tm-sparc.h: Add #define's for some register numbers, so we + can eliminate the use of random constants in sparc-xdep.c. + + * stack.c (frame_command, print_frame_info, up_command, + down_command) Remove frame_changed, since it + causes a bug and doesn't seem to do anything useful. In some + places it was used as a flag, in others as a stack level (?). + + * utils.c: Use MISSING_VPRINTF rather than HAVE_VPRINTF, so the + default is to use the portable (vprintf) version rather than the + kludge version. + * xm-news.h (MISSING_VPRINTF): Add. + + * valprint.c (val_print): Demangle fancy vtbl printouts. Lint. + +Sat Sep 8 00:24:12 1990 John Gilmore (gnu at cygint) + + * Remove stuff that forces -Bstatic linking of gdb, and warnings + about linking debugged programs -Bstatic in the sun?os4 config + files in tconfig and xconfig subdirectories. + + * main.c (main): Remove unreached exit(0) now that we exit + via quit_command(). + + * Create TODO file for online bug list. There are too many + "little" bugs to keep track of on paper. + + * Change Projects file to refer to bug-gdb@cygnus.com + rather than kingdon@ai. + +Fri Sep 7 23:35:15 1990 John Gilmore (gnu at cygint) + + * Makefile.dist (VERSION): 3.91.4 now. + + * symtab.c (init_misc_bunches): Rename from init_misc_functions. + (condense_misc_bunches): Add sanity check that misc_count is + the same as the number of symbols in the bunch. + + * coffread.c: rename init_misc_bunches. Pass an argument + to condense_misc_bunches (a zero). + + * dbxread.c (partial_symbol_file_read): Call init_misc_bunches + every time we are called; don't rely on our caller to do it. + (add_file): Remove call to init_misc_bunches. + + * mipsread.c: Only warn, don't error, if unknown symbol types. + This keeps an old gdb from falling on its face if it sees newly + extended symbol info. Rename init_misc_bunches. + +Fri Sep 7 22:58:15 1990 John Gilmore (gnu at cygint) + + * Merge in changes from Per Bothner for DECstations and other + MIPS stuff. The rest is Bothner speaking: + + The next message is a merger of Alessando Forin's mips port with + mine. I've tried to use my good if biased judgment to get + the best of both. It *does* need testing. + + Some of the changes are general, *not* mips-specific. + + param.h: + Didn't believe in little-endian bit order. + There are still inconsistencies about whether flags + like BITS_BIG_ENDIAN are integer (#if ...) or + boolean (#ifdef ...). I tried to paper over them. + + dbxread.c,coffread.c,mipsread.c,symtab.c,symtab.h: + Moved some misc_function code that was common to + {dbx,coff,mips}read.c to symtab.c. + In the process, I think I cleaned things up a bit. + At the same time, moved obsavestring and obconcat to symtab.c. + + dbxread.c: + Removed obsolete condense_addl_misc_bunches (use + condense_misc_bunches(1) instead). + + exec.c: + Needed to include , at least on DECstations. + + valops.c, mips-tdep.c, tm-mips.h: + Added PUSH_ARGUMENTS macro to support funny argument-pushing + conventions (when STACK_ALIGN is insufficient). + Needed on mips, where doubles need 8-byte alignment, + but ints only need 4. + + mips-opcode.h: + Removed cruft that was not being used. + Merged in many fixes (most from Frank Yellin, fy@lucid.com). + + mips-pinsn.c: + Print $ before register-names (I think that makes things a little + more consistent). + Never print two instructions, even if one delays. + Removed hex-disassemble set_cmd. (This is not mips-specific, + so I think the argument is whether it is generally worthwhile or not. + I'm inclined to think not, given how easy it is to + convert between radixes in gdb.) + + mipsread.c: + This is basically Alessando's code. + It doesn't use obstacks; I changed it to use obstacks + in a few minor places where using malloc causes a + memory leak. (Probably, more places could/should be changed.) + I added record_misc_function where it was missing. + In symbol_file_command and add_file_command, I tried + to make the code consistent with more recent versions. + Minor sylistic changes in parse_procedure. + Make a .gdbinfo. psuedo-symbol point back to the real + procedure symbol (using the isym field). + + mips-tdep.c: + This is basically from my port, but with a lot of details + and a number of routines merged in from Alessando's version. + I basically used my code "raw" backtrace (use heuristics + from the actual code, rather than symbol table info) - though + the idea is Alessandro's. I feel my code is a little cleaner + here, particularly in being a little more flexible, such as being + able to handle gcc-produced code (which it now can). + It also doesn't do frame caching (which is not useful + more recent gdb versions). + I also used my code for push_/pop_dummy, more or less. + I tried to incorporate AF's code for testing sigtramp + while backtracing; I probably got it wrong. + Added mips_print_register, which tries to scrunch as much + information as possible on a screen... + Removed the skip-prologue set_cmd. As with hex-disassemble (see + under mips-pinsn.c), I don't see anything mips-specific here, + and I don't see it being all that useful anyway. + + tm-mips.h: + Added a $fp psuedo-reg distinct from $fp (nice for gcc). + Use more register names (rather than hard-cases numbers). + +Thu Sep 6 18:33:15 1990 John Gilmore (gnu at cygint) + + * Hack up 3.90.11 changes: + + * Makefile.dist (depend): parameterize $(GCC). + Add solib.c and solib.o. + (readline): Fix vpath for both absolute or relative SRCDIR. + + * blockframe.c: Fix from Schaefer@asc.slb.com for shared libs. + Also, let the part I didn't understand at least compile so + I can test the rest. FIXME. + + * dbxread.c: Fix thinko using strcmp. + (init_psymbol_list): declare static. + (partial_symbol_file_open): Comment cleanups better, avoid + cleaning up the string table since the caller will do that. + Move the stat for mod time into symbol_file_command, temporarily. + (There should be a mod time for each symbol file, eventually, + to control its rereading. FIXME.) + + * infptrace.c (PT_WRITE_D): use same value as PT_WRITE_I for + SunOS, which gives error for shared libs otherwise. (From + Schaefer, probably FIXME needs work for portability.) + + * solib.c: Move #include "param.h" to work. + Lowercase all the Uppercase Letters In the Messages. + (find_solib): Clean up inferior_so_name for debug printouts. + Allow no argument, to mean all shared libraries. + + * symmisc.c: include param.h to get CLEAR_SOLIB. + +Wed Sep 5 18:00:08 1990 John Gilmore (gnu at cygint) + + * Merge in Kingdon's changes from FSF: the diffs from 3.90.9 + to 3.90.11. ChangeLog entries below are from this. + +Wed Jun 13 09:17:39 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * Version 3.90.11. + + * Makefile.dist (HFILES): Add tm-sunos.h. + +Tue Jun 12 16:15:26 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Version 3.90.10. + + * Makefile.dist (gdb.tar.Z): Change linking of config so it works. + +Thu Jun 7 16:22:27 EDT 1990 Jay Fenlason (hack@ai.mit.edu) + + * sparc-opcode.h Added single-operand version of rett. + +Mon Jun 4 18:12:31 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * m-sparc.h (REG_STRUCT_HAS_ADDR, STRUCT_ARG_SYM_GARBAGE): + Put parens around gcc_p in expansion. + +Thu May 24 15:44:51 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * utils.c (lines_to_list): Return 10 if lines_per_page == 0. + +Wed May 23 16:36:04 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Changes for Sun shared libraries: + blockframe.c (find_pc_partial_function): If a non-text symbol + is found, set *address = pc - FUNCTION_START_OFFSET. + breakpoint.c (insert_breakpoints) [DISABLE_UNSETTABLE_BREAK]: + Disable breakpoints instead of giving an error. + source.c (select_source_symtab): Initialize cs_pst. + symmisc.c: Call CLEAR_SOLIB if defined. + symtab.h: Make text{low,high} CORE_ADDR not int. + (psymtab): New field addr. + solib.c: New file. + dbxread.c: Move DECLARE_FILE_HEADERS outside functions. + (record_misc_function): Give correct type for N_DATA symbols. + (condense_misc_bunches): do "misc_function_count = j" regardless + of inclink. + Take code which is shared between symbol_file_command and + add_file_command and put it into partial_symbol_file_{open,read}. + Split add_file_command into add_file_command and add_file. + Make psymtab_to_symtab read in the string table if the file + is not symfile. + Two new parameters to read_dbx_symtab and start_psymtab. + tm-sunos.h: New file. + +Tue May 22 17:43:03 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * infcmd.c: Change cont_command to continue_command and "cont" + to "continue". + +Mon May 21 14:41:41 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * breakpoint.c (enable_breakpoint): Get value of watchpoint. + + * defs.h [sparc]: Use regardless of __GNUC__. + + * values.c (USE_STRUCT_CONVENTION): Check for structures of + size 1,2,4,8 rather than size < 8. + + * dbxread.c (dbx_lookup_type): Do f->length *= 2 as many times + as necessary, not just once. + + * sparc-opcode.h: Add a bunch of new opcodes which Sun as supports. + +Thu May 17 15:04:09 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * {t,x}m-sun386.h, sun386-xdep.c, {x,t}config/sun386 + + * tm-news.h: Add CALL_DUMMY_*. + + * tm-68k.h: Remove duplicate comment at FRAME_FIND_SAVED_REGS. + + * config.gdb: In list_host, list_target, use ${i}, not $i. + +Tue May 15 21:27:12 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * source.c (find_source_lines) [BROKEN_LARGE_ALLOCA]: Use xmalloc. + + * sparc-opcode.h: Change all store floating-point state register + instructions to have the right match & lose fields. + +Sat May 5 12:39:18 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Makefile.dist: Move -I${srcdir} to GLOBAL_CFLAGS and pass + VPATH to readline. + config.gdb: If srcdir != ., create readline directory and + copy a makefile into it. + + * wait.h, infrun.c: Change WRETCODE to WEXITSTATUS for + consistency with POSIX. + + * breakpoint.c (bpstat_stop_status): Disable watchpoint + when we exit its exp_valid_block. + +Tue Sep 4 11:46:46 1990 John Gilmore (gnu at cygint) + + * Makefile.dist: Bump version to 3.91.3. + + * Clean up handling of breakpoint commands (somewhat). + Prompted by Tiemann bug report "cont 10" doesn't work any more. + + inferior.h: Add breakpoint_proceeded to inferior status struct + and globals; save it and restore it. + (clear_breakpoint_commands): Cleanup, remove old #define. + + infrun.c (clear_proceed_status): Set breakpoint_proceeded. + (save_inferior_status, restore_inferior_status): handle it also. + (proceed): Remove earlier code that set breakpoint_proceeded. + It is now set only in clear_proceed_status. + (clear_proceed_status): Cleanup, use bpstat_clear rather + than clear_breakpoint_commands. No callers need the stop_bpstat + between clear_proceed_status and proceed. + + infcmd.c: Add breakpoint_proceeded definition and comment. + (cont_command, jump_command, signal_command): Move call to + clear_proceed_status right next to call to proceed. + + breakpoint.c (bpstat_do_actions): Avoid clobbering our + caller's argument while running down the chain of breakpoints. + Use new variable "breakpoint_proceeded" to determine when + a command that it executes moves the inferior past the + breakpoint. + (bpstat_clear): Handle NULL argument. + (bpstat_clear_actions): Avoid useless call to + breakpoint_auto_delete. + (delete_breakpoint): Clean up bpstat's that are pointing to + the deleted breakpoint from the stop_bpstat chain. + (breakpoint_auto_delete): Simplify. + + * Clean up handling of EOF, error on stdin, etc. This was + prompted by a network problem that caused gdb to go into an + infinite loop filling up its malloc'd memory. + + main.c (return_to_top_level): Cleanup: call bpstat_clear_actions, + not clear_breakpoints_commands, which is now gone. + (main): If command_loop returns (e.g. from EOF on stdin), do + a quit_command (looping back to command_loop if quit_command + doesn't really quit). + (command_loop): check result from command_line_input and + exit if it returns NULL, rather than passing the NULL to + execute_command. + (gdb_readline): Free malloc'd result space before returning + NULL for EOF. + + * utils.c (query): Handle C-d to mean "yes", just as if the + input was not a terminal. Also avoid infinite loop if EOF + occurs in mid-input-line before newline. This allows + query to be used at EOF on stdin with reasonable results. + + * infrun.c (proceed): Set breakpoint_proceeded. + + * values.c (value_as_long): Avoid infinite recursion for enums. + (_initialize_values): Fix typo in help msg (kingdon). + + * Makefile.dist (RL_LIB): Use RL_LIB_DEP for dependencies, + RL_LIB for linking. This allows -lreadline for linking + and nothing for dependencies, once readline is a real library. + + * config.gdb: Jim Kingdon: give useful error message if the + host or target type is not recognized. + + * defs.h (alloca): SPARC does not declare alloca, + it just defines it. Dumb, but deal with it. + + * Jim Kingdon suggests: + in xconfig/sun3os4, CFLAGS should be XM_CFLAGS. + +Wed Aug 29 18:03:27 1990 John Gilmore (gnu at cygint) + + * Makefile.dist (VERSION): Bump version # to 3.91.2. + + * Clean up Bothner's changes. + + * blockframe.c (clear_pc_function_cache): New function. + * blockframe.c: remake cache_pc_function_* static. + * dbxread.c (symbol_file_command): remove references to + cache_pc_function_* variables. + * dbxread.c (read_struct_type): Use VOFFSET_STATIC. + * printcmd.c: Avoid kludging a global variable (addressprint) + to avoid printing the address of a string twice. Instead, + pass the format letter 's' down low enough that it can be seen + to avoid this problem. + (print_formatted): Pass format arg to value_print. + (restore_addressprint): Remove function. + (do_examine): Avoid hacking addressprint, cleanups and such. + (print_frame_args): Add a comment to a Bothner change. + * symtab.h: define VOFFSET_STATIC and use it instead of "-1". + * symmisc.c (free_all_symtabs): Call clear_pc_function_cache + to wipe out the values cached in blockframe.c. + * symtab.c (find_method): Add comment saying how big you must + allocate to be "big enough". Per being terse again. + * valprint.c (val_print): Handle format letter "s" to print + strings without addresses. Add comment to vtbl printing code + which casts with wild abandon. Rearrange reference-printing + code so it prints: + @0xaddr: value (print w/addressprint) + value (print w/~addressprint) + @0xaddr (parameter lists w/addressprint) + or nothing (parameter lists w/o addressprint) + +Tue Aug 28 10:47:18 1990 John Gilmore (gnu at cygint) + + * Merge more changes from Per Bothner: + +Gdb's handling of TYPE_CODE_REF was so counter-C++ (and otherwise +annoying) that I tried to improve it. Here are my suggestions. + + These patches all attempt to handle TYPE_CODE_REF (as in C++) better. + + findvar.c: + Do automatic de-reference when taking the address of a reference. + printcmd.c: + Don't deref_ref when printing parameter lists. + valops.c: + More attempts at treating refernences properly. + valprint.c: + In val_print, if deref_ref==0, don't print dangling " = ". + value.h: + Add COERCE_REF macro, which de-references an REF. + + * Merge changes from Per Bothner: + +* Fixed (Sony news)-specific configuration problems. +* Fixed other problems with using vanilla pcc and libc (enum problems; +assumption that vsprintf exists). +* Some major speed-ups (finc_pc_partial_function now caches a match; +parsing avoids duplicate symbol_lookup calls). +* Changed handling of baseclasses (no longer use baseclasses field +of struct type, use the first n_baseclasses fields instead). +* Various minor changes/fixes, most C++-related. + +blockframe.c: +Cache the most previous match from find_pc_partial_function. +(Save both low and high ends of matching function's pc range.) +This speeds up the loop of infrun.c:wait_for_inferior quite +a bit, and makes step/next commands much zippier. +command.c: +Added an enum->int cast (otherwise, some compilers barf). +dbxread.c: +No longer set baseclass offset to 0, since multiple +inheritance now mostly works. +Added a number of casts, to shut up compiler warnings +(after stabs where made enums, not ints). +When discarding a symbol table (in symbol_file_command), +must clear the cache introduced in blockframe.c. +Don't convert $vtbl_ptr_type to vtbl any more. +Get rid of TYPE_BASECLASEES and baseclass_vec (see also symtab.h). +Mask off sign bit emitted by g++ for virtual table offset. +Set voffset to -1 (not 1) for static member functions. +expread.y: +Changed parsing/lexing of names to avoid doing symbol lookup twice +(once when lexing to determine symbol class, once for real). +Now only call symbol_lookup once. Fields of 'this' win especially big. +printcmd.c: +Subpress printing addr twice in the case of 'x/s addr'. +symtab.c: +lookup_basetype_type is no longer used. +Add find_methods as recursive helper function to decode_line_1. +This allows multiple inheritance to work. +Also, once one or more matches has been found, do not look in +base-classes. (Baseclass methods would be overridden, anyway.) +symtab.h: +Removed baseclasses array in struct type. +Instead of using baseclasses[i], use fields[i-1]. +Added virtual_field_bits[i] to indicate if the i'th baseclass is virtual. +Changed sign convention of voffset (previous was inconsistent). +tm-news.h: +Some macros (CALL_DUMMY and relatives) were missing. Put them back. +utils.c: +Used to assume existence of vsprintf. Re-written to not need it +if HAVE_VPRINTF is undefined. +valops.c: +typecmp was too pessimistic. Made it less so. +valprint.c: +Don't print space after address. +If vtable points to a misc symbol (with 0 offset), print it, +since that indicates the actual class of the object. +Changed ype_print_derivation_info to use new inheritance +scheme (without baseclasses vector). +values.c: +In value_primitive_field, fixed some bugs left over from previous set of fixes. +Also, changes needed because TYPE_BASECLASSES were removed. +xm-news.h: +REGISTER_U_ADDR didn't work for PC. Rewrote to use an array. + +Tue Aug 21 20:08:54 1990 John Gilmore (gnu at cygint) + + * source.c: + If there is no path set, and the symbols don't indicate what directory + a file was compiled in, look in the current directory. But either + a path or a known compilation directory will prevent this. + + * dbxread.c: + Three independent bug fixes: + * Remove the #if 0 block that breaks some stuff. + * SunOS 4.1 fixed the promoted-parameter-wrong-addr bug in Sun C; + adapt gdb to either SunOS 4.0.* or 4.1. + * MAX_OF_TYPE and MIN_OF_TYPE thinko. By tedg@sun, I think. + + * symtab.c: + Instantiate the class T when looking for methods in it. (Tiemann@sun) + + * valprint.c: + (type_print) Demangle the name being printed. + (type_print_base) Handle botched demangling without coredump (tiemann). + + * values.c: + (check_stub_method): Document routine. + (tiemann) fix bug for no-arg functions + Avoid clobbering beyond end of malloc'd storage. + Terminate the argument list properly. + +Sat Aug 18 01:29:59 1990 Per Bothner (bothner@cs.wisc.edu) + + * Changes merged by John Gilmore: + +breakpoint.c: + In breakpoint_1, use new print_address_symbolic instead + of find_pc_partial_function. (This forces use of assembler-level + addresses, and avoids misleading non-mangled source-level names.) +cplus-dem.c: + Generalize ansi argument such that -1 means skip arglist totally. + Removed global variable print_ansi_qualifiers (which made + code non-reentrant), in favor of extra explicit arguments + to internal routines. +printcmd.c: + Add new helper function print_address_symbolic. + Use find_pc_misc_function instead of find_pc_partial_function + (since we want assembler-level symbols here). +stack.c: + Print unknown function as just "f (...)", not "f (...) (...)". + Use new fputs_demangled explicitly. +symtab.c: + Fixed a typing violation (problem: value.h cannot be imported + without renaming many variable in this file). + lookup_symbol: If no matching misc_func, look for a C++-mangled name. + decode_line_1: Moved forward some never-reached code. + Made decode_line_2 skip function prologues correctly. +utils.c: + fputs_filtered should not demangle by default. + Add new fputs_demangled to demangle on demand.. +valops.c: + Change value_struct_elt to use value_primitive_field (using recursive + utility function search_struct_field). This allows foo.bar to work + for multiple inheritance (so far only for data fields). + Change check_field in the same way (recursive helper function + to support multiple inheritance). + (Note: there are more of these problems that I haven't fixed. + Any code that says TYPE_BASECLASS (t, 1) is probably wrong.) + value_of_this: 'this' symbol name is now just "this", note "$this". +valprint.c: + Don't print static members. + Avoid printing "members of " if there are none. + Simplified type_print_derivation_info by merging duplicate code. + Remove useless blank lines in type_print_base (ptype command). +value.h: + Added declaration of new routine value_primitive_field. +values.c: + Added value_primitive_field which is generalized version of + value_field that can handle multiple inheritance (non-zero offsets etc). + Re-implemented value_field to call value_primitive_field. + +Fri Aug 17 23:33:44 1990 John Gilmore (gnu at cygint) + + * infcmd.c -- insert else to avoid 'delete env' coredump when you + delete the whole environment. Karl Berry reported the bug. + * source.c - fix openp to avoid //'s in filenames, which + trigger an Emacs bug causing it to not be able to find files + when running gdb in a window. + * dbxread.c - zap the #if 0 that botches the add-file code. + It seems to work a lot better without all the code commented out. + +Fri Jul 20 16:58:46 1990 John Gilmore (gnu at cygnus.com) + + * Merge Tiemann's and Ted Goldstein's changes, detailed below, + into gdb-3.90.9. + +Tue Jul 17 19:34:33 1990 Ted Goldstein (tedg at golem) + + * Makefile - added a ${CFLAGS} to a couple of entries, + added remote-sa.sparc.c + * added remote.sa-sparc.c, a modification of remote.c + which conducts a dialog directly with the SparcStation prom. + * breakpoint.c, infrun.c, sparcdep.c added + remote_insert_breakpoint(), and remote_remove_breakpoint() + to breakpoint.c instead of directly writing breakpoint instructions. + * sparcdep.c on remote_debugging,there is no need + to remove signle step breakpoint instructions. + * main.c added "-epoch" flag and "int epoch_interface" to main.c + global variable + * printcmd.c - epoch interface sends lisp expressions to open up + epoch windows on inspection. + * valprint.c - added arrayprint, and addressprint and made adding + format controls easier + * wait.h added a couple of undef's because we were getting + complaints about WSTOPSIG and WTERMSIG begin redefined. + + +Wed Jul 4 05:27:51 1990 Michael Tiemann (tiemann at masham) + + * symtab.c (decode_line_1): Add support for handling method stubs + in the type information. + +Tue Jul 3 09:39:18 1990 Michael Tiemann (tiemann at masham) + + * values.c (baseclass_addr): Run loop from INDEX+1 to + N_BASECLASSES; otherwise, we can still get into a loop. + @@ This should be restructured to use a cleaner search strategy. + +Sun Jul 1 12:28:51 1990 Michael Tiemann (tiemann at masham) + + * dbxread.c (define_symbol,read_type): Grok GNU C++'s new + abbreviation "Tt" for tags which have the same name as their + typedecls. + +Fri Jun 29 01:03:46 1990 Michael Tiemann (tiemann at masham) + + * symtab.c (list_symbols): add ability to set breakpoints on all + the functions which match a particular regular expression. + +Tue Jun 26 04:26:29 1990 Michael Tiemann (tiemann at masham) + + * cplus-dem.c (cplus_demangle): New parameter ANSI says whether we + should print ANSI qualifiers (such as `const' and `volatile'). + All callers changed to call with ANSI == 1, except from + `check_method_stub', which uses old-style syntax. + + * symseg.h (struct fn_field): Remove unneccessary `args' field. + * symtab.h (TYPE_FN_FIELD_ARGS): Redefined. + + * values.c (check_stub_method): New function. + + * cplus-dem.c (do_type): Handle "long long" (encoded as 'x'). + + * dbxread.c (read_type): Handle new GNU C++ method type stubs. + * valprint (type_print_base): Ditto. + + * symtab.c (gdb_mangle_typename): New function. + +Tue Jun 5 00:18:43 1990 Michael Tiemann (tiemann at gzilla) + + * breakpoint.c (catch_command): New function. Provides a + mechanism to set breakpoints based on catch clauses. + (disable_catch): Similar, but disables breakpoints on catch + clauses. + (delete_catch): Similar, but deleted breakpoints on catch clauses. + +Sun Jun 3 22:54:08 1990 Michael Tiemann (tiemann at gzilla) + + * blockframe.c (blockvector_for_pc): New function. + * blockframe.c (block_for_pc): Changed to call + `blockvector_for_pc' and get the block itself. + + * stack.c (catch_info): New function. Prints info about + exceptions which can be caught in the current frame. + * stack.c (print_frame_label_vars): New function. Similar to + `print_frame_local_vars'. + * stack.c (print_block_frame_labels): Prints out labels that are + defined in this frame. These labels are exceptions that can be + caught. + + * dbxread.c: Updated to handle N_CATCH symtab types. + +Thu May 3 22:10:00 1990 Michael Tiemann (tiemann at teacake) + + * valprint.c (everywhere): TYPE_NAME (TYPE) no longer comes in the + form "struct ..." for GNU C++. Don't flush any part of TYPE_NAME + when printing the type. + +Wed May 2 22:43:04 1990 Michael Tiemann (tiemann at teacake) + + * valprint.c (val_print): Use `baseclass_addr' to access the + baseclasses pointed to via the derived class object at VALADDR. + + * values.c (baseclass_addr): New function. Casts derived pointers + to baseclass pointers taking virtual baseclasses and multiple + inheritance into account. + +Sat May 5 12:39:18 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Version 3.90.9. + +Fri May 4 12:12:55 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * breakpoint.c (watch_command, bpstat_stop_status): Deal with + exp_valid_block field correctly. + + * infrun.c (wait_for_inferior): When checking "don't even think + about breakpoints" if stop_signal == SIGTRAP && trap_expected, + also check step_resume_breakpoint. + Insert breakpoints and continue (not step) if + step_resume_break_address != NULL, even if another_trap. + If trap_expected and we enter sigtramp, then set up a + step_resume_break. + If trap_expected is set when we hit the step_resume_break, + set another_trap. + When calling resume and trap_expected says tell resume to step + (2 places), also check step_resume_break_address. + + * infrun.c (wait_for_inferior): Don't set + prev_{pc,sp,func_{start,name}} before calling wait (). + Do set them after exiting loop. + Move their declarations outside functions. + (start_inferior): Initialize them. + +Thu May 3 00:15:11 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * infrun.c (wait_for_inferior, after check for trap_expected > 1): + Restore old code which distinguishes between trap_expected and + running_in_shell, just make the latter take any non-TRAP signal, + not just SEGV. + + * values.c (allocate_value): Zero VALUE_OPTIMIZED_OUT flag. + + * Makefile.dist (pinsn.o): Use PINSN_CC to compile. + xconfig/3b1 (CC,PINSN_CC): Define. + + * xconfig/altos, altos-dep.c: Rename altos-dep.c to altos-xdep.c. + + * Version 3.90.8 + + * breakpoint.c (bpstat_stop_status), + infrun.c (wait_for_inferior) [SHIFT_INST_REGS]: New code. + + * param.h, tm-88k.h: Define ADDR_BITS_*. + infcmd.c (jump_command, read_pc), infrun.c (wait_for_inferior), + printcmd.c (do_one_display): Use them. + + * utils.c: Split #ifdef USG into a USG_UTILS and a QUEUE_MISSING. + xm-88k.h: Define USG_UTILS. + +Wed May 2 00:05:33 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * printcmd.c (printf_command) [__INT_VARARGS_H]: New code. + (printf_command): Add from_tty parameter. + + * valprint.c (value_print): Check VALUE_OPTIMIZED_OUT flag. + + * value.h: Add optimized_out field and change lazy field to + char. Add macro VALUE_OPTIMIZED_OUT. + + * i386-pinsn.c: Change from Eirik Fuller to write to stream directly + instead of stuffing things in buffers (oappend, etc). + + * breakpoint.c (bpstat_do_actions): If *BSP is set to NULL by + execute_command, exit both loops. + + * Makefile.dist: Don't set TARGET_ARCH. Add .c.o rule. + +Tue May 1 17:07:23 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Makefile.dist (RAPP_OBS, rapp), + rgdb.c, rserial.c, rudp.c, serial.c, udp.c, xdep.h, + remote.h: Added. + m68k-xdep.c, coredep.c: Wrap in #if !defined (RDB). + + * valops.c (value_struct_elt), values.c (value_static_field): + Change error messages to remove references to `info methods'. + +Tue Apr 24 10:25:10 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * More 88k changes: + infrun.c (start_inferior): Add START_INFERIOR_HOOK. + infcmd.c [SHIFT_INST_REGS]: New code. + findvar.c (read_relative_register_raw_bytes): Return a value. + infcmd.c (do_registers_info): Check value from + read_relative_register_raw_bytes. + + * command.c (delete_cmd): Free the struct cmd_list_element(s) + we are removing. + +Mon Apr 23 10:42:21 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * More 88k changes: + findvar.c (get_saved_register): New function. + findvar.c: Rewrite code which called find_saved_register to + call get_saved_register instead. + +Sun Apr 22 14:47:51 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * valprint.c (val_print): Change error message printed when + the type has TYPE_FLAG_STUB set. + + * valprint.c (val_print): Check for TYPE_CODE_UNDEF. + + * findvar.c (write_register): Set register_valid (regno). + + * valops.c (call_function): Check for NULL return from block_for_pc. + +Fri Apr 20 11:31:23 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * findvar.c (write_register): Add PREPARE_TO_STORE. + {sun3,sparc,symmetry}-xdep.c (PREPARE_TO_STORE): Add. + infptrace.c, {mips,pyr,symmetry,sun3,arm,hp300hpux}-xdep.c + (store_inferior_registers): Don't call read_register_bytes. + symmetry-xdep.c (store_inferior_registers): + #if 0 out code to fetch registers. + + * values.c (value_as_long): Call COERCE_ARRAY. + + * tm-sun3.h: Include tm-68k.h not m-68k.h + + * sparc-tdep.c (single_step): Set next_pc, npc4 within + if (!one_stepped), not outside it. + + * Changes from Data General for 88k: + * coffread.c (read_file_hdr): Add *88*MAGIC. + * coffread.c (have_symbol_file_p): New function. + * coffread.c [COFF_CHECK_X_ZEROES] [TDESC]: New code. + * coffread.c (read_one_sym): If there is more than one + aux entry, don't give an error message, just ignore the + extra ones. + * coffread.c (process_coff_symbol): Replace clipper with + BELIEVE_PCC_PROMOTION in #ifdef's. + * coffread.c: Define L_LNNO32 if not defined. + (enter_linenos): Use it. + * blockframe.c: Add INIT_FRAME_PC hook and use it in + get_prev_frame_info. + m-m88k.h: Use INIT_{FRAME_PC,EXTRA_FRAME_INFO} to do tdesc stuff. + Use dummy versions of FRAME_CHAIN_*. + * Makefile.dist, xconfig/i386*: Rename M_CLIBS to XM_CLIBS and add + TM_CLIBS and CDEPS. + tdesc/libdc.o: New target. + tdesc.{c,h}, tdesc/*, {t,x}config/m88k: New files. + +Thu Apr 12 15:47:00 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * m68k-opcode.h (bras, bsrs): Use "Bw" not "Bg". + +Tue Apr 10 20:50:25 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Version 3.90.7. + + * xm-mips.h (BYTE_ORDER): If not defined, make it LITTLE_ENDIAN. + + * mips-xdep.c ({fetch,store}_inferior_registers): Remove variable + offset and just use register_addr (regno, 1). + (core_file_command): Remove variable reg_offset and just use + register_addr (regno, 0). + + * gdbcore.h [COFF_FORMAT]: #undef a_magic before redefining it. + + * infrun.c ("if (trap_expected && stop_signal != SIGTRAP)", near end + of wait_for_inferior): Always pass 0 as first arg to resume. + #if 0 out "SIGSEGV in shell" test right above it (now redundant). + + * i386-pinsn.c (oappend_address): New function. + (oappend): Make it "static void" and declare at top of file. + (OP_J, OP_DIR): Use oappend_address. + +Mon Apr 9 15:22:09 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * mips-xdep.c: Include not "mips/inst.h". + + * wait.h [HAVE_WAIT_STRUCT]: Put #defines in #if !defined so that + it's OK if they are defined in . + + * findvar.c (fetch_registers): Pass "registers", not "®isters", + to remote_fetch_registers. + + * mips-tdep.c (_initialize_mipsdep): Remove hex_disassembler + and re-write skip_prologue to use add_set_cmd. + + * Makefile.dist (alldeps.mak): Don't put \ after the last + filename in each list. + +Sun Apr 8 01:59:19 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Version 3.90.6. + + * Makefile.dist (alldeps.mak): "XM_FILE" -> "XM_FILE=". + + * valarith.c (value_x_{un,bin}op): use "operator" not "operator " + to match dbxread.c change of 16 Mar 90. + + * valarith.c (value_x_unop): Pass &static_memfuncp, + not static_memfuncp. + + * breakpoint.c: Add watchpoint stuff. + breakpoint.h: Add bpstat_should_step. + infrun.c (proceed, wait_for_inferior): Use it. + breakpoint.h: Add bpstat_print (and rename old bpstat_print + to bpstat_should_print). + infrun.c (normal_stop): Use it. + + * value.h: Add value_free. Declare a few functions. + +Sat Apr 7 21:43:43 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): Remove PROFILE_TYPES code and + insert comment suggesting easy shell script equivalents. + + * values.c (unpack_long): Give better error messages for + unrecognized sizes of ints and floats. + +Fri Apr 6 00:32:21 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c, gdbcore.h (IS_OBJECT_FILE): Check for a_drsize + nonzero as well as a_trsize. + + * More places: Use SWAP_TARGET_AND_HOST. + + * valops.c (destructor_name_p): Only skip "struct " if present. + + * main.c (gdb_readline): Return NULL on end of file. + + * sparc-opcode.h: Add jmp 1+2, jmp 1+i, jmp i+1. + + * Makefile.dist: Make expread.tab.c unambiguously be in srcdir. + + * main.c: Split source_command into source_command and + read_command_file. + (main): Accept "-" as arg to +command for stdin. + + * dbxread.c (psymtab_to_symtab): Don't read string table. + (symbol_file_command): Save string table size. + + * Version 3.90.5 + + * symtab.c: Remove declaration of lookup_misc_func. + + * mips-pinsn.c: Add use_hex_p stuff (re-worked from Forin stuff). + + * mips-opcode.h: Add bdelay field. + mips-pinsn.c: Various changes from Forin, I think to make it look + like the MIPS assembler format. + mips-tdep.c, mips-xdep.c, mipsread.c: Various changes from Forin. + + * gdbcore.h: Declare register_addr. + + * gdbcore.h: Include , before trying to redefine N_TXTADDR + and friends. + various: Don't include both a.out.h and gdbcore.h. + + * Makefile.dist (HFILES): Add param.h + + * utils.c (init_malloc): Moved here from mcheck.c and modified + to use the standard mcheck.c + Makefile.dist: Modify to reflect new mcheck. + +Thu Apr 5 16:38:28 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * valprint.c (val_print, print_hex_chars): Print integers + larger than LONGEST. + + * valarith.c (value_sub): Give error message if attempt to + subtract something of the wrong type from a pointer. + + * breakpoint.c (bpstat_stop_status): Initialize retval to NULL. + + * i386-tdep.c (i386_pop_frame): Change addr to adr. + +Wed Apr 4 05:21:50 1990 Jim Kingdon (kingdon at teenage-mutant) + + * main.c (command_line_input): return NULL on end of file. + (execute_command): If p is NULL, return almost right away. + (read_command_lines): Treat end of file like "end". + + * printcmd.c (print_frame_args): Change it so num is number + of ints of args, not number of args. + + * xm-*.h: Make sure BYTE_ORDER is defined. + Also fix various #includes of old names of things. + + * main.c (command_line_input): Fix comment code of 2 Apr. + + * values.c (value_from_long, unpack_long): SWAP_TARGET_AND_HOST. + various: Replace {BYTES,WORDS}_BIG_ENDIAN with TARGET_BYTE_ORDER. + valarith.c various: SWAP_TARGET_AND_HOST. + dbxread.c (READ_FILE_HEADERS): SWAP_TARGET_AND_HOST. + (SWAP_SYMBOL): New macro. Use it wherever symbuf_idx is incremented. + exec.c (exec_file_command): SWAP_TARGET_AND_HOST. + + * valarith.c (value_subscripted_rvalue): Just bcopy() the + appropriate bytes rather than playing strange games with + value_from_long. + + * param.h (SWAP_TARGET_AND_HOST): New macro. + + * tm-np1.h (V7_REGNUM): Change from 27 to 26. + (REGISTER_VIRTUAL_TYPE): Return correct result for vector regs. + gould-tdep.c: New file. + + * Move reading of register before store from + findvar.c (write_register) to + infptrace.c, *-xdep.c (store_inferior_register). + + * findvar.c (fetch_registers, store_registers): New functions. + write_register{,_bytes}: Use store_registers regardless of + have_inferior_p. + registers_valid: New variable. + (supply_register, read_register, etc.): Use it. + (read_register_gen): New variable. + various: Use read_register_gen rather than read_register_bytes + where appropriate. + *-xdep.c (fetch_inferior_registers): Remove remote_debugging check. + infrun.c (wait_for_inferior, start_inferior): Call registers_changed + not fetch_inferior_registers. + *-xdep.c (fetch_inferior_registers): Call registers_fetched if + not setting registers via supply_register, and if fetching + all registers. + infptrace.c, *-xdep.c (fetch_inferior_registers): Add param, + # of register to fetch (-1 for all). + infptrace.c, hp300hpux-xdep.c (fetch_inferior_registers): + Actually fetch only those registers needed. + value.h: Declare all the extern register functions from findvar.c. + + * coffread.c (read_coff_symtab): Test for specific kinds of GCC + labels (LI%.*, LPB%.*, etc), not just ??%.*. + + * coffread.c (record_misc_function): Use mf_text not mf_unknown. + + * utils.c,defs.h (lines_to_list): New function. + source.c (select_source_symtab, list_command, forward_search_command, + reverse_search_command), stack.c (print_frame_info): + Use it instead of 10. + + * munch: If MUNCH_NM variable exists, use it. + + * main.c (initialize_main): Set rl_readline_name. + main.c: #include readline.h and #undef savestring. + Remove declarations of things declared in readline.h. + + * main.c (gdb_readline): If instream == 0, read from stdin. + + * main.c (main): Only call clearerr if ISATTY. Exit loop if + feof (instream). + + * infcmd.c (detach_command): Set inferior_pid to 0 after + calling remote_close. + + * main.c (main): If exec and sym files are the same, and there + is an error reading execfile, don't try to read sym file. + + * infcmd.c (detach_command) [ATTACH_DETACH]: Don't try to detach + from inferior when remote debugging. + + * source.c (reverse_search_command): Change while test from 1 to + line > 1. + +Tue Apr 3 18:14:14 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Version 3.90.4. + + * Makefile.dist (gdb.tar.Z): Use -z option to tar rather than + creating gdb.tar and calling compress separately. + + * breakpoint.c (read_memory_nobpt): Do not treat bcopy as if it + returned an "errno" value. + + * various: Make sure gdbcore.h is not included before a.out.h. + + * Makefile.dist (OPCODES): Add mips-opcode.h. + + * config.gdb: Print lists of {hosts,targets} after finding srcdir. + When parsing +{host,target}=, strip off +{host,target}=, not +{x,t}m=. + + * Makefile.dist (gdb.tar): Do {t,x}config not just config. + +Mon Apr 2 02:42:23 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * sparc-opcode.h (inc): Fix incorrect lose field. + + * valarith.c (value_subscripted_rvalue): Use TARGET_BYTE_ORDER, + rather than checking endianness at runtime. + + * main.c (comand_line_input): Accept comments anywhere, not + just at starts of lines. + +Sat Mar 31 21:59:35 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * symtab.c (check_stub_type): Call lookup_symbol with 5 args. + +Fri Mar 30 15:23:52 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * frame.h: #include param.h. + param.h: Protect against multiple inclusion. + + * i386-tdep.c (i386_get_frame_setup): Fix comment about what + opcode 0x55 is. + If 0x81 or 0x83 is followed by something besides 0xec, + put codestream back where it was and return 0. + [USE_MACHINE_REG_H]: Include not + Move include of a.out.h above . + (i386_frame_find_saved_regs): Make locals signed. + (i386_frame_find_saved_regs, i386_push_dummy_frame, i386_pop_frame): + Use REGISTER_BYTES, REGISTER_RAW_SIZE, etc. to deal with floating + point registers. + +Wed Mar 28 18:33:40 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * Makefile.dist (OTHERS): Add gdb.dvi. + (gdb.dvi): New rule. + + * breakpoint.c (_initialize_breakpoint): Clean up docstrings so + as not to mention subcommands (e.g. auto-display). + Call add_cmd not add_abbrev_cmd for "disable breakpoint" and + put it in class_alias. + + * breakpoint.c (set_breakpoint_count): New function. + (set_breakpoint, break_command_1): Use it. + + * breakpoint.c (get_number): New function. + (*_command, map_breakpoint_numbers): Use it. + + * infptrace.c (write_inferior_memory): Remove remote_debugging + stuff (is handled in core.c). + (read_inferior_memory): Remove #if 0'd out remote_debugging code. + +Tue Mar 27 16:51:27 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * inferior.h: Include frame.h. + + * findvar.c (write_register): Replace sun4 #ifdef with + check of CANNOT_STORE_REGISTER. + xm-sparc.h: Define CANNOT_STORE_REGISTER. + + * sparc-tdep.c: Remove superfluous declaration of + get_breakpoint_commands. + + * breakpoint.{c,h}: Add bpstat stuff. + bpstat_do_action: Re-work do_breakpoint_commands into this. + main.c (command_loop): Call bpstat_do_action not + do_breakpoint_commands. + inferior.h, infrun.c, breakpoint.c, infcmd.c: + Rework breakpoint_commands and stop_breakpoint + stuff to use bpstat instead. + + * infcmd.c (program_info): "info reg"->"info registers". + + * np1-opcode.h: Renamed from npl-opcode.h. + gould-pinsn.c: Include np1-opcode.h. + Makefile.dist (OPCODES): Change npl-opcode.h to np1-opcode.h + + * coffread.c (read_enum_type): Stop reading when we hit .eos. + +Mon Mar 26 15:52:35 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Version 3.90.3. + + * breakpoint.c (read_memory_nobpt): New function. + gdbcore.h: Declare read_memory_{nobpt,check}. + mips-tdep.c: Use read_memory_nobpt not breakpoint_shadow_val. + +Fri Mar 23 14:26:38 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * inflow.c (terminal_inferior): Reenable commented out + inferior_thisrun_terminal check. + (terminal_ours_1): If inferior_thisrun_terminal is nonzero, + return immediately. + + * Makefile.dist: Rewrite DEPFILES, M_FILE, etc. stuff to deal + with host & target separation. + + * config/*: Split into xconfig/* and tconfig/*. + *-dep.c: Split into *-xdep.c and *-tdep.c. + + * main.c (main): Always pass two args to xrealloc. + +Thu Mar 22 20:29:25 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * Makefile.dist ({,dist}clean): rm {x,t}m.h not param.h + xgdb.o: Remove obsolete dependency (now in depend). + + * arm-pinsn.c: Include arm-opcode.h not opcode.h. + + * mips-pinsn.c, mips-opcode.h: New files from Bothner (from + release of 24 Jan 90 with mips-opcode.h patch from 1 Feb 90). + + * utils.c (xmalloc): Return NULL on request for 0 bytes. + +Wed Mar 21 13:30:08 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * config.gdb: Re-write machine stuff to deal with host & target. + + * xm-altos.h: Don't define HAVE_WAIT_STRUCT. + + * m-*.h: Split into xm-*.h and tm-*.h. + + * infrun.c (wait_for_inferior): Put #ifdef sony_news code + in regardless of machine. + + * symtab.c (decode_line_1): Add quotes and capitalize error + message "no class, struct, or union named". + + * Makefile.dist (cplus-dem.o): Compile with -Dnounderscore. + + * stack.c (print_frame_info): Use print_symbol to print function name. + + * symtab.c (output_source_filename): Don't print a comma if + we are skipping a filename already printed. + +Tue Mar 20 10:48:54 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * symtab.c (output_source_filename): Don't print a filename + more than once. + + * utils.c (fprint_symbol): New function. + defs.h: Decalare it. + various: Use fprint_symbol to print symbol names. + Makefile.dist (SFILES, OBS): Add cplus-dem.{c,o}. + +Mon Mar 19 17:11:03 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * coffread.c (read_file_hdr): Add MC68K??MAGIC. + + * coffread.c (read_coff_symtab): Ignore swbeg and string label + symbols. + + * coffread.c (read_coff_symtab): Increment num_object_files + in case C_STAT not C_FILE. + New variable in_source_file. Set it in case C_FILE. + Check it in case C_STAT. + + * coffread.c [FUNCTION_EPILOGUE_SIZE]: New code. + m-umax.h (FUNCTION_EPILOGUE_SIZE): Define. + + * config/3b1: New file. + + * config/sun*: Print message warning people to use GAS with GCC. + +Sun Mar 18 02:56:40 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * infcmd.c (run_stack_dummy): Change error message. + + * m-68k.h (REGISTER_VIRTUAL_TYPE): Make pc, fp, sp char *. + + * m-mips.h (LONGEST, BUILTIN_TYPE_LONGEST): Remove. + +Sat Mar 17 21:27:49 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * mips-dep.c: Remove infptrace.c stuff. + + * m-bigmips.h: New file. + m-mips.h [MIPSEB]: Remove *_BIG_ENDIAN stuff. + + * m-sparc.h (FIX_CALL_DUMMY): Do not insert unimp instruction + if function was compiled with gcc. + + * m-mips.h: Remove FIX_CALL_DUMMY_ALIGNED and make FIX_CALL_DUMMY + use new args. + + * valops.c (call_function): New args to FIX_CALL_DUMMY. + m-*.h (FIX_CALL_DUMMY): Take new args. + + * values.c (using_struct_return): New parameter gcc_p. + valops.c (call_function): New variable using_gcc. + valops.c (call_function) [REG_STRUCT_HAS_ADDR]: New code. + + * m-mips.h, mips-dep.c: New files from Forin. + m-mips.h: Replace RETURN_STRUCT_BY_REF with USE_STRUCT_CONVENTION. + +Fri Mar 16 13:17:19 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Makefile.dist: Add some dependencies of m-*.h files. + (HFILES): Add m-68k.h. + + * dbxread.c (read_struct_type): Put "operator+" not "operator +" + in symtab. + + * core.c: Split read_memory into read_memory_check and read_memory. + breakpoint.c (insert_breakpoints): If can't read memory, + tell user that error was due to seting breakpoints. + +Thu Mar 15 11:47:19 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * infrun.c [COFF_ENCAPSULATE]: Include a.out.encap.h. + + * blockframe.c (FRAMELESS_LOOK_FOR_PROLOGUE): Make it a function. + various m-*.h: Call function not macro. + frame.h: Declare the function. + +Wed Mar 14 02:44:51 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * sparc-dep.c: Include signame.h. + + * sparc-pinsn.c (print_insn): When looking for sethi before + delayed branch, call read_memory_noerr not read_memory. + + * m-isi.h, m-sun3.h, m-news.h, m-hp300bsd.h, m-altos.h, + m-hp300hpux.h, m-sun2.h: Merge machine stuff except inferior + function call stuff into new file m-68k.h. Create m-3b1.h. + +Tue Mar 13 21:34:33 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * inflow.c (new_tty): If can't open tty, print error message + before exiting. + + * blockframe.c: Remove declaration of psymtab_to_symtab. + symtab.h: Declare psymtab_to_symtab. + blockframe.c: Remove declarations of block_for_pc and + find_pc_function_start. + frame.h: Add declarations of block_for_pc and find_pc_function_start. + Remove declaration of nonexistent function find_pc_function. + values.c: include frame.h instead of declaring block_for_pc. + + * Version 3.90.2. + +Mon Mar 12 14:20:06 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * main.c (main): Delete superfluous "e" from long_options. + +Sat Mar 10 15:47:23 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * valprint.c (val_print): Print <%d bit integer> not just + . + + * dbxread.c (error_type): Fix loop that finds '\0' so that on + exit, *pp points to the '\0', not the character after. + (read_type): Make sure that places which call read_type and then + try to read more input stop immediately with another error + upon encountering '\0'. + + * dbxread.c (read_range_type): Fix check for large signed + integral type to match comment and reality. Set TYPE_LENGTH based + on n2bits for signed, n3bits for unsigned. + + * infcmd.c (cont_command): Print warning message if we + decide to ignore the argument. + + * gdb.texinfo (attach): @xref{Attach} -> @xref{Remote}. + +Fri Mar 9 16:26:47 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * symtab.h (address_class): Reinstate LOC_EXTERNAL with rewritten + comment. + + * expread.y (yyerror, parse_c_1): Make yyerror take a char * arg. + + * main.c (symbol_completion_function): Don't call error() on + "info jkldskf". + + * m-npl.h (USE_STRUCT_CONVENTION): Change >= to >. + +Thu Mar 8 00:19:01 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * symseg.h: Nuke more symseg references including LOC_EXTERNAL. + Put contents of symseg.h into symtab.h and remove symseg.h. + +Wed Mar 7 18:02:15 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * symtab.h (SYMBOL_LINE): New macro. + symtab.c (decode_line_1): Accept variable as well as function. + Lookup variable/function in selected block if no file specified. + printcmd.c: #if 0 out whereis_command. + + * command.c (do_setshow_command): Call function with additional + argument C. + main.c (set_history_size_command): Take argument C. + (set_verbose): New function to set docstring. + (initialize_main): Put set_verbose in command list. + command.c (lookup_cmd_1): Accept result_list NULL. + + * valprint.c (_initialize_valprint): Change docstring for + "set unionprint" to normal set/show form. + + * command.c (add_show_from_set): Check that docstring starts with + "Set " before assuming it does. + + * main.c (show_history): Call cmd_show_list. + command.{c,h} (cmd_show_list): New function. + command.h: Declare do_setshow_command. + + * command.h (cmd_list_element): New field completer. + main.c (symbol_completion_function): Use it. + symtab.h: Declare make_symbol_completion_list. + command.c (add_cmd): Set completer. + main.c, gdbcmd.h (noop_completer): New function. + infcmd.c: Set completer for environment functions. + + * symtab.c (types_info, _initialize_symtab): #if 0 out. + various: Use fputs_filtered, not fprintf_filtered(%s). + + * valprint.c (type_print_base): Check for integers larger than + LONGEST. + + * sun3-dep.c: Include "signame.h" instead of directly declaring + sys_siglist. + +Tue Mar 6 14:59:34 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * infrun.c (signals_info): Allow argument to be a signal name + as well as an expression. + (handle_command): Check for error from sig_number. + + * main.c (float_handler): Change error message. + + * inflow.c (create_inferior): If getenv ("SHELL") exists, use it + instead of /bin/sh. + + * dbxread.c (read_dbx_symtab, case N_SO): New variable first_symnum. + Pass it to {start,end}_psymtab. + + * dbxread.c (read_ofile_symtab): Increment symbuf_idx and symnum + when calling process_symbol_pair. + + * symtab.c (sources_info, output_source_filename): + Re-write so output_source_filename takes a first parameter + instead of a next one. + + * dbxread.c (read_dbx_symtab, case N_SO): When incrementing + symbuf_idx, increment symnum also. + + * values.c (set_internalvar_component): Use VALUE_CONTENTS, + not VALUE_CONTENTS_RAW. + + * symmisc.c (free_symtab): Don't free filename (now in symbol_obstack). + + * environ.c (init_environ): Copy entire string, including + terminating '\0'. + + * value.h, values.c: Rename value_lazy to value_fetch_lazy. + values.c (value_of_internalvar): Call value_fetch_lazy. + + * dbxread.c (read_huge_number): Return an error on encountering + a large decimal number. + + * dbxread.c (read_huge_number): Reverse sense of overflow test. + + * valprint.c (val_print, case TYPE_CODE_INT): Check for integers + larger than LONGEST. + + * dbxread.c (read_ofile_symtab): When calling process_one_symbol, + call it with desc and value rather than with bufp->n_{desc,value}. + + * defs.h (LONG_MAX): Define. + + * sun3-dep.c: Declare sys_siglist. + + * infptrace.c: Move include of gdbcore.h after a.out.h + + * Makefile.dist (expread.o, mcheck.o): Remove leading "./" not + leading ".". + + * m-hp300hpux.h [!HPUX_VERSION_5]: Define KERNEL_U_ADDR_HPUX. + infptrace.c [KERNEL_U_ADDR_HPUX] [KERNEL_U_ADDR_BSD]: + Set kernel_u_addr using nlist(). + m-hp300bsd.h: Define KERNEL_U_ADDR_BSD. + +Mon Mar 5 16:52:41 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c (read_dbx_symtab): If value of .o symbol is crazy, + don't end psymtab. + + * dbxread.c (read_dbx_symtab): Ignore first of a pair of N_SO + when both appear. + (start_subfile, start_symtab): Extra parameter dirname. + (start_subfile): Use obsavestring, not savestring, for name. + various: Call start_{subfile,symtab} with extra argument. + (end_symtab): Set dirname field in symtab. + (read_ofile_symtab): Call process_symbol_pair on pair of N_SO. + (process_symbol_pair): New function. + symtab.h (symtab): New field dirname. + source.c (open_source_file): New function. + source.c: Use open_source_file instead of openp where appropriate. + + * defs.h (TARGET_CHAR_BIT): Define. + +Sun Mar 4 13:11:48 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c (fill_symbuf): Print error messages nicely. + + * Makefile.dist (SFILES): Put standalone.c at end. + + * Makefile.dist (alldeps.mak): Put out backslash after arm-convert.s. + + * symtab.{c,h} (builtin_type_error): New type. + symseg.h (type_code): Add TYPE_CODE_ERROR. + valprint.c (val_print, type_print_base), + values.c (using_struct_return, set_return_value): + Check for and deal with TYPE_CODE_ERROR. + dbxread.c (error_type): New function + (read_type and subroutines): Call error_type instead of error. + + * dbxread.c (read_huge_number): New function. + (read_range_type): Use read_huge_number and check results + to see if it is a large integral type. + + * symmisc.c: Remove symseg stuff. + + * Gould NP1 changes from (or inspired by) chpmjd@gdr.bath.ac.uk + dbxread.c (read_dbx_symtab) [N_NBSTS]: + Treat this and N_NBLCS like N_LCSYM, etc. + (process_one_symbol) [BLOCK_ADDRESS_ABSOLUTE]: New code. + m-npl.h (USE_STRUCT_CONVENTION): Add. + (IGNORE_SYMBOL): Add 0xa4. + (END_OF_TEXT_DEFAULT): Remove. + (STRING_TABLE_OFFSET): don't add sizeof(int). + [!HAVE_VPRINTF]: Define vprintf to be doprnt, not printf. + (BLOCK_ADDRESS_ABSOLUTE): Define. + (BREAKPOINT): Pad to size of machine word. + (SAVED_PC_AFTER_CALL): Remove ` at start of line (!). + (R2_REGNUM): Define. + (SP_REGNUM, FP_REGNUM): Switch definitions. + (REGISTER_U_ADDR): Use FP_REGNUM in place of SP_REGNUM. + (STORE_STRUCT_RETURN, EXTACT_RETURN_VALUE, STORE_RETURN_VALUE, + call function stuff): + Replace bogus definitions with correct ones for NP1. + (CANNOT_EXECUTE_STACK): Define. + (FRAME_LOCALS_ADDRESS): Don't add 80. + (FRAME_FIND_SAVED_REGS): Also get SP. + gould-pinsn.c (findframe): Move framechain declaration outside #if 0. + infptrace.c (write_inferior_memory): Check addr against text_end + and use PT_WRITE_I or PT_WRITE_D as appropriate. + (store_inferior_registers): Don't try to write registers in + CANNOT_STORE_REGISTER. + m-npl.h (CANNOT_STORE_REGISTER): Define. + npl-opcode.h (lil): 0xf8080000 -> 0xf80b0000. + + * munch: Distinguish between BSD and System V nm by actually + seeing what output from nm looks like. + +Fri Mar 2 13:43:36 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * printcmd.c (print_frame_args): Change highest_offset to point + to next unprinted arg. + + * main.c (main): Print "type help for list of commands" along + with the version. Follow it with a blank line. + +Thu Mar 1 14:49:26 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * valprint.c: Move print_address for function from value_print + to val_print. + +Wed Feb 28 15:06:12 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Makefile.dist (m-sun4os4.h): Depend on m-sparc.h + + * Makefile.dist (version.c): Depend on Makefile.dist, not Makefile. + + * Makefile.dist: Change MAKEFILES to Makefiles. + + * symtab.h: Declare get_sym_file. + core.c: Include symtab.h. + + * Move signal name stuff from utils.c to signame.c + Move signal name stuff from defs.h to signame.h. + Makefile.dist (SFILES, HFILES, OBS): Add signame.{c,h,o}. + +Mon Feb 26 12:03:12 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * command.c (add_cmd): Don't call savestring on name. + +Sun Feb 25 15:52:18 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * printcmd.c (print_frame_args): Make highest_offset an int. + New variable args_printed. + (print_frame_nameless_args): Remove parameter end and add num + and first. + (print_frame_args): Change call to print_frame_nameless_args. + +Fri Feb 23 21:40:15 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * stack.c (up_command, down_command): + Only print stack frame if from_tty. + +Thu Feb 22 12:01:36 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * expread.y: Inlcude value.h and don't cast return value from + lookup_internalvar. + + * infrun.c: Remove code in #ifdef UMAX_PTRACE. + + * values.c (convenience_info): Print in form "$foo = 5". + Don't print "Debugger convenience variables:" before first one. + + * Makefile.dist: Remove ADD_FILES from CLIBS. + (gdb, kdb, xgdb): Put in ADD_FILES as well as CLIBS. + + * m-pyr.h: #if 0 out call dummy stuff. + Put in POP_FRAME which just calls error(). + valops.c: If CALL_DUMMY is not defined, put in dummy call_function + which just prints an error message. + +Tue Feb 20 22:11:40 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * breakpoint.c (commands_command): Add arg from_tty. + + * main.c (main): Put if (!setjmp (to_top_level)) around calls + to *_command made in response to command line arguments. + +Mon Feb 19 13:58:28 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * main.c (main): Use getopt_long_only. Move one-character options + to long_options. Remove entries which are just unambiguous + abbreviations of other options. + + * command.h: Add types cmd_types and var_types. + Add fields type, var_type, and var to struct cmd_list_element. + command.c (add_set_cmd, add_set_from_show): New functions. + (add_cmd): Set c->var_type. + (add_abbrev_cmd): Call add_cmd instead of duplicating code. + main.c: Add showlist. + Move parse_binary_operation from main.c to command.c. + command.c (do_setshow_command): New function. + gdbcmd.h: New file. + Makefile.dist: Add gdbcmd.h. + many files: Include gdbcmd.h, use add_set_cmd and add_show_from_set. + Replace info * with show * where appropriate. + utils.c (fputs_filtered): Use UINT_MAX in lines_per_page to mean + no paging. + defs.h: Define UINT_MAX. + infcmd.c (run_command): Use execute_command, not set_args_command. + main.c (execute_command): Call do_setshow_command if necessary. + main.c (show_command, show_history): New functions. + main.c (initialize_main): Call add_prefix_cmd + for show and show history. + + * coffread.c (enter_linenos): Print error if + file_offset < linetab_offset. + +Sun Feb 18 15:37:05 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * convex-dep.c (comm_registers_info): Fix typo. ("argc"->"arg"). + +Wed Feb 14 20:45:14 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * config.gdb: Create Makefile with make. + + * Makefile.dist, config.gdb: Move "srcdir=" line from Makefile.dist + to new file Makefile.srcdir. + + * valprint.c: Include . + + * value.h: Declare value_coerce_function. + + * findvar.c: Add missing " after #include "gdbcore.h + + * main.c (main): Re-write command parsing to use getopt. + On "gdb +help" print options with '+' not '-'. + Makefile.dist: Add getopt. + +Tue Feb 13 00:08:27 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Makefile.dist: Add "srcdir=." + config.gdb: Edit srcdir= rather than adding it to the beginning. + + * pyr-dep.c: Make global_reg_offset, last_frame_offset not static. + Move definition of reg_stack_offset to core.c [REG_STACK_SEGMENT]. + + * config/pyramid: Print message about alloca. + + * breakpoint.c (clear_command): When printing "no breakpoint" + error, only use arg if non-NULL. + + * core.c (read_memory): Rename to read_memory_noerr. + (read_memory): New function which calls read_memory and checks for err. + gdbcore.h: Declare all extern core.c functions. + move myread from core.c to utils.c. + declare it in defs.h. + (read_memory_integer): move from infcmd.c to core.c. + gdbcore.h: Declare it. + Many places: Remove error checking on read_memory, or call + read_memory_noerr instead. Include "gdbcore.h" if calling either. + + * value.h (COERCE_ARRAY): Coerce functions to function pointers. + valops.c (value_coerce_function): New function. + + * core.c, convex-dep.c, arm-dep.c (xfer_core_file): Return EIO + if address out of bounds. + + * m-arm.h, arm-dep.c arm-pinsn.c arm-opcode.h: New files. + dbxread.c, m-convex.h (VARIABLES_INSIDE_BLOCK): Add gcc_p parameter. + Makefile.dist (alldeps.mak): Special case for arm-convert.s. + dbxread.c (define_symbol): Check for local based on it not + being any one of the known deftypes. + values.c (using_struct_return): Use new macro USE_STRUCT_CONVENTION. + + * Makefile.dist, config.gdb: Put in srcdir stuff. + +Mon Feb 12 22:46:16 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * breakpoint.c: Add addr_string and cond_string fields to + struct breakpoint. + (break_command_1): Set them. Use mention (). + (mention): Create with code from break_command_1. + (breakpoint_re_set): New function. + (breakpoint_clear): Remove. + (condition_command): Set cond_string. + (breakpoint_delete): Free cond_string and addr_string. + Declare parse_c_1's type and remove casts to struct expression *. + symmisc.c (free_all_symtabs): Don't call breakpoint_clear. + dbxread.c, coffread.c (reread_symbols): Call breakpoint_re_set, + Include breakpoint.h. + breakpoint.h: New file. + dbxread.c: Move declaration of symmisc.c functions to symtab.h. + +Sun Feb 11 17:29:23 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * symtab.c: Make lookup_block_symtab extern. + symtab.h: Declare it. + valops.c (value_of_this): Use it. + +Fri Feb 9 08:59:37 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * config/hp300hpux: Print message telling people to use gcc. + + * value.h: Declare print_floating. + printcmd.c (print_scalar_formatted, case 'f'): Use print_floating. + valprint.c (val_print, case TYPE_CODE_FLT): Use print_floating. + valprint.c (print_floating): Make this function out of is_nan + and the code which was in val_print. + Put parentheses around high & 0xfffff. + Print sign and fraction for NaN's. + Print 17 digits not 16 for doubles. + (is_nan): Remove. + m-news.h, m-sun3.h: Define IEEE_FLOAT. + + * Rename gld-pinsn.c to gould-pinsn.c. + config/{pn,npl}: Change name of gld-pinsn.c + +Tue Feb 6 00:25:36 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * infptrace.c: Define PT_ATTACH if not defined. + m-hp300hpux.h: Define ATTACH_DETACH. + + * main.c (initialize_main): Change alias class to aliases. + + * dbxread.c: Search and destroy references to symsegs. + Also remove some #if 0'd code. + + * core.c: Remove reread_exec. + dbxread.c (reread_symbols): New function. + dbxread.c (symbol_file_command): Set symfile_mtime. + coffread.c: Same. + infcmd.c (run_command): Call reread_symbols not reread_exec. + + * valprint.c (val_print): When printing string after char *, print + it for "" just like any other string. + + * core.c (reread_exec): New procedure. + infcmd.c (run_command): Call reread_exec. + + * coffread.c (symbol_file_command): Add from_tty. + + * dbxread.c (symbol_file_command): Only ask about loading new + symbol table if from_tty. + +Mon Feb 5 02:25:25 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * inflow.c (inferior_died): Call breakpoint_clear_ignore_counts. + + * Makefile.dist (OBS): Remove dbxread.o and coffread.o. + + * config.gdb: Ignore files ending in '#' in config. + + * stack.c (backtrace_command): Add QUIT to get_prev_frame loops. + +Sat Feb 3 22:25:09 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * Makefile.dist (YACC): Don't use -v. + +Fri Feb 2 19:26:50 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * createtags: Only change .o to .c at end of name. + + * Makefile.dist (alldeps.mak): new target. + (Makefile): add alldeps.mak. + (SOURCES): remove PINSNS. + (TAGFILES: use ALLPARAM. + (gdb.tar): add config/. + + * config.gdb: Check for M_FILE= not #param.h + config/*: Make sure M_FILE= exists with space after M_FILE=. + Makefile.dist (TAGS): Pass M_FILE and DEPFILES. + createtags: Change .o to .c. Remove special tests for dep.c etc. + + * dbxread.c, coffread.c: Don't check COFF_FORMAT and READ_DBX_FORMAT. + Makefile.dist: Move {dbx,coff}read.c from SFILES to ALLDEPFILES. + config/*: add dbxread.o or coffread.o to depfiles. + + * Makefile.dist (depend): Depend on $(SOURCES), not force. + +Thu Feb 1 17:43:54 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * symmisc.c (print_symbol): Print newline after label. + +Wed Jan 31 22:35:38 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c (read_addl_syms): Remove code that checks for + _etext. + Move end_of_text_addr into read_dbx_symtab. + (read_dbx_symtab): #if 0 out code which checks for _etext. + +Tue Jan 30 15:40:19 1990 Jim Kingdon (kingdon at albert.ai.mit.edu) + + * Makefile.dist (gdb.tar): Use readline's "make readline.tar" + instead of having a list of readline files. + + * infrun.c (normal_stop): #if 0 out "you have found a bug in sh". + + * munch (-DSYSV): Check for .text at end of name. + Optionally allow extra underscore before initialize. + Remove space between #! and /bin/sh. + + * m-merlin.h: Put in clarifying comments about SHELL_FILE. + Makefile.dist (install): Execute M_INSTALL. + config/merlin: Define M_INSTALL. + +Mon Jan 29 04:32:09 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * inflow.c: Change all references to signal handlers from + int (*)() to void (*)(). + + * main.c: Declare init_signals before use & make it void. + Declare initialize_all_files. + + * Makefile.dist (config.status): New target. + +Sat Jan 27 00:19:50 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * defs.h (enum command_class): Remove comma after last element. + + * Makefile.dist (gdb.tar.Z): Use compress bar rather + than deleting gdb.tar.Z before starting. + + * dbxread.c (process_one_symbol): Compare context_stack_depth + with !VARIABLES_INSIDE_BLOCK, not VARIABLES_INSIDE_BLOCK. + + * mcheck.c: Put whole file in #if defined MALLOC_RANGE_CHECK. + + * mcheck.c (checkhdr): Call fatal_dump_core not abort. + + * mcheck.c: Copy from malloc distribution. + + * main.c (main): Call init_malloc (). + + * main.c (initialize_signals): Rename to init_signals. + +Fri Jan 26 00:53:23 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * *dep.c: Make core_file_command return void. + + * gdbcore.h [!KERNEL_U_ADDR]: Declare kernel_u_addr. + infptrace.c [!KERNEL_U_ADDR]: Make it extern. + + * altos-dep.c (NBPG, UPAGES): Wrap #define in #if !defined. + + * m-pn.h (GOULD_PN): Define. + *-pinsn.c: Include actual opcode table not just opcode.h + + * main.c [ALIGN_STACK_ON_STARTUP]: New code. + m-i386.h: Define ALIGN_STACK_ON_STARTUP. + + * m-merlin.h (NO_SIGINTERRUPT, SHELL_FILE): Define. + + * Move code from infptrace [USE_PTRACE_GETREGS] to sun3-dep.c. + m-sun{2,3}.h, m-sparc.h: Define FETCH_INFERIOR_REGISTERS. + + * Makefile.dist, config.gdb, config/*: + Re-write to use machine-dependent makefiles instead of cpp. + + * m-hp300hpux.h: Define FETCH_INFERIOR_REGISTERS. + infptrace.c: Put {fetch,store}_inferior_registers inside + #if !defined FETCH_INFERIOR_REGISTERS. + + * Split execcore.c into exec.c and coredep.c. + Move a bunch of stuff from coredep.c and *dep.c to gdbcore.h. + + * infptrace.c ({fetch,store}_inferior_registers): + Use U_REGS_OFFSET to set offset. + m-umax.h: Define U_REGS_OFFSET. + + * m-umax.h: Define PTRACE_{ATTACH,DETACH}. + + * m-i386.h (N_SET_MAGIC): Define. + m-i386gas.h: add #undef N_SET_MAGIC. + +Thu Jan 25 18:39:45 1990 Jim Kingdon (kingdon at mole.ai.mit.edu) + + * m-hp300bsd.h: Remove KERNEL_U_ADDR. + + * infptrace.c [!KERNEL_U_ADDR]: Get address of kernel u area + at runtime. + + * infptrace.c: Replace numbers with PT_KILL, etc. + (store_inferior_registers): Loop for as many words are in the register. + + * infptrace.c [NO_SINGLE_STEP]: Call single_step(). + + * kill_inferior{,_fast}: Declare as returning void. + + * m-sun3.h (USE_PTRACE_GETREGS): Define. + + * execcore.c: Add IS_OBJECT_FILE & related stuff. + + * infptrace.c: Include . + [ATTACH_DETACH] [USE_PTRACE_GETREGS]: New code. + + * Split default-dep.c into infptrace.c and execcore.c. + + * valprint.c [IEEE_FLOAT]: Change void * to char *. + + * breakpoint.c: Change printf_filtered(%s) to fputs_filtered. + +Wed Jan 24 00:35:52 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) + + * dbxread.c (symbol_file_command): When freeing everything, free + the string table too. + + * Makefile.dist (gdb1): add "rm -f gdb1". + + * printcmd.c (print_scalar_formatted): If size is 0, use 'b' + 'h', 'w', or 'g' depending on the type. + + * stack.c (backtrace_command): Read in symbols for frames we'll + print before printing them. + + * valops.c (value_at): Don't print "I/O error" on EIO from + ptrace. Don't print "out of bounds" for any ptrace error + except EIO. + + * valprint.c (type_print_base, case TYPE_CODE_ENUM): + Print "FOO = 5" not "FOO : 5". + + * symtab.{c,h}: Make lookup_misc_func extern. + + * Makefile.dist: Define VERSION in makefile, and generate + version.c automatically. + (gdb.tar): Use gdb-$(VERSION), not dist-gdb. + + * expread.y (yylex): Use lookup_primitive_typename to + cut down on calls to lookup_symbol. + symtab.{c,h} (lookup_primitive_typename): New function. + (lookup_typename): Use it. + + * symtab.{c,h} (check_stub_type): New function. + valprint.c (type_print_base, val_print, type_print_derivation_info), + values.c (allocate_value): Call it. + + * printcmd.c (whereis_command): New function. + symtab.c (lookup_symbol): Add symtab parameter. + various: Pass additional argument to lookup_symbol. + symseg.h (struct symbol): Add line field. + dbxread.c (define_symbol): Set sym->line. + + * dbxread.c (symbol_file_command): Read string table into + malloc'd memory (symfile_string_table) and leave it there. + (psymtab_to_symtab): Use symfile_string_table. + + * utils.c (sig_abbrev): Return NULL if not found. + infrun.c (sig_print_{header,info}): Consolidate duplicated + code from handle_command, signals_info. + (sig_print_info): Just print number if no name from sig_abbrev. + + * Makefile.dist (OTHERS): Add ChangeLog-3.x + + * infrun.c (restore_inferior_status): #if 0 out + "Unable to restore previously selected frame" error message. + + * infrun.c (signals_info, handle_command): Print signal + abbrevs along with numbers. + + * infrun.c (handle_command): Accept symbol signal names. + + * utils.c (sig_{number,abbrev}, init_sig): New functions. + _initialize_utils: Call init_sig for each signal. + defs.h: Declare them. + + * default-dep.c (read_inferior_memory): Check quit_flag in + fetch loop. + + * Changes for lazy fetching (speeds things up for big objects): + value.h (struct value): New field lazy. + VALUE_CONTENTS_RAW, VALUE_LAZY, value_at_lazy: New. + findvar.c (read_var_value): Set lazy instead of fetching. + various: Copy into VALUE_CONTENTS_RAW, not VALUE_CONTENTS. + valops.c: Add value_at_lazy, value_lazy. + various: Call value_at_lazy instead of value_at. + + * symtab.h (LONGEST): Define. + + * m-*.h (LONGEST, BUILTIN_TYPE_LONGEST): Delete (in symtab.h). + + * infrun.c (wait_for_inferior): #if 0 out stop if ABOUT_TO_RETURN + + * version.c: Change version number to 4.0development + +For older changes see ChangeLog-3.x + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-92 b/gdb/ChangeLog-92 new file mode 100644 index 0000000000..635c912e89 --- /dev/null +++ b/gdb/ChangeLog-92 @@ -0,0 +1,6285 @@ +Thu Dec 31 11:06:38 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (BISON): Add comment that when bison is used, it + must include the "-y" option. + * c-exp.y, m2-exp.y (yyrule, yyname, yyss, yyssp, yyvs, yyvsp): + Remove defines to remap non-yacc symbols, thus backing out of + previous recent changes. Standard policy is that non-yacc parser + generators get fixed, rather than adding bug workarounds in gdb + for each new one that pops up. Expand comment to note this. + * c-exp.y, m2-exp.y (YYDEBUG): Revert back to disabled by default. + +Thu Dec 31 09:03:02 1992 Stu Grossman (grossman at cygnus.com) + + * partial-stab.h (near N_BINCL): Remove redundant code in N_BINCL + case. Use code in N_SOL. + + * paread.c: New file that contains all HPPA/HPUX symbol reading + code. + * dbxread.c: Remove almost all HPPA/HPUX symbol reading code. + * (dbx_symfile_init): Use sizeof(long) instead of 4. + * (dbx_symfile_offsets): Make static. + * (pastab_build_psymtabs): New interface routine for paread to + send stabs into dbxread. + * gdb-stabs.h: Remove gobs of HPPA cruft. + +Wed Dec 30 19:47:13 1992 Fred Fish (fnf@cygnus.com) + + * c-exp.y, m2-exp.y (yyrule, yyname): Remap like other yy* names + for byacc. + * ch-exp.y (yyrule, yyname): Remap like other yy* names for byacc. + + * c-exp.y, m2-exp.y (yyreds, yytoks): Remap like other yy* names. + * c-exp.y, m2-exp.y (YYDEBUG): Define if MAINTENANCE_CMDS is defined + and YYDEBUG is not already defined. + * c-exp.y (strncmp): Replace throughout with STREQN, missed + them during the previous replacements. + * printcmd.c (_initialize_printcmd): Update internal documentation + for "set" command to note that the assignment syntax is language + dependent. + * ch-exp.y (yyreds, yytoks): Remap like other yy* names. + * ch-exp.y (YYDEBUG): Define if MAINTENANCE_CMDS is defined + and YYDEBUG is not already defined. + * ch-exp.y (GDB_REGNAME, GDB_LAST, GDB_VARIABLE, GDB_ASSIGNMENT, + single_assignment_action): New terminals and nonterminal for gdb + extensions to chill expression grammer. + * ch-exp.y (match_dollar_tokens): Lexer routine to match all + tokens that start with '$' (register names, convenience vars, etc). + * ch-exp.y (tokentab2): Add GDB_ASSIGNMENT. + * ch-exp.y (yylex): Call match_dollar_tokens. + +Mon Dec 28 15:00:01 1992 Stu Grossman (grossman at cygnus.com) + + * hppah-tdep.c (skip_trampoline_code): Use new macros for + accessing minimal symbol data. + * infcmd.c (read_pc): Use #ifdef, not #if. + * symfile.c (syms_from_objfile): Add CONST to decl for targets. + * tm-hppa.h (FIX_CALL_DUMMY): Use new macros for accessing + minimal symbol data. + + * hppah-tdep.c (frame_saved_pc): Use better test for outermost + frame. Use find_return_regnum to find the caller. + * (find_unwind_entry): New routine to locate stack frame info + associated with a procedure. This looks in the $UNWIND_START$ + section in the SOM file. + * (find_return_regnum): New routine. Uses find_unwind_entry() to + figure out where the caller's return address is stored. + * (find_proc_framesize): New routine. Uses find_unwind_entry() + to figure out the frame size for a procedure. + * (saved_pc_after_call): New routine, moved from tm-hppa.h. + * (init_extra_frame_info): New routine. Corrects PC and FP for + outermost frame if necessary. + * (frame_chain): New routine, moved from tm-hppa.h. + * (skip_trampoline_code): Handle computed function calls (ie: + calls from $$dyncall). + * (unwind_command): Temporary support function to allow user + to control/observe aspects of the unwind (stack frame) info. + * infcmd.c (read_pc): (Temporary), put a hack in to see if the PC + was in a system call, if so, then read the PC from r31. + * tm-hppah.h (SKIP_TRAMPOLINE_CODE, IN_SOLIB_TRAMPOLINE): Deal + with extra arg for skip_trampoline_code(). + * (INIT_EXTRA_FRAME_INFO): Define to point at subr (see above). + * (FRAME_CHAIN, FRAME_CHAIN_VALID): Turn into real subroutines. + * tm-hppa.h (SAVED_PC_AFTER_CALL): Turn into real subroutine. + +Sun Dec 27 17:34:15 1992 Fred Fish (fnf@cygnus.com) + + * dbxread.c (dbx_symfile_init, elfstab_build_psymtabs): + Call new bfd_get_size() and verify that string table is no larger + than the file that is supposed to contain it. + * symfile.c (syms_from_objfile): Only complain about configured + NAMES_HAVE_UNDERSCORE differences between gdb and bfd if the + current target is the default BFD target. + +Sat Dec 26 20:51:41 1992 Fred Fish (fnf@cygnus.com) + + * solib.c (BKPT_AT_MAIN): Change to BKPT_AT_SYMBOL. + * solib.c (bkpt_names): New array of symbol names to try to + use for the "mapping complete" breakpoint. Configurable + define SOLIB_BKPT_NAME is first one to try. + * solib.c (find_solib): Test debug_base for nonzero rather + than just greater than zero. + * solib.c (enable_break): Use bkpt_names to look up address + at which to set "mapping complete" breakpoint. + +Tue Dec 22 20:33:38 1992 Fred Fish (fnf@cygnus.com) + + * defs.h (STRCMP, STREQ, STREQN): New macros. + * defs.h (demangle_and_match): Remove prototype. + * dwarfread.c (STREQ, STREQN): Remove macros, replaced with STREQ + and STREQN defined in defs.h. + * dwarfread.c (set_cu_language): For completely unknown languages, + try to deduce the language from the filename. Retain behavior + that for known languages we don't know how to handle, we use + language_unknown. + * dwarfread.c (enum_type, symthesize_typedef): Initialize language + and demangled name fields in symbol. + * dwarfread.c, mipsread.c, partial-stab.h: For all usages of + ADD_PSYMBOL_TO_LIST, add language and objfile parameters. + * dwarfread.c (new_symbol): Attempt to demangle C++ symbol names + and cache the results in SYMBOL_DEMANGLED_NAME for the symbol. + * elfread.c (STREQ): Remove macro, use STREQ defined in defs.h. + Replace usages throughout. + * elfread.c (demangle.h): Include. + * elfread.c (record_minimal_symbol): Remove prototype and function. + * gdbtypes.h, symtab.h (B_SET, B_CLR, B_TST, B_TYPE, B_BYTES, + B_CLRALL): Moved from symtab.h to gdbtypes.h. + * infcmd.c (jump_command): Remove code to demangle name and add + it to a cleanup list. Now just use SYMBOL_DEMANGLED_NAME. + * minsyms.c (demangle.h): Include. + * minsyms.c (lookup_minimal_symbol): Indent comment to match code. + * minsyms.c (install_minimal_symbols): Attempt to demangle symbol + names as C++ names, and cache them in SYMBOL_DEMANGLED_NAME. + * mipsread.c (psymtab_language): Add static variable. + * stabsread.c (demangle.h): Include. + * stabsread.c (define_symbol): Attempt to demangle C++ symbol + names and cache them in the SYMBOL_DEMANGLED_NAME field. + * stack.c (return_command): Remove explicit demangling of name + and use of cleanups. Just use SYMBOL_DEMANGLED_NAME. + * symfile.c (demangle.h): Include. + * symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list): Fix + to match macros in symfile.h and allow them to be compiled + if INLINE_ADD_PSYMBOL is not true. + * symfile.h (INLINE_ADD_PSYMBOL): Default to true if not set. + * symfile.h (ADD_PSYMBOL_*): Add language and objfile parameters. + Add code to demangle and cache C++ symbol names. Use macro form + if INLINE_ADD_PSYMBOL is true, otherwise use C function form. + * symmisc.c (add_psymbol_to_list, add_psymbol_addr_to_list): + Remove, also defined in symfile.c, which we already fixed. + * symtab.c (expensive_mangler): Remove prototype and function. + * symtab.c (find_methods): Remove physnames parameter and fix + prototype to match. + * symtab.c (completion_list_add_symbol): Name changed to + completion_list_add_name. + * symtab.c (COMPLETION_LIST_ADD_SYMBOL): New macro, adds both + the normal symbol name and the cached C++ demangled name. + * symtab.c (lookup_demangled_partial_symbol, + lookup_demangled_block_symbol): Remove prototypes and functions. + * symtab.c (lookup_symbol): Remove use of expensive_mangler, + use lookup_block_symbol instead of lookup_demangled_block_symbol. + Remove code to try demangling names and matching them. + * symtab.c (lookup_partial_symbol, lookup_block_symbol): + Fix to try matching the cached demangled name if no match is + found using the regular symbol name. + * symtab.c (find_methods): Remove unused physnames array. + * symtab.c (name_match, NAME_MATCH): Remove function and macro, + replaced with SYMBOL_MATCHES_REGEXP from symtab.h. + * symtab.c (completion_list_add_symbol): Rewrite to use cached + C++ demangled symbol names. + * symtab.h: Much reformatting of structures and such to add + whitespace to make them more readable, and make them more + consistent with other gdb structure definitions. + * symtab.h (general_symbol_info): New struct containing fields + common to all symbols. + * symtab.h (SYMBOL_LANGUAGE, SYMBOL_DEMANGLED_NAME, + SYMBOL_SOURCE_NAME, SYMBOL_LINKAGE_NAME, SYMBOL_MATCHES_NAME, + SYMBOL_MATCHES_REGEXP, MSYMBOL_INFO, MSYMBOL_TYPE): New macros. + * symtab. (struct minimal_symbol, struct partial_symbol, struct + symbol): Use general_symbol_info struct. + * utils.c (demangle_and_match): Remove, no longer used. + * valops.c (demangle.h): Include. + * xcoffexec.c (eq): Remove macro, replace usages with STREQ. + * blockframe.c, breakpoint.c, c-exp.y, c-valprint.c, dbxread.c, + infcmd.c, m2-exp.y, minsyms.c, objfiles.h, solib.c, stack.c, + symmisc.c, symtab.c, valops.c: Replace references to minimal + symbol fields with appropriate macros. + * breakpoint.c, buildsym.c, c-exp.y, c-typeprint.c, c-valprint.c, + coffread.c, command.c, convex-tdep.c, cp-valprint.c, dbxread.c, + demangle.c, elfread.c, energize.c, environ.c, exec.c, + gdbtypes.c, i960-tdep.c, infrun.c, infrun-hacked.c, language.c, + main.c, minsyms.c, mipsread.c, partial-stab.h, remote-es1800.c, + remote-nindy.c, remote-udi.c, rs6000-tdep.c, solib.c, source.c, + sparc-pinsn.c, stabsread.c, standalone.c, state.c, stuff.c, + symfile.c, symmisc.c, symtab.c, symtab.h, tm-sysv4.h, + tm-ultra3.h, values.c, xcoffexec.c, xcoffread.c: Replace strcmp + and strncmp usages with STREQ, STREQN, or STRCMP as appropriate. + * breakpoint.c, buildsym.c, c-typeprint.c, expprint.c, findvar.c, + mipsread.c, printcmd.c, source.c, stabsread.c, stack.c, + symmisc.c, tm-29k.h, valops.c, values.c: Replace SYMBOL_NAME + references with SYMBOL_SOURCE_NAME or SYMBOL_LINKAGE_NAME as + appropriate. + * buildsym.c (start_subfile, patch_subfile_names): Default the + source language to what can be deduced from the filename. + * buildsym.c (end_symtab): Update the source language in the + allocated symtab to match what we have been using. + * buildsym.h (struct subfile): Add a language field. + * c-typeprint.c (c_print_type): Remove code to do explicit + demangling. + * dbxread.c (psymtab_language): Add static variable. + * dbxread.c (start_psymtab): Initialize psymtab_language using + deduce_language_from_filename. + +Mon Dec 21 22:24:33 1992 Fred Fish (fnf@cygnus.com) + + * valprint.c (val_print): Reorganize comment and add note + about dependency on target byte ordering. + * ch-exp.y (value_array_slice): Fix typo. + * ch-valprint.c (chill_val_print): Remove C'ism that arrays of + byte sized ints are assumed to be char strings and printed with + string syntax. In chill, arrays of chars and arrays of + bytes/ubytes are distinquishable, and printed appropriately. + +Mon Dec 21 18:02:35 1992 Stu Grossman (grossman at cygnus.com) + + * tm-hppah.h: #define NEED_TEXT_START_END for target memory + read/write routines for HPUX. + + * hppa-pinsn.c (print_insn): Improve handling of be and ble + branch targets to compute target address using const from previous + instruction if necessary. + * Add `Q' operator to print out bit position field various + instructions. + * hppah-nat.c: #include sys/param.h, and sys/user.h. General + cleanups, use new code from Utah. + * (store_inferior_registers): Update to new code from Utah. + * (initialize_kernel_u_addr): Re-enable decl of struct user u. + * (fetch_register): Clear out priv level when reading PCs. + * hppah-tdep.c: Get rid of gobs of KERNELDEBUG stuff. + * Remove decl of errno, #include wait.h and target.h. + * (frame_saved_pc): Check `flags' pseudo-register to see if we + were inside of a kernel call. If so, then PC is in a different + register. Also, mask out bottom two bits of all PCs so as not to + confuse higher level code. + * (push_dummy_frame): Create from #define in tm-hppa.h. + * (find_dummy_frame_regs): Update from Utah. + * (hp_pop_frame): Create from #define in tm-hppa.h. + * (hp_restore_pc_queue): New, from Utah. + * (hp_push_arguments): Big fixes from Utah. + * (pa_do_registers_info, pa_print_registers): Only print out fp + regs upon request. + * (skip_trampoline_code): New routine to deal with stubs that + live in nowhereland between callers and callees. + * i860-tdep.c: Remove decl of attach_flag. + * infrun.c (wait_for_inferior): Add new macro + INSTRUCTION_NULLIFIED, which can tell if the instruction pointed + at by PC will be nullified. If so, then step the target once more + so as to avoid confusing the user. + * (just before step_over_function:): Use stop_func_start, not + stop_pc when checking for the existance of line number info. + stop_func_start will reflect the proper address of the target + routine, not of the stub that we may be traversing to get there. + * tm-hppa.h: define SKIP_TRAMPOLINE_CODE and IN_SOLIB_TRAMPOLINE + to deal with the stubs that PA compilers sometimes stick between + callers and callees. Also, define FLAGS_REGNUM for access to the + `flags' pseudo-reg. + * (REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Use + memcpy, not bcopy. + * (CANNOT_STORE_REGISTER): New from Utah. Says that we can't + write gr0, PC regs, and PSW! + * (FRAME_FIND_SAVED_REGS): Bug fixes from Utah. + * (PUSH_DUMMY_FRAME, POP_FRAME): Make into real routines in + hppah-nat.c. + * (CALL_DUMMY, FIX_CALL_DUMMY): Fixes from Utah. + * Define struct unwind_table_entry. + * valops.c (call_function_by_hand): Add another arg to + FIX_CALL_DUMMY (under #ifdef GDB_TARGET_IS_HPPA). Why is this + necessary? + +Mon Dec 21 02:17:57 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * remote-vx.c: remove include of "symfile.h", replace it with "complaints.h" + +Fri Dec 18 10:32:25 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.7.4. + * Makefile.in (SFILES_MAINDIR): Add typeprint.c, c-typeprint.c, + m2-typeprint.c, c-valprint.c cp-valprint.c m2-valprint.c. + * Makefile.in (HFILES): Add valprint.h. + * Makefile.in (OBS): Add typeprint.o, c-typeprint.o, + m2-typeprint.o, c-valprint.o, cp-valprint.o m2-valprint.o. + * typeprint.c, typeprint.h: New files for language independent + type printing functions. + * c-typeprint.c, m2-typeprint.c: New files for language dependent + type printing functions and definitions. + * valprint.h: New include file for language independent value + printing definitions. + * c-valprint.c, cp-valprint.c, m2-valprint.c: New files for language + dependent value printing functions. + * c-exp.y (production ptype): Add range_type variable and use new + create_range_type function. + * c-exp.y (tokentab2, tokentab3), c-lang.c (c_op_print_tab), + infcmd.c (path_var_name), language.c (unk_op_print_tab), + m2-lang.c (m2_op_print_tab): Change from ANSI-obsolescent + "const static" to ANSI-conformant "static const". + * c-exp.y (c_create_fundamental_type): Remove unused nbytes. + * c-exp.y (c_language_defn, cplus_language_defn): Add c_print_type, + and c_val_print. + * c-lang.h (c_print_type, c_val_print): Add prototypes. + * coffread.c (decode_type): Add range_type variable and call to + new create_range_type function. + * complaints.c (complain): Remove unused val variable. + * complaints.c (_initialize_complaints): Make it void. + * convex-tdep.c (value_of_trapped_internalvar): Add range_type + variable and call new create_range_type function. + * defs.h (enum val_prettyprint): Move enum from value.h to here + so we can avoid having to include value.h just for prototypes that + need the enum (thanks ANSI). + * dwarfread.c (struct_type): Local anonymous_size variable is + only used if !BITS_BIG_ENDIAN. + * dwarfread.c (decode_subscript_data_item): Add rangetype + variable and call new create_range_type function. + * elfread.c (elf_symfile_read): Remove unused dbx and text_sect + variables. + * eval.c (evaluate_subexp): Remove unused local variable name + and the statement with no side effects that initializes it. + * expprint.c (print_subexp): Change local_printstr to + LA_PRINT_STRING. + * gdbtypes.c (create_range_type): New function that creates + a range type using code fragments from object file readers as + an example of what has to be initialized. + * gdbtypes.c (create_array_type): Removed index_type, low_bound, + and high_bound parameters, replaced with a single range_type + parameter. Change function body to use passed in range_type + rather than handcrafting one. + * gdbtypes.h (create_range_type): Add prototype. + * gdbtypes.h (create_array_type): Change prototype parameters. + * infrun.c (normal_stop): Remove unused local variables tem and c. + * infrun.c (hook_stop_stub): Return 0 rather than random value. + * language.c (unk_lang_print_type, unk_lang_val_print): Add + stub functions that call error if called. + * language.c (unknown_language_defn, auto_language_defn, + local_language_defn): Add initializers unk_lang_print_type and + unk_lang_val_print. + * language.h (struct language_defn): Reformat for larger + comments, add la_print_type and la_val_print members. Add + LA_PRINT_TYPE and LA_VAL_PRINT macros. Change local_printchar + to LA_PRINT_CHAR and local_printstr to LA_PRINT_STRING. + * m2-lang.c (m2_create_fundamental_type): Remove unused local + variable nbytes. + * m2-lang.c (m2_language_defn): Add initializers m2_print_type + and m2_val_print. + * m2-lang.h (m2_print_type, m2_val_print): Add prototypes. + * main.c (execute_command): Remove unused local variable cmdlines. + * main.c (echo_command), stabsread.c (read_type), printcmd.c + (clear_displays), symmisc.c (block_depth), values.c + (clear_value_history): + Make testing of truth value of assignment result explicit. + * mipsread.c (upgrade_type): Update FIXME to include future use + of create_range_type. + * printcmd.c (ptype_command, ptype_eval, whatis_command, + whatis_exp, maintenance_print_type): Move prototypes and functions + to new typeprint.c. + * printcmd.c (_initialize_printcmd): Move add_com calls for + ptype_command and whatis_command to new typeprint.c. + * ser-bsd.c (serial_open): Remove unused variable sgttyb. + * source.c (find_source_lines): Local variable c only used + when LSEEK_NOT_LINEAR is defined. + * stabsread.c (read_array_type): Use new create_range_type + function. + * stabsread.c (read_range_type): Add new index_type variable and + call new create_range_type function rather than handcrafting + range types. + * symmisc.c (type_print_1): Change usages to LA_PRINT_TYPE. + * symtab.c (typedef_print usages): Use c_typedef_print, renamed. + * symtab.c (type_print_base usages): Use c_type_print_base. + * symtab.c (type_print_varspec_prefix usages): Use + c_type_print_varspec_prefix. + * symtab.c (type_print_method_args usages): Use + cp_type_print_method_args. + * valprint.c: Completely ripped apart and the fragments used + to create c-valprint.c, cp-valprint.c, m2-valprint.c, and + valprint.h. Remaining stuff is language independent. + * value.h (struct fn_field): Forward declare for prototypes. + * value.h (type_print_1): Remove prototype. + * value.h (enum val_prettyprint): Moved to defs.h. + * value.h (typedef_print): Prototype renamed to c_typedef_print. + * value.h (baseclass_offset): Add prototype. + * Makefile.in (SFILES_MAINDIR): Add ch-typeprint.c, ch-valprint.c. + * Makefile.in (OBS): Add ch-typeprint.o, ch-valprint.o. + * ch-typeprint.c: New file for language dependent type printing. + * ch-valprint.c: New file for language dependent value printing. + * ch-exp.y (parse_number): Remove prototype and stub function. + * ch-exp.y (decode_integer_literal): Removed unused digits and + temp variables. + * ch-exp.y (convert_float): Completely ifdef out for now. + * ch-exp.y (tokentab2, tokentab3, tokentab4, tokentab5), + ch-lang.c (chill_op_print_tab): + Change from ANSI-obsolescent "const static" to ANSI-conformant + "static const". + * ch-exp.y (yylex): Add unhandled storage class enumeration + literals to switch statement for completeness. + * ch-lang.c (chill_create_fundamental_types): Remove unused + nbytes variable. Change dummy type to 2 bytes to match int. + Handle FT_VOID types gratuituously added to chill DWARF by + compiler. Change FT_CHAR case to generate an TYPE_CODE_CHAR + type rather than a one byte TYPE_CODE_INT type. + * ch-lang.c (chill_language_defn): Add chill_print_type and + chill_val_print. + * ch-lang.h (chill_print_type, chill_val_print): Add prototypes. + +Thu Dec 17 00:44:57 1992 John Gilmore (gnu@cygnus.com) + + Eliminate uses of NAMES_HAVE_UNDERSCORE, using + bfd_get_symbol_leading_char instead. + + * coffread.c (EXTERNAL_NAME): New macro for removing possible + leading character from names. + (read_coff_symtab): Use BFD's FILE *, don't open a second one. + (process_coff_symbol, coff_read_struct_type, coff_read_enum_type): + Replace NAMES_HAVE_UNDERSCORE with EXTERNAL_NAME. + + * kdb-start.c (main): Remove NAMES_HAVE_UNDERSCORE. + * minsyms.c (install_minimal_symbols): Replace NAMES_HAVE_UNDERSCORE. + Remove SOME_NAMES_HAVE_DOT support (apparently unused). + * partial-stab.h: Replace NAMES_HAVE_UNDERSCORE. + * solib.c: Replace NAMES_HAVE_UNDERSCORE. + * stabsread.h: Remove NAMES_HAVE_UNDERSCORE and HASH_OFFSET. + * symfile.c (syms_from_objfile): Insert debugging check to test + NAMES_HAVE_UNDERSCORE setting against the BFD support. + + * doc/gdbint.texinfo (Host Conditionals): Remove + NAMES_HAVE_UNDERSCORE, SOME_NAMES_HAVE_DOT, document + MEM_FNS_DECLARED. + (Target Conditionals): Remove all of the above. + + * xm-rs6000.h (MEM_FNS_DECLARED): Update comments. + + * coffread.c (read_coff_symtab, C_BLOCK): Use complain() rather + than error() for .bb/.eb. Bug found by Eddie Fung, . + +Tue Dec 15 10:05:56 1992 Ian Lance Taylor (ian@cygnus.com) + + * coffread.c (decode_type): catch negative tagndx fields generated + by SCO 3.2v4 cc. + * exec.c: comment out string following #endif. + * configure.in (i[34]86-*-sco3.2v4*): use host i386sco4. + * xm-i386sco.h: include and , required by + . + * config/i386sco4.mh: new file; like i386sco.mh, but don't require + gcc, and define const to empty to avoid SCO 3.2v4 cc bug. + +Tue Dec 15 04:14:24 1992 Fred Fish (fnf@cygnus.com) + + * complaints.c: New file, code moved from utils.c. + * complaints.c (complain): Made into a varargs function. + * complaints.h: New file, code moved from symfile.h. + * Makefile.in (SFILES_MAINDIR): Add complaints.c. + * Makefile.in (HFILES): Add complaints.h. + * Makefile.in (OBS): Add complaints.o. + * symfile.c (complaint_root, stop_whining, complaint_series, + complain, clear_complaints, add_show_from_set for stop_whining): + Moved to complaints.c. + * symfile.h (struct complaint, complaint_root decl, complain + prototype, clear_complaints prototype): Moved to complaints.h. + * buildsym.c, coffread.c, dbxread.c, dwarfread.c, elfread.c, + gdbtypes.c, mipsread.c, stbsread.c, symfile.c: Include + complaints.h. Remove casts from arguments to complain(), + which is now a varargs function, and remove unnecessary + placeholder zero args. + * defs.h (begin_line): Add prototype. + * defs.h (vprintf_filtered): Add prototype. + * dwarfread.c (varargs.h): Remove, no longer needed. + * dwarfread.c (dwarfwarn): Remove prototype and function. + * dwarfread.c (complaints): Define a bunch of complaints. + * dwarfread.c (SQUAWK): Remove macro defs, convert all + usages to standard complain() calls. + * utils.c (begin_line): New function that ensures that + whatever gets filter-printed next starts on its own line. + * utils.c (vprintf_filtered): New func, like vfprintf_filtered, + but to stdout (calls vfprintf_filtered internally). + +Tue Dec 15 02:01:00 1992 John Gilmore (gnu@cygnus.com) + + * remote.c: Avoid printf_filtered line limit. Suggested by + Robert R. Henry, . + * infcmd.c (environment_info): Ditto, for Don Allen . + + * main.c (main): Accept --silent as well as --quiet. Change +help + to --help. Suggested by Karl Berry, . + + * doc/gdbint.texinfo: SWAP_HOST_AND_TARGET => SWAP_TARGET_AND_HOST. + Noticed by Andy Jackson, . + +Mon Dec 14 23:28:15 1992 John Gilmore (gnu@cygnus.com) + + * tm-nindy960.h, remote-nindy.c: Lint. + +Mon Dec 14 18:48:52 1992 Fred Fish (fnf@cygnus.com) + + * gdbtypes.c (create_array_type): Complete rewrite. Now requires + a optional type to decorate as an array type, the type of the + index, and the bounds of the array. Records this additional info + in the array type for use with languages with nonzero array + bounds. + * gdbtypes.h (enum type_code): Update comment for TYPE_CODE_ARRAY + to note that arrays may have bounds. + * gdbtypes.h (create_array_type): Update prototype. + * c-exp.y (ptype production): Adjust for new create_array_type + calling conventions. + * coffread.c (decode_type): Call create_array_type rather than + handcrafting array types. + * convex-tdep.c (value_type): Remove, now use create_array_type. + * convex-tdep.c (value_of_trapped_internalvar): Convert calls to + vector_type into calls to create_array_type. + * dwarfread.c (decode_subscr_data): Name changed to + decode_subscript_data_item throughout. + * dwarfread.c (decode_subscript_data_item): Rewrite to use + create_array_type. Now records index type and range as well. + * dwarfread.c (dwarf_read_array_type): Rewrite as part of + change to use create_array_type. + * dwarfread.c (read_subroutine_type): Test existing user defined + types before decorating them, to ensure they are blank, and + complain about it if they are not. + * dwarfread.c (decode_fund_type): For unrecognized types, always + return some valid type (type integer). If the unrecognized type + cannot be an implementation defined type, complain as well. + * m88k-tdep.c (pushed_size): Update comment for TYPE_CODE_ARRAY. + * m88k-tdep.c (store_param): Update comment for TYPE_CODE_ARRAY. + * mipsread.c (upgrade_type): Add FIXME comment that code to + handcraft arrays should be replaced with call to create_array_type. + * stabsread.c (read_array_type): Replace code to handcraft + array types with call to create_array_type. + * valprint.c (type_print_varspec_prefix): Minor formatting + change, join lines that don't need to be split. + +Mon Dec 14 17:18:42 1992 Stu Grossman (grossman at cygnus.com) + + * convex-xdep.c, hppab-nat.c, infptrace.c: Remove + decl for attach_flag, it now lives in inferior.h. + * hppa-pinsn.c: Reformat opcode tables. Add function prototypes. + Make most functions static. + * hppah-nat.c: General cleanups, remove BSD specific code (since + that all lives in hppab-nat.c). + * hppah-tdep.c (frame_chain_valid), tm-hppa.h (FRAME_CHAIN): + Change sense of test against inside_entry_file(). This fix is + from U. of Utah. + * tm-hppa.h (PUSH_DUMMY_FRAME, POP_FRAME): Use char * for 2nd arg + to read/write_register_bytes(). + * gdbtypes.h: Remove const from decl for cplus_struct_default to + work around PA-GAS assembler bug. Also, add trailing */ to some + comments. + * gdbtypes.c: Remove const from decl for cplus_struct_default. + Same reason as above. + +Wed Dec 9 19:53:25 1992 John Gilmore (gnu@cygnus.com) + + * mipsread.c (parse_symbol): When checking whether a structured + type is an enum, check qualifiers of its first member, as well as + the base type of the member. Bug found and fixed by John M. + Farrell, . + + * vx-share/{reg.h,xdr_regs.h,xdr_regs.c}: Remove, unused. + * remote-vx.c: Don't include vx-share/reg.h. + * vx-share/ptrace.h: Reproduce from scratch. + * config/{vxworks68,vxworks960}: Don't include xdr_regs.o. + * Makefile.in: Remove references to removed files, and to removed + 29k-share directories. + +Tue Dec 8 13:30:58 1992 Fred Fish (fnf@cygnus.com) + + * c-lang.c (_initialize_c_language): Name changed from + _initialize_c_exp. + * m2-lang.c (_initialize_m2_language): Name changed from + _initialize_m2_exp. + * m2-lang.c (_initialize_m2_language): Change malloc to xmalloc since + it is no longer inside m2-exp.y, where it was remapped by Makefile. + * c-exp.y, m2-exp.y: Migrate code that has nothing to do with + expression parsing into c-lang.c and m2-lang.c respectively. + * c-lang.c, m2-lang.c: New files, code migrated from c-exp.y and + m2-exp.y respectively. + * c-lang.h, m2-lang.h: New files, internal interfaces between c-* + and m2-* files respectively. + * Makefile.in (SFILES_MAINDIR): Add c-lang.c, m2-lang.c. + * Makefile.in (HFILES): Add c-lang.h, m2-lang.h. + * Makefile.in (OBS): Add c-lang.o, m2-lang.o. + * expression.h (struct block): Forward declaration for prototypes. + * language.h (struct objfile): Forward declaration for prototypes. + * Makefile.in (SFILES_MAINDIR): Add ch-lang.c. + * Makefile.in (HFILES): Add ch-lang.h. + * Makefile.in (OBS): Add ch-lang.o. + * ch-exp.y: Migrate code that has nothing to do with expression + parsing into ch-lang.c. + * ch-lang.c: New file, code migrated from c-exp.y. + * ch-lang.h: New file, internal interface between ch-* files. + * ch-lang.c (_initialize_chill_language): Name changed from + _initialize_chill_exp. + + Changes for Amiga Unix from rhealey@ub.d.umn.edu. + * config/amix.mh (NAT_FILE): Add, set to nm-sysv4.h. + * config/amix.mh (NATDEPFILES): Add. + * config/amix.mh (XDEPFILES): Move procfs.o and fork-child.o + to NATDEPFILES. + + * dwarfread.c (decode_subscr_data): Remove spurious test that + accepted only integer subscript types. We don't do anything + with the type at the moment anyway. + +Fri Dec 4 06:56:56 1992 Fred Fish (fnf@cygnus.com) + + * ch-exp.y (match_character_literal): Fix case where no + match at all is found. + * ch-exp.y (chill_create_fundamental_type): Chill uses fixed + width types. For example, "INT" is always 2 bytes regardless + of the values of any TARGET_*_BIT macros. So use explicit + numeric sizes for the types. + +Thu Dec 3 12:00:06 1992 Fred Fish (fnf@cygnus.com) + + * c-exp.y (c_create_fundamental_type): New function to create + language specific fundamental types for C. + * m2-exp.y (m2_create_fundamental_type): New function to create + language specific fundamental types for Modula 2. + * c-exp.y (c_language_defn, cplus_language_defn): Add + c_create_fundamental_type to language struct initializers. + * m2-exp.y (m2_language_defn): Add m2_create_fundamental_type + to language struct initializers. + * dwarfread.c (expression.h, language.h): Include. + * dwarfread.c (ftypes): New array to hold fundamental types + for current compilation unit. + * dwarfread.c (cu_language_defn): New pointer to language + struct for language of current compilation unit. + * dwarfread.c (dwarf_fundamental_type): New function to + create/lookup fundamental types. + * dwarfread.c (set_cu_language): Initialize cu_language_defn. + * dwarfread.c (throughout): Replace lookup_fundamental_type + with dwarf_fundamental_type. + * dwarfread.c (read_file_scope): Zero out ftypes for each new + compilation unit (may be different language or different objfile). + * gdbtypes.c (lookup_fundamental_type): Move actual type + creations into language specific fundamental type creation + functions and call via create_fundamental_type. Add comment + about this function being obsolescent. + * gdbtypes.h (FT_BYTE, FT_UNSIGNED_BYTE): New types, true byte + sized signed and unsigned integers. + * gdbtypes.h (FT_NUM_MEMBERS): Increment, new types added. + * language.c (language_def): New function to lookup a language + struct given it's enumeration. + * language.h (struct language_defn): Add la_fund_type, a pointer + to a function that creates fundamental types for this language. + * language.h (create_fundamental_type): New macro to create + fundamental types based on the current language. + * language.h (language_def): Add prototype. + * language.c (unk_lang_create_fundamental_type): New function + for initializing language structs, calls error if called. + * language.c (unk_language_defn, auto_language_defn, + local_language_defn): Use unk_lang_create_fundamental_type. + ch-exp.y (chill_create_fundamental_type): New function. + ch-exp.y (chill_language_defn): Add chill_create_fundamental_type. + ch-exp.y (_initialize_chill_exp): BOOL types are only one byte. + +Tue Dec 1 17:07:31 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (CHILL_PRODUCER): Add producer string for + GNU chill. + * dwarfread.c (handle_producer): Test CHILL_PRODUCER as well + as GCC_PRODUCER and GPLUS_PRODUCER. + +Mon Nov 30 18:46:58 1992 Stu Grossman (grossman at cygnus.com) + + * remote-udi.c (udi_wait): Don't stop if TIP says that remote is + still running. + +Mon Nov 30 12:00:25 1992 Fred Fish (fnf@cygnus.com) + + * tm-sun4sol2.h: Add CPLUS_MARKER. Solaris 2.0 requires '.' + rather than '$'. This particular piece of braindamage is + spreading like ooze. It's now infected libiberty, deja-gnu, + gdb, and gcc. + * values.c (baseclass_addr): Use CPLUS_MARKER rather than + hardwired '$' character. + +Sun Nov 29 15:22:42 1992 Fred Fish (fnf@cygnus.com) + + (Changes to break incredibly ugly, unmaintainable 750 line + read_struct_type function up into managable pieces.) + * Makefile.in (VERSION): Bump to 4.7.3. + * stabsread.c (struct field_info): Local struct definition. + * stabsread.c (read_member_functions, read_struct_fields, + read_baseclasses, read_tilde_fields, attach_fn_fields_to_type, + attach_fields_to_type, read_cpp_abbrev): Prototypes and new + functions from fragmented read_struct_type. + * stabsread.c (stabs_general_complaint): Catchall complaint. + * stabsread.c (STABS_CONTINUE): Macro'ize cretinous stabs + symbol name continuation code. Use macro throughout. + * stabsread.c (various places): Replace add-one-to-pointer + with pointer increment. + * stabsread.c (read_type): Retain function local copy of type + descriptor. Rearrange code calling read_struct_type() to match + new conventions. + * stabsread.c (define_symbol): For the sake of dbx, gcc emits + a single blank as the name of nameless enumerations. Recognize + this special case and set nameless flag. + * ch-exp.y (GENERAL_PROCEDURE_NAME, LOCATION_NAME): New + terminal tokens. + * ch-exp.y (access_name): New non-terminal token and + production. + * ch-exp.y (general_procedure_name): Now a terminal token. + * ch-exp.y (location): Expand production. + * ch-exp.y (match_simple_name_string): New function. + * ch-exp.y (yylex): Call match_simple_name_string and return + GENERAL_PROCEDURE_NAME or LOCATION_NAME as appropriate. + +Wed Nov 25 07:17:13 1992 Fred Fish (fnf@cygnus.com) + + * munch: Backslash escape vertical bar characters inside + grep patterns since they have special meaning for some greps. + * parse.c (write_exp_string): Complete rewrite to store string + contants as a leading explicit length, followed by the string data, + followed by a trailing explicit length. + * eval.c (evaluate_subexp), expprint.c (print_subexp), + parse.c (length_of_subexp), parse.c (prefixify_subexp): + Use recorded explicit length of strings in expression elements, + rather than strlen. Adjust code to skip over strings stored in + expression elements, and code to access strings, to account for + new leading explicit size expression element. + * parse.c (length_of_subexp): Test for minimum endpos of 1, not + 0, to avoid negative expression element indices. + * valops.c (search_struct_method): Minor whitespace change. + +Mon Nov 23 11:14:15 1992 Fred Fish (fnf@cygnus.com) + + * c-exp.y (yylex): Add tempbuf, tempbufindex, and tempbufsize, + which together maintain a dynamically expandable static buffer + for the lexer to use when translating C strings to their internal + form (other future uses possible). Fix parsing of C style strings + to do the normal C style input conversions of escaped character + sequences. + * valops.c (value_string): Remove translation of escaped + character sequences, now done in C expression parser. + * language.h (PRINT_LITERAL_FORM): New macro that takes character + and decides if it should be printed in literal form or some other + form, based on it's ASCII value and setting of sevenbit_strings. + * {c-exp.y, m2-exp.y} (emit_char): Use new PRINT_LITERAL_FORM + macro, change indentation style. + * ch-exp.y (chill_printchar): Use new PRINT_LITERAL_FORM macro. + * ch-exp.y (chill_printstr): First cut at real function instead + of error stub. + +Sun Nov 22 16:21:41 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * nindy-share/stop.h: fixed bogus comment-end in copyright message + + * i960-pinsn.c: fixed two calls of fputs_filtered that had 3 arguments + +Fri Nov 20 21:35:57 1992 Fred Fish (fnf@cygnus.com) + + * defs.h (sevenbit_strings): Add declaration. + * defs.h (printchar): Replace with gdb_printchar. + * language.h (language_defn): Add new function pointers + la_printchar and la_printstr, to do language dependent + printing of characters and strings. + * language.h (local_printchar, local_printstr): New macros + to call language dependent functions pointed to by la_printchar + and la_printstr respectively. + * c-exp.y (emit_char, c_printchar, c_printstr): New language + dependent functions for printing characters and strings. + * c-exp.y (c_language_defn, cplus_language_defn): Add + c_printchar and c_printstr. + * command.c (do_setshow_command): Rename printchar use to + gdb_printchar. + * expprint.c (print_subexp): Replace C style string output + with call to local_printstr. + * language.c (unk_lang_printchar, unk_lang_printstr): + New stubs, currently errors. + * language.c (unknown_language_defn, auto_language_defn, + local_language_defn): Add unk_lang_printchar and + unk_lang_printstr. + * m2-exp.y (emit_char, m2_printchar, m2_printstr): New + language dependent functions to print characters and strings. + * m2-exp.y (m2_language_defn): Add m2_printchar and m2_printstr. + * utils.c (printchar): Renamed to gdb_printchar. + * valprint.c (print_string): Remove prototype, function moved + to c-exp.y, where it becomes c_printstr. + * valprint.c (print_max): Made global for reference from the + language dependent printing routines in *-exp.y. + * valprint.c (repeat_count_threshold): New variable with function + of old REPEAT_COUNT_THREHOLD define, but now settable by user. + Change all references to old macro to references to new variable. + * valprint.c (value_print, val_print): Replace calls to + print_string with calls to local_printstr. + * valprint.c (val_print): Replace C style character printing + with call to local_printchar. + * valprint.c (val_print): Add case for TYPE_CODE_CHAR. + * valprint.c (_initialize_valprint): Add add_show_from_set + call for setting up repeat_count_threshold as print variable. + * ch-exp.y (decode_integer_value): New function. + * ch-exp.y (decode_integer_literal): Use decode_integer_value. + * ch-exp.y (chill_printchar, chill_printstr): New language + dependent functions for printing characters and strings. + * ch-exp.y (chill_language_defn): Add chill_printchar and + chill_printstr. + +Thu Nov 19 21:22:21 1992 John Gilmore (gnu@cygnus.com) + + * main.c (main): Print GDB version number in gdb -help; doc pid arg. + Suggested by Marty Leisner, . + (print_gdb_version): New arg is stdout or stderr. Callers changed. + +Wed Nov 18 15:05:45 1992 Ian Lance Taylor (ian@cygnus.com) + + * remote-vx.c (vx_kill): just warn if we can't contact the board, + and assume the process has been killed. + +Wed Nov 18 14:39:57 1992 Stu Grossman (grossman at cygnus.com) + + * remote-udi.c (udi_open): Reset vars so that user can re-run + programs without leaving GDB. + * (many routines): Slightly improve error handling. + * (download): Zero out BSS by longs instead of bytes to avoid + timeouts in real hardware. + * 29k-share/udi/udip2soc.c (UDIDisconnect, UDIKill): Indicate + that connection is no longer in use after shutdown() of socket. + This keeps GDB from dying of a SIGPIPE when you issue multiple + `target udi' commands. + +Wed Nov 18 14:27:47 1992 Fred Fish (fnf@cygnus.com) + + * language.h (language_format_info): New structure to bundle + local formatting information. + * language.h (language_defn): Replace individual format info + with language_format_info structs. + * language.h (local_*_format, local_*_format_prefix, + local_*_format_specifier, local_*_format_suffix): New macros + for binary/octal/decimal/hex formats to access info elements. + * c-exp.y (c_language_defn): Update for new format handling. + * m2-exp.y (m2_language_defn): Update for new format handling. + * dbxread.c (language.h): Include for partial-stab.h use. + * mipsread.c (expression.h, language.h): Include for + partial-stab.h use. + * defs.h (local_hex_format, local_hex_format_custom, + local_hex_string, local_hex_string_custom): Move to language.h. + * language.c (local_hex_format_custom, local_hex_string, + local_hex_string_custom, local_octal_format_custom): Use new + format handling. + * language.c (unknown_language_defn, auto_language_defn, + local_language_defn): Update for new format handling. + * printcmd.c (print_scalar_formatted): Use new macros + to access decimal and binary format info for printing. + * c-exp.y (chill_language_defn): Update for new format handling. + * ch-exp.y (CHARACTER_LITERAL): Add support to yylex. + * ch-exp.y (decode_integer_literal): Add function + * ch-exp.y (match_integer_literal): Use decode_integer_literal. + * ch-exp.y (builtin_type_chill_char): Add definition. + * gdbtypes.h (builtin_type_chill_char): Add declaration. + +Tue Nov 17 11:17:06 1992 Ian Lance Taylor (ian@cygnus.com) + + * tm-rs6000.h (BELIEVE_PCC_PROMOTION): Define, since AIX cc gets + it right. + (aix_framedata): added nosavedpc field. + (SAVED_PC_AFTER_CALL): Don't try to optimize; just call + read_register. + (FRAMELESS_FUNCTION_INVOCATION): Pass second argument of 0. + (FRAME_SAVED_PC): If PC not saved, use SAVED_PC_AFTER_CALL. + * rs6000-tdep.c (skip_prologue): Handle gcc generated stfd + instructions as function_frame_info does. Expand special case of + st r31,-4(r1) to be st r31,NUM(r1), since gcc can generate offsets + other than -4. + (pop_frame): Add 4 rather than sizeof (int) to avoid host + dependence. + (function_frame_info): Set frameless if the function has no frame, + and set nosavedpc if the PC was not saved. Handle gcc generated + stfd 31,-4(31); st 31, -12(31) correctly. + (frameless_function_invocation): New second argument pcsaved; if 0 + return whether the function has a frame, if 1 return whether the + function saved PC. + (frame_initial_stack_address): Correct typo: cache registers for + callee_fi, not for fi, (avoids reading garbage memory locations). + +Mon Nov 16 15:58:07 1992 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior (just before step_over_function + label)): Change test for stepping into subroutine to check for the + presence of line number info. This makes stuff compiled with -g1 + cause GDB to not lose control when stepping. + + * symtab.c (find_pc_line): Improve code per gnu's suggestions. + Improve comments as well. + +Sun Nov 15 09:22:09 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.7.2 + * symtab.c (find_pc_symtab): Fix return of random value + to caller. + * Makefile.in (c-exp.tab.c, m2-exp.tab.c): Add dependency on + Makefile since it contains sed patterns used in generation. + Add sed pattern to also delete #include of any malloc.h. + * c-exp.y, expr.c, expression.h, language.c, m2-exp.y, + parser-defs.h, valarith.c, valops.c, value.h: Remap macros and + function names to conform to K&R terminology with respect to + logical and bitwise operators: + UNOP_ZEROP => UNOP_LOGICAL_NOT + UNOP_LOGNOT => UNOP_COMPLEMENT + BINOP_LOGAND => BINOP_BITWISE_AND + BINOP_LOGXOR => BINOP_BITWISE_XOR + BINOP_LOGIOR => BINOP_BITWISE_IOR + BINOP_AND => BINOP_LOGICAL_AND + BINOP_OR => BINOP_LOGICAL_OR + PREC_OR => PREC_LOGICAL_OR + PREC_AND => PREC_LOGICAL_AND + PREC_LOGIOR => PREC_BITWISE_IOR + PREC_LOGXOR => PREC_BITWISE_XOR + PREC_LOGAND => PREC_BITWISE_AND + value_zerop() => value_logical_not() + value_lognot() => value_complement() + * c-exp.y (c_op_print_tab): Add explicit empty terminator. + * m2-exp.y (m2_op_print_tab): Add explicit empty terminator. + * i387-tdep.c (sys/dir.h): Remove, appears to be unnecessary + and is nonexistant in some SVR4 based systems. + * language.c (DEFAULT_ALLOCSIZE): Change from 3 => 4. + * m2-exp.y (number_sign, modblock): Make static, #ifdef out + unused modblock. + * m2-exp.y (ANDAND): Rename to LOGICAL_AND. + * source.c (source_info): Fix minor nits, print "1 line" rather + than "1 lines", and "language is ". + * valarith.c (value_binop): Handle TYPE_CODE_BOOL as well + as TYPE_CODE_INT and TYPE_CODE_FLOAT. + * valprint.c (val_print): Print TYPE_CODE_BOOL type values as + "TRUE" or "FALSE". + * values.c (value_from_longest): Handle TYPE_CODE_BOOL. + * ch-exp.y: New expression parser, for GNU-Chill. + * defs.h (enum language): Add language_chill. + * dwarfread.c (set_cu_language): Add LANG_CHILL case and make + LANG_MODULA2 a recognized language. + * gdbtypes.h (enum_typecode): Note TYPE_CODE_BOOL used for + Chill as well as Modula-2. + * gdbtypes.y (builtin_type_chill_bool, builtin_type_chill_long, + builtin_type_chill_ulong, builtin_type_chill_real): Add. + * language.c (set_language_command): Add chill. + * language.c (binop_result_type, integral_type, character_type, + boolean_type, structured_type, value_true, binop_type_check): + Add language_chill cases. + * language.h (_LANG_chill): Define. + * symfile.c (deduce_language_from_filename): Recognize the + filename extensions ".chill", ".c186", and ".c286" for Chill. + * valprint.c (typedef_print): Add case for language_chill. + * Makefile.in (SFILES_MAINDIR): Add ch-exp.y. + * Makefile.in (YYFILES): Add ch-exp.tab.c. + * Makefile.in (YYOBJ): Add ch-exp.tab.o. + * Makefile.in (saber_gdb): Add unload of ch-exp.y and load + of ch-exp.tab.c. + * Makefile.in (distclean): Add target ch-exp.tab.c. + * Makefile.in (realclean): Add rm of ch-exp.tab.c. + * Makefile.in (ch-exp.tab.o, ch-exp.tab.c): New targets. + * eval.c (evaluate_subexp): Add OP_BOOL case. + * expprint.c (print_subexp): Add OP_BOOL case. + +Fri Nov 13 20:36:28 1992 John Gilmore (gnu@cygnus.com) + + * infcmd.c (set_environment_command): Avoid skipping first + char of env value if an '=' appears in it. Bug report and fix + by Mark Jungerman, . + +Fri Nov 13 20:24:10 1992 Stu Grossman (grossman at cygnus.com) + + * infcmd.c (step_over_calls): Improve comments. + * symtab.c (find_pc_psymtab): Clean up a bit. + * (find_pc_symtab): Fix comments, clean up code. + * (find_pc_line): General cleanups, efficiency improvements. + Also, don't return garbage when some line info exists, but there + was no good match. + +Thu Nov 5 23:04:38 1992 Rob Ryan (rr2b@andrew.cmu.edu) + + * xcoffexec.c (vmap_symtab): fixed a bug where if a object has no + member, and the stat pointer passed to vmap_symtab was NULL, the + wrong vmap entries would be modified. Fixes behavior where + attempting to load symbols for a module with no member would mess + up already read in symbols. + +Wed Nov 11 17:09:17 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Remove dependancies for 29k-share/dfe/yank.o and + 29k-share/dfe/mini2udi.o. + * config/a29k-udi.mt: Remove yank.o and mini2udi.o. + * alldeps.mak, depend: Update to deal with removal of + aforementioned files. + * remote-udi.c: Major cleanups. Clean up udi_open and drop + requirement for useless 'program' argument. Clean up + udi_create_inferior, and udi_load to call common download() + routine. Create download routine to load remote hosts directly + (with the help of BFD) so that we don't need yank.c and + mini2udi.c. + Fix udi_detach to call UDIDisconnect with + the right arguments. Clean up udi_resume, don't assign tip_error + twice. Clean up udi_wait, straighten out status codes. Make + udi_kill really work. + +Fri Nov 6 10:26:01 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * c-exp.y: separated host/target idea of integer type size, + removed redundant parse rules. (YYSTYPE): added typed_val, removed + UINT and CHAR rules. (parse_number): work out the targetwise type + of a number based upon it's size and qualifiers. (yylex): chars + are now treated the same way as ints. + + * source.c (indentify_source_line): don't core dump if wanted + line is larger than number of lines in source. (can happen when + coff gets confused about #included source). + +Fri Nov 6 03:00:39 1992 John Gilmore (gnu@cygnus.com) + + Fix problems noticed by Allan Steel, , + when debugging a program with 100 shared libraries. + + * solib.c (solib_map_sections): Always close the BFD we open. + Free all malloc'd storage we allocate, too, including error cases. + (struct so_list): Remove unused so_bfd member. + (clear_solib): Don't bother closing so_bfd. + + * symfile.c (symfile_bfd_open): Mark newly opened BFD as + cacheable. `So many symbol files, so little file descriptors.' + +Fri Nov 6 00:14:38 1992 John Gilmore (gnu@cygnus.com) + + * m68k-stub.c: Remove ansidecl.h and the few uses of it. + Stubs should stand alone as much as possible. + + * source.c (show_directories): Avoid printf_filtered length prob + pointed out by Jonathan Stone. + + * i960-pinsn.c (MEM_MAX, MEM_SIZ): Set upper limit properly to + avoid accesses beyond end of table. Fix by Lee W. Cooprider, + . + +Thu Nov 5 17:33:08 1992 Fred Fish (fnf@cygnus.com) + + * {ser-bsd.c, ser-termios.c} (serial_close): Pass address of + struct, not struct itself. + * serial.h (serial_restore): Fix prototype, takes pointer not + struct. + +Thu Nov 5 17:12:42 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (depend): Add nm.h to the list of things to fixup. + * depend: Redo, to fixup nm.h problems with *-tab.c files. + +Thu Nov 5 00:19:51 1992 John Gilmore (gnu@cygnus.com) + + * i386-stub.c: Remove ansidecl.h and the few uses of it. + Stubs should stand alone as much as possible. + + * README: Add remote-es1800.c and remote-st2000.c to table. + * go32-nat.c: Remove, there is no native go32 support. + * go32-xdep.c: Remove unused fork, fvork, wait, execlp, kill_inferior. + +Wed Nov 4 15:27:31 1992 Stu Grossman (grossman at cygnus.com) + + * inflow.c (pass_signal, set_sigint_trap, clear_sigint_trap): Add + new routines to deal with sending SIGINTs to attached processes + when the user interrupts the controlling GDB. + * inftarg.c (child_wait), procfs.c (procfs_wait): Add calls to + the aforementioned routines when waiting for the attached process. + + * elfread.c, mipsread.c: Include . + * i386-stub.c: Include "ansidecl.h" to deal with prototypes. + * serial.h: Add prototype for serial_restore(). + +Wed Nov 4 11:13:25 1992 Ian Lance Taylor (ian@cygnus.com) + + * minsyms.c (lookup_minimal_symbol_by_pc): subtract 1, not 2, from + minimal_symbol_count, because the NULL symbol is not included in + the count. This prevented this function from finding the last + symbol in the table. + +Tue Nov 3 11:29:17 1992 Ian Lance Taylor (ian@cygnus.com) + + * dbxread.c (process_one_symbol): if not defined + (BLOCK_ADDRESS_FUNCTION_RELATIVE), set function_start_offset at + the start of the function, not just after N_FUN. + +Fri Oct 30 16:33:02 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (c-exp.tab.c, m2-exp.tab.c): Add sed patterns to + remap all malloc's to xmalloc's and all realloc's to xrealloc's. + * c-exp.y, m2-exp.y: Add comment about how malloc/realloc are + remapped to xmalloc/xrealloc, use only malloc/realloc in grammer + file. Remove preprocessor defines that previously did remapping. + +Fri Oct 30 00:58:18 1992 John Gilmore (gnu@cygnus.com) + + * infcmd.c (run_command): Avoid long calls to printf_filtered. + Bug fix courtesy of Alexander Klaiber. + +Tue Oct 27 17:08:45 1992 K. Richard Pixley (rich@cygnus.com) + + hp300 native support (hp300hpux untested). + + * hp300ux-xdep.c: removed. + * xm-hp300bsd.h (REGISTER_U_ADDR): removed. + * xm-hp300hpux.h: updated copyright. + (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): removed. + * nm-hp300bsd.h, nm-hp300hpux.h, hp300ux-nat.c: new files. + * Makefile.in (HFILES): added nm-hp300bsd.h and nm-hp300hpux.h. + * config/hp300bsd.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o corelow.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/hp300bsd.mt (TDEPFILES): removed exec.o. + * config/hp300hpux.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/hp300hpux.mt (TDEPFILES): removed exec.o. + + Vax ultrix native support. + + * nm-vax.h: new file. + * Makefile.in (HFILES): added nm-vax.h. + * config/vaxult.mh (XDEPFILES): infptrace.o inftarg.o fork-child.o + coredep.o corelow.o removed. + (NAT_FILE, NATDEPFILES): new macros. + * xm-vax.h: updated copyright. + (REGISTER_U_ADDR): removed. + + Apollo native support (untested). + + * Makefile.in (HFILES): added nm-apollo68[bv].h. + * a68v-nat.c, nm-apollo68[bv].h: new files. + * xm-apollo68[bv].h (FETCH_INFERIOR_REGISTERS): removed. + * xm-apollo68b.h (PTRACE_IN_WRONG_PLACE): removed. + * a68v-xdep.c: removed. + * config/apollo68[bv].mh (XDEPFILES): removed infptrace.o + inftarg.o fork-child.o a68v-xdep.o. + (NAT_FILE, NATDEPFILES): new macros. + + * defs.h: include nm.h. + * coredep.c, infptrace.c, procfs.c, rs6000-nat.c, sparc-nat.c, + sparc-tdep.c, : do not include nm.h. + * doc/gdbint.texinfo: nm.h now included in defs.h. + +Fri Oct 23 04:47:17 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (VERSION): 4.7.1 post release! + + * config/hppahpux.mh (NATDEPFILES): Add hppah-nat.o. + +Fri Oct 23 00:48:08 1992 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): gdb-4.7 release. + * README: Update for gdb-4.7. + +Thu Oct 22 11:24:18 1992 Stu Grossman (grossman at cygnus.com) + + * sparc-tdep.c: include nm.h (for now) so that we get USE_PROC_FS + when necessary. + + * alldeps.mak, depend: Update. + +Thu Oct 22 03:14:36 1992 John Gilmore (gnu@cygnus.com) + + * partial-stab.h ('f', 'F'): Don't reference pst->textlow if pst + is null. + * tm-sun4sol2.h (PROLOGUE_FIRSTLINE_OVERLAP): Remove -- it + causes problems in setting breakpoint in the right place in + functions with `float' args which are passed as doubles. + * xm-vaxbsd.h (MEM_FNS_DECLARED): Avoid erroneous redecl's. + * config/rs6000.mh (NATDEPFILES): Add corelow.o. + +Thu Oct 22 01:01:24 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (HFILES): Add nm-i386sco.h. + * dwarfread.c: include for SCO. + * infptrace.c: Don't include ptrace.h under SCO. + * config/i386sco.mh: Use -D_POSIX_SOURCE instead of -posix for + gcc. + * config/i386v.mt: Add exec.o to TDEPFILES. + +Wed Oct 21 19:08:20 1992 Stu Grossman (grossman at cygnus.com) + + * i386v-nat.c: Remove space from front of #endif. + * irix4-nat.c: Remove externs of registers[], include inferior.h + instead. + * mips-nat.c: Explicitly initialize zerobuf to 0! + * mips-tdep.c (init_extra_frame_info): Undo John's last change. + Always setup fci->frame, even if it's non-zero. Too many places + depend upon this behavior (and I have to get a release out the + door)! + * mipsread.c (parse_partial_symbols, psymtab_to_symtab_1): Set + processing_gcc_compilation if we find the embedded stabs marker. + This fixes several bugs with finding the location of short or char + function parameters passed on the stack. + +Wed Oct 21 17:46:07 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Native support for sun4sol2. + + * xm-sysv4.h (USE_PROC_FS, ATTACH_DETACH): removed to nm-sysv4.h. + * nm-sysv4.h: new file. + * Makefile.in (HFILES): added nm-sysv4.h. + * config/sun4sol2.mh (XDEPFILES): removed procfs.o fork-child.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/sun4sol2.mt (TDEPFILES): removed exec.o and solib.o. + +Wed Oct 21 03:51:01 1992 John Gilmore (gnu@cygnus.com) + + * coredep.c: Include "nm.h" to get REGISTER_U_ADDR. + * doc/gdbint.texinfo: Improve REGISTER_U_ADDR and USE_PROC_FS doc. + + * Makefile.in (VERSION): Tick to 4.6.9. + +Tue Oct 20 23:27:56 1992 John Gilmore (gnu@cygnus.com) + + * mipsread.c (UNSAFE_DATA_ADDR): Remove MIPS-host-specific + definition, replace with portable one. + * remote-nindy.c: Lint. + (nindy_wait): Return type is int, result is inferior_pid. + * symmisc.c (dump_psymtab): Only print section_offsets if set. + (initialize_symmisc): Remove empty function. + * tm-spc-noun.h, tm-sun4os4.h, tm-sun4sol2.h (STACK_END_ADDRESS): + Remove obsolete, misspelled macro. + * doc/gdbint.texinfo: Document obsolete STACK_END_ADDR. + (all @node commands): Use new form to avoid nitpicking errors. + * doc/gdbint.texinfo: Document host/native/target split. + +Wed Oct 21 00:14:34 1992 Stu Grossman (grossman at cygnus.com) + + * mips-nat.c (zerobuf): Get rid of const to avoid gcc warnings. + + * xm-mips.h (offsetof): Don't define this if __STDC__. + +Tue Oct 20 21:32:18 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + umax native support (untested). + + * config/umax.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/umax.mt (TDEPFILES): removed exec.o. + * xm-umax.h (U_REGS_OFFSET, ATTACH_DETACH, REGISTER_U_ADDR): + removed to nm-umax.h. + * nm-umax.h: new file. + * Makefile.in (HFILES): added nm-umax.h. + + hppa native support (untested). + + * config/hppahpux.mh, config/hppabsd.mh (XDEPFILES): now empty. + (NAT_FILE, NATDEPFILES): new macros. + * config/hppabsd.mt (TDEPFILES): removed exec.o and hppab-core.o. + * config/hppahpux.mt (TDEPFILES): removed exec.o. + * xm-hppa[bh].h (REGISTER_U_ADDR, U_REGS_OFFSET): removed. + * nm-hppa[bh].h, hppa[bh]-nat.c: new files. + * hppa[bh]-xdep.c: removed. + * hppa[bh]h-tdep.c: do not include ptrace.h. + * Makefile.in (HFILES): added nm-hppa[bh].h. + + * doc/gdbint.texinfo: add PUSH_DUMMY_FRAME, POP_FRAME. + +Tue Oct 20 00:01:46 1992 Stu Grossman (grossman at cygnus.com) + + * mips-nat.c: Straighten out include files. Work around + conflicting defs of JB_xxx syms in and + for Ultrix-4.2. + +Mon Oct 19 15:09:57 1992 Stu Grossman (grossman at cygnus.com) + + * mips-nat.c (fetch_core_registers, register_addr): Copy from + coredep.c, but zero out FP_REGNUM & ZERO_REGNUM so that stack + backtraces from core files work. + * config/decstation.mh, config/irix3.mh: Remove coredep.o. + Functions are now defined in mips-nat.c. + + * tm-irix3.h: Put MIPS_EFI_SYMBOL_NAME in here too. + + * remote-hms.c: Disable all uses of serial_nextbaudrate and + serial_default_name(). + + * remote-hms.c, ser-go32.c, serial.h: Change from + serial_timedreadchar() to new serial_readchar(). + + * Makefile.in (HFILES): Fixup list of nm-*.h files. Add missing ones. + +Mon Oct 19 12:45:23 1992 Per Bothner (bothner@cygnus.com) + + * c-exp.y: Moved handling of 'const' and 'volatile' from + to . This removes 2 conflicts. + +Sun Oct 18 00:36:30 1992 Fred Fish (fnf@cygnus.com) + + * breakpoint.c (breakpoint_re_set_one): Don't delete watchpoints + from breakpoint table when reseting breakpoints. + +Sat Oct 17 00:59:23 1992 Fred Fish (fnf@cygnus.com) + + Native support cleanup and corefile fixes for i386 SVR4 systems. + + * i386-tdep.c (supply_gregset, fill_gregset, supply_fpregset, + fill_fpregset): Moved to i386v4-nat.c + * i386v4-nat.c, nm-i386v4.h, : New files. + * i386sol2.mh, i386v4.mh, ncr3000.mh (NAT_FILE): Use nm-i386v4.h. + * i386sol2.mh, i386v4.mh, ncr3000.mh (NATDEPFILES): Add corelow.o, + change i386v-nat.o to i386v4-nat.o. + +Fri Oct 16 13:06:08 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Miscellaneous 386 configs updated. + + * config/i386aout.mt (TDEPFILES): removed exec.o. + * config/i386sol2.mh, config/ncr3000.mh, config/i386v4.mh + (XDEPFILES): removed procfs.o fork-child.o i386-xdep.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/i386aout.mt, config/i386sol2.mt, config/ncr3000.mt, + config/i386v4.mt (TDEPFILES): removed exec.o. + * config/i386v32.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o corelow.o i386-xdep.o i387-tdep.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/i386sco.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o corelow.o i386-xdep.o. + (NAT_FILE, NATDEPFILES): new macros. + + Native support cleanup for i386bsd (untested). + + * config/i386bsd.mt (NATDEPFILES): exec.o removed. + * config/i386bsd.mh (NATDEPFILES): added exec.o + * tm-i386bsd.h (FLOAT_INFO): removed. + * nm-i386bsd.h (FLOAT_INFO): added. + + Native support for i386v (untested). + + * config/i386v.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o corelow.o i386-xdep.o i387-tdep.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/i386v.mt (TDEPFILES): removed exec.o, added i387-tdep.o. + * i386-xdep.c: removed. + * Makefile.in (HFILES): added nm-i386v.h + * i386v-nat.c, nm-i386v.h: new file. + * xm-i386v.h: (REGISTER_U_ADDR, i386_register_u_addr): removed to + nm-i386v.h. + * tm-i386v.h (FLOAT_INFO): removed. + + Native support for linux (untested). + + * config/linux.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o corelow.o i387-tdep.o i386-xdep.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/linux.mt (TDEPFILES): removed exec.o, added i387-tdep.o. + * Makefile.in (HFILES): added nm-linux.h. + * nm-linux.h: new file. + * xm-linux.h: updated copyright. cleaned up formatting. + (ATTACH_DETACH, U_REGS_OFFSET): removed to nm-linux.h. + + Native support for sun386 (untested). + + * config/sun386.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o sun386-xdep.o. + (NAT_FILE, NATDEPFILES): new macros. + * config/sun386.mt (TDEPFILES): removed exec.o. + * Makefile.in (HFILES): added nm-sun386.h. + * sun386-nat.c, nm-sun386.h: new file. + * sun386-xdep.c: removed. + * xm-sun386.h: updated comment and copyright. + (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): removed to + nm-sun386.h. + + Native support for i386mach (untested). + + * config/i386mach.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o mach386-xdep.o. + (NAT_FILE, NATDEPFILES): new macros. + * Makefile.in (HFILES): added nm-i386mach.h. + * nm-i386mach.h, i386mach-nat.c: new files. + * mach386-xdep.c: removed. + * xm-i386mach.h: updated copyright. + (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): removed to + nm-i386mach.h. + + Native separation for go32 (untested). + + * config/go32.mh (NAT_FILE, NATDEPFILES): new macros. + * go32-nat.c: new file. + * go32-xdep.c (call_ptrace, child_resume, + fetch_inferior_registers, store_inferior_registers, + child_xfer_memory, fetch_core_registers): removed to go32-nat.c. + + Native support for m88k (untested). + + * Makefile.in (HFILES): added nm-m88k.h + * xm-delta88.h, xm-m88k.h (REGISTER_U_ADDR, + FETCH_INFERIOR_REGISTERS): removed. + * config/m88k.mh, config/delta88.mh (XDEPFILES): infptrace.o + inftarg.o fork-child.o m88k-xdep.o removed to NATDEPFILES. + (NAT_FILE, NATDEPFILES): new macros. + * config/m88k.mt, config/delta88.mt (TDEPFILES): removed exec.o. + * m88k-nat.c, nm-m88k.h, nm-delta88.h: new files.o. + * m88k-xdep.c: removed. + +Fri Oct 16 04:16:30 1992 John Gilmore (gnu@cygnus.com) + + * i386b-nat.c: Comment changes. + * nm-i386bsd.h, xm-i386bsd.h: Split native dependent pieces out + into new nm-file. + * config/i386bsd.mh (NAT_FILE): Point to new nm-file. + +Fri Oct 16 03:34:01 1992 John Gilmore (gnu@cygnus.com) + + Avoid longjmp()-catching compilation errors in cross-ports. + + * doc/gdbint.texinfo: Update GET_LONGJMP_TARGET, L_SET doc. + * irix4-nat.c, mips-nat.c (JB_ELEMENT_SIZE, get_longjmp_target): + Move from mips-tdep.c and tm-{irix3,mips}.h. + * mips-nat.c: Remove a bunch of code that was ifdef'd out of + native MIPS ports. + * nm-irix3.h, nm-mips.h (GET_LONGJMP_TARGET): Move from tm-irix3.h + and tm-mips.h. + + * ultra3-nat.c (register_addr): Move from ultra3-xdep.c. + (fetch_core_registers): Fix bfd_seek arguments. + +Fri Oct 16 03:02:28 1992 John Gilmore (gnu@cygnus.com) + + Make core files work again (add back the `core' target). + + * config/decstation.mh, news.mh, sun2os3.mh, sun2os4.mh + (NATDEPFILES): Add corelow.o. + * config/delta88.mt, m88k.mt (TDEPFILES): Remove coredep.o, it's + native dependent. + + * config/3b1.mh, bigmips.mh, hp300bsd.mh, hppabsd.mh, hppahpux.mh, + i386sco.mh, i386v.mh, i386v32.mh, irix3.mh, isi.mh, linux.mh, + littlemips.mh, merlin.mh, news1000.mh, pn.mh, rtbsd.mh, tahoe.mh, + vaxbsd.mh, vaxult.mh (XDEPFILES): Add corelow.o whenever coredep.o + appears. FIXME, these should be moved to NATDEPFILES for native + use only. + +Thu Oct 15 21:53:53 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Ultra3 host/target/native split. (untested). + + * ultra3-xdep.c: updated copyright. Do not include sys/ptrace.h. + (fetch_register, fetch_inferior_registers, + store_inferior_registers, fetch_core_registers): removed to + ultra3-nat.c. + * xm-ultra3.h (FETCH_INFERIOR_REGISTERS, U_REGS_OFFSET): removed + to nm-ultra3.h. + * Makefile.in (HFILES): added nm-ultra3.h. + * nm-ultra3.h, ultra3-nat.c: new files for native support. + * config/ultra3.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o. + (NAT_FILE, NATDEPFILES): new macros for native support. + * config/ultra3.mt (TDEPFILES): exec.o removed. + + * xm-vaxult.h: add MEM_FNS_DECLARED. + +Thu Oct 15 02:59:30 1992 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): Roll to 4.6.8. + (OBS): Put version.o first, so Makefile rebuild happens early. + + * command.h: Publicize prototype for not_just_help_class_command. + * command.c: Remove proto. + * maint.c: Mark "mt" as an abbrev, to avoid duplicated help + output. Move "maint info" from class info to class maintenance, + and improve text. + * infrun.c: Move "stop" to class_obscure, and give it a + function so it will not be seen as a global help topic. FIXME, + it should be possible to set these attributes independently. + + * core.c (core_command): Make nicer error message for no core support. + + Lint around file_ptr's (bfd's off_t's) and bfd_seek. + + * dbxread.c (read_dbx_symtab): Use L_SET as bfd_seek arg. + (elfstab_build_psymtabs): staboffset and stabstroffset args are + file_ptr's. + * dwarfread.c (struct dwfinfo): Convert dbfoff, lnfoff to file_ptr. + (scan_compilation_units): Punt unused filename arg. dbfoff, + lnoffset, and curlnoffset are file_ptr's now. + (dwarf_build_psymtabs): Drop desc and filename args; use + objfile. dbfoff and lnoffset are file_ptr's now. + (read_ofile_symtab): foffset is now file_ptr. Use L_SET in bfd_seek. + * elfread.c (struct elfinfo): dboffset and lnoffset are file_ptr's. + (elf_symfile_read): Skip desc and filename args to + dwarf_build_psymtabs. Pass file_ptr's to elfstab_build_psymtabs. + * gdb-stabs.h: Use file_ptr rather than off_t. + * mipsread.c (fixup_symtab): f_ptr is a file_ptr. Re-enable + compile-time debug check that someone turned off as "unused". + (read_the_mips_symtab): st_filptr is a file_ptr. Fix bfd_seek call. + * symfile.h: Update dwarf_build_psymtabs and + elfstab_build_psymtabs prototypes. + * xcoffread.c (init_stringtab, init_lineno, xcoff_symfile_read): + Use file_ptr offsets. bfd_seeks use L_SET. + +Thu Oct 15 01:27:32 1992 Stu Grossman (grossman at cygnus.com) + + * mips-tdep.c, mipsread.c, tm-mips.h: Get rid of ".gdbinfo." + symbol. #define MIPS_EFI_SYMBOL_NAME instead. Use different + value so that demangler won't be invoked. This greatly speeds up + stepping. + * mips-tdep.c (mips_pop_frame): Rewrite handling of + linked_proc_info so that it properly deallocates the appropriate + item after it is done with it instead of before. + * Don't pass bogus frame pointer to create_new_frame(). Just + leave it as zero so that lower level code will figure out the + correct value. + +Wed Oct 14 18:56:28 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Sony News native support. + + * Makefile.in (HFILES): added nm-news.h. + * nm-news.h: new file. + * config/news.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o to NATDEPFILES. + (NAT_FILE, NATDEPFILES): new macros for native support. + * config/news.mt (TDEPFILES): removed exec.o. + + * remote-vx.c: remove redundant include of sys/time.h. + + * infrun.c: include ctype.h. Otherwise some machines result in + undefined for isdigit. + +Tue Oct 13 01:27:14 1992 John Gilmore (gnu@cygnus.com) + + * configure.in: Convert m68k entries to m68* entries to handle + all the various m68xxx hosts and targets. + * config/news1000.mt: No longer needed, same as news.mt. + +Fri Oct 9 18:54:37 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/sun3os[34].mh (NATDEPFILES): remove duplicate inftarg.o. + +Fri Oct 9 14:20:08 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (HFILES): Add all nm-irix3.h, nm-irix4.h, + nm-sun2.h, nm-mips.h. + + * config/irix3.mh (NATDEPFILES): nat-mips.o => mips-nat.o. + + * Makefile.in (alldeps.mak): Add = sign after NATDEPFILES. + + * config/bigmips.mh config/littlemips.mh: Remove mips-xdep.o. + +Fri Oct 9 08:41:11 1992 Ian Lance Taylor (ian@cygnus.com) + + * xm-hppah.h: if __STDC__ is not defined, define + HPPA_COMPILER_BUG. + symtab.c (decode_line_1): avoid a bug in the HP9000/700 native + compiler; see the comment in the file. + +Fri Oct 9 04:43:43 1992 John Gilmore (gnu@cygnus.com) + + First cut at support for all BSD variants on 386. + + * tm-i386bsd.h, xm-i386bsd.h: New config files. + * i386b-nat.c: New native support file. + * configure.in: Add host and target for i[34]86-*-bsd*. + * config/i386bsd.mh, config/i386bsd.mt: New config files. + +Fri Oct 9 00:31:33 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Sun2 native support (untested). + + * xm-sun2.h (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS, + REGISTER_U_ADDR): removed to nm-sun2.h. + * nm-sun2.h: new file. + * config/sun2os[34].mh (XDEPFILES): infptrace.o inftarg.o + fork-child.o sun3-xdep.o removed. + (NAT_FILE, NATDEPFILES): new macros. + + Mips native support. Decstation and iris4 have been tested. + Iris3 has not. + + * mips-tdep.c (supply_gregset, fill_gregset, supply_fpregset, + fill_fpregset): removed to irix4-nat.c + * mips-xdep.c: removed. + * irix4-nat.c, mips-nat.c, nm-irix3.h, nm-irix4.h, nm-mips.h: new + files. + * procfs.c: include nm.h. + * xm-irix3.h (U_REGS_OFFSET, FETCH_INFERIOR_REGISTERS): removed. + * xm-irix4.h: bump copyright. + (U_REGS_OFFSET, FETCH_INFERIOR_REGISTERS, USE_PROC_FS, + PROC_NAME_FMT): removed. + * xm-mips.h (FETCH_INFERIOR_REGISTERS): removed. + * config/irix4.mh (XDEPFILES): removed procfs.o fork-child.o. + (NAT_FILE, NATDEPFILES): new macros for native support. + (CC): supply default compiler switches. + * config/irix3.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o coredep.o. + (NAT_FILE, NATDEPFILES): new macros for native support. Note that + irix3 is untested. + * config/decstation.mh (XDEPFILES): removed infptrace.o inftarg.o + fork-child.o mips-xdep.o coredep.o. + (NAT_FILE, NATDEPFILES): new macros for native support. + +Thu Oct 8 23:50:51 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/rs6000.mh (XDEPFILES): removed fork-child.o. + (NATDEPFILES): added fork-child.o + * config/sun3os3.mh (XDEPFILES): removed fork-child.o. + (NATDEPFILES): added fork-child.o + * config/sun3os4.mh (XDEPFILES): removed fork-child.o. + (NATDEPFILES): added fork-child.o + +Thu Oct 8 23:19:25 1992 John Gilmore (gnu@cygnus.com) + + * infcmd.c (path_info): Avoid 250-char limit on printf_filtered, + by using puts_filtered instead. + +Fri Oct 9 00:28:25 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * remote-nindy.c (nindy_load): Replacement version from Steve + Chamberlain, doesn't require forking to run "strip" or "sx". + +Thu Oct 8 18:27:35 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (HFILES): Add nm-*.h files. + +Thu Oct 8 16:27:45 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/sun4os4.mh (XDEPFILES): fork-child.o removed. + (NATDEPFILES): added fork-child.o. + + * doc/gdbint.texinfo: document a few more macros, create new + section for native macros. + +Thu Oct 8 13:52:46 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in alldeps.mak depend: Rip out 29k/udi pending + resolution of copyright issues. + +Wed Oct 7 20:08:53 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (setup-to-dist): Remove -norecursion so that doc + subdir gets configured. + +Wed Oct 7 12:24:01 1992 Ken Raeburn (raeburn@cygnus.com) + + * Makefile.in (nindy.o): Define "STRIP" as pathname of strip + program. + * nindy-share/nindy.c (coffstrip): Use that pathname, instead of + searching for a "bfd_strip" program. Also, fixed up arguments + passed to that program. + + * tm-nindy960.h (ADDITIONAL_OPTIONS): Use "-ser" rather than "-r", + which is now used for something else. Rewrite description of + associated parameters to match how gdb does it now. + (ADDITIONAL_OPTION_HELP): Fix message accordingly. + + * m68k-pinsn.c (print_insn_arg): Handle new "`" operand type. + +Tue Oct 6 14:47:11 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + NOTICE_SIGNAL_HANDLING_CHANGE macro added to the target vector as + to_notice_signals. + + * inferior.h (proc_signal_handling_change): prototype removed. + * infrun.c (NOTICE_SIGNAL_HANDLING_CHANGE): default removed. + (handle_command): now calls target_notice_signals. + * procfs.c (proc_signal_handling_change): renamed to + procfs_notice_signals. Now static. Add prototype. All callers + changed. + * target.h (struct target_ops): new field, to_notice_signals. + (target_notice_signals): new macro to cover new field. + * target.c (cleanup_target): default to_notice_signals to ignore. + * corelow.c (core_ops), + exec.c (exec_ops), + inftarg.c (child_ops), + procfs.c (procfs_ops), + remote-adapt.c (adapt-ops), + remote-eb.c (eb_ops), + remote-es1800.c (es1800_ops, es1800_child_ops), + remote-hms.c (hms_ops), + remote-mm.c (mm_ops), + remote-nindy.c (nindy_ops), + remote-st2000.c (st2000_ops), + remote-udi.c (udi_ops), + remote-vx.c (vx_ops, vx_run_ops), + remote.c (remote_ops), + target.c (dummy_target), + xcoffexec.c (exec_ops): added static initializer for + to_notice_signals. + * xm-irix4.h, xm-sysv4.h (NOTICE_SIGNAL_HANDLING_CHANGE): removed. + +Tue Oct 6 12:13:08 1992 John Gilmore (gnu@cygnus.com) + + * main.c (define_command): Add forgotten initializer. + +Tue Oct 6 02:23:17 1992 John Gilmore (gnu@cygnus.com) + + * language.c, language.h: Move saved_language out to global + expected_language. Set expected_language when user expectation + changes. + * language.c (language_info): Don't print type/range checking gub. + * main.c (main): Set expected language. + (execute_command): Check against expected language. + * symfile.c (set_initial_language): Set expected language. + + * configure.in, config/i386sol2.{mh,mt}: Preliminary Solaris-x86 conf. + +Fri Sep 4 00:34:30 1992 Per Bothner (bothner@rtl.cygnus.com) + + A bunch of changes mostly to improve debugging of C++ programs. + Specifically, the calling of inferiors methods is improved. + + * value.h: New macros METHOD_PTR_IS_VIRTUAL, + METHOD_PTR_FROM_VOFFSET, METHOD_PTR_TO_VOFFSET to partially + hide the implementation details of pointer-to-method objects. + How to tell if the pointer points to a virtual method is + still very dependent on the particular compiler, but this + should make it easier to find the places to change. + * eval.c (evaluate_subexp [case OP_FUNCALL]), valprint.c + (val_print [case TYPE_CODE_PTR]): Use the new METHOD_PTR_* + macros, instead of a hard-wired-in code that incorrectly + assumed a no-longerused representation of pointer-to-method + values. And otherwise fix the relevant bit-rotted code. + + * valprint.c (type_print_base [case TYPE_CODE_STRUCT]): + If there are both fields and methods, put a space between. + + * stabsread.c (read_struct_type): Fix bug in handling of + GNU C++ anonymous type (indicated by CPLUS_MARKER followed + by '_'). (It used to prematurely exit the loop reading in + the fields, so it would think it should start reading + methods while still in the fields. This could crash gdb + given a gcc that can emit nested type information.) + + * valops.c (search_struct_method): Pass 'this' value by + reference instead of by value. This provides a more + consistent interface through a recursive search where the + "bottom" functions may need to adjust offsets (due to multiple + inheritance). + * valops.c, value.h, values.c: Pass extra parameters to + value_fn_field and value_virtual_fn_field so we can + correctly adjust offset for multiple inheritance. + * eval.c (evaluate_subexp [case OP_FUNCALL]): Simplify + virtual function calls by using value_virtual_fn_field(). + * values.c: New function baseclass_offset, derived from + baseclass_addr (which perhaps can be made obsolete?). + It returns an offset rather than an address. This is a + cleaner interface since it doesn't mess around allocating + new values. + * valops.c (search_struct_method): Use baseclass_offset + rather than baseclass_addr. + +Mon Oct 5 16:02:04 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Re-install 29K/UDI stuff. + * remote-udi.c (udi_resume): Clean up. + * (udi_wait): Rewrite, leave out bugs. + * Add debugging code to print out all register fetches and stores. + * Straighten out target_ops. + * tm-29k.h (DUMMY_FRAME_RSIZE): Pad out to doubleword. + +Mon Oct 5 09:46:44 1992 Ian Lance Taylor (ian@cygnus.com) + + * remote-udi.c (udi_create_inferior): run with no arguments should + not pass the program name as an argument, since the UDI code + already handles that. + (udi_load): get the symbols from prog_name, not arg_string (the + load command should really use arg_string as the program name, not + prog_name, but at least the run command works now). + + * munch: HP9000/300 nm puts an extra space between T and symbol + name. + + * config/irix4.mh: added -lsun to XM_CLIBS to get RPC functions + needed for vxworks targets. + +Fri Oct 2 22:04:42 1992 John Gilmore (gnu@cygnus.com) + + * am29k-tdep.c (_initialize_29k): Make it possible for the + user to set and query the address where function calls into the + inferior write a small scratch routine. `set call_scratch_address' + * inferior.h (PC_IN_CALL_DUMMY): Fix fencepost error. + * remote.c (remote_prepare_to_store): Only fetch regs if they are + not already cached validly. + +Thu Oct 1 14:36:42 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Rs6000 native support. + + * infptrace.c: remove #ifdef USG from around include ptrace.h. + machines without this header should not be compiling this file. + * nm-rs6000.h, rs6000-nat.c: new files for native support. + * rs6000-tdep.c: do not include sys/ptrace.h or sys/reg.h. + * rs6000-xdep.c: removed. all code now in rs6000-nat.c. + * xm-rs6000.h: do not include ptrace.h. + (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to nm-rs6000.h. + * config/rs6000.mh (XDEPFILES): removed rs6000-xdep.o. + infptrace.o and inftarg.o move to NATDEPFIES. + (NAT_FILE, NATDEPFILES): new macro for native support. + + Sun3 native support. + + * config/sun3os3.mh, config/sun3os4.mh (NAT_FILE, NATDEPFILES): + new macros for native support. + (XDEPFILES): moved infptrace.o and inftarg.o to NATDEPFILES, + removed sun3-xdep.o. + * xm-sun3.h (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to + nm-sun3.h. + * sun3-xdep.c: removed. All code is now in sun3-nat.c. + * sun3-nat.c, nm-sun3.h: new files for native support. + +Thu Oct 1 10:30:54 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (dbsize): New variable to hold size of dwarf info. + * dwarfread.c (dwarf_build_psymtabs): Rename dbsize parameter to + dbfsize and use it to initialize new local file scope dbsize. + * dwarfread.c (read_ofile_symtab): Initialize dbsize and use it. + * dwarfread.c (basicdieinfo): Use dbsize to check for oversize + DIEs as well as the current check for undersize DIEs. This helps + to gracefully detect and reject corrupted DIE information. + +Thu Oct 1 01:57:56 1992 John Gilmore (gnu@cygnus.com) + + Add `command hooks' and a hook for inferior program stopping. + + * command.h (struct cmd_list_element): Remove unused `aux' + field. Add new `hook', `hookee', and `cmd_pointer' fields. + * command.c (add_cmd): Initialize new fields, elim old. + (add_alias_cmd): Clone new fields. + (delete_cmd): Un-hook hookee if we're deleting hook. + (help_cmd): Tell user the command is hooked, if it is. + (lookup_cmd_1): Abbreviations return the original command + instead of themselves, so that hooks on the original cmd will be + run. + * defs.h (enum command_class): Add class_pseudo and comments. + * gdbcmd.h (execute_user_command): Add prototype. + * infrun.c (normal_stop): If the stop command is hooked, + run the hook whenever we stop. + (hook_stop_stub): Stub for catch_errors. + (_initialize_infrun): Set up pseudo "stop" command. + * main.c (execute_user_command): Code extracted from execute_command. + (execute_command): If hooked, run the hook before the command. + (define_command): If defining a new hook, check the command it + is hooking, and warn if none. Install the hook. + * source.c (_initialize_source): "l" is an abbrev for "list". + * doc/gdb.texinfo: Document command hooks. + + * Makefile.in (VERSION): Roll to 4.6.7. + * config/sun4os4.mh: Remove dup inftarg.o from NATDEPFILES. + * infrun.c (breakpoints_inserted): Make it static again. + * tm-symmetry.h (FLOAT_INFO): #if 0 it for cross-ptrace abuse. + +Wed Sep 30 15:33:22 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Native file renaming. + + * nat-sparc.c -> sparc-nat.c + * nat-sun4os4.h -> nm-sun4os4.h + * nat-trash.h -> nm-trash.h + * config/sun4os4.mh: track file renaming. + * configure.in: link to nm.h rather than nat.h. + * infptrace.c: include nm.h rather than nat.h. + +Tue Sep 29 14:35:00 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Host/target/native split for sun4. + + * Makefile.in (TSOBS): removed corelow.o. + * infptrace.c: included nat.h. + * nat-trash.h: temporary header file. This should be removed once + all hosts have the native/host/target split. + * configure.in: add a symlink from nat-trash.h to nat.h if no + other nat file exists for this configuration. + * sparc-tdep.c: no longer include sys/ptrace.h. + * sparc-xdep.c: removed. contents have been moved to nat-sparc.c. + * xm-sparc.h (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to + nat-sun4os4.h. + * nat-sparc.c, nat-sun4os4.h: new files for sun4 native support. + * config/sun4os4.mh (XDEPFILES): moved infptrace.o and inftarg.o + to NATDEPFILES. removed sparc-xdep.o. + (NATDEPFILES, NAT_FILE): new macros for native support. + + Break the direct connection from core_file_command to any + particular type of core file support. + + * target.h (find_core_target): new prototype. + * target.c (find_core_target): new function. Walks the target + list looking for the core target. + * core.c (core_file_command): replace calls to core_detach and + core_open with find_core_target and direct calls. + +Tue Sep 29 10:19:00 1992 Ian Lance Taylor (ian@cygnus.com) + + * xm-hp300hpux.h: define MEM_FNS_DECLARED; include + for infptrace.c. + config/hp300hpux.mh: ALLOCA1 was not defined. + +Mon Sep 28 22:03:41 1992 Stu Grossman (grossman at cygnus.com) + + * breakpoint.c, exec.c, language.c, main.c, printcmd.c, symfile.c, + target.c, valprint.c: Use unfiltered forms of f/printf, et. al. + until we can figure out a better way to do paging. + +Sat Sep 26 02:07:31 1992 John Gilmore (gnu@cygnus.com) + + * findvar.c (supply_register): Add CLEAN_UP_REGISTER_VALUE hook. + * tm-hppa.h (CLEAN_UP_REGISTER_VALUE): Use it. + * hppa-coredep.c: Remove, now that we use the hook. + * config/hppab.mh, config/hppah.mh: Use standard coredep.o. + * hppab-xdep.c, hppah-xdep.c: Remove custom code, use hook. + + * dbxread.c, partial-stab.h: Replace all #ifdef hp9000s800's with + GDB_TARGET_IS_HPPA's. This is a SERIOUS KLUDGE. The code needs to all + be ripped out and reimplemented right (see elfread.c). + * tm-hppa.h (GDB_TARGET_IS_HPPA): Define. + + Rename all HPPA files to fit into unique DOS filenames: + * *hppabsd* => *hppab* + * *hppahpux* => *hppah* + +Sat Sep 26 00:25:15 1992 John Gilmore (gnu@cygnus.com) + + Make the /proc support a target-struct in its own right. + + * Makefile.in: Remove inftarg.[co], since it is now included via + config/*.mh files. + * config/*.mh: Add inftarg.o and fork-child.o to all *.mh that + reference infptrace.o. Add fork-child.o to all *.mh that + reference procfs.o. + + * inferior.h (proc_wait, inferior_proc_init, proc_set_exec_trap): + No longer global functions. + (fork_inferior): New global function from fork-child.c. + * inftarg.c (child_wait): Remove USE_PROC_FS conditional. + (ptrace_me, ptrace_him): New stub functions for fork_inferior(). + (child_create_inferior): Moved to fork-child.c as fork_inferior. + (child_create_inferior): New tiny function that calls fork_inferior. + * fork-child.c: New file, containing fork_inferior, which is + built from slight mods to inftarg.c's child_create_inferior. + + * procfs.c (procfs_ops): Add target vector. + (attach): Rename as static do_attach. + (procfs_create_inferior): New tiny function that calls fork_inferior. + (child_xfer_memory): Rename to static procfs_xfer_memory. + (store_inferior_registers): Rename to static procfs_store_registers. + (inferior_proc_init): Rename to static procfs_init_inferior. + (procfs_attach, procfs_detach, procfs_prepare_to_store, + procfs_files_info, procfs_open, procfs_mourn_inferior, + procfs_can_run): Slightly mangled copies of the corresponding + child_XXX routines from inftarg.c. + (proc_wait): Renamed to static procfs_wait. + (child_resume): Rename to static procfs_resume. + (fetch_inferior_registers): Rename to static procfs_fetch_registers. + (initialize_proc_fs): Rename to initialize_procfs. Set up + procfs_ops, too. + + * putenv.c: index -> strchr. + * regex.c: Always rename bcopy to memcpy, etc. + FIXME: Eventually do the renames rather than use #define's. + * sparc-tdep.c (deferred_stores): Moved from sparc-xdep.c. + Fix bcopy->memcpy. + * sparc-xdep.c: Move deferred_stores to target dependent. + * xm-irix4.h, xm-sysv4.h (CREATE_INFERIOR_HOOK): No longer needed. + +Fri Sep 25 21:59:27 1992 John Gilmore (gnu@cygnus.com) + + Split non-target-dependent code out of target_attach routines. + + * target.h: Comments on target_attach args and results. + * infcmd.c (attach_command): Check for existing execution, call + target_attach, set up terminal status and wait_for_inferior, wait + for the attach status, and do normal_stop. + * inftarg.c (child_attach): Remove target independent stuff. + * remote-adapt.c (adapt_attach): Ditto. + * remote-mm.c (mm_attach): Ditto. + * remote-udi.c (udi_attach): Ditto. + * remote-vx.c (vx_attach): Ditto. + + Cleanup. + + * remote-hms.c (hms_attach): Remove completely, it was useless. + * remote-mm.c, remote-hms.c, remote-udi.c, remote-adapt.c: Remove + commented-out start_remote calls. + * remote-hms.c, remote-adapt.c, remote-mm.c, remote-udi.c: Remove + DENTER and DEXIT macros and their calls. Use a real debugger -- + like gdb -- to see what functions are being called when. + * utils.c (strcmp_iw): Make nonstatic, for lint. + +Fri Sep 25 18:48:20 1992 John Gilmore (gnu@cygnus.com) + + * infrun.c, inftarg.c, inferior.h: Comment and lint cleanups. + +Fri Sep 25 15:13:44 1992 Stu Grossman (grossman at cygnus.com) + + * tm-sparc.h, dbxread.c (read_ofile_symtab): Install Jim Wilson's + fix to differentiate between gcc1 & gcc2 compiled files so that we + can debug calls that pass structs as args correctly. + * symmisc.c (dump_symtab): If block was compiled with gcc, say + so, and what version. + + * remote.c (remote_wait): Make regs be char to avoid picayune + ANSI compiler warnings. + + * energize.h: Move all external struct decls to inside of + __STDC__, add prototype for energize_shell_wait(). + * energize.c (getpty): Clean up, make us really get a controlling + terminal. + * (energize_initialize): Disable SIGIO prior to setting up for + I/O interrupts. Move setsid(), et. al. to getpty(). + * (energize_shell_wait): New routine to wait for things started + via the shell command, uses wait() instead of /dev/proc. + * Also, add prototype for execute_command_1(). + +Fri Sep 25 12:09:33 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * inftarg.c (child_create_inferior, child_attach, + child_mourn_inferior): collect unix child process stratum + functions which live below the target vector into this file to + facilitate host/target/native split. Also, make them static. + * inflow.c (child_mourn_inferior): removed. + * infrun.c (child_create_inferior, child_attach): removed. + (resume): becomes global so that functions below the + target vector can find it. + * inferior.h (resume): add prototype. + (child_mourn_inferior, child_create_inferior, child_attach): + remove prototypes. + + * xcoffexec.c (exec_ops): child_attach and child_create_inferior + replaced with find_default_attach and + find_default_create_inferior. + +Fri Sep 25 10:21:04 1992 Ken Raeburn (raeburn@rtl.cygnus.com) + + * i960-pinsn.c: Use _filtered routines for printing, so symbolic + addresses don't get displayed in the wrong positions. + +Fri Sep 25 09:52:47 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Separate core functions along target vector in preparation for + native support. Functions above vector now live in core.c. Those + below in corelow.c. + + * core.c (solib_add_stub, core_close, core_open, core_detach, + get_core_registers, core_files_info, core_ops): moved to corelow.c + (_initialize_core): removed addition of core_ops target. + * corelow.c: new file. + (solib_add_stub, core_close, core_open, core_detach, + get_core_registers, core_files_info, core_ops): moved from core.c + (_initialize_corelow): new function. + * gdbcore.h (core_open, core_detach): added prototypes. + (core_ops): add forward declaration. + * Makefile.in (SFILES_MAINDIR): add core.c + (OBS): add core.o + (TSOBS): change core.o to corelow.o + +Wed Sep 23 11:14:53 1992 Stu Grossman (grossman at cygnus.com) + + * m68k-tdep.c (m68k_saved_pc_after_call): Use 'GDB_TARGET_IS_SUN3' + instead of 'sun' predefined symbol so that trap analysis code is + enabled only when the TARGET is a sun3. + +Tue Sep 22 17:13:19 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * tm-i960.h (ext_format_i960): Add top-level declaration. + (REGISTER_CONVERT_TO_{VIRTUAL,RAW}): Don't declare it in nested + blocks, else Sun4 compiler complains. + +Tue Sep 22 00:43:51 1992 John Gilmore (gnu@cygnus.com) + + * mips-pinsn.c (print_insn_arg, case 'B'): Disassemble `break' + instruction's argument. Patch from jonathan@cs.stanford.edu + (Jonathan Stone). + +Mon Sep 21 18:16:30 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + Break the thread of control that implies that a unix child + process will be the default target. + + * target.c (find_default_run_target, find_default_attach, + find_default_create_inferior, return_zero): new functions. + (cleanup_target): Make return_zero the default for to_can_run. + + * exec.c (exec_ops), core.c (core_ops): Replace child_attach and + child_create_inferior references with find_default_XXX instead. + + * target.h (struct target_ops): new field, to_can_run. + (find_default_attach, find_default_create_inferior): new prototypes. + (target_can_run): new macro. + + * Also added a zero (default) to_can_run element to all static + struct target_ops initializations throughout GDB, except: + * inftarg.c (child_ops): Use new child_can_run() to enable child runs. + + * infrun.c (child_create_inferior): Clean up error handling when + no exec file is specified. + (child_attach): Don't require exec file. + +Mon Sep 21 19:43:13 1992 John Gilmore and K. Richard Pixley (gnu@cygnus.com) + + Remove kill_inferior_fast, in favor of target_kill, which goes + through the target vector. + + * inferior.h (kill_inferior_fast): remove declaration. + + * main.c (disconnect): call quit_cover using catch_errors rather + than calling kill_inferior_fast directly. New way goes through + the target vector, handles attached processes, and writes + command history if appropriate. + (quit_cover): new function, wrapper for quit_command. + + * convex-xdep.c, go32-xdep.c, hppabsd-xdep.c, hppahpux-xdep.c, + infptrace.c, procfs.c: Removed all instances of kill_inferior_fast, + inlining them into the local kill_inferior when needed. + +Mon Sep 21 19:23:05 1992 John Gilmore (gnu@cygnus.com) + + * infrun.c (_initialize_infrun): Alias `i handle' == `i signals'. + * stabsread.c (read_struct_type): Simplify complicated expression + for dumb DECstation compiler. + +Mon Sep 21 14:54:35 1992 Ian Lance Taylor (ian@cygnus.com) + + * m68k-pinsn (print_insn_arg, fetch_arg): added support for + operands to memory management instructions, from WRS. + +Sep 20 08:42:12 1992 Fred Fish (fnf@cygnus.com) + + * main.c (main): Back out previous language setting changes. + Replace with simple default to C before processing any init + files. There MUST be a language set, even in the absence of + init files or executables, or expression parsing fails. + +Sat Sep 19 09:52:26 1992 Fred Fish (fnf@cygnus.com) + + * main.c (main): Move code that sets initial language to + symfile.c. Fixup places where command files are processed to + be consistent in setting a default language if none has been + previously set. + * symfile.c (set_initial_language): Add code moved from + main() that sets an initial default language when a new + symbol file is read. + * symfile.c (symbol_file_command): Call set_initial_language. + * symtab.c (find_main_psymtab): Add FIXME comment. + +Wed Sep 16 22:31:55 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * breakpoint.c, sparc-tdep.c: comment changes. + * configure.in: removed target_dependent line. + + * remote-mm.c (mm_attach): change printf to error to prevent + fallthrough bug. + * remote-udi.c (udi_attach): change printf to error to prevent + fallthrough bug. + + * rs6000-tdep.c (push_dummy_frame, pop_dummy_frame): replace + calls to {fetch|store}_inferior_registers with calls to + target_{fetch|store}_registers, for remote-target independence. + +Sat Sep 19 04:23:54 1992 John Gilmore (gnu@cygnus.com) + + * Makefile.in: Fix bug I introduced in merging Rich's change. + * infrun.c (child_create_inferior): Use proceed() rather than + doing all the same stuff by hand. + +Thu Sep 17 17:35:37 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * Makefile.in, configure.in: add support for files used only when + configured native, that is, when host = target. + +Wed Sep 16 23:03:23 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * tm-sparc.h, xm-sparc.h: externs and macros relating to deferred + stores are target dependent and were moved from xm to tm. + +Sat Sep 19 03:14:37 1992 John Gilmore (gnu@cygnus.com) + + * Makefile.in (gdb-all.texi): Build in objdir, not $srcdir. + + * config/decstation.mh: Add MMALLOC_LIB and MMALLOC_DISABLE + overrides, to avoid problem in xdr_bytes with malloc(0) => 0. + +Wed Sep 16 20:04:54 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * target.h (struct target_ops): removed to_convert_to_virtual and + to_convert_from_virtual elements. Initializations removed from + all static initializations. + (target_convert_to_virtual, target_convert_from_virtual): + removed. + (host_convert_to_virtual, host_convert_from_virtual): Removed + forward declarations. + * target.c (cleanup_target): removed default assignments for + to_convert_to_virtual and to_convert_from_virtual. + * inftarg.c (host_convert_to_virtual, host_convert_from_virtual): + removed. + * findvar.c (value_of_register, value_from_register): + target_convert_to_virtual inlined. + * infcmd.c (do_registers_info): target_convert_to_virtual inlined. + * valops.c (value_assign): target_convert_from_virtual inlined. + +Fri Sep 18 02:07:39 1992 John Gilmore (gnu@cygnus.com) + + * main.c (gdb_readline): Avoid printf_filtered, which sets char + position wrong if used for the prompt. + * utils.c (puts_filtered): Comment: NOT a puts() replacement! + + Support for accessing arbitrary MIPS stack frames in memory. + + * blockframe.c (get_prev_frame_info): If INIT_FRAME_PC_FIRST is + set, run it before INIT_EXTRA_FRAME_INFO. + * stack.c (frame_info): If PRINT_EXTRA_FRAME_INFO defined, call it. + + * mips-tdep.c (init_extra_frame_info): Only clobber the `frame' + (FP) value in the frame_info struct if it is zero (as from top of + execution stack). + (setup_arbitrary_frame): Implement FRAME_SPECIFICATION_DYADIC. + + * mips-xdep.c (fetch_inferior_registers): ZERO_REGNUM always + comes back as zero. So does FP_REGNUM, as a trigger for + init_extra_frame_info. + + * tm-mips.h (INIT_FRAME_PC_FIRST): Kludge, FIXME, defined to get + the program counter set before INIT_EXTRA_FRAME_INFO is run. + (INIT_FRAME_PC): Defined to null. + (PRINT_EXTRA_FRAME_INFO): print frame pointer location via symtab. + (FRAME_SPECIFICATION_DYADIC): Ask for two args in frame command. + Briefly explain MIPS stacks in GDB. + +Thu Sep 17 03:49:59 1992 John Gilmore (gnu@cygnus.com) + + * copying.awk, copying.c (show_copying_command, + show_warranty_command): Rename from copying_info, warranty_info, + to match command function conventions. + + * utils.c (prompt_for_continue): Reinitialize more-counts + before printing anything, and again afterward. Fix comments. + (vfprintf_filtered): Eliminate static buffer; use auto buffer, + or alloca() if needed. + + * rs6000-xdep.c: Use correct conditional (IBM6000_TARGET) to + detect native versus cross-host. + +Wed Sep 16 21:57:14 1992 Stu Grossman (grossman at cygnus.com) + + * m68k-tdep.c (sun3_saved_pc_after_call): Only do trap check for + Suns. Rename to m68k_saved_pc_after_call. + * tm-68k-noun.h, tm-sun3.h (SAVED_PC_AFTER_CALL): Use + m68k_saved... instead of sun3_saved... + +Wed Sep 16 17:00:07 1992 John Gilmore (gnu@cygnus.com) + + * Makefile.in (update-depend, update-alldeps): Split out of + setup-to-dist, for convenience in rebuilding the depend and + alldeps.mak files. + (assorted): Update to catch straggler files when building gdb.tar.Z. + +Tue Sep 15 01:18:50 1992 John Gilmore (gnu@cygnus.com) + + Preliminary cleanup for splitting host/native/target. + + * infptrace.c (child_resume): Don't deal with NO_SINGLE_STEP + here; it is dealt with at a gdb-target-independent level. + * rs6000-tdep.c (single_step): Don't call ptrace, we are a + high toned routine. Fix return type to void. + * tm-rs6000.h (AIX_BUGGY_PTRACE_CALL): Zap, we think we fixed it. + Rich and I believe the "real problem" was that both single_step + and target_resume were issuing PT_CONTINUE calls. This would + cause the second PT_CONTINUE to sometimes fail because the process + was already running. + * infptrace.c (child_resume): Remove AIX_BUGGY_PTRACE_CALL kludge. + +Mon Sep 14 19:20:43 1992 Stu Grossman (grossman at cygnus.com) + + * energize.c (pty_to_kernel): Must check for EAGAIN as + termination condition. + (full_filename): Don't prepend dirname if filename begins with /. + (breakpoint_notify, kernel_dispatch): Deal with DynamicLoad + messages properly!! + (getpty (NCR)): Lotsa bug fixes... + (kernel_dispatch (case StopRType)): Use kill() instead of + killpg() so we can deal with losing systems... + (wait_for_events): Work around NCR select() lossage. It doesn't + zero out readfds when select() returns zero. + (energize_initialize): Use I_SETSIG to get SIGIO interrupts. Use + getcwd() instead of getwd() (NCR getwd() seg faults). + (energize_wait): Use sigaction() for NCR. Their version of signal() + is unreliable by default. + + * procfs.c (proc_wait): Call print_sys_errmsg() if we get an + error from PIOCSWSTOP. + + * breakpoint.c, core.c, exec.c, language.c, main.c, printcmd.c, + symfile.c, target.c, valprint.c: Use _filtered form of *printf. + defs.h, utils.c: Make vfprintf_filtered global. + + * energize.c (send_location): New routine to consolidate all + places where we must notify kernel of where the given pc is. + (cplus_demangle): Put single-quotes around demangled names. + (energize_call_command): Call send_location() after doing up, + down, and frame commands. + +Fri Sep 11 18:28:28 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/gdb.texinfo, doc/gdbinv-m.m4.in, doc/gdbinv-s.m4.in: first + pass at doc for two new remote targets---29K using UDI, and Tandem + ST2000 using STDBUG. + + * doc/all.m4, doc/none.m4: new m4 switch, _ST2000__ + + * doc/all.m4: turn on H8/300 stuff for generic manual + + * doc/gdbinv-s.m4.in: remove text on special procedures to continue + after explicit call to breakpoint() in serial stubs. + +Fri Sep 11 01:34:25 1992 John Gilmore (gnu@sphagnum.cygnus.com) + + * mipsread.c: Clean up some white space. + (parse_symbol): Handle stEnd of stFile. + (parse_partial_symbols): Remove old #if 0'd code. Handle stLocal. + + * mips-xdep.c (REGISTER_PTRACE_ADDR, fetch_inferior_registers, + store_inferior_registers): Replace unexplained numbers + with manifest constants from a DECstation header file. + * xm-mips.h (KERNEL_U_ADDR): Get from . + (REGISTER_U_ADDR): Fix up for Ultrix 4.2. + + * tm-tahoe.h, xm-tahoe.h (KERNEL_U_ADDR): Move macro to xm-tahoe.h. + + * stack.c (_initialize_stack): "dow" should be a valid abbreviation + for "down". Suggested by Richard Stallman. + +Thu Sep 10 15:26:07 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * remote-vx.c: Rename realloc for inclusion of rpc/rpc.h, to avoid + redeclaration bug on SunOS 4. + +Wed Sep 9 17:36:53 1992 John Gilmore (gnu@cygnus.com) + + * i386-stub.c, sparc-stub.c (getpacket): Actually check checksums. + * m68k-stub.c: Remove a few extraneous ANSI-isms. + * remote-nindy.c (nindy_prepare_to_store): Only fetch regs if + they aren't already there. + * remote-vx.c (vx_prepare_to_store): Ditto. + * xcoffread.c: Surround forward struct defns with #ifdef __STDC__. + +Wed Sep 9 16:50:22 1992 John Gilmore (gnu@cygnus.com) + + Removed a large number of changes inserted by Per Bothner + for C++ support. These will go back in when they've been + examined. + +Tue Sep 8 21:05:18 1992 Stu Grossman (grossman at cygnus.com) + + * serial.h: Fix prototye for serial_raw(). + * ser-bsd.c, ser-termios.c: Fix args for serial_open() & + serial_write() to match prototypes. + * remote-st2000.c (get_reg_name): Make *p be const. + +Tue Sep 8 17:24:52 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * remote-nindy.c (nindy_fetch_registers): Make return type void, + to agree with target structure field type. + (nindy_store_registers): Ditto. + + * Makefile (OPCODES): New var, pointing to opcodes library. + (CLIBS, CDEPS): Include it. + (saber_gdb): Load opcodes library. + +Tue Sep 8 15:22:06 1992 Stu Grossman (grossman at cygnus.com) + + * a68v-xdep.c (store_inferior_registers): declare as void. + * infptrace.c: HP/Apollos have ptrace.h in the wrong place. + * remote-st2000.c: Massive changes to use new serial package. + Also added 'connect' command to transparantly connect to serial + port. + * ser-termios.c: Big cleanup, use nicer coding conventions. + * ser-bsd.c: New module, serial stuff for BSD systems. + * serial.h: Define struct ttystate properly using HAVE_TERMIO. + * xm-apollo68b.h: #define PTRACE_IN_WRONG_PLACE... + +Fri Sep 4 18:53:57 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/gdb.texinfo: fix shameful error of agreement reported by + jimb@occs.cs.oberlin.edu (Jim Blandy) + * doc/gdb.texinfo: remove old partial discussion of remote serial + protocol (via serial debug stubs) + * doc/gdbinv-m.m4.in, doc/gdbinv-s.m4.in: new section discussing + use of serial debug stubs + +Fri Sep 4 00:34:30 1992 Per Bothner (bothner@rtl.cygnus.com) + + * symfile.h: Declaration of set_demangling_style() moved + here from demangle.h (which is now in ../include). + * i386-xdep.c: Update comment. + +Thu Sep 3 13:44:46 1992 K. Richard Pixley (rich@sendai.cygnus.com) + + * symtab.c (completion_list_add_symbol): restructured to optimize + for time. First clip names that cannot match. Then clip any + names we've already considered. Drop a redundant strncpy. Drop + a redundant malloc and associated free for demangled names. + +Thu Sep 3 09:17:05 1992 Stu Grossman (grossman at cygnus.com) + + * a68v-xdep.c (store_inferior_registers): Define as type void. + * configure.in: Add host m68k-apollo*-bsd*. + * demangle.c (struct demanglers): Use enum instead of constant + value to keep braindamaged HP/Apollo compiler happy. + +Wed Sep 2 20:45:31 1992 Per Bothner (bothner@rtl.cygnus.com) + + * utils.c (strcmp_iw): Add a hack to allow "FOO(ARGS)" to + match "FOO". This allows 'break Foo' to work when Foo is + a mangled C++ function. (See comment before function.) + +Wed Sep 2 13:45:27 1992 John Gilmore (gnu@cygnus.com) + + * config/rs6000.mh (MH_CFLAGS): Circumvent IBM bug, + for files in vx-share/*.c. + * xm-rs6000.h (fd_set): Circumvent the rs6000.mh circumvention, + for normal GDB source files. + + * Makefile.in (VERSION): Roll to 4.6.6. + + * tm-vx68.h, tm-es1800.h: Use tm-68k.h rather than tm-sun3.h. + * tm-sun3.h: Remove STACK_END_ADDR, no longer used. + * tm-sun3os4.h: Update comments. + * xm-delta88.h: Remove STACK_END_ADDR. + +Wed Sep 2 01:18:31 1992 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): Roll to 4.6.5. + + * infrun.c: Lint for recent `handle' changes. + + * ser-termios.c, ser-go32.c: Remove DEFUN crap, clean up. + * serial.h (EXFUN): Remove all uses, convert to PARAMS. + * config/sun4os4.mh: Include ser-termios.o. FIXME, all .mh files + should include a ser-XXX.o module. + + * dbxread.c (elfstab_build_psymtabs): Remove DEFUN crap. + * defs.h, i960-pinsn.c, remote-hms.c: Replace CONST with simple const. + + * configure.in: Map unrecognized sun 68k's, sun sparcs, into + known suns in configure.in, rather than mapping them to unique + config files that happen to duplicate other config files. + * config/sun3.{mh,mt}: Remove (use identical sun3os4.*). + * config/sun4.{mh,mt}: Remove (use identical sun4os4.*). + +Wed Sep 2 00:10:43 1992 John Gilmore (gnu@cygnus.com) + + * configure.in (*-*-sunos*): Use trailing * to match all + sub-variants of SunOS, e.g. sunos4* to match sunos4.1.1. + (sparc-*-sunos3): Remove host & target. Sunos3 never shipped + in production on Sun-4. + ({a29k,i[34]86,i960}-*-elf): Add targets, equivalent to coff. + (m68k-*-{aout,coff,elf}): Add targets, w/new config and tm files. + (sparc-*-{aout,coff,elf}): Add targets, w/new config and tm files. + + * config/m68k-un.mt, config/m68k-noun.mt, config/sparc-un.mt, + config/sparc-noun.mt: New target configs for embedded. + * config/sun4os3.{mh,mt}: Remove, never existed in production. + + * tm-68k-un.h, tm-68k-noun.h, tm-spc-un.h, tm-spc-noun.h: New + target definitions for embedded with and without underlines on + identifiers. + + * tm-sparc.h, tm-sun2.h, tm-sun3.h: Delete NAMES_HAVE_UNDERSCORE: + not a parameter of the CPU, but of the development environment. + * tm-es1800.h, tm-sunos.h, tm-vx68.h: Add NAMES_HAVE_UNDERSCORE. + +Tue Sep 1 17:31:45 1992 John Gilmore (gnu@cygnus.com) + + * breakpoint.c (breakpoint_re_set): Avoid setting source symtab + (which involves reading in main's symtab) if we have no breakpoints. + +Mon Aug 31 13:47:45 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (cu_language): New local variable to record + language for current compilation unit being processed. + * dwarfread.c (set_cu_language): New local function to decode + and record language for current compilation unit being processed. + * dwarfread.c (synthesize_typedef): Add local function to + synthesize a typedef for C++ classes, structs, unions, and + enumerations. + * dwarfread.c (read_structure_scope): Synthesize typedefs + for C++ classes, structs and unions. + * dwarfread.c (read_enumeration): Synthesize typedefs for + C++ enumerations. + * dwarfread.c (read_file_scope): Call set_cu_language to + record language for current compilation unit. After symtab + is built, save this recorded language. + * dwarfread.c (process_dies, add_partial_symbol, struct_type, + scan_partial_symbols, new_symbol): Recognize TAG_class_type. + * dwarfread.c (add_partial_symbol): Synthesize partial symbol + typedefs for C++ classes, structs, unions, and enumerations. + * dwarfread.c (scan_compilation_units): Call set_cu_language + to record language for current compilation unit. + * dwarfread.c (scan_partial_symbols): Call add_enum_psymbol here + for TAG_enumeration_types, rather than in add_partial_symbol. + * dwarfread.c (add_partial_symbol): Combine TAG_enumeration_type + case with class, struct, and union type cases, now that they are + the same. Remove tests for non-NULL name attributes, now done + by callers. + * gdbtypes.h (TYPE_CODE_CLASS): Add type for C++ classes, but + treat as alias for TYPE_CODE_STRUCT for now. + +Sun Aug 30 21:32:17 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: map "gdb" through program_transform_name when + installing. + +Sun Aug 30 21:18:51 1992 Fred Fish (fnf@cygnus.com) + + * {i386-tdep.c, m68k-tdep.c, mips-tdep.c, sparc-tdep.c} + (supply_gregset, fill_gregset, supply_fpregset, fill_fpregset): + Use "regi" for local indexing through register numbers, reserving + "regno" for the name of a specific register passed as an input + parameter. Fix bug propagated through all versions that sometimes + used regno as an index when it should have been regi, thus using + -1 as an index in some cases. + +Sun Aug 30 18:15:17 1992 Per Bothner (bothner@rtl.cygnus.com) + + * cplus-dem.c, demangle.h: Moved to ../libiberty and ../include, + respectively, so same demangler can be used by other programs. + * Makefile.in: Remove demangler stuff. + * Makefile.in (depend): Pass -I../readline (needed for main.c). + * demangle.c (_initialize_demangler): Tell demangler which + CPLUS_MARKER to assume. + +Fri Aug 28 13:13:33 1992 John Gilmore (gnu@cygnus.com) + + RS/6000 portability changes (for hosting cross-debuggers). + + * breakpoint.c (fixup_breakpoints): Re-kludge to IBM6000_TARGET. + * buildsym.c, rs6000-xdep.c, rs6000-tdep.c, tm-rs6000.h, + xcoffexec.c, xcoffread.c: Rename aixcoff to xcoff everywhere. + * printcmd.c (print_frame_args): Remove an RS/6000 dependency. + * stabsread.c (define_symbol): Remove RS/6000 dependencies. + * tm-rs6000.h (ATTACH_DETACH): Remove: host-dependent. + (PTRACE_ATTACH, PTRACE_DETACH): Remove: host-dep. + (NO_SINGLE_STEP): Add, target-dependent. + (loadinfotextindex): Lowercase, remove "aix_". + * xm-rs6000.h: Add for infptrace.c. + (NO_SINGLE_STEP): Remove, target-dependent. + * xcoffexec.c (vmap_symtab): Cleanup #if 0'd code. + * xcoffread.c: Only build file if RS/6000 native GDB. + (build_function_symbol): Remove #if 0'd code. + * rs6000-tdep.c: Cleanup. Add static fn protos. + Use CORE_ADDR for addresses throughout. Make void fns void. + (pop_dummy_frame): Add FIXME about bogosity of design here. + (rs6000_struct_return_address): Ditto. + (frameless_function_invocation, frame_get_cache_fsr, + frame_initial_stack_address, xcoff_relocate_symtab, + xcoff_init_loadinfo, free_loadinfo, xcoff_add_toc_to_loadinfo, + add_text_to_loadinfo, find_toc_address): Move from xdep file. + Use CORE_ADDRs. Change identifiers to lowercase. + + * rs6000-xdep.c: Make whole file conditional on native RS/6000, + supplying dummy routines if non-native. Add prototype for + static exec_one_dummy_insn. Move a mess of functions to + rs6000-tdep.c (as above). Remove #if 0'd code. + + * config/rs6000.mh (XDEPFILES): Move xcoffexec.o to target side. + (XM_CLIBS): Add -lm to circumvent AIX 3.2 libc ldexp bug. + * config/rs6000.mt (TDEPFILES): Adopt xcoffexec.o. + + * gdbtypes.h (TYPE_ALLOC): Parenthesize result to avoid problems + for callers. + + * vx-share/README, nindy-share/README: New files describing + how these directories' code is shared, and with whom. + +Thu Aug 27 20:04:56 1992 John Gilmore (gnu@cygnus.com) + + * configure.in (target configurations): Reformat into table. + Remove unsupp. Amigados host and target. Ditto Mach 386 target. + + * tm-altosgas.h, tm-i386v-g.h: Remove ancient coff encap configs. + * config/{altosgas.mt, i386v-g.mt, i386v32-g.mt}: Ditto. + * config/{i386sco.mt,i386v32.mt}: Remove; identical to i386v.mt. + * config/{go32.mt,i960.mt}: Remove; they only printed error msgs. + * config/nindy960.mt: Remove useless MT_CFLAGS setting. + * config/i386aout.mt: Use tm-i386v.h, not tm-i386v-g.h. + + * Makefile.in (config-check): Add command to check whether + configure.in is consistent with config/*. + +Wed Aug 26 21:10:52 1992 John Gilmore (gnu@cygnus.com) + + * configure.in (host configurations): Reformat nested cases into + easy-to-maintain table. + (m68k-altos-*, i386v*): We don't care whether coff encap is used. + config/{altosgas.mh, i386v-g.mh, i386v32-g.mh}: Remove. + +Wed Aug 26 16:02:01 1992 Fred Fish (fnf@cygnus.com) + + * cplus-dem.c: Reorder args to most local functions to make them + follow the consistent pattern of struct work_stuff pointer first, + followed by pointer into string being demangled, followed by + pointer to the string where the result is being stored, followed + by other args. Also generally replace most variables of name + "type" with "mangled" for consistency. They all pointed to the + same string but half were one name and half the other. + * cplus-dem.c (LONGERNAMES): Remove #ifndef's. + * cplus-dem.c (demangle_qualified): Rewrite to clean up and allow + use whenever a qualified name is being demangled. + * cplus-dem.c (do_type): Qualified names are treated similarly + to fundamental types, not as modifiers of fundamental types. + +Mon Aug 24 20:44:38 1992 Stu Grossman (grossman at cygnus.com) + + * configure.in: Add sparclite as a target. + + * sparc-stub.c (handle_exception): Flush instruction cache just + before returning to the user. (hexToInt): Fix overzealous cleanup. + +Mon Aug 24 11:57:13 1992 Fred Fish (fnf@cygnus.com) + + * infrun.c (handle_command): Rewrite to allow multiple signal + numbers, signal number ranges, and to recognize "all" to mean all + signals except those used by the debugger. + * infrun.c (SET_SIGS, UNSET_SIGS): Macros used in handle_command + to set or reset actions for specific signals. + +Sun Aug 23 17:10:07 1992 Fred Fish (fnf@cygnus.com) + + * coffread.c (decode_type): Call alloc_type to alloc new + types. + * stabsread.c (read_array_type, read_range_type, define_symbol): + Call alloc_type to alloc new types. + * stabsread.c (define_symbol): Move dbl_valu symbol field data + from type_obstack to symbol_obstack. + * stabsread.c (define_symbol): Move typedef_sym from type_obstack + to symbol_obstack. + * gdbtypes.h (TYPE_ALLOC): New macro to allocate space for data + associated with a type, using the same mechanism as was used to + allocate space for the type structure itself. + * coffread.c (patch_type, coff_read_struct_type, + coff_read_enum_type): Use TYPE_ALLOC. + * dwarfread.c (struct_type): Use TYPE_ALLOC. + * gdbtypes.c (create_array_type, check_stub_method, + allocate_cplus_struct_type): Use TYPE_ALLOC. + * mipsread.c (parse_symbol, parse_type): Use TYPE_ALLOC. + * stabsread.c (read_struct_type, read_array_type, read_enum_type, + read_range_type): Use TYPE_ALLOC. + +Sun Aug 23 11:04:08 1992 Fred Fish (fnf@cygnus.com) + + * breakpoint.c (breakpoint_re_set): Select a default source + symtab if one is not currently selected. + * utils.c (query): Call wrap_here before building the output + query string, to turn off wrapping and flush any buffered output. + Otherwise our query may end up in the wrap buffer and never be + seen by the user. + * eval.c (evaluate_subexp): Report error when attempting to + evaluate subscript for types without a target type, rather + than dumping core by using the NULL pointer. + * symfile.c (symbol_file_command): Forget current_source_symtab + and current_source_line when discarding symbol table. + +Sat Aug 22 22:33:20 1992 John Gilmore (gnu@cygnus.com) + + Bug fixes from Andrew Heybey . + + * tm-mips.h (REGISTER_VIRTUAL_TYPE): Float regs are float type. + * mips-tdep.c (mips_print_register): Alloc enough space for two regs. + +Fri Aug 21 15:17:03 1992 Stu Grossman (grossman at cygnus.com) + + * remote.c (remote_open): Fix baud rate setting to make -b flag + work. (remote_wait): Change 'T' message parser to deal with new + improved format which allows stub to send an arbitrary bunch of + registers. + * sparc-stub.c: General cleanups. (trap_low, handle_exception): + make all this re-entrant by storing all state on the stack. Clean + up memory error trapping. (computeSignal, set_debug_traps): + make it all table driven. Make a start at a baud rate setting command. + +Wed Aug 19 10:23:27 1992 Ian Lance Taylor (ian@cygnus.com) + + * m68k-pinsn.c: handle new operand type 'r', introduced for cas2. + + * remote-vx.c: redefine malloc to avoid buggy declaration on + RS/6000 . + xm-rs6000.h: include to define fd_set for + on RS/6000. + +Tue Aug 18 14:48:24 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: added FLAGS_TO_PASS variable, and passed it to + recursive invocations of make. Always create installation + directories. + +Mon Aug 17 18:29:58 1992 Per Bothner (bothner@rtl.cygnus.com) + + * m68k-pinsn.c: Minor fix in style of output (don't use + range to indicate floating point control registers). + +Sat Aug 15 02:58:03 1992 John Gilmore (gnu@cygnus.com) + + * m68k-pinsn.c: Surround extended support with #ifdef HAVE_68881. + + * infcmd.c (registers_info): Handle multiple register names. + Changes inspired by Roland McGrath. + +Sat Aug 15 02:28:52 1992 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c: New file. Mix it with your SPARClite + application, and it will speak GDB remote protocol! + * remote.c (remote_wait): Change 'T' (expedited reply) message to + deal with arbitrary registers. Needed for sparc-stub. + +Fri Aug 14 12:11:25 1992 Fred Fish (fnf@cygnus.com) + + * cplus-dem.c (cplus_markers): Add table for gnu style and + use throughout, in place of compile time constant CPLUS_MARKER. + * cplus-dem.c (ARM_VTABLE_STRING, ARM_VTABLE_STRLEN): Add. + * cplus-dem.c (cfront_special): New function, as suggested + by pfieland@stratus.com. + * cplus-dem.c (forget_types): New function. + * cplus-dem.c (cplus_demangle): Call gnu_special, moved from + demangle_prefix(). + * cplus-dem.c (mop_up): Call forget_types(). + * cplus-dem.c (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING): + Use throughout, instead of checking current_demangling_style. + * cplus-dem.c (demangle_signature): When finding an explicit + start of function args, forget all remembered types for + lucid/cfront style demangling. + * cplus-dem.c (demangle_prefix): In a sequence of two or more + underbar characters, use last pair as the delimiter. Hoist + gnu_special() call up to cplus_demangle(). Call cfront_special() + when appropriate. + * cplus-dem.c (cplus_special): Fix virtual table name demangling + for inherited classes. + * cplus-dem.c (demangle_args): Document quirks of numbered + references to previously seen types. + * dbxread.c (read_ofile_symtab, process_one_symbol): + Use AUTO_DEMANGLING rather than explicitly checking + current_demangling_style. + * demangle.h: Add some comments. + * demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING, + CFRONT_DEMANGLING): New macros. + * dwarfread.c (LCC_PRODUCER): Remove trailing space, which is + not found in the actual producer string produced by lcc. + * dwarfread.c (handle_producer): Use AUTO_DEMANGLING rather + than explicitly checking current_demangling_style. + +Thu Aug 13 11:54:46 1992 John Gilmore (gnu at cygnus.com) + + * breakpoint.c (enable_longjmp_breakpoint, + disable_longjmp_breakpoint, set_longjmp_resume_breakpoint): + Check for duplicate breakpoints at the same address. Bug report + and preliminary fix from Dave Morrison, . + +Wed Aug 12 11:14:58 1992 Fred Fish (fnf@cygnus.com) + + * buildsym.c (end_symtab): Document that end_symtab can return + NULL under non-error conditions. + * dwarfread.c (read_file_scope): Guard against dereferencing NULL + returned from end_symtab for empty compilation units. + +Tue Aug 11 02:49:39 1992 John Gilmore (gnu at cygnus.com) + + * am29k-tdep.c: Lint from DECstation compiler. + * mem-break.c: Restore test of BREAKPOINT size that Fred removed. + As the man page says, "Sometimes you just can't get lint to shut + up". That doesn't mean you should blow away the code it won't + shut up about. + * mips-xdep.c: Revise stubbing-out of code until Rich cleans + it up over the next few weeks. Make mips x 29k build. + * tm-29k.h (CALL_DUMMY): Make it work on cross-endian hosts. + (FIX_CALL_DUMMY): Comment in the patching of the breakpoint, + but leave it as a comment because the breakpoint instruction + is not easily accessible at this moment (it's static, and if + we define one here, it goes into every file compiled). + +Mon Aug 10 22:27:19 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.6.3. + * dwarfread.c (scan_partial_symbols): Skip over DIE's within + function scopes when building partial symbol tables. + * objfiles.c (open_existing_mapped_file): Make it clear in + warning message that out of date mapped files are ignored. + * symtab.c (lookup_symtab_1, lookup_symbol): Print compilation + unit source file name in error message. + +Sat Aug 8 23:12:22 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (struct dieinfo): Add has_at_byte_size. + * dwarfread.c (struct_type): In absence of AT_byte_size for + bitfield, use size of object of member's type for the size of + the anonymous object containing the bit field. + * dwarfread.c (completedieinfo): Set has_at_byte_size when + an AT_byte_size attribute is seen. + * mipsread.c (psymtab_to_symtab_1): Fix misspelled cast to + union aux_ext (was aux_ent). + * i386-pinsn.c (print_insn): Cast 2'nd arg to read_memory from + unsigned char* to char*, for Lucid compiler. + * i386-tdep.c (codestream_fill): Fix cast of 2'nd arg to read_memory + to be correct type (from unsigned char* to char*). + * valprint.c (type_print_derivation_info): Minor tweak to placement + of commas in derived class printing. + * xcoffread.c (builtin_type): Fix misspelling in fatal message. + +Fri Aug 7 11:18:23 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * xm-go32.h: Define LSEEK_NOT_LINEAR + * source.c (find_source_lines): if LSEEK_NOT_LINEAR is defined + then work out the lseek positions of newlines by running through + the file and `tell'ing. This makes source file listing work on + OS's where the relationship between physical position in file and + canonical position is indeterminate, eg VMS and DOS. + +Thu Aug 6 10:56:01 1992 Fred Fish (fnf@cygnus.com) + + * stabsread.c: Ensure that all members of all allocated structures + are initialized to known state to avoid hard to find bugs with gdb + using fields containing random data. + * buildsym.c (start_subfile): Compact dirname initialization. + * buildsym.c (patch_subfile_names): New function. + * buildsym.c (end_symtab): Make copy of dirname on symbol obstack. + * buildsym.c (end_symtab): Free all malloc'd subfile fields. + * buildsym.h (patch_subfile_names): Add prototype. + * dbxread.c (process_one_symbol): Call patch_subfile_names. + +Wed Aug 5 01:42:40 1992 John Gilmore (gnu at cygnus.com) + + * remote-udi.c: Update comments. + + * remote.c (getpkt): Only force retransmission ten times; + after that, assume bug in target code, and handle pkt anyway. + +Mon Aug 3 17:06:20 1992 Stu Grossman (grossman at cygnus.com) + + * configure.in: Add support for apollo 68k under BSD environment. + * xm-apollo68b.h: New file to support above. + +Mon Aug 3 00:25:56 1992 Fred Fish (fnf@cygnus.com) + + * configure.in: Recognize i486 host cpu. + * valprint.c (type_print_derivation_info): Print derivation info + in same form as class declarations in source. + * valprint.c (type_print_varspec_suffix): Split arg printing + code out to type_print_args function. + +Sat Aug 1 13:32:58 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (struct dieinfo): Remove obsolete at_visibility, + at_import, at_frame_base. + * dwarfread.c (completedieinfo): Remove cases for obsolete + AT_visibility, AT_import, and AT_frame_base attributes. + * breakpoint.h (BREAKPOINT_MAX): Increase from 10 to 16 for + i860, which can keep up to 4 shadow breakpoints. + * tm-stratus.h (USG): Define. + * tm-stratus.h (TARGET_BYTE_ORDER): Define to BIG_ENDIAN. + * xm-stratus.h (HOST_BYTE_ORDER): Define to BIG_ENDIAN. + * xm-stratus.h (xm-sysv4.h): Include, name changed from xm-svr4.h. + * xm-stratus.h (NO_JOB_CONTROL): Remove define. + * config/stratus.mt (TDEPFILES): Include files available from + stratus that are not yet in release pending receipt of paperwork + at FSF. + * buildsym.c (finish_block): Minor code format change. + * gdbtypes.h (struct field): Add to comments. + * gdbtypes.h (virtual_field_bits): Add to comments. + * objfiles.c (allocate_objfile): Change obstack interface to + match FSF merging efforts. + +Mon Jul 27 21:14:44 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.6.2. + * Makefile.in (SFILES_MAINDIR): Add stabsread.c + * Makefile.in (OBS): Add stabsread.o + * Makefile.in (stabsread.o): Add build rule. + * stabsread.c, stabsread.h: New files. + * buildsym.c: Split out stabs specific support to stabsread.c. + * buildsym.h: Split out stabs specific support to stabsread.h. + * dbxread.c (stabsread.h): Include + * dbxread.c (dbx_new_init): Call stabsread_new_init. + * dbxread.c (dbx_psymtab_to_symtab_1): Call stabsread_init. + * dbxread.c (read_ofile_symtab): Call end_stabs. + * dbxread.c (process_one_symbol): Call end_stabs and start_stabs. + * dbxread.c (elfstab_build_psymtabs): Call stabsread_new_init. + * dwarfread.c (psymtab_to_symtab_1): Call buildsym_init, add + really_free_pendings to cleanups. + * elfread.c (elf_new_init): Call stabsread_new_init. + * gdbtypes.c: Small changes to maintenance commands. + * mipsread.c (stabsread.h): Include. + * mipsread.c (psymtab_to_symtab_1): Call end_stabs. + * xcoffread.c (stabsread.h): Include. + * xcoffread.c (global_stabs): Remove redundant def. + * xcoffread.c (read_xcoff_symtab): Call start_stabs and end_stabs. + +Wed Jul 22 21:39:33 1992 Fred Fish (fnf@cygnus.com) + + * lmode_inferior_valid, lmode_ours_valid: New static vars. + * inflow.c (terminal_init_inferior, terminal_inferior, + terminal_ours_1, initialize_inflow): Record and use state + of lmode_inferior_valid and lmode_ours_valid. + +Wed Jul 22 04:23:03 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * es1800.c: use FREAD|FWRITE rather than _FREAD|_FWRITE. + include on USG. (from sef). + + * depend: es1800 dependency needed here. + +Mon Jul 20 21:09:53 1992 Fred Fish (fnf@cygnus.com) + + * buildsym.c (read_struct_type): Initialize structs allocated + with alloca, to avoid using random values from stack later on. + * defs.h (fprintf_filtered): Add prototype. + * gdbtypes.c (check_stub_method): Fix misleading comments. + * gdbtypes.c (print_arg_types, dump_fn_fieldlists): New maint + support functions. + * gdbtypes.c (print_cplus_stuff, recursive_dump_type): Many + small changes to maint support functions. + * gdbtypes.h (cplus_struct_type): Reorganize member ordering + for some fields and expand comments. + * objfiles.c (allocate_objfile): Use new obstack_alloc_arg + macro and track change to obstack_full_begin macro. + * utils.c (fprintfi_filtered): New function. + * valprint.c (type_print_base): Fixup field printing to not + print extraneous lines and not print bogus "no data fields" + messages for C++ classes with no data members. Also use new + fprintfi_filtered function. + +Mon Jul 20 11:25:18 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * configure.in: es1800 ok for 68000 too. + +Sat Jul 18 15:48:58 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: echo error messages to stderr, not stdout + +Fri Jul 17 17:07:24 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: recognize hppa* instead of hppa + +Fri Jul 17 16:52:04 1992 Stu Grossman (grossman at cygnus.com) + + * energize.c: Second cut at DynamicLoad message handling. + + * energize.c: Relativize pathnames in #include statements. + * (kernel_dispatch): Better error messages for unknown protocol + messages. + * (kernel_dispatch): First cut at DynamicLoad message handling. + + * Makefile.in: Remove -I../readline from all compilations, + include a special case for main.o instead. + +Fri Jul 17 10:14:56 1992 Fred Fish (fnf@cygnus.com) + + * eval.c (evaluate_subexp): Ask lookup_struct_elt_type to call + error if it fails to find a member type, rather than return NULL + and trigger a coredump. + * symtab.c (lookup_symbol, lookup_demangled_block_symbol, + lookup_demangled_partial_symbol,): Ask demangle_and_match to + match on complete demanglings, including argument lists for member + functions, rather than just accepting the first demangling that + matches the class and function name. + * dwarfread.c (read_file_scope): Pass contents of AT_comp_dir + to start_symtab as the directory name. + * dwarfread.c (completedieinfo): Strip off any leading hostname + portion of the AT_comp_dir attribute string. Gdb doesn't know + what to do with them (FIXME). + +Thu Jul 16 13:37:09 1992 Stu Grossman (grossman at cygnus.com) + + * breakpoint.c (commands_command): Simplify code a bit, remove + unnecessary fflush(). + + * Makefile.in (OTHERS): Add gcc.patch. + * partial-stab.h (N_SO): Fix handling of redundant SOs (again...) + +Thu Jul 16 12:07:40 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (LCC_PRODUCER): Change to match current NCR + lcc producer string. + +Thu Jul 16 11:40:55 1992 Stu Grossman (grossman at cygnus.com) + + * WHATS.NEW renamed to NEWS. + +Wed Jul 15 11:37:31 1992 Fred Fish (fnf@cygnus.com) + + * dbxread.c, dwarfread.c: Re-enable experimental code to + automatically select demangling style. + * demangle.c (DEFAULT_DEMANGLING_STYLE): Rename from simply + DEMANGLING_STYLE, to make more descriptive. Revert back to + "auto" as default. Comment use. + * Makefile.in (DEMANGLING_STYLE, DEMANGLE_OPTS): Remove. + * Makefile.in (${DEMANGLER}.o) Remove target and special + compilation rule. + +Tue Jul 14 23:05:14 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.6.1 (post-release versions). + +Tue Jul 14 19:26:54 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in, demangle.c: Change default demangling style to + gnu. + * Makefile.in: Update version to 4.6 !!! + * README, WHATS.NEW: Update for 4.6. + +Tue Jul 14 16:59:46 1992 Ken Raeburn (raeburn@cygnus.com) + + * i960-tdep.c (frame_args_address): If arg pointer can't be found, + use frame address. + + * buildsym.c (read_struct_type): Don't die on TYPE_CODE_UNDEF + nodes as base classes. + +Tue Jul 14 00:12:30 1992 Stu Grossman (grossman at cygnus.com) + + * alldeps.mak, depend: Update. + + * xcoffread.c: Add decl for section_offset to keep prototype happy. + + * Makefile.in (VERSION): 4.5.9. + + * xm-hp300bsd.h: Add decl for strdup(). + * mips-tdep.c (heuristic_proc_desc): Fill in proc start addr in + PDR. Cleanup a few things, fix compilation warnings. + +Mon Jul 13 19:06:54 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (DEMANGLING_STYLE): New define to set default + demangling style for C++. Defaults to "auto". + * Makefile.in (DEMANGLE_OPTS): Use DEMANGLING_STYLE. + * Makefile.in (SFILES_MAINDIR): Add demangle.c + * Makefile.in (OBS): Add demangle.o + * cplus-dem.c (GNU_DEMANGLING, ARM_DEMANGLING, LUCID_DEMANGLING): + Remove compile time decisions about demangling style and replace + with runtime decisions using current_demangling_style. + * cplus-dem.c (main): Expand code included during building of + standalone demangler to recognize demangling style options. + * dbxread.c (demangle.h): Include. + * dbxread.c (read_ofile_symtab, process_one_symbol): Set GNU C++ + demangling style if processing g++ code and current demangling style + is auto (Note: this feature currently disabled.) + * demangle.c: New file, generic demangling control. + * demangle.h (demangling_styles): New enumeration to select one + of several demangling styles. Also define string names for each + style. + * demangle.h (set_demangling_style): Add prototype. + * dwarfread.c (demangle.h): Include. + * dwarfread.c (GPLUS_PRODUCER, LCC_PRODUCER, CFRONT_PRODUCER): + New producer string prefixes to recognize. + * dwarfread.c (handle_producer): Consolidate actions for specific + producers. Set demangling style based on producer string if + current style is auto. (Note: this feature currently disabled.) + * config/ncr3000.mt (DEMANGLE_OPTS): Remove. + +Sat Jul 11 18:23:58 1992 John Gilmore (gnu at cygnus.com) + + * config/sun4sol2.mh: Remove -xs flag, default INSTALL to cp. + +Fri Jul 10 13:58:34 1992 Per Bothner (bothner@rtl.cygnus.com) + + * gdbtypes.c, gdbtypes.h: New function lookup_signed_typename. + * c-exp.y: Call lookup_signed_typename() after seeing + "signed". This handles "signed char" correctly. + * c-exp.y: Recognize (but ignore) 'const' and 'volatile' + keywords before a type specifier. + +Fri Jul 10 10:19:52 1992 Fred Fish (fnf@cygnus.com) + + * command.c (lookup_cmd_1): Clarify descriptive comments. + * gdbcmd.h (maintenanceprintlist): Add declaration. + * main.c (maintenanceprintlist): Add definition. + * main.c (gdb_completer_command_word_break_characters): Add. + * main.c (symbol_completion_function): Switch completer word + break character sets dynamically, based on whether completion is + being done on commands or on something else. + * main.c (initialize_cmd_lists): Init maintenanceprintlist. + * maint.c: Include demangle.h. + * maint.c (maintenance_demangle): New function. + * maint.c (maintenance_print_command): New function. + * maint.c (_initialize_maint_cmds): Reorganize some commands + under new maintenance print subcommand. + +Thu Jul 9 19:05:27 1992 Per Bothner (bothner@rtl.cygnus.com) + + * gdbtypes.c (lookup_struct_elt_type): If the input type is + TYPE_CODE_PTR or TYPE_CODE_REF, dereference it to get the + target type. Otherwise, 'whatis this.field' wouldn't work, + which would be inconsistent, since 'print this.field' works. + * buildsym.c (read_struct_type, read_enum_type): Clear + TYPE_FLAG_STUB flag. + * buildsym.c (cleanup_undefined_types): Don't rely on a + flawed "Reasonable test to see if" a type has been defined + since it was referred to; now we can just see if the + TYPE_FLAG_STUB flag has been cleared. + * valprint.c (print_type_base): Emit public/protected/private + labels for methods as well as fields. Also, indent these labels + 2 spaces instead of 4, for a more conventional "look". + * symtab.c (gdb_mangle_name): Undo Fred's change, unless + GCC_MANGLE_BUG is defined. Also, handle destructors specially. + * gcc.patch: New file. Contains patch for gcc (so people + with gdb-2.2.x won't have to wait for a new gcc release). + +Thu Jul 9 18:44:26 1992 Ken Raeburn (raeburn@cygnus.com) + + * i960-pinsn.c (mem): Variables reg[123] should point to CONST. + (print_addr): Call print_address to show symbolic version as well. + + * remote-vx.c (vx_kill): Don't look for arguments; they aren't + being passed. + (vx_read_register): Declare inferior_fp_regs. Delete code for + copying "inferior_registers" around; the values are already in var + "registers". Use correct size for register set. + + * remote-vx.c (vx_write_register): Don't try writing FP regs; the + target doesn't support it. + (vx_read_register): Don't try reading them either. + + * tm-i960.h (IP_REGNUM): Move to end of non-FP list, since the + VxWorks back end reads them in one contiguous set except for this + one. + (register_names): Change "pc" to "pcw" to avoid confusion printing + "$pc". + * tm-vx960.h (PC_REGNUM): Use RIP_REGNUM, since that's where we + find the PC under VxWorks. + +Wed Jul 8 21:34:30 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (alloc_utype, decode_subscr_data): Call alloc_type + to create new blank types, instead of handcrafting them. + * defs.h (printfi_filtered): Add prototype. + * utils.c (printfi_filtered): New function. + * gdbtypes.c (recursive_dump_type): Use printfi_filtered to + to simplify the code. Other cleanups. + * gdbtypes.c (check_stub_method): Demangle using DMGL_ANSI. + * gdbtypes.h (struct cplus_struct_type): Add comments describing + use of various fields. + * gdbtypes.c (print_bit_vector, print_cplus_stuff): New functions. + * c-exp.y (%token): Add CLASS as a token for C++, add grammar + production that currently treats it exactly the same as STRUCT. + * c-exp.y (yylex): Recognize "class" as token CLASS. + * symtab.c (gdb_mangle_name): Rewrite to match current g++ stabs. + * symtab.c (decode_line_1): Fix to pass quoted args on down to + general symbol handling code. Call cplus_mangle_opname with + DMGL_ANSI. + * symtab.c (decode_line_2): Print demangled function names in + breakpoint menus, instead of just file and line number. + * symtab.c (name_match): Call cplus_demangle with DMGL_ANSI. + * valprint.c (type_print_base): Print "class" for C++ classes, + rather than "struct". Print section labels for public, protected + and private members of C++ classes. + * values.c: Include demangle.h. + * values.c (value_headof): Call cplus_demangle with DMGL_ANSI. + +Wed Jul 8 17:23:07 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (VERSION): Update to 4.5.8. + + Wed Jul 8 00:11:02 1992 Stu Grossman (grossman at cygnus.com) + + * dbxread.c (dbx_symfile_init): Init stab_section_info to NULL to + prevent crashes when examining cross-targets. + * dbxread.c (process_one_symbol): Include directory name when + calling start_subfile for SOL & BINCL symbols. This allows gdb to + find include files, and yacc/lex sources when the cwd doesn't match + that in which the object was compiled. + * objfiles.h (ALL_MSYMBOLS): Don't seg fault when there are no + msymbols. + * symtab.c (lookup_symtab_1): Rewrite. It now handles include + files. + +Tue Jul 7 09:00:42 1992 Fred Fish (fnf@cygnus.com) + + * maint.c (maintenance_command, maintenance_info_command): + Install with allow_unknown as 0 and call help_list to show + list of possibilities when no subcommand is specified. + +Tue Jul 7 00:20:29 1992 Fred Fish (fnf@cygnus.com) + + * configure.in: Add m68k-ericsson-*. + * remote-es1800.c, tm-es1800.h, config/es1800.mt: New files. + +Sun Jul 5 17:17:16 1992 Fred Fish (fnf@cygnus.com) + + * maint.c: New file. + * Makefile.in (SFILES_MAINDIR): Add new file maint.c. + * Makefile.in (OBS): Add new file maint.o. + * defs.h (command_class): Add class_maintenance. + * defs.h (MAINTENANCE_CMDS): Default to including maintenance + commands. Allow for them (and other nonessential parts of gdb) + to be selectively left out under special circumstances. + * gdbtypes.c (recursive_dump_type): New function; supports + maintenance print-type command. + * gdbtypes.h (recursive_dump_type, maintenance_print_type): + Add prototypes. + * main.c (maintenancelist, maintenanceinfolist): Add maintenance + command lists. + * main.c (initialize_cmd_lists): Eliminate unnecessary casts on + initializers. Add initializations for setprintlist, showprintlist, + setchecklist, showchecklist, maintenancelist, and maintenanceinfolist. + * printcmd.c (maintenance_print_type): New maintenance cmd. + * valprint.c (setprintlist, showprintlist): Move to main.c, as + implied by comment that all cmd lists are owned by main.c. + * infcmd.c (unsetlist): Move to main.c, as implied by comment + that all cmd lists are owned by main.c. + * language.c (setchecklist, showchecklist): Move to main.c, as + implied by comment that all cmd lists are owned by main.c + * breakpoint.c (enablelist, enablebreaklist, disablelist, cmdlist, + deletelist): Remove redundant declarations (also in gdbcmd.h). + * symmisc.c (printsyms_command): Now maintenance_print_symbols. + * symmisc.c (printmsyms_command): Now maintenance_print_msymbols. + * symmisc.c (printpsyms_command): Now maintenance_print_psymbols. + * symmisc.c (printobjfiles_command): Now maintenance_print_objfiles. + * symtab.h (maintenance_print_symbols, maintenance_print_psymbols, + maintenance_print_msymbols, maintenance_print_objfiles): + Add prototypes. + * symmisc.c (printsyms_command, printpsyms_command, + printmsyms_command, printobjfiles_command): Removed from + _initialize_symmisc. + * main.c (dump_me_command): Moved to maint.c and renamed to + maintenance_dump_me. + * breakpoint.c (all_breakpoints_info): Rename to + maintenance_info_breakpoints. + * breakpoint.c (_initialize_breakpoint): Convert add_info of + all_breakpoints_info to add maintenance_info_breakpoints to the + maintenanceinfolist instead. + main.c (initialize_main): Set up maintenance class commands. + +Sun Jul 5 11:03:53 1992 Stu Grossman (grossman at cygnus.com) + + * energize-patches: Fix minor problems with building energize lib. + + * energize-patches: Change names of all cadillac procedure calls + to be energize procedure calls. Simplify many hooks by moving + tests energize.c. Configure energize, and build it automatically now. + +Sun Jul 5 09:43:28 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.5.7. + * cplus-dem.c (demangle_args): Validate index for previously + seen type to guard against bogus values from malformed manglings. + * valops.c (value_struct_elt_for_reference): Guard against + blindly using NULL return value from lookup_symbol. + +Sun Jul 5 09:46:43 1992 Stu Grossman (grossman at cygnus.com) + + * cadillac.c, cadillac-patches: Rename to energize.c and + energize-patches. Change all routines and variables named + 'cadillac*' to 'energize*'. Create new file called energize.h to + hold all interface declarations. + + * deblib/connection/*: Move all of this stuff into energize/, but + delete unneeded files. + +Sun Jul 5 03:06:39 1992 John Gilmore (gnu at cygnus.com) + + * tm-sysv4.h (NAMES_HAVE_UNDERSCORE): SVR4 systems don't. + + * buildsym.c (finish_block): Fix thinko `inner block' complaints. + * dbxread.c (process_one_symbol): Parse N_OPT "gcc2_compiled.". + * procfs.c (proc_set_exec_trap): Set run-on-last-close flag on + child processes, to avoid dead ones "hanging around" after GDB exits. + (attach): Always stop the process if it needs it. Set RLC flag + when attaching running processes, so it will continue if we detach + it, quit, or are killed. + (detach): Clear faults and set RLC flag to make process run + when we close it. + (open_proc_file): New `mode' argument for O_RDONLY or O_RDWR. + Callers changed. + (info_proc): Open process O_RDONLY, so we can see any process, + even those controlled by debuggers. + * tm-sun4sol2.h (SUN_FIXED_LBRAC_BUG): They did (in Sol 2). + +Sat Jul 4 03:43:38 1992 John Gilmore (gnu at cygnus.com) + + Relocate symbols using an array of section_offsets, rather than a + single `addr' or `offset'. This makes Solaris-2 support work, and + permits better VxWorks (and maybe xcoff) support later. + + * symtab.h (struct section_offsets): New structure for keeping + a set of offsets, rather than a single one. + (struct objfile): Replace addr with section_offsets member. + * symfile.h: Add sym_offsets to struct sym_fns. Conforming changes. + * gdb-stabs.h: New include file with `symbol type specific' + parameters for psymtabs and objfiles. + * Makefile.in (HFILES): Add gdb-stabs.h. + * buildsym.h (start_psymtab, process_one_symbol): Fix prototypes. + * coffread.c: Conforming changes. Fake offset array always 0. + * dbxread.c: Conforming changes. + (struct dbx_symfile_info): Move to gdb-stabs.h. + (start_psymtab): Call elfstab_offset_sections to calculate good + offsets for this source file, based on the ELF symbol table info. + (read_ofile_symtab): Yank N_CATCH, which is dead. + (process_one_symbol, N_CATCH): Yank. + (", N_FUN, N_FNAME, N_FN, N_FN_SEQ, N_SO, N_SOL, N_ENTRY): + Relocate with SECT_OFF_TEXT. + (", N_STSYM, N_LCSYM, N_ROSYM): Grope around in the stab string + to distinguish relocatable from absolute symbols. Then, if not + absolute, do: + (", N_STSYM, N_DSLINE): SECT_OFF_DATA. + (", N_LCSYM, N_BSLINE): SECT_OFF_BSS. + (", N_ROSYM): SECT_OFF_RODATA. + (elfstab_build_psymtabs): Caller has allocated dbx_symfile_info. + (dbx_symfile_offsets): Add to translate addr to offset. + * dwarfread.c: Conforming changes. Single offset currently used. + * elfread.c: Add various complaints about elf/stab stuff. + #include gdb-stabs.h. Conforming changes, using a single offset. + (elf_symtab_read): Record info from BSF_FILE symbols, and local + variables called "Bbss.bss", "Ddata.data", and "Drodata.rodata", + for later use in building psymtabs. + (elf_symfile_read): Allocate dbx_symfile_info here, to keep + the info collected in elf_symtab_read. Cleanup calls free_elfinfo. + (free_elfinfo): New fn, frees all chained stab_section_infos + in an objfile, and zaps the start-of-chain pointer. + (elfstab_offset_sections): New fn, looks in stab_section_info + chain to determine section bases to relocate a psymtab's worth + of symbols, as they are being read. + * mipsread.c: Conforming changes. Stabs-reading will relocate + using one offset. MIPS-reading will not relocate at all. + * partial-stab.h: Relocate different symbol types using different + offsets from section_offsets. + * symfile.c: Conforming changes. + (find_lowest_section): Unused function to use later + to free us from the Tyranny of the Text Section. + (syms_from_objfile): Translate absolute arg ADDR to offsets used + in all lower layers of symbol reading. Call format-specific + sym_offsets function to initialize offsets for high speed symbol + reading. + (symbol_file_add): Call reinit_frame_cache so callers don't have to. + (symbol_file_command, add_symbol_file_command): Callers changed. + * symmisc.c (dump_psymtab): Print new relocation parameters. + * xcoffread.c: Corresponding changes. + + * buildsym.c: Tidy innerblock_complaint and blockvector_complaint. + * main.c (main): Read the $HOME/.gdbinit file before processing + the argv arguments (e.g. reading symbol files or core + files). This allows global parameters to be set, which will apply + during the symbol reading. The ./.gdbinit is still read after + argv processing. + * symtab.c (list_symbols): `i variables' shouldn't show enum values. + * xcoffexec.c: Clean up quote inside comment. + +Fri Jul 3 20:18:26 1992 Fred Fish (fnf@cygnus.com) + + * breakpoint.c, buildsym.c, c-exp.y, coffread.c, command.c, + core.c, cplus-dem.c, dbxread.c, dwarfread.c, elfread.c, environ.c, + eval.c, findvar.c, gdbtypes.c, hppabsd-tdep.c, hppahpux-tdep.c, + i386-tdep.c, ieee-float.c, infcmd.c, inflow.c, infptrace.c, + infrun.c, m2-exp.y, mipsread.c, objfiles.c, parse.c, procfs.c, + putenv.c, remote-mm.c, remote-vx.c, solib.c, sparc-tdep.c, + sparc-xdep.c, stack.c, symfile.c, symtab.c, symtab.h, target.c, + tm-i386v.h, tm-sparc.h, utils.c, valarith.c, valops.c, valprint.c, + values.c, xcoffread.c: + Remove "(void)" casts from function calls where the return value + is ignored, in accordance with GNU coding standards. + +Fri Jul 3 00:00:49 1992 John Gilmore (gnu at cygnus.com) + + * dbxread.c (process_one_symbol): Ignore N_MAIN, N_ENDM for Solaris. + * partial-stab.h: Ignore N_ENDM. + * elfread.c (elf_symtab_read): Ignore symbols that don't have a + CODE or DATA section attachment. This eliminates a lot of random + values from shared libraries, which screw up the ordinary symbols + in the address ranges they happen to overlap. + * buildsym.c (define_symbol): Eliminate special tests + for function types; move into "function" cases in switch statement. + (define_symbol: 'f', 'F', 'P'): Process all parameter types + in case they define new type numbers. But ignore them (FIXME). + ('k', 'B'): Ignore const and volatile if we see them (FIXME). + (read_sun_builtin_type): Add commentary. + +Wed Jul 1 00:47:02 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * xm-rs6000.h: define MEM_FNS_DECLARED + +Tue Jun 30 02:25:10 1992 John Gilmore (gnu at cygnus.com) + + * tm-mips.h (GDB_TARGET_IS_MIPS): Define for mips-xdep.c. + (READ_MIPS_FORMAT, COFF_FORMAT): Remove, unused now. + * mips-xdep.c: Remove most include files (unused, caused errs). + (fetch_core_registers): Use right parameters in dummy fn. + +Mon Jun 29 18:30:57 1992 John Gilmore (gnu at cygnus.com) + + * buildsym.c (scan_file_globals): Beware the null file. + Fix from Jim Williams. + + * stack.c (return_command): Evaluate expression *before* popping + off the stack frames! Fix inspired by Jim Williams. + (up_silently_command, down_silently_command): No sel frame is error. + + * defs.h (memcpy, memset): Conditionalize decls on + #ifndef MEM_FNS_DECLARED, since DECstation differs. + (alloca): Break out the STDC and non-STDC alloca cases, to make + it work on old preprocessors as well as "picky ANSI" ones. + * xm-mips.h (memcpy, memset): Declare, and set MEM_FNS_DECLARED. + + * mips-tdep.c (heuristic_proc_start): Zero arg produces zero. + * utils.c (fputs_demangled): Rename SLOP since DECstation system + header files define it! + + * tm-29k.h (BREAKPOINT): Allow it to be overridden with -D. + +Mon Jun 29 16:30:25 1992 Fred Fish (fnf@cygnus.com) + + * dbxread.c, i386-pinsn.c, i386-tdep.c, regex.c, solib.c, symmisc.c, + symtab.h, tm-i386v4.h, valprint.c, values.c: Lint. + * breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c, + findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c, + putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h, + utils.c, valarith.c, valops.c, valprint.c, values.c: + Replace bcopy() use with memcpy(), which is more standard and can + take advantage of gcc's builtin functions for increased performance. + * breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c, + ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h, + target.c, values.c: + Replace bzero() use with memset(), which is more standard and can + take advantage of gcc's builtin functions for increased performance. + * i386-tdep.c, main.c, valprint.c: + Replace bcmp() use with memcmp(), which is more standard and can + take advantage of gcc's builtin functions for increased performance. + +Sun Jun 28 13:30:22 1992 Fred Fish (fnf@cygnus.com) + + * remote.c (remote_wait): Fix cast on signal() call. + * defs.h (alloca): More diddling with alloca. Have to ensure + that it has a prototype, so that if alloca is defined as a macro + that takes an arg, the definition is seen as a use of a macro + that takes an arg, to satisfy picky ANSI preprocessors. + +Sat Jun 27 12:12:20 1992 Fred Fish (fnf@cygnus.com) + + * sparc-pinsn.c: Use rather than "string.h", for + consistency with all other gdb files. + * cadillac.c: Use rather than . + * cadillac.c (kernel_dispatch): Convert rindex usage to strrchr. + * Makefile.in (MAKE): Remove definition for consistency with + other Makefile.in files and to fix problem with recursive makes. + +Fri Jun 26 19:03:23 1992 John Gilmore (gnu at cygnus.com) + + * hppahpux-xdep.c (child_xfer_memory): Avoid PT_WDUSER because it + crashes H-PUX. + +Fri Jun 26 11:09:10 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * source.c (print_source_lines): for DOS interoperability; don't + print CR (013) as ^M. + +Thu Jun 25 15:18:42 1992 Stu Grossman (grossman at cygnus.com) + + * dbxread.c (dbx_symfile_init): Move more code under hp9000s800 + conditional. + * hppabsd-core.c: Don't include "param.h", include + instead. + * remote.c (remote_wait): Cast signal to void * to avoid warning + from busted HP compiler. + + * partial-stab.h (N_SO): Rearrange code a little so that all SO + stabs cause end_psymtab to be called. + + * buildsym.c (read_sun_builtin_type): Handle new FCS Sun CC + compiler feature of putting 'c' into basic type descriptors for + all forms of char. + + * procfs.c (child_resume): Work around Solaris (on Sparc) lossage + where there is no place for nPC in prrun struct. + +Thu Jun 25 12:06:00 1992 Fred Fish (fnf@cygnus.com) + + * mipsread.c: Pass NULL name pointer to init_type, not 0. + * gdbtypes.c (init_type): Use copy of typename on type_obstack. + * dwarfread.c (enum_type): Save enum names on type_obstack. + * dwarfread.c (struct_type): Save member name on type_obstack. + * symtab.c (_initialize_symtab): Fix misspelling. + * regex.c (store_jump, insert_jump): Return void. + +Thu Jun 25 04:00:10 1992 John Gilmore (gnu at cygnus.com) + + * defs.h (PARAMS): Move to ../include/ansidecl.h. + (alloca): Declare return type on SPARC, since Sun doesn't. + (*_BYTE_ORDER): Improve comment: *must* be defined. + + * tm-hppa.h: New file, architectural definition of HP PA. + * tm-hppabsd.h, tm-hppahpux.h: Shrink to deltas from tm-hppa.h. + + * am29k-pinsn.c, am29k-tdep.c, copying.awk, copying.c, + hppa-coredep.c, hppa-pinsn.c, hppabsd-core.c, hppabsd-tdep.c, + hppabsd-xdep.c, hppahpux-tdep.c, hppahpux-xdep.c, remote-udi.c, + ser-go32.c, xcoffsolib.c: Remove which is already in + "defs.h". + + * hppa-coredep.c, hppa-pinsn.c, hppabsd-core.c, hppabsd-tdep.c, + hppabsd-xdep.c, hppahpux-tdep.c, hppahpux-xdep.c, xcoffsolib.c, + xcoffsolib.h, xm-go32.h, xm-hppabsd.h, xm-hppahpux.h: Copyrights. + +Wed Jun 24 12:53:20 1992 John Gilmore (gnu at cygnus.com) + + * printcmd.c (output_command): Thinko. + (x_command): Only set remembered size/format if cmd succeeds. + + * dbxread.c (read_ofile_symtab): Remove N_CATCH special case, + since it is no longer used and burns time for every symbol read. + (process_one_symbol): Treat N_CATCH like default (complain). + +Wed Jun 24 00:26:56 1992 Stu Grossman (grossman at cygnus.com) + + * partial-stab.h (case N_TEXT): Fix fencepost error when + detecting start of new symbol info after reading symtab for a + module with a zero length TEXT segment. + +Tue Jun 23 21:46:26 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.5.6. + * coffread.c (coff_end_symtab): Cast 2nd arg of complain() to + correct type. + * defs.h (NORETURN): Define away for Lucid compiler. + * remote.c (remote_timer, remote_interrupt): Signal handlers + take one int arg. + * ser-termios.c (serial_write, serial_close): Return whatever + value the write/close call returns, rather than falling off end. + * inferior.h (PTRACE_ARG3_TYPE): Third arg to ptrace is int on + more systems than it is "char *". Define PTRACE_ARG3_TYPE to + default to int. + * infptrace.c, hppabsd-xdep.c, hppahpux-xdep.c, i386-xdep.c, + inferior.h (call_ptrace): Use PTRACE_ARG3_TYPE to declare type + of third arg. + * a68v-xdep.c, arm-xdep.c, convex-xdep.c, hp300ux-xdep.c, infrun.c, + m88k-xdep.c, mach386-xdep.c, mips-xdep.c, os68k-xdep.c, pyr-tdep.c, + pyr-xdep.c, rs6000-xdep.c, sparc-xdep.c, sun3-xdep.c, sun386-xdep.c, + symm-xdep.c, ultra3-xdep.c: Use PTRACE_ARG3_TYPE to cast ptrace + argument 3. + * sparc-xdep.c, a68v-xdep.c (fetch_inferior_registers, + store_inferior_registers): Supply missing fourth argument to + ptrace(). + * cadillac.c (kernel_dispatch): Make return type void. + * cadillac.c (iosig): Signal handlers take one int arg. + * valprint.c (val_print_fields): Call fprint_symbol to get + automatic C++ demangling for mangled field names. + +Mon Jun 22 20:18:06 1992 Fred Fish (fnf@cygnus.com) + + * command.c (add_abbrev_prefix_cmd): Fix misspelling in comment. + * dwarfread.c (enum_type): Fix misspelling in comment. + * valprint.c (val_print_fields, cplus_val_print): Minor + adjustment to printing of C++ class structures to more closely + match format for printing C structures, with and without setting + pretty print. + +Mon Jun 22 17:19:02 1992 Per Bothner (bothner@cygnus.com) + + * infrun.c (wait_for_inferior): Don't test for SIGEMT + (which is not a Posix signal) if it isn't defined. + * tm-linux.h, xm-linux.h, config/linux.m[ht], configure.in: + New port to Linux (a free Unix clone for 386 machines). + +Sat Jun 20 19:19:52 1992 John Gilmore (gnu at cygnus.com) + + COFF changes for dealing better with EPI 29K C compiler output. + + * coffread.c (record_minimal_symbol): Pass the minsym type to it. + Callers changed. + (coff_end_symtab): Sort blocks if needed. Complain if misordered. + (read_coff_symtab): Move patch_opaque_types call from + coff_symfile_read. Restrict it to symtabs from this objfile. + (process_coff_symbol: C_TPDEF): Don't put ordinary foward + references on opaque type chain; just let coff_lookup_type handle 'em. + (decode_type): Complain about tagndx values on + non-struct/union/enum types, which the EPI compiler tends to produce. + + * symtab.c (list_symbols): Make minimal symbol variable-finding work. + + * tm-68k.h (FIX_CALL_DUMMY): Avoid alignment and byte order + dependency. + + * elfread.c (elf_symfile_read): Update bfd_elf_find_section + usage to match new prototype. Include libbfd.h to get prototype. + + * source.c (find_source_lines): Handle large st_size fields. + +Sat Jun 20 16:28:39 1992 Fred Fish (fnf@cygnus.com) + + * infcmd.c (jump_command): Use cleanups to avoid memory leaks. + * stack.c (return_command): Use cleanups to avoid memory leaks. + +Fri Jun 19 19:06:41 1992 John Gilmore (gnu at cygnus.com) + + * remote-adapt.c, remote-eb.c, remote-mm.c: Lint. Fix + INT_REGNUM to INTE_REGNUM. + + * tm-29k.h (SDB_REG_TO_REGNUM): Add for EPI 29K C compiler. + +Fri Jun 19 15:30:15 1992 Stu Grossman (grossman at cygnus.com) + + * configure.in, dbxread.c, hppa-coredep.c, hppa-pinsn.c, + hppabsd-core.c, hppabsd-tdep.c, hppabsd-xdep.c, hppahpux-tdep.c, + hppahpux-xdep.c, munch, partial-stab.h, tm-hppabsd.h, + tm-hppahpux.h, xm-hppabsd.h, xm-hppahpux.h: HPPA merge. + + * Makefile.in (c-exp.tab.c, m2-exp.tab.c): Filter out bogus extern + declarations of malloc/realloc/free that are inserted by some + versions of yacc. + * m2-exp.y: Prevent conflicts with TRUE and FALSE tokens by + #undeffing them. + * xm-rs6000.h: Declare malloc/realloc/free appropriately. Yet + another decl of strdup (this really ought to come from libiberty.h!). + +Fri Jun 19 10:28:05 1992 John Gilmore (gnu at cygnus.com) + + * remote.c (getpkt): Error if input exceeds buffer size. + (_initialize_remote): `set remotedebug' enables packet trace. + + * dbxread.c (process_one_symbol:N_FUN): GCC now produces relative + N_SLINE's, etc, just like Sun cc on Solaris2. + + * am29k-tdep.c (read_register_stack, write_register_stack): + Change RSTACK_HIGH_ADDR to rstack_high_address, a user-settable + variable. Add `set' and `show' commands for it. + * doc/gdb.texinfo: Document it. + +Thu Jun 18 19:35:22 1992 Fred Fish (fnf@cygnus.com) + + * valprint.c (type_print_1): Plug memory leak. Print all + C++ syms as demangled, not just functions. + * buildsym.c (read_range_type): When we find a signed char + type, do a lookup of signed char, not plain char. Plain char's + still get looked up as plain char's elsewhere. + +Thu Jun 18 18:59:04 1992 John Gilmore (gnu at cygnus.com) + + * eval.c: Avoid residue-by-zero when evaluating without side effects. + (Bug and fix found by Pierre Willard.) + +Wed Jun 17 13:08:33 1992 Stu Grossman (grossman at cygnus.com) + + * xm-rs6000.h: Fix decls for malloc, realloc, and free. + + * xm-rs6000.h: Add decl for strdup(). + + * tm-rs6000.h: Remove #include of inferior.h. Fixes many + compilation errors. + + * breakpoint.c (enable_command, disable_command): Without args, + should only affect normal breakpoints and watchpoints. + + * m68k-pinsn.c (print_insn_arg): Make register be const. + * xcoffexec.c: Remove ' from comment. + * xm-sun3os4.h: Define MALLOC_INCOMPATIBLE to avoid conflicts + with decls of malloc in c-exp.tab.c (as produced by yacc). + There's got to be a better way to do this... + +Wed Jun 17 11:10:40 1992 Fred Fish (fnf@cygnus.com) + + * partial-stab.h: Convert single rindex use to strrchr. + * mipsread.c, dbxread.c: Remove troublesome inclusion of non- + standard file, now that the only single use of + rindex in the gdb source files is gone. + +Tue Jun 16 22:17:49 1992 Fred Fish (fnf@cygnus.com) + + * mipsread.c: Undo ill effects from including , + which #defines index to be strchr. Unfortunately, index is + a member of a symbol table structure that can't be changed. + * mipsread.c: tm-mips.h includes coff/symconst.h and coff/sym.h, + remove redundant #include's. + +Tue Jun 16 14:15:51 1992 Stu Grossman (grossman at cygnus.com) + + * mipsread.c: #include for rindex(). + +Tue Jun 16 09:01:49 1992 Fred Fish (fnf@cygnus.com) + + * xcoffexec.c (map_vmap): Turn comment into a real C comment. + +Mon Jun 15 18:41:23 1992 Stu Grossman (grossman at cygnus.com) + + * dbxread.c (process_one_symbol), partial-stab.h: Ignore + extraneous SO stabs from busted C++ compilers. + +Mon Jun 15 12:21:45 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.5.5. + * symtab.c (decode_line_1): Until C++ support stabilizes, when + C++ lookups fail, print possibly helpful hint about completion. + * cplus-dem.c (demangle_signature): Fix ARM style demangling + for static data members. + * dbxread.c (dbx_psymtab_to_symtab_1): Fix prototype. + * config/ncr3000.mh (INSTALL): Don't use /usr/ucb/install, + it's broken on ncr3000's. + +Mon Jun 15 07:21:00 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (decode_modified_type): Change type of first arg. + Change 'modifier' to char from unsigned char. Cast single use + that needs to be unsigned char. + * symtab.h (SYMBOL_BASEREG_VALID): Explain disabling. + * utils.c (strdup_demangled): Add function. + * defs.h (strdup_demangled): Add prototype. + * stack.c (return_command): Demangle C++ function names for query. + * infcmd.c (jump_command): Demangle C++ function names for query. + * cplus-dem.c (consume_count): New function and prototype. + * cplus-dem.c (demangle_class, gnu_special, demangle_func_type, + do_type): Replace conversion code with consume_count(). + * cplus-dem.c (gnu_special): Fix demangled of static members. + * source.c (list_command): Print demangled function names + when appropriate. Fix supplied by Peter Schauer. + +Mon Jun 15 01:45:48 1992 John Gilmore (gnu at cygnus.com) + + * sparc-tdep.c: Clean up slightly for Solaris2. + + * buildsym.c (define_symbol): Nameless types are now on several + platforms; generalize them and un-ifdef them to make Solaris 2 + work. + +Sun Jun 14 10:55:51 1992 John Gilmore (gnu at cygnus.com) + + * infcmd.c: Fix typo (reported by Rob Savoye). + * xm-sun4sol2.h (gregset_t): Thinko in register set definition. + * symtab.h: Disable SYMBOL_BASEREG_VALID until it works. + * dbxread.c (dbx_psymtab_to_symtab_1): Renamed from + psymtab_to_symtab_1. Use current psymtab's sym_offset and symbol_size, + rather than the one for the first file in the dependency chain. + + * dbxread.c (end_psymtab): Only reset texthigh if it's not already + set. Don't reset our own texthigh, or dependency-only pst's, in + scanning all the rest of the psymtabs. + (process_one_symbol): Fix comments around N_OBJ, N_OPT, N_UNDF. + + * buildsym.h (N_UNDF): Improve comments. + (N_LSYM, etc): Skip types without names (":T(0,3)=sfoob..."). + +Sat Jun 13 11:16:45 1992 Fred Fish (fnf at cygnus.com) + + * symtab.h (struct symbol): Add aux_value union for preserving + an additional per-symbol value. + * symtab.h (SYMBOL_BASEREG, SYMBOL_BASEREG_VALID): Add defines. + * frame.h (FRAME_GET_BASEREG_VALUE): Provide default definition. + * findvar.c (read_var_value): Use SYMBOL_BASEREG if valid. + * printcmd.c (address_info): Use SYMBOL_BASEREG if valid. + * symmisc.c (print_symbol): Use SYMBOL_BASEREG if valid. + +Sat Jun 13 09:18:46 1992 Michael Tiemann (tiemann@rtl.cygnus.com) + + * symfile.c (clear_symtab_users_once): Now non-static (for + objfiles.c). + +Fri Jun 12 18:54:40 1992 John Gilmore (gnu at cygnus.com) + + * arm-pinsn.c, i960-pinsn.c, m68k-pinsn.c, mips-pinsn.c, + ns32k-pinsn.c, pyr-pinsn.c, sparc-pinsn.c, tahoe-pinsn.c, + vax-pinsn.c: Remove reg_names decl (now in defs.h). + + Solaris-2 support on SPARC: + + * dbxread.c: Add symbol_size to struct dbx_symfile_info. + Add symbol_size and file offsets to struct symloc. + Add static symbol_table_offset, string_table_offset, + file_string_table_offset, next_file_string_table_offset, + last_function_name. + (add_old_header_file): Convert error() to complain()t. + (dbx_symfile_read): Get symbol size via the objfile. + Also get symbol_table_offset. + (dbx_symfile_init): Record symbol size and count via the objfile. + (dbx_next_symbol_text): Always add file_string_table_offset when + accessing string table. + (read_dbx_symtab): Initialize file_string_table_offset to 0. + (SET_NAMESTRING): Use the offset. + (end_psymtab): Large kludge to determine addresses where source + files start and end (for the psymtab header). + (psymtab_to_symtab_1): Set file_string_table_offset before reading. + Get this, symbol size, and symbol offset, from psymtab. + (read_ofile_symtab): Don't back up one symbol for Solaris2. + Patch up last_source_start_addr if zero in N_SO. + (process_one_symbol): Add variable function_start_offset. + ( "", N_FUN, N_LBRAC, N_RBRAC, N_SLINE): Add ifdef for + BLOCK_ADDRESS_FUNCTION_RELATIVE. + ( "", N_OBJ, N_OPT): Ignore. + (elfstab_build_psymtabs): New function to read stabs out of + an ELF file. + + * Makefile.in: Accept $(BISON) even though we really want $(YACC). + (gdb): use GLOBAL_CFLAGS when linking, too. + * partial-stab.h (N_UNDF): Deal with Sol2 relative stringtab offsets. + (N_OBJ, N_OPT): Ignore. + ('f', 'F'): Save last function name. + + * elfread.c (record_minimal_symbol_and_info): Kludged to put + extra info in the minimal symbol. + (elf_symtab_read): The extra info is the size of an ELF object, + which was kludged to us in the `udata' field of the BFD symbol. + Gag me with a crowbar... + (elf_symfile_read): Keep track of both the absolute load address, + and the offset between load addr and symbols. Handle STABS as + well as DWARF sections, passing the absolute load address to + elfstab_build_psymtabs. + + * symfile.h: Prototype elfstab_build_psymtabs. + * symfile.c: Add almost-OK debug versions of add_psymbol_*to_list. + + * xm-sysv4.h: Add to avoid conflicting defns in defs.h. + + * buildsym.h: Add processing_acc_compilation flag. + * buildsym.c (read_sun_builtin_type, read_sun_floating_type): New. + (define_symbol): Skip arg types in function entries. Resolve + overloaded 'P' which acc uses for prototypes of functions called + by this file. + (read_type: 'b', 'r'): Handle Solaris2 builtin types. + + * minsyms.c (prim_record_minimal_symbol_and_info): Hack to + save size of ELF symbols. FIXME. + * tm-sun4os5.h: Rename to tm-sun4sol2.h. Update defines for Sol2. + * xm-sun4os5.h: Rename to xm-sun4sol2.h. Hack more defines. + + * configure.in: Solaris config is sparc-sun-solaris2. + * config/sun4os5.m[ht]: Rename to config/sun4sol2.m[ht]; new xm, tm. + + * objfiles.c (free_objfile): Eliminate storage leaks. Contributed + by . + * symfile.c (symfile_bfd_open): Comment where name is freed. + * symmisc.c (extend_psymbol_list): Comment where list is freed. + +Fri Jun 12 08:24:36 1992 Fred Fish (fnf at cygnus.com) + + * expprint.c (print_subexp): Add missing ']'. + * defs.h (reg_names): Fix declaration to match that in infcmd.c + * stack.c (reg_names): Delete redundant (and inconsistent) decl. + * WHATS.NEW: Point out improved C++ function name handling. + * gdbtypes.c (lookup_fundamental_type): For now, use the same + type names for both implicitly and explicitly signed integral + types. See comment in the source code. + +Thu Jun 11 12:31:50 1992 John Gilmore (gnu at cygnus.com) + + Two `long long' fixes from Robert R. Henry (rrh@dino.tera.com): + * defs.h (longest_to_int): Avoid void arm of ?: in error case. + * expprint.c (print_subexp): Fix printing of register names. + +Thu Jun 11 01:33:40 1992 John Gilmore (gnu at cygnus.com) + + * inferior.h (register_valid): Declare. + * remote-udi.c, rs6000-xdep.c, sparc-xdep.c, tm-rs6000.h: Remove decl. + * objfiles.h (ALL_OBJFILE_{SYMTABS,PSYMTABS,MSYMBOLS}): Add + macros for traversing the data structures in a single objfile. + * tm-m88k.h, tm-sparc.h (REGISTER_NAMES): Remove extra semicolon. + * tm-i960.h (REGISTER_NAMES): Cosmetic change. + * infcmd.c: Lint. + +Tue Jun 9 17:19:45 1992 Fred Fish (fnf at cygnus.com) + + * c-exp.y, m2-exp.y: Move remapping defines for malloc and + realloc. Add remapping defines for {yyss, yyssp, yyvs, yyvsp}. + * config/{amix.mh, i386v4.mh, ncr3000.mh, stratus.mh, + sun4os5.mh}: Add definition for INSTALL using /usr/ucb/install. + +Tue Jun 9 16:29:19 1992 Stu Grossman (grossman at cygnus.com) + + * depend: rebuild to account for remote-st2000.c. + * remote-st2000.c: Almost works now. + * tm-st2000.h: Need to turn on HAVE_68881, else things won't compile. + +Mon Jun 8 23:05:51 1992 Fred Fish (fnf@cygnus.com) + + * c-exp.y (yylex): Recognize single-quoted strings that specify + tokens with embedded whitespace, such as C++ demangled names. + * defs.h (demangle_and_match, strcmp_iw, skip_quoted): Prototypes. + * main.c (gdb_completer_quote_characters): Add global variable. + * main.c (symbol_completion_function): Total rewrite for C++ + demangled name handling. + * main.c (skip_quoted): New function. + * main.c (main): Set rl_completer_quote_characters. + * symmisc.c (dump_symtab): Print source language for symtab. + * symtab.c (expensive_mangler): Add prototype and function. + * symtab.c (completion_list_add_symbol): Total rewrite for new + C++ demangled name handling. + * symtab.c (lookup_symbol): Check for demangled C++ symbol first, + other changes for demangled C++ symbol handling. + * symtab.c (lookup_demangled_block_symbol): Use demangle_and_match. + * symtab.c (lookup_demangled_partial_symbol): Use demangle_and_match. + * symtab.c (decode_line_1): Recognize C++ demangled names on input. + * symtab.c (completion_list_add_symbol): Total rewrite for new + C++ demangled name handling. + * symtab.c (expensive_mangler): New function. + * utils.c (strcmp_iw, demangle_and_match): New functions. + * xcoffread.c (aixcoff_symfile_read): Fix prototype. + +Mon Jun 8 21:59:08 1992 John Gilmore (gnu at cygnus.com) + + * Makefile.in: Roll VERSION to 4.5.4. + * Makefile.in, config/*.mh, config/*.mt: Rename TM_CFLAGS + to MT_CFLAGS, XM_CFLAGS to MH_CFLAGS to match file names. + * config/sun4os5.mh: Add MH_CFLAGS=-xs to save debug info. + +Mon Jun 8 14:17:42 1992 Stu Grossman (grossman at cygnus.com) + + * alldeps.mak: Rebuild to account for new files. + * config/st2000.mt: Use tm-st2000.h, not tm-68k.h. + * tm-st2000.h: New file. + * configure.in: Tandem debug monitor (st2000) support. + * remote-st2000.c, config/st2000.mt: ditto. + +Fri Jun 5 11:51:01 1992 John Gilmore (gnu at cygnus.com) + + * blockframe.c (inside_entry_file, inside_main_func, + inside_entry_func): Return 0 if no symbols; avoid crashing. + +Wed Jun 3 17:48:04 1992 John Gilmore (gnu@cygnus.com) + + * xcoffread.c (read_xcoff_symtab): Set c_sclass from n_sclass + without masking, since it is signed and will later be compared + against signed quantities. The right fix is probably to make + it all unsigned, but this is a small, safe fix for this release. + FIXME -- make the real change sometime soon. + +Mon Jun 1 16:16:12 1992 Michael Tiemann (tiemann@cygnus.com) + + * remote-vx.c (vx_load_command,add_symbol_stub): Default READNOW + parameter in call to `symbol_file_add' to 0. + + * xm-sun4os4.h (MALLOC_INCOMPATIBLE): Define it. + +Sun May 31 06:38:27 1992 Michael Tiemann (tiemann@cygnus.com) + + * configure.in: Handle -m680[01234]0-wrs. + +Fri May 29 22:16:02 1992 Michael Tiemann (tiemann@rtl.cygnus.com) + + * m68k-pinsn.c (print_insn_arg): Pass &EXT_FORMAT_68881 to + `ieee_extended_to_double'. + +Wed May 27 09:27:57 1992 John Gilmore (gnu at cygnus.com) + + * valops.c (value_assign): Lint, by Pierre Willard. + +Tue May 19 19:38:10 1992 John Gilmore (gnu at cygnus.com) + + * coredep.c (fetch_core_registers): Remove premature warning, + which triggers on DECstation even though all regs are accessible. + + * m68k-pinsn.c (print_insn_arg): Use new macros to get + sign-extension of instruction fields even on unsigned-char hosts. + Bug found by Fred J Roeber, fjr@sgfb.ssd.ray.com. + + 88K changes inspired by Ted Lemon (uunet!lupine!mellon): + * tm-m88k.h, tm-umax.h: Avoid sizeof() in REGISTER_xxx macros, + since they define the target, not the host. + * m88k-pinsn.c: Fix typo. + +Thu May 14 01:16:48 1992 John Gilmore (gnu at cygnus.com) + + * valarith.c (value_zerop): -0.0 is still zero. + * eval.c (evaluate_subexp): Avoid NaN anomalies in float compares. + Patches by Paul Eggert . + +Mon May 18 13:53:51 1992 Stu Grossman (grossman at cygnus.com) + + * alldeps.mak, depend: re-make to account for ser-*.c. + +Sun May 17 16:51:20 1992 Fred Fish (fnf@cygnus.com) + + * inflow.c (new_tty): Temporarily ignore SIGTTOU when + disconnecting from controlling terminal, to avoid gdb hanging + on SVR4. Fixes bug reported by Oliver Okrongli. + * procfs.c (PROC_NAME_FMT): Change format to match default used + by system, as suggested by Oliver Okrongli. + * tm-68k.h (FRAME_FIND_SAVED_REGS): Apply missing parentheses + bug fix from Brent Townshend (bst%tt@cam.ORG). + * c-exp.y (nonempty_typelist): Fix memory overrun bug reported + by turlais@rechser.total.fr. + * dwarfread.c (decode_subscr_data): Fix bug in calculation of + length of non-zero lowerbound arrays. Bug fix from Peggy Fieland. + * objfiles.h (unlink_objfile): Add prototype. + * objfiles.c (unlink_objfile): Add function. + * objfiles.c (free_objfile): Call unlink_objfile. + * objfiles.c (allocate_objfile): Call unlink_objfile on newly + remapped objfiles. Bug reported by hahn@sunshine.labs.tek.com. + Also, discard old possibly bogus sf struct. + * symfile.c (symbol_file_add): Call init_entry_point_info() and + find_sym_fns() for remapped symbol files, in case of any changes + since the last mapping. + +Wed May 13 18:28:20 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * findvar.c (read_relative_register_raw_bytes): use the raw size + of a register to bcopy, rather than the host's sizeof(CORE_ADDR). + +Tue May 12 17:44:39 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + Changes to support GDB running on DOS using GO32 and H8 support + + * defs.h: if xm.h doesn't define FOPEN_RB, include "fopen-same.h", + allowing hosts with different text and binary file formats to + work. + * coffread.c (read_coff_symtab): changed calling convention and + operation - now it opens its own file with FOPEN_RB rather than + duping and fdopening the provided handle. + * dbxread.c, cplus-dem.c: #include mangling. + * exec.c: If O_BINARY isn't defined, set it to 0, call openp for + binary files oring in the right bit. + * utils.c, terminal.h, inflow.c: hackery because dos doesn't have terminals. + * remote-hms.c: cleanup to use the new remote serial stuff + * serial.h, ser-termios.c, ser-go32.c: newfiles to provide host + independent remote terminal I/O. + * remote.c: if DONT_USE_REMOTE not defined, then don't use it. + * source.c (openp): fix off by one problem removing / - can now + open a source file in the root directory with DOS. + * values.c (value_as_pointer): remove bogus address bits from + long. (unpack_long): unpack into unsigned long/short if pointer. + +Tue May 12 14:15:48 1992 Stu Grossman (grossman at cygnus.com) + + * infrun.c (child_attach): Don't allow gdb to attach to itself. + It gets permanently stuck in many OSes. + * breakpoint.c, infcmd.c, infrun.c, utils.c: Change many printfs + to printf_filtered. + * breakpoint.c: Improve help text for info breakpoints. + +Mon May 11 14:17:18 1992 John Gilmore (gnu at cygnus.com) + + * README: Add pointer to internals doc, and describe reading + info files. + * utils.c (print_sys_errmsg): Use stderr. Reported by Pierre Willard. + * symtab.c (output_source_filename): Remove old glop for wrapping + lines, use wrap_here. Reported by Pierre Willard (pierre@la.tce.com). + +Thu May 7 11:45:03 1992 John Gilmore (gnu at cygnus.com) + + * Makefile.in: version.c should depend on Makefile, not Makefile.in. + * munch: Add sort -u to avoid duplications. + * symtab.c (lookup_symbol): Improve Stu's fix of 22 April. + Improved fix by hahn@sunshine.labs.tek.com (Doug Hahn). + +Mon May 11 13:27:46 1992 Fred Fish (fnf@cygnus.com) + + * cplus-dem.c (demangle_signature): Recognize misplaced '_' to + avoid infinite loops while demangling bogus mangled names. + * valprint.c (type_print_base): Minor fix for GNU style guide + conformance. + +Sat May 9 18:02:17 1992 Fred Fish (fnf at fishpond) + + * Makefile.in (VERSION): Bump to 4.5.3 + * Makefile.in (DEMANGLE_OPTS): Remove obsolete -Dnounderscore + * Makefile.in (demangle): New target to create standalone + demangler with same code and options as internal demangler. + * cplus-dem.c: Massive restructuring, rewriting, cleanups, etc + to support ARM style and Lucid style demangling, improve + maintainability, fix several demangling bugs. More changes + to follow. + * defs.h (strstr): Add ANSI compatible prototype. + * valprint.c (type_print_1): Demangle using ansi option. + * config/ncr3000.mt (DEMANGLE_OPTS): Remove -Dnounderscore. + +Sat May 9 14:47:28 1992 Stu Grossman (grossman at cygnus.com) + + * xcoffexec.c (vmap_exec): Don't assume .text and .data are the + first two sections. + +Fri May 8 11:42:15 1992 Per Bothner (bothner@rtl.cygnus.com) + + * mipsread.c (parse_procedure): Return rather than using + uninitialized variable 'b'. + +Fri May 8 07:48:27 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in, remote-udi.c, remote-vx.c, 29k-share/dfe/mini2udi.c, + 29k-share/dfe/yank.c, vx-share/xdr_ptrace.c, vx-share/xdr_regs.c: + Remove -I29k-share, -Ivx-share from Makefile.in. Make #includes + relative to each source file. + +Fri May 8 07:48:27 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: propogate INSTALL, INSTALL_DATA, INSTALL_PROGRAM on + recursions. + +Thu May 7 10:00:52 1992 Stu Grossman (grossman at cygnus.com) + + * am29k-pinsn.c: Use new opcode table in "opcode/a29k.h". + * am29k-tdep.c: Update to latest code from AMD. + (get_saved_register) don't crap out if no frame. + * remote-udi.c: Set/clear inferior_pid as appropriate. + (udi_open) call target_preopen, don't close fd 0!!!, clean up + error handling. Fixup end-of-debugging messages. + (udi_fetch_registers) clean up big time, mainly don't multiply + register_valid indices by 4, and use proper Offset when reading + gr96-gr127. (udi_store_registers) general cleanup. + (fetch_register) cleanup, simplify. (regnum_to_srnum) + INT_REGNUM->INTE_REGNUM. + * tm-29k.h: Upgrade to latest code from AMD. + * 29k-share/udi/udip2soc.c: Get rid of useless errmsg_m macro. + (UDIConnect) Clean up error processing (like, don't do exit() if + execlp fails), make code restartable, make more attractive. + (UDIStop) Use SIGINT instead of SIGUSR1, as isstip won't stop + otherwise. + +Wed May 6 14:34:18 1992 Per Bothner (bothner@rtl.cygnus.com) + + * tm-irix3.h: Re-define CPLUS_MARKER to '.'. + * xm-rs6000.h, tm-rs6000.h: Move re-definition of CPLUS_MARKER + from former to latter. + +Wed May 6 14:12:35 1992 Fred Fish (fnf@cygnus.com) + + * cplus-dem.c (do_args): Handle void args the same as others. + * objfiles.c (free_objfile): Only try to unmap files when + reusable objfiles are supported. + * valprint.c (type_print_varspec_suffix): Add parameter that + specifies if C++ demangling included function arguments. Use + it to suppress printing extra pair of ()'s. + * valprint.c (type_print_1): Fix problem with printing demangled + C++ function types where demangled type includes the function + args. + +Tue May 5 11:10:27 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (DEMANGLER): Define and default to cplus-dem. + Allows selection of C++ demangler to be a configuration option + until multiple demanglers are supported. + * demangle.h: New include file for extended demangler support. + * breakpoint.c, gdbtypes.c, printcmd.c, stack.c, symtab.c, + utils.c, valprint.c: Include "demangle.h" and change all calls + to cplus_demangle() or fputs_demangled() to use individual + demangling options. + * valprint.c (type_print_1): Change options to cplus_demangle + to print demangled function args. Still broken, but now less so. + * cplus-dem.c: Include demangle.h, reorganize and update some + comments to reflect reality. + * cplus-dem.c (cplus_demangle, cplus_mangle_opname): Change + second arg from fixed integer to bit based multiple options. + * cplus-dem.c (optable): Reformat and replace ansi members with + bit based options. + * cplus-dem.c (do_type): Fix bug with parsing missing return type. + +Mon May 4 22:26:59 1992 John Gilmore (gnu at cygnus.com) + + * values.c (set_internalvar): Force evaluation of lazy values. + Bug reported by RMS. + +Sun May 3 15:47:45 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.5.2. + * Makefile.in (DEMANGLE_OPTS): Add, default to -Dnounderscore. + * configure.in: Simplify ncr3000 gdb_host logic, add gdb_target. + * dwarfread.c (struct_type): Apply fix from Peggy Fieland for + proper handling of bit fields. + * gdbtypes.h (struct type): Clarify use of field.bitpos. + * symtab.h: Fix couple of misspellings in comments. + * value.h (struct value): Clarify use of bitpos. + * value.h (unpack_field_as_long): Change prototype, returns + LONGEST. + * values.c (unpack_field_as_long): Change return type to LONGEST, + sign extend unpacked fields that are signed, other rewriting. + * config/ncr3000.mt: New target config file. + +Fri May 1 01:53:26 1992 John Gilmore (gnu at cygnus.com) + + * utils.c (printchar): Print 0x7F and 0x80-0x9F in \nnn notation + even when printing 8-bit characters. + + * gdbtypes.c (make_{reference,pointer,function}_type): New + functions which handle overwriting of forward-referenced types + for stabs file reading. + (lookup_{reference,pointer,function}_type): These just call + the make_*_type functions with a null storage alloc parameter. + * gdbtypes.h (make_{reference,pointer,function}_type): Declare. + * xcoffread.c (smash_to_pointer_type): Remove, no longer used. + + * buildsym.c (dbx_lookup_type): Zero result for (-1,-1) arg. + (dbx_alloc_type): Make it easier to understand. No funct change. + (define_symbol: 't'): Don't put the typedef name into the name of + the struct, union, or enum. Bugfix. + (read_type: '*', '&', 'f'): Add comments. Use make_XXX_type + routines to properly handle overwriting preallocated types so that + forward references will work. + (read_enum_type): Force enum values to file scope, due to bug in + Sun compiler output. FIXME, fix later. + + Remove unused header_file_prev_index mechanism. It was already + obsolete in gdb-3.5. These comments appeared in 3.5: + /* This code was used before I knew about the instance codes. + My first hypothesis is that it is not necessary now + that instance codes are handled. */ + * dbxread.c (add_new_header_file): Remove header_file_prev_index. + * buildsym.h: Remove it and prev_index that saves it. + * buildsym.c (push_subfile, pop_subfile, start_symtab): Remove it. + + * solib.c (special_symbol_handling): When called from core files, + must set up debug_addr. Don't print error messages, just return. + * symmisc.c (print_symbol): Less ascii diarrhea for enums, please. + +Wed Apr 29 15:26:51 1992 Per Bothner (bothner@rtl.cygnus.com) + + * cplus-dem.c: Allow nested class names (as in + Foo::Bar::method()). + Allow the cleaner cfront style of nested class names + (Q2_3Foo3Bar as well as Q23Foo3Bar). + Make cplus_demangle re-entrant by removing use of global + variables. Instead, place all shared variables in a + stack-allocated structure, and pass around its address. + +Fri Apr 24 07:41:19 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (make-proto-gdb-1): 1st cut at packaging + 29k-share/* subdirs... + + * remote-udi.c (udi_insert/remove_breakpoint): Completely + rewrite, only leave out the bugs. + + * Makefile.in: Add 29k/UDI support. Improve depend. + * alldeps.mak, configure.in, depend: Add 29k/UDI support. + + * am29k-tdep.c: Update to use new calling conventions, and misc + symbol elements. + + * m68k-pinsn.c (print_insn_arg): Make branch offsets be signed. + +Thu Apr 23 18:43:17 1992 Fred Fish (fnf@cygnus.com) + + * tm-29k.h: Set DECR_PC_AFTER_BREAK to 0, as 29ks have nice + breakpoint instructions that leave PC pointing at the right place. + + * core.c (core_open): Call warning() to print warnings. + +Wed Apr 22 09:55:42 1992 Stu Grossman (grossman at cygnus.com) + + * symtab.c (lookup_symbol): Need to check if msymbol->name is + NULL, as ALL_MSYMBOLS will never return a NULL msymbol pointer. + This prevents a crash when trying to lookup the value of a + non-existent symbol. + +Wed Apr 22 09:42:15 1992 Fred Fish (fnf@cygnus.com) + + * signame.c, signame.h: Remove, replaced by strsignal.c in + libiberty. + * i960-tdep.c, infrun.c, mach386-xdep.c, procfs.c, sparc-tdep.c, + sun386-xdep.c: Remove include of signame.h + * Makefile.in (SFILES_MAINDIR): Remove signame.c + * Makefile.in (HFILES): Remove signame.h + * Makefile.in (OBS): Remove signame.o + * defs.h (safe_strerror, safe_strsignal, strerrno, strsigno, + errno_max, signo_max, strtoerrno, strtosigno, strsignal, + psignal, perror): Add prototypes. + * defs.h, xm-apollo68v.h, xm-ultra3.h (SYS_SIGLIST_MISSING): + Remove define. + * depend: Manually remove signame.[cho] references. + * convex-tdep.c (subsig_name): Replace use of sys_siglist with + strsignal. + * convex-xdep.c (core_file_command): Replace use of sys_siglist + with safe_strsignal. + * core.c (core_open): Replace use of sys_siglist with + safe_strsignal. + * core.c (memory_error): Replace use of sys_errlist with + safe_strerror. + * i960-tdep.c (print_fault): Replace use of sys_siglist with + safe_strsignal. + * infcmd.c (program_info): Replace use of sys_siglist with + safe_strsignal. + * infrun.c (signal_stop, signal_print, signal_program): + Allocate dynamically based on dynamic determination of number + of signals to support. + * infrun.c (child_create_inferior): Replace use of sys_errlist + with safe_strerror. + * infrun.c (wait_for_inferior): Replace use of sys_siglist with + safe_strsignal. + * infrun.c (sig_print_info): Replace use of sig_abbrev with + strsigno and sys_siglist with safe_strsignal. + * infrun.c (handle_command): Call signo_max to find number of + signals. Replace sig_number with strtosigno and sig_abbrev with + strsigno. + * infrun.c (signals_info): Replace sig_number with strtosigno. + * infrun.c (_initialize_infrun): Call signo_max to find number of + signals. Dynamically allocate signal_{stop,print,program}. + * procfs.c (errno_table): Remove, now in libiberty/strerror.c. + * procfs.c (errnoname): Add function and prototype. + * procfs.c (info_proc_siginfo): Call errnoname, replace use + of sys_siglist with safe_strsignal. + * procfs.c (info_proc_stop, info_proc_signals): Replace use of + sys_siglist with safe_strsignal. + * procfs.c (info_proc_stop): Call errnoname. + * procfs.c (signalname): Replace sig_abbrev with strsigno. + * stuff.c (main, get_offset): Replace use of sys_errlist with + strerror. + * sun386-xdep.c (core_file_command): Replace use of sys_siglist + with safe_strsignal. + * umax-xdep.c (core_file_command): Replace use of sys_siglist + with safe_strsignal. + * utils.c (safe_strerror, safe_strsignal): Add functions that + call strerror and strsignal respectively, and deal with NULL + returns. + * utils.c (perror_with_name, print_sys_errmsg): Replace use of + sys_errlist with safe_strerror. + * valprint.c (val_print): Replace use of sys_errlist with + safe_strerror. + +Tue Apr 21 12:00:47 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: rework CFLAGS so that they can be set from the + command line to make. CFLAGS -> INTERNAL_CFLAGS. + USER_CFLAGS -> CFLAGS. Remove MINUS_G. Default CFLAGS to -g. + Pass CFLAGS on recusions. + +Fri Apr 17 19:25:57 1992 Fred Fish (fnf@cygnus.com) + + * gdbtypes.h, c-exp.y, m2-exp.y, mipsread.c, gdbtypes.c: Back + out of change on 4/14/92 and remove TYPE_FLAG_FUND_TYPE. It was + overkill for the problem it solved. + * valprint.c (type_print_base): Remove TYPE_FLAG_FUND_TYPE test + and default to simply printing type names as appropriate. + * main.c (main): Remove one of the leading newlines from + warning_pre_print initialization. + * objfiles.c (open_existing_mapped_file): Add function and + prototype. + * objfiles.c (open_mapped_file): Rewrite to use new function + open_existing_mapped_file. + +Thu Apr 16 23:50:12 1992 John Gilmore (gnu at cygnus.com) + + * sun3-xdep.c (fetch_core_registers): Lint. + * tm-sun3.h: Prototype lint. + * value.h: Typo. + +Thu Apr 16 19:56:50 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (TARGET_FT_POINTER_SIZE, TARGET_FT_LONG_SIZE): + Define using TARGET_PTR_BIT and TARGET_LONG_BIT for now. + * objfiles.c: Cast calls to close() with unused returns to void. + * objfiles.c (allocate_objfile): Initialize objfile's mmfd, free + old objfile's name before updating it. + * objfiles.c (free_objfile): Major rewrite for mapped objfiles. + * objfiles.h (objfile struct): Add mmfd member. + * symfile.c (syms_from_objfile): Move some code to + new_symfile_objfile. + * symfile.c (new_symfile_objfile): Add new function, common code + from syms_from_objfile. + * symfile.c (symbol_file_add): Call new_symfile_objfile for both + mapped and unmapped symbol files. + * symfile.c (symbol_file_command): Print "No symbol file now" + message, ala exec_file_command for the exec file. + * symfile.h (new_symfile_objfile): Add prototype. + * xcoffexec.c (map_vmap): Add call to new_symfile_objfile. + * xcoffsolib.c (solib_add): Add call to new_symfile_objfile. + +Thu Apr 16 18:26:34 1992 Per Bothner (bothner@cygnus.com) + + * rs6000-pinsn.c: New version from IBM (Metin). + * m2-exp.y: Re-write string initializers ("<>" => {'<', '>'}) + to avoid warnings from some compilers. + +Tue Apr 14 22:33:55 1992 Fred Fish (fnf@cygnus.com) + + * gdbtypes.h (FT_FIXED_DECIMAL, FT_FLOAT_DECIMAL): Add defines. + * gdbtypes.h (TYPE_FLAG_FUND_TYPE): Add define for bit in a + type's flag word that marks it as a fundamental type. + * c-exp.y (_initialize_c_exp): Add TYPE_FLAG_FUND_TYPE bit to + flags argument for all calls to init_type(). + * m2-exp.y (_initialize_m2_exp): Add TYPE_FLAG_FUND_TYPE bit to + flags argument for all calls to init_type(). Also remove + dependency on host sizes for ints, floats, etc. + * mipsread.c (_initialize_mipsread): Add TYPE_FLAG_FUND_TYPE bit to + flags argument for all calls to init_type(). Also remove + dependency on host sizes for ints, floats, etc. + * gdbtypes.c (lookup_fundamental_type): Add TYPE_FLAG_FUND_TYPE + bit to flags argument for all calls to init_type(). Add types + FT_FIXED_DECIMAL and FT_FLOAT_DECIMAL. + * valprint.c (unsigned_type_table, signed_type_table, + float_type_table): Remove. + * valprint.c (type_print_base): Test new TYPE_FLAG_FUND_TYPE + bit when printing fundamental types, and print the actual name + for such types, rather than inventing one. Remove code that + invented fundamental type names. + * valprint.c (_initialize_valprint): Remove initializations + for now removed unsigned_type_table, signed_type_table, and + float_type_table. + +Tue Apr 14 14:30:46 1992 Stu Grossman (grossman at cygnus.com) + + * remote-vx.c, vx-share/xdr_ptrace.c, vx-share/xdr_ptrace.h, + vx-share/xdr_rdb.h: Update for new remote protocol under VxWorks + 5.0.2. + +Mon Apr 13 20:59:21 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (target_to_host): New function similar to previous + swapin function. + * dwarfread.c (SWAPIN, swapin): Remove macro and support function. + Extensive changes to convert all previous usages to use new + target_to_host() function. + * dwarfread.c (struct dieinfo): Change types of most integral + members to be unsigned. + +Mon Apr 13 15:59:10 1992 John Gilmore (gnu at cygnus.com) + + * WHATS.NEW: Revise -mapped doc. + +Sat Apr 11 23:14:36 1992 John Gilmore (gnu at cygnus.com) + + * mipsread.c (parse_partial_symbols): Complain when sh->index is + too high or when skipping `forwards' moves us backwards. + (parse_type): Print mis-guessed tag name in complaint. + (parse_external): Eliminate cur_stab and obscure top_stack clobbers. + (parse_procedure): Do not attempt to create symbols; just fill in + the SYMBOL_VALUE field of a .gdbinfo. symbol if we can find one. + (psymtab_to_symtab_1): Split up `stabs' from `native ecoff' code + for clarity. Set top_stack before calling parse_external. In + stabs, sort symbols before calling parse_procedure. + * mipsread.c: Lint. + * symmisc.c (std_in, std_out, std_err): Add vars to access std + FILE *'s when debugging GDB (e.g. as args to dump_symtab). + * Makefile.in: Remove stage* targets. Avoid echo on recursive + makes. Eliminate doc/Makefile from tar.Z file if doc/Makefile.in + exists. + +Fri Apr 10 23:47:37 1992 John Gilmore (gnu at cygnus.com) + + * Makefile.in (VERSION): Set to 4.5.1. + * xcoffread.c (NO_TYPEDEFS): Fix typo in commented-out #define. + * sparc-tdep.c (supply_gregset, fill_gregset, supply_fpregset, + fill_gregset): New functions for SVR4 /proc support. + * mipsread.c: Cleanup. Add more complaints for unhandled cases. + Remove new symbol types and such to ../include/coff/symconst.h. + (parse_symbol): Simplify code for parsing struct/enum/unions. + (parse_type): Handle `long long' types. + (upgrade_type): Handle `const' qualifier. + (parse_partial_symbols): fix indentation, clean a bit. + +Fri Apr 10 22:41:03 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (SWAPIN,swapin): New macro and function to call to + copy in data from raw read buffers, calling bfd byteswapping + routines as appropriate. Use to replace most existing memcpy + calls. + * dwarfread.c (basicdieinfo, completedieinfo): Add objfile arg. + * configure.in: Recognize new ncr3000 config. + * config/ncr3000.mh: New config file. + +Fri Apr 10 08:30:58 1992 Stu Grossman (grossman at cygnus.com) + + GDB-4.5 release! + + * README: Update for release. + * Makefile.in: Update version to 4.5. + * WHATS.NEW: The obvious. + + * depend: Generate new depend file for this release. + + * Makefile.in (depend): Fix dependancy generation so that it does + not include gcc 'fixincluded' files, which are usually in a system + specific location. + +Thu Apr 9 13:35:00 1992 Per Bothner (bothner@rtl.cygnus.com) + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik). + * buildsym.c (#ifdef RS6000_TARGET): Don't create unnecessary + symbols for nameless types. And, handle `R' (register parameter + type) for AIX. (an extension to existing stabstring grammar). + * rs6000-xdep.c: Fix typo (= should have been ==). + +Thu Apr 9 12:10:06 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: version=4.4.88, add xm-vax.h to HFILES. + +Thu Apr 9 02:29:03 1992 John Gilmore (gnu at cygnus.com) + + * xm-sun4os5.h (DO_DEFERRED_STORES, CLEAR_DEFERRED_STORES): Zap. + * signame.c (SIGWAITING, SIGLWP): Add. + +Tue Apr 7 16:34:07 1992 Per Bothner (bothner@cygnus.com) + + * xm-i386mach.h: add decls for errno and strdup(). + + * breakpoint.c (breakpoint_1): Add (int) casts for enums + used in array index context (otherwise, some compilers barf). + +Tue Apr 7 08:45:46 1992 Stu Grossman (grossman at cygnus.com) + + * m68k-tdep.c, tm-sun3.h: #ifdef around get_longjmp_target(). + Change def of SAVED_PC_AFTER_CALL to call routine to see if we are + in a system call, and provide better backtrace if so. + + * Makefile.in (HFILES): Add xcoffsolib.h. + * rs6k-opcode.h: Move to ../include/opcode/rs6k.h. + * rs6000-pinsn.c: #include "opcode/rs6k.h" + + * mipsread.c (read_mips_symtab, read_the_mips_symtab, + mipscoff_symfile_read): Convert to BFD to do file I/O. + + * symfile.c: #include to get proper def if isspace(). + + * i386-tdep.c (get_longjmp_target): #ifdef GET_LONGJMP_TARGET. + +Mon Apr 6 17:25:45 1992 Per Bothner (bothner@cygnus.com) + + * mipsread.c: Create a .gdbinfo pseudo-symbol for each + function also when parsing embedded stabs. + +Mon Apr 6 15:25:03 1992 Stu Grossman (grossman at cygnus.com) + + * mipsread.c: Fix more declarations. + + * mipsread.c: Fix many invocations of complain. Use enum + type_code where appropriate. + + * xm-vaxult.h: Add decl for strdup(). + + * Makefile.in: Add dependancies for xm-vaxbsd.h and xm-vaxult.h + for xm-vax.h. + +Fri Apr 3 17:41:29 1992 Stu Grossman (grossman at cygnus.com) + + * buildsym.h, dbxread.c, mipsread.c: Add objfile arg to + process_one_symbol. + +Fri Apr 3 12:17:14 1992 Per Bothner (bothner@cygnus.com) + + * munch: Must pre-pend "_" to "initialize" for SYSV style nm. + * tm-rs6000.h, xcoffexec.c, xcoffread.c, xm-rs6000.h: + Merge in more patches for rs6000 from Metin Ozisik. + * utils.c: Fix typo in comment. + +Fri Apr 3 11:23:03 1992 Fred Fish (fnf@cygnus.com) + + * procfs.c (procinfo struct): Add nopass_next_sigstop member. + * procfs.c (attach): Set nopass_next_sigstop if attached + process is forcibly stopped. + * procfs.c (child_resume): Use nopass_next_sigstop to suppress + resending SIGSTOP to attached process on first resume. + +Fri Apr 3 01:37:26 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (SFILES_MAINDIR): add mipsread.c + +Thu Apr 2 20:20:54 1992 John Gilmore (gnu at cygnus.com) + + * Makefile.in (OBS): Compile mipsread.c for all targets now. + (VERSION): Bump to 4.4.85. + * mipsread.c: Update for new include files. Lint. + * tm-irix3.h, tm-mips.h: Use new include files for ECOFF symtab. + * config/{bigmips.mt, littlemips.mt, irix3.mt, decstation.mt}: + Don't need to bring in mipsread.o specially any more. + +Thu Apr 2 19:38:31 1992 Stu Grossman (grossman at cygnus.com) + + * mipsread.c (fixup_sigtramp): Also look for _sigtramp as a real + routine (for Irix-4.x). Make many funcs static and void. + * mips-tdep.c (mips-frame-chain): Clean up, simplify. + * (init_extra_frame_info): Don't trash cached value of frame + pointer register. This fixes backtracing through routines that use + alloca(). Generally clean up declarations of functions, and use + typedefs and macros to reference data structures as appropriate. + * tm-irix3.h, tm-mips.h (EXTRA_FRAME_INFO): use proper type for + proc_desc element. + +Thu Apr 2 09:47:11 1992 Fred Fish (fnf@cygnus.com) + + * values.c (unpack_long): Fix unpacking error for signed chars + on hosts where the default character type is unsigned. + * procfs.c (pr_flag_table, pr_why_table): Add some entries + for newer SVR4 variants. + * procfs.c (proc_set_exec_trap): Reorder tests for ioctl's that + turn off trace inherit-on-fork flag to favor latest SVR4 method. + * procfs.c (mappingflags): Add support for MA_PHYS + +Thu Apr 2 00:55:56 1992 John Gilmore (gnu at cygnus.com) + + * buildsym.c (read_struct_type): Avoid coredump when C++ + abbreviated type name is messed up. Reported by Joe Buck. + FIXME, we need to determine whether GDB or GCC needs to be + smarter to correctly locate this type name. + + * c-exp.y, coffread.c, command.c, command.h, copying.awk, + dbxread.c, gdbtypes.c, infcmd.c, inferior.h, infrun.c, + m2-exp.y, printcmd.c, remote.c, solib.c, source.c, stack.c, + symtab.c, tm-sun4os4.h, tm-sun4os5.h, values.c: Lint. + * symfile.c (add_symbol_file_command): Initialize mapped/readnow. + +Wed Apr 1 11:39:52 1992 Fred Fish (fnf@cygnus.com) + + * breakpoint.h (bpdisp, bptype): Remove trailing comma. + * symtab.h (current_source_symtab): Make extern + * symtab.h (current_source_line): Make extern + * inferior.h: Move all procfs.c prototypes to one place, add + prototype for proc_signal_handling_change. Add prototypes for + signal_stop_state, signal_print_state, and signal_pass_state. + * inferior.h (stop_soon_quietly): Make extern + * inferior.h (attach_flag): Make extern + * infrun.c (NOTICE_SIGNAL_HANDLING_CHANGE): Default is null. + * infrun.c (signal_stop_state, signal_print_state, + signal_pass_state): New functions to query specific signal + handling flags. + * infrun.c (handle_command): Minor error message change, add + NOTICE_SIGNAL_HANDLING_CHANGE. + * procfs.c (open_proc_file): Remove iris specific reset of + inherit-on-fork flag, moved to proc_set_exec_trap(). + * procfs.c (proc_set_exec_trap): Add SVR4 and iris code + to reset inherit-on-fork flag, bash comment to GNU form. + * procfs.c (proc_base_address, set_proc_siginfo, + fetch_core_registers): Conform to code style. + * procfs.c (signame.h): Include. + * procfs.c (MAX_SYSCALLS, syscall_table[], init_syscalltable(), + syscallname(), info_proc_syscalls()): New macros, tables, and + functions to organize and report system call information. + * procfs.c (saved_fltset, saved_trace, saved_sighold, + saved_exitset, saved_entryset): Add to procinfo struct. + * procfs.c (struct trans): Add. + * procfs.c (pr_flag_table, pr_why_table, faults_table, + siginfo_table, errno_table): Tables to translate numeric values + to symbolic names and short descriptions. + * procfs.c (signalname, info_proc_signals): Add function and + prototype. + * procfs.c (proc_info): Now info_proc. + * procfs.c (proc_info_address_map): Now info_proc_mappings. + * procfs.c (info_proc_flags, info_proc_stop, info_proc_siginfo, + info_proc_faults, lookupname, lookupdesc, sigcodename, + sigcodedesc): New functions. + * procfs.c (proc_signal_handling_change): New function to set + the trace flags based on the state of gdb's signal handling flags. + * procfs.c (inferior_proc_init): Call proc_signal_handling_change + and remove code to do PIOCSTRACE ioctl. + * procfs.c (attach, detach): Preserve and restore process flags + using saved_* fields in procinfo struct. + * procfs.c (attach): Call proc_signal_handling_change. + * procfs.c (info_proc): Major rework to expand "info proc" cmd. + * procfs.c (proc_desc): Update for latest changes. + * xm-irix4.h (CREATE_INFERIOR_HOOK): Protect by USE_PROC_FS. + * xm-irix4.h (NOTICE_SIGNAL_HANDLING_CHANGE): Add definition. + * xm-sysv4.h (NOTICE_SIGNAL_HANDLING_CHANGE): Add definition. + +Tue Mar 31 18:38:28 1992 Fred Fish (fnf@cygnus.com) + + * procfs.c (set_proc_siginfo): Add prototype and new function. + * procfs.c (detach, child_resume): Call set_proc_siginfo to set + up inferior siginfo struct. + * elfread.c (elf_symfile_read): Compute the relocation amount + by subtracting off the address of the ".text" section. + * solib.c: Add pointer to ".text" section to so_list struct. + * solib.c (solib_map_sections): Initialize pointer to ".text" + section in so_list struct. + * solib.c (symbol_add_stub): Pass base address of ".text" + section to symbol_file_add, rather than the load address of + the shared library. On SunOS they are the same. On SVR4 they + are not. + +Tue Mar 31 17:48:15 1992 Stu Grossman (grossman at cygnus.com) + + * mipsread.c (parse_procedure): PDR.isym should get pointer to + function name, not .gdbinfo. symbol. + +Tue Mar 31 17:05:04 1992 John Gilmore (gnu at cygnus.com) + + * breakpoint.c (breakpoint_1): Fix prototype, this time for sure! + +Tue Mar 31 11:01:06 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (VERSION): 4.4.8 + + * procfs.c (open_proc_file): Disable inherit-on-fork flag so that + commands in .cshrc/.profile won't get traced. + +Tue Mar 31 08:11:58 1992 John Gilmore (gnu at cygnus.com) + + * elfread.c (elf_symtab_read): Use xmalloc, not bfd_xmalloc. + * exec.c (build_section_table): Don't abort if no sections. + * sparc-tdep.c (single_step): Lint. + * utils.c (mrealloc): Handle realloc (0, size) case here. + +Mon Mar 30 16:50:43 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (alldeps.mak): Config files are now *.m[ht] as + opposed to m[ht]-*! + + * config/irix4.mh: Don't use coredep.o. It doesn't work with procfs. + + * mipsread.c (parse_symbol, parse_procedure): Re-do the way that + .gdbinfo. symbols are created. Move creation from parse_procedure + to parse_symbol, where it is fairly easy to grow the symtab. This + also fixes a symtab trashing bug on all mips-based systems. + * (got_numargs, lookup_numargs, free_numargs): Delete. Not + needed anymore. + * tm-mips.h, tm-iris3.h, mips-tdep.c, mipsread.c: Re-do struct + mips_extra_func_info, and all the PROC_xxx macros that look at it. + +Mon Mar 30 14:17:53 1992 Per Bothner (bothner@cygnus.com) + + * c-exp.y: Add missing return type to yyparse() prototype. + +Sat Mar 28 22:22:06 1992 John Gilmore (gnu at cygnus.com) + + Create and use macros for iterating on symtabs, psymtabs, msymbols. + + * minsyms.c (iterate_over_msymbols): Remove; clunky and slow. + * symfile.h, symtab.h (iterate_over_msymbols): Remove prototype + * coffread.c (coff_symfile_read): iterate_over_symtabs => ALL_SYMTABS. + (patch_opaque_types): Avoid dummy args and result. + * objfiles.c (have_partial_symbols, have_full_symbols, + have_minimal_symbols): explicit iteration => ALL_OBJFILES; simplify. + (iterate_over_objfiles, iterate_over_symtabs, + iterate_over_psymtabs): Remove, clunky and slow. + * objfiles.h: Replace iterate_over_* prototypes with ALL_SYMTABS, + ALL_PSYMTABS, and ALL_MSYMBOLS macros. + * symmisc.c (dump_symtab, dump_psymtab, dump_msymbols, + dump_objfile): Remove dummy args and results. Move filename + comparisons to callers. + (printsyms_command, printpsyms_command, printmsyms_command, + printobjfiles_command): iterate_over_* => ALL_*. Compare filenames. + * symtab.c (lookup_symtab_1, lookup_symtab, lookup_partial_symtab, + lookup_symbol, find_main_psymtab, find_pc_symtab, sources_info, + list_symbols, make_symbol_completion_list): Replace explicit + iteration with ALL_SYMTABS, ALL_PSYMTABS, or ALL_MSYMBOLS. + Eliminate Dijkstra flag crap, break out of loops with gotos. + (lookup_symtab_1): Protect '/' tests from short filenames. + (cplus_mangled_symbol): Move inline into lookup_symbol. + * xcoffexec.c (relocate_objfile_msymbols): Remove poor hack. + (relocate_minimal_symbol): Move inline to vmap_symtab. + (vmap_symtab): Replace iteration with ALL_OBJFILES, + iterate_over_msymbols with ALL_MSYMBOLS. + + Misc cleanup prior to release. + + * Makefile.in (VERSION): Roll to 4.4.7. + (HFILES): Add call-cmds.h. + * call-cmds.h: New header for command fns called by other files. + * breakpoint.c (watchpoints_info): Remove, same as breakpoints_info. + (breakpoint_1): Remove unused type arg. Change callers. + + * dwarfread.c (dwarf_build_psymtabs): Remove mainline test. + * mipsread.c (compare_symtabs, compare_psymtabs): Remove, unused. + * mipsread.c: Add prototypes for all static functions. + + * symmisc.c (dump_symtab_lines, dump_symtabs, dump_last_symtab, + dump_blockvector, dump_block, dump_addrchass, dump_namespace, + dump_symbol, dump_type, dump_linetable, dump_strtbl): Remove, unused. + * xcoffread.c (dump_symtab_lines, dump_symtabs, dump_last_symtab, + dump_blockvector, dump_block, dump_addrchass, dump_namespace, + dump_symbol, dump_type, dump_linetable, dump_strtbl): Remove 2nd + unused copy! + + * buildsym.c (define_symbol): Handle global register variables + (from Pierre Willard). Complain if register numbers are too large. + * target.c (nomemory): Now that higher levels examine errno, give EIO. + * tm-sparc.h: Don't #include . + * sparc-tdep.c (sparc_frame_chain, frame_saved_pc): Remove + dependency on . Start to handle cross-byte-order. + + * language.h: Avoid forward enum declaration. + * configure.in, tm-sun4os5.h, xm-sun4os5.h, config/sun4os5.mh, + config/sun4os5.mt: New host and target. + * defs.h (errno): #include rather than assuming int. + From Pierre Willard. + + * breakpoint.c, breakpoint.h, buildsym.c, coffread.c, cplus-dem.c, + dbxread.c, dwarfread.c, elfread.c, infcmd.c, infrun.c, inftarg.c, + language.c, main.c, mem-break.c, mips-tdep.c, mipsread.c, + partial-stab.h, remote.c, saber.suppress, symfile.c, symtab.c, + valops.c, valprint.c, xcoffread.c, c-exp.y, m2-exp.y, blockframe.c, + command.c, core.c, exec.c, gdbtypes.h, parse.c, printcmd.c, solib.c, + sparc-xdep.c, utils.c, value.h, values.c: Lint. + +Sat Mar 28 02:43:26 1992 John Gilmore (gnu at cygnus.com) + + * buildsym.c (read_range_type): Avoid int overflow by using unsigned. + * dbxread.c (dbx_symfile_init): Remove bogus `lvalue cast'. + * language.h (enum exp_opcode): Avoid forward enum def. + * main.c (define_command, user_defined_command): Lint. + * mem-break.c, xcoffread.c: Lint. + * solib.c: Only #include on SunOS, not SVR4. + +Sun Mar 29 14:16:22 1992 Per Bothner (bothner@cygnus.com) + + * Merged in latest RS6000 diffs from Metin G. Ozisik. + * xcoffsolib.c, xcoffsolib.h: New files, from Metin. + * Various files: Changed #ifdef IBM6000 to IBM6000_HOST + or IBM6000_TARGET as (approximately) appropriate. + +Sat Mar 28 13:00:10 1992 Fred Fish (fnf@cygnus.com) + + * objfiles.h (OBJF_SYMS): Define flag bit for objfile flags. + * symfile.c (symbol_file_add): Use OBJF_SYMS to decide whether + or not to try reading symbols from a mapped objfile. Plugs memory + leak due to shared libraries generating no psymtabs or symtabs. + +Fri Mar 27 15:44:55 1992 John Gilmore (gnu at cygnus.com) + + * buildsym.c (MAX_OF_C_TYPE, MIN_OF_C_TYPE): Unused, remove. + * copying.awk: Lint. Make stronger warning at top of copying.c. + * elfread.c (elf_symtab_read): Eliminate check of mainline. + * gdbtypes.c (smash_to_*): Remove FIXME comments. + (lookup_pointer_type): Add FIXME comment. + * main.c (set_history_size_command): Disallow negative size. + * partial-stab.h: Update copyright. + * rs6000-tdep.c (skip_trampoline_code): Better comments. + +Wed Mar 25 10:45:38 1992 John Gilmore (gnu at cygnus.com) + + * main.c (set_history_size_command): Negative size is error. + (Reported by Peggy Fieland.) + +Thu Mar 26 17:01:18 1992 Fred Fish (fnf@cygnus.com) + + * coffread.c (coff_symfile_init): Update comment. + * dbxread.c (DBX_SYMFILE_INFO, DBX_TEXT_SECT, DBX_SYMCOUNT, + DBX_STRINGTAB, DBX_STRINGTAB_SIZE, DBX_SYMTAB_OFFSET): Define + macros to access the dbx specific objfile information. + * dbxread.c (symfile_string_table, symfile_string_table_size): + Remove these local variables. + * dbxread.c (read_ofile_symtab, psymtab_to_symtab_1, + read_dbx_symtab): Remove the stringtab and stringtab_size params + from the function prototypes, the function definition, and the + function calls. These are now available via DBX_STRINGTAB and + DBX_STRINGTAB_SIZE using the objfile pointer. + * dbxread.c (dbx_symfile_read): Relocate addr before using as + an arg to read_dbx_symtab. + * dbxread.c (dbx_symfile_read): Remove code that free'd the + stringtab and the dbx specific per-objfile private info. + * dbxread.c (init_psymbol_list): Remove symbol count from passed + args in prototype, function definition, and function calls. It is + now available via the DBX_SYMCOUNT macro using the objfile + pointer. + * dbxread.c (dbx_symfile_read, dbx_symfile_init): Remove the + local instance of struct dbx_symfile_info and replace with DBX_* + macros. + * dbxread.c (dbx_symfile_read): Remove init's of now deleted + symfile_string_table and symfile_string_table_size. + * dbxread.c (dbx_symfile_finish): Remove now obsolete free of + symfile_string_table. + * dbxread.c (init_psymbol_list): Use DBX_SYMCOUNT. + * dbxread.c (dbx_psymtab_to_symtab): Remove local stringtab and + stringtab size variables. Remove all code that used to reread + the stringtab. + * objfiles.c (allocate_objfile): Move calls to init_malloc() + to prior to any calls to mmalloc for the objfile specific heap. + * utils.c (init_malloc): Document the requirement that for each + heap for which corruption checking is desired, that init_mmalloc + must be called prior to any mmalloc calls on the heap. + +Thu Mar 26 13:20:06 1992 Per Bothner (bothner@cygnus.com) + + * rs6000-pinsn.c: Make dis-assembly output more like + other targets: Don't print instruction in hex before + the assembly; use print_address to print out jump + destinations. + +Wed Mar 25 16:52:35 1992 Per Bothner (bothner@cygnus.com) + + * c-exp.y, gdbtypes.h: Add builtin_type_signed_char. + * cplus-dem.c: Support "Sc" meaning "signed char". + +Wed Mar 25 15:21:44 1992 Stu Grossman (grossman at cygnus.com) + + * configure.in: fix iris/iris3. + +Wed Mar 25 14:55:48 1992 Per Bothner (bothner@cygnus.com) + + * command.c, main.c (various places): Use ctype.h macros + (such as isupper(x)), instead of hard-wiring in ASCII-isms + (such as (x >= 'A' && x <= 'Z')). + (There are still more of these in other files.) + * main.c (defined_command): Lower-case the user's + new command before entering it. Needed because + command lookup is case-insensitive (and also lower-cases). + (Based on Metin's earlier patch.) + +Tue Mar 24 23:27:01 1992 K. Richard Pixley (rich@cygnus.com) + + * config/irix4.mh: new file. + +Tue Mar 24 14:17:48 1992 Stu Grossman (grossman@cygnus.com) + + * infcmd.c (step_1): Call disable_longjmp_breakpoint at the right + time. + + * xm-mips.h: Declare strdup for ultrix. + + * mipsread.c (fixup_sigtramp): Make sure that current_objfile is setup + when calling new_symbol. + * mips-tdep.c (mips_frame_chain): Use symfile_objfile instead of + current_objfile. + +Tue Mar 24 13:26:25 1992 Per Bothner (bothner@rtl.cygnus.com) + + * config/rs6000.mh: Update (for Fred's new mmalloc) + flags to disable use of GNU malloc/mmalloc. + * munch: Change SYSV rule to allow .text before the label, + as well as after, to work for AIX. + * gdbtypes.h: Minor clarifiction. + +Tue Mar 24 07:26:19 1992 Michael Tiemann (tiemann@cygnus.com) + + * buildsym.c (read_struct_type): Handle cretinous dbx symbol name + continuation in yet another place (between method declarations). + +Mon Mar 23 23:01:41 1992 Stu Grossman (grossman at cygnus.com) + + * mips-tdep.c: include symfile.h and objfiles.h to fix + compilation errors. + +Mon Mar 23 15:49:14 1992 Per Bothner (bothner@cygnus.com) + + * valops.c (value_struct_elt_for_reference): Added 'offset' + parameter to handle multiple inheritance. + * eval.c, value.h: Update accordingly. + +Fri Mar 20 17:43:27 1992 Fred Fish (fnf@cygnus.com) + + * objfiles.h: New file + * Makefile.in (HFILES): Add objfiles.h + * blockframe.c: Remove entry_scope_lowpc, entry_scope_highpc, + main_scope_lowpc, main_scope_highpc. + * blockframe.c, buildsym.c, coffread.c, dbxread.c, dwarfread.c, + elfread.c, gdbtypes.h, minsyms.c, mipsread.c, objfiles.c, solib.c, + source.c, symfile.c, symmisc.c, symtab.c, target.c, xcoffexec.c, + xcoffread.c, : Include objfiles.h. + * tm-29k.h, tm-i386v.h, tm-merlin.h, tm-rs6000.h, tm-sun386.h, + tm-symmetry.h, tm-tahoe.h, tm-umax.h, tm-vax.h, m88k-tdep.c, + mips-tdep.c (FRAME_CHAIN): Renamed outside_startup_file to + inside_entry_file() and logic changed appropriately. + * blockframe.c (outside_startup_file): Renamed to + inside_entry_file() and logic changed appropriately. + * blockframe.c (inside_main_scope): Renamed to inside_main_func() + and logic changed to use per-objfile specific fields. + * blockframe.c (inside_entry_scope): Renamed to + inside_entry_func() and logic changed to use per-objfile specific + fields. + * blockframe.c, buildsym.h, coffread.c, dwarfread.c, mipsread.c, + symfile.c, mips-tdep.c (startup_file_start, startup_file_end): + Remove extern decls. + * symfile.c, symfile.h (entry_point): Remove extern decl. + * coffread.c (coff_symfile_init): Common entry point init code + moved to symfiles.c, call init_entry_point_info(). + * coffread.c (complete_symtab): Use new per-objfile entry info. + * mip-tdep.c (mips_frame_chain): Use new per-objfile entry info. + * mipsread.c (parse_partial_symbols): Use new per-objfile entry + info. + * dbxread.c (read_dbx_symtab): Use new per-objfile entry info. + * defs.h (inside_entry_scope, outside_startup_file, + inside_main_scope): Prototypes changed for renames to + inside_entry_func, inside_entry_file, inside_main_func, + respectively. + * symfile.c (syms_from_objfile): Common entry point init code + moved to init_entry_point_info() and call init_entry_point_info(). + * symfile.h (init_entry_point_info): Include prototype. + * xcoffread.c (aixcoff_symfile_init): Common entry point init code + moved to symfiles.c and call init_entry_point_info(). + * dwarfread.c (entry_scope_lowpc, entry_scope_highpc, + main_scope_lowpc, main_scope_highpc): Remove extern decls. + * dwarfread.c (read_func_scope, read_file_scope): Use new per- + objfile entry info. + * frame.h (FRAME_CHAIN_VALID): Provide default definition that + works for the majority of targets. + * tm-68k.h, tm-convex.h, tm-h8300.h, tm-i386v.h, tm-irix3.h, + tm-merlin.h, tm-mips.h, tm-pyr.h, tm-rs6000.h, tm-sparc.h, + tm-sun386.h, tm-tahoe.h, tm-umax.h, tm-vax.h (FRAME_CHAIN_VALID): + Use default definition in frame.h. + * frame.h (selected_frame_level): Make decl extern. + * objfiles.c, symfile.c (current_objfile): Moved to objfiles.c + * objfiles.c, symfile.c (symfile_objfile): Moved to objfiles.c + * partial-stab.h: Use new per-objfile entry info. + * symfile.h (struct objfile): Removed, moved to objfiles.h. + * symfile.h, objfiles.h (allocate_objfile, free_objfile, + free_all_objfiles, iterate_over_objfiles, iterate_over_symtabs, + iterate_over_psymtabs, have_partial_symbols, have_full_symbols, + have_minimal_symbols): Prototypes moved to objfiles.h. + * symfile.h, objfiles.h (ALL_OBJFILES, ALL_OBJFILES_SAFE): + Macros moved to objfiles.h. + * tm-h8300.h, tm-i386v4.h (FRAME_CHAIN_VALID_ALTERNATE): Define. + +Thu Mar 19 18:49:45 1992 Per Bothner (bothner@cygnus.com) + + More C++ improvements (pointers to members, qualified names). + * c-exp.y: Support exp.type::name and exp->type::name + syntaxes. (Unfortunately, doesn't work for static members.) + * c-exp.y, eval.c: Make type::~type work better. + * eval.c (evaluate_subexp: OP_SCOPE): Replace use of + value_static_field by value_struct_elt_for_reference. + * eval.c (evaluate_subexp): Merge code for STRUCTOP_MEMBER + and STRUCTOP_MPTR; cast arg1 to domain-type of arg2. + * eval.c (evaluate_subexp): Remove special case for UNOP_ADDR + for OP_SCOPE operand; no point in it now that we use lazy + reading of values, and use "reference to member" objects. + * gdbtypes.h: Clarify comment. + * valops.c: Change value_struct_elt_for_address to return + a reference (or variable), rather than a pointer. Change + the name to value_struct_elt_for_reference to reflect this. + Returning a reference instead of a address provides a + generalization, since we can use the routine for both + class::name as well as &class::name. + Also, recurse to handle multiple inheritance properly. + * valprint.c: Moved code to print pointer-to-members + to new function point_class_member. This allows a + "reference-to-member" to be printed using the same code. + * valprint.c (type_print_varspec_prefix): Avoid printing + "struct " for domains of class-member types. + * valops.c (search_struct_field): Inline code for simplified + version of value_static_field (which can then be deleted). + * value.h: Rename value_struct_elt_for_address to + value_struct_elt_for_reference. Delete value_static_field. + * values.c: Remove no longer used function value_static_field. + +Thu Mar 19 13:54:11 1992 Fred Fish (fnf@cygnus.com) + + * coffread.c, mipsread.c, xcoffread.c, coffread.c, dbxread.c, + elfread.c (coff_symfile_finish): Add function, prototype, and + add to the xxxx_sym_fns struct for each file type. Also reformat + the xxxx_sym_fns vector to a standard format and add comments. + * coffread.c, mipsread.c, xcoffread.c, coffread.c, dbxread.c, + elfread.c (xxx_symfile_new_init, xxx_symfile_init, xxx_symfile_read): + Pass pointer to struct objfile rather than pointer to sym_fns. + Change references inside each function accordingly. Allocate any + symbol file specific info in the per-objfile memory region. + * dbxread.c (free_and_init_header_files): Break function into + free_header_files(), called from dbx_symfile_finish(), and + init_header_files(), called from dbx_new_init(). + * dbxread.c (dbx_new_init): Move deallocation things to new + dbx_symfile_finish function. + * elfread.c (elf_new_init): Call buildsym_new_init(). + * objfiles.c (free_objfile): Call the appropriate symfile_finish() + routine for the objfile before deallocating other stuff. + * sparc-tdep.c (get_longjmp_target): Cast target_read_memory arg. + * symfile.h: Move struct sym_fns to before struct objfile def. + Add sym_finish function pointer and change prototypes of other + function pointers to reflect passing struct objfile pointer rather + than struct sym_fns pointer. + * symfile.c: Remove now obsolete symtab_fns pointer. + * symfile.c (symfile_init): Renamed to find_sym_fns, and now only + locates the correct sym_fns struct for the given objfile. + * symfile.c (syms_from_objfile, symbol_file_add): Restructured + for better support of mapped symbol tables. + * symfile.c (symbol_file_command): Remove obsolete code using + symfile_fns. + * symfile.h: Remove duplicate declarations for symfile_objfile, + entry_point, and object_files. + * target.c (target_info): Compare symfile_objfile to NULL. + * xcoffread.c (aixcoff_new_init): Move deallocation stuff to + aixcoff_symfile_finish(). + +Wed Mar 18 18:22:46 1992 Fred Fish (fnf@cygnus.com) + + * infrun.c (IN_SOLIB_TRAMPOLINE): Add default definition. + * infrun.c (wait_for_inferior): Use IN_SOLIB_TRAMPOLINE. + * tm-sysv4.h (IN_SOLIB_TRAMPOLINE): Add SVR4 definition. + +Wed Mar 18 15:51:15 1992 Per Bothner (bothner@cygnus.com) + + Some improvements to g++ debugging. + * symtab.c (list_symbols): demangle before pattern matching. + * symtab.c: Other fixes to improve handing of operators. + * valprint.c (type_print_base): Fix test for constructor. + * values.c (value_static_field): Allow evaluation of + CLASS::METHOD, returning a function pointer. + +Wed Mar 18 08:39:52 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Roll 4.4.6. + * exec.c (exec_file_command): Add code to ignore optional args + passed in by file_command() for use in symbol_file_command(). + * main.c (main): Document -mapped and -readnow in help summary. + * objfiles.c (open_mapped_file): Cosmetic change, arg renamed. + * objfiles.c (allocate_objfile): Filename arg removed. Changes + to get filename from bfd with bfd_get_filename(). Test mapto + against 0, not NULL. Use mstrsave() to make copy of filename. + * remote-mm.c (mm_load): Symbol_file_add() takes an additional + arg. + * remote-vx.c (vx_load_command, add_symbol_stub): + Symbol_file_add() takes an additional arg. + * solib.c (symbol_add_stub): Symbol_file_add() takes an + additional arg. + * symfile.c (symfile_open): Renamed to symfile_bfd_open and + changed to return a bfd not an objfile pointer. + * symfile.c (syms_from_objfile): Eliminate local copy of bfd. + * symfile.c (symbol_file_add): Takes an additional arg (readnow). + Change to eliminate local bfd and use symfile_bfd_open() plus + allocate_objfile(). Add code to implement readnow option. + * symfile.c (symbol_file_command): Changes to option handling, + readnow functionality moved to symbol_file_add(). + * symfile.c (symfile_init): Eliminate local copy of bfd. + * symfile.c (add_symbol_file_command): Changes to parse mapped + and readnow options. + * symfile.h (allocate_objfile): Arg removed from prototype. + * symtab.h (symbol_file_add): Arg added to prototype. + * xcoffexec.c (map_vmap): Allocate_objfile() takes an additional + arg. + +Sat Mar 14 16:38:47 1992 Fred Fish (fnf@cygnus.com) + + * gmalloc.c, gmalloc.h mcheck.c mmap-alloc.c mmap-sbrk.c mtrace.c, + mtrace.awk, state.c, state.h: Removed. + * .gdbinit: Add ../malloc, ../libiberty, and ../bfd to list of + directories searched for source files. + * Makefile.in (GNU_MALLOC, MALLOC_CFLAGS, MALLOCSRC): Removed + * Makefile.in (MMALLOC_DIR, MMALLOC_DEP, MMALLOC_LIB, + MMALLOC_DISABLE, MMALLOC_CHECK, MMALLOC_CFLAGS): Add + * Makefile.in (CFLAGS): Replace MALLOC_CFLAGS with MMALLOC_CFLAGS. + * Makefile.in (CLIBS, CDEPS): Add MMALLOC_LIB + * Makefile.in (ADD_FILES, ADD_DEPS): Remove GNU_MALLOC. + * Makefile.in (SFILES_MAINDIR): Remove stat.c mmap-alloc.c, mmap- + sbrk.c + * Makefile.in (HFILES): Remove state.h + * Makefile.in (POSSLIBS_MAINDIR): Remove MALLOCSRC. + * Makefile.in (OBS): Remove state.o mmap-alloc.o mmap-sbrk.o + * Makefile.in (saber_gdb): Remove mcheck, mtrace. Add MMALLOC_DIR. + * Makefile.in (clean): Remove all object files. + * c-exp.y: Define malloc to xmalloc and realloc to xrealloc. + * cplus-dem.c: Remove prototypes definitions that are now done in + def.h. + * dbxread.c (throughout): Change from using per-objfile + xmalloc/xrealloc/free functions to xmmalloc/xmrealloc/mfree. + * defs.h: Remove prototypes for mmap_* functions. Add prototypes + for xmmalloc, xmrealloc, mfree, mmcheck, mmtrace, mmalloc_attach, + mmalloc_detach, mmalloc_setkey, msavestring, and mstrsave, nomem. + * depend: Remove dependencies for state.o, state.h. + * dwarfread.c: Add declaration for warning_pre_print. + * dwarfread.c (dwarfwarn): Use warning_pre_print. + * dwarfread.c (throughout): Change from using per-objfile + xmalloc/xrealloc/free functions to xmmalloc/xmrealloc/mfree. + * gdbtypes.c (lookup_fundamental_type): Fix init_type calls to + use supplied objfile. + * i386-xdep.c (print_387_status): Change to use warning() rather + than printfs. + * i387-tdep.c (print_387_control_word): Change to use warning() + rather than printfs. + * infrun.c (wait_for_inferior): Remove unreachable abort() call + that some compilers grumble about. + * language.c (throughout): Add declaration for warning_pre_print + and using warning() instead of printfs. + * m2-exp.y: Define malloc to xmalloc and realloc to xrealloc. + * main.c (main): Add declaration for warning_pre_print and set it + similarly to error_pre_print. Add declarations for + mapped_symbol_files and readnow_symbol_files. Add appropriate + definitions to long_options[]. + * minsyms.c: Trivial fix to comment. + * objfiles.c (allocate_objfile): Substantially rewritten for + using mapped symbol files. + * objfiles.c (throughout): Change from using per-objfile + xmalloc/xrealloc/free functions to xmmalloc/xmrealloc/mfree. + * objfiles.c (open_mapped_file, mapped_to_address): Add functions. + * source.c (throughout): Change from using per-objfile + xmalloc/xrealloc/free functions to xmmalloc/xmrealloc/mfree. + * source.c (open_source_file): Use mstrsave to save file name in + mapped symbol region for objfile. + * symfile.c: Remove include for state.h. + include to local form. + * symfile.c (symbol_file_add_digested): Remove. + * symfile.c (symbol_file_add): Substantially rewritten for mapped + symbol files. + * symfile.h: Remove malloc/xrealloc/xmalloc/xrealloc/free members + from objfile structure. Add malloc descriptor pointer (md). + * symfile.h (OBJF_DUMPABLE): Changed name to OBJF_MAPPED. + * symm-xdep.c (print_fpu_status): Use warning() rather than + printfs. + * symmisc.c (free_symtab_block): Now takes and uses current + objfile pointer. + * symmisc.c (throughout): Change from using per-objfile + xmalloc/xrealloc/free functions to xmmalloc/xmrealloc/mfree. + * symtab.c (cplus_mangled_symbol): Cast return value to avoid + Sun compiler grumblings when PTR is char *. + * symtab.c (lookup_symbol): Cast return value of iterate_over_ + msymbols() to correct pointer type. + * utils.c (warning_pre_print): Initialize to "\nwarning: ". + * utils.c (fatal, fatal_dump_core): Ensure that the fatal + error always starts on a line of it's own. + * utils.c (init_malloc, malloc_botch, xmalloc, xrealloc): + Rewrite for new mapped malloc package use. + * utils.c (mmalloc, mrealloc, mfree): Stubs for configurations + that don't want to use the mapped malloc package; pass arguments + on to traditional malloc package functions. + * utils.c (nomem): Add for fatal virtual memory exhausted aborts. + * utils.c (xmmalloc, xmrealloc, xmalloc, xrealloc): Like mmalloc, + mrealloc, malloc, and realloc but get fatal error if runs out + of memory. + * utils.c (msavestring, mstrsave): Save a string in a specific + mapped malloc region. + * utils.c (print_spaces): Use xmalloc to get the buffer. + * xm-amix.h, xm-i386v4.h, xm-sun3os4.h, xm-sun4os4.h: Add defines + for MMAP_BASE_ADDRESS and MMAP_INCREMENT. + * config/i386v4.mh: Insignificant reorganization. + +Sat Mar 14 11:44:47 1992 Fred Fish (fnf@cygnus.com) + + * xcoffread.c: Only enable compilation of debugging functions + if IBM6000 is defined. Fails to compile otherwise. + +Fri Mar 13 15:51:11 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: pass MAKEINFO down on info. + +Fri Mar 13 12:56:36 1992 John Gilmore (gnu at cygnus.com) + + * mipsread.c (mipscoff_symfile_read): Eliminate a lot of + useless code, including an lseek to an uninitialized variable. + Reported by Jim Williams . + +Thu Mar 12 11:56:46 1992 Per Bothner (bothner@cygnus.com) + + Merged in patches from metin@ibmpa.awdpa.ibm.com (Metin G. + Ozisik) (dated Fri, 6 Mar 92 17:51) for the rs6000. + * minsyms.c, symfile.c: Changes that may be generally + applicable, but are #ifdef IBM6000 for now. + * rs6000-xdep.c: Fixed typo in comment. + * rs6000-tdep.c: Non-substatial changes. + * xoffread.c: The main change here is addition of some + debugging functions. + * xoffexec.c: More changes. + + * xcoffread.c: Fixed two too-few-parameters bugs. + + * solib.h, infrun.c, tm-rs6000.h: Add a PID parameter + to SOLIB_CREATE_INFERIOR_HOOK macro. + +Sun Mar 8 21:17:48 1992 Fred Fish (fnf@cygnus.com) + + * symfile.h: Add prototype for iterate_over_msymbols(). + * symtab.c (cplus_mangled_symbol): Add function. + * symtab.c (lookup_symbol): Call cplus_mangled_symbol via + iterate_over_msymbols to find demangled C++ symbol. + * xcoffexec.c (relocate_minimal_symbol): Return meaningful + value to iterate_over_msymbols(). + * xcoffexec.c (vmap_symtab): Ignore return from iterate_over_ + msymbols(). + +Fri Mar 6 21:59:34 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: added check target. + +Thu Mar 5 23:56:01 1992 John Gilmore (gnu at cygnus.com) + + * ecoff.c: Move to ../bfd/coff-msym.c. + * config/mt-*mips: Remove ecoff.o from the configuration. + * remote.c (): Add newline to initial +. + (remote_resume): Mention how to cope with signals. + (remote_interrupt): Add debug msg. + (remote-wait): Implement new 'T' reply, which includes + status, PC, and FP all in a single short message. + (putpkt): Add further debugging of packet acks. + * mipsread.c (fixup_symtab): Also swap RFD's. + (parse_partial_symbols): Avoid bug on unknown symbol types. + * Makefile.in (VERSION): Roll to 4.4.5. + * mips-tdep.c (heuristic_proc_start): Avoid long delays + for remote MIPS by limiting heuristic to 200 byte search. + (heuristic_proc_desc): Byte-swapping. + (mips_print_register): Cope with failure of + read_relative_register_raw_bytes. Byte-swap integers for + printing. + * mips-pinsn.c (print_insn): Byte-swap instruction. + +Thu Mar 5 12:32:09 1992 Stu Grossman (grossman at cygnus.com) + + * config.sub configure.in config/mh-irix4 + gdb/configure.in gdb/mips-tdep.c gdb/mipsread.c + gdb/procfs.c gdb/signame.h gdb/tm-irix3.h gdb/tm-mips.h + gdb/xm-irix4.h gdb/config/mt-irix3 + gdb/config/mh-irix4 texinfo/configure.in: Port to SGI Irix-4.x. + +Wed Mar 4 11:56:42 1992 Fred Fish (fnf@cygnus.com) + + * defs.h, utils.c: xrealloc takes PTR as first arg. + * defs.h: Reword confusing comment about ANSI prototypes. + * defs.h: Some minor whitespace changes. + * infrun.c (wait_for_inferior): Compare int tmp to int 0, + not NULL, which can be (void *). + * tm-amix.h, tm-i386v4.h: Add defines for setjmp/longjmp handling. + * tm-i386v.h (SP_ARG0): Define + * xm-sysv4.h: Back out of change for missing prototypes. + * i386-tdep.c (get_longjmp_target): Add function. + +Wed Mar 4 05:46:11 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: install man page too. + +Tue Mar 3 15:11:52 1992 Michael Tiemann (tiemann@cygnus.com) + + * All GDB files that #include defs.h: Removed stdio.h. + (defs.h): #include stdio.h. + +Mon Mar 2 23:00:12 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * gdbtypes.c (lookup_pointer_type): initialize the TYPE_LENGTH of + a ptype to reflect the setting of TARGET_PTR_BIT. Set the + TYPE_FLAGS of a ptype to TYPE_FLAG_UNSIGNED. + * tm-h8300.h, h8300-tdep.c, remote-hms.c: personal checkpoint + * printcmd.c (print_address): if ADDR_BITS_REMOVE is defined, use + it before printing out the hex shape of an address. + +Sun Mar 1 17:41:09 1992 Per Bothner (bothner@cygnus.com) + + * rs6000-xdep.c (frame_initial_stack_address): Move + code to set frame->cache_fsr into new separate function + frame_get_cacahe_fsr. This allows fixing a fatal error. + * xcoffexec.c: Turn previously suppressed error + message back on, after cleaning up BFD. + + * breakpoint.c (breakpoint_re_set): Removed (at least for now) + printing of blank line, since it cases printing of an + extra blank line. Is this intended? It does mess up + gdb test suite. + * defs.h: Put back declarations of malloc and realloc, + but protected by #ifndef MALLOC_INCOMPATIBLE. + * objfiles.c: Undo previous change: Use malloc/realloc + for objfile malloc/realloc fields (but add a cast). + * xcoffexec.c: Suppress an error message (for now). + +Sat Feb 29 14:43:02 1992 Per Bothner (bothner@cygnus.com) + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik) + [Mail dated Fri, 21 Feb 92 13:14:54 -0800] + * buildsym.c: Use smash_to_pointer_type() to handle forward type + references. + * xcoffread.c: Modifications to C_DECL storage class handling, and + introduction of an old smash_to_pointer_type() routine. + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik) + [Mail dated Thu, 20 Feb 92 13:57:16 -0800] + * rs6000-xdep.c, rs6000-tdep.c, tm-rs6000.h: function_frame_info() + parameters have been modified. + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik) + [Mail dated Thu, 20 Feb 92 10:10:05 -0800] + * rs6000-tdep.c: Before Feb 5 92, register_valid[] array was not used, + and fetch_inferior_registers() always fetched all the registers + resulting valid register values at hand all the time. Pushing a dummy + frame did not require validating all register values first. After + putting the above mechanism into action, we didn't have valid registers + values always ready. Thus, all registers need to be fetched before + pushing a dummy frame now. + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik) + [Mail dated Thu, 13 Feb 92 16:22:44 -0800] + * rs6000-xdep.c: frame_initial_stack_address() function to calculate + the starting address (actual frame address) of a frame. + * rs6000-tdep.c: modifications to function_frame_info() to see if + function reserves a frame pointer register (alloca register) + * tm-rs6000.h: EXTRA_FRAME_INFO, FRAME_ARGS_ADDRESS and + FRAME_LOCALS_ADDRESS has been updated to support debugging of + functions with alloca() calls. + +Sun Mar 1 13:13:39 1992 Fred Fish (fnf@cygnus.com) + + * xm-sysv4.h: Provide definitions/prototypes for host environment + functions for which no definitions or prototypes are provided in + any currently included gdb or host environment header files. + For SVR4, this currently includes malloc and realloc, which cannot + be portably prototyped in any gdb include file. + +Sat Feb 29 14:43:02 1992 Per Bothner (bothner@cygnus.com) + + * buildsym.h: Remove obsolete variable file_stabs. + + * Makefile.in: Move place where configure merges in host- + and target-dependent fragments later, so the latter + can override (say) GNU_MALLOC. + * config/mh-rs6000: Use system malloc. Otherwise, I + ended up with *two* incompatible versions of malloc + (functions in libc would call the malloc in libc). + I assume this is a shared library problem. + + * remote.c: Fix (presumed) typo. + * objfiles.c: Use xmalloc/xrealloc instead of + malloc/realloc (since the latter are no longer declared). + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik) + [Mail dated Thu, 6 Feb 1992 10:22:02 -0800] + * rs6000-xdep.c: Improvements to fetch_inferior_registers() to + handle individual registers. + * tm-rs6000.h: Fix SAVED_PC_AFTER_CALL macro to handle pc value + correctly in case it wasn't cached yet. (A problem showed up + after fetching individual registers.) + * buildsym.c: Disable type_synonym_name's type name overwriting + in cases it is unnecesary. rs6000 portation doesn't use + type_synonym_name, and it used to nullify type names + * xcoffread.c: to handle g++'s typename abbreviation, fill in a + type's name as soon as space for that type is allocated. + * xcoffread.c: ignore a section's lineno information if it is + not `.text'. (In rs6000 bfd portation integration, skipping over + `.pad' sections are ignored since it was in machine independent + part of the code. Thus, a problem of fake sections with invalid + lineno information arised.) + + Changes from metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik) + [Mail dated Thu, 6 Feb 1992 13:26:22 -0800] + * rs6000-tdep.c: make function_frame_info() work whether or not + reading from a core file. + * tm-rs6000.h: Implementation of FRAME_FIND_SAVED_REGS macro. + + * infrun.c. main.c, printcmd.c. symtab.c: + More changes from IBM for rs6000. + + +Thu Feb 27 22:57:19 1992 Per Bothner (bothner@cygnus.com) + + * rs6k-opcode.h, tm-rs6000.h, xm-rs6000.h, rs6000-tdep.c, + rs6000-xdep.c, xcoffexec.c, xcoffread.c: + Merge in changes (mostly from IBM) for RS6000. + * breakpoint.c, buildsym.c, infptrace.c, stack.c, symtab.c: + More changes from IBM for RS6000. These are in machine- + independent code, and probably could do with some cleaning + up. The most questionable of these are #ifdef IBM6000. + * infrun.c, sparc-tdep.c: Pass a parameter (signal number) + to single_step() (for consistency with rs6000 and i860). + * utils.c: Allow the 1st arg to xrealloc to be NULL + (in which case do malloc). This removes the need for + some tests in xcoff code (and perhaps other places?). + * coffread.c: Removed variables last_source_file, + type_vector, and type_vector_length as these are now + defined by buildsym.[ch]. + * defs.h: Remove prototypes for malloc and realloc, since + these should only be used to implement xmalloc and xrealloc, + and they conflict with in AIX - where they + return void* even when __STDC__ isn't defined. Sigh. + * munch: Recognize *initialize* in data as well as text + (AIX uses data). Also, incorporate a patch from Garrett + Wollman to make the sed script + much more sensible, by only trying to match the name of + the initialize_foo function, and not the junk before it. + +Thu Feb 27 20:07:43 1992 Stu Grossman (grossman at cygnus.com) + + * breakpoint.c (breakpoint_re_set_one): Don't reset breakpoint + unless symbol table indicates that something has changed. + +Thu Feb 27 11:48:47 1992 John Gilmore (gnu at cygnus.com) + + * remote.c: Make it work for embedded MIPS. Increase buffer + size, and use throughout. Round buffer size up if too many regs. + Support baud rate setting and try for an 8-bit path. If + interrupted while waiting for target, send a ^C down the wire. + Avoid single-byte reads. + * tm-mips.h: Add more embedded-system registers to REGISTER_NAMES + and NUM_REGS. + * mips-xdep.h: Avoid the embedded regs when on Unix. + + * mipsread.c: Byte-swap the symbol table structures, using + routines from ecoff.c, to read a symbol table written in any + of the four possible byte orders. + * configure.in (mips-big-* target): Same as Sony News. + * config/mt-bigmips, config/mt-littlemips: Add ecoff.o. + * ecoff.c: New file for symbol swapping routines. + +Thu Feb 27 09:26:38 1992 Stu Grossman (grossman at cygnus.com) + + * breakpoint.c (all_breakpoints_info, breakpoint_1): Add 'info + all-breakpoints' command. + * (get_number): Allow users to enter negative breakpoint numbers. + * (breakpoint_1): Reformat display of 'info break' to show new + fields. + * (create_longjmp_breakpoint, breakpoint_re_set, + breakpoint_re_set_one, enable/disable_longjmp_breakpoint), + symfile.c (syms_from_objfile): Re-do + insertion of longjmp breakpoints. Move all code into + breakpoint_re_set, and call that instead of + create_longjmp_breakpoint in symfile.c. + +Thu Feb 27 06:11:05 1992 John Gilmore (gnu at cygnus.com) + + * breakpoint.h (ALL_BREAKPOINTS_SAFE): Add. + * breakpoint.c (breakpoint_re_set): Use ALL_BREAKPOINTS_SAFE. + * symtab.c (find_pc_symtab): Handle having no objfiles. + * infcmd.c: Fix comment. + * objfiles.c (free_all_objfiles): Add. + * symfile.h (ALL_OBJFILES, ALL_OBJFILES_SAFE): Add. + * symfile.c (symbol_file_command): free all objfiles when + specifying a new symbol file. + (reread_symbols): Stat the file name, don't fstat the descriptor. + +Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in, configure.in: removed traces of namesubdir, + -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced + copyrights to '92, changed some from Cygnus to FSF. + +Tue Feb 25 19:31:19 1992 Stu Grossman (grossman at cygnus.com) + + * dbxread.c (end_psymtab): Delete empty psymtabs. + * symfile.c (allocate_psymtab): Recycle empty psymtabs. + * symfile.h (struct objfile): Add free_psymtabs. + +Sat Feb 22 02:00:32 1992 John Gilmore (gnu at cygnus.com) + + * Makefile.in (VERSION): Roll to gdb-4.4.4. + + * symfile.c (symbol_file_command): strcmp => !strcmp. + * breakpoint.h: Move prototypes to follow enum definition they need. + * breakpoint.c, infrun.c: Lint. + * printcmd.c: Use `enum enable' rather than `enum + display_status'. + * mipsread.c: First pass at making it compile with the new + objfile changes. Probably seriously broken still, but it + compiles. FIXME. + +Sat Feb 22 00:56:39 1992 Stu Grossman (grossman at cygnus.com) + + * infrun.c, infcmd.c, breakpoint.c, main.c, symfile.c, + breakpoint.h, tm-sun4os4.h, tm-sparc.h, sparc-tdep.c, tm-mips.h, + mips-tdep.h, tm-sun3.h, tm-68k.h, m68k-tdep.h: Add support for + stepping (and nexting) through longjmp(). Also, cleanup + breakpoint handling quite a bit by creating explicit breakpoint + types instead of using magic breakpoint numbers. + Makefile.in: Update version to 4.4.3 + +Sat Feb 22 00:08:50 1992 John Gilmore (gnu at cygnus.com) + + * buildsym.c, dwarfread.c, gdbtypes.c, inflow.c, main.c, + minsyms.c, printcmd.c, remote.c, saber.suppress: Saberlint. + * symmisc.c, xcoffread.c: Move debug functions to symmisc.c. + + * xm-sun3os4.h, xm-sun4os4.h: Enable HAVE_MMAP. + + * minsyms.c (install_minimal_symbols): Add bunches to any + existing minsyms in the objfile. Avoid extra mallocation + by working directly in the obstack. Remove ignored `mainline' parm. + * coffread.c, dbxread.c, elfread.c, mipsread.c, solib.c, symtab.h, + xcoffread.c: Change all callers. + * FIXME: We should be able to eliminate MAINLINE from all the + symbol readers now, with a small bit of work. + + * valops.c, value.h: Lint. + * remote-vx.c: Add missing break; statement. Bugfix by + Michael Sclafani, . + +Fri Feb 21 17:29:54 1992 Fred Fish (fnf at cygnus.com) + + * Makefile.in (VERSION): Update version to 4.4.2 + * Makefile.in (SFILES_MAINDIR): Add gdbtypes.c, state.c, objfiles.c, + minsyms.c, mmap-alloc.c, mmap-sbrk.c + * Makefile.in (HFILES): Add gdbtypes.h, state.h, solib.h + * Makefile.in (OBS): Add gdbtypes.o, state.o, objfiles.o, minsyms.o, + mmap-alloc.o, mmap-sbrk.o + + * altos-xdep.c: Minor whitespace change. + * am29k-tdep.c (examine_prologue): Convert from misc function vector + use to new minimal symbol table use. + * arm-xdep.c (fetch_inferior_registers): Document unused argument. + * arm-xdep.c (store_inferior_registers): Returns void. + * blockframe.c (get_pc_function_start, find_pc_partial_function): + Convert from misc function vector use to new minimal symbol table use. + Remove find_pc_misc_function(). Ifdef out block_innermost_frame(). + * breakpoint.c: Add prototypes for local functions. + * breakpoint.c (catch_command_1): Change to static and remove unused + local "pc". + * breakpoint.c (map_breakpoint_numbers): Prototype arg "function". + * breakpoint.h: Change function decls to prototype form. + * buildsym.c: Add prototypes for local functions. + * buildsym.c: Moved hashname() function here from dbxread.c. + * buildsym.c (dbx_lookup_type): Cast args to xrealloc(). + * buildsym.c: Remove dbx_create_type(), uses changed to alloc_type(). + * buildsym.c (dbx_alloc_type): Change to static. + * buildsym.c (finish_block): Add objfile parameter. + * buildsym.c (misc): Change symbol_obstack to objfile version. + * buildsym.c (make_blockvector): Change to static. + * buildsym.c (start_subfile): Use strdup instead of obsavestring. + * buildsym.c (compare_line_numbers): Change to static, args are const, + cast args when used. + * buildsym.c (start_symtab): Inline new_object_header_files() call. + * buildsym.c (patch_block_stabs): Moved to this file from xcoffread + and made static. Add objfile parameter. + * buildsym.c (end_symtab): Simplify code using line table size. + Realloc the linetable on the objfile symbol_obstack and copy there. + * buildsym.c (scan_file_globals): Convert from misc function vector + use to new minimal symbol use. + * buildsym.c (define_symbol): Add objfile parameter. Make sure + strings get allocated in objfile's symbol_obstack. Convert references + to builtin types to lookup_fundamental_type(). + * buildsym.c (read_type): Make static, add objfile parameter, convert + references to buildin types to lookup_fundamental_type(). + * buildsym.c (read_struct_type): Add objfile parameter. + * buildsym.c (read_array_type): Make static, add objfile parameter. + * buildsym.c (read_enum_type): Make static, add objfile parameter. + * buildsym.c (read_huge_number): Make static. + * buildsym.c (read_range_type): Make static, add objfile parameter, + convert references to buildin types to lookup_fundamental_type (). + * buildsym.c (read_args): Make static, add objfile parameter. + * buildsym.h: Convert function decl's to prototype form. + * c-exp.y: Add prototypes for local functions, convert uses of misc + function vector to minimal symbol table. Reformat all builtin type + initializations and pass a NULL objfile to init_type() for them. + * coffread.c: Change context_stack ref's to coff_context_stack, + add local function prototypes. Cast uses of xrealloc arg 1. + * coffread.c (coff_alloc_type): Call alloc_type instead of hand- + crafting a new type. + * coffread.c (add_symbol_to_list): Change to coff_add_symbol_to_list. + * coffread.c (finish_block): Change name to coff_finish_block. + * coffread.c (make_blockvector): Add and use objfile parameter. + * coffread.c (record_line): Change name to coff_record_line. + * coffread.c (start_symtab): Change name to coff_start_symtab. + * coffread.c (end_symtab): Change name to coff_end_symtab. + * coffread.c (record_misc_function): Change name to record_minimal_ + symbol and change to minimal symbol table use from misc func tbl. + * coffread.c (coff_symfile_read): Convert from misc function vector + use to minimal symbol table use. + * coffread.c (hashname): Remove; use common version in buildsym.c. + * coffread.c (decode_base_type): Change references to builtin types + to calls to lookup_fundamental_type(). + * coffread.c (read_struct_type): Change name to coff_read_struct_type. + * coffread.c (read_enum_type): Change name to coff_read_enum_type. + * command.c: Add prototypes for local functions. + * command.c (add_cmd): Prototype the 'fun' parameter and use the + appropriate member of the function union for that type. + * command.c (add_abbrev_cmd): Prototype the 'fun' parameter and + ifdef out the function since it isn't currently used. + * command.c (add_alias_cmd): Pass correct function type to add_cmd. + * command.c (add_prefix_cmd): Prototype the 'fun' parameter. + * command.c (add_abbrev_prefix_cmd): Prototype the 'fun' parameter. + * command.c (help_cmd): Compare function pointer to NULL. + * command.c (help_cmd_list): Compare function pointer to NULL. + * command.c (lookup_cmd_1): Use correct member of function union. + * command.c (undef_cmd_error): Make static. + * command.c (complete_on_cmdlist): Use correct member of func union. + * command.c (do_setshow_command): Use correct member of func union. + * command.c (shell_escape): Convert rindex use to strrchr. + * command.h (COMMAND_H): Define if already included. + * command.h (cmd_list_element struct): Change 'function' to a union + and prototype args. Prototype completer function. + * command.h: Convert decl's to prototype form. + * convex-xdep.c (store_inferior_registers): Returns void. + * copying.c: Prototype local functions. + * coredep.c: Minor whitespace change. + * cplus-dem.c: Remove hack to use BSD equivalents of mem* and str*. + * cplus-dem.c: Prototype local functions. + * dbxread.c (hashname): Remove; moved to buildsym.c. + * dbxread.c (free_and_init_header_files): Make static. + * dbxread.c: Add prototypes for local functions. + * dbxread.c (new_object_header_files): Remove; inlined usages. + * dbxread.c (xrealloc usages): Cast args. + * dbxread.c (record_misc_function): Change to record_minimal_symbol + and change usages accordingly. + * dbxread.c (static_psymbols usages): Change to use per-objfile copy. + * dbxread.c (xmalloc usages): Use per-objfile copy when appropriate. + * dbxread.c (dbx_next_symbol_text): Make static. + * dbxread.c (init_psymbol_list): Convert to use per-objfile data. + * dbxread.c (init_bincl_list): Add and use objfile parameter. + * dbxread.c (free_bincl_list): Add and use objfile parameter. + * dbxread.c (compare_psymbols): Remove; use common symfile.c version. + * dbxread.c (end_psymtab): Convert to use per-objfile data. + * dwarfread.c (DEFUN/EXFUN): Remove all usages. Use PARAMS for + prototypes. + * dwarfread.c (record_misc_function): Change name to record_minimal_ + symbol and use minimal symbol table throughout. + * dwarfread.c (compare_psymbols): Remove; use common symtab.c version. + * dwarfread.c: Convert all references to builtin types to use the new + lookup_fundamental_type function. + * dwarfread.c (read_enumeration): Add and use objfile parameter. + * elfread.c (DEFUN/EXFUN): Remove all usages. Use PARAMS for proto- + types. + * elfread.c (record_misc_function): Convert to use record_minimal_ + symbol. + * elfread.c (elf_symtab_read): Add objfile parameter. + * eval.c: Add prototypes for local functions and move some decls + around to accomodate prototypes. + * expprint.c: Add prototypes for local functions. Change references + to misc function vector to minimal symbol table. + * findvar.c (read_memory usages): Cast args. + * gdbtypes.h: New file, type info from symfile.h and symtab.h. + * gmalloc.c: Use NOARGS where prototypes used hardwired void. + * gmalloc.c (BLOCKSIZE): Constant to be shifted is unsigned. + * gmalloc.h: Use NOARGS where prototypes used hardwired void. + * gould-xdep.c: Minor whitespace change. + * hp300ux-xdep.c (fetch_inferior_registers): Remove unused regno var. + * hp300ux-xdep.c (store_inferior_registers): Returns void. + * hp300ux-xdep.c (fetch_core_registers): Takes unused arg reg_addr. + * i386-stub.c: Add prototypes, change "volatile" to NORETURN. + * i386-tdep.c: Add prototypes for local functions. + * i386-tdep.c (codestream_fill, codestream_seek, codestream_read, + i386_get_frame_setup, i386_skip_prologue): Explicitly declare params + that defaulted to int. + * i386-tdep.c (i386_follow_jump, i386_frame_find_saved_regs, + i386_push_dummy_frame): Returns void. + * i386-xdep.c (i386_register_u_addr): Declare params that default to + int and explicitly declare return type as int. + * i387-tdep.c: Minor formatting changes. + * i960-tdep.c (leafproc_return): Convert from misc function vector + use to minimal symbol table use. + * infcmd.c: Add prototypes for local functions. + * infcmd.c (continue_command, until_next_command, until_command, + path_info, path_command): Make static. + * infcmd.c (step_1, until_next_command): Convert from misc func + vector to minimal symbol table use. + * inflow.c: Add prototypes for local functions. + * infptrace.c (store_inferior_registers): Returns void, not int. + * language.c (_initialize_language): Use proper member of function + union. + * m2-exp.y: Add prototypes for local functions, convert misc function + vector uses to minimal symbol table uses. + * m2-exp.y (make_qualname, yyerror): Make static. + * m2-exp.y (_initialize_m2_exp): Call init_types with NULL objfile. + * m68k-pinsn.c: Add prototypes for local functions. + * m68k-pinsn.c (print_insn): Cast args to read_memory. + * m68k-pinsn.c (fetch_arg): Make parameter 'code' and int. + * m68k-stub.c: Add prototypes. + * m88k-pinsn.c (sprint_address): Convert from misc function vector + use to minimal symbol table use. + * m88k-xdep.c (fetch_inferior_registers): Takes an unused parameter. + * m88k-xdep.c (store_inferior_registers): Returns void. + * mach386-xdep.c (fetch_inferior_registers): Takes an unused param. + * mach386-xdep.c (store_inferior_registers): Returns void. + * mach386-xdep.c (fetch_core_registers): Takes an unused parameter. + * main.c: Add prototypes for local functions. + * main.c (return_to_top_level): Is type NORETURN (volatile). Cast + longjmp() result to (NORETURN void). + * main.c (catch_errors): Prototype the 'func' parameter. + * main.c (disconnect, stop_sig, do_nothin, float_handler): + Takes an unused arg. + * main.c (execute_command): Call the right member of the func union. + * main.c (command_loop_marker, symbol_completion_function, + command_loop): Make static. + * main.c (command_line_input): Make linelength unsigned, cast arg + to command_line_input(). + * main.c (add_info, add_com): Prototype the 'fun' parameter. + * main.c (initialize_main): Call right member of function union. + * mcheck.c (NOARGS): Change hardwired void in prototypes to NOARGS. + * mem-break.c: Include symtab.h + * mips-xdep.c (fetch_inferior_registers): Takes unused param. + * mips-xdep.c (store_inferior_registers): Returns void. + * mipsread.c (mipscoff_symfile_read): Change from misc function vector + use to minimal symbol table use. + * mipsread.c (symbol_obstack usages): Convert all to use per-objfile + version. + * mipsread.c (make_type): Remove, convert usages to init_type. + * mipsread.c (_initialize_mipsread): Call init_type with NULL objfile. + * nindy-tdep.c (nindy_frame_chain_valid): Convert from misc function + vector use to minimal symbol table use. + * parse.c: Add prototypes for local functions. + * parse.c (xrealloc usages): Cast args. + * parse.c (prefixify_expression, length_of_subexp): Make static. + * parser-defs.h (PARSER_DEFS_H): Define when first included. + * parser-defs.h: Convert function decls to prototype form. + * partial-stab.h: Convert from misc function vector use to new minimal + symbol table use. + * partial-stab.h (global_psymbols, static_psymbols usages): Reference + the per-objfile copies. + * printcmd.c: Add prototypes for local functions. Move some struct + definitions around to accomodate prototypes. + * printcmd.c (decode_format): Make static, change args oformat and + osize to int from char. + * printcmd.c (print_formatted): Change 'format' and 'size' to int. + * printcmd.c (print_scalar_formatted): Change arg 'format' to int. + * printcmd.c (print_address_symbolic): Convert from misc function + vector use to minimal symbol table use. + * printcmd.c (address_info): Convert from misc function vector use + to minimal symbol table use. + * printcmd.c (delete_display, enable_display, disable_display_command): + Make static. + * procfs.c (EXFUN/DEFUN): Remove all usages, convert to PARAMS. + * procfs.c (fetch_core_registers): Add unused param reg_addr. + * pyr-xdep.c (fetch_inferior_registers): Add unused param regno. + * pyr-xdep.c (store_inferior_registers): Returns void. + * remote-mm.c (mm_load): symbol_file_add return value unused. + * remote-nindy.c: Minor format change. + * remote-vx.c (vx_load_command): symbol_file_add result unused. + * rs6000-xdep.c (fetch_inferior_registers): Add unused param regno. + * rs6000-xdep.c (store_inferior_registers): Returns void. + * rs6000-xdep.c (fetch_core_registers): add unused param reg_addr + * rs6000-xdep.c (aixcoff_relocate_symtab): Convert from misc function + vector use to minimal symbol table use. + * solib.c: Add prototypes for local functions. + * solib.c (solib_add_common_symbols, locate_base): Convert from misc + function vector use to minimal symbol table use. + * solib.c (EXFUN/DEFUN): Remove all usages, convert to PARAMS. + * solib.c (find_solib, shared_library_command): Make static + * solib.c (read_memory, write_memory usages): Cast args. + * solib.c (special_symbol_handling): Add function + * source.c: Add prototypes for local functions. + * source.c (select_source_symtab): Convert to scan objfiles. + * source.c (open_source_file): Make static. + * source.c (xrealloc usages): Cast args. + * source.c (source_line_charpos): ifdef out, unused. + * source.c (get_filename_and_charpos): Make static. + * stack.c: Add prototypes for local functions. + * stack.c (print_frame_info, frame_info): Convert from misc function + vector use to minimal symbol table use. + * symfile.c: Add prototypes for local functions. + * symfile.c (compare_symbols): Make args const PTR's. + * symfile.c (compare_psymbols, sort_pst_symbols) add. + * symfile.c (sort_all_symtab_syms): Scan objfile list. + * symfile.c (obsavestring): Add objfile parameter. + * symfile.c (init_misc_bunches, prim_record_misc_function, + compare_misc_functions, discard_misc_bunches, condense_misc_bunches, + sort_misc_function_vector, compact_misc_function_vector): Remove + * symfile.c (symbol_file_add_digested): Add function. + * symfile.c (symbol_file_add): Returns struct objfile *. + * symfile.c (symbol_file_command): Modify for state file use. + * symfile.c (symfile_open): Add parameter "dumpable". + * symfile.c (allocate_objfile, free_objfile): Moved to objfiles.c + * symfile.c (load_command, add_symbol_file_command): Make static. + * symfile.c (fill_in_vptr_fieldno): Moved to gdbtypes.c + * symfile.c (rindex usages): Converted to strrchr. + * symfile.c (allocate_psymtab): New + * symfile.c (free_named_symtabs): Ifdef out code that needs to be + converted to minimal symbol table usage, but no obvious conversion. + * symfile.c (free_all_symtabs): Remove. + * symfile.c (_initialize_symfile): Use per-objfile info. + * symfile.h: Rework the objfile structure to add per-objfile data + objects (psymbol_obstack, symbol_obstack, type_obstack, + global_psymbols, static_psymbols, msymbols, minimal_symbol_count, + fundamental_types, malloc, realloc, free, xmalloc, xrealloc, etc). + Add prototypes to function declarations. + * symm-tdep.c (symmetry_extract_return_value): Convert from misc + function vector usage to minimal symbol table usage. + * symmisc.c (DEV_TTY): Define if not defined. + * symmisc.c: Add local function prototypes. + * symmisc.c (dump_objfile, dump_msymbols, dump-symtab, print_syms, + printpsyms_command, print_objfiles, print_objfiles_command): + Rework to use iterate_over_* + * symtab.c: Add prototypes for local functions. + * symtab.c (lookup_symtab_1): Convert to look through objfiles. + * symtab.c (lookup_partial_symtab): Scan through objfiles. + * symtab.c (lookup_primitive_typename, lookup_typename, lookup_ + unsigned_typename, lookup_struct, lookup_union, lookup_enum, + lookup_template_type, lookup_struct_elt_type, lookup_pointer_type, + lookup_reference_type, lookup_member_type, allocate_stub_method, + check_stub_method, create_array_type, smash_to_member_type,): + Moved to gdbtypes.c + * symtab.c (lookup_symbol): Some args are const. + * symtab.h: All type related defs and structs moved to gdbtypes.h + * symtab.h: Convert decls to prototypes. + * target.c (noprocess): Make static. + * target.h: Change decl's to prototypes. + * tm-sunos.h: (CLEAR_SOLIB, SOLIB_ADD, SOLIB_CREATE_INFERIOR_HOOK, + DISABLE_UNSETTABLE_BREAK) Moved to solib.h. + * utils.c (_initialize_utils): Use correct member of function union. + * valarith.c: include gdbtypes.h + * valops.c: include gdbtypes.h, add prototypes for local functions. + * valops.c (value_push, value_arg_push, find_function_addr): + Make static. + * valops.c (value_string): Convert from misc function vector use + to minimal symbol table use. + * valops.c (check_field_in): Make arg const. + * valprint.c: Add prototypes for local functions. + * valprint.c (print_string): Make static + * valprint.c (value_print, val_print_fields, val_print): Make arg int. + * values.c: Add prototypes for local functions. + * values.c (value_headof): Convert from misc function vector to + minimal symbol table. + * xcoffexec.c: Add prototypes for local functions. + * xcoffexec.c (exec_close, file_command, add_to_section_table): + Make static. + * xcoffexec.c (relocate_minimal_symbol): Add. + * xcoffread.c (patch_block_stabs): Moved to buildsyms.c. + * xcoffread.c: Add prototypes for local functions. + * xcoffread.c (sort_syms): Convert to scan objfiles. + * xcoffread.c (read_xcoff_symtab): Make static. + * xcoffread.c (various): Replace references to builtin types with + calls to lookup_fundamental_type. Replace references to symbol_obstack + and psymbol_obstack with pointers to the per-objfile copies. + * xcoffread.c (dump_linetable, dump_type, dump_symbol, dump_namespace, + dump_block, dump_blockvector, dump_last_symtab, dump_symtabs): + Make static. + * xcoffread.c (init_stringtab): Add objfile parameter. + * gdbtypes.c: New file + * minsyms.c: New file + * mmap-alloc.c: New file + * mmap-sbrk.c: New file + * objfiles.c: New file + * state.c: New file + * state.h: New file + +Fri Feb 21 17:29:54 1992 John Gilmore (gnu at cygnus.com) + + * Check in Fred Fish's changes in these modules. Fred + will make ChangeLog entries for all of them. Update VERSION + to 4.4.2. + +Thu Feb 20 18:10:17 1992 Fred Fish (fnf at cygnus.com) + + * tm-sparc.h, tm-sysv4.h, solib.h: Move shared lib definitions + into solib.h. + * sparc-pinsn.c, sparc-tdep.c, standalone.c, sun3-xdep.c, + sun386-xdep.c, symm-xdep.c, target.c, ultra3-xdep.c, utils.c, + value.h: Prototypes for static functions; lint. + * gdbtypes.h: Empty file to ease transition. + +Thu Feb 20 16:43:13 1992 Fred Fish (fnf at cygnus.com) + + * environ.h, expression.h, frame.h, gdbcmd.h, gdbcore.h, + inferior.h, language.h, signame.h, target.h, terminal.h, + tm-68k.h, tm-i386v.h, tm-sparc.h, tm-sun386.h, tm-symmetry.h, + xm-i386v.h, xm-sparc.h: Prototypes for all external functions. + Lint. + * core.c, exec.c, infrun.c, inftarg.c, language.c, remote.c, + signame.c, sparc-xdep.c: Prototypes for all static functions. + Lint. + * core.c, eval.c, exec.c, inftarg.c, remote-adapt.c, remote-eb.c, + remote-hms.c, remote-mm.c, remote-nindy.c, remote-vx.c, remote.c, + target.c, target.h, valarith.c, valops.c, value.h, xcoffexec.c: + Remove to_call_function and target_call_function, since it + always calls the same thing (call_function_by_hand). + * core.c, exec.c, solib.c: Rename target_ops sections => + to_sections, etc. + * infcmd.c, inflow.c, infptrace.c, infrun.c, main.c, target.c, + target.h: target_kill takes no args. + * language.c (language_info): Scaffolding to allow briefer + messages when the current language changes. FIXME. + * xm-amix.h, xm-i386v4.h, xm-stratus.h: Define NORETURN to avoid + complaints about volatile functions. + * xm-sysv4.h (HAVE_MMAP): Define. + +Thu Feb 20 09:04:18 1992 Fred Fish (fnf at cygnus.com) + + * defs.h: Include ansidecl.h and PARAMS macro. Use PARAMS + to make prototypes for all functions declared here. + * cplus-dem.c: Avoid declaring xmalloc and xrealloc. + * c-exp.y: Rename SIGNED, OR, and AND to avoid conflict. + * environ.c: Include before defs.h. Minor cleanup. + * ieee-float.h: Use PARAMS for prototypes; make some params const. + * ieee-float.c, valarith.c: Include . Lint. b*=>mem*. + * m2-exp.y: Remove unused CONST; Rename OR and AND. + * utils.c: Avoid declaring malloc and realloc. Lint. + (request_quit): Accept signal-number parameter. + +Mon Feb 17 07:13:27 1992 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (process_dies): Add case to handle TAG_pointer_type + DIE's. Add new function read_tag_pointer_type() to read them. + + * dwarfread.c (dwarf_read_array_type, read_subroutine_type): + When creating a new user defined type, check to see if a partial + type already exists, and if so, bash it to fit. + +Fri Feb 14 19:00:17 1992 John Gilmore (gnu at cygnus.com) + + * coffread.c (decode_base_type): Pass long, not union. + Fix by Eric Valette, ev@chorus.fr. + +Thu Feb 13 17:14:28 1992 Fred Fish (fnf at cygnus.com) + + * elfread.c (elf_symtab_read): Fix code to correctly track + changes in bfd for absolute symbols. + +Thu Feb 13 12:43:29 1992 Stu Grossman (grossman at cygnus.com) + + * xm-vaxbsd.h: Close off comment. + +Thu Feb 13 07:45:19 1992 Fred Fish (fnf at cygnus.com) + + * xm-sysv4.h: Define NEED_POSIX_SETPGID. + +Fri Feb 7 11:51:12 1992 Per Bothner (bothner at cygnus.com) + + * mips-tdep.c (mips_print_registers): Print correct register + number for double pseudo-registers. + +Fri Feb 7 07:56:05 1992 John Gilmore (gnu at cygnus.com) + + * buildsym.c (read_struct_type): Avoid double-bump of parse ptr + in the op$::OPERATOR. case. From Steven McCanne, + . + + * exec.c (set_section_name): Pass arg to exec_files_info; + only call it if interactive. From Francis Kauth . + +Thu Feb 6 17:41:32 1992 John Gilmore (gnu at cygnus.com) + + * main.c (print_gdb_version): Copyright msg: only this year. + (cd_command): Avoid changing current_directory on error. + +Thu Feb 6 15:14:01 1992 Per Bothner (bothner at cygnus.com) + + * mipsread.c (parse_partial_symbols): Handle dependencies + between partial symbol tables (when not doing stabs-in-ecoff). + (This used to be handled by parse_fdr, but parse_fdr was + incompatible with handling stabs-in-ecoff, so the code + was re-written to not use parse_fdr. Unfortunately, + the logic to handle dependencies was overlooked.) + +Thu Feb 6 11:51:39 1992 Steve Chamberlain (sac at rtl.cygnus.com) + + * coffread.c (read_enum_type): Use the size of a target int when + describing enum. + * defs.h: added new #define for TARGET_PTR_BIT, defaults to size + of target int. + * h8300-tdep.c, remote-hms.c, tm-h8300.h: too many changes to count + * symtab.c (lookup_reference_type, lookup_ptr_type): use + TARGET_PTR_BIT to determine size of a pointer + * values.c (unpack_long): when unpacking a REF or a PTR don't + assume the size of the type. + +Wed Feb 5 22:29:59 1992 John Gilmore (gnu at cygnus.com) + + * mipsread.c (parse_symbol): Avoid clobbering enum pointer when + looking at its members. Improve guess between struct and union, + only assuming union if multiple members have offsets of zero. + +Tue Feb 4 18:05:44 1992 Per Bothner (bothner at cygnus.com) + + * mipsread.c: Use (FP0_REGNUM-32) instead of magic number 6. + (This is just for clarity - and one day permitting us to + change FP0_REGNUM from 38 to 32, which would make more sense.) + * tm-mips.h: Added STAB_REG_TO_REGNUM macro, so that + register numbers in stabs-in-ecoff get handled correctly. + +Sat Feb 1 04:45:10 1992 Stu Grossman (grossman at cygnus.com) + + * xm-vax.h, xm-vaxult.h, xm-vaxbsd.h, config/mh-vaxult, + config/mh-vaxbsd, configure.in: Split up config stuff for Vaxen + into BSD and Ultrix. + +Sat Feb 1 04:39:41 1992 John Gilmore (gnu at cygnus.com) + + * dbxread.c (dbx_symfile_init): Call malloc, not xmalloc. + +Sat Feb 1 04:15:41 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Increment version to 4.4.1. + * main.c (print_gdb_version): Update copyright notice. + +Sat Feb 1 01:43:11 1992 Per Bothner (bothner at cygnus.com) + + * mipsread.c: Prepend "struct " to the names of structure + types, and similarly for enums and unions. (This used + to be done, but got lost in the re-write to "guess" the + difference between enum/struct/union.) + Also, guess that a tag is an enum if the first member + has type btNil. + +Fri Jan 31 21:45:51 1992 Stu Grossman (grossman at cygnus.com) + + * xm-vax.h: #ifndef ultrix around #include of endian.h and + limits.h (sigh). + +Fri Jan 31 00:05:01 1992 John Gilmore (gnu at cygnus.com) + + * Projects: Patching executables is done. + * Makefile.in (VERSION): Roll to gdb-4.4. + * README, WHATS.NEW: Update for gdb-4.4. + + * symfile.c (reread_symbols): Whenever we reread one object + file's symbols, we must restart the scan, because the object_files + chain has been permuted. + + * exec.c (exec_files_info): Split out into print_section_info. + Print BFD filename of each section if it's not the default one. + * core.c (core_files_info): Call print_section_info. + + * xm-vax.h: Include a few system header files whose definitions + must precede defs.h. + * language.c, language.h: Make some things const. + * expression.h, main.c: const spreads like ooze. + + * mem-break.c (break_insn, break_insn_size): Use unsigned chars, + since BREAKPOINT values can be >0x80. + +Thu Jan 30 17:21:14 1992 Stu Grossman (grossman at cygnus.com) + + * infrun.c, xm-i386sco.h: SCO needs to use setpgid(). + +Thu Jan 30 01:04:23 1992 John Gilmore (gnu at cygnus.com) + + * sparc-pinsn.c: Remove kludge for preferring architectures. + Remove #ifdef's for SORT_NEEDED. We need to sort the table, now + and forever. Add `add' instruction to the set that get checked + for a preceding `sethi' in order to print an absolute address. + Corresponding changes in ../include/opcode/sparc.h needed + to eliminate garbage instructions. + +Wed Jan 29 19:24:34 1992 Per Bothner (bothner at cygnus.com) + + * mipsread.c (parse_partial_symbols): Make sure partial + symbols are created for external symbols (as used to be + the case). This is a bit of a pain with the mips-coff. + It uses a table which points to all of the external + symbols belonging to a particular FDR or psymtab. + Once we've generated this table, we might as well save + it, and then use it in psymtab_to_symtab_1 to find + the symbols to pass to parse_external(). + * symfile.c, symfile.c: New function start_psymtab_common + to share the common parts of allocating a new psymtab + for dbxread, mipsread (and later dwarfread). Its code + was pulled out from start_psymtab in dbxread.c. + * dbxread.c (start_psymtab): Use start_psymtab_common(). + + * valprint.c (val_print): If there is an error when trying + to print a string, check to see if there really is a problem + by reading just one character. If that works, assume + things are ok. + +Wed Jan 29 18:58:43 1992 Stu Grossman (grossman at cygnus.com) + + * sparc-pinsn.c (compare_opcodes): Make it prefer v6, v7, + cypress, v8 mnemonics in that order. + +Tue Jan 28 17:32:13 1992 Per Bothner (bothner at cygnus.com) + + * sparc-pinsn.c: Put the qsort() back in. + +Mon Jan 27 18:51:03 1992 John Gilmore (gnu at cygnus.com) + + * findvar.c (read_register, write_register): Handle machines + where REGISTER_TYPE is not the same size as "int". + + Handle debug symbols in dynamically loaded (relocated) code: + + * dbxread.c (read_ofile_symtab): Fix up N_CATCH better. Pass + offset to process_one_symbol. + (process_one_symbol): Take new offset parameter. Add it into + appropriate symbol types to relocate symbols to loaded addresses. + Handle all possible symbol types, and complain() about types that + we don't expect to see. + * mipsread.c (psymtab_to_symtab_1): Pass offset of zero to + process_one_symbol (FIXME, should pass real offset). + + Misc bugfixes: + + * breakpoint.c (resolve_sal_pc): Split out code to resolve a + sal's PC value. + (set_breakpoint, break_command_1, until_break_command, + catch_command_1, breakpoint_re_set_one): Use it. + * symtab.h (resolve_sal_pc): Declare. + * infcmd.c (jump_command): Use resolve_sal_pc. + + * source.c (list_command): Shorten "FILE, line N" to "FILE:N". + + * putenv.c (putenv): Avoid unportably casting pointers to unsigneds. + + * c-exp.y (yylex): `this' and `template' are only tokens in C++. + + * xm-convex.h, xm-hp300bsd.h, xm-isi.h, xm-merlin.h, xm-news.h, + xm-np1.h, xm-pn.h, xm-pyr.h, xm-rtbsd.h, xm-symmetry.h, xm-umax.h: + Remove MISSING_VPRINTF declaration, and superfluous "kgdb" defines. + +Mon Jan 27 15:46:21 1992 Stu Grossman (grossman at cygnus.com) + + * dbxread.c (process_one_symbol): Make a first cut at handling + symbol tables generated by Sun's acc. (#ifdef'd out, FIXME.) + + * symtab.c (find_pc_line): Fix stepping into and out of #included + files. + +Mon Jan 27 13:00:55 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (OPCODES): Remove OPCODES defs and refs. There is + no longer any need to copy ../include/opcode/* into gdb. + +Mon Jan 27 12:30:38 1992 John Gilmore (gnu at cygnus.com) + + * ChangeLog, ChangeLog-9091: Split ChangeLog at 1992. + +Sun Jan 26 19:05:40 1992 Per Bothner (bothner at cygnus.com) + + * valprint.c (type_print_base, type_print_method_args): + Print C++ constructor methods without bogus "return type." + +Sat Jan 25 15:57:59 1992 Fred Fish (fnf at cygnus.com) + + * infptrace.c (child_xfer_memory): Parameter "target" should + be a pointer to a structure, not the entire structure. + +Fri Jan 24 01:30:27 1992 Fred Fish (fnf at cygnus.com) + + * depend: Convert the couple of references to ansidecl.h that + used the local gdb version to use the ../include version. + +Thu Jan 23 22:24:43 1992 Fred Fish (fnf at cygnus.com) + + * procfs.c + (child_xfer_memory): Takes pointer to a struct, not entire struct. + (inferior_proc_init): Fix non-ANSI version of args. + (attach): Call print_sys_errmsg with correct number of args. + (mappingflags): Make static, does not need to be global. + + * i386-tdep.c (i386_frame_num_args): Takes a pointer to a struct + not the entire struct itself. + + * valops.c (value_assign): Cast some args to modify_field() and + {read,write}_register_bytes() correctly. + + * ansidecl.h: Removed, is duplicate of ../include/ansidecl.h + + * Makefile.in (MALLOCSRC): Removed reference to removed local + copy of ansidecl.h. + + * dwarfread.c (list_in_scope): Needs an initial value, use file + scope. + +Mon Jan 20 19:06:28 1992 Stu Grossman (grossman at cygnus.com) + + * main.c (main): Make option_index local to keep new getopt happy. + main.c, solib.c, Makefile.in: Update copyright notices. + +Mon Jan 20 08:54:00 1992 Michael Tiemann (tiemann at cygnus.com) + + * cplus-dem.c (cplus_demangle): Correctly demangle destructors. + +Sat Jan 18 17:17:45 1992 Stu Grossman (grossman at cygnus.com) + + * Makefile.in (HFILES): Add partial-stab.h. + +Sat Jan 18 16:45:01 1992 Fred Fish (fnf at cygnus.com) + + * config/mh-stratus, config/mt-stratus, tm-stratus.h, xm-stratus.h: + New files for stratus. Not complete enough to actually build + on the Stratus machine; that awaits copyright assignment for + i860 changes. + + * Makefile.in (USER_CFLAGS): Add macro specifically reserved + for getting custom flags into CFLAGS when doing makes. + + * configure.in: Add config information for stratus. + +Thu Jan 16 00:51:46 1992 Fred Fish (fnf at cygnus.com) + + * dbxread.c (process_one_symbol): Pass address of structure + to complain(), rather than the whole structure. + +Wed Jan 15 09:56:16 1992 Fred Fish (fnf at cygnus.com) + + * solib.c (solib_add_common_symbols): Only compile in when not + using SVR4 style shared libraries. + +Tue Jan 14 22:34:00 1992 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (locval): Add offreg flag to indicate location + values that are computed off a base register. + + * dwarfread.c (new_symbol): Rework TAG_global_variable and + TAG_local_variable cases to account for static variables + within function scopes. + +Tue Jan 14 12:28:52 1992 Stu Grossman (grossman at cygnus.com) + + * inflow.c: remove #include . Not necessary, and + doesn't exist on some systems. + + * infrun.c (wait_for_inferior!!!!): Prevent gdb from hanging when + nexting over recursive function calls. + + * target.c (target_read_string): Create this routine to read null + terminated strings from the target. It deals with running off the + end of memory elegantly as well. solib.c (find_solib): Use + target_read_string() to avoid problems with running off the end of + memory. + + * inflow.c (child_terminal_info): #ifdef TIOCPGRP around lines + that reference pgrp_inferior. + +Mon Jan 13 14:57:11 1992 Per Bothner (bothner at cygnus.com) + + * tm-mips.h: Removed BLOCK_ADDRESS_ABSOLUTE, now that + mips-tfile has been hacked to act more "traditionally." + * dbxread.c: Fixed typo in comment. + +Sun Jan 12 13:08:36 1992 Per Bothner (bothner at cygnus.com) + + * mips-tdep.c (mips_skip_prologue): Add some number of + 'sw' instructions before 'addiu' adjusts the stack. + +Fri Jan 10 13:47:06 1992 Fred Fish (fnf at cygnus.com) + + * dwarfread.c (start_symtab, end_symtab, scopecount, openscope, + freescope, buildblock closescope, record_line, add_symbol_to_list, + gatherblocks, make_blockvector): Extensive changes to switch + to generic symbol table building code in buildsym.c. Remove + scope tree structures and functions, symbol table building + functions, and lots of other small changes. + + * dwarfread.c: Add new macros GCC_PRODUCER and STREQN. Remove + GCC_COMPILED_FLAG_SYMBOL and GCC2_COMPILED_FLAG_SYMBOL. + +Tue Jan 7 13:09:57 1992 Stu Grossman (grossman at cygnus.com) + + * buildsym.c (cleanup_undefined_types): Add support for enums. + This fixes the 'GDB internal error. cleanup_undefined_types with + bad type' problem. + +Sun Jan 5 09:47:50 1992 Stu Grossman (grossman at cygnus.com) + + * dbxread.c: detect gcc2 compilations. + +Thu Jan 2 15:07:41 1992 John Gilmore (gnu at cygnus.com) + + * sparc-pinsn.c: Rename bitfields that overlap with macro names + in ../include/opcode/sparc.h. + +Wed Jan 1 04:29:00 1992 Fred Fish (fnf at cygnus.com) + + * Makefile.in: Change tm-svr4.h to tm-sysv4.h. Change xm-svr4.h + to xm-sysv4.h. Split OPCODE_DIR into OPCODE_DIR1 and OPCODE_DIR2 + to reflect actual locations of opcode files, so TAGS target will + be buildable. + + * i386-tdep.c: Change an erroneous 'm68k' reference to 'i386'. + + * i386-tdep.c (supply_fpregset, fill_fpregset): Remove m68k + code. + + * m68k-tdep.c (supply_fpregset, fill_fpregset): Fix array + dereferencing to access the correct elements. + + * valops.c (value_addr): Declare return type of external func + value_copy(). + + * xcoffread.c: Undefine next_symbol_text before redefining it. + +For older changes see ChangeLog-9091 + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-93 b/gdb/ChangeLog-93 new file mode 100644 index 0000000000..463154d9ce --- /dev/null +++ b/gdb/ChangeLog-93 @@ -0,0 +1,7597 @@ +Fri Dec 31 14:33:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * nindy-share/nindy.c: Fix order of arguments to store_unsigned_integer + (second and third arguments were reversed). + (say): Use varargs. + +Fri Dec 31 12:13:47 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * remote-mips.c: Add timeout parameter to mips_request and + mips_receive_packet. + (callers): pass in mips_receive_wait except mips_initialize (where + we use it to clean up the kludge where we had been changing + mips_receive_wait temporarily) and mips_wait (where we pass in + -1 for no timeout). + +Fri Dec 31 14:33:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stack.c (print_block_frame_locals): Also print LOC_BASEREG variables. + +Fri Dec 31 06:55:38 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.c (find_methods): Call fprintf_symbol_filtered with DMGL_ANSI. + +Thu Dec 30 10:16:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * values.c (unpack_long): Fix garbled error message. + + * remote-mips.c (mips_error): New function. + * remote-mips.c: Use it instead of error() most places. + * remote-mips.c (mips_receive_packet): New arg throw_error. + (mips_initialize): Use it not catch_errors. + * defs.h: Declare error_pre_print and warning_pre_print here... + * main.c: ...not here. + + * breakpoint.c (breakpoint_chain): Make static. + * breakpoint.c, breakpoint.h (frame_in_dummy): New function. + * stack.c (print_frame_info): Use it. + +Thu Dec 30 07:41:36 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * exec.c (add_to_section_table): Check for SEC_ALLOC instead of + SEC_LOAD to handle .bss segments properly. + +Thu Dec 30 10:16:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Enable code which assumes that if + we jump into the prologue from another function, then it was a + subroutine call. #if 0 AT_FUNCTION_START; the above code should + take care of this case. + +Wed Dec 29 12:32:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valprint.c (val_print_string): Change chunksize from 200 + to 8. + + * symfile.c (generic_load): If no arguments, get file name + from get_exec_file. + + * c-exp.y: Revert Kung's change. "..." is not a type, and the + change caused "p (...)0" to dump core. + * gdbtypes.c (check_stub_method): Don't pass "..." to + parse_and_eval_type. This should fix the bug which Kung was + trying to fix. + + * stabsread.c (define_symbol): If we choose not to combine + two symbols, don't just ignore the second (LOC_REGISTER) one. + * printcmd.c (print_frame_args): If we have a LOC_ARG and a + LOC_REGISTER, use the LOC_ARG not the LOC_REGISTER. + +Tue Dec 28 15:08:00 1993 Fred Fish (fnf@deneb.cygnus.com) + + * solib.c (DEBUG_BASE): Remove macro and all references. + * solib.c (debug_base_symbols): Add array of symbols to lookup. + * solib.c (IGNORE_FIRST_LINK_MAP_ENTRY): Add macro. + * solib.c (look_for_base, locate_base): Use debug_base_symbols. + * solib.c (find_solib): Use IGNORE_FIRST_LINK_MAP_ENTRY. + +Tue Dec 28 12:06:57 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * c-exp.y : fix grammar to parse ellipsis (...) + +Mon Dec 27 18:42:14 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * stabsread.c (read_type): fix problem when reading static member + of a class. caused by change to allow :: inside template + instantiated name. + +Mon Dec 27 11:07:05 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbtypes.h: Expand on comments for TYPE_CODE_BITSTRING and + TYPE_CODE_STRING a bit. + + * m68k-tdep.c (m68k_skip_prologue, m68k_find_saved_regs): + Allow pea %fp; move.l %sp, %fp instead of link instruction to + set up the new frame. + + * main.c (init_main): Change "set remotedebug" back to var_zinteger + from var_boolean. + + * c-exp.y (yylex): Don't try to deal with nested types. + + * cp-valprint.c (cplus_print_value): Call check_stub_type on + TYPE_BASECLASS (type, i) before we look at its name. + + * dbxread.c: Move default definition of GCC_COMPILED_FLAG_SYMBOL + from here . . . + * symtab.h: . . . to here. + * dbxread.c (record_minimal_symbol): Move check for gcc{,2}_compiled. + and __gnu_compiled* from here . . . + * minsyms.c (prim_record_minimal_symbol_and_info): . . . to here. + * minsyms.c (prim_record_minimal_symbol): Call + prim_record_minimal_symbol_and_info rather than duplicating code. + * minsyms.c, symtab.h (prim_record_minimal_symbol{,_and_info}), + coffread.c (record_minimal_symbol), + xcoffread.c (RECORD_MINIMAL_SYMBOL), callers: Add objfile parameter. + +Sun Dec 26 20:44:02 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * dbxread.c (process_one_symbol): Handle stabs-in-som just like + stabs-in-elf. + (pastab_build_psymtabs): Likewise. + + * hppa-tdep.c: Change all comments to reference %r3 or frame + pointer rather than %r4. + (frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the + frame pointer. + + * config/pa/tm-hppa.h (FP_REGNUM): Define as %r3. + (FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer. + (CALL_DUMMY): Likewise. + +Sun Dec 26 16:59:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * exec.c (exec_file_command): If error occurs after we have opened + exec_bfd but before we call push_target, make sure to close exec_bfd. + + * infrun.c (wait_for_inferior): Remove confusing and inaccurate + stuff about subroutine calls, return, etc., from comment which + says "We've wandered out of the step range.". + +Sun Dec 26 09:18:10 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): When checking whether the line has + changed, check the symtab as well. + +Sun Dec 26 09:18:10 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbtypes.c (force_to_range_type): Use switch statement. + complain() not warning() if the TYPE_CODE isn't one we know how to + deal with gracefully. Use builtin_type_int not + lookup_fundamental_type (the objfile we passed to + lookup_fundamental_type was sometimes NULL). + + * valops.c (call_function_by_hand, push_word), defs.h (push_word), + convex-xdep.c, m88k-nat.c, i386m3-nat.c, mips-tdep.c, mipsm3-nat.c, + ns32km3-nat.c, remote-bug.c, m88k-tdep.c, remote-hms.c, remote-mips.c, + config/gould/tm-np1.h, hppa-tdep.c (hppa_fix_call_dummy), remote-vx.c: + Use REGISTER_SIZE, unsigned LONGEST, and + {store,extract}_unsigned_integer, instead of sizeof + (REGISTER_TYPE) and REGISTER_TYPE. + * All tm.h files: Change REGISTER_TYPE to REGISTER_SIZE. + * hppa-tdep.c (pa_print_fp_reg): Remove unused variable val. + + * Makefile.in (ALLDEPFILES): Remove i386ly-nat.c and m68kly-nat.c. + Add lynx-nat.c. + +Sat Dec 25 20:05:41 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (init_extra_frame_info): Correctly adjust the base + of the current frame when "fromleaf" is true. Do not adjust the + frame base of the innermost frame if it is a leaf function. + +Sat Dec 25 13:39:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (define_symbol): Only combine a p/r pair into a + LOC_REGPARM if REG_STRUCT_HAS_ADDR. + +Sat Dec 25 09:50:29 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * valops.c (value_struct_elt): Check for (value)-1 return from + search_struct_method. + +Sat Dec 25 09:50:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * defs.h: Move definitions of TARGET_*_BIT after include of tm.h. + The old way (using #undef in tm.h) was ugly and asking for + trouble, because it makes it possible for some file to use the + wrong definition. Move definition of HOST_CHAR_BIT after definition + of TARGET_CHAR_BIT. + * config/alpha/tm-alpha.h, config/h8300/tm-h8300.h, + config/h8500/tm-h8500.h, config/z8k/tm-z8k.h: Don't undef TARGET_*_BIT + before defining them. + + * mdebugread.c: Change the builtin_type_* in this file to + mdebug_type_* and make them static. Use TYPE_CODE_ERROR for + complex and float decimal. + + * printcmd.c (disassemble_command): Call wrap_here between printing + address and printing instruction. + +Fri Dec 24 14:23:57 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (read_type): Don't fall through 'S' case (the case it + was falling though happened to do the right thing ("break;") but that + is hardly a good thing to assume). + +Tue Dec 21 13:32:02 1993 Per Bothner (bothner@kalessin.cygnus.com) + + * ch-exp.y (match_dollar_tokens): Fix off-by-one bug. + * ch-lang.c (chill_is_varying_struct), ch-lang.h: New function. + * ch-lang.c (chill_printstr): Use double quotes, not single quotes. + * ch-typeprint.c (chill_type_print_base): Handle TYPE_CODE_BITSTRING. + Improve printing of TYPE_CODE_STRING, TYPE_CODE_SET, and + TYPE_CODE_STRUCT (including checking chill_is_varying_struct). + Print TYPE_DUMMY_RANGE by printing its TYPE_TARGET_TYPE. + Handle TYPE_CODE_ENUM. + * ch-valprint.c (chill_val_print): Handle TYPE_CODE_BITSTRING. + For TYPE_CODE_STRING, never print address. Handle VARYING strings. + * gdbtypes.c (force_to_range_type): New. + * gdbtypes.c (create_set_type): Make work, following Chill layout. + * gdbtypes.h (TYPE_LOW_BOUND, TYPE_HIGH_BOUND, TYPE_DUMMY_RANGE): New. + * stabsread.c (read_type): Distinguish string and bitstring from + char-array and set. + * valarith.c (value_subscript), valops.c (value_coerce_array): + Handle STRINGs as well as ARRAYs. + * valarith.c (value_bit_index): Fix think. Use new macros. + + +Fri Dec 17 10:45:32 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * symtab (decode_line_1): fix a bug when position char is not + set correctly. + * c-valprint (c_val_print): handle vtbl printing when vtbl is not + set up yet. + +Thu Dec 16 16:46:01 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * mips-tdep.c (read_next_frame_reg): If SIGFRAME_REG_SIZE is not + defined, define it as 4. + +Thu Dec 16 13:08:01 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/m68k/nm-hp300bsd.h: Correctly identify 4.3BSD vs 4.4BSD. + + * config/m68k/tm-hp300bsd.h (REMOTE_BPT_VECTOR): Define. + + * config/m68k/tm-m68k.h (REMOTE_BPT_VECTOR): Allow targets to + override. + (REMOTE_BREAKPOINT): Likewise. + +Thu Dec 16 09:14:58 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (read_hp_function_type): Correctly handle + pass-by-value structures > 64bits in size. + (process_one_debug_symbol): Likewise. + +Mon Dec 13 20:17:39 1993 Per Bothner (bothner@kalessin.cygnus.com) + + Implement support for Chill POWERSETs. + * ch-exp.y (operand_2): Implement 'Element IN PowerSet'. + * ch-typeprint.c (chill_type_print_base): Handle POWERSETs. + * ch-valprint.c (chill_val_print): Handle TYPE_CODE_SET. + * eval.c (evaluate_subexp): Implement BINOP_IN. + * expression.h (enum exp_opcode): Added BINOP_IN. + * gdbtypes.c (create_set_type), gdbtypes.h: New function. + * stabsread.c (read_type): If 'S', create a set type. + * valarith.c (value_bit_index, value_in), value.h: New functions, + for indexing in SETs. + +Mon Dec 13 06:42:37 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * paread.c (pa_symfile_init): Check for the existance of stabs + after DBX_TEXT_SECT has been initialized. + +Tue Nov 23 17:29:28 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/h8300/tm-h8300.h (BREAKPOINT): Insn changed to sleep. + (DECP_PC_AFTER_BREAK): Now is 0. + * config/h8500/tm-h8500.h (REGISTER_BYTES, REGISTER_BYTE, + REGISTER_NAMES): update to new view. (INIT_EXTRA_FRAME_INFO): No + extra frame info now. + * config/sh/sh.h (NOP): Define NOP insn. + * config/z8k/tm-z8k.h (BIG): is now sim_z8001_mode. + * config/z8k/z8ksim.mt (TDEPFILES): Add remote-sim.o to list. + * ser-go32.c: Lint. (strncasecmp): Removed, now in libiberty. + (go32_readchar): Special handling for faster polling. (async + structure): Volatile. + * h8300-tdep.c (print_register_hook): Allocate and use the right + number bytes for the raw register. + * h8500-tdep.c (regoff, frame_find_saved_reg, examine_prologue): + deleted. (h8500_register_size, h8500_register_virtual_type, ): + Use new way of counting registers. + * remote-e7000.c (echo_index): deleted. (expect): Better handling + of user interrupts. (expect_prompt): Remove never used log file + support. (want, want_nopc): Add support for H8/300H. + (fetch_regs_from_dump): Treat \r and \n as whitespace. + (e7000_drain): Send an "end" command before waiting for output to + stop. (e7000_wait): Cope with H8/300H, better handling of user + interrupts. (why_stop, expect_n, sub2_from_pc): New function. + * remote-utils.c (gr_load_image): call fflush and QUIT more regularly. + * utils.c (notice_quit): New function for polling for user interrupts. + +Fri Dec 10 15:53:56 1993 Per Bothner (bothner@kalessin.cygnus.com) + + * stabsread.c (read_array_type): Allow negative array bounds, + without interpreting that to mean "adjustable." + * ch-valprint.c (chill_val_print): Handle RANGE types. + * ch-typeprint.c (chill_type_print_base): Handle BOOL. + Handle variant records. Handle RANGE types. + +Tue Dec 7 15:41:32 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/mips/idt.mt: Use tm-idt.h instead of tm-bigmips.h. + * config/mips/idtl.mt: Use tm-idtl.h instead of tm-mips.h. + * config/mips/tm-idt.h, config/mips/tm-idtl.h: New files; use + different BREAKPOINT value for IDT. + + * mipsread.c: Include bfd.h and coff/sym.h. + +Mon Dec 6 16:34:10 1993 K. Richard Pixley (rich@cygnus.com) + + * ser-unix.c (set_tty_state): set the rest of the terminal state + pieces. + +Mon Dec 6 12:01:37 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in: Recognize mips* for all mips targets. + (mips*el-*-elf*, mips*-*-elf*): New targets; use idt and idtl. + + Added Irix 5 support. + * configure.in (mips-sgi-irix5*): New host and target. Use irix5 + for both. + * config/mips/irix5.mh, config/mips/irix5.mt, + config/mips/xm-irix5.h, config/mips/nm-irix5.h, + config/mips/tm-irix5.h, irix5-nat.c: New files for Irix 5 support. + * mdebugread.c: New file, split out of mipsread.c. Added + elfmdebug_build_psymtabs routine. Added some checks on external + symbols. Changed code to keep ecoff_debug_info and + ecoff_debug_swap structs in the psymtab and in global pointers + rather than retrieving them from the bfd. Also changed to keep + the pending list with the psymtab rather than the objfile (each + psymtab for a single objfile points to the same pending list). + * mipsread.c: Bulk of file moved into mdebugread.c, leaving just + the sym_fns. + * Makefile.in (SFILES): Added mdebugread.c. + (OBS): Added mdebugread.o. + (mdebugread.o): New target. + * symfile.h: Declare mdebug_build_psymtabs and + elfmdebug_build_psymtabs. + * elfread.c (struct elfinfo): Added mdebugsect field. + (elf_locate_sections): Remember location of .mdebug section. + (elf_symfile_read): Call elfmdebug_build_psymtabs on .mdebug + section. + * infrun.c (AT_FUNCTION_START): Set to 0 if not already defined. + (wait_for_inferior): Use AT_FUNCTION_START if it is defined to see + if PC is at the start of a function. + * mips-tdep.c (read_next_frame_reg): Use SIGFRAME_REG_SIZE, and + give it a default definition. + (mips_skip_prologue): Skip instructions which initialize $gp + register. + (in_sigtramp): New procedure, moved in from mipsread.c. + * config/mips/tm-mips.h: Declare in_sigtramp. + + * serial.h (serial_fdopen): Make parameter const to match + function definition. + +Fri Dec 3 14:20:43 1993 Stu Grossman (grossman at cygnus.com) + + * config/mips/irix4.mh: Enable ser-tcp.o. + +Tue Nov 30 15:24:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (check): Do not use subdir_do, so that + TARGET_FLAGS_TO_PASS is used correctly. + +Mon Nov 29 16:10:38 1993 Stu Grossman (grossman at cygnus.com) + + * i386-nlmstub.c: Undo I/O redirection changes by Tom Lord. + These definitely won't work under Netware. + +Mon Nov 29 15:34:58 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * stabsread.c(read_struct_field): Fix the check when getting to + member functions. + +Mon Nov 29 16:48:16 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + gcc -Wall -O lint: + * mips-tdep.c (heuristic_proc_desc): Initialize reg30 to avoid + warning. Unnest comment. + (init_extra_frame_info): Remove unused variable mask. + (MASK): Fully parenthesize. + (mips_push_dummy_frame): Remove unused variable val. + (mips_skip_prologue): Remove unused variables f and b. + +Mon Nov 29 12:23:25 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_symbol, parse_partial_symbols): Do not create + (partial) symbols for opaque struct definitions. + +Mon Nov 29 11:36:57 1993 Stu Grossman (grossman at cygnus.com) + + * i386ly-tdep.c (i386lynx_saved_pc_after_call): Change call_inst + to unsigned char to avoid domain warning for some values. + +Mon Nov 22 23:42:59 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote-e7000.c (e7000_wait): Cope with H8/300 register dump. + * config/h8300/h8300hms.mt: Add remote-e7000. + +Mon Nov 22 11:03:45 1993 Fred Fish (fnf@cygnus.com) + + Merged changes from kev@spuds.geg.mot.com (Kevin A. Buettner): + * gdb/config/m88k/delta88.mh (NATDEPFILES): Added corelow.o and + coredep.o to this list. + * gdb/m88k-nat.c (m88k_register_u_addr): Avoid error when passed + the number for an M88110 extended register by just returning the + address of r0. + +Sat Nov 20 09:20:51 1993 Fred Fish (fnf@rtl.cygnus.com) + + * go32-xdep.c (re_comp, re_exec): Remove stubs now that gdb + always uses it's own version of regex. + +Fri Nov 19 18:23:19 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * valops.c(value_struct_elt_for_reference): enhance search operator in + c++. + * symtab.c(decode_line_1): same as above. + +Fri Nov 19 15:08:47 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (decode_line_1): Add comment about use of + return_to_top_level directly instead of error. Add comment saying + that the '' should not be needed--that the completer should be fixed. + +Fri Nov 19 11:00:33 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * symtab.c(decode_line_1): fix the inconsistency of setting + breakpoint with '' or without them. The '' is needed when you + want name completion. + +Thu Nov 18 08:25:50 1993 Fred Fish (fnf@cygnus.com) + + * valprint.c (val_print_string): When looking for a null + terminator compare current bufsize to fetchlimit to determine + when to stop, instead of computing buffer+fetchlimit which + may overflow for very large limits (like "unlimited"). + +Wed Nov 17 18:23:09 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * eval.c(evaluate_subexp): to use unified search so type conversion + operator works in calling method. + * valarith.c(value_x_binop, value_x_unop): same as above. + * valops.c(search_struct_method): same as above. + +Wed Nov 17 18:47:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * mipsread.c: Change use of ECOFF information to correspond to + changes in bfd/libecoff.h. + (mipscoff_symfile_offsets): Made static. + +Wed Nov 17 09:43:31 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * valops.c (typecmp): improve prototype matching when calling + a method. Make 'p (*(ostream *) &cout) << "lll" ' to work. + * eval.c(evalute_subexp): fix operator search problem when call + like p x.'operator+'(i). + +Tue Nov 16 17:15:03 1993 Stu Grossman (grossman at cygnus.com) + + * i386ly-nat.c, i386lynx-nat.c, m68kly-nat.c: Remove. Move + common code into lynx-nat.c. + * lynx-nat.c: New module. Contains portable code for Lynx native + stuff (mostly ptrace related). + * config/i386/i386lynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o + * config/m68k/m68klynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o + + * config/nm-lynx.h, config/tm-lynx.h: New files to contain + non-architecture specific native and target defs. + * config/i386/nm-i386lynx.h, config/i386/tm-i386lynx.h, + config/m68k/nm-m68klynx.h, config/m68k/tm-m68klynx.h: Move all + (arch) portable stuff into ../{tm nm}-lynx.h. + +Tue Nov 16 13:33:47 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (gdb_mangle_name): Only assume that the physname is + the entire mangled name if it looks like the mangled name of a + constructor. Needed for testsuite to work with GCC 2.4.5. + + * a68v-nat.c: Replace with new version from Troy Rollo. The + version I am replacing appears to be an old copy of sun3-nat.c. + * dstread.c (dst_symfile_read): Replace sort_all_symtab_syms call + with loop. + + * Makefile.in (TAGS): Depend on TAGFILES_{NO,WITH}_SRCDIR. + + * Makefile.in: (HFILES,TAGFILES): Split into _WITH_SRCDIR and + _NO_SRCDIR versions. + (TAGS): Only add srcdir to TAGFILES_NO_SRCDIR. + (This is part of a long saga involving me putting srcdir on + everything (perhaps for now-obsolete reasons, I forget), Rich + removing the srcdir from everything, Stu putting it back some + places for Sun make, and me just now getting around to fixing + `make TAGS' again). + +Mon Nov 15 12:29:10 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * stack.c(print_frame_info): print demangled function name + ansi style. + +Mon Nov 15 14:32:29 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote-e7000.c: New file to cope with the Hitachi E7000 ICE. + * remote-utils.c, remote-utils.h (gr_load_image): New function to + download to target. + * h8300-tdep.c, h8500-tdep.c, remote-z8k.c, sh-tdep.c z8k-tdep.c + (sim_load): delete. + * remote-sim.c (gdbsim_load): Use gr_load_image, rather than + sim_load. + * config/sh/sh.mt: Add remote-e7000 + +Mon Nov 15 11:38:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i386/linux.mh: Remove XM_CLIBS, TERMLIB, SYSV_DEFINE, and + REGEX. + * config/i386/xm-linux.h: Don't include xm-i386v.h. Define + HOST_BYTE_ORDER ourselves. Define HAVE_TERMIOS not HAVE_TERMIO. + Define NEED_POSIX_SETPGID. Include unistd.h. + +Mon Nov 15 12:29:10 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * symtab.c(gdb_mangle_name): fix the problem with constructor + name mangling. + +Mon Nov 15 11:38:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbtypes.h: Add TYPE_FLAG_TARGET_STUB. + * gdbtypes.c (check_stub_type): On TYPE_FLAG_TARGET_STUB, do + what cleanup_undefined_types does for arrays, except we clear + TYPE_FLAG_TARGET_STUB if we fix up the type. + * stabsread.c (cleanup_undefined_types): Add comments about how + doing arrays here is no longer the clean way to do it. + (read_array_type): Set TYPE_FLAG_TARGET_STUB as well as calling + add_undefined_type. + * c-typeprint.c, ch-typeprint.c: Move call to check_stub_type + outside switch so it happens for all type codes. + * cp-valprint.c (cp_print_value_fields): Recurse to val_print, + instead of c_val_print, so that check_stub_type gets called. + + * gdbtypes.h, gdbtypes.c, m2-lang.c, ch-lang.c, c-lang.c: Remove + TYPE_FLAG_SIGNED. It was inconsistently set, never checked + (except in recursive_dump_type), and is pointless. + +Mon Nov 15 00:40:38 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * paread.c (pa_symfile_init): Look for the $TEXT$ section rather + than the .text section. + +Sun Nov 14 00:28:13 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c: Remove #if 0'd dbx_class_complaint. We now handle + this (more or less) gracefully, and complain() was never a good + way of dealing with this. + + * stabsread.c (read_type): Skip the colon when reading a + cross-reference. Only complain, not error_type, on unrecognized + cross-reference types. error_type, not dump core, if the colon is + missing. + +Fri Nov 12 16:23:08 1993 Stu Grossman (grossman at cygnus.com) + + * config/m68k/tm-sun3.h: Disable use of alternate breakpoint insn + when doing remote stuff. + +Fri Nov 12 16:22:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * c-exp.y (yylex): Call lookup_symtab not lookup_partial_symtab. + + * partial-stab.h: Ignore ':' symbol descriptors. Same case as + Kung's stabsread.c change. + +Fri Nov 12 11:18:02 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * stabsread.c (patch_block_stabs, define_symbol, read_type): in + g++ template instantiation, nested class can be part of the + params, and '::' can gets into symbol or type names. This is + to fix the problem. + + * gdbtypes.c (lookup_struct_elt_type): Handle type ref or pointer + to struct/union case. + +Fri Nov 12 10:39:31 1993 Stu Grossman (grossman at cygnus.com) + + * coff-solib.c (coff_solib_add): Cast result of alloca(). + * m68k-tdep.c (m68k_saved_pc_after_call): Get rid of + GDB_TARGET_IS_SUN3. Use more general SYSCALL_TRAP macro. + * config/m68k/m68klynx.mh (NATDEPFILES): Remove exec.o (it's + already in TDEPFILES). + * config/m68k/tm-m68k.h (SAVED_PC_AFTER_CALL): Use + m68k_saved_pc_after_call. + * Remove all Sun3 specific stuff. + * (FIX_CALL_DUMMY): Cast arg to bfd_putb32 to unsigned char *. + * config/m68k/tm-m68klynx.h: Define SYSCALL_TRAP as trap #10. + Disable REMOTE_BREAKPOINT mechanism. + * config/m68k/tm-sun3.h: Get rid of GDB_TARGET_IS_SUN3. + * Protect from multiple includion. + * Move Sun3 specific stuff from tm-m68k.h to here. + * Define SYSCALL_TRAP as trap #0. + * Remove def of SAVED_PC_AFTER_CALL (now in tm-m68k.h). + * gdbserver/low-lynx.c: Redo all register store/fetch stuff to + make it portable for 386 and 68k. + +Fri Nov 12 09:53:26 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mips-tdep.c (init_extra_frame_info): Check to see whether the + registers mentioned in the proc_desc have been saved. This + generalizes mips_in_lenient_prologue in the sense that we keep + searching until we've found saves for all the registers, not just + look for a "lenient prologue" pattern. + * mips-tdep.c: #if 0 lenient prologue code. + + * mips-tdep.c (heuristic_proc_desc): Don't assume a host short + is 16 bits. + +Thu Nov 11 19:58:05 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i386/i386sol2.mh: Comment out corelow.o. + + * printcmd.c (address_info): Use filtered, not unfiltered functions. + We should be able to deal with a QUIT here. + +Thu Nov 11 15:22:20 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * printcmd.c (address_info): Use fprintf_symbol_filtered + to print the symbol name. + + * stabsread.c (define_symbol): Handle cfront lossage for + struct/union/enums and typedefs. + + * partial-stab.h (case N_BINCL): Update psymtab_language + as appropriate when changing subfiles. + (case N_SOL): Update psymtab_language as appropriate when + changing subfiles. Add typedef for structs, unions, and enums + when processing C++ files. + +Thu Nov 11 13:18:47 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * README: Remove information on languages and just cite the (newly + updated) information in doc/gdb.texinfo instead. + + * delta68-nat.c: Fix typos (add missing ");" and stuct -> struct). + +Wed Nov 10 09:31:10 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c (process_one_symbol, N_RBRAC): Don't clear + within_function just because local_symbols is NULL. It appears + that this bug has existed since the 10 Apr 89 change which started + clearing within_function here. + + * config/m68k/tm-m68k.h: Clean up CALL_DUMMY comment. + * config/m68k/{tm-hp300bsd.h,tm-hp300hpux.h,tm-m68k-em.h, + tm-monitor.h,tm-sun3.h,tm-vx68.h}, config/sparc/tm-sparc.h: + Define BELIEVE_PCC_PROMOTION. + * dbxread.c: Remove BELIEVE_PCC_PROMOTION define. The code which + used this was moved to stabsread.c a long time ago. + + * dstread.c (dst_sym_fns): Update for flavours. + * symfile.c (find_sym_fns): Add kludge for apollo like for rs/6000. + * dstread.c (dst_symfile_offsets): Set objfile->num_sections. + + gcc -Wall lint: + * thread.c: Include "gdbcmd.h" and . + * Makefile.in: Update dependency. + * thread.c (thread_command): Remove unused variable p. + * values.c (unpack_double): Use len instead of TYPE_LENGTH (type). + * valprint.c (print_floating): Correctly check sign bit now that + we are using unsigned arithmetic. + * symtab.c (find_pc_line_range): Remove unused variables exact_match, + ind, and l. + +Tue Nov 9 17:42:25 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * valarith.c (value_x_binop): fix search operator in class bug + * valarith.c (value_x_unop): fix search operator in class bug + +Tue Nov 9 19:20:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (init.c): Add udi2go32.o to list of files that we + should not try to search for _initialize_* functions. + + * remote-udi.c (udi_wait): Change UDIGdb_StdoutReady back to + UDIStdoutReady. It accidentally got changed on 24 Oct 93 when + stdout was changed to gdb_stdout. Likewise for UDIGetStdout, + UDIStderrReady, and UDIGetStderr. + +Tue Nov 9 12:48:06 1993 Tom Lord (lord@cygnus.com) + + * remote-hms.c (hms_wait): fixed too many arguments to putc_unfiltered. + +Tue Nov 9 12:20:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c (quit): Also call gdb_flush on standard output and error. + + * .gdbinit: Remove "source /.gdbinit". It causes a spurious error + if /.gdbinit doesn't exist (and I know of no convention of putting + something in /.gdbinit). + +Mon Nov 8 18:17:11 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * cp-valprint.c (cp_print_value_fields): change output from to + +Mon Nov 08 17:05:30 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * Makefile.in: Change RUNTEST_FLAGS back to RUNTESTFLAGS + Change RUNTEST = runtest to test for existance of + a runtest in the source tree first. + +Mon Nov 8 10:42:03 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in: Remove unused variable GCC. Remove "#CC=cc" line + which doesn't really relate to anything. + + * Makefile.in (CC_FOR_TARGET): Test for existence of gcc/xgcc, not + for existence of gcc/Makefile. + + * inflow.c (terminal_init_inferior), infptrace.c (child_resume): + Add comments about use of Lynx PIDGET and how we will want to + clean it up. + + * stabsread.c: Remove long_kludge_name code (it was already #if 0). + * stabsread.c (read_one_struct_field): Clean up comments to reflect + Kung's change of 5 Nov 93. + * stabsread.c (read_one_struct_field): Don't give up on unknown + visibility character, just shove it in fip->list->visibility. + (read_baseclasses): Don't give up on unknown virtual or visibility + characters, just assume a reasonable default, complain, and keep + going. + (attach_fields_to_type): Complain on unrecognized visibility. + One result of all this is that '9' (VISIBILITY_IGNORE) can be used + in a stab as well as being something which GDB uses internally. + +Mon Nov 8 07:57:30 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Remove h8300h, we have multilib now. + +Mon Nov 8 06:11:24 1993 D. V. Henkel-Wallace (gumby@cirdan.cygnus.com) + + * configure.in: Add unixware as a configuration alias for x86 + sysv4 + + * config/i386/i386nw.mt: add i387-tdep.o, exec.o to TDEPFILES + +Sun Nov 7 23:49:21 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.c (decode_line_1, decode_line_2): Do not adjust pc by + FUNCTION_START_OFFSET if funfirstline is not set. + +Fri Nov 5 17:19:30 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * gdbtypes.h : add a field 'ignore_field_bits in cplus_specific, + and macros to handle the bits. + * stabsread.c (read_one_struct_field): add VISIBILITY_IGNORE, and + for field of length 0, set this bit on. + * cp-valprint.c (cp_print_value_fields): for VISIBILITY_IGNORE + field, print . + +Fri Nov 5 14:43:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Version 4.11.2. + +Fri Nov 5 09:49:22 1993 Stu Grossman (grossman at cygnus.com) + + * inflow.c (terminal_init_inferior): Temporarily use Lynx PIDGET + macro to set process groups. + * infptrace.c (child_resume): Temporarily use Lynx PIDGET to + specify resumption of all threads. + * infrun.c (wait_for_inferior): Fix handling of thread-specific + breakpoints for systems where DECR_PC_AFTER_BREAK > 0 (ie: backup + PC by the right amount when continuing the thread). + * thread.c (thread_apply_command): Add the `thread apply' + command to apply a given GDB command to a list of threads. + +Fri Nov 5 05:58:03 1993 Jim Kingdon (kingdon@cygnus.com) + + * Makefile.in (init.c): Don't call sed if filename is empty. + +Thu Nov 4 08:27:24 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c (unknown_symchar_complaint): Make message refer to + "symbol descriptor" not "symbol type character" for consistency + with stabs.texinfo terminology. + + * stabsread.c (read_struct_fields): Accept either '$' or '.' as + the character which introduces a cpp_abbrev or anonymous type. + + * c-lang.c (c_printstr): Print "" to stream (like all the other + output from this function), not gdb_stdout. + + * dbxread.c (process_one_symbol): Do relocate 'S' symbols by + the text offset (revert 12 Oct 93 change). + + * configure.in: Make hppa*-*-hiux* use hppahpux, + not non-existent hppahiux. + +Wed Nov 3 16:24:09 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * values.c (value_fn_field): when physical name not found, do not + error, but return null. + * valops.c (value_struct_elt): when name and args match does not + mean it is the one, some times a typedef class can have the same + member method and args. This probably will not happen with new + version of g++, but it does happen in old g++ and cause gdb error. + +Wed Nov 3 09:20:18 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + Merge changes for dos x udi: + * Makefile.in (udi2go32.o): add rule to build this file + * 29k-share/udi/udi2go32.c: new file + * config/a29k/a29k-udi.mt: add udi2go32.o + * 29k-share/udi/{udr.c, udip2soc.c}: #ifdef out the entire file + if __GO32__ is defined. What a hack. + +Wed Nov 3 09:20:18 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote.c (putpkt, getpkt): Don't call interrupt_query. + + * findvar.c (value_of_register): Rename val to reg_val to avoid + name conflict with some (e.g. tm-m68k.h) REGISTER_CONVERT_TO_VIRTUAL. + + * main.c: Add variables source_line_number, source_file_name, + source_error, source_error_allocated, and source_pre_error. + (command_line_input): If source_file_name set, increment + source_line_number and set error_pre_print with them. + (source_command): Set source_* and make a cleanup so they get + set back. + +Tue Nov 2 16:28:34 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stack.c (down_silently_command): Add comment about PR 1913. + + * breakpoint.c (insert_breakpoints, delete_breakpoint): Call + target_terminal_ours_for_output before attempting output. + + * fork-child.c (fork_inferior): Fix comment so that it suggests + "set shell" rather than having "set env SHELL" affect GDB's + operation. + +Tue Nov 2 15:03:08 1993 Tom Lord (lord@rtl.cygnus.com) + + * utils.c (vfprintf_unfiltered): don't use maybe_filtered + since it involves a fixed size buffer. + +Tue Nov 2 13:42:30 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * findvar.c (value_of_register, value_from_register), + hppa-tdep.c (pa_print_fp_reg), infcmd.c (do_registers_info), + valops.c (value_assign): Use REGISTER_CONVERT_TO_* only if + REGISTER_CONVERTIBLE is defined, otherwise just copy the content. + Pass desired type to REGISTER_CONVERT_TO_*. + + * config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*): + Pass length of desired type to store/extract_floating. + * config/i386/tm-arm.h, config/i386/tm-i386aix.h, + config/i386/tm-sun386.h, config/i386/tm-symmetry.h, + config/m88k/tm-m88k.h config/rs6000/tm-rs6000.h (REGISTER_CONVERT_*): + Use extract_floating and store_floating with length of desired type. + * config/m68k/tm-news.h (STORE,EXTRACT_RETURN_VALUE): Add type + parameter to REGISTER_CONVERT_*. + + * config/a29k/tm-a29k.h, config/convex/tm-convex.h, + config/gould/tm-np1.h, config/gould/tm-pn.h, config/h8300/tm-h8300.h, + config/h8500/tm-h8500.h, config/i386/tm-i386v.h, + config/mips/tm-mips.h, config/ns32k/tm-merlin.h, + config/ns32k/tm-umax.h, config/pa/tm-hppa.h, config/pyr/tm-pyr.h, + config/sh/tm-sh.h, config/sparc/tm-sparc.h, config/tahoe/tm-tahoe.h, + config/vax/tm-vax.h, config/z8k/tm-z8k.h (REGISTER_CONVERTIBLE, + REGISTER_CONVERT_TO_RAW, REGISTER_CONVERT_TO_VIRTUAL): Remove + versions for which REGISTER_CONVERTIBLE is always false. + * z8k-tdep.c (register_convert_to_virtual, register_convert_to_raw): + Remove, no longer used. + + * alpha-tdep.c (alpha_register_convert_to_raw, + alpha_register_convert_to_virtual): New routines to handle + the different raw formats in alpha floating point registers. + * config/alpha/tm-alpha.h (REGISTER_CONVERTIBLE, + REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Use them. + +Tue Nov 2 12:45:23 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * gdbserver/configure.in: Recognize *-*-lynxos* instead of + *-*-lynx*, recognize sparc-*-lynxos*. + * gdbserver/Makefile.in (install, install_only): Add. + * gdbserver/gdbserver.1: New file, man page for gdbserver. + +Tue Nov 2 03:01:01 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Include and . Change include + of "libhppa.h" to "som.h". + (BYTES_IN_WORD): Define. + (hppa_sym_fns): "hppa" is 4 characters, not 5. + +Mon Nov 1 09:40:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c, symtab.h, source.c: Change find_line_pc_range to take + a struct symtab_and_line argument, rather than a symtab and a line. + Re-write it to be based on the address rather than bogusly adding + one to the line number and hoping that has something to do with the + end of the line. + + * config/m88k/m88k.mh (NATDEPFILES): Remove exec.o. + + * paread.c (pa_symtab_read): Change comments to say ignoring + labels really should be handled by the assembler/compiler. + + * Makefile.in: Add -O to CXXFLAGS. + + * TODO: Expand comments on fast watchpoints. + +Sun Oct 31 19:45:06 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * paread.c (pa_symtab_read): Also filter out local symbols + starting with "L$". + +Sun Oct 31 09:28:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symfile.h (sym_fns), symfile.c (find_sym_fns), xcoffread.c, + coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, paread.c: + Change from using bfd target name to using the flavour. + + * objfiles.h, infcmd.c, symfile.c: Add comments about how various + objfiles get created and when we should blow them away. + +Sat Oct 30 08:32:53 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symfile.c (reread_symbols): When re-reading symbols, do all the + right operations ourself, rather than calling symbol_file_command. + If we re-read something, call clear_symtab_users not just + breakpoint_re_set. + * objfiles.h, objfiles.c (build_objfile_section_table): No longer + static. + * symfile.c (clear_symtab_users): Call clear_pc_function_cache. + * coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, paread.c + (*_symfile_offsets): Set objfile->num_sections. + * remote.c (remote_wait), symfile.c (syms_from_objfile): + Don't muck with objfile->num_sections now that all the symbol + readers set it. + * elfread.c: Clean up obsolete comment about handling only DWARF. + * paread.c: Remove comment about how we should use an "ordinary" + file format with an hppa suffix. There is nothing ordinary about SOM. + + * config/i386/{i386m3.mh,i386mk.mh}, config/mips/mipsm3.mh, + config/ns32k/ns32km3.mh: Change MMALLOC_LIB to MMALLOC. + * TODO: Update Mach stuff. + +Fri Oct 29 16:30:36 1993 Stan Shebs (shebs@rtl.cygnus.com) + + LynxOS support: + * configure.in: Change *-*-lynx* to *-*-lynxos*, add + sparc-*-lynxos*. + * Makefile.in (ALLDEPFILES): Add m68kly-nat.c, sparcly-nat.c. + Rename i386lynx-nat.[co] to i386ly-nat.[co]. + (ALLCONFIG): Add config/{m68k,sparc}/{m68k,sparc}lynx.m[ht]. + (m68kly-nat.o, sparcly-nat.o): Add rules. + * i386ly-tdep.c: Cosmetics. + * i386lynx-nat.c: Removed. + * i386ly-nat.c: New file, was i386lynx-nat.c. + * m68kly-nat.c: New file. + * sparcly-nat.c: New file. + * config/xm-lynx.h: New file, cpu-independent host info. + * config/i386/i386lynx.mh: Changes for consistency. + * config/i386/i386lynx.mt: Ditto. + * config/i386/tm-i386lynx.h: Ditto. + * config/i386/nm-i386lynx.h: Ditto. + * config/i386/xm-i386lynx.h: Include config/xm-lynx.h. + * config/m68k/m68klynx.mh, config/m68k/m68klynx.mt, + config/m68k/tm-m68klynx.h, config/m68k/nm-m68klynx.h, + config/m68k/xm-m68klynx.h: New files, M68K LynxOS support. + * config/sparc/sparclynx.mh, config/sparc/sparclynx.mt, + config/sparc/tm-sparclynx.h, config/sparc/nm-sparclynx.h, + config/sparc/xm-sparclynx.h: New files, Sparc LynxOS support. + +Fri Oct 29 08:11:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * defs.h, findvar.c (extract_floating, store_floating): New functions. + * Move SWAP_TARGET_AND_HOST from defs.h to findvar.c because it is + now used only by extract_floating and store_floating. + * valprint.c (print_floating): Use unsigned arithmetic. Use + extract_unsigned_integer instead of SWAP_TARGET_AND_HOST. + Change sizeof (float) to 4 and sizeof (double) to 8 (those are always + the relevant sizes for this code, which is in #ifdef IEEE_FLOAT). + * values.c (unpack_long, unpack_double, value_from_double), + valarith.c (value_binop), stabsread.c (define_symbol): + Use extract_floating and store_floating instead of + SWAP_TARGET_AND_HOST. + * config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*): + Use extract_floating and store_floating. + * config/m88k/tm-m88k.h: Add comments (it should be doing the same). + * i386-tdep.c (i386_extract_return_value), + * remote-nindy.c (nindy_store_registers): Use store_floating. + +Fri Oct 29 09:31:38 1993 Steve Chamberlain (sac@rtl.cygnus.com) + + * remote-sim.c (gdbsim_store_register): Change var name so + it compiles with non-ANSI compilers. + +Fri Oct 29 08:11:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Add idea for "disassemble" with source. + +Fri Oct 29 00:41:01 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.11.1 after release and cvs + tagging. + +Thu Oct 28 09:14:42 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Add section on Mach. Stop calling it a "bug list". + Remove John's name and email address. Remove item on "always" + ("hook-stop" takes care of this). Remove item on executables with + no symbols (this works on some machines, at least). Remove item + about calling error() during symbol reading (I think all the important + ones have been cleaned up). Revise items about signals and remote + systems. Remove section on ^Z requiring several continues to make + it go (this now works. Perhaps the item is based on confusion over + programs (like GDB itself) which catch SIGTSTP and then re-send + themselves the signal. PR 2575 might contain relevant info). + +Thu Oct 28 16:55:34 1993 Fred Fish (fnf@cygnus.com) + + * NEWS: Note improvements in C++ support, preliminary thread + implementation, and LynxOS native and target support for 386. + +Thu Oct 28 16:55:34 1993 Fred Fish (fnf@cygnus.com) + + * README: Add note from Peter Schauer about OSF/1 shared + libraries. Add note from Pace Willisson about configuring on BSDI + BSD/386 release 1.0. Update gdb references to gdb 4.11. + +Thu Oct 28 09:14:42 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * NEWS: Add notes about Alpha and "set remotedebug" for UDI. + + * valops.c (value_assign): Change bitfield code to use a buffer of + the correct size, rather than an int. + +Wed Oct 27 13:43:07 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i386/{i386m3.mt,i386m3.mh}, + config/mips/{mipsm3.mt,mipsm3.mh}, + config/ns32k/{ns32km3.mt,ns32km3.mh}: Use correct names for TM_FILE + and XM_FILE. Replace host files *mach3-xdep.o with native + files *m3-nat.o. Replace host file os-mach3.o with native + file m3-nat.o. + + * remote-udi.c: Remove LOG_FILE stuff; superceded by "set remotedebug". + * remote-mon.c: Remove commented out "set remotedebug" command. + * remote-nindy.c: Clean up comment about wanting alternative to + options specified on the GDB command line. + + * fork-child.c (fork_inferior): Set inferior_pid before calling + init_trace_fun. Move the code which gets us through the shell + to new function startup_inferior. + * inferior.h: Declare startup_inferior. + * procfs.c (procfs_init_inferior), inftarg.c (ptrace_him): + Call startup_inferior. + * m3-nat.c (m3_trace_him): Call intercept_exec_calls. + * config/nm-m3.h: Don't define STARTUP_INFERIOR. + * config/i386/tm-i386m3.h, config/ns32k/tm-ns32k.h, + config/mips/tm-mipsm3.h: Don't define START_INFERIOR_TRAPS_EXPECTED. + + * m68k-stub.c: Change vector 13 from SIGFPE to SIGBUS. + +Tue Oct 26 22:05:03 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * mips-tdep.c (mips_pop_frame): If proc_desc is NULL, don't dump core. + +Tue Oct 26 15:07:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + gcc -Wall lint: + * nlmread.c: Include stabsread.h. + * Makefile.in: Update dependencies. + + * remote.c: Change PBUFSIZ back to 400. John's 28 Feb 1992 change + to increase it broke the ability to write large chunks of memory + with m68k-stub and i386-stub. Now we only use more than 400 on + machines where we need that much to write the registers. + * remote.c (remote_write_bytes): Eliminate possible abort(). The + check for when to abort was off by a few bytes and besides which, + it is handled by MAXBUFBYTES, which the caller uses. + * m68k-stub.c: Add comments about trap #1 and trap #8 instructions. + +Tue Oct 26 08:36:07 1993 Doug Evans (dje@canuck.cygnus.com) + + * remote-sim.h (SIM_ADDR): New type (same as CORE_ADDR). + (sim_set_pc): Update prototype. + (sim_read, sim_write): Ditto, and use unsigned char *buf. + (sim_fetch_register, sim_store_register): Use unsigned char *buf. + (sim_info): Pass printf function as argument, add verbose argument. + (sim_stop_reason): Renamed from sim_stop_signal, fix prototype. + * remote-sim.c (gdbsim_wait): Update call to sim_stop_reason. + (gdbsim_files_info): Update call to sim_info. + +Tue Oct 26 10:41:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valops.c (value_assign): Call reinit_frame_cache when assigning + to a register. + +Mon Oct 25 11:08:59 1993 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior): Fix PC out of objfile bounds + check to just use stop_func_name == 0. + * remote-udi.c (store_register): Invalidate NPC/PC_REGNUM after + changing PC. + +Mon Oct 25 14:57:45 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/{low-lynx.c,low-sparc.c,low-sun3.c}, standalone.c, + m3-nat.c, i386m3-nat.c, mipsm3-nat.c, ns32km3-nat.c: bcopy -> memcpy. + + gcc -Wall lint: + * breakpoint.c: Include thread.h. + * coffread.c: Include stabsread.h. + * Makefile.in: Update dependencies. + * breakpoint.c (mention): Add bp_call_dummy to switch. + * symmisc.c (dump_symtab): Use %d not %ld for line number. + +Sun Oct 24 18:29:32 1993 Tom Lord (lord@rtl.cygnus.com) + + * every non-obsolete file except utils.c: + Change the stream argument to _filtered to GDB_FILE *. + Change all references to stdout/stderr to gdb_stdout/gdb_stderr. + Replace all calls to stdio output functions with + calls to corresponding _unfiltered functions. + Replaced calls to fopen for output to gdb_fopen. + Added sufficient goo to utils.c and defs.h to make the above + work. + + The net effect is that stdio output functions are only directly + used in utils.c. Elsewhere, the _unfiltered and _filtered + functions and GDB_FILE type are used. + + In the near future, GDB_FILE will stop being equivalant to + FILE. + + The semantics of some commands has changed in a very subtle way: + called in the right context, they may cause new occurences of + prompt_for_continue() behavior. + + Please respect this change by not reintroducing stdio output + dependencies in the main body of gdb code. All output from + commands should go to a GDB_FILE. + +Sun Oct 24 20:16:38 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * parse.c, parser-defs.h (write_exp_msymbol): New function to write + the appropriate expression for a minimal symbol. Taken from c-exp.y + and m2-exp.y but handles mst_file_*. + * c-exp.y, m2-exp.y: Use it. + +Sun Oct 24 09:31:05 1993 Fred Fish (fnf@lisa.cygnus.com) + + * elfread.c (elf_symtab_read): Use bfd convention that both + initialized and uninitialized data sections have the SEC_ALLOC + flag bit set, but only initialized sections have SEC_LOAD set. + SEC_DATA is ignored since it only gets set for initialized + data. + +Sat Oct 23 14:48:18 1993 Doug Evans (dje@canuck.cygnus.com) + + * remote-sim.h (sim_stop): New enum. + (sim_stop_signal): Change prototype, result is enum sim_stop. + * remote-sim.c (gdbsim_wait): Update call to sim_stop_signal. + +Fri Oct 22 07:49:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (define_symbol): Skip the whole thing about "pcc + promotion" on little-endian machines. + + * remote-vx.c (vx_wait): Rename pid parameter to pid_to_wait_for. + Some compilers (legitimately) don't like variables in the + function's outermost block whose name is the the same as the name of + a parameter. + + Merge Apollo patches from Troy Rollo (troy@cbme.unsw.edu.au): + * dst.h, dstread.c, config/m68k/{apollo68b.mt,tm-apollo68b.h}: + New files. + * config/m68k/nm-apollo68b.h: Add more defines. + * configure.in: Recognize apollo target, not just host. + + * configure.in: Add * to end of all OS names. + +Fri Oct 22 06:14:01 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (ALLPARAM): Add config/m88k/xm-delta88v4.h + +Thu Oct 21 12:23:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (init.c): Generate using the source, not munch. This + cleans up all kinds of hassles (which nm to use in munch, etc). The + new formatting conventions (mostly already followed) are that + the name of the _initialize_* routines must start in column zero, + and must not be inside #if. + * munch: Removed. + * Makefile.in: Remove references to munch. + * serial.c, remote.c, infptrace.c, maint.c, convex-tdep.c, + alpha-tdep.c, hp300ux-nat.c, hppab-nat.c, osfsolib.c, remote-es.c, + procfs.c, remote-udi.c, ser-go32.c, ultra3-xdep.c, sh-tdep.c, + i960-tdep.c, hppa-tdep.c, h8500-tdep.c, dpx2-nat.c, delta68-nat.c, + z8k-tdep.c: Make sure the above conventions are followed. Make + sure they are all declared as returning void. Clean up + miscellaneous comments and such. + + * sh-tdep.c (sim_load): Add function. + +Thu Oct 21 15:58:48 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * remote-mips.c (mips_wait): add pid argument. + +Thu Oct 21 12:23:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (c-exp.tab.o): Remove notice about shift/reduce conflicts + which no longer occur. + + gcc -Wall lint: + * findvar.c (symbol_read_needs_frame), corelow.c (ignore), + inflow.c (gdb_has_a_terminal): Make sure to return a value. + * regex.h: Declare re_set_syntax. + * printcmd.c: Include valprint.h. + * infcmd.c, exec.c, maint.c, core.c: Include language.h. + * maint.c: Include expression.h. + * infrun.c, fork-child.c, corelow.c, inflow.c: Include thread.h. + * inftarg.c: Include command.h. + * coredep.c: Include value.h. + * c-exp.y, m2-exp.y, ch-exp.y: Include bfd.h, symfile.h and objfiles.h. + * ch-typeprint.c: Include typeprint.h. + * ch-valprint.c: Include c-lang.h. + * nlmread.c: Include buildsym.h. + * environ.c: Include gdbcore.h. Only include defs.h once. + (set_in_environ): Cast const char * to char * when passing to + set_gnutarget. + * Makefile.in: Update dependencies to reflect all these new includes. + Remove unused variables: + * printcmd.c (printf_command): args_to_vprintf. + * coffread.c (coff_symfile_init): strsection. + Move variables to within the #ifdefs where they are used: + * symtab.c (gdb_mangle_name): opname. + * inftarg.c (child_attach): pid and exec_file. + * inftarg.c (child_detach): siggnal. + * objfiles.c (allocate_objfile): mapto, md, and fd. + * objfiles.c (free_objfile): mmfd. + * infrun.c (wait_for_inferior): Include BPSTAT_WHAT_LAST in switch. + * infrun.c (wait_for_inferior): Remove unused same_pid label. + * inferior.h: Declare set_sigint_trap and clear_sigint_trap. + * parser-defs.h: Declare write_exp_elt_block. + * stabsread.h: Declare elfstab_offset_sections and + coffstab_build_psymtabs. + +Thu Oct 21 12:05:08 1993 Ken Raeburn (raeburn@cygnus.com) + + Patch from Jeff Law: + * paread.c: Fix references to "hppa" that should now be "som". + +Thu Oct 21 12:23:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (decode_line_1): Don't use SYMBOL_LINE for functions. + +Thu Oct 21 02:59:07 1993 Stu Grossman (grossman at cygnus.com) + + * remote-udi.c (udi_store_registers, store_register): Use + UDI29KPC address space when modifying PC. It seems that you can't + modify the PC directly (at least in the isstip simulator). + +Wed Oct 20 11:35:43 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.h: Put remote_debug declaration back here. Add baud_rate. + * remote.c, remote-udi.c, remote-utils.h: Let target.h take care of + declaring these. Those random externs all over are error prone. + * Move "set remotebaud" from remote-utils.c to main.c to it applies + to remote.c as well. + + * xcoffread.c (xcoff_symfile_read), coffread.c (coff_symfile_read): + Sort symtabs for this objfile only, not for all objfiles. + * symfile.c, symfile.h (sort_all_symtab_syms): Remove; no longer used. + + * mipsread.c (parse_symbol): In third-eye, a function has a block + within it which represents the whole function. Create only one + GDB block for both. + +Wed Oct 20 17:47:42 1993 Stu Grossman (grossman at cygnus.com) + + * main.c: Make baud_rate and remote_debug be global variables, + remove #include "remote-utils.h". This makes it possible to build + GDB without remote-utils.c. Also, move setting of remote_debug + into main, so that all remote*.c files can use it (not just the + serial line ones). And, make baud_rate be an int. + * remote-udi.c: Change kiodebug to remote_debug. + * remote-utils.c: Move setting of baud rate and debug into main.c. + * remote-utils.h: Redefine sr_{get set}_debug and sr_{get set}_baud + to use baud_rate and remote_debug globals for compatibility. + * remote.c: Use remote_debug and baud_rate globals directly, + instead of sr_ functions, so that we don't need to load + remote-utils.c. + * config/a29k/a29k-udi.mt: Define REMOTE_O as null so that we don't + get the default remote* modules. + +Wed Oct 20 11:35:43 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (define_symbol): When combining a LOC_ARG and a + LOC_REGISTER, use the type from the LOC_REGISTER, not from the + LOC_ARG. + +Wed Oct 20 14:34:38 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/i386/xm-go32.h: define some signals if they aren't + already defined. + +Wed Oct 20 11:35:43 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (INTERNAL_LDFLAGS): New macro. The new part is + that we use CFLAGS and PROFILE_CFLAGS to link. + (gdb, rapp, kdb): Use INTERNAL_LDFLAGS instead of + LDFLAGS and/or GLOBAL_CFLAGS. + +Wed Oct 20 09:29:55 1993 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Add $(srcdir) to all refs to 29k-share + directories. + +Tue Oct 19 17:23:34 1993 Fred Fish (fnf@deneb.cygnus.com) + + * Makefile.in (ALLCONFIG): Add config/i386/{i386m3.mh, i386m3.mt, + i386/i386mk.mh i386/i386mk.mt}, config/mips/{mipsm3.mh, + mipsm3.mt}, config/ns32k/{ns32km3.mh, ns32m3.mt} + * Makefile.in (remote_utils_h): Add remote-sim.h + * Makefile.in (NONSRC): Add i386-nlmstub.c + * Makefile.in (HFILES): Add coff-solib.h + +Tue Oct 19 14:15:40 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * values.c (value_virtual_fn_field): Fix the offset calculation + when calling virtual functions. (gdb.t22/virtfunc.exp). + * eval.c (evaluate_subexp): same as above. + +Tue Oct 19 10:43:16 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/rs6000/rs6000.mh (TERMCAP): Define to -lcurses. + + * Makefile.in: Define CXXFLAGS. + +Tue Oct 19 09:28:52 1993 Stu Grossman (grossman@cygnus.com) + + * sparclite/Makefile.in: Fixup so that this works with Sun make + and VPATH. + +Tue Oct 19 10:43:16 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.h (struct bpstat_what): Don't use bitfields. + + * typeprint.c: Add "class CLASS-NAME" to docstring for ptype. + +Tue Oct 19 06:17:10 1993 Fred Fish (fnf@cirdan.cygnus.com) + + * Makefile.in (ALLPARAM): Add config/m88k/{nm-delta88v4.h, + tm-delta88v4.h, xm-dgux.h}. + * Makefile.in (ALLCONFIG): Add config/m88k/{delta88v4.mh, + delta88v4.mt}. + + * README: Remove comment about SunOS 5.x programs leaving + coredumps. Info from Sun is that this was not in customer + releases. + +Mon Oct 18 10:28:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * hppa-tdep.c (restore_pc_queue): Call target_terminal_ours after + done stepping the inferior. + + * c-exp.y: Remove never-used (because of shift/reduce conflicts) + rules for pointers to members. + * Makefile.in: Remove notice about expected shift/reduce conflicts. + + * buildsym.c (finish_block): If we pop the context stack and it is + not empty, complain () instead of abort (). + +Sun Oct 17 19:42:31 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * parse.c, parser-defs.h (follow_types): New function. + * c-exp.y (ptype : typebase abs_decl): Use it. + * c-exp.y (ptype): Add support for type qualifiers after the + typebase. The typebase rule already has support for them before + the typebase. + * Makefile.in: Change the expected number of shift/reduce + conflicts to 6. This is OK--the 2 new conflicts are basically the + same as one of the old ones. + +Sun Oct 17 13:04:49 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.10.3. + +Sun Oct 17 09:18:57 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Clean up comments which were at + the top of the file, making them more concise and moving them with + the code (Sorry, Randy, but these stream-of-consciousness comments + really have to go). Switch the order of the "&&", which makes + things clearer and turns out to be an improvement with respect to + side effects and speed. + +Sun Oct 17 02:06:01 1993 Stu Grossman (grossman at cygnus.com) + + * procfs.c: Handle process exits more elegantly by trapping on + entry to _exit. Also, cleanup procinfo list when process dies of + it's own accord (as opposed to being killed). + +Sat Oct 16 20:47:30 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m88k/xm-dgux.h: Define NO_PTRACE_H. + + * corelow.c (add_to_thread_list): Need a cast to go from PTR to + asection *. + + * infrun.c: Add comment about signals. + + * fork-child.c (fork_inferior): Remove CREATE_INFERIOR_HOOK again. + Stu reinstated it (accidently I assume). + +Sat Oct 16 15:27:10 1993 Stu Grossman (grossman at cygnus.com) + + * procfs.c (procfs_wait): Losing Unixware can't do poll on /proc + files. Use PIOCWSTOP instead. + * corelow.c (add_to_thread_list): Fix arg to match prototype. + + * procfs.c (procfs_set_sproc_trap): Don't use this if sproc + isn't available. + * (procfs_notice_signals): Fix prototype. + +Fri Oct 15 22:46:07 1993 Stu Grossman (grossman at cygnus.com) + + * breakpoint.c (breakpoint_thread_match break_command_1): + Thread-specific breakpoint support. + * breakpoint.h (struct breakpoint): Add thread id field. + * fork-child.c (fork_inferior): Move call to init_thread_list() + back a bit so that init_trace_fun can do thread functions. + * hppa-tdep.c (restore_pc_queue): Add pid to call to target_wait. + * hppab-nat.c (child_resume): Handle default pid. + * hppah-nat.c (child_resume): Handle default pid. + * i386lynx-nat.c (child_wait): New arg pid. + * inflow.c (kill_command): Reset thread list. + * infptrace.c (child_resume): Handle default pid. + * infrun.c: Thread-specific breakpoint support. + * inftarg.c (child_wait): Add pid arg. + * osfsolib.c (solib_create_inferior_hook): Add pid to call to + target_resume. + * procfs.c: Multi-thread support. + * remote-bug.c (bug_wait): Add pid arg. + * remote-hms.c (hms_wait): Add pid arg. + * remote-mips.c (mips_wait): Add pid arg. + * remote-mon.c (monitor_wait): Add pid arg. + * remote-nindy.c (nindy_wait): Add pid arg. + * remote-sim.c (gdbsim_wait): Add pid arg. + * remote-udi.c (udi_wait): Add pid arg. + * remote-vx.c (vx_wait): Add pid arg. + * remote-z8k.c (sim_wait): Add pid arg. + * remote.c (remote_wait): Add pid arg. + * solib.c (solib_create_inferior_hook): Add pid to call to + target_resume. + * target.h (struct target_ops): Add pid arg to to_wait and + to_notice_signals. + * thread.c (valid_thread_id): New func to validate thread #s. + * (pid_to_thread_id): New func to do the obvious. + * thread.h: Prototypes for above. + + * coff-solib.c (coff_solib_add): Use nameoffset field to locate + filename. + +Fri Oct 15 21:29:40 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * h8300-tdep.c, h8500-tdep.c: Define sim_load only, but not + sim_kill, sim_open, or sim_set_args. + + * stack.c (print_stack_frame): Put catch_errors around + print_frame_info so (for example) error printing source doesn't + cause auto-displays to get skipped in normal_stop. + + * findvar.c (value_from_register): When preparing to cast a value + from REGISTER_VIRTUAL_TYPE to type, copy the REGISTER_VIRTUAL_SIZE; + the old code didn't copy the whole thing. + * valops.c (value_assign): Add comment. + +Fri Oct 15 12:57:30 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (upgrade_type): Replace bitsize sanity checks and + complaint by a comment explaining why they were useless. + +Fri Oct 15 14:30:30 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Move comments on bypassing call dummy breakpoint from stack.c + to breakpoint.h. + +Fri Oct 15 11:52:56 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.c (lookup_partial_symtab): If filename is not found and + contains no slashes, try again and compare without leading path + components. + * symtab.c (lookup_symtab_1): Replace open coded version of + lookup_partial_symtab with a function call. + +Thu Oct 14 20:34:15 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * fork-child.c (fork_inferior), remote-eb.c (eb_create_inferior), + remote-mon.c (monitor_create_inferior), remote-nindy.c + (nindy_create_inferior), remote-st.c (st2000_create_inferior), + remote-vx.c (vx_create_inferior): Remove CREATE_INFERIOR_HOOK; it + is replaced by init_trace_fun. + * config/convex/xm-convex.h, convex-xdep.c: Add comments explaining + how to do without CREATE_INFERIOR_HOOK for whoever fixes the Convex + port. + + * Makefile.in: Add Mach files to ALLDEPFILES, etc. + * m3-nat.c: Clean up more hair--message(), cprocs. + * configure.in: Recognize Mach targets and hosts. + * config/ns32k/tm-umax.h: Add some #ifndef's so tm-ns32km3.h can + include this file. + * Mach headers in config/*/tm-*.h: Fix includes to match correct + locations of files. + +Thu Oct 14 21:35:55 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * remote-mon.c (general_open): Set dev_name. Minor tweaking to get + it working again. + * config/m68k/tm-monitor.h: Remove floating point register names + as there aren't any on any of the monitors that use this code. + +Wed Oct 13 11:47:23 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * inflow.c: Pass pointer to process group, not process group itself, + to TIOCSPGRP ioctl. + + * inflow.c (terminal_ours_1): Don't print warning on failure to + set process group. + + * printcmd.c (printf_command): Instead of using makeva* and + calling vprintf, just make the appropriate calls to printf. + * printcmd.c, config/pa/xm-pa.h, config/mips/xm-makeva.h, + config/alpha/xm-alpha.h, config/m88k/xm-m88k.h: Remove all + traces of makeva*. My apologies to everyone (including me!) + who spent so much time getting it to work on various machines, + but look at the bright side, at least you won't have to do it + again in the future. + + * printcmd.c (printf_command): Make a cleanup for val_args (fixes + a memory leak). + +Tue Oct 12 22:54:41 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/xm-mips.h: Remove comment about HAVE_SGTTY vs. usleep. + +Tue Oct 12 12:01:29 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * configure.in: only configure gdbserver for native environments + +Tue Oct 12 08:59:15 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (read_type): Treat a negative type number at the start + of a type as a type reference, not as a definition of a type with + "50=" omitted. This makes things work on the RS/6000 again (the + 14 Sep 1993 change broke it). + + * inflow.c: Use 0 (standard input) not scb->fd. + (terminal_ours_1): If printing warning, don't claim it happened in + terminal_inferior. + + * blockframe.c (get_prev_frame_info): Don't error() if there are no + frames; just return NULL. + + * xcoffsolib.h, xcoffexec.c: Undo the part of Fred's bfd->abfd + change which involved structure elements. It was unnecessary and + was not consistently done. + + * stabsread.h, stabsread.c, dbxread.c (common_block*, copy_pending): + Move common block handling from dbxread.c to stabsread.c. + Use the name from the BCOMM instead of the ECOMM. + Allocate things on the symbol_obstack. + * xcoffread.c (process_xcoff_symbol): Process C_BCOMM, C_ECOMM, + and C_ECOML. On unrecognized storage classes, go ahead and call + define_symbol (after the complaint). + + * dbxread.c (process_one_symbol): Don't relocate 'S' symbols by + the text offset. + +Tue Oct 12 12:33:09 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * osfsolib.c (solib_create_inferior_hook): Reset stop_soon_quietly + after shared library symbol reading to get rid of warning from + heuristic_proc_start. + +Tue Oct 12 12:01:29 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * remote-sim.c: fix unterminated character string + +Tue Oct 12 08:59:15 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c: Fix comment about gcc 2.3.3 stab for long long int. + +Mon Oct 11 14:27:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m3-nat.c, config/nm-m3.h: Add a target_ops struct and other + various things to try to get this to work. + + * symtab.h: Fix comments re headers, sharing blockvectors, etc. + +Mon Oct 11 11:46:06 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * config/i960/vxworks960.mt (REMOTE_O): add dcache.o and remote-utils.o + +Mon Oct 11 02:48:57 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_partial_symbols): Do not add undefined + symbols to the partial symbol table. + * alpha-tdep.c (init_extra_frame_info): Remove kludge for gcc, + gcc has to be compatible with the native tools. + * alpha-tdep.c (alpha_push_arguments): Rename NUM_ARG_REGS to + ALPHA_NUM_ARG_REGS and move its definition to tm-alpha.h. + * config/alpha/tm-alpha.h (FRAME_ARGS_ADDRESS): Change it to the + way the native tools define it, update comment. + +Fri Oct 8 15:54:06 1993 Fred Fish (fnf@deneb.cygnus.com) + + * osfsolib.c, remote-sim.c, remote.c, solib.c, xcoffexec.c, + xcoffsolib.h: Use 'abfd' for bfd variables instead of 'bfd'. + Sun cc doesn't like variable names that match their typedef'd type. + +Fri Oct 8 14:56:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * inflow.c: Remove unused includes of sys/param.h and sys/types.h. + + * inflow.c, ser-unix.c, ser-go32.c, ser-tcp.c, serial.h, + terminal.h, fork-child.c, main.c, utils.c: Move all the process + group stuff back to inflow.c and terminal.h; that's a better place + for it and fixes problems with trying to get/set the process group + of a tty we're doing remote debugging on. + * terminal.h: Skip the redefines and includes if HAVE_TERMIOS. + + * findvar.c, value.h (symbol_read_needs_frame): New function. + * c-exp.y, m2-exp.y: Call it instead of having our own switch on + the symbol's class. + * valops.c (value_of_variable): Use symbol_read_needs_frame to + decide whether we care about finding a frame. + +Fri Oct 8 02:34:21 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * blockframe.c (get_frame_block): Do not adjust pc if the frame + function was interrupted by a signal. + +Thu Oct 7 19:20:11 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/h8300/tm-h8300.h: Don't define sr_get_debug. + * remote-sim.c: Include remote-utils.h. + * target.h: Add comment about target_has_execution. + +Thu Oct 7 16:14:19 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * h8300-tdep.c (sim_load, sim_kill, sim_open, sim_set_args): + New functions. + * infrun.c (normal_stop): Don't try and set the pc in the current + frame coredump if there isn't one. + * remote-sim.c (gdbsim_store_register): Don't + SWAP_TARGET_AND_HOST, sim_store_register takes bytes in raw order. + (gdbsim_wait): Set status with WSETSTOP. + * config/h8300/tm-h8300.h (sr_get_debug): Define + +Thu Oct 7 12:56:57 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + New Mach stuff: + * config/i386/i386mach.c: Explain this is for the old (probably + non-functional and/or obsolete) Mach stuff. + * m3-nat.c, config/nm-m3.h, + i386m3-nat.c, mipsm3-nat.c, ns32km3-nat.c, + config/i386/{i386m3.mh,i386m3.mt,tm-i386m3.h,xm-i386m3.h}, + config/i386/{i386mk.mh,i386mk.mt,tm-i386mk.h,xm-i386mk.h}, + config/mips/{mipsm3.mh,mipsm3.mt,tm-mipsm3.h,xm-mipsm3.h}, + config/ns32k/{ns32km3.mh,ns32km3.mt,tm-ns32km3.h,xm-ns32km3.h}: + New files. + + * blockframe.c (find_pc_partial_function): If we call + PSYMTAB_TO_SYMTAB, call target_terminal_ours_for_output first. + This is needed now that wait_for_inferior passes in endaddr. + * infrun.c: Move call to target_terminal_inferior from proceed + to resume. + +Thu Oct 7 09:22:04 1993 Stu Grossman (grossman at cygnus.com) + + * blockframe.c (find_pc_partial_function): Fix handling for PCs + beyond the end of the last function in an objfile. + * coff-solib.c (coff_solib_add): Use BFD to get fields from .lib + section. + * infrun.c (wait_for_inferior): Modify test for subroutine entry + to include pc out of bounds of the previous function. + * remote.c (remote_wait): Use strtoul for parsing 'N' message. + Add code to relocate symfile_objfile->sections. + +Thu Oct 7 06:22:43 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/sparc/sun4os4.mh: Add comment saying why we don't use + -lresolv. + +Thu Oct 7 09:29:11 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c, breakpoint.h (breakpoint_init_inferior): New function + that clears the `inserted' flag for all breakpoints and deletes + any breakpoints which should go away between runs of programs. + * inflow.c (generic_mourn_inferior), infrun.c (init_wait_for_inferior), + remote-es.c (es1800_load), comments in exec.c and corelow.c: + Use it instead of mark_breakpoints_out. + * breakpoint.c (mark_breakpoints_out): Update comment, tm-rs6000.h + uses it in a completely different context. + * breakpoint.c (breakpoint_re_set_one): Add bp_call_dummy case. + +Thu Oct 7 09:29:11 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * Makefile.in (REGEX, REGEX1): Always use our own version of + regex.c to be consistent across hosts. + * source.c (_initialize_source): Initialize regex to use grep + style syntax as an approximation to POSIX basic regex syntax. + +Wed Oct 6 12:43:47 1993 Jeffrey A Law (law@snake.cs.utah.edu) + Jim Kingdon (kingdon@lioth.cygnus.com) + + * hppa-tdep.c (frame_chain): Rework so that it correctly + handles boundaries where code with a frame pointer calls code + without a frame pointer. + (dig_fp_from_stack): New function. + +Wed Oct 6 12:43:47 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (delete_breakpoint): Don't insert a disabled breakpoint. + + * README: Add Alpha notes from Schauer. + +Tue Oct 5 15:26:04 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (install, uninstall): Remove $$n.1 stuff; I don't + understand what it is trying to do, but I suspect it's not doing + it. + + * config/ns32k/merlin.mh: Add comment about M_INSTALL. + * config/m88k/{delta88.mh,delta88v4.mh}: Remove M_INSTALL and + M_UNINSTALL; it tries to install a non-existent file gdb.z. + * Makefile.in: Remove M_INSTALL stuff; the above were the only uses. + + * stabsread.c (read_range_type): Remove comment which recommends + distinguishing float from complex by the name. + +Tue Oct 5 12:17:40 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + Jim Kingdon (kingdon@cygnus.com) + Stu Grossman (grossman@cygnus.com) + + Changes to support alpha OSF/1 in native mode. + * alpha-nat.c, alpha-tdep.c, config/alpha/alpha-osf1.mt, + config/alpha/nm-alpha.h, config/alpha/tm-alpha.h, osfsolib.c: + New files. + * Makefile.in: Add new files and dependencies. + * configure.in: Add alpha target. + * config/alpha/alpha-osf1.mh (NATDEPFILES): Add osfsolib.o + * config/alpha/alpha-osf1.mh (MH_CFLAGS): Remove, we can handle + shared libraries now. + * config/alpha/xm-alpha.h: Cleanup, get MAKEVA_* defines right. + + * defs.h (CORE_ADDR): Make its type overridable via CORE_ADDR_TYPE, + provide `unsigned int' default. + * breakpoint.c (breakpoint_auto_delete): Delete only if we really + stopped for the breakpoint. + * stabsread.c, stabsread.h (define_symbol): Change valu parameter + to a CORE_ADDR. + * stabsread.c (read_range_type): Handle the case where the lower + bound overflows and the upper doesn't and the range is legal. + * infrun.c (resume): Do not step a breakpoint instruction if + CANNOT_STEP_BREAKPOINT is defined. + + * inferior.h (CALL_DUMMY_LOCATION): New variant AT_ENTRY_POINT. + Now that we have the bp_call_dummy breakpoint the call dummy code + is no longer needed. PUSH_DUMMY_FRAME, PUSH_ARGUMENTS and + FIX_CALL_DUMMY can be used to set up everything for the dummy. + The breakpoint for the dummy is set at the entry point and thats it. + * blockframe.c (inside_entry_file, inside_entry_func): Do not stop + backtraces if pc is in the call dummy at the entry point. + * infcmd.c (run_stack_dummy): Handle AT_ENTRY_POINT case. Use + the expected breakpoint pc when setting up the frame for + set_momentary_breakpoint. + * symfile.c (entry_point_address): New function for AT_ENTRY_POINT + support. + * valops.c (call_function_by_hand): Handle AT_ENTRY_POINT case. + +Tue Oct 5 11:37:02 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * configure.in: Recognize hppa*-*-hiux* (currently synonym for hpux). + Change other hppa host entries to use -*- not -hp-. + +Mon Oct 4 19:16:14 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * i386-nlmstub.c: New file; debugging stub for i386 NetWare. Must + be compiled with NetWare header files and turned into an NLM with + nlmconv. + +Mon Oct 4 11:02:11 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * minsyms.c (lookup_minimal_symbol_by_pc): Don't use mst_abs symbols. + + * dbxread.c (process_one_symbol): Make n_opt_found static. + + * Rename i386lynx-tdep.c to i386ly-tdep.c for 14 character file names. + * Makefile.in, config/i386/i386lynx.mt: Change accordingly. + + * values.c (record_latest_value): Fetch lazy values and set VALUE_LVAL + to not_lval. + +Sun Oct 3 15:54:51 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * objfiles.h (objfile): New slot sym_stab_info, use by most + stab-reading formats. + * gdb-stabs.h (DBX_SYMFILE_INFO): Access sym_stab_info instead of + sym_private. + * coffread.c (coff_symfile_init): Alloc struct for sym_stab_info. + * dbxread.c, elfread.c, paread.c: Change sym_private references to + sym_stab_info references. + +Sat Oct 2 19:28:35 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mipsread.c, objfiles.c, utils.c: Use PTR not void *. RISC/OS + 4.02 lacks void *. + * elfread.c: Use void * not PTR inside PARAMS. + + * config/mips/news-mips.mh: Remove coredep.o; mips-nat.o does it. + * config/mips/news-mips.mh: Define NAT_FILE not NM_FILE. + * config/mips/nm-news-mips.h: Include mips/nm-mips.h not nm-mips.h. + +Sat Oct 2 16:05:22 1993 Stu Grossman (grossman at cygnus.com) + + * Makefile.in, coff-solib.c, coff-solib.h, i386lynx.mt, + tm-i386lynx.h: Add support for SVR3 COFF shared libraries. + +Sat Oct 2 15:50:41 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m88k-nat.c (store_inferior_registers): When writing all registers, + don't try to write EXIP_REGNUM or ENIP_REGNUM (not needed for this + case, and they cause trouble). + + * TODO: Don't suggest doing fast watchpoints by stepping a line + at a time. That would be really hairy and still not fast enough. + Do suggest debug registers and page table diddling. + +Fri Oct 1 14:54:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (do_examine): Make meaning of 'h', 'w', and 'g' not + depend on builtin_type_*. Instead, it is always 2, 4, and 8 bytes + like the documentation says. + * printcmd.c (decode_format) [CC_HAS_LONG_LONG]: Remove 'l' as + synonym for 'g'. This was never documented, it shouldn't depend on + CC_HAS_LONG_LONG, and I don't see what's wrong with 'g'. + +Fri Oct 1 10:06:35 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * symtab.c: fix a bug in testsuite (virtfunc.exp) + +Thu Sep 30 11:30:56 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m88k-nat.c (fill_gregset): Fix typo (R_SFIP -> R_FIP). + + * c-typeprint.c (c_type_print_base, TYPE_FN_FIELD_STUB code): + If demangled name lacks a colon, don't dump core. + + * blockframe.c (find_pc_partial_function): If pst->readin is + set, don't try to get symbols from pst. + + * inflow.c (generic_mourn_inferior): Call reinit_frame_cache + instead of doing it ourself. + * blockframe.c (reinit_frame_cache): Use code which was in + generic_mourn_inferior so we can use this function even when + we have switched targets. + * corelow.c (core_detach): Call reinit_frame_cache. + * target.c (target_detach): Don't call generic_mourn_inferior + (revert yesterday's change, now handled by core_detach). + * objfiles.c (free_objfile): Detach any core file if we call + SOLIB_CLEAR. #include target.h. + + * fork-child.c (fork_inferior): Don't call target_terminal_init + and target_terminal_inferior until we are sure that the inferior + has called gdb_setpgid. This fixes PR 2900 (Schauer tracked it + down and was able to reliably reproduce it by putting a sleep() + before the gdb_setpgid()). + +Thu Sep 30 12:00:49 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-exp.y, m2-exp.y: Change type of address for msymbol to + builtin_type_long. + * infptrace.c (fetch_register, store_inferior_register, + child_xfer_memory): Use PTRACE_XFER_TYPE for the type of ptrace + transfers. Provide an `int' default for PTRACE_XFER_TYPE. + +Thu Sep 30 11:30:56 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * defs.h (TARGET_*_BIT): Don't use host information (sizeof) in + picking defaults. + + * cp-valprint.c (cp_is_vtbl_ptr_type): Continue to accept old form. + +Thu Sep 30 11:25:55 1993 Kung Hsu (kung@cygnus.com) + + * cp-valprint.c (cp_is_vtbl_ptr_type): + change vtable field name to __vtbl (pr2695). + + * symtab.c (gdb_mangle_name): fix a bug, to get mangled name right. + +Wed Sep 29 18:34:22 1993 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Add deps for i386lynx-nat.o and i386lynx-tdep.o to + keep non-gnu makes happy. + +Wed Sep 29 17:20:54 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (read_hpux_symtab): When a K_END is found for a + K_MODULE, clear the have_module and have_name flags. + +Wed Sep 29 10:52:19 1993 Kung Hsu (kung@cygnus.com) + + * c-valprint.c: to fix virtual table print bug (pr2695). + +Wed Sep 29 10:52:19 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.c (target_detach): Call generic_mourn_inferior. + * inflow.c (generic_mourn_inferior): Call flush_cached_frames. + +Tue Sep 28 23:08:59 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c, coffread.c, elfread.c: A few changes to comments. + +Tue Sep 28 18:39:37 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * configure.in: Rename ...-lynx* to ...-lynxos*. + Add m68*-*-lynxos* configuration. + * dbxread.c (coffstab_build_psymtabs): New function, + interfaces coffread.c to dbxread functions. + * coffread.c (coff_symfile_info): Expand to include + dbx_symfile_info slots. + (coff_symfile_init): Init coff_symfile_info struct. + (coff_locate_sections): New functions, finds the stab and stabstr + sections. + (coff_symfile_read): Call coffstab_build_psymtabs if a stab + section is present. + (coff_section_offsets): Replace fake version with real offsets. + +Tue Sep 28 18:00:50 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infcmd.c (run_stack_dummy): Set the frame in the bp_call_dummy + breakpoint. + +Tue Sep 28 17:53:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/nm-sysv4.h: Include solib.h. Define SVR4_SHARED_LIBS. + * config/tm-sysv4.h: Don't include solib.h. + * config/xm-sysv4.h: Don't define SVR4_SHARED_LIBS. + * config/i386/i386v4.mt (TDEPFILES): Move solib.o from here... + * config/i386/i386v4.mh (NATDEPFILES): ...to here. + * config/i386/nm-i386v4.h: Include nm-sysv4.h. + * config/m68k/amix.mt (TDEPFILES): Move solib.o from here... + * config/m68k/amix.mh (NATDEPFILES): ...to here. + +Tue Sep 28 09:45:38 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symmisc.c (print_symbol): Use %02x not %2x for LOC_CONST_BYTES. + + Clean up problems with targets and hosts that have 64 bit longs + and pointers and 32 bit ints. + * breakpoint.c, buildsym.c, c-lang.c, c-valprint.c, ch-lang.c, + ch-valprint.c, core.c, cp-valprint.c, dbxread.c, exec.c, + expprint.c, gdbtypes.c, infcmd.c, language.c, language.h, + m2-lang.c, maint.c, mips-tdep.c, mipsread.c, partial-stab.h, + printcmd.c, remote-vx.c, solib.c, source.c, stack.c, symfile.c, + symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c: + Change all printf formats from %x to %lx if outputting an address. + Change la_*_format to use long format. + local_hex_string, local_hex_string_custom now take an unsigned long + argument, change all callers. + * coffread.c (read_coff_symtab): Remove superfluous cast for + complaint output. + * dbxread.c (end_psymtab): Cast MSYMBOL_INFO to long, not int. + * findvar.c, value.h (write_register): Change val to LONGEST. + * gdbtypes.h (struct type): Change `bitsize' to long as + TYPE_FIELD_STATIC_PHYSNAME uses this field as a pointer. + * inferior.h (struct inferior_status): Change type of stop_pc to + CORE_ADDR. + * language.h (local_octal_string, local_octal_string_custom): + Remove prototype, the functions are neither defined nor used. + * mipsread.c (parse_symbol): Use temporary variable for bitsize as + f->bitsize is a long now. + * objfiles.c (add_to_objfile_sections, build_objfile_section_table): + Use unsigned long casts instead of int for abusing sections_end + pointer as integer. + * stack.c (parse_frame_specification): Change type of `args' to + CORE_ADDR for SETUP_ARBITRARY_FRAME. + + * printcmd.c (make_vasize): Allow redefinition via MAKEVA_SIZE. + * mipsread.c (parse_type): Alpha cc now supports the t->continued + bit, update algorithm to match the way the compiler uses it. + +Tue Sep 28 12:05:11 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c (fprintfi_filtered): Fix comments. + +Mon Sep 27 18:10:08 1993 Stu Grossman (grossman at cygnus.com) + + * coffread.c (read_coff_symtab): Don't call getfilename if there + are no auxents. + +Mon Sep 27 10:22:37 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (find_pc_line): Fix comments. + + * remote-udi.c (udi_mourn): Don't pop target. + +Fri Sep 24 17:25:41 1993 Stu Grossman (grossman at cygnus.com) + + * corelow.c: Add multi thread/process support for core files with + .reg/XXX pseudo-sections. + * i386lynx-nat.c thread.h thread.c: Remove unnecessary core file + support. + +Thu Sep 23 10:49:37 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c (download): Skip zero length sections. + + * valops.c (search_struct_method, value_struct_elt): + Use (value)-1, not -1, for error. + + * infcmd.c (step_1), infrun.c (wait_for_inferior): Add comments + about SHIFT_INST_REGS. + + * exec.c (exec_file_command): Set text_end based on all code readonly + sections, not just ".text". + + * defs.h, infcmd.c, config/z8k/tm-z8k.h, config/m88k/tm-m88k.h, + config/sh/tm-sh.h, config/h8300/tm-h8300.h, config/h8500/tm-h8500.h, + z8k-tdep.c: Remove all references to ADDR_BITS_SET. + * config/m88k/tm-m88k.h: Define TARGET_WRITE_PC. + + * config/m88k/tm-m88k.h, m88k-tdep.c: Add call function stuff. + +Thu Sep 23 00:13:06 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/tm-mips.h (STORE_STRUCT_RETURN): Define as noop as + the pushing of the struct return address is already handled in + mips_push_arguments. + * mips-tdep.c (reinit_frame_cache_sfunc): Fix typo in prototype + declaration. + * mipsread.c (parse_symbol, parse_type, upgrade_type): Add more + sanity checks for corrupt symbol entries to avoid core dumps + reported by benson@odi.com. Obviously Ultrix 4.3A cc now has + the same problems as the OSF/1 alpha cc. + * mipsread.c (parse_lines): Iterate over the range of the compressed + line number entries, the old iteration sometimes failed to stop + and wrote past the end of the LINETABLE. Add sanity check to avoid + the same problem in case the line number info is corrupt. + * mipsread.c (parse_procedure): Adjust pdr for alpha __sigtramp. + * mipsread.c (parse_external, parse_partial_symbols): Ignore stNil + symbols that are produced for statics in .o files and stLocal symbols + that are produced for every section in OSF/1 dynamically linked + executables. + * mipsread.c (psymtab_to_symtab_1): Put out `undefined symbols' + warning only under `verbose on' as there are many undefined symbols + in a dynamically linked executable. + +Wed Sep 22 10:28:06 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i960/nindy960.mt: Don't define REMOTE_O; REMOTE_O was + intended only for VxWorks. Remove dcache.o from TDEPFILES now + that we pick it up from the default REMOTE_O. + + * breakpoint.c (bpstat_what): Initialize retval.call_dummy and + retval.step_resume. + + * mips-tdep.c (mips_frame_chain): If frame size zero, return zero. + * rs6000-tdep.c: Add comment about framelessness. + + * remote-nindy.c: Declare ninMemGet and ninMemPut. + +Wed Sep 22 08:02:57 1993 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Add i386lynx-tdep to the right places. + (TARDIRS): Add gdbserver. + + * exec.c (print_section_info): Print entry point. + * i386lynx-nat.c (i386lynx_saved_pc_after_call): Move into + i386lynx-tdep.c. Add core file support. + * i386lynx-tdep.c: New module for Lynx/386 target dependant code. + * maint.c: Add `maint info sections' command to print info about all + sections that BFD knows about for exec and core files. + * sparc-tdep.c (sparc_push_dummy_frame): Update stack pointer + before putting frame on the stack. Consolidate writes to reduce + traffic for remote debugging. + * config/i386/i386lynx.mh (NATDEPFILES): Remove exec.o. + * config/i386/i386lynx.mt (TDEPFILES): Add exec.o, i386lynx-tdep.o. + * config/i386/nm-i386lynx.h: Add target_pid_to_str(). + * config/i386/tm-i386lynx.h: Remove target_pid_to_str(). + * sparclite/Makefile.in: Add deps to keep Sun make happy. + +Tue Sep 21 17:48:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.h, breakpoint.c (bpstat_stop_status): Add new argument + not_a_breakpoint. + * infrun.c (wait_for_inferior): Pass it. Also consolidate the + test of whether we are stepping into a CURRENTLY_STEPPING macro. + +Tue Sep 21 17:22:34 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * breakpoint.c (bpstat_stop_status), + infcmd.c (step_1), + infrun.c (wait_for_inferior): collapse SHIFT_INST_REGS ifdef + and insert macro. + + * m88k-tdep.c: include ieee-float.h. new global target_is_m88110. + new const struct ext_format_m88110 for float format. + (pic_prologue_code): add braces. + (next_insn): remove unused variable buf. + (frame_find_saved_regs): remove unused variables next_addr, + saved_regs, regnum. + (frame_locals_address): remove unused variables frame, ap. + (frame_args_address): remove unused variables frame, ap. + (push_parameters): add some breaks and a default case. + + * remote-bug.c: remove redundant includes of value.h, target.h, + serial.h. + (bug_open): corrected typo, sr_multi_scan -> gr_multi_scan. + (bug_fetch_register): special case sfip register for m88110. + remove flag bit masking of pc registers. This should be handled + by the ADDR_BITS_* macros. + (bug_store_register): special case sfip register for m88110. + Corrected sprint format for extended registers. + + * config/m88k/tm-m88k.h: white space and comment changes. include + ieee-float.h. expanded to cope with m88110 extended registers. + (R0_REGNUM, XFP_REGNUM, X0_REGNUM): new macros. + (SHIFT_INST_REGS): becomes a real macro. + +Tue Sep 21 17:48:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (breakpoint_1): Support bp_call_dummy. + +Tue Sep 21 17:06:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * elfread.c (record_minimal_symbol_and_info): Guess the section to + use from the type. + * objfiles.c: Include gdb-stabs.h for SECT_* macros. + (objfile_relocate): Relocate textlow and texthigh in psymtabs. + Relocate partial symbols. Check that minimal SYMBOL_SECTION is + nonnegative before using it. + * symtab.h: Adjust section field comment. + + * remote.c (interrupt_query): New function. + (remote_interrupt_twice): Call interrupt_query. + (putpkt, getpkt): If quit_flag is set, call interrupt_query. + (remote_wait): Don't bother with objfile_relocate if the addresses + haven't changed. + (remote_fetch_registers): If we see a packet that doesn't start + with a hex character, fetch a new one. + +Tue Sep 21 11:44:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote.c, remote-utils.c: Use SERIAL_FLUSH_INPUT after opening it. + + * printcmd.c (print_scalar_formatted): When truncating value we are + going to print as unsigned, handle it generally for any length + less than sizeof (LONGEST), rather than special-casing sizeof (char), + sizeof (short), and sizeof (long). Clarify comment on what this + is for. + + * symfile.c (deduce_language_from_filename): Accept .cxx for C++. + * buildsym.c (start_subfile): Use deduce_language_from_filename + rather than checking for .C or .cc ourself. + +Mon Sep 20 14:53:11 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * defs.h: Declare argument of re_comp as const char *. + + * remote.c, remote-mips.c: Use sr_get_debug not remote_debug. + + * README: Say using bfd from another release doesn't generally work. + +Sat Sep 18 10:13:18 1993 Jim Kingdon (kingdon@poseidon.cygnus.com) + + * mipsread.c (parse_type): Don't complain() if we guessed struct + and it was a union, or vice versa. + + * defs.h (make_cleanup): Change PTR to void * when inside PARAMS. + + Some of the following is in #ifdef CALL_DUMMY_BREAKPOINT_OFFSET. + * breakpoint.h (enum bptype): Add bp_call_dummy. + (struct bpstat_what): Add call_dummy field. + * infrun.c (wait_for_inferior): Deal with it. + * breakpoint.c (bpstat_what): Deal with call dummy breakpoint. + * infcmd.c (run_stack_dummy): Set the call dummy breakpoint. + * config/sparc/tm-sparc.h: Define CALL_DUMMY_BREAKPOINT_OFFSET. + + * remote-sim.h: New file. + * remote-sim.c: Add remote debug feature. Rename stuff to distinguish + interface to simulator from gdb-specific stuff. Other changes. + * remote-sp64sim.c: Renamed to remote-sim.c. + Use sr_get_debug instead of our own sim_verbose/simif_snoop. + Use gnutarget in call to bfd_openr. + Rename simif_* to gdbsim_*. + * config/sparc/sp64sim.mt: Change remote-sp64sim.c to remote-sim.c. + +Fri Sep 17 04:41:17 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * findvar.c (extract_signed_integer): Cast *p to LONGEST before doing + the xor and subtract. Otherwise it will not sign extend if the type + of LONGEST is larger than int. + * cp-valprint.c (cp_print_class_method): Inhibit core dump if + domain is an undefined cross reference. + * valops.c (call_function_by_hand): Set real_pc to correct + value if CALL_DUMMY_LOCATION != ON_STACK. + +Thu Sep 16 20:37:06 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * config/a29k/tm-a29k.h (FRAME_CHAIN): If rsize is zero, return zero. + +Thu Sep 16 13:16:22 1993 Stu Grossman (grossman at cygnus.com) + + * infrun.c (wait_for_inferior): Allow user to single step within + a stack dummy. + +Thu Sep 16 12:34:01 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * dbxread.c (copy_pending): Deal with END NULL. + (process_one_symbol): Add comments about what common_block NULL means. + +Wed Sep 15 14:50:26 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * remote-udi.c, remote-adapt.c, remote-mm.c: Move processor_type + to tm-a29k.h and a29k-tdep.c and make it an enum. + * a29k-tdep.c (a29k_get_processor_type): New function. Fix many + aspects of how we detected the processor type. + * remote-udi.c, remote-adapt.c, remote-mm.c (*_open): Call it + rather than figuring out the type ourselves. + +Thu Sep 16 12:12:59 1993 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c (_trap_low): Do restore/save sequence after + setting sp to ensure that we load the previous window from the + right place on the stack. + +Thu Sep 16 00:36:32 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c: Many changes for alpha ecoff format: + Correct sizeof(int) == sizeof(long) assumptions. + Replace stParsed hack by putting the parsed types on the pending chain. + Replace mips specific ecoff mapping by ECOFF_REG_TO_REGNUM macro, + provide default for cross debugging. + Swapping the symbol back is no longer needed as the symbol is not + modified anymore. + Add new alpha basic types, handle btTypedef, handle stStaticProc + external symbols . + Update and clean up cross_ref for alpha cc cross ref variations. + Allocate types on the type_obstack to inhibit storage leaks. + * config/mips/tm-mips.h (ECOFF_REG_TO_REGNUM): Define. + * gdbtypes.c (recursive_dump_type): Dump TYPE_TAG_NAME if it is set. + +Tue Sep 14 09:12:17 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * stabsread.c (read_type): Process "s" (size) type attribute. + If type is defined to another type, copy the type. + +Tue Sep 14 18:37:17 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/i386/i386v4.mh (NATDEPFILES): Move exec.o from here... + * config/i386/i386v4.mt (TDEPFILES): ...to here. + +Tue Sep 14 12:21:49 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * Makefile.in (remote_utils_h): add serial.h and target.h. + (main.o, remote-es.o, remote-nindy.o, remote.o): remove target.h + (already in remote_utils_h). + (remote-utils.o): new rule. + + * remote-utils.h: include serial.h. + + * serial.h: ifdef protect from multiple inclusion. + + * remote.c, remote-nindy.c, remote-mon.c, remote-es.c: include + remote-utils.h. + + * remote.c (remote_open), remote-nindy.c (nindy_open, + nindy_files_info), remote-mon.c (general_open), remote-es.c + (es1800_open): use remote-utils facilities for baud rate. + +Tue Sep 14 09:12:17 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * paread.c, coffread.c, elfread.c, dwarfread.c: + Include and before libbfd.h. + + * paread.c: Define BYTES_IN_WORD before including aout/aout64.h. + + * Makefile.in (a29k-tdep.o): Depend on $(defs_h). + * config/a29k/tm-a29k.h (SAVED_PC_AFTER_CALL): Use gr122 not lr0 + if this is a transparent procedure. + +Mon Sep 13 16:06:43 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * remote.c: Define remote_debug to 0 and #if 0 baud_rate. Temporary + hack so this file compiles again. + + * remote-utils.c (gr_multi_scan): Cast return value from alloca. + (gr_multi_scan): #if 0 never-reached return(-1). + + * remote-udi.c (udi_wait): Return inferior_pid not 0. + +Mon Sep 13 14:14:35 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + Collect some remote things into remote-utils. + * remote-utils.[ch]: new files of functions collected from several + different remote targets. + * Makefile.in (REMOTE_O): add remote-utils.o. + (dcache_h, remote_utils_h): new macros. + (HFILES): add $(remote_utils_h). + (ALLDEPFILES): add $(remote_utils_h). + (dcache.o): new rule. + (main.o, remote-bug.o): also depend on $(remote_utils_h). + * target.h (remote_debug): extern moved to remote-utils.h. + * target.c (find_default_run_target, find_core_target): initialize + runable. + (remote_debug): moved to remote-utils.c. + (_initialize_targets): move declaration of user variable + remotedebug to remote-utils.c. + * remote-bug.c: include remote-utils.h rather than dcache.h. + (bug_close, bug_write, bug_write_cr, desc, bug_dcache, timeout, + dev_name, check_open, is_open, readchar, readchar_nofail, + pollchar, expect, expect_prompt, get_hex_digit, get_hex_byte, + get_hex_word, bug_kill, bug_detach, bug_create_inferior, + multi-scan, bug_prepare_to_store, bug_fetch_word, + bug_store_word, bug_files_info, bug_mourn, bug_com, bug_device, + bug_speed): removed and replaced with facilities from + remote-utils.[ch]. + (bug_read_inferior_memory): renamed to bug_read_memory. + (bug_write_inferior_memory): renamed to bug_write_memory. + (bug_xfer_inferior_memory): renamed to bug_xfer_memory. + (get_word): comment out this unused function for now. + (bug_settings, cpu_check_strings): new statics. + (bug_open): rewritten to use gr_open. + (_initialize_remote_bug): remove declarations of commands bug, + device, speed. + * main.c: include remote-utils.h. + (baud_rate): removed to remote-utils.c. + (main): handle baud rate settings using new facilities from + remote-utils. + * defs.h (baud_rate): removed extern. + + m88110 support via bug-197 monitor. + * remote-bug.c (get_reg_name, bug_fetch_register, + bug_store_register): added m88110 extended register support. + (wait_strings): added bug-197 prompt. + (bug_wait): cope with bug-197 prompt. + (start_load): cope with either bug-197 or bug-187 prompt. + +Mon Sep 13 12:53:09 1993 Jim Kingdon (kingdon@cirdan.cygnus.com) + + * inferior.h, infrun.c, thread.c, infcmd.c: Remove all uses of + pc_changed. If it was ever set to a non-zero value, it was before + GDB 2.8. It doesn't seem to have any useful function. + + * defs.h: Don't define NORETURN (see comment). + +Sat Sep 11 10:46:09 1993 Jim Kingdon (kingdon@poseidon.cygnus.com) + + * m88k-nat.c (fill_gregset): Set r31 and sfip. + +Thu Sep 9 10:18:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c (udi_wait, case UDIStdinNeeded): Use a loop calling + getchar() (terminated only on '\n') instead of scanf. Send the + '\n' which terminates it to the remote system. + + More gcc lint: + * exec.c (ignore): Return 0. + * stack.c (return_command): Fetch lazy value directly, not via + VALUE_CONTENTS, to avoid "value computed is not used". + * inflow.c (new_tty): Move osigttou inside #if. + + * remote.c (remote_fetch_registers): If remote reply is short, just + note that fact and keep going (reading extra registers as all bits 0). + (remote_store_registers): Send number of registers that were found + by remote_fetch_registers. + * m68k-tdep.c, config/m68k/tm-m68k.h, config/m68k/tm-*.h: Remove + HAVE_68881. Define CANNOT_STORE_REGISTER if ptrace() can't write + floating registers. + * config/m68k/{tm-m68k-nofp.h,m68k-nofp.mt,tm-m68k-fp.h,m68k-fp.mt}: + Remove, replaced by {tm-m68k-em.h,m68k-em.mt}. + * Makefile.in, configure.in: Change accordingly. + +Thu Sep 9 04:59:03 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (cross_ref): Allow SGI extended symbol types as cross + reference targets. + * symmisc.c (print_symbol): Use TYPE_TAG_NAME not TYPE_NAME to avoid + printing of identities. + +Wed Sep 8 19:18:27 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (breakpoint_1): Deal with step resume breakpoint. + +Wed Sep 8 13:01:10 1993 K. Richard Pixley (rich@cygnus.com) + + Gcc lint. + * config/m88k/tm-m88k.h (frame_find_saved_regs): prototype. + * config/h8300/tm-h8300.h (NUM_REGS): rewrite to avoid nested comment. + * blockframe.c (get_prev_frame_info): initialize address. + * breakpoint.c (bpstat_copy): initialize retval. + (bpstat_stop_status): initialize value_is_zero. + (bpstat_what): initialize bs_class. + (breakpoint_1, mention): add do-nothing case for bp_step_resume. + (break_command_1): initialize cond_end, addr_end, & + canonical_strings_chain. + (enable_breakpoint): initialize save_selected_frame. + * buildsym.c (end_symtab): initialize symtab & linetablesize. + * c-exp.y (parse_number): initialize i. + * c-typeprint.c (c_type_print_varspec_prefix): include + TYPE_CODE_BITSTRING in switch statements and do nothing. + * c-valprint.c (c_val_print): removed unused variable c. + * ch-valprint.c (chill_val_print): removed unused variable eltlen. + * cp-valprint.c (cp_print_class_method): initialize f & j. + * eval.c (evaluate_subexp): initialize pc2, arg1, arg2. + * expprint.c (print_subexp): initialize myprec, assoc, & tempstr. + * findvar.c (value_from_register): initialize first_addr. + * gdbtypes.c (lookup_struct_elt_type): localize use of temporary + variable typename. + * infcmd.c (run_stack_dummy): return zero rather than simple + return. + * infrun.c (wait_for_inferior): initialize stop_sp, prologue_pc. + remove symtab, appears unused. + (restore_selected_frame): return 1. + * mipsread.c (psymtab_to_symtab_1): initialize first_off. + (fixup_sigtramp): initialize b0. + * printcmd.c (do_examine): initialize val_type. + (print_frame_args): initialize b. + * ser-tcp.c (tcp_restore): comment out declaration. Appears + unused. + * ser-unix.c (hardwire_restore): comment out declaration. Appears + unused. + (hardwire_send_break): moved variable status into ifdef + HAVE_SGTTY. + (wait_for): moved variable numfds into ifdef HAVE_SGTTY. + * serial.h: comment change only. + * stabsread.c (rs6000_builtin_type): initialize rettype. + (read_range_type): initialize nbits. + * stack.c (print_frame_info): remove unused variable numargs. + (parse_frame_specification): remove unused variables arg1, arg2, + arg3. + (return_command): initialize return_value. + * symfile.c (cashier_psymtab): initialize pprev. + * symtab.c (find_pc_psymbol): initialize best. + (lookup_symbol): initialize s. + (make_symbol_completion_list): initialize quote_pos. + * thread.c: include command.h. + (thread_info): static declaration removed; unused. + (info_threads_command): fix == vs = typo. + * typeprint.c (whatis_exp): initialize old_chain. + * valprint.c (val_print_string): remove unused variable + first_addr_err. Initialize old_chain. + (_initialize_valprint): white space comment change. + * values.c (show_values): rewrite if statement to avoid empty + body. + (vb_match): remove unused variable fieldtype_target_type. + +Wed Sep 8 10:21:33 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (mipsread.o): Depend on $(bfd_h). + +Tue Sep 7 13:06:44 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/Makefile.in (TAGS): config files are in + $(srcdir)/../config, not $(srcdir)/config. + + * config/pa/tm-hppa.h: Declare target_read_pc and target_write_pc. + (STORE_RETURN_VALUE): Pass the correct offset of the return + register to write_register_bytes. + * hppa-tdep.c: Use target_write_pc if PCOQ_TAIL_REGNUM was not saved. + +Tue Sep 7 14:30:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * remote.c (remote_wait): Don't call error. Instead, call warning + inside a loop. User can ^C to get out. + + * config/m68k/tm-m68k.h (FIX_CALL_DUMMY): Changed name of swapping + routine to match BFD name change. + * config/z8k/tm-z8k.h (FIX_CALL_DUMMY): Likewise. + +Mon Sep 6 15:01:57 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * elfread.c: change elf32_symbol_type to elf_symbol_type + +Mon Sep 6 15:43:25 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * remote.c (remote_wait): Added 'W' and 'N' responses. + +Fri Sep 3 08:57:10 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c, utils.c: Add comments about immediate_quit. + + * elfread.c (elf_symtab_read): Don't add symbols starting with ".L" + to minimal symbols. + + * target.c (pop_target): Don't try to deal with the stack becoming + empty. Shouldn't happen and the code that tried was broken. + + * dcache.c: Cast return value from xmalloc. + + * remote.c: Move setting of immediate_quit from remote_open to + remote_start_dummy and set it back to zero when done. + +Thu Sep 2 00:07:36 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m88k-tdep.c: Remove a bunch of unused #includes. + + * language.h: Add comment about current_language. + + * mips-tdep.c (_initialize_mips_tdep): Change heuristic-fence-post + from var_uinteger to var_zinteger. + + * configure.in: Fix typo (delta88r4 -> delta88v4). + + * config/m88k/xm-delta88.h: Don't include sys/siginfo.h. It was + to make this work on SVR4 before SVR4 had its own configuration, + and it breaks SVR3. + + * config/m88k/tm-delta88v4.h: Define FRAME_CHAIN_VALID_ALTERNATE. + + * config/m88k/delta88v4.h (NATDEPFILES): Remove infptrace.o inftarg.o. + + * config/m88k/xm-dgux.h: Renamed from config/m88k/xm-m88k.h. + * config/m88k/m88k.mh: Use xm-dgux.h. + * config/m88k/xm-m88k.h: New file, with HOST_BYTE_ORDER, + MAKEVA_END and MAKEVA_ARG. + * config/m88k/xm-*.h: Include m88k/xm-m88k.h. + * printcmd.c: Remove __INT_VARARGS_H code; now in xm-m88k.h. + +Wed Sep 1 19:31:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c (udi_wait): Call `warning' not `error'. + + * symtab.c (COMPLETION_LIST_ADD_SYMBOL): If the symbol has a + demangling, don't put the mangled form in the completion list. + + * symtab.c, symfile.c, c-exp.y, ch-exp.y, m2-exp.y, buildsym.c, + symfile.h, stabsread.c, minsyms.c, solib.c, nlmread.c, dwarfread.c + partial-stab.h, symmisc.c, gdbtypes.c: Lint. Remove (or put + inside #if) unused variables and labels. Fix unclosed comment. + Deal with enumeration values unhandled in switch statements. Make + sure non-void functions return values. Include appropriate + headers. + * dbxread.c (elfstab_build_psymtabs): Don't check for unsigned + value < 0. + +Wed Sep 1 14:36:00 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * i960-tdep.c, ns32k-pinsn.c, remote-adapt.c, xcoffread.c: + index -> strchr. + +Wed Sep 1 11:35:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote.c: Add comment explaining why dcache is disabled. + (remote_fetch_word, remote_store_word): Make static and #if 0. + They are not called from anywhere. + +Wed Sep 1 14:41:28 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * arm-tdep.c, convex-tdep.c, convex-xdep.c, dbxread.c, + h8300-tdep.c, h8500-tdep.c, i960-pinsn.c, i960-tdep.c, + infptrace.c, m88k-tdep.c, mips-tdep.c, regex.c, remote-vx.c, + rs6000-tdep.c, xcoffexec.c, xcoffread.c, z8k-tdep.c, + config/arm/tm-arm.h, config/convex/tm-convex.h, + config/gould/tm-np1.h, config/gould/tm-pn.h, + config/m68k/tm-isi.h, config/ns32k/tm-umax.h, + config/pa/tm-hppa.h, config/pyr/tm-pyr.h, + config/rs6000/tm-rs6000.h, config/tahoe/tm-tahoe.h, + config/vax/tm-vax.h: bzero -> memset. + + * regex.c: bcmp -> memcmp. + +Wed Sep 1 11:35:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (find_pc_line, find_line_common), + symtab.h (struct linetable), xcoffread.c (arrange_linetable): + Revise comments re linetable sorting. + * buildsym.c (compare_line_numbers): Sort by pc, not by line. + * coffread.c: Tell end_symtab to sort the line table. + + * coffread.c: Re-work a lot of the coff-specific stuff to use stuff + in buildsym.c. This includes coff_finish_block, coff_context_stack, + coff_local_symbols, coff_file_symbols, coff_global_symbols, + coff_end_symtab and coff_add_symbol_to_list. + (read_enum_type): Deal with it now that we have a "struct pending" + not a "struct coff_pending". + + * buildsym.c (end_symtab): Don't realloc subfile->linetable. + +Wed Sep 1 13:12:43 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * a68v-nat.c, altos-xdep.c, convex-tdep.c, convex-xdep.c, + findvar.c, hppab-nat.c, hppah-nat.c, i386mach-nat.c, + irix4-nat.c, m68k-tdep.c, m88k-tdep.c, mipsread.c, regex.c, + remote-bug.c, remote-hms.c, rs6000-nat.c, rs6000-tdep.c, + sparc-nat.c, stabsread.c, sun3-nat.c, sun386-nat.c, symfile.c, + umax-xdep.c, xcoffread.c, 29k-share/udi/udip2soc.c, + 29k-share/udi/udr.c, config/a29k/tm-a29k.h, config/arm/tm-arm.h, + config/convex/tm-convex.h, config/gould/tm-np1.h, + config/gould/tm-pn.h, config/h8300/tm-h8300.h, + config/h8500/tm-h8500.h, config/i386/tm-i386aix.h, + config/i386/tm-sun386.h, config/i386/tm-symmetry.h, + config/i960/tm-i960.h, config/m68k/tm-news.h, + config/m88k/tm-m88k.h, config/mips/tm-mips.h, + config/ns32k/tm-merlin.h, config/ns32k/tm-umax.h, + config/pa/tm-hppa.h, config/pyr/tm-pyr.h, + config/rs6000/tm-rs6000.h, config/sh/tm-sh.h, + config/tahoe/tm-tahoe.h, config/vax/tm-vax.h, + config/z8k/tm-z8k.h, nindy-share/nindy.c: bcopy -> memcpy. + +Wed Sep 1 05:05:53 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_partial_symbols): Use language from FDR if it + is unambigous. Patch from ptf@delcam.co.uk (Paul Flinders). + * mipsread.c (ecoff_symfile_info): New struct to hold the global + pending_list. + * mipsread.c (mipscoff_symfile_init, parse_partial_symbols): + Allocate the global pending list and link it to the objfile. + * mipsread.c (is_pending_symbol, add_pending): Use global pending + list from objfile. Allocate pending list entries from the + psymbol_obstack. + * mipsread.c (free_pending): Remove. The pending list is now + freed when the psymbol_obstack is freed. + * mipsread.c (psymtab_to_symtab1): Remove pending list allocation, + the global pending list is used now. + * mipsread.c (parse_partial_symbols): Skip only the first + file indirect entry when building the dependency list. + +Tue Aug 31 15:01:27 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + Break dcache code out of remote.c. + * dcache.h: white space changes only. + * dcache.c: add user settable variable to set whether data caching + is in use. + * remote.c: include dcache.h. removed data caching code which is + now in dcache.c. Compile in data caching again. (data caching + is currently off by default.) + (remote_read_bytes, remote_write_bytes): change second arg to + unsigned char. + (remote_dcache): new static variable. + * Makefile.in (REMOTE_O): add dcache.o. + * config/m88k/m88k.mt (TDEPFILES): removed dcache.o. + + Break dcache code out of remote-nindy.c. + * remote-nindy.c: removed dcache code. Changed callers to use new + conventions. include dcache.h. + (nindy_dcache): new static variable. + * config/i960/nindy960.mt (TDEPFILES): added dcache.o. + + Break dcache code out of remote-bug.c into dcache.[hc]. + * Makefile.in (dcache_h): new macro. + (HFILES): added $(dcache_h). + (ALLDEPFILES): added dcache.c. + (dcache.o): new rule. + (remote-bug.o): now depends on $(dcache_h). + * remote-bug.c: include dcache.h. remove externs for insque and + remque, add extern for bcopy. Prototype bug_close, + bug_clear_breakpoints, bug_write_cr. dcache code moved to + dcache.[hc]. Changed dcache calling convention to include an + initial DCACHE argument. + (bug_dcache): new static variable. + (bug_read_inferior_memory): change second arg to + unsigned char. + * dcache.[ch]: new files. + * config/m88k/m88k.mt (TDEPFILES): add dcache.o. + +Tue Aug 31 10:33:13 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * c-typeprint.c (c_print_type_base): Treat show = 0 just like + show < 0. The only case where we had been distinguishing is that + show = 0 used to print "struct " or "enum " instead of + "struct {...}" or "enum {...}" which seems clearly wrong. + +Mon Aug 30 17:51:32 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * configure.in: recognize m88110 as an m88k. + +Mon Aug 30 16:07:59 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valops.c (call_function_by_hand): If we discard cleanups, call + bpstat_clear (&inf_status.stop_bpstat). + +Mon Aug 30 12:47:46 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * stabsread.h, dbxread.c (end_psymtab): Return NULL if the psymtab + was empty and thrown away. + * mipsread.c (parse_partial_symbols): Do not add empty psymtabs to + dependency list, skip self dependencies. + * mipsread.c (parse_fdr): Removed, obsolete. + * mipsread.c (parse_lines): Check for cbLine being zero, not + cbLineOffset. + * mipsread.c (struct symloc): Add pst_language. + * mipsread.c (parse_partial_symbols): Set up proper language for + header files, save it in pst_language for psymtab_to_symtab_1. + * mipsread.c (psymtab_to_symtab_1): Use pst_language. + +Mon Aug 30 10:48:06 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * configure.in: Fix typo m88*-motorola-svr4* -> sysv4*. + +Fri Aug 27 17:09:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * paread.c: Include som.h instead of libhppa.h. (From Utah.) + +Fri Aug 27 09:30:40 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * symmisc.c (dump_symtab): Use catch_errors around print_symbol. + Change calling sequence of print_symbol to fit catch_errors. + + * mips-tdep.c: Call reinit_frame_cache every time the user does + "set heuristic-fence-post". + + * gdbserver/low-sun3.c: New file. + * gdbserver/Makefile.in, config/m68k/sun3.mh: Change accordingly. + + * Rename files for 14-character limits: + gdbserver/remote-gutils.c -> gdbserver/utils.c + gdbserver/remote-inflow.c -> gdbserver/low-lynx.c + gdbserver/remote-inflow-sparc.c -> gdbserver/low-sparc.c + gdbserver/remote-server.c -> gdbserver/server.c + remote-monitor.c -> remote-mon.c + * Makefile.in, gdbserver/Makefile.in, gdbserver/configure.in, + config/m68k/monitor.mt, config/i386/i386lynx.mh, + config/sparc/sun4os4.mh: Change accordingly. + * gdbserver/Makefile.in: Remove more junk inherited from gdb Makefile. + +Thu Aug 26 14:32:51 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infcmd.c, inferior.h (run_stack_dummy): If we stop somewhere + besides the dummy, return 1 rather than calling error(). + Let caller print the error message. Remove name argument. + * valops.c (call_function_by_hand): Deal with changes to calling + sequence of run_stack_dummy. Discard restore_inferior_status cleanup + if run_stack_dummy returns 1. + + * Version 4.10.2. + + * config/mips/tm-mips.h (EXTRACT_STRUCT_VALUE_ADDRESS): + Get struct return address from v0, not a0. + + * infrun.c (restore_inferior_status): Use catch_errors when + restoring selected frame. + +Wed Aug 25 21:52:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (save_inferior_status, restore_inferior_status): + Save and restore the registers too. + * inferior.h (struct inferior_status): Add "registers". + +Tue Aug 24 00:36:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c (end_psymtab): Clean up comment. + + * frame.h, symtab.h, findvar.c (read_var_value): Change basereg + support to use LOC_BASEREG rather than SYMBOL_BASEREG_VALID. + * dwarfread.c: Use LOC_BASEREG where appropriate. + * Various: Support LOC_BASEREG and LOC_BASEREG_ARG. + + * coffread.c (init_lineno, init_stringtab): Don't check whether + xmalloc returned NULL. + + * config/vax/xm-vaxult.h: Define NO_PTRACE_H. + + * target.c, target.h: Add "set remotedebug" command. + * remote-bug.c, remote.c, remote-mips.c: Remove "set remotedebug" and + "set m88ksnoop" options and use generic "set remotedebug" instead. + * NEWS: Describe this change. + +Mon Aug 23 20:26:22 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * buildsym.h: Remove declaration of dbxread.c functions. + * stabsread.h: Group together dbxread.c functions. + Move elfstab_build_psymtabs here from symfile.h. + Declare pastab_build_psymtabs. + * elfread.c, paread.c: Include stabsread.h (for stabsread_new_init + declaration, etc). + +Mon Aug 23 17:16:23 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * remote-bug.c: rename quiet to bug88k_snoop. + (double_scan, multi_scan): generalize double_scan into a scan + for multiple patterns. Rename to multi_scan. + (bug_wait, bug_write_inferior_memory): adapt to use the new + multi_scan in order to catch and represent target bus errors. + (bug_scan): currently unused, so comment out. + (bug_quiet): removed. Replaced with a standard user settable boolean. + + * m88k-tdep.c: remove include of sys/dir.h. Appears unnecessary + and isn't available on solaris. + +Mon Aug 23 14:56:42 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m88k/{delta88v4.mt,delta88v4.mh}: New files + * config/m88k/delta88.mh: Fix comment. + * config/m88k/tm-delta88.h: Remove unused BCS define. + * config/m88k/{tm-delta88v4.h,xm-delta88v4.h,nm-delta88v4.h}: + New files. + * configure.in: Recognize m88*-motorola-sysv4*. + * m88k-nat.c: Always include sys/types.h; don't depend on USG. + +Mon Aug 23 12:57:42 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_symbol, parse_type, cross_ref): Pass name of + symbol as an argument and use it in complaints. + * symmisc.c (dump_psymtab): Dump filenames of dependencies. + +Mon Aug 23 1993 Sean Fagan (sef@cygnus.com) + and Jim Kingdon (kingdon@cygnus.com) + + Add NetBSD support: + * configure.in: Recognize netbsd. + +Sun Aug 22 22:50:32 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (get_textlow): Don't go past a K_END when looking for a + K_FUNCTION. Avoids losing on source files with no functions. + +Fri Aug 20 14:01:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-nindy.c: Remove unused include of sys/ioctl.h. + + * frame.h, symtab.h: Revise comments regarding baseregs. + +Fri Aug 20 15:07:05 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_partial_symbols, psymtab_to_symtab_1): + Set language for psymtab and symtab. + * mipsread.c (new_symbol): Set language and initialize demangled + name for symbol. + * symmisc.c (print_symbol): Use SYMBOL_SOURCE_NAME when printing + the symbol type. + * symtab.c (decode_line_1): Inhibit coredumps with cfront executables. + +Fri Aug 20 14:01:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Move KERNEL_U_ADDR from xm-hp300bsd.h to nm-hp300bsd.h and make + it conditionalized on 4.3 vs. 4.4. + * config/m68k/nm-hp300bsd.h: Move REGISTER_U_ADDR out of 4.3 and + 4.4 sections; it was identical and now works for 4.4. + + * mips-tdep.c (is_delayed): Use INSN*BRANCH* not ANY_DELAY. + + * printcmd.c (MAKEVA_END): Update this version to use "aligner". + +Thu Aug 19 22:08:09 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/vax/tm-vax.h (BELIEVE_PCC_PROMOTION): Define. + * mipsread.c (parse_symbol, parse_type, cross_ref): Handle corrupt + file indirect entries with complaints instead of core dumps. Remove + complaint for stTypedef within aggregates. + +Thu Aug 19 17:58:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * coffread.c (process_coff_symbol): Ignore tagnames like .0fake. + + * coffread.c (coff_read_enum_type): #if 0 out code which changes + enum {FALSE, TRUE} into boolean. + + * config/m68k/delta68.m{t,h}: Use nm-delta68.h, etc. not + non-existent files nm-delta.h, etc. + * config/m68k/tm-delta68.h: Define CANNOT_STORE_REGISTER. + * delta68-nat.c: Add "[0]" in offsetof argument. + * delta68-nat.c (_initialize_kernel_u_addr): Don't try to set up + nl with initializer, just assign to it. Check n_scnum field on + return. + +Wed Aug 18 21:42:52 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (read_hpux_symtab): Call SET_NAMESTRING for K_MODULE + debug symbols. + +Wed Aug 18 12:03:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (print_address), values.c (value_as_pointer): Don't + use ADDR_BITS_REMOVE. + * defs.h: Try to clarify comment about ADDR_BITS_REMOVE. + + * blockframe.c (block_innermost_frame): Uncomment. + Return NULL if passed NULL. + * frame.h: Declare it. + * expression.h (union exp_element): Add field block. + * parse.c (write_exp_elt_block): New function. + * expression.h (OP_VAR_VALUE): Now takes additional struct block *. + * *-exp.y: Write block for OP_VAR_VALUE. + * eval.c, expprint.c, parse.c: Deal with block for OP_VAR_VALUE. + * valops.c, value.h (value_of_variable), callers: + Add second argument, for block. + + * main.c (gdb_readline): If we read some characters followed by EOF, + return them rather than returning NULL. + +Tue Aug 17 11:14:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mips-tdep.c: Remove unused #ifndef NUMERIC_REG_NAMES and add comment. + +Tue Aug 17 15:10:04 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/m88k/tm-m88k.h: Fix typo in comment. + (FP_REGNUM): define in terms of SP_REGNUM + rather than by absolute number. Also clearly comment that this + is a convenient lie in order to decrease future confusion. + (ACTUAL_FP_REGNUM): new macro for FP. + (FRAME_CHAIN_VALID): removed. Standard default works fine. + * m88k-tdep.c (frame_chain_valid): redundant, so removed. + (NEXT_PROLOGUE_INSN): removed unused fourth arg, fixed all + callers. + (read_next_frame_reg): declare static. + (examine_prologue): removed unused variabel insn2, rename insn1 + to insn, rewrote comment about finding fp, sp, etc. set frame_fp + based on ACTUAL_FP_REGNUM rather than FP_REGNUM which is + actually a scammed alias for SP_REGNUM on m88k. + + * frame.h: fixed typo in comment. + +Tue Aug 17 11:14:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * 29k-share/udi/udiphcfg.h: Always include udiphunix.h not udiphdos.h. + + * complaints.c (complain): fflush (stdout) after output. + +Tue Aug 17 01:43:55 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * blockframe.c, frame.h (sigtramp_saved_pc): New routine to fetch + the saved pc from sigcontext on the stack for BSD signal handling. + * config/i386/tm-i386bsd.h (SIGTRAMP_START, SIGTRAMP_END, FRAME_CHAIN, + FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC, SIGCONTEXT_PC_OFFSET): + Define to make backtracing through sigtramp work. + * config/vax/tm-vax.h (SIGTRAMP_START, SIGTRAMP_END, TARGET_UPAGES, + FRAME_SAVED_PC, SIGCONTEXT_PC_OFFSET): Ditto. + +Mon Aug 16 13:52:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (cd_command): If current_directory on entry is "/", then + don't append an extra slash. + Don't assume that /../.. means /. + + * target.c (target_xfer_memory): Clear errno before calling + to_xfer_memory. + + * stack.c (frame_info, print_frame_info): Add comment about using + the starting source line number on a line boundary if backtracing + through sigtramp. + +Mon Aug 16 09:52:33 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Add U Utah contribution notice. Add TODO list. + (hp_type_lookup): Use TYPE_NAME and TYPE_TAG_NAME. + (process_one_debug_symbol): Likewise. + +Mon Aug 16 02:56:01 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * blockframe.c (create_new_frame, get_prev_frame_info): + Use the function name when calling IN_SIGTRAMP. + * config/m68k/tm-m68k.h (SIG_PC_FP_OFFSET, SIG_SP_FP_OFFSET): + Define for correct handling of bachtraces through _sigtramp. + * m68k-tdep.c (m68k_find_saved_regs): Adjust saved sp for fake + sigtramp frames. + * mipsread.c (parse_type): Handle corrupt TIR info with complaint + instead of core dump. + * mipsread.c (parse_partial_symbols): Put static symbols into the + mimimal symbol table, use proper mst_types for all minimal symbols. + * stack.c (frame_info, print_frame_info): Use the starting source + line number on a line boundary if backtracing through sigtramp. + +Fri Aug 13 14:37:05 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * remote-bug.c: include gdbcmd.h. + (sleep, remque, insque): forward decls added. + (bug_fetch_registers, bug_store_registers): forward decls + removed. + (bug_read_inferior_memory, bug_write_inferior_memory): forward + decls added. + (srec_frame, srec_max_retries, srec_bytes, srec_echo_pace, + srec_sleep, srec_noise): new static variables for user settable + options. Mostly these are for debugging and tuning. I don't + expect them to stay user settable options for long. + (timeout): change default to 4 seconds. + (check_open): declare funtion static, force return value. + (readchar_nofail): if timeout, then say so if not being quiet. + (pollchar, double_scan, bug_scan, bug_srec_write_cr, + start_load): new functions. + (bug_wait): rewritten to use double scan. + (expect): while (1) -> for (;;) + (get_hex_digit): rewrite if condition to avoid gcc complaints. + (bug_load, bug_create_inferior, bug_open, bug_store_register): + removed unused variables. + (bug_load): replaced DELTA macro with user settable srec_frame + variable. Other minor lint. + (find_end_of_word, is_baudrate_right, set_rate, not_bug_wait, + gethex, timed_read, translate_addr, bug_before_main_loop): + unsused and removed. + (bug_resume): add missing first arg, pid. + (get_reg_name): use ip rather than cr04. + (bug_write, bug_write_cr, but_clear_breakpoints, bug_quiet): + declare type, args, and explicitly return. + (bug_store_register): straighten out the ip vs cr04 confusion. + (bug_write_inferior_memory): rewrite to cope with errors while + downloading s-records. + (bug_read_inferior_memory): declare static. + (bug_clear_breakpoints): expect nobr before prompt. + (_initialize_remote_bug): add initializations for srec-bytes, + srec-max-retries, srec-frame, srec-noise, srec-sleep, + srec-echo-pace. + + * Makefile.in (remote-bug.o): new rule. + (ALLDEPFILES): added remote-bug.c + + * remote-hms.c (hms_wait): use -1 for timeout's which means block + forever rather than 99999. + + * ser-unix.c (get_tty_state): if a descriptor is not a tty, then + simply save encode this fact as the process group and return + success rather than an error. + (set_tty_state): if process group is -1, do not reset the + process group. + (hardwire_reachar): comment change. + + * serial.h: comment change. + + * config/m88k/tm-m88k.h: comment change to remove embedded + comment. + (SKIP_PROLOGUE): skip_prologue returns a value which is expected + to reset the pc argument. So reset it. + +Fri Aug 13 10:15:24 1993 Fred Fish (fnf@deneb.cygnus.com) + + * Makefile.in (VERSION): Bump to 4.10.1 after release and cvs + tagging. + +Thu Aug 12 20:40:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/Makefile.in: Use GDBSERVER_LIBS and + GDBSERVER_DEPFILES. Also remove much (but not all that could be + removed) crud inherited from gdb Makefile.in. + * config/i386/i386lynx.mh, config/sparc/sun4os4.mh: Define GDBSERVER_*. + * gdbserver/README: Say it works on Sun and change configuration + instructions slightly. + +Wed Aug 11 18:56:59 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * config/i386/i386v4.mh: use -lsocket and -lnsl, for remote + targets that use BSD style network connections + +Wed Aug 11 17:54:24 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-{monitor,bug}.c: Make bug_ops not static (forward declaration + of statics doesn't work with SunOS4 /bin/cc). + Rename the occurrence in remote-monitor.c to monitor_bug_ops. + +Tue Aug 10 13:07:14 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * blockframe.c (find_pc_partial_function), + mips-tdep.c (find_proc_desc): Deal with "pathological" case. + +Tue Aug 10 14:50:30 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c (wrap_here): Allow indent to be NULL. + (fputs_filtered): Don't check for null wrap_indent (wrap_here now + guarantees that it isn't, and anyway we were only checking one out + of the two places we dereferenced it). + + * objfiles.h (struct objfile): Clean up comments for + {obj,sym}_private to clarify what they are private to. + +Mon Aug 9 16:45:00 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * stabsread.c, buildsym.c (hashname): Moved function to + buildsym.c, as suggested in the sources. + +Mon Aug 9 09:53:45 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c: Make udi_ops extern rather than trying forward + declaration of a static variable. + + * hppab-nat.c: Define ptrace to call_ptrace and pass the 5th arg + there, rather than using an ANSI C specific macro. + + * 29k-share/udi/udr.c: Include fcntl.h not sys/fcntl.h. Also put + sys/types.h near the top (just on general principles). + + * environ.c (set_in_environ): Remove G960BASE and G960BIN; they are + no longer used. + + * gdbcore.h: New variable gnutarget. + * core.c: Add commands to set and show it. + * Callers to bfd_*open*: Pass gnutarget instead of NULL as target. + * environ.c (set_in_environ): For GNUTARGET, use set_gnutarget not + putenv. + + * symtab.c (decode_line_1): Give error on unmatched single quote. + +Sun Aug 8 13:59:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * ser-unix.c (hardwire_send_break) [HAVE_SGTTY]: Use select not usleep. + + * remote.c: Add comments about 'd', 'r', and unrecognized requests. + + * inflow.c (terminal_init_inferior): Don't muck with tty state if + gdb_has_a_terminal() is false. + +Sun Aug 8 10:07:47 1993 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (record_minimal_symbol): Remove prototype and + function. + * dwarfread.c (add_partial_symbol): Remove code to add minimal + symbols and remove comment about limitations. Experiments show + that now that gdb handles the ELF symtab better for creating + minimal symbols, that no additional information is added by + examining the DWARF information, and in fact, given the + limitations, the DWARF code was actually making things worse. + +Sat Aug 7 10:59:03 1993 Fred Fish (fnf@deneb.cygnus.com) + + * elfread.c (elf_symtab_read): Properly sort out the bss symbols + from the data symbols and give them the correct minimal_symbol_type. + Add file static symbols to the minimal symbol table, not just + global symbols. Add absolute symbols as well (like _edata, _end). + Redo stabs-in-elf special symbol handling now that file static + symbols are entered into the into the minimal symbol table. + * dwarfread.c (add_partial_symbol): Add comment about limitations + of DWARF symbols for distinquishing data from bss when adding + minimal symbols. Add file local symbols to minimal symbols. + +Thu Aug 5 08:58:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * ser-go32.c: Define job_control variable. + +Thu Aug 5 15:56:13 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * configure.in: z8k-coff is the same as z8k-sim + +Thu Aug 5 08:58:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * 29k-share/udi/udip2soc.c: Include sys/types.h before sys/file.h. + + * config/i386/tm-i386bsd.h (NUM_REGS): There are only 10, not 11. + + * inflow.c: Put all uses of F_GETFL and F_SETFL in #ifdef F_GETFL. + + * 29k-share/udi/udip2soc.c: Include fcntl.h not sys/fcntl.h. + +Wed Aug 4 18:32:12 1993 Fred Fish (fnf@cygnus.com) + + * inflow.c (pass_signal): Signal handlers take one int arg; + supply an unused one to make it type compatible as an arg to + signal(). + +Tue Aug 3 18:34:14 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/mips/tm-mips.h: Include bfd.h before coff/sym.h. + +Tue Aug 3 15:34:57 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (ALLCONFIG): Add config/i386/i386nw.mt, + config/m68k/delta68.mh, config/m68k/delta68.mt, + config/m68k/dpx2.mh, config/m68k/dpx2.mt, config/mips/riscos.mh, + config/mips/news-mips.mh. + * Makefile.in (ALLPARAM): Add config/i386/nm-symmetry.h, + config/i386/tm-i386nw.h, config/m68k/nm-delta68.h, + config/m68k/tm-delta68.h, config/m68k/xm-delta68.h, + config/m68k/nm-dpx2.h, config/m68k/tm-dpx2.h, + config/m68k/xm-dpx2.h, config/mips/xm-makeva.h. + * Makefile.in (ALLDEPFILES): Add dpx2-nat.c. + +Tue Aug 3 12:02:09 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c: Updated for BFD ECOFF changes. Now gets the + swapping routines and external structure sizes via the + ecoff_backend information. No longer includes coff/mips.h. + +Tue Aug 3 10:58:04 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (SFILES): Add thread.c + +Tue Aug 3 10:21:58 1993 Doug Evans (dje@canuck.cygnus.com) + + * remote-sp64sim.c (simif_create_inferior): Add FIXME regarding + sim_set_args return code. + +Mon Aug 2 16:35:31 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * Makefile.in (VERSION): bumped to 4.9.4. + + * remote-monitor.c: updated copyright. + (bug_ops, monitor_desc): now static. + (monitor_desc): in several places, check and/or set to NULL. + + * remote-hms.c (hms_files_info): Add the appropriate items where + missing in the printf call. + + * remote-bug.c: new file for m88k bug support. + + * config/m88k/m88k.mt (TDEPFILES): added remote-bug.o. + +Mon Aug 2 14:22:09 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * h8300-tdep.c: Use new variable h8300hmode. + +Mon Aug 2 12:06:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valops.c (typecmp): If we are passing a non-reference to a function + which takes a reference, pass the address. + (value_arg_coerce): Don't use COERCE_ENUM; we don't want to dereference + references here. + + * thread.c (thread_switch): Define as static. + (add_thread): Cast return value from xmalloc. + + * gdbtypes.c (fill_in_vptr_fieldno): Call check_stub_type. + * gdbtypes.{c,h}: Improve comments on vptr_fieldno. + +Mon Aug 2 11:58:52 1993 Fred Fish (fnf@deneb.cygnus.com) + + * README: Elaborate on gdb C++ support and cfront support. + +Mon Aug 2 11:30:57 1993 Stu Grossman (grossman at cygnus.com) + + * i386lynx-nat.c, thread.c, thread.h: Update copyrights. + +Mon Aug 2 12:06:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (ALLDEPFILES): Add i386lynx-nat.c. + +Mon Aug 2 08:42:50 1993 Stu Grossman (grossman at cygnus.com) + + * gdbserver/remote-inflow.c (create_inferior): Fix comments, and + error msg. Setup seperate process group for child. + * (write_inferior_memory): Sleep for 1 second and retry on ptrace + failure. + +Sun Aug 1 22:58:18 1993 Stu Grossman (grossman at cygnus.com) + + * config/i386/i386lynx.mh (NATDEPFILES): Drop coredep (for now). + * config/i386/nm-i386bsd.h: Protect from multiple inclusion. + * config/i386/nm-i386lynx.h: Lotsa new host porting stuff. + * config/i386/tm-i386lynx.h: Define SAVED_PC_AFTER_CALL and + target_pid_to_str. + + * Makefile.in (CLIBS): Reorder to make Lynx ld happy. + * (HFILES): New file thread.h. + * (OBS): New file thread.c. + * configure.in: Host config for Lynx/386. + * fork-child.c (fork_inferior): Call init_thread_list(). + * infrun.c (resume): Add pid to invocation of target_resume(). + * (wait_for_inferior): Pay attention to pid from target_wait(). + Multi-threading code now uses this to determine what to do. + * inftarg.c (child_wait): Conditionalize based on CHILD_WAIT macro. + Use target_pid_to_str() macro throughout when printing pid. + * inferior.h (child_resume): Add pid to prototype. + * hppab-nat.c hppah-nat.c infptrace.c (child_resume): Pass in pid as + argument, instead of using inferior_pid. + * procfs.c (procfs_resume): Pass in pid as argument. Ignored for + now. Use target_pid_to_str() macro throughout for printing process id. + * remote-adapt.c (adapt_resume): Pass in pid as argument. + * remote-eb.c (eb_resume): Pass in pid as argument. + * remote-es.c (es1800_resume): Pass in pid as argument. + * remote-hms.c (hms_resume): Pass in pid as argument. + * remote-mips.c (mips_resume): Pass in pid as argument. + * remote-mm.c (mm_resume): Pass in pid as argument. + * remote-monitor.c (monitor_resume): Pass in pid as argument. + * remote-nindy.c (nindy_resume): Pass in pid as argument. + * remote-sa.sparc.c (remote_resume): Pass in pid as argument. + * remote-sim.c (rem_resume): Pass in pid as argument. + * remote-sp64sim.c (simif_resume): Pass in pid as argument. + * remote-st.c (st2000_resume): Pass in pid as argument. + * remote-udi.c (udi_resume): Pass in pid as argument. + * remote-vx.c (vx_resume): Pass in pid as argument. + * remote-z8k.c (rem_resume): Pass in pid as argument. + * remote.c (remote_resume): Pass in pid as argument. + * solib.c (solid_create_inferior_hook): Pass inferior_pid to + target_resume(). + * target.c (normal_pid_to_str): New routine to print out process + ID normally. + * target.h (struct target_ops): Add pid to prototype at + to_resume(). (target_resume): Add pid argument. + * (target_pid_to_str): Default definition for normal type pids. + * thread.h, thread.c: New modules for multi thread/process control. + +Sun Aug 1 13:02:42 1993 John Gilmore (gnu@cygnus.com) + + * README: Say that bug-gdb is also the place to send requests + for help with GDB. + +Sun Aug 1 09:42:13 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (make-proto-gdb-1): Use -f opt on rm of Makefile. + * h8500-tdep.c: Add parens around a few macro args. + +Fri Jul 30 15:43:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Remove items about unix-to-unix/rapp debugging (now we + have gdbserver), moving xm files to subdirectory, ptype yylval, + and file-local symbols. + + * gdbtypes.h: Improve comments about C++ methods. + +Fri Jul 30 14:16:32 1993 Fred Fish (fnf@deneb.cygnus.com) + + * c-exp.y: Add missing 5th arg for one call to lookup_symbol, cast + NULL in all other calls to correct pointer types. + +Fri Jul 30 15:43:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + From Jeffrey Law: + * tm-hppa.h (TARGET_WRITE_PC): Define. + * hppa-tdep.c (hppa_fix_call_dummy): If in a syscall, + then return the address of the dummy itself rather than + the address of $$dyncall. + (target_write_pc): New function to store a new PC. + +Fri Jul 30 12:51:27 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + and Jim Kingdon (kingdon@cygnus.com) + + * breakpoint.c (breakpoint_re_set_one): Always reparse breakpoint + conditions, they might contain symbol table references. + +Fri Jul 30 12:51:27 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_symbol): Handle opaque struct definitions and + type naming for stTypedef symbols. + +Fri Jul 30 14:44:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * c-exp.y (yylex): Detect C++ nested types. + +Fri Jul 30 11:07:37 1993 Doug Evans (dje@canuck.cygnus.com) + + * sp64-tdep.c (sparc64_frame_chain, sparc64_frame_saved_pc): Deleted. + (dump_ccreg, sparc_print_register_hook): New fns. + * remote-sim.h: New file. + * remote-sp64sim.h (sim_*): External fns. (simif_*): Internal fns. + + * config/sparc/sp64.mt: New file. + * config/sparc/tm-sp64.h (FRAME_CHAIN, FRAME_SAVED_PC): Deleted. + (PRINT_REGISTER_HOOK): Call new fn sparc_print_register_hook. + +Fri Jul 30 10:15:01 1993 Fred Fish (fnf@deneb.cygnus.com) + + * Makefile.in (ALLCONFIG): Add config/i386/ptx.mh + +Fri Jul 30 08:58:01 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + From J. Law: + * infcmd.c (read_pc): Remove PA specific code. + * tm-hppa.h (TARGET_READ_PC): Define. + * hppa-tdep.c (target_read_pc): New function. + + * symtab.c (gdb_mangle_name): Deal with it if type lacks a name. + +Fri Jul 30 07:36:53 1993 Fred Fish (fnf@deneb.cygnus.com) + + * NEWS: Add note that DEC alpha support is host only, not native. + * README: Emphasize that C++ support works best with GNU C++ and + stabs debugging format. + * delta68-nat.c: Add missing FSF copyright. + +Fri Jul 30 08:58:01 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * paread.c (pa_symtab_read): Put file-local symbols in minimal symbols. + * hppa-tdep.c (frame_chain_valid): Check that our function has the + same address as _start, not that it must be the same symbol. + +Fri Jul 30 00:18:40 1993 Fred Fish (fnf@deneb.cygnus.com) + + * Makefile.in (ALLDEPFILES): Add delta68-nat.c + * Makefile.in (delta68-nat.o): Add dependency. + +Thu Jul 29 12:09:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * value.h (COERCE_ENUM): Use COERCE_REF to coerce refs; value_ind + was adequate in gdb 3.5 but not now. + + * valops.c (typecmp): An array in t2 matches a pointer in t1. + + * valops.c (typecmp): When comparing type1& to type2, compare + type1 and type2 as leniently as if we were comparing type1 to + type2. + + * cp-valprint.c (cplus_print_value): Don't dump core if the + baseclass doesn't have a name. + * values.c (vb_match): New function, which finds the virtual + base class pointer even if the types are nameless. + (baseclass_{addr,offset}): Use it. + + * hppa-tdep.c: Make "maintenance print unwind" command from old + "unwind" command. + + * remote-udi.c: Remove udi_timer, call to siginterrupt, and associated + obsolete junk which apparently had been copied from the + pre-serial.h remote.c, but which is no longer used. + +Thu Jul 29 12:36:20 1993 Fred Fish (fnf@deneb.cygnus.com) + + * Makefile.in (NONSRC): Need 29k-share/README, not + 29k-share/udi/README. + +Thu Jul 29 12:09:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * paread.c (pa_symfile_init): If error reading string table, don't + use errno in cases where it hasn't been set. + + * ser-unix.c (gdb_setpgid): Pass our pid, not 0, to setpgid. + + * remote-monitor.c (_initialize_monitor): Comment out use of + connect_command, since connect_command itself is commented out. + + * remote-monitor.c (generic_open): Parse arguments the same way + as remote.c. + + * hppa-tdep.c (pc_in_linker_stub): Fix unclosed comments. + +Wed Jul 28 13:19:34 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/xm-mips.h: Define HAVE_TERMIOS. + + * dbxread.c (record_minimal_symbol): Don't put gcc_compiled or + __gnu_compiled* symbols into the minimal symbols. + +Wed Jul 28 08:26:58 1993 Ian Lance Taylor (ian@cygnus.com) + + * remote-mips.c (_initialize_remote_mips): Added "timeout" and + "retransmit-timeout" variables to set mips_receive_wait and + mips_retransmit_wait, respectively. + +Wed Jul 28 03:58:58 1993 (pes@regent.e-technik.tu-muenchen.de) + + * symmisc.c (dump_msymbols): Handle new mst_file_* types. + +Tue Jul 27 12:07:38 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c: Remove old comment about download not implemented. + + * serial.h, ser-{unix,go32,tcp}.c: Add flush_input and send_break. + * nindy-share/*, remote-nindy.c: Extensive hacking to make it + conform to GDB conventions like using memcpy not bcopy, serial.h, + etc. This is to make it host on Solaris, AIX, etc. + * Makefile.in: Reflect removed nindy-share files. + * config/i960/nindy960.mt (TDEPFILES): Remove ttybreak.o. + + * stack.c (print_frame_info): Revise comment about `pathological' + case (there was a wrong FIXME about text labels; also asm() can + trigger this as well as versions of ar which truncate .o names). + + * buildsym.c (start_subfile): If a .c file includes a .C file, set + the language of both of them to C++. + + * config/sparc/xm-sun4os4.h: Define MEM_FNS_DECLARED and include + . + Include rather than declaring malloc functions ourself. + + * ser-unix.c (set_tty_state): Don't ignore errors setting process + group. + * inflow.c (terminal_inferior): If attach_flag set, ignore errors + from set_tty_state. + + * fork-child.c (fork_inferior): Only quote exec file if needed. + + * mipsread.c (parse_symbol): Remove 21 Jul 93 change with + stTypedef inside an stBlock. + +Tue Jul 27 12:36:49 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c (breakpoint_1): Walk the breakpoint chain to decide if + we have breakpoints or watchpoints as we might have to ignore internal + breakpoints. + + Fix gdb core dumps after `file newfile' commands. + * symtab.h, symfile.c (clear_symtab_users): New routine which + unconditionally clears symtab users. clear_symtab_users_once + commented out as it was a noop anyway. + * objfiles.c (free_objfile): Don't call clear_symtab_users_once. + * objfiles.c (free_all_objfiles), symfile.c (new_symfile_objfile), + xcoffexec.c (exec_close): Call clear_symtab_users if necessary. + * symfile.c (syms_from_objfile): Install cleanups for errors during + symbol reading. + * coffread.c, dbxread.c, mipsread.c, xcoffread.c (*_symfile_read): + Lint cleanup code, call do_cleanups explicitly. + * symfile.c (symbol_file_add): Call new_symfile_objfile and + reinit_frame_cache _after_ the new symbols are read in. + +Tue Jul 27 01:57:01 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_type): Do not set tag name for compiler + generated fake tag names. + +Mon Jul 26 17:31:49 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * config/m88k/m88k.mt (TDEPFILES): add exec.o. + +Mon Jul 26 13:17:36 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * hppa-tdep.c: Remove all uses of use_unwind and `set use_unwind' + command. Now we use unwind info by default if we can find it. + + * config/sparc: Move VARIABLES_INSIDE_BLOCK and SUN_FIXED_LBRAC_BUG + to tm-sparc.h so they are shared between Solaris and SunOS4. + * dbxread.c (process_one_symbol): Deal with SunOS4 acc N_STSYM and + N_GSYM functions. + + * config/pa/tm-hppa.h (REGISTER_NAMES): Use "fr" rather than "fp" + for floating point registers. + + * mipsread.c (parse_symbol): Put stStaticProc symbols in minimal + symbols as mst_file_text. + + * hppa-tdep.c (pc_in_linker_stub): Return 0 if can't read memory. + + * stabsread.c (rs6000_builtin_type): Make logical types be + TYPE_CODE_BOOL. + +Sun Jul 25 23:41:48 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.{c,h} (struct breakpoint): Replace symtab field with + source_file field. + +Fri Jul 23 09:57:25 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * remote.c: Don't error() on errors xferring memory. + * target.h: Clean up comments about *xfer_memory. + + * exec.c, corelow.c (target_ops struct): Don't allow + {insert,remove}_breakpoints to be defaulted to + memory_{insert_remove}_breakpoint. + + * demangle.c: Make it so `help set dem' tells you how to get the + list of demangling styles. + +Thu Jul 22 15:41:09 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * Makefile.in: Use REMOTE_O macro not remote.o. + * config/i960/{nindy960,vxworks960}: Don't use remote.o. + +Thu Jul 22 12:43:25 1993 Ian Lance Taylor (ian@cygnus.com) + + * coredep.c: If NEED_SYS_CORE_H defined, include + (can't include it in nm-*.h file because it causes conflicts with + a.out symbol definitions). + * hp300ux-nat.c (fetch_core_registers): Commented out; obsolete. + * config/m68k/hp300hpux.mh (NATDEPFILES): Added coredep.o and + corelow.o. + * config/m68k/nm-hp300hpux.h (NEED_SYS_CORE_H): Defined. + (REGISTER_U_ADDR): Defined. + * config/m68k/xm-hp300hpux.h (HAVE_TERMIOS): Define instead of + HAVE_TERMIO. + * config/pa/xm-hppah.h: Likewise. + +Wed Jul 21 11:37:30 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * mipsread.c (parse_symbol): when stTypedef and friends occur within + an stBlock, skip over the fields of the inner one. + + * mips-tdep.c (init_extra_frame_info): If in lenient prologue, call + heuristic_proc_desc rather than just assuming registers not saved. + + * Makefile.in (regex.o): Add dependency. + + * hppa{b,h}-nat.c: Warning, not error, if can't access registers. + + * config/pa/hppa{b,h}.h: Define ATTACH_DETACH. + +Wed Jul 21 03:07:30 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/xm-makeva.h: New file implements va_list alignment + restrictions for mips hosts. + * config/mips/{xm-irix3.h, xm-mips.h, xm-news-mips.h, xm-riscos.h}: + Use it. + +Wed Jul 21 00:11:05 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-tdep.c (init_extra_frame_info): Do not check for + mips_in_lenient_prologue if it is a dummy frame. + * mipsread.c (fixup_sigtramp): Initialize pdr.adr, it is used by + mips_in_lenient_prologue. + +Tue Jul 20 14:14:59 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (read_hp_array_type): Handle "char foo[]". + +Tue Jul 20 12:53:47 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * mips-tdep.c (heuristic_proc_start): First time we print the + warning, elaborate. + (_initialize_mips_tdep): Improve docstring for `set heur'. + + * config/rs6000/tm-rs6000.h: Remove call to insert_step_breakpoint. + + * symtab.c (find_line_symtab): New function, to deal with multiple + symtabs with the same name. + (find_line_pc{,_range}): Use it. + (find_pc_symtab): Add comment about overlapping symtabs. + +Mon Jul 19 21:29:14 1993 Fred Fish (fnf@deneb.cygnus.com) + + * Makefile.in (SFILES): Add nlmread.c. + * Makefile.in (OBS): Add nlmread.o. + * Makefile.in (nlmread.o): Add new target. + * configure.in (i[34]86-*-netware): New configuration. + * nlmread.c, config/i386/{i386nw.mt, tm-i386nw.h}: New files + for NLM/NetWare support. + +Mon Jul 19 11:48:57 1993 Jim Kingdon (kingdon@deneb.cygnus.com) + + * symtab.h (enum minimal_symbol_type): Add mst_file_*. + * partial-stab.h [DBXREAD_ONLY]: Record statics in miminal symbols. + * dbxread.c (record_minimal_symbol): Deal with statics. + * minsyms.c (lookup_minimal_symbol): Prefer externals to statics. + + * config/i386/xm-i386sco.h: Define HAVE_TERMIOS. + + * printcmd.c, config/pa/xm-pa.h, config/alpha/xm-alpha.h: Make it so + arg_bytes field of makeva_list is always aligned. + * config/pa/xm-pa.h: Make arglist_address a char *. + + * ser-unix.c: Don't try to use job control with termio. + +Sun Jul 18 23:11:28 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + and Jim Kingdon (kingdon@cygnus.com) + + Make breakpoint_re_set_one work with overloaded member functions, + `b 123' and `b foo' if foo is a static function. + * symtab.c (decode_line_1, decode_line_2): New argument `canonical' + to return canonical line specs if requested by the caller. + * breakpoint.c, source.c, symtab.c, symtab.h: Change prototypes and + callers accordingly. + * symtab.c (build_canonical_line_spec): New helper function which + constructs the canonical line spec. + * breakpoint.c (break_command_1): Use canonical line spec instead + of command string as addr_string if necessary. + * source.c (line_info): Fix storage leak. + +Sun Jul 18 15:22:45 1993 Jim Kingdon (kingdon@rtl.cygnus.com) + + * infptrace.c: Split out define of PT_KILL; Sequent defines PT_KILL + but not the others. + * symm-tdep.c: Remove exec_file_command. + [_SEQUENT_] (ptx_coff_regno_to_gdb, register_addr): New functions. + A few miscellaneous cleanups. + * symm-nat.c: Renamed from symm-xdep.c. + * All symmetry dependent files: Many changes. + + * mips-tdep.c (mips_skip_prologue): New argument lenient. + Use read_memory_nobpt. + (is_delayed, mips_in_lenient_prologue): New functions. + (init_extra_frame_info): If in the prologue, don't use saved registers. + * config/mips/tm-mips.h: Declare mips_skip_prologue. + + * partial-stab.h (N_SO): Add the text offset to valu before, not after, + passing it to END_PSYMTAB. + +Fri Jul 16 18:48:52 1993 Jim Kingdon (kingdon@rtl.cygnus.com) + + * symtab.c (find_pc_symtab): Call warning, not printf directly. + + * solib.c (solib_add): Use x{re,m}alloc, not {re,m}alloc. + +Fri Jul 16 09:56:42 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c: No longer need to undefine ZMAGIC. + +Thu Jul 15 18:03:37 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * m88k-pinsn.c: Moved code into opcodes/m88k-dis.c. + (print_insn): Now just calls print_insn_m88k. + +Thu Jul 15 14:54:05 1993 Doug Evans (dje@canuck.cygnus.com) + + * h8300-tdep.c (examine_prologue): Make prototype match definition. + +Thu Jul 15 08:34:49 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * NEWS: Mention that remote.c now has a `load' operation. + + * hppa-tdep.c (pc_in_linker_stub): New function. + (find_proc_framesize): Return 0 for linker stubs. + (rp_saved): Tell the caller where rp is saved. + (frame_chain_valid): Return 1 for linker stubs. + (frame_saved_pc): Use return value from rp_saved. + + * stack.c (print_frame_info): When checking PC_IN_CALL_DUMMY, + pass the sp relative to the frame in question, not the sp in the + innermost frame. + +Wed Jul 14 17:37:03 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mipsread.c (parse_procedure): Take as argument the symtab to look + the name up in. Look it up with mylookup_symbol, not lookup_symbol. + (psymtab_to_symtab_1): For stabs, pass the symtab to parse_procedure. + + * mipsread.c (mylookup_symbol): Use strcmp, not STREQ, as we have + already checked the first characters. + + Changes from Jeffrey Law: + * printcmd.c (makeva_list): Use MAKEVA_EXTRA_INFO to define + machine dependent fields in the makeva_list structure. + (makeva_size): Allocate extra space to handle gaps made by + alignment restrictions. + * config/pa/xm-pa.h (MAKEVA_EXTRA_INFO): Define. + (MAKEVA_START): Initialize arglist_address field. + (MAKEVA_ARG): Always store arguments on natural alignment + boundaries. Set arglist_address to the address right after + the args. + (MAKEVA_END): Simply return the value stored in arglist_address. + +Wed Jul 14 13:51:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * ch-valprint.c (chill_val_print, case TYPE_CODE_STRING): Print + address, not addr. + + * hppah-nat.c (store_inferior_registers): Don't print i in cases + where we aren't using it. + + * a29k-tdep.c (get_saved_register): Fix typo. + +Wed Jul 14 09:45:52 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Recognize h8300h (variant of h8300). + +Wed Jul 14 09:45:52 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Recognize sparc64-*-*. + +Tue Jul 13 14:03:48 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (define_symbol): Make the caddr_t hack apply to `function + returning foo' as well as `pointer to foo'. + + * remote.c [REMOTE_BREAKPOINT]: Use for breakpoint insn if defined. + * config/m68k/tm-m68k.h: Define it. + * mem-break.c, breakpoint.c: Improve comments. + +Tue Jul 13 13:35:31 1993 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) + + * config/m68k/tm-dpx2.h: Replace "tm-68k.h" with "m68k/tm-m68k.h". + * config/m68k/xm-dpx2.h: Define HAVE_TERMIOS not HAVE_TERMIO. + +Tue Jul 13 11:50:38 1993 Doug Evans (dje@canuck.cygnus.com) + + * gdbcore.h (read_memory_integer, read_memory_unsigned_integer): + Make prototype match definition. + +Tue Jul 13 11:15:15 1993 Fred Fish (fnf@cygnus.com) + + * elfread.c: Remove notice about file still being under + construction. + * Makefile.in (ultra3-xdep.o, umax-xdep.o): Add missing ')'. + +Mon Jul 12 17:46:35 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * a29k-tdep.c (read_register_stack): Make val static. + +Mon Jul 12 14:10:48 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/h8300/tm-h8300.h (REGISTER_CONVERTIBLE): Change value to 0. + (REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Move def'n to + usual spot. + +Mon Jul 12 11:29:44 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * c-valprint.c (c_val_print): Fix thinko with unspecified length + arrays. + + * hppa-tdep.c (find_proc_framesize): If there is a frame pointer, + use it. + +Sun Jul 11 19:35:05 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (decode_line_1): Use end of block to figure out whether + val.end is in the same function, not minimal symbols. + + * source.c (line_info): Add a few more wrap_here's. + + * i386-tdep.c (i386_follow_jump): Do byteswapping where needed and + don't make assumptions about sizes of host data types. + + * blockframe.c, symtab.h (find_pc_partial_function): New arg endaddr. + * infrun.c, breakpoint.c, printcmd.c: Change callers. + * printcmd.c (containing_function_bounds): Remove. + * printcmd.c (disassemble_command): Use find_pc_partial_function, + not containing_function_bounds. + * infcmd.c (step_1): Use find_pc_partial_function rather than + trying to roll our own. Move check for a pc between SIGTRAMP_START and + SIGTRAMP_END in find_pc_partial_function, not step_1. + + * sparc-tdep.c (sparc_frame_chain, frame_saved_pc): + Keep unswapped value in array of char, not REGISTER_TYPE. + Use REGISTER_RAW_SIZE not sizeof (REGISTER_TYPE). + (sparc_extract_struct_value_address): Use TARGET_PTR_BIT not + sizeof (CORE_ADDR). + +Thu Jul 1 15:50:05 1993 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) + + * configure.in (m68*-bull-sysv*): added support for Bull dpx2. + * config/m68k/{t,x,n}m-dpx2.h, dpx2-nat.c: New files. + * config/m68k/dpx2.m{h,t}: New files. + +Thu Jul 1 15:46:10 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Run through gnu-indent. + +Sun Jul 11 12:32:08 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/sparc/tm-sparc.h (PRINT_REGISTER_HOOK): Fix typo, add + more parens around macro arg. + +Sat Jul 10 09:54:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c: Remove step_resume_{duplicate,shadow}. Replace + step_resume_break_address with step_resume_breakpoint (now local + to wait_for_inferior). + ({insert,remove}_step_breakpoint): Remove. + (wait_for_inferior): Set step resume break with + set_momentary_breakpoint. Test hitting it with bpstat_stop_status + and bpstat_what (stop_step_resume_break removed). + * breakpoint.{h,c}, infrun.c: Return value from bpstat_what now struct + which includes previous return value as main_action, and a step_resume + bit. + * breakpoint.c (delete_breakpoint): If breakpoint was inserted, and + there is another breakpoint there, insert it. + * infrun.c (wait_for_inferior): Rearrange the spaghetti a bit. Use + a few more gotos. + Various: Clean up and add comments. + + * infrun.c [TDESC]: Remove remaining tdesc code (see ChangeLog + for Wed Nov 13 16:45:13 1991). + +Fri Jul 9 12:36:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * values.c, value.h (modify_field), callers: Make fieldval a LONGEST. + + * h8300-tdep.c (NEXT_PROLOGUE_INSN): Make pword1 an INSN_WORD * + not short *. + + * findvar.c, defs.h + ({extract,store}_{signed_integer,unsigned_integer,address}): + New routines to replace SWAP_TARGET_AND_HOST. + All over: All uses of SWAP_TARGET_AND_HOST on integers replaced. + + * config/sparc/tm-sparc.h: Add comment suggesting that removing + ins and locals from the registers array might clean things up. + + * utils.c: Clean up comments about wrap buffer and wrap_here. + * printcmd.c (printf_command): Call wrap_here before vprintf. + + * mipsread.c (cross_ref): Set the name to unknown for "struct *" case. + Patch from ptf@delcam.co.uk (Paul Flinders). + + * a29k-tdep.c, findvar.c (get_saved_register): Fix byteswapping sins. + +Fri Jul 9 09:47:02 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * defs.h, remote-eb.c (TM_FILE_OVERRIDE): Remove it. + * mips-tdep.c (init_extra_frame_info): Set proper fci->frame if pc + is at the start of the dummy code. + +Thu Jul 8 14:48:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * sparc-tdep.c (sparc_push_dummy_frame): Skip all the do_save_insn + stuff, just write the sp and fp. + (sparc_pop_frame): Skip the do_restore_insn; we already restore + the sp with the other out registers. + + * hppa-tdep.c (hppa_push_arguments): Allocate enough space for + arguments. + + * hppa-tdep.c: Change _initialize_hppab_tdep to _initialize_hppa_tdep. + +Thu Jul 8 14:47:00 1993 Doug Evans (dje@canuck.cygnus.com) + + * sparc-tdep.c (sparc_frame_chain): Handle sizeof (CORE_ADDR) + != sizeof (REGISTER_TYPE). + (frame_saved_pc): Ditto. + +Thu Jul 8 08:22:05 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/h8300/tm-h8300.h: (REGISTER_TYPES): Adjust for h8/300h. + (REGISTER_RAW_SIZE): Ditto. + (REGISTER_VIRTUAL_TYPE): Use builtin_type_unsigned_long for regs + on the h8/300h (ints may still be 16 bits). + (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE, + EXTRACT_STRUCT_VALUE_ADDRESS): Add FIXME's for h8/300h. Some + thought needed here. + + * h8300-tdep.c (print_insn): Call print_insn_h8300h if h8/300h. + (examine_prologue): reg_save_depth is 4 if h8/300h. + + * findvar.c (read_register): Provide some support for 64 bit regs. + (write_register): Ditto. + +Wed Jul 7 14:30:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/nm-riscos.h: machine/machparam.h is always the right + place to look for BSD43_NBPG, not machine/vmparam.h + + * infcmd.c (run_stack_dummy): New argument name. + Change error message in (another) attempt to make it comprehensible. + * valops.c (call_function_by_hand): Pass name to run_stack_dummy. + * symtab.h: Declare demangle and asm_demangle since macros use them. + + * eval.c (evaluate_subexp): Add comment about calling a member + function of a variable in a register. + + * expression.h: Clean up comment about string in STRUCT_STRUCT etc. + + * config/{rs6000/tm-rs6000.h,sparc/tm-sparc.h,pyr/tm-pyr.h}, + inferior.h (PC_IN_CALL_DUMMY) [ON_STACK]: Add comments about stack + frame tops and bottoms. + + * frame.h, blockframe.c, stack.c, a29k-tdep.c, + config/gould/tmp-{pn,np1}.h, + config/{sparc/tm-sparc.h,pyr/tm-pyr.h,vax/tm-vax.h}: Remove field + next_frame from struct frame_info. It has no purpose beyond + ->next->frame and is an artifact from GDB 2.8. + +Tue Jul 6 11:51:18 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in: Remove gdb before creating a new one. + Update init.c atomically. + + * Makefile.in (ALLPARAM): Add config/{alpha/xm-alpha.h,pa/xm-pa.h}. + (ALLCONFIG): Add config/alpha/alpha-osf1.mh. + + * infcmd.c (_initialize_infcmd): In docstring for "continue", + describe argument as setting ignore count. + +Sun Jul 4 15:04:47 1993 Doug Evans (dje@cygnus.com) + + * h8300-tdep.c (examine_prologue): Fix call to + read_memory_unsigned_integer. + +Fri Jul 2 18:22:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/{x,n}m-irix{3,4}.h: Make some definitions here + rather than including xm-bigmips.h. + + * eval.c (evaluate_subexp): Improve error messages for OP_TYPE and + default cases. + + * Makefile.in (distclean): Remove y.tab.h. + +Fri Jul 2 14:55:48 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * exec.c (exec_file_command): Remove Mar 28 hack as BFD handles + file updates properly now. + * mipsread.c (mips_coff_new_init): Force reevaluation of sigtramp + addresses if switching to a new symbol file. + * dbxread.c (process_one_symbol): Avoid dereferencing NULL + symbols that might be returned from define_symbol. + +Fri Jul 2 13:33:12 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + New target macros for getting at the pc, sp and fp. + * infcmd.c (read_pc, write_pc): Modify to use new macros. + (read_sp, write_sp, read_fp, write_fp): New functions. + * blockframe.c (reinit_frame_cache, get_prev_frame_info): + Use new functions. + * breakpoint.c (bpstat_alloc): ditto. + * infrun.c (wait_for_inferior): ditto. + * stack.c (print_frame_info): ditto. + * valops (call_function_by_hand): ditto. + * corelow.c (core_open): ditto. + * h8500-tdep.c: (target_read_sp, target_write_sp, target_read_pc, + target_write_pc, target_read_fp, target_write_fp): New functions. + * inferior.h (read_sp, write_sp, read_fp, write_fp): Prototypes. + + * config/alpha/xm-alpha.h: Add MAKEVA_END. + * config/h8500/tm-h8500.h: Define new macros. + +Fri Jul 2 13:51:04 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in (mipos-*-riscos*): New host and target; use riscos. + * config/mips/nm-riscos.h: If BSD43_NBPG is not defined by + vmparam.h, include machparam.h. + (KERNEL_U_ADDR): Define to be BSD43_UADDR. + +Fri Jul 2 13:39:48 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * c-exp.y (yylex): Give error if unmatched single quote. + + * configure.in, config/m68k/*delta68*, delta68-nat.c: New port. + + * Remove unused STACK_END_ADDR in the following files (in other + files it is used for something): tm-mips.h, tm-sun2.h, tm-news.h, + tm-a29k, tm-i386v.h, tm-hppa.h, tm-nindy960.h, tm-amix.h, + tm-hp300hpux.h, tm-isi.h. + +Thu Jul 1 09:51:27 1993 Jim Kingdon (kingdon@cygnus.com) + + * config/mips/nm-riscos.h: Define NBPG and UPAGES. + config/mips/xm-riscos.h: Include . + + * ser-unix.c (hardwire_noflush_set_tty_state): Use an assignment, + not an initializer, to copy the structure. + + * gdbtypes.h (struct type): Add field tag_name. + * gdbtypes.c (type_name_no_tag), c-typeprint.c (c_type_print_base): + Use it. + * {coff,dwarf,mips,stabs}read.c: Set it. + + * xm-sysv4.h: Undefine HAVE_TERMIO. + + * config/mips/nm-riscos.h: Remove unmatched #endif. + Define FETCH_INFERIOR_REGISTERS. + * config/mips/riscos.mh: Don't include coredep.o; mips-nat.o is enough. + Fix misspelling of NAT_FILE. + * mips-nat.c (fetch_core_registers): If KERNEL_U_ADDR is not defined, + we can still process "modern" core files. + + * ser-unix.c (hardwire_print_tty_state) [HAVE_TERMIOS]: Don't + print c_line. + (_initialize_ser_hardwire): Just check whether _POSIX_JOB_CONTROL + is defined; don't care what it is defined to. + +Wed Jun 30 20:06:46 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/vax/xm-vaxult2.h: Define FD_SET and FD_ZERO. + +Tue Jun 29 11:02:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * inftarg.c: Remove unused include of terminal.h. + * signals.h: Don't undefine signals anymore. + * main.c: Use job_control from serial.h. + * fork-child.c (fork_inferior): Use gdb_setpgid. + * serial.h, ser-unix.c, ser-go32.c: Provide gdb_setpgid. + * utils.c (quit): Use current_target->to_terminal_ours to figure + out whether we care about lack of job control, rather than __GO32__. + * utils.c: Include serial.h not terminal.h + (quit): Use job_control not TIOCGPGRP. + * terminal.h: Don't undefine TIOCGPGRP. + * serial.h, ser-unix.c, ser-go32.c, ser-tcp.c: Add SERIAL_FLUSH_OUTPUT. + * utils.c (quit): Use it. + * serial.h: Add SERIAL_UN_FDOPEN. + * utils.c (quit): Use it. + * ser-unix.c: Add process group to ttystate. + [HAVE_SGTTY]: Add tchars, ltchars, and lmode to ttystate. + * inflow.c: Include serial.h not terminal.h. + Use serial.h stuff to replace most of the maze of #ifdef's. + * inflow.c, main.c, inferior.h: make gdb_has_a_terminal a function. + * serial.h: Document SERIAL_SET_TTY_STATE as being immediate. + * ser-unix.c: Use TIOCSETN not TIOCSETP so it is true. + * serial.h, ser-unix.c, ser-go32.c, ser-tcp.c: + Add SERIAL_PRINT_TTY_STATE, SERIAL_NOFLUSH_SET_TTY_STATE, and + SERIAL_SET_PROCESS_GROUP. + * inflow.c: Use them. + * config/xm-svr4.h, config/rs6000/xm-rs6000.h, config/sparc/sun4os4.h: + Define HAVE_TERMIOS. + * Various: Remove all use of TIOC*_BROKEN. + +Wed Jun 30 12:20:51 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/m68k/tm-sun3.h (BELIEVE_PCC_PROMOTION_TYPE): Define. + +Tue Jun 29 13:44:41 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * target.h (target_detach): Turn macro into function. + * target.c (target_detach): Define it, do deferred register stores + before calling the real target function. + +Tue Jun 29 13:15:42 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + and Jim Kingdon (kingdon@cygnus.com) + + * symtab.h (BLOCK_SHOULD_SORT): Do not sort blocks corresponding to + a function to avoid printing of function arguments in wrong order + due to sorting. + * symfile.c (compare_symbols): Remove code for sorting arguments + as blocks containing arguments are no longer sorted. + * symtab.c (lookup_block_symbol): Update comment accordingly. + +Tue Jun 29 11:02:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/pa/tm-hppa.h: Remove unused ARGS_GROW_DOC. + (REG_STRUCT_HAS_ADDR): Add comment. + + * infrun.c (wait_for_inferior): Use find_pc_line not find_pc_symtab + to check whether there is line number information. + +Tue Jun 29 08:29:17 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * remote-udi.c: Fix docstring so that it compiles. + + * remote-mips.c, remote-nindy.c: move bfd.h before symfile.h + (for file_ptr). + +Tue Jun 29 09:11:27 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c (process_one_symbol): If we find a LOC_BLOCK where we + don't expect it, change it to LOC_STATIC so at least we don't coredump. + + * c-typeprint.c (c_type_print_base): Don't error() on invalid type. + + * symtab.h: Add comments about line numbers. + * source.c (identify_source_line): Fix off by one bug with line. + +Mon Jun 28 19:00:21 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Do not include libhppax. Instead include libhppa.h + and hpux-symtab.h. Misc indention fixes. + (find_unwind_entry): Add PARAM prototype. + (read_hpux_symtab): More fixes for names and sizes of structs, + unions, enums, typedefs, and tagdefs. + (read_hp_enum_type, read_hp_struct_type): Likewise. + (read_hp_set_type, read_hp_subrange_type): Likewise. + (hp_type_lookup, process_one_debug_symbol): Likewise. + (process_one_debug_symbol): Search forward from the K_FUNCTION for + the first K_BEGIN when setting the line number associated with a + function. Avoid unnecessary calls to savestring. + (hp_alloc_type): Initialize TYPE_CPLUS_SPECIFIC here. Remove + most cases where we set it elsewhere. + (hppa_sym_fns): Use "hppa" instead of hppax since hpread.c and + paread.c use the same BFD backend now. All references changed. + (hpux_symfile_init): Allocate space to hold the debugging section + contents on the symbol obstack. + +Mon Jun 28 10:09:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (makeva*): New interface, for making a va_list. + (printf_command): Use it. + * config/m88k/xm-delta88.h: Remove VPRINTF define, not needed. + * config/pa/xm-pa.h: New file. + * config/pa/xm-hppa{b,h}.h: Include it. + + * xcoffread.c: Remove obsolete NO_TYPEDEFS comment. + +Sun Jun 27 08:54:55 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * valprint.c (val_print_type_code_int): Fix off by one error with + eliminating leading zeroes for large little endian integers. + +Sun Jun 27 08:58:56 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/riscos.mh (CC): Use -systype sysv. + + * ser-unix.c: Move #include of to HAVE_SGTTY section. + + * Makefile.in (ALLPARAM): Add config/mips/{x,n}-{news-mips,riscos}.h. + +Fri Jun 25 11:22:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m68k/tm-m68k.h: Remove obsolete comment about duplicating + CALL_DUMMY between different 68k machines. + +Fri Jun 25 17:02:45 1993 Stu Grossman (grossman at cygnus.com) + + * gdbserver/Makefile.in: Add dependancies on server.h. + * gdbserver/remote-gutils.c: Remove lots of unused functions and + variables. + * gdbserver/remote-inflow.c: Remove lots of unused variables and + #includes. Also, use PTRACE_* symbols instead of constants. + (mywait): Surround calls to wait() with enable/disable_async_io() + so that we can be interrupted from GDB while waiting for the + child. Also, handle child exit more gracefully. + * gdbserver/remote-server.c: Remove lots of unused variables. + Move all extern defs into server.h. Redo main loop so that + failure from getpkt() causes communications to be re-established. + Fix 'k' command so that it restarts the child. + * gdbserver/remote-utils.c: Remove lots of unloved vars and + subrs. Move many extern decls into server.h. (remote_open): For + tcp, seperate usage of proto fd from connected fd. Close proto + fd after getting connection. (putpkt/getpkt): Pay attention to + errors when reading/writing. Report these to the caller. New + routines input_interrupt/enable_async_io/disable_async_io to make + it possible to get an I/O interrupt when data arrives from the + comm link. + * serial.h: New file to contain common defs for all remote files. + +Fri Jun 25 17:02:45 1993 Stu Grossman (grossman at cygnus.com) + + * remote.c: Add arg names to prototypes, in a modest effort at + clarification. Also add prototypes for some new functions. + * (remote_wait): Better error reporting for 'T' responses. + * ser-go32.c (strncasecmp): Make str1 & str2 be const. + * (dos_async_init): Make usage message reflect requested port #. + * ser-tcp.c (tcp_open): Terminate hostname properly to prevent + random hostname lookup failures. Add nicer message for unknown + host error. (wait_for): Wake up in case of exceptions. Also, + restart select() if we got EINTR. + * ser-unix.c (wait_for): Restart select() if we got EINTR. + * serial.c: (serial_close): Clean up code. + +Fri Jun 25 11:22:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m68k/tm-m68k.h: Remove obsolete comment about duplicating + CALL_DUMMY between different 68k machines. + +Fri Jun 25 11:22:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (*.tab.c): Use ./c-exp.tab.c not just c-exp.tab.c. + Make comment explaining this comprehensible. + (TAGFILES): Include ALLDEPFILES. + (ALLDEPFILES): udi2soc.c and udr.c are in 29k-share/udi, not + 29k-share/udi/udi. + (update-alldeps): Remove; obsolete. + + * remote.c: Move comments regarding packets to top of file with the + rest of the protocol comments. + Fix incorrect description of 'T' response. + + * README (Reporting Bugs): Refer people to the GDB manual. + + * c-valprint.c (c_val_print): Handle TYPE_CODE_BOOLEAN. + * stabsread.c: Type -16 is 4 bytes. + + * remote-udi.c: Improve docstring. + +Fri Jun 25 11:16:31 1993 Fred Fish (fnf@cygnus.com) + + * elfread.c (elf_symfile_read): Call bfd_elf_find_section, not + bfd_elf32_find_section, to track bfd changes. + +Fri Jun 25 11:22:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/riscos.mh (REGEX{,1}, MUNCH_DEFINE, MH_CFLAGS): Define. + * config/mips/xm-riscos.h: Define USG. + +Thu Jun 24 14:52:45 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (filename_completer): Don't complete to files ending in ~. + + * NEWS: Mention filename completion and "info line" enhancements. + + * main.c (symbol_completion_function): On "info t foo", return NULL, + don't error(). + + * main.c (symbol_completion_function): Don't use readline word + breaking. Use new calling convention for c->completer and + complete_on_cmdlist. + * command.h (struct command): Change arguments; now the text passed + to completer does not have any word breaking done. New arg word. + * symtab.{c,h} (make_symbol_completion_list): Do word breaking. Take + word argument. + * {main.c,gdbcmd.h} ({filename,noop}_completer): Take word argument. + * command.{c,h} (complete_on_cmdlist): Take word argument. + + * command.c (lookup_cmd_1): Doc fix. + +Thu Jun 24 13:26:04 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * Makefile.in (OP_INCLUDE): define. + (OPCODE_CFLAGS): use OP_INCLUDE. + + * config/i386/ncr3000.mh, config/i386/i386v4.mh, + config/i386/i386sol2.mh, config/m68k/hp300hpux.mh, + config/m68k/amix.mh, config/mips/irix[34].mh, + config/m88k/delta88.mh, config/sparc/sun4sol2.mh (ALLOCA, + ALLOCA1): macros removed. + + * config/mips/decstation.mh, config/rs6000/rs6000.mh + (MMALLOC_LIB): renamed to MMALLOC. + +Wed Jun 23 00:25:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * partial-stab.h: Consolidate case statements for N_LSYM and N_FUN. + * dbxread.c: Change comment regarding acc. + +Wed Jun 23 16:33:36 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Document a few functions, misc cleanups. Update + copyright to reflect the first "release" of this file. + (struct hpux_symfile_info): Delete unneeded fields. Keep pointers + to the contents of the debug sections rather than offsets within + the file itself. Corresponding changes to the accessor macros. + (sl_symbol_size, slt_symbuf): Delete unneeded global variables. + (slt_symbuf_start, slt_symbuf_end, lntt_symbuf): Likewise. + (lntt_symbuf_start, lntt_symbuf_end, gntt_symbuf): Likewise. + (gntt_symbuf_start, gntt_symbuf_end): Likewise. + (fill_slt_symbuf, fill_lntt_symbuf): Delete unneeded functions. + (fill_gntt_symbuf): Likewise. + (get_lntt, get_gntt, get_slt): Simplify. + (hpux_symfile_init): Read and store the contents of the debugging + sections. Do error checking on memory allocation and BFD calls. + (read_hpux_symtab): Delete KERNELDEBUG crud. Ignore debug symbols + which are not needed for building partial symbol tables. Handle + K_CONST, K_TYPEDEF, and K_TAGDEF just like K_SVAR and K_DVAR. + (read_ofile_symtab): Delete useless processing_gcc_compilation stuff. + (read_hp_struct_type): Initialize TYPE_CPLUS_SPECIFIC. + (read_hp_set_type, read_hp_array_type): Likewise. + (read_hp_subrange_type, hp_type_lookup): Likewise. + +Wed Jun 23 15:04:54 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + Makefile overhaul dropping autodepend features. + * Makefile.in: many comment changes. forced consistent use of $() + for makefile variables references. dropped leading ./ in file + references. Drop $(srcdir)/ prefix on all dependencies. + Inserted contents of alldeps.mak and depend. + (INCLUDE_CFLAGS): defined as new macro for getting libiberty's + include directory into the compilation line. + (GDB_CFLAGS): new macro to take up the semantic previously held + by INCLUDE_CFLAGS. + (LIBIBERTY): dropped ancient subdir macro. I last removed this + macro in feb of '92. How does it keep coming back? + (MMALLOC_LIB): renamed to MMALLOC. + (BFD_SRC_DIR): renamed to BFD_SRC. + (BFD_OBJ_DIR): renamed to BFD_DIR. + (BFD_LIB): renamed to BFD. + (BFD_INCLUDES): renamed to BFD_CFLAGS. + (READLINE_DIR): now represents object directory. + (RL_LIB): renamed to READLINE. + (READLINE_SRC, READLINE_CFLAGS, OPCODES, OPCODES_CFLAGS): new + macros. + (INTERNAL_CFLAGS): added GDB_CFLAGS, OPCODES_CFLAGS, + READLINE_CFLAGS, BFD_CFLAGS. Dropped USER_CFLAGS. + (LDFLAGS): removed default assignment. + (TEXIDIR, INCLUDE_DEP, MMALLOC_DIR, MMALLOC_DEP, BFD_DEP, + READLINE_DEP, LIBIBERTY_DIR, TESTS, depend, STAGESTUFF): unused, so removed. + (ALLOCA1, ALLOCA): removed all references. alloca is now in + libiberty. + (VERSION): unilaterally and arbitrarily bumped to 4.9.3. + (SFILES, NONSRC, HFILES, ALLDEPFILES, ALLPARAM, ALLCONFIG): + removed all $(srcdir) prefixes. + (getopt_h, ieee-float_h, bfd_h, wait_h, dis-asm_h): new macros + for potential dependencies. commented out by default. + (readline_headers, udiheaders): convenient abbreviations. + (gdbcore_h, frame_h, symtab_h, gdbtypes_h, expression_h, + value_h, breakpoint_h, command_h, gdbcmd_h, defs_h, inferior_h): + new macros used for header file dependencies. + (install-info, clean-info): collapse into the info rule. + (install): now depends on all. + (install-only): new target for installing without depending on + all. + (uninstall): new target. + (config-check, config-check-hosts, config-check-targets): added + fixme comments. + (ch-exp.tab.c, m2-exp.tab.c): added artificial dependencies in + order to force parallel makes into keeping these rules separate. + * configure.in: omit cat'ing depend file onto generated Makefile. + * alldeps.mak, depend: removed. + + * inferior.h: remove redundant include of symtab.h which is + included in value.h via breakpoint.h. + + * alloca.c: removed. alloca is now in libiberty. + + * config/m88k/delta88.mh, config/ns32k/merlin.mh (M_UNINSTALL): + new macro to undo what M_INSTALL does. + +Wed Jun 23 00:25:58 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/ns32k/{merlin.mh,xm-merlin.h}: Be consistent about name + of gdb-sh. + + * dbxread.c (copy_pending): Change name and function of begi argument + to endi, since that is what the caller needs. + + * Makefile.in (TAGFILES): Don't include YYFILES. + + * Makefile.in (HFILES): Include monitor.h. + + * Makefile.in: Include text that used to be in alldeps.mak. + Remove config/mips/{bigmips.mh,xm-bigmips} from it. + * Makefile.in, configure.in: Remove all traces of alldeps.mak. + + * main.c (main): Print help message on stdout not stderr + per standards.texi. + New option --version per standards.texi. + In help message, show long options with "--" not "-". + Don't try to print help message or version until after we have + called initialize_all_files. + +Tue Jun 22 11:03:13 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Delete useless #if 1 statements. + (hp_type_translate): Use T_LONG, T_UNS_LONG, and T_DOUBLE instead + of magic integers. Fix handling for T_UNS_INT. Abort if the type + passed in is not an "immediate" type. + (read_hp_enum_type): Properly compute the size of the type. + (read_hp_array_type): Likewise. + (hp_type_lookup): Prefix the names of structs, unions and enums + with "struct", "union", and "enum" as appropriate. + +Tue Jun 22 03:15:38 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * solib.c (solib_add_common_symbols): Don't call lookup_minimal_symbol. + (solib_add): Call special_symbol_handling once, not once per library. + + * procfs.c (procfs_resume): Don't pass a SIGTSTP whose action + is SIG_DFL. + + * procfs.c (procfs_resume): Skip the unnecessary PRSVADDR on all + systems, not just Solaris. + + * stabsread.c: Include . + +Mon Jun 21 16:09:46 1993 Jim Kingdon (kingdon@cygnus.com) + + * fork-child.c (fork_inferior): Quote exec_file so it can contain + funky characters. + +Mon Jun 21 16:56:47 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (INCLUDE_CFLAGS): Add BFD_INCLUDES for now, since + bfd.h is included by target.h, which most of gdb includes. + * depend: Hand remove BFD_INCLUDES from ${CC} lines, now that + it's in INCLUDE_CFLAGS. + +Mon Jun 21 16:09:46 1993 Jim Kingdon (kingdon@cygnus.com) + + * config/i386/*aix*, i386aix-nat.c: New files. + * configure.in: Use them. + * alldeps.mak: List them. + * coffread.c (decode_base_type): Deal with anonymous enum type. + * i387-tdep.c (print_387_status_word): Add comment re "top". + * i386-tdep.c [I386_AIX_TARGET] (i386_extract_return_value): New func. + * dbxread.c: Use SEEK_SET and SEEK_CUR, not L_*. Define them if and + only if not defined by a header file. + * mipsread.c: Don't define L_SET or L_INCR. + +Mon Jun 21 15:10:07 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (BFD_INCLUDES): Bfd.h is now back in bfd build dir. + * depend: Hand updated to match. + +Mon Jun 21 10:13:42 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Include "demangle.h". + (process_one_debug_symbol): Set the SYMBOL_LANGUAGE and + SYMBOL_INIT_DEMANGLED_NAME for the current symbol. Adjust + SYMBOL_VALUE for local variables in the stack by the size of the + current function's stack (found in unwind descriptor). Keep + better track of the current unwind descriptor. + +Sun Jun 20 13:11:11 1993 Jim Kingdon (kingdon@cygnus.com) + + * stabsread.c (read_struct_fields): Don't call read_cpp_abbrev on $_. + (read_cpp_abbrev): Don't complain specially for $_. Also return 0 if + we don't recognize the abbrev. + +Sun Jun 20 00:24:41 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * solib.c (solib_add_common_symbols): Add comment about performance. + +Fri Jun 18 12:37:36 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/{{x,n}m-riscos.h,riscos.mh}: New files. + * configure.in (mips-*-sysv*): Use riscos for host, bigmips for target. + + * config/mips/{{x,n}m-news-mips.h,news-mips.mh}: New files. + * config/mips/{bigmips.mh,xm-bigmips.h}: Remove. + * configure.in (mips-sony-*): Use news-mips for host. + + * buildsym.h: Doc fix for processing_acc_compilation. + +Thu Jun 17 19:57:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (print_formatted): Don't use tab in wrap_here arg. + +Thu Jun 17 17:29:30 1993 Jim Kingdon (kingdon@lisa.cygnus.com) + + * Makefile.in (INTERNAL_CFLAGS): Include ../include as well as + ${srcdir}/../include. + + * config/m88k/xm-delta88.h: Comment out unused defines which conflict + with system headers. + * printcmd.c (printf_command): Cast second arg to vprintf to PTR. + Use VPRINTF macro if defined. + * config/m88k/xm-delta88.h: Define VPRINTF. Include . + Define TIOC{GETC,GLTC}_BROKEN. + * m88k-nat.c: Uncomment include of . + * main.c: Rename initialize_{main,cmd_lists,history} to init_* to + make things easier on munch (apparently this matters on + the delta88 with svr3). + +Thu Jun 17 16:53:56 1993 david d `zoo' zuhn (zoo@cygnus.com) + + * Makefile.in: canonicalize install.sh; for use within + this directory (and subdirs) + +Tue Jun 15 17:01:23 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: remove parentdir support; use INSTALL_XFORM + +Thu Jun 17 15:08:35 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * configure.in (alpha-*-osf*), config/alpha/alpha-osf.mh: New + host. + * sh-tdep.c (frame_find_saved_regs): Use NUM_REGS rather than hard + wired (and wrong) constant. + * values.c (unpack_long): Add case to unpack when target object is + sizeof(int). + * config/sh/tm-sh.h (REGISTER_NAMES): Know about the news ones the + simulator defines. + +Wed Jun 16 16:08:18 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * NEWS: tracking user visible changes starting with + vxworks-timeout. + + * remote-vx.c (_initialize_vx): rename user settable option from + rpcTimeout to vxworks-timeout. + +Wed Jun 16 14:34:10 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (hp_type_translate): Fix promotion bugs from + char to short and short to int. + +Wed Jun 16 12:21:49 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (depend): More makefile diddling. + * alldeps.mak, depend: Update to latest automatically built + versions. + + * Makefile.in (depend): Bfd.h keeps moving, keep up with it. + * alldeps.mak, depend: Update to latest automatically built + versions. + +Tue Jun 15 12:26:05 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * remote-vx.c: include gdbcmd.h for setlist. + (_initialize_vx): make rpcTimeout user settable. + +Mon Jun 14 09:23:51 1993 Jim Kingdon (kingdon@cygnus.com) + + * main.c, gdbcmd.h: Add function filename_completer. + * main.c, symfile.c, source.c, exec.c, core.c: Use it for + "directory", "source", "cd", "symbol-file" "add-symbol-file", + "load", "file", "exec-file", "core-file" commands. + (But '/' is a word break, limiting usefulness; see comments). + + * source.c (mod_path): Warning not error if can't find directory. + + * isi-xdep.c: New file. + * config/m68k/isi.mh (XDEPFILES): Add isi-xdep.o + +Sun Jun 13 09:17:48 1993 Jim Kingdon (kingdon@cygnus.com) + + * config/m68k/xm-news.h: Include . + + * m88k-tdep.c (IEEE_isNAN): Remove. + config/m88k/tm-m88k.h (INVALID_FLOAT): Return 0. This was the same + broken isNAN as on the mips. + + * valprint.c (_initialize_valprint): Use c->function.sfunc not just + c->function. + + * dbxread.c (process_one_symbol): If SUN_FIXED_LBRAC_BUG is not + defined, don't worry about Sun's silly LBRAC bug. + * config/m68k/tm-sun3.h: Define SUN_FIXED_LBRAC_BUG to 0. + + * dbxread.c (process_one_symbol): If there's a symbol before an + N_SO, don't error(). + (case N_BCOMM): complain () not error (). + + * defs.h, main.c (catch_errors): Add return_mask arg. + stack.c (print_frame_info): Pass RETURN_MASK_ERROR. + other callers: Pass RETURN_MASK_ALL. + (return_to_top_level), callers: Add return_reason arg. + * utils.c (quit): + Use return_to_top_level (RETURN_QUIT) instead of error (). + * main.c (main), tm-nindy960.h (ADDITIONAL_OPTION_HANDLER): + Use SET_TOP_LEVEL not setjmp (to_top_level). + * remote-nindy.c: Use catch_errors not setjmp (to_top_level). + +Sat Jun 12 14:40:54 1993 Jim Kingdon (kingdon@cygnus.com) + + * solib.c (solib_create_inferior_hook) [SVR4_SHARED_LIBS]: + Don't try to get the debug base yet. + + * dbxread.c (process_one_symbol): Set n_opt_found based on whether + a non-gcc N_OPT symbol is found. Make SUN_FIXED_LBRAC_BUG a macro + which returns 0 or 1 to say whether to do it. + * config/sparc/sun4{sol2,os4}.h + (SUN_FIXED_LBRAC_BUG,VARIABLES_INSIDE_BLOCK): Use n_opt_found so + the right thing happens for both acc and SunOS4 /bin/cc. + + * valprint.c (print_hex_chars): Use local_hex_format_{pre,suf}fix. + * printcmd.c (print_scalar_formatted): Use val_print_type_code_int. + + * mips-tdep.c: Remove isa_NAN; it assumed sizeof(host int) == 4 and + probably contained byte-order sins too. + config/mips/tm-mips.h (INVALID_FLOAT): Define to 0 like most machines. + The IEEE_FLOAT code in print_floating takes care of it. + +Sat Jun 12 14:47:04 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.9.2. + * c-valprint.c (c_val_print): For array of chars printed with + string syntax, don't print the address of the array. From + bothner@cygnus.com. + * c-exp.y (yylex): Recognize '.' as indicating a floating point + number regardless of the radix. From wilson@cygnus.com. + * valprint.c (set_input_radix_1, set_output_radix_1): New + prototypes and functions that do the actual radix setting work. + * valprint.c (set_radix, set_output_radix, set_input_radix): + Rewrite to use set_input_radix_1 and set_output_radix_1. + * valprint.c (initialize_valprint): Enable commands to + independently set and show input and output radices. + * valprint.c (show_radix): New prototype and function that + handles separate input and output radices. + +Fri Jun 11 18:39:38 1993 Ken Raeburn (raeburn@cygnus.com) + + Patches from Jeff Law, law@cs.utah.edu: + * hppa-pinsn.c: Now uses disassembler from opcode library, + this contains only the stub function print_insn. + +Fri Jun 11 15:19:59 1993 K. Richard Pixley (rich@cygnus.com) + + * main.c (main): back to two periods for elipse. + (print_gdb_version): revised format for configuration info. + +Fri Jun 11 10:24:35 1993 Fred Fish (fnf@cygnus.com) + + * defs.h (INT_MAX): Cast unsigned shift result to int. + +Fri Jun 11 10:17:41 1993 Jim Kingdon (kingdon@cygnus.com) + + * dbxread.c (process_one_symbol): Rather than having + BLOCK_ADDRESS_FUNCTION_RELATIVE a macro, make it a variable which + is true if we are doing stabs-in-elf, false otherwise. + config/sparc/tm-sun4sol2.h: Don't define it. + +Fri Jun 11 13:33:40 1993 Ian Lance Taylor (ian@cygnus.com) + + * remote-mips.c (mips_send_packet): Don't print garbage character + in debugging info. + (mips_request): Don't check that remote pid is 0, because + sometimes it isn't. + (mips_fetch_registers): Pass a pointer to SWAP_TARGET_AND_HOST, + not an integer. + +Fri Jun 11 10:17:41 1993 Jim Kingdon (kingdon@cygnus.com) + + * stack.c (print_frame_info): Use catch_errors around print_frame_args. + + * Makefile.in (install): Don't depend on gdb. + + * Rename remote-es1800.c to remote-es.c + and remote-st2000.c to remote-st.c for 14-char filenames. + config/m68k/{es1800,st2000}: Use the new names. + + * mips-tdep.c (isa_NAN): Don't return true on -0. + +Fri Jun 11 10:24:35 1993 Fred Fish (fnf@cygnus.com) + + * defs.h (INT_MAX): Cast unsigned shift result to int. + +Thu Jun 10 13:26:41 1993 Fred Fish (fnf@cygnus.com) + + * elfread.c (elf_symtab_read): Add bfd section address to bfd + symbols, now that they are section relative. + * solib.c (bfd_lookup_symbol): Ditto. + +Thu Jun 10 11:27:34 1993 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (read_hp_function_type): Adjust SYMBOL_VALUE for + arguments in the stack by the size of the current function's stack + (found in the unwind descriptor). + (process_one_debug_symbol): Likewise. Keep track of the current + function's unwind descriptor. + +Thu Jun 10 10:56:56 1993 Jim Kingdon (kingdon@cygnus.com) + + * Makefile.in (depend): Add bfd -I's for paread.c and xcoffexec.c + depend: Updated accordingly. + +Wed Jun 9 16:08:44 1993 Jim Kingdon (kingdon@cygnus.com) + + * Makefile.in (*.tab.c): Use mv for atomic update. + + * Makefile.in ({dist,real}clean): Also remove nm.h. + (realclean): Also remove ${TESTS}, y.output, yacc.{acts,tmp}. + (distclean): Don't rebuild *.tab.c or TAGS. + +Wed Jun 9 12:56:58 1993 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in (version.c): add host and target names to version.c. + * main.c (main): print three periods for the elipse. + (print_gdb_version): also print configuration. + + * udi/udiids.h, udi/udip2soc.c, udi/udiphcfg.h, udi/udiphunix.h, + udi/udiproc.h, udi/udipt29k.h, udi/udiptcfg.h, udi/udisoc.h, + udi/udr.c: Change AMD copyrights to FSF copyleft '93. + + * remote-eb.c (get_hex_regs, eb_fetch_registers), remote-adapt.c + (get_hex_regs, adapt_fetch_registers): cast args to + supply_register to avoid gcc warning. + + * config/a29k/a29k.mt (TDEPFILES): drop minimon support. It + doesn't compile on solaris and is now obsolete. + + * config/sparc/sun4os4.mh (XM_CLIBS): remove -lresolv. This + breaks stock sunos installations. + +Wed Jun 9 06:14:33 1993 Jim Kingdon (kingdon@cygnus.com) + + * m68k-stub.c: Add comment about frame cache. + + * target.h (target_store_registers): Doc fix re error handling. + + * findvar.c (write_register): Call SWAP_TARGET_AND_HOST regardless + of register_valid[regno]. + +Tue Jun 8 14:42:10 1993 Jim Kingdon (kingdon@rtl.cygnus.com) + + * symtab.h, dwarfread.c: Doc fix re dependencies. + +Tue Jun 8 17:54:09 1993 Rob Savoye (rob@rtl.cygnus.com) + + * serial.c (serial_close): If scb is NULL, don't try to close + it. + * configure.in: Add support for rom68k and bug boot monitors. + +Tue Jun 8 17:39:12 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * coffread.c (init_stringtab): Fix bug where sizeof(long) != 4. + * gdbcore.h, core.c (read_memory_unsigned_integer): New function. + * findvar.c (read_register, write_register): Fix thinko where + sizeof(host long) != sizeof(target int). + * h8300-tdep.c: Use new read_memory_unsigned_integer call. + * sh-tdep.c (_initialize_sh_tdep): Add memory_size command. + +Tue Jun 8 14:42:10 1993 Jim Kingdon (kingdon@rtl.cygnus.com) + + * Move config/m68k/tm-m68k.h (FRAME_FIND_SAVED_REGS) to + m68k-tdep.c (m68k_find_saved_regs). Don't duplicate code between + 68881 and non-68881 cases. Check for a pair of movel instructions. + +Tue Jun 8 14:52:55 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + First cut at sparc-vxworks targetting. + * config/sparc/tm-vxsparc.h, config/sparc/vxsparc.mt: new files. + * configure.in: sparc-vxworks gdb_target now vxsparc. + + * remote-eb.c, remote.c: symfile.h requires bfd.h so include it. + +Tue Jun 8 14:42:10 1993 Jim Kingdon (kingdon@rtl.cygnus.com) + + * config/m68k/xm-news.h: add "extern int errno". + +Tue Jun 8 13:45:07 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * remove-vx.c (vx_read_register, vx_write_register): collapse + ifdef I80960 else (assumes) m68k into parameterizable macros + VX_NUM_REGS and VX_SIZE_FPREGS. + * config/m68k/tm-vx68.h, config/i960/tm-vx960.h (VX_NUM_REGS, + VX_SIZE_FPREGS): new definitions. + +Tue Jun 8 11:08:29 1993 Jim Kingdon (kingdon@cygnus.com) + + * symfile.{c,h} (generic_load): New function. + remote{,-nindy,-eb,-mips}.c: Use it. + +Mon Jun 7 20:07:30 1993 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (depend): More sed gubbish to deal with + ../bfd/bfd.h being generated during the build. + * depend: Re-done with corrected makefile. + +Mon Jun 7 16:32:05 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (BFD_SRC_DIR): Renamed def and usages from BFD_DIR. + * Makefile.in (BFD_OBJ_DIR): New definition for the bfd build + directory to find automatically generated header files and library. + * Makefile.in (BFD_LIB): Use BFD_OBJ_DIR. + * Makefile.in (LINTFLAGS): Include BFD_OBJ_DIR. + * Makefile.in (saber_gdb): Include BFD_OBJ_DIR. + * Makefile.in (depend): Include BFD_OBJ_DIR in gcc args. + * Makefile.in (paread.o, xcoffexec.o): Remove, now in depend. + * depend, alldeps.mak: Rebuild after Makefile.in changes. + +Fri Jun 4 10:18:51 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: change lynx support to CPU-*-lynxos* + + * Makefile.in (subdir_do): change test from existence of directory + to existence of Makefile (the directory may exist but not be configured) + +Thu Jun 3 01:18:51 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * config/sparc/xm-sun4sol2.h: define MEM_FNS_DECLARED + +Fri Jun 4 10:43:33 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in (mips-idt-ecoffl*): New target; use idtl. + (mips-idt-ecoff*): Added trailing '*'. + * config/mips/idtl.mt: New file; like idt.mt, but little endian. + +Thu Jun 3 17:36:56 1993 Stu Grossman (grossman@cygnus.com) + + * ser-go32.c: Clean up lots of compilation nits. + +Thu Jun 3 14:44:57 1993 Stu Grossman (grossman@cygnus.com) + + * Patches from Jeffrey Law . + * hppab-nat.c: Eliminate unnecessary ifdefs for + FETCH_INFERIOR_REGISTERS, CANNOT_FETCH_REGISTER, and + CANNOT_STORE_REGISTER. + (fetch_register): Delete code to handle CANNOT_FETCH_REGISTER. + * hppa-pinsn.c: Support 'I', 'J', and 'K' in output + templates for 1.1 FP computational instructions. + +Thu Jun 3 03:34:49 1993 Stu Grossman (grossman@cygnus.com) + + * Makefile.in: Remove ser-tcp.[co]. (Use XDEPFILES instead.) + * alldeps.mak, depend: Rebuild to account for ser-tcp. + * config/sparc/sun4os4.mh: Add ser-tcp to XDEPFILES. + * gdbserver/Makefile.in (gdbserver): Use -lbsd. + * gdbserver/remote-inflow{-sparc}.c (create_inferior): Don't use a + shell when running the child, as args have been expanded by the + time we get here. Simplify calling convention. + * gdbserver/remote-server.c (main): Use new calling convention + for create_inferior, remove defunct code for coalescing argv. + Remove extra calls to mywait(), as we no longer have to wade + through a shell. + + * target.c (target_read_memory_partial): Don't deref errnoptr + when checking for null pointer. + +Wed Jun 2 19:58:46 1993 John Gilmore (gnu@cygnus.com) + + * remote-es1800.c: Fix typo. + +Tue Jun 1 21:22:39 1993 Fred Fish (fnf@cygnus.com) + + * target.c (target_read_memory_partial): Like target_read_memory, + but does partial reads, such as reads that bump into the end of + the address space. + * target.h (target_read_memory_partial): Add prototype. + * valprint.c (PRINT_MAX_DEFAULT): New define, initial value 200. + * valprint.c (val_print_string): Complete rewrite to fix bug with + bumping into end of memory, avoiding unnecessarily long reads, and + fixing bug when print_max is set to 0 (unlimited print length). + * valprint.c (_initialize_valprint): Use PRINT_MAX_DEFAULT to + initialize print_max. + +Tue Jun 1 18:11:35 1993 Rob Savoye (rob at darkstar.cygnus.com) + + * configure.in: Add support for rom68k and bug boot monitors. + +Mon May 31 10:37:04 1993 Jim Kingdon (kingdon@cygnus.com) + + * printcmd.c (print_scalar_formatted): Print integers bigger than + LONGEST in hex no matter how big, and no matter what the format + and size. + + * stabsread.c (read_type): Skip type attributes if present. + + * stabsread.c (read_huge_number): Don't accept '0' + radix as part + of number, just through '0' + radix - 1. + +Sun May 30 15:35:21 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (SER_HARDWIRE): Temporarily comment out ser-tcp.o. + + * {dbxread.c, dwarfread.c} (read_ofile_symtab): Rewrite to take + single parameter, the pointer to the partial symtab, rather than + a bunch of args that are derived from the partial symtab. Change + prototypes and callers to match. + + * dbxread.c (read_ofile_symtab): Remove "#if 1" around code to + set demangling style automatically. + * defs.h (CPLUS_MARKER): Clarify comment that this is only for + GNU C++, not C++ in general. + * symtab.h (general_symbol_info): Simplify by eliminating one + structure level for the language dependent info. + +Sat May 29 15:59:29 1993 Fred Fish (fnf@cygnus.com) + + * c-typeprint.c (c_type_print_base): Avoid dereferencing NULL + names for TYPE_CODE_STRUCT and TYPE_CODE_UNION types. + TYPE_CODE_ENUM was already testing for this. + +Fri May 28 17:18:05 1993 Stu Grossman (grossman@cygnus.com) + + * Makefile.in: Add new file ser-tcp.c. + * defs.h (memcmp): Add decl for memcmp to #ifndef MEM_FNS_DECLARED. + * findvar.c (write_register): See if we are writing back the same + value that's already in the register. If so, don't bother. + * remote.c (putpkt, getpkt): Improve handling of communication + problems. + * ser-go32.c: Prototype it to death. Update serial_ops and add + dummy routines where appropriate. + * ser-tcp.c: New module to implement serial I/O via TCP + connections. + * ser-unix.c: Clean up getting/setting of tty state. Get rid of + SERIAL_RESTORE, add SERIAL_{GET|SET}_TTY_STATE interfaces. + * serial.c: Add start of support for connect command. + (serial_open): Distinguish between tcp and local devices. + * serial.h (struct serial_ops): Get rid of restore, add + get_tty_state and set_tty_state. Define protoypes and macros for + this mess. + * gdbserver/remote-utils.c: Add tcp support. (readchar): Do + some real buffering. Handle error conditions gracefully. + * gdbserver/remote-inflow-sparc.c: Update to remote-inflow.c + (Lynx), remove lots of cruft. + +Fri May 28 17:24:51 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * printcmd.c (print_address_symbolic): turn this into an assigment + instead of an initialization (many compilers don't accept + structure initialization). + +Thu May 27 16:56:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (read_xcoff_symtab): If several program csects in one + source file, give them all the name of the source file, rather than + the 2nd and subsequent ones having NULL names. + +Thu May 27 06:16:56 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * printcmd.c (print_address_symbolic): Append source filename and + linenumber of the symbol if print symbol-filename is on. + (initialize_printcmd): `set print symbol-filename'. + +Wed May 26 13:46:16 1993 Stu Grossman (grossman@cygnus.com) + + * configure.in: Add config for Lynx target. Configure gdbserver + only for Lynx. Re-do selective configuration of sparclite. + + * gdbserver/{remote-gutils.c remote-server.c Makefile.in + configure.in remote-inflow.c remote-utils.c}: New files to + support GDB remote server. Currently only works for Lynx. + +Wed May 26 10:28:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (define_symbol, case 't'): Only set the name if it + is not a pointer type. + + * stabsread.c (define_symbol): Clean up logic; move the read_type + calls to inside the switch statement (this improves the error + handling). + + * mipsread.c (parse_symbol, parse_partial_symbols): Deal with Fortran + common blocks. + +Tue May 25 20:44:24 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (print_formatted, case 'i'): Pass a tab to wrap_here. + + * source.c (line_info): Change "pc" to "address" in messages and + use print_address for addresses. + + * source.c (line_info): If we don't find a symtab, print more useful + output, including the symbolic address. + + * source.c (line_info): If --fullname, display the source. + (identify_source_line), callers: Take pc as argument, rather than + assuming innermost frame (emacs doesn't use this, so no one ever + noticed). + * symtab.h: Declare frame_file_full_name. + * main.c: Don't. + +Tue May 25 15:30:43 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * breakpoint.c (catch_command_1): Fix typo in error msg. + +Tue May 25 16:05:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * elfread.c (elf_symfile_read): Update ELF structure and routine + names to specify 32-bit versions. + (elf_symtab_read): Retrieve size field directly from symbol, + instead of using old kludge. + + * mips-pinsn.c (print_insn): Cast address to bfd_vma before + calling opcodes library. + * z8k-tdep.c (print_insn): Likewise. + +Tue May 25 13:06:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c: Remove all uses of error(). Make error_type and + read_type_number static. + (define_symbol): Don't try to deal with a missing symbol + descriptor which isn't followed by digit, '(', or '-'. + * stabsread.h: Don't declare read_type_number here. + * gdbtypes.h: Don't declare error_type here. + * xcoffread.c: Remove NO_TYPEDEFS code. + +Tue May 25 09:33:16 1993 Ian Lance Taylor (ian@cygnus.com) + + * mips-tdep.c: Removed #include of many header files, and #define + of MIPSMAGIC; no longer used. + +Tue May 25 09:36:13 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Many places: replace "the inferior" in messages with "the program" + or "the program being debugged". + * inflow.c (try_writing_regs): Remove; it's been #if 0'd forever + and I'm getting sick of maintaining it. + + * config/i386/linux.mh: Don't use \ newline; the awk scripts don't + support it. + + * config/i386/go32.mh: Define SER_HARDWIRE. + * Makefile.in: Define SER_HARDWIRE. + (DEPFILES): Use it. + (alldeps.mak): Add SER_HARDWIRE. + Remove all references to ser-hardwire.{c,o}. + * configure.in: Remove all ser_hardwire and gdb_serial_driver stuff. + +Mon May 24 23:50:05 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * sparc-nat.c (store_inferior_registers): Fill in all members of + inferior_fp_registers by reading them from the inferior before + modifying and writing them back. + Fixes unexplainable inferior FP exceptions after calls to the inferior + or setting of floating point registers. + * mips-tdep.c (mips_skip_prologue): Skip move of argument register + to register which is generated by gcc-2.4. + +Tue May 25 00:42:39 1993 Ken Raeburn (raeburn@cygnus.com) + + * hppa-pinsn.c: Define OLD_TABLE before including opcode/hppa.h. + +Mon May 24 13:55:14 1993 Stu Grossman (grossman@cygnus.com) + + * config/i386/{i386lynx.mh i386lynx.mt nm-i386lynx.h tm-i386lynx.h + xm-i386lynx.h}: New configuration for Lynx. + +Mon May 24 10:01:10 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mipsread.c (parse_symbol): Deal with scVar and scVarRegister. + * symtab.h: Comment that LOC_REGPARM_ADDR can be call by reference. + + * c-typeprint.c (c_type_print_base): Don't print typedef'd names + as struct, union, or enum tags. + +Mon May 24 01:10:01 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symmisc.c (dump_msymbols): Avoid gdb coredump with stripped + executable. + +Sat May 22 10:03:09 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior), + infcmd.c (program_info, signal_command): Use symbolic signal names. + + * inftarg.c (child_wait): Deal with EINTR and include message from + strerror if printing an error message. + + * main.c (command_line_input): Use STOP_SIGNAL not SIGTSTP. + + * stabsread.c: Remove most uses of lookup_fundamental_type. + (define_symbol): Use read_type for type of enum constant, + not just read_type_number. Also don't call error(). + (define_symbol): For unrecognized constant type, one complaint (the + one from error_type) is enough. Don't make our own in addition. + (define_symbol): Don't treat an N_FUN 'R' as a prototype. + * gdbtypes.h: Doc fixes. + +Sat May 22 03:33:07 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + Fix stack unwinding through _sigtramp on Irix. These patches are from + Paul Flinders . + * mipsread.c (fixup_sigtramp): Find _sigtramp on Irix even when the + executable uses sigvec. + * mips-tdep.c (read_next_frame_reg): Allow tm-file to override + sigcontext offsets. + * config/mips/tm-irix3.h: Add sigcontext offsets for Irix. + +Sat May 22 00:39:01 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Clear stop_signal if it should not + be passed to the inferior to make "handle nopass nostop" work. + +Sat May 22 00:21:41 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/tm-irix3.h: Clean up, use tm-bigmips.h and redefine + the necessary bits. + * findvar.c (value_from_register): Fix uninitialized first_addr + which caused problems with assignment of doubles to register variables + on some targets. + * mipsread.c: Remove TM_FILE_OVERRIDE, include tm.h and provide the + missing mips definitions if necessary. + + Fix handling of double register variables for mips targets and big + endian hosts. These patches are from Paul Flinders . + * config/mips/tm-mips.h: Increase MAX_REGISTER_{RAW,VIRTUAL}_SIZE to + 8 bytes for doubles. + * config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE): New macro for + conversion of type held in multiple registers to host format. + * config/mips/tm-mips.h (REGISTER_CONVERT_FROM_TYPE): New macro, + companion to REGISTER_CONVERT_TO_TYPE. + * config/mips/tm-mips.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): + Convert to function calls. + * config/mips/tm-mips.h (FIX_CALL_DUMMY): New code for big endian + mips targets. + * mips-tdep.c (mips_print_register): Raw buffer now needs just + MAX_REGISTER_RAW_SIZE bytes. + * mips-tdep.c (mips_print_register): Use REGISTER_CONVERT_TO_TYPE + (if defined) for doubles. + * mips-tdep.c: (mips_extract_return_value, mips_store_return_value): + New functions, take care of REGISTER_CONVERT_TO/FROM_TYPE. + * valops.c (value_assign): Use REGISTER_CONVERT_TO_TYPE if + defined. + * findvar.c (value_from_register): Use REGISTER_CONVERT_TO_TYPE if + defined. + +Fri May 21 09:04:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * configure.in: Add i[34]86-*-isc*. + + * stabsread.c: Make sure all complain() pass the address of the struct. + + * xcoffread.c: Make sure all struct complaints are static not auto. + + * Makefile.in: Add rule for xcoffexec.o like that for paread.o. + + * xcoffread.c (process_xcoff_symbol, case C_LSYM): Use define_symbol. + +Wed May 19 12:33:59 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i386/linux.mh: Re-enable coredumps now that they should work. + +Wed May 19 15:44:20 1993 K. Richard Pixley (rich@cygnus.com) + + * config/m68k/tm-m68k.h (FRAME_CHAIN): add missing close paren. + +Wed May 19 15:33:57 1993 Stu Grossman (grossman@cygnus.com) + + * config/pa/nm-hppab.h: Comment PTRACE_ARG3_TYPE. + +Wed May 19 12:33:59 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (INSTALLED_LIBS): New variable. + +Tue May 18 14:08:50 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (quit_command): In the "quit anyway?" message, tell the user + whether we are planning to detach or kill the program. + + * config/vax/vaxbsd.mh: Add "NAT_FILE= nm-vax.h". + * config/vax/xm-vaxbsd.h: Use not + + * infcmd.c (read_pc): Doc fix. + + * printcmd.c (print_address_symbolic): Use %u not %d for offset. + + * blockframe.c (get_prev_frame_info): If pc in sigtramp, set + signal_handler_caller. + * tm-68k.h (FRAME_{CHAIN,SAVED_PC}): Deal with sigtramp. + * tm-hp300bsd.h: Define SIGTRAMP_{START,END} not IN_SIGTRAMP. + * inferior.h (IN_SIGTRAMP): Definition moved from infrun.c. + Use SIGTRAMP_START if defined. + * infcmd.c (step_1): Use SIGTRAMP_{START,END} if needed. + * infrun.c (wait_for_inferior): Check IN_SIGTRAMP before SKIP_PROLOGUE. + + * infptrace.c: Remove unused KERNEL_U_ADDR_HPUX code. + + * infcmd.c (step_1): Fix poorly worded error message. + + * config/{i386/linux.mh,m68k/isi.mh} (NATDEPFILES): + Comment out corelow.c because core dumps are broken on these machines. + + * Makefile.in (depend): Put "${srcdir}" in generated dependencies + if srcdir is not ".". + Also put in -I${BFD_DIR} or -I${READLINE_DIR} for files which need it. + (INCLUDE_CFLAGS): Remove BFD_DIR and READLINE_DIR. + * depend: Update to latest automatically built version. + +Tue May 18 08:10:45 1993 Fred Fish (fnf@cygnus.com) + + * ChangeLog, ChangeLog-92: Split ChangeLog at 1993. + * Makefile.in (NONSRC): Add ChangeLog-92 + +Tue May 18 08:03:37 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * findvar.c ({read,write}_register): Use REGISTER_RAW_SIZE + not typo RAW_REGISTER_SIZE. + + * frame.h, inferior.h: Doc fixes. + +Mon May 17 15:43:03 1993 Stu Grossman (grossman@cygnus.com) + + * findvar.c (write_register): Add sanity check for register size. + (read_register): Fixup sanity check for register size to be + consistent with write_register(). + +Mon May 17 07:36:20 1993 Ian Lance Taylor (ian@cygnus.com) + + * sparclite/Makefile.in: Add dummy info, install and install-info + targets. + +Thu May 13 07:30:22 1993 Ian Lance Taylor (ian@cygnus.com) + + * remote-nindy.c: Removed declaration of coffstrip. + * nindy-share/nindy.c: #if 0 coffstrip routine; no longer used. + +Wed May 12 00:35:19 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.9.1 after release and cvs + tagging. + + * Makefile.in (VERSION): GDB 4.9 release. + +Tue May 11 08:04:41 1993 Fred Fish (fnf@cygnus.com) + + * README: Update known bugs to include the Solaris bug that + leaves core dumps in the current directory when restarting the + inferior with "run". Expand on the testsuite information. + + * Makefile.in (VERSION): Bump to 4.8.96 for what should hopefully + be the last 4.9 prerelease test archive. + +Mon May 10 22:13:23 1993 Jim Kingdon (kingdon@cygnus.com) + + * config/m68k/xm-hp300bsd.h: Include to avoid INT_MAX + redefined warnings. + +Mon May 10 20:00:43 1993 Fred Fish (fnf@cygnus.com) + + * README, NEWS: Update for gdb 4.9 release. + +Mon May 10 19:38:34 1993 John Gilmore (gnu@cygnus.com) + + * ch-exp.y (MAX, MIN): Rename to MAX_TOKEN, MIN_TOKEN. + * target.c (MIN): #undef before defining. + +Mon May 10 16:03:03 1993 Jim Kingdon (kingdon@cygnus.com) + + Patch from Jeffrey Law: + * gdb/config/pa/nm-hppab.h (PTRACE_ARG3_TYPE): Define as caddr_t. + +Mon May 10 15:28:27 1993 Ian Lance Taylor (ian@cygnus.com) + + * hppa-tdep.c (hppa_push_arguments): Allocate correct amount of + memory. + +Mon May 10 13:14:46 1993 Fred Fish (fnf@cygnus.com) + + * ch-exp.y (start): Apply work-around to avoid bison warning. + +Sun May 9 07:25:02 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (BISON): Remove double quotes around BISON + definition when bison is used. + + * configure.in (hppa*-hp-bsd): Change to hppa*-hp-bsd* + * configure.in (hppa*-hp-hpux): Change to hppa*-hp-hpux* + * configure.in (m68*-hp-bsd): Change to m68*-hp-bsd* + * configure.in (m68*-hp-hpux): Change to m68*-hp-hpux* + * configure.in (hppa*-*-bsd): Change to hppa*-*-bsd* + * configure.in (hppa*-*-hpux): Change to hppa*-*-hpux* + * configure.in (m68*-hp-bsd): Change to m68*-hp-bsd* + * configure.in (m68*-hp-hpux): Change to m68*-hp-hpux* + + * Makefile.in (VERSION): Bump to 4.8.6. + +Sat May 8 12:36:03 1993 Fred Fish (fnf@cygnus.com) + + * config/pa/xm-hppah.h (MALLOC_INCOMPATIBLE): Define it, and + include declarations for malloc/realloc/free. Both malloc and + realloc return 'void *' for non-ANSI compilations. + +Sat May 8 01:39:30 1993 (pes@regent.e-technik.tu-muenchen.de) + + * coffread.c (read_coff_symtab): Don't fclose stream as it is no + longer opened twice. + +Thu May 6 21:08:55 1993 Jim Kingdon (kingdon@cygnus.com) + + * solib.c (clear_solib): Don't close bfd if it is NULL. + +Thu May 6 20:55:35 1993 Fred Fish (fnf@cygnus.com) + + * core.c (dis_asm_read_memory): Cast second arg of + target_read_memory to "char *". + * breakpoint.c (watchpoint_check): Change arg type from PTR to + "char *", to match other functions called by catch_errors(). + +Thu May 6 15:47:45 1993 Stu Grossman (grossman@cygnus.com) + + * More patches from Jeffrey Law (law@cs.utah.edu). + * gdb/config/nm-hppab.h (PTRACE_ARG3_TYPE): Define as caddr_t. + * gdb/config/pa/tm-hppah.h (millicode_start, millicode_end): + Delete unnecessary declarations. + +Thu May 6 15:15:46 1993 Stu Grossman (grossman@cygnus.com) + + * ser-unix.c (wait_for): Use VTIME to do timeouts instead of + poll() for termio{s}. + +Thu May 6 10:03:41 1993 Jim Kingdon (kingdon@cygnus.com) + + * i386-tdep.c (i386_frame_num_args): Always return -1. + +Wed May 5 15:16:33 1993 Stu Grossman (grossman@cygnus.com) + + * Patches from Jeffrey Law . + * gdb/hppa-tdep.c: Declare frame_saved_pc. + (frameless_function_invocation): New function. + (frame_saved_pc, init_extra_frame_info): Use + frameless_function_invocation. + * gdb/config/pa/tm-hppa.h (SAVED_PC_AFTER_CALL): Use saved_pc_after + call instead of just grabbing the value currently in %r2. + (FRAMELESS_FUNCTION_INVOCATION): Use frameless_function_invocation. + * gdb/config/pa/tm-hppah.h (SAVED_PC_AFTER_CALL): Delete private + definition and use the common one in tm-hppa.h. + * gdb/hppa-tdep.c (frame_chain_valid): If "use_unwind" is true, then + use unwind descriptors to determine if the frame chain is valid. + * gdb/hppa-tdep.c (find_dummy_frame_regs): Rework so that + it does not assume %r4 is the frame pointer. + * gdb/hppa-pinsn.c (print_insn): Handle 'r' and 'R' for break, rsm, + and ssm instructions. + * gdb/hppa-tdep.c (extract_5r_store, extract_5R_store): New + helper functions for print_insn. + * gdb/hppa-tdep.c (gcc_p, hpux_cc_p): Delete unused functions. + * gdb/config/pa/tm-hppa.h (ABOUT_TO_RETURN): Handle a return + which nullifies the following instruction. + +Tue May 4 12:11:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * infptrace.c [FIVE_ARG_PTRACE]: Define ptrace to call_ptrace and + pass the 5th arg there, rather than using an ANSI C-specific macro. + + * Makefile.in (depend): Don't include ${CC} command for *.tab.c. + +Tue May 4 19:33:12 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.8.5 + * Makefile.in (INCLUDE_CFLAGS): Add BFD_DIR and READLINE_DIR + directories to include search path. + * Makefile.in (CLIBS, CDEPS, ADD_FILES, ADD_DEPS): Clean up + whitespace. + * Makefile.in (depend): For gcc -MM line, use INTERNAL_CFLAGS + * Makefile.in (main.o, dbxread.o, coffread.o, mipsread.o, + elfread.o, dwarfread.o, stabsread.o, xcoffread.o, xcoffexec.o, + xdr_ld.o, xdr_rdb.o, nindy.o, Onindy.o, ttybreak.o, ttyflush.o, + udr.o, udip2soc.o): Remove explicit rules, use the ones that + are automatically generated in "depend". + * Makefile.in (paread.o): Document why a dependency doesn't get + automatically generated in "depend" and leave this explicit rule + in for now (FIXME). + * depend: Update to latest automatically generated version. + +Tue May 4 12:11:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c: Doc fix. + + * Makefile.in (depend): Include $(CC) command in generated output. + +Mon May 3 22:51:05 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (NONSRC): Remove ${srcdir}/putenv.c. + * Makefile.in (SFILES): Add ${srcdir}/putenv.c. + * depend: Update to latest automatically built version. + +Mon May 3 19:20:20 1993 Stu Grossman (grossman@cygnus.com) + + * sparclite/Makefile.in: Create default target that does nothing + in order to force user to build by hand. + + * sparclite/Makefile: Remove. It's not necessary anymore. + + * ser-unix.c (wait_for): New routine to handle read timeouts, + etc. Uses poll() if HAVE_TERMIO[S] is defined, select() otherwise. + +Mon May 3 13:52:08 1993 Ian Lance Taylor (ian@cygnus.com) + + * mips-pinsn.c (print_insn): Return value. + +Sun May 2 11:43:57 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (SFILES): Remove ser-hardwire.c; it is a link made + at configuration time and doesn't belong in the distribution archive. + + * Makefile.in (NONSRC): Add 29k-share/README. + * Makefile.in (HFILES): Add 29k-share/udi/udiids.h. + + * defs.h (UINT_MAX, LONG_MAX, INT_MAX, INT_MIN): Replace hex + constants with slightly more portable definitions (still depends + on 2's complement arithmetic though). + * config/i386/nm-linux.h: Define NO_SYS_REG_H for no . + * i386v-nat.c (sys/reg.h): Conditionalize include on + NO_SYS_REG_H. Linux doesn't have . + * ser-unix.c (termio.h): Include like other files that + include termio.h, not which may not exist (on + linux for example). + +Sat May 1 16:05:24 1993 Fred Fish (fnf@cygnus.com) + + * valprint.c (print_longest): Change format parameter from a + 'char' to an 'int'. We can't have 'char' parameters with the + current coding style, where we mix prototypes with pre-ANSI + style declarations. + * value.h (print_longest): Change format parameter in prototype + from a 'char' to an 'int'. + +Sat May 1 02:47:20 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/tm-mips.h (STAB_REG_TO_REGNUM): Match it with the gcc + definition. + * config/mips/tm-irix3.h (STAB_REG_TO_REGNUM): Add. + * irix4-nat.c (fill_fpregset): Fix bug with indexing into fpregsetp. + +Fri Apr 30 17:45:32 1993 Stu Grossman (grossman@cygnus.com) + + * The following patches are from Jeffrey Law . + * config/pa/hppabsd.mh: Add more files to NATDEPFILES. + * config/pa/xm-hppa[bh].h: Define FIVE_ARG_PTRACE. + * hppab-nat.c: Delete WANT_NATIVE_TARGET ifdefs. + ptrace needs 5 arguments, #define ptrace to always + pass zero as the 5th argument. + +Fri Apr 30 15:54:13 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * configure.in: Match z8k-*-sim for z8000. + * config/h8500/tm-h8500.h, h8500-tdep.c: Lint. + * remote-hms.c: Update to use new serial protocol. + +Fri Apr 30 16:50:38 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * mips-tdep.c: remove include of sys/dir.h. Doesn't seem + necessary and Solaris doesn't have it. + + * Makefile.in (clean-info, install, install-info, info, dvi, + check, all): do not echo recursion lines. + + * 29k-share/udip2soc.c (UDIConnect): replace union wait with int. + + * config/sparc/sun4sol2.mh (XM_CLIBS): add -lsocket which is + required target ports which use sockets (like a29k-udi). + + * remote-udi.c (udi_wait): Use SIGURG, as Solaris doesn't have SIGLOST. + +Fri Apr 30 11:05:42 1993 Jim Kingdon (kingdon@cygnus.com) + + * ser-unix.c [USE_{TERMIO,ALARM}_TIMEOUT]: New code to deal with + systems lacking select(). + + * Makefile.in (TAGS): Doc fix. Deal with empty DEPFILES. + +Fri Apr 30 10:06:46 1993 Fred Fish (fnf@cygnus.com) + + * alldeps.mak, depend: Update with latest automatically built + versions. + +Thu Apr 29 12:03:23 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (SFILES): Add ser-unix.c and ser-go32.c. + + * Makefile.in (make-proto-testsuite.dir): New target to make + prototype testsuite tree. + + * Makefile.in (VERSION): Bump to 4.8.4. + +Thu Apr 29 08:46:22 1993 Jim Kingdon (kingdon@cygnus.com) + + * stabsread.c (define_symbol): If unrecognized constant type, + complain() not error(). + +Thu Apr 29 00:03:59 1993 Fred Fish (fnf@cygnus.com) + + * infptrace.c: Add missing close paren to test for + FIVE_ARG_PTRACE defined. + + * defs.h (CC_HAS_LONG_LONG): Set up to define CC_HAS_LONG_LONG + when compiling with gcc, but disable it for now. See comment. + * defs.h (LONGEST): Define as either "long" or "long long" + based on CC_HAS_LONG_LONG. + * defs.h (longest_to_int): Use CC_HAS_LONG_LONG to control + how longest_to_int is defined. + * c-valprint.c (c_val_print): Call print_longest. + * expprint.c (dump_expression): Use PRINTF_HAS_LONG_LONG + instead of LONG_LONG. + * {printcmd.c, gdbtypes.h} (LONG_LONG): Replace usages with + CC_HAS_LONG_LONG. + * printcmd.c (print_scalar_formatted): Call print_longest + and let it figure out what to do for PRINTF_HAS_LONG_LONG. + * typeprint.c (print_type_scalar): Call print_longest and let + it figure out what to do for PRINTF_HAS_LONG_LONG. + * valprint.c (val_print_type_code_int): Call print_longest + and let it figure out what to do for PRINTF_HAS_LONG_LONG. + * stabsread.c (LONG_LONG): Replace usages with CC_HAS_LONG_LONG. + * value.h (struct value): Replace usage of LONG_LONG with + CC_HAS_LONG_LONG. + * value.h (print_longest): Add prototype. + * values.c (LONG_LONG): Replace usages with CC_HAS_LONG_LONG. + * values.c (unpack_double): Collapse code that was unnecessarily + dependent on CC_HAS_LONG_LONG. Use LONGEST instead of direct types. + * values.c (value_from_longest): Remove dependency on + CC_HAS_LONG_LONG and just use LONGEST. + * solib.c (solib_map_sections): Use bfd_get_filename + to access filename field. + * solib.c (clear_solib): Save filename and free it later, after + bfd_close, since bfd_close may reference it. Use bfd_get_filename + to access the field. + * config/convex/xm-convex.h (LONG_LONG): Replace with + CC_HAS_LONG_LONG. Add define for PRINTF_HAS_LONG_LONG. + * doc/gdbint.texinfo (LONG_LONG): Replace with CC_HAS_LONG_LONG. + Add PRINTF_HAS_LONG_LONG references. + +Wed Apr 28 06:11:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * inflow.c (kill_command), infcmd.c (attach_command), + remote.c (remote_interrupt_twice): In messages for the user, call it + "the program" or "the program being debugged" not "the inferior". + + * hp300ux-nat.c: Cast second arg to supply_register calls. + (_initialize_kernel_u_addr, getpagesize): New functions. + (store_inferior_register_1): Change arg name from value to val. + (fetch_core_registers): Make arg core_reg_size unsigned. + Pass 5 args to ptrace. + * config/m68k/xm-hp300hpux.h: Define FIVE_ARG_PTRACE. + Remove KERNEL_U_ADDR stuff. + * infptrace.c [FIVE_ARG_PTRACE]: Pass 5th arg to ptrace. + * config/m68k/hp300hpux.m{t,h}: + Move exec.o from NATDEPFILES to TDEPFILES + * config/m68k/hp300hpux.mt: Mention GAS requirement. Remove + hp-include stuff. Add m68k-tdep.o to TDEPFILES. + +Wed Apr 28 13:27:54 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * ch-exp.y (yylex): Don't STREQ with simplename if it is NULL. + +Wed Apr 28 06:11:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * config/sparc/xm-sun4os4.h [__STDC__]: Don't use MALLOC_INCOMPATIBLE. + +Wed Apr 28 11:39:18 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/gdb.texinfo: make node "Shell Commands" unconditional; + describe `set demangle-style arm' (not cfront); + mention can type `q' to discard output, when gdb pages + +Wed Apr 28 11:32:39 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * valops.c (search_struct_field): Fix gdb core dump with incomplete + stabs info. + +Wed Apr 28 06:11:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * remote.c: Change timeout to 2. + (remote_open): Use unpush_target not remote_close. + (remote_resume): If siggnal != 0, give warning not error(). + (remote_wait, remote_interrupt, remote_interrupt_twice): + If we get two interrupts, let the user get out if they want. + (remote_{kill,mourn}): New functions. + i386-stub.c (handle_exception, case 'k'): Don't BREAKPOINT. + +Wed Apr 28 09:20:55 1993 Ian Lance Taylor (ian@rtl.cygnus.com) + + * config/sparc/sun4sol2.mh (XM_CLIBS): Define to be -lnsl. + +Wed Apr 28 06:11:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * Remote targets (mourn): Call unpush_target. + + * config/sparc/xm-sun4os4.h: Declare free() to return int. + Remove twisted use of PARAMS. + + * config/rs6000/xm-rs6000.h: Don't define MALLOC_INCOMPATIBLE now + that ansidecl.h assumes ANSI on AIX. + +Tue Apr 27 10:01:33 1993 Jim Kingdon (kingdon@cygnus.com) + + * README: Move most stuff about hacking GDB to doc/gdbint.texinfo. + (Known bugs): Remove AIX bugs, revise SPARC struct bug description. + +Tue Apr 27 13:44:19 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * expprint.c (print_subexp): Fix bug with OP_SCOPE operator output. + +Tue Apr 27 10:01:33 1993 Jim Kingdon (kingdon@cygnus.com) + + * remote-vx.c (net_connect): Allow numeric IP address for host. + +Mon Apr 26 17:59:38 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/sh/sh.mt, config/sh/tm-sh.h, sh-tdep.c: New files. + +Mon Apr 26 07:13:32 1993 Jim Kingdon (kingdon@cygnus.com) + + * rs6000-tdep.c (branch_dest): Deal with stepping through system call. + + * symtab.h, xcoffread.c: Revise linetable sorting comments. + +Sun Apr 25 02:32:16 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * valops.c (value_cast): A cast might also change the object + representation in C++. + * dbxread.c (end_psymtab): Copy subpst read_symtab function from pst + to get the proper read_symtab function when called from mipsread.c. + * mipsread.c (mipscoff_psymtab_to_symtab, psymtab_to_symtab_1): + Set cur_bfd in psymtab_to_symtab_1 as CURBFD(pst) is invalid + for dummy psymtabs, inhibit processing of dummy psymtabs. + +Sat Apr 24 19:59:54 1993 Jim Kingdon (kingdon@cygnus.com) + + * Changes from (or inspired by) AMD: + * remote-udi.c (udi_attach): Assignments to Space and Offset were + switched, fix it. + (udi_wait): Make error message (UDIGetStdout) match error. + (udi_wait): Handle UDIStdinNeeded. + * command.c [CANT_FORK]: Use system(). + * utils.c (prompt_for_continue): Allow quit with 'q'. + + * solib.c (solib_add): Don't call special_symbol_handling if there + were errors in symbol_add_stub. Also set so->from_tty before + calling symbol_add_stub. + +Fri Apr 23 16:17:00 1993 Stu Grossman (grossman@cygnus.com) + + * Merge in HPPA/BSD patches from Utah: + * defs.h: Add const to 2nd arg of psignal prototype. + * hppah-tdep.c: Renamed to hppa-tdep.c 'cuz it's common code with + BSD now. + * hppab-core.c: Deleted. No longer useful. + * hppab-nat.c: #include more files. Use PT_WUREGS, not + PT_WRITE_U. + * hppab-tdep.c: Deleted. Supplanted by hppa-tdep.c. + * config/pa/hppabsd.mh (NATDEPFILES): Remove hppab-core.o. + * config/pa/hppabsd.mt (TDEPFILES): hppab-tdep.o => hppa-tdep.o + * config/pa/hppahpux.mt (TDEPFILES): hppab-tdep.o => hppa-tdep.o + * config/pa/xm-hppab.h: #define SET_STACK_LIMIT_HUGE. + +Fri Apr 23 10:34:02 1993 Stu Grossman (grossman@cygnus.com) + + * Fix two bugs found by deja-gnu. One is the incorrect reporting + of the PC being in a stack dummy when looking at a core file + without symbols. The other is the incorrect passing of char + arguments during expression evaluation (ie: p foo('a','b') would + mess up the passing of it's args because it wasn't coercing the + char's to ints). + * hppah-tdep.c: Rename global functions to have consistent hppa_ + prefix. Make more functions static. Drop hp_ prefix from static + functions. (hppa_push_arguments): Call value_arg_coerce to cast + char to int args if necessary. (hppa_fix_call_dummy): Create + this routine from FIX_CALL_DUMMY macro in tm-hppa.h. + * inferior.h (PC_IN_CALL_DUMMY): Check for frame_address being + valid (ie: != 0) before doing comparison against PC. + * valops.c (call_function_by_hand): Adjust call to FIX_CALL_DUMMY + to reflect new arguments. + * config/pa/tm-hppa.h (POP_FRAME, PUSH_ARGUMENTS): Use new hppa_ + prefix for func name. (FIX_CALL_DUMMY): Move code into + hppah-tdep.c. + + * testsuite/gdb.t16/gdbme.c, testsuite/gdb.t17/gdbme.c: Add calls + to malloc() so that we can test GDB eval of dynamically created + arrays (like char strings in `print "foo"'). + +Fri Apr 23 01:28:14 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * printcmd.c (print_address_symbolic): Search symtabs as well as the + minimal symbols for a nearby symbol. + +Thu Apr 22 19:44:21 1993 John Gilmore (gnu@cacophony.cygnus.com) + + * coffread.c: Comment changes around minimal symbol recording. + +Thu Apr 22 16:24:36 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * command.c: comment changes only. + + * mips-tdep.c (heuristic_fence_post): new static variable. + (heuristic_proc_start): use heuristic_fence_post, print better + warnings, but only if not stop_soon_quietly. + (_initialize_mips_tdep): add_set_cmd for heuristic-fence-post. + +Thu Apr 22 14:50:05 1993 Jim Kingdon (kingdon@cygnus.com) + + * symtab.h: Fix LOC_REF_ARG comment. + +Wed Apr 22 20:21:30 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + and Jim Kingdon (kingdon@cygnus.com) + + * stabsread.c (define_symbol): Combine a 'p', 'r' arg pair to a + LOC_REGPARM symbol. + * config/sparc/tm-sparc.h (REG_STRUCT_HAS_ADDR): Revise comments. + symfile.c (compare_symbols): Don't check first character; STRCMP + does that. + + * stabsread.c (define_symbol): Generate a LOC_REGPARM_ADDR for + structures that are passed by address in a register. + * symtab.h (enum address_class): Add LOC_REGPARM_ADDR. + * findvar.c (read_var_value), + printcmd.c (address_info, print_frame_args), + stack.c (print_frame_arg_vars), symmisc.c (print_{,partial_}symbol), + * symtab.c (lookup_block_symbol): Deal with it. + +Thu Apr 22 09:07:24 1993 Jim Kingdon (kingdon@cygnus.com) + + * objfiles.h (obj_section), objfiles.c (build_objfile_section_table): + Add objfile field. + * objfiles.c (find_pc_section): Return a struct obj_section *. + * sparc-tdep.c (in_solib_trampoline): Deal with find_pc_section return. + * symfile.c (syms_from_objfile) [IBM6000_TARGET]: + Don't use obj_section hack. + * xcoffexec (vmap_symtab): Relocate obj_sections. + * printcmd.c (containing_function_bounds): Use find_pc_section. + + * symtab.h: Clean up SYMBOL_VALUE comments. + +Wed Apr 21 14:29:57 1993 Jim Kingdon (kingdon@cygnus.com) + + * stack.c (print_frame_arg_vars), printcmd.c (print_frame_args): + Expand comments about LOC_ARG/LOC_LOCAL pairs. + + * coffread.c (read_coff_symtab): Use rewind before fseek. + +Wed Apr 21 14:24:19 1993 Per Bothner (bothner@cygnus.com) + + * ch-exp.y: Removed unused structure_primitive_value and FIXME_23. + * Makefile.in: Add $(YFLAGS) when using $(YACC). + * Makefile.in: Remove message to expect conflicts and unused + rules in ch-exp.y, since there no longer are any such. + +Wed Apr 21 13:27:50 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * stabs.texinfo: fixed bad xrefs (un-initialized statics) + +Tue Apr 20 08:55:11 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffexec.c (xcoff_relocate_core): If no exec file, error() + rather than dumping core. + + * Makefile.in: Add ${srcdir}/ to all source files. + (alldeps.mak): Add "${srcdir}/" to files when generating alldeps.mak. + (TAGS): Deal with srcdir and new config directory scheme. + createtags: Remove. + Makefile.in (NONSRC): Remove createtags. + alldeps.mak: Updated. + + * rs6000-tdep.c: Delete unused function print_frame. + + * frame.h (struct frame_info): Doc fix for next_frame. + New field signal_handler_caller. + blockframe.c (create_new_frame, get_prev_frame_info), + config/rs6000/tm-rs6000.h (INIT_EXTRA_FRAME_INFO): Set it (needs + INIT_FRAME_PC_FIRST). + stack.c (print_frame_info), rs6000-tdep.c (rs6000_frame_chain): + Check it. + +Mon Apr 19 22:52:33 1993 Stu Grossman (grossman@cygnus.com) + + * irix4-nat.c (fetch_core_registers): Special version of this for + Irix 4.x, which stores regs a bit differently from other /proc + based systems. + * procfs.c, core-svr4.c: Move fetch_core_registers from procfs.c + to new file core-svr4.c. + * config/i386/i386sol2.mh, config/i386/i386v4.mh, config/m68k/amix.mh, + config/i386/ncr3000.mh, config/sparc/sun4sol2.mh: Add core-svr4.o + to NATDEPFILES. + * config/mips/irix4.mh: Add corelow.o to NATDEPFILES. + +Mon Apr 19 11:13:34 1993 Jim Kingdon (kingdon@cygnus.com) + + * i387-tdep.c: Remove unused #includes. + + * configure.in: Match i[34]86-*-sysv3.2 not i[34]86-*-sysv32. + + * config/i386/nm-i386v.h: Define NO_PTRACE_H. + +Sun Apr 18 10:39:35 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c: Nuke NO_DEFINE_SYMBOL code. There is no going back. + + * stabsread.c (define_symbol): 'R' is synonym for 'P', not 'r'. + xcoffread.c (process_xcoff_symbol, case C_RPSYM): + Don't muck with SYMBOL_CLASS. + +Fri Apr 16 17:38:33 1993 Stu Grossman (grossman@cygnus.com) + + * munch: Don't use head command. It doesn't exist everywhere. + +Fri Apr 16 15:07:57 1993 Fred Fish (fnf@cygnus.com) + + * inflow.c (new_tty): Remove spurious 'o' character at end + of #endif line. + +Fri Apr 16 12:27:11 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-tdep.c (mips_skip_prologue): Always skip the typical prologue + instructions and nothing more. + * mipsread.c (add_line): Add comment why we have to combine line number + entries for the same line number. + +Fri Apr 16 09:42:03 1993 Jim Kingdon (kingdon@cygnus.com) + + * symtab.{c,h}: Doc fixes (remove symseg references, last relevant + in gdb 2.8!). + +Thu Apr 15 21:16:58 1993 Fred Fish (fnf@cygnus.com) + + * depend, alldeps.mak: Update, now that gcc -MM bug is fixed. + +Thu Apr 15 12:38:39 1993 Jim Kingdon (kingdon@cygnus.com) + + * source.c (select_source_symtab): Clean up comment. Also, if + we have a current_source_symtab, and s is NULL, return without + doing anything. + xcoffread.c (xcoff_symfile_read): Don't call select_source_symtab. + breakpoint.c (breakpoint_re_set): Don't call select_source_symtab. + +Thu Apr 15 02:37:48 1993 John Gilmore (gnu@cacophony.cygnus.com) + + * dbxread.c (unknown_symchar_complaint): Add new complaint. + * stabsread.h: Declare it. + * partial-stab.h: Use it. + + * utils.c (malloc_botch): Don't forward-declare if NO_MMALLOC. + +Wed Apr 14 17:12:51 1993 Jim Kingdon (kingdon@cygnus.com) + + * stack.c (print_frame_info): Print specially if dummy frame. + + * breakpoint.c: Add comments regarding within_scope future direction. + + * Version 4.8.3. + + * xcoffread.c (record_include_{begin,end}): Change fatal to complain. + +Wed Apr 14 14:03:18 1993 Per Bothner (bothner@cygnus.com) + + * ch-exp.y: Fix thinko that broke parsing of FALSE. + +Wed Apr 14 12:49:29 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * stabsread.c (read_member_functions): Initialize domain for stubbed + member functions to avoid gdb core dumps when printing pointers + to member functions. + * cp-valprint.c (cp_print_class_method): Check for stubbed member + functions. + +Tue Apr 13 08:28:26 1993 Jim Kingdon (kingdon@cygnus.com) + + * expprint.c (print_subexp): If opcode not found in op_print_tab, + stop with an error(). + eval.c (evaluate_subexp): Change error message. + + * objfiles.c (build_objfile_section_table): Cast return value + from obstack_finish. + +Mon Apr 12 10:53:50 1993 Jim Kingdon (kingdon@cygnus.com) + + * config/rs6000/tm-rs6000.h, rs6000-tdep.c: Move FRAME_CHAIN + to rs6000_frame_chain and deal with it if we're in a signal handler. + (FRAME_SAVED_PC): Use rs6000_frame_chain. + + * breakpoint.c (within_scope): New function. + (enable_breakpoint, watchpoint_check): Use it. + + * source.c (openp): Handle "exec-file ./ls" correctly. + + * breakpoint.c (breakpoint_1): Use wrap_here before "at". + +Sat Apr 10 01:32:43 1993 Per Bothner (bothner@rtl.cygnus.com) + + * ch-exp.y: Clean up lexing of identifiers and + reserved words. (E.g. don't recognize FALSEXXX as the + keyword FALSE followed by the identifier XXX.) + Also, convert identifiers to lower case. + +Fri Apr 9 15:53:19 1993 Stu Grossman (grossman@cygnus.com) + + * remote-mips.c, remote-monitor.c, remote-st2000.c: Convert to + new serial interface. + +Fri Apr 9 15:01:12 1993 Stu Grossman (grossman@cygnus.com) + + * remote.c (remote_open): Use SERIAL_OPEN instead of serial_open. + (putpkt, getpkt): Use new return codes for SERIAL_READCHAR. + * ser-go32.c: Return -1 on most failures, 0 on most successes, + and use new return codes for go32_readchar(). + * ser-unix.c: Ditto. Also, move error handling up to caller for + SERIAL_SETBAUDRATE(). + * serial.c (serial_open): Internal call, not SERIAL_OPEN to get + to specific routine. + (serial_close): New routine to wrap around device close routine. + serial.h: Clean & document return values more clearly. + +Fri Apr 9 10:20:55 1993 Jim Kingdon (kingdon@cygnus.com) + + * rs6000-pinsn.c (print_operand): Deal with no operand instructions. + + * rs6000-pinsn.c (print_operand, case LI): Print condition register + operand in decimal rather than wrong textual versions. + + * printcmd.c (_initialize_printcmd): Clean up docstring for "x" + (mention 't', remove false thing about 'g' only good with 'f'). + + * breakpoint.h: move "struct breakpoint" and friends to top of + file so that bpstat_find_breakpoint prototype works. + + * solib.c (struct so_list): Add bfd field. + (solib_map_sections): Leave bfd open and scratch_pathname allocated. + Put the bfd in bfd field of the so_list. + (clear_solib): Free bfd name and close_bfd on the bfd. + +Fri Apr 9 00:45:41 1993 Per Bothner (bothner@rtl.cygnus.com) + + * valarith.c (value_subscript): Add COERCE_REF. + * ch-exp.y (operand_5): We can generalize the 2nd operand + of a string repetition ot 'literal' without ambiguity. + +Thu Apr 8 10:15:10 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.h (struct bpstat): Remove momentary field. + Remove bpstat_momentary_breakpoint. This was always kludgy + and is no longer used. + + * breakpoint.h: Add enum bpstat_what. + breakpoint.h (struct bpstat), breakpoint.c (bpstat_stop_status): + stop and print fields of bpstat now per-breakpoint, not just + one for the whole chain. + breakpoint.{c,h} (bpstat_what): New function. + breakpoint.h: Remove bpstat_stop and bpstat_should_print. + infrun.c: Replace switch (stop_bpstat->breakpoint_at->type) + with call to bpstat_what. + README: Remove watchpoint/breakpoint bug from known bugs. + + * breakpoint.h: Prototype bpstat_find_breakpoint. + +Thu Apr 8 16:01:21 1993 Fred Fish (fnf@cygnus.com) + + * symtab.c (find_methods, gdb_mangle_name): Note that functions + are g++ specific. + * symtab.h (VTBL_FNADDR_OFFSET, OPNAME_PREFIX_P, VTBL_PREFIX_P, + DESTRUCTOR_PREFIX_P): Note that macros are g++ specific. + +Thu Apr 8 12:45:32 1993 Ian Lance Taylor (ian@cygnus.com) + + * i960-pinsn.c (tabent): Copied struct definition from + opcodes/i960-dis.c. + +Thu Apr 8 10:34:37 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.h (DESTRUCTOR_PREFIX_P): New macro to check if physname + is a C++ destructor. + * symtab.c (gdb_mangle_name): Use it. + * symtab.c (find_methods): Do not add destructors to choice list + for constructors. + * symtab.c (decode_line_1): Make breakpoints on destructors work + for gcc-2.x again. + +Wed Apr 7 18:43:09 1993 Stu Grossman (grossman@cygnus.com) + + * ser-go32.c: Make it use serial port name. + * go32-xdep.c: Put in def for strlwr, needed by dir.o in go32 libc. + + * infcmd.c (read_pc): Make sure that we read PC_REGNUM when not + in a system call! + +Wed Apr 7 15:52:11 1993 Stu Grossman (grossman@cygnus.com) + + * configure.in: Only configure sparclite subdir when target_cpu + is sparclite. + +Wed Apr 7 10:11:22 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (struct coff_symbol): Change c_sclass to unsigned char. + Remove FIXME comment regarding this. + + * symfile.h: Change NULL->'\0' in comment (that wasn't a typo). + + * xcoffread.c (read_xcoff_symtab): Use E_SYMNMLEN. + +Tue Apr 6 22:30:58 1993 K. Richard Pixley (rich@cygnus.com) + + Add section table to objfile struct. Use it for find_pc_section. + * objfiles.c (add_to_objfile_sections, + build_objfile_section_table, find_pc_section): new functions. + (allocate_objfile): build section table. + * objfiles.h (struct obj_section): new structure. + (struct objfile): add section table. + (find_pc_section): new prototype. + * solib.[ch] (find_pc_section_from_so_list): removed. + * sparc-tdep.c: include objfiles.h for find_pc_section. include + symfile.h for objfiles.h. + (in_solib_trampoline): adjusted for new find_pc_section + prototype. Removed BAD_RICH_HACK ifdefs. + * symfile.c (syms_from_objfile): offset objfile sections. + (find_pc_section): removed. Also removed BAD_RICH_HACK ifdefs. + * symfile.h (find_pc_section): prototype removed. Also fixed + comment typo NUL -> NULL. + * target.[ch] (find_pc_section_from_targets): removed. + * config/sparc/tm-sun4sol2.h (BAD_RICHH_HACK): removed. + +Tue Apr 6 21:41:13 1993 Stu Grossman (grossman@cygnus.com) + + * ser-go32.c: Format. (go32_open): Use proper return value. + + * configure.in: Undo conditional configdirs hack for sparclite. + +Tue Apr 6 17:07:37 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * symtab.c (list_symbols): When call break_command, pass both + filename and function name not just function name. + +Tue Apr 6 15:00:09 1993 Fred Fish (fnf@cygnus.com) + + (Changes and new files to make "none" a full fledged configuration) + * config/none/{nm-none.h, tm-none.h, xm-none.h}: New files. + Currently only tm-none.h has any meaningful contents. + * config/none/none.mh (NAT_FILE): Use nm-none.h + * config/none/none.mh (XM_FILE): Use xm-none.h + * config/none/none.mt (TM_FILE): Use tm-none.h + * Makefile.in (depend): Remove comment about parse errors in + valops.c, it now parses correctly and generates a correct depend + line. Remove line that touches xm.h, tm.h, and nm.h; they are + now linked to config/none/{xm-none.h, tm-none.h, nm-none.h}. + +Tue Apr 6 09:54:29 1993 Jim Kingdon (kingdon@cygnus.com) + + * values.c (USE_STRUCT_RETURN): Only use gcc wierdness for gcc1. + + * xcoffread.c (read_xcoff_symtab): Deal correctly with symbols of + exactly 8 characters. + +Tue Apr 6 10:31:26 1993 Stu Grossman (grossman@cygnus.com) + + * configure.in: Sparclite uses sparc config dir. Also has it's + own tm- & .mt files now. Also add sparclite to configdirs. + * go32-xdep.c: Dummy routines for sigsetmask & strlwr. + * config/i386/go32.mh: Nullify def of TERMCAP. + * config/i386/xm-go32.h: Get rid of redef of EIO. + * config/sparc/{sparclite.mh tm-sparclite.h}: New sparclite + specific configs. Very similar to sun4os4, but without solib. + * sparclite/{Makefile.in configure.in}: First cut at making this + dir configgable. + +Tue Apr 6 03:10:44 1993 Stu Grossman (grossman@cygnus.com) + + * ser-go32.c: First cut at adapting to new serial interface. + +Mon Apr 5 22:29:43 1993 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (SFILES OBS): Add serial.[co] & ser-hardwire.[co]. + These implement a new serial line interface for talking to remote + targets. + * configure.in: Link ser-hardwire.c to ser-unix.c for all hosts, + EXCEPT go32, which gets ser-go32.c. + * remote.c: Use new serial interface. More remote-xxx's to be + converted later. + * ser-bsd.c, ser-termios.c: Removed. + * serial.c: New. Implements common operations for all serial + types. + * ser-unix.c: New. Unix specific serial operations for various + flavors of Unix (Posix, SysV, BSD). + * serial.h: Generic serial interface defs. + * config/i386/go32.mh, config/i386/i386bsd.h, + config/m68k/apollo68b.mh, config/sparc/sun4os4.mh: Remove + ser-bsd.o from XDEPFILES. All the magic is now handled in + configure.in. + +Mon Apr 5 20:48:54 1993 Stu Grossman (grossman@cygnus.com) + + * config/h8500/tm-h8500.h: Clean up brain damage found by GCC. + +Fri Apr 2 08:23:14 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (xcoff_symfile_offsets): Use 0 not addr for offsets. + + * rs6000-tdep.c (frameless_function_invocation): Don't even think + about framelessness except on the innermost frame. + + * xcoffexec.c: Call fatal() not abort(). + + * stabsread.c (patch_block_stabs): If stab & no symbol, make + a LOC_OPTIMIZED_OUT symbol. + symtab.h (enum address_class): Add LOC_OPTIMIZED_OUT. + findvar.c (read_var_value), printcmd.c (address_info), + symmisc.c (print_{,partial_}symbol), c-exp.y (variable), + m2-exp.y (yylex): Deal with it. + ch-exp.y (yylex): Deal with it. + +Thu Apr 1 18:43:02 1993 Stu Grossman (grossman@cygnus.com) + + * findvar.c (value_from_register): H8500 specific, check to see + if we are looking at short pointer. If so, skip crock. + * h8500-tdep.c (h8500_frame_chain): Mask down value from + read_memory_integer() to avoid getting messed up by sign extension. + +Thu Apr 1 16:44:41 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * sparc-tdep.c (in_solib_trampoline), symfile.c (find_pc_section): + ifdef protect using BAD_RICH_HACK. This should be removed soon. + * config/sparc/tm-sun4sol2.h (BAD_RICH_HACK): define. + +Thu Apr 1 09:01:38 1993 Jim Kingdon (kingdon@cygnus.com) + + * i960-pinsn.c, a29k-pinsn.c: Much abridged, just use libopcodes.a. + + * core.c (dis_asm_print_address): New function. + + * core.c (dis_asm_read_memory): Reinstate 4th arg. The prototype + has been fixed. + +Thu Apr 1 09:34:43 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c (bpstat_print, bpstat_stop_status): Change to walk the + entire breakpoint chain and print only the first entry that needs to + be printed and needs to be stopped for. Fixes problems with printing + of multiple breakpoints with different conditions. + * breakpoint.c (print_it_done): Renamed from print_it_noop as it + effectively stops printing of the breakpoint chain. + * breakpoint.c (print_it_noop): New routine to print nothing + for this breakpoint entry and dont stop printing. + * breakpoint.c (breakpoint_re_set_one): mention the reevaluated + watchpoint only if it is enabled. + * mipsread.c (parse_procedure): Correct incorrect setjmp procedure + descriptor from the library to make backtraces through setjmp work. + * mipsread.c (fixup_sigtramp): Correct pcreg and fregoffset for + sigtramp. + * mips-tdep.c (read_next_frame_reg): Provide correct values for + all registers saved within sigtramp, cleanup. + +Wed Mar 31 12:52:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * sparc-pinsn.c: Much abridged, just calls version in libopcodes.a. + +Wed Mar 31 21:23:41 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * core.c (dis_asm_read_memory): drop fourth arg which conflicts + with prototype in ../include/dis-asm.h. + +Wed Mar 31 12:52:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * core.c (dis_asm_{read_memory,memory_error}): New functions. + m68k-pinsn.c, h8500-tdep.c, i386-pinsn.c, mips-pinsn.c, z8k-tdep.c: + Use read_memory_func interface to disassembler. + +Tue Mar 30 15:46:14 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + Teach sparc solaris to next over shared library functions. + * solib.[hc] (find_pc_section_from_so_list): new function and + prototype. + * sparc-tdep.c (in_solib_trampoline): new function. + * symfile.[hc] (find_pc_section): new function and prototypes. + * target.[hc] (find_pc_section_from_targets): new function and + prototypes. + * config/sparc/tm-sun4sol2.h (IN_SOLIB_TRAMPOLINE): redefine to + in_solib_trampoline. + +Tue Mar 30 08:06:24 1993 Jim Kingdon (kingdon@cygnus.com) + + * infrun.c (wait_for_inferior): Revise comment. + + * command.c (do_setshow_command): Use %u with var_{u,z}integer. + + * command.{c,h}: New var_type var_integer. + main.c: Use it for history_size. + + * rs6000-tdep.c, xcoffexec.c, config/rs6000/xm-rs6000.h, breakpoint.c: + Lint and byte-order fixups. + + * breakpoint.c (print_it_normal): Return 0 after hitting watchpoint. + + * breakpoint.h (bpstat): New field print_it. + breakpoint.c (bpstat_print): Use it. + (print_it_normal): New function (from old bpstat_print code). + (bpstat_{alloc,stop_status}): Set print_it field. + + * breakpoint.c (bpstat_stop_status): Use catch_errors when + evaluating watchpoint condition, via new function watchpoint_check. + Also stop if watchpoint disabled due to leaving its block. + + * findvar.c [REG_STRUCT_HAS_ADDR]: Add comment. + +Tue Mar 30 00:14:38 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-pinsn.c: Add missing include of dis-asm.h. + +Mon Mar 29 15:03:25 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (clean, distclean, realclean): Recursively apply + to subdirs first, rather than last. This avoids, for example, + Makefile being removed in a parent directory before the recursive + make is run. + + * alldeps.mak, depend: Update for below changes. + + * config/m68k/tm-m68k.h: Renamed from config/m68k/tm-68k.h. + * m68k/{tm-3b1.h, tm-altos.h, tm-amix.h, tm-es1800.h, + tm-hp300bsd.h, tm-hp300hpux.h, tm-isi.h, tm-news.h, tm-os68k.h, + tm-st2000.h, tm-sun2.h, tm-sun3.h, tm-vx68.h}: Include tm-m68k.h + instead of tm-68k.h. + * Makefile.in (HFILES): tm-68k.h renamed to tm-m68k.h. + * README, a29k-pinsn.c, m68k-pinsn.c, m68k-stub.c, remote-vx.c, + m68k/{altos.mh, altos.mt, apollo68b.mh, nm-apollo68b.h, + nm-hp300bsd.h, config/m68k/xm-apollo68b.h}: Map '68k' to 'm68k'. + * a29k/tm-a29k.h, doc/gdbint.texinfo: Account for renaming of + tm-68k.h to tm-m68k.h. + * m68k/m68k-fp.mt (TM_FILE): tm-68k-fp.h renamed to tm-m68k-fp.h. + * m68k/m68k-nofp.mt (TM_FILE): tm-68k-nofp.h renamed to + tm-m68k-nofp.h. + + * config/a29k/tm-a29k.h: Renamed from config/a29k/tm-29k.h. + * a29k-pinsn.c: Renamed from am29k-pinsn.c. + * a29k-tdep.c: Renamed from am29k-tdep.c. + * remote-eb.c, config/a29k/tm-ultra3.h: Include renamed tm-a29k.h. + * remote-monitor.c, remote-st2000.c, config/a29k/{nm-ultra3.h, + tm-a29k.h, xm-ultra3.h}, config/romp/rtbsd.mh, doc/gdbinv-s.texi, + testsuite/gdb.t15/funcargs.exp, testsuite/gdb.t17/callfuncs.exp: + Map '29k' to 'a29k'. + * config/a29k/{a29k-kern.mt, a29k-udi.mt, a29k.mt, ultra3.mt} + (TDEPFILES): Use renamed a29k-pinsn.o and a29k-tdep.o. + * config/a29k/{a29k-udi.mt, a29k.mt} (TM_FILE): Use renamed + tm-a29k.h. + * config/a29k/a29k-udi.mt (MT_CFLAGS): Remove TARGET_AM29K + define that does not appear anywhere else in the gdb source tree. + * doc/gdbinit.texinfo: Document renaming of tm-29k.h to tm-a29k.h. + +Mon Mar 29 13:55:29 1993 Jim Kingdon (kingdon@cygnus.com) + + * breakpoint.c: Add comments regarding breakpoint_re_set. + + * xcoffread.c (sort_syms, compare_symbols): Remove. + (xcoff_symfile_read): Use sort_all_symtab_syms from symfile.c + not our own sort_syms (it is identical). + + * xcoffread.c: Nuke NAMES_HAVE_DOT define (not used). + +Sun Mar 28 11:24:37 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c (breakpoint_re_set_one): Fix storage leak. + * breakpoint.c (enable_breakpoint): Don't enable watchpoint if it + went out of scope. + * exec.c (exec_close): Fix storage leak. + * exec.c (exec_file_command): Make sure that bfd doesn't realign the + output sections when patching an executable. + * mips-nat.c (store_inferior_registers): Use REGISTER_PTRACE_ADDR + when writing all registers. + * mips-tdep.c (mips_push_dummy_frame): Save floating point registers + at the right offset in the dummy frame. + * mipsread.c (psymtab_to_symtab_1): Do not complain for stProc, + stStaticProc and stEnd symbols as they are generated by gcc-2.x. + * mipsread.c (mipscoff_new_init): Initialize stabsread and buildsym. + +Fri Mar 26 15:25:05 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (TARFILES): Avoid trailing backslash. + +Fri Mar 26 11:29:30 1993 Jim Kingdon (kingdon@cygnus.com) + + * breakpoint.{c,h}: Add exp_string to struct breakpoint and use + it in breakpoint_re_set. + * breakpoint.c (watch_command, enable_breakpoint): Fetch lazy values. + + * rs6000-tdep.c (single_step): Misc cleanups (CORE_ADDR not int, + don't use sizeof(int) for target stuff, etc). + +Thu Mar 25 15:03:53 1993 Fred Fish (fnf@cygnus.com) + + * alldeps.mak, configure.in, i860-break.h, i860-opcode.h, + i860-pinsn.c, i860-tdep.c, config/i860/*: Remove incomplete i860 + support that can't be integrated anyway due to lack of clear + authorship. + +Thu Mar 25 12:26:50 1993 Stu Grossman (grossman@cygnus.com) + + * findvar.c (read_register, write_register): Make these capable + of reading/writing registers that are shorter than REGISTER_TYPE. + * (value_from_register): Install H8500 specific code to return + proper value when register is being used as a pointer. + * h8500-tdep.c: Remove extra defines of NUM_REGS. + (h8500_skip_prologue): Use correct lengths for LINK instructions. + (FRAME_CHAIN): Change name to h8500_frame_chain. Rewrite code to + chain frames properly by combining frame pointer with T reg. + (init_extra_frame_info): Delete. It's now a macro. + (frame_args_address): Don't add PTR_SIZE. Stack args are already + offset by the correct amount off of the frame pointer. + (register_byte): Delete. It's now a macro. + (register_raw_size, register_virtual_size): Delete. Replaced by + common routine h8500_register_size, cuz there's no difference + between the raw & virtual sizes on this machine. + (register_convert_to_raw, register_convert_to_virtual): Delete, + cuz there's no difference between the raw & virtual forms. + Replaced by memcpy in tm file. + (register_virtual_type): Rename to h8500_register_virtual_type. + Get rid of pointer pseudo-regs, use _REGNUM with all reg names. + (_initialize_h8500_tdep): Get rid of crock to ensure that GDB & + emulator have same reg offsets. This is all handled in the + simulator code now. + (h8500_trapped_internalvar): New routine to detect references to + convenience vars acting as pointer pseudo-regs. + (h8500_value_trapped_internalvar): Conjure up value of pointer + pseudo-regs. + (h8500_set_trapped_internalvar): Convert set value in real + register references. + infcmd.c (read_pc, write_pc): Add h8500 specific code to handle + code segment register. + infrun.c (proceed): Simplify. Call write_pc instead of doing it + by hand. + (wait_for_inferior): Add h8500 specific code to add stack segment + when reading SP register. + remote-sim.c (fetch_register): Spacing. + tm-h8500.h: #define GDB_TARGET_IS_H8500 to make it easier to + detect cruft. Redo all register manipulation stuff. Get rid of + pointer pseudo-regs. (INIT_EXTRA_FRAME_INFO): Adds stack segment + to frame pointer. (IS_TRAPPED_INTERNALVAL, + VALUE_OF_TRAPPED_INTERNALVAR, SET_TRAPPED_INTERNALVAR): Use these + to create internal vars for pointer pseudo-regs. + +Thu Mar 25 10:10:28 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in: Numerous small changes to macro definitions + and rules for building gdb distribution tree. Many macros + eliminated or merged, and rules simplified. + * alldeps.mak: Update. + * depend: Update. + +Wed Mar 24 13:52:29 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com) + + * Makefile.in: recurse through SUBDIRS for dvi target too + +Wed Mar 24 08:48:30 1993 Jim Kingdon (kingdon@cygnus.com) + + * Clean up xcoff relocation. + objfiles.h (struct objfiles): Add section_offsets, num_sections. + symfile.c (syms_from_objfile), xcoffread.c (xcoff_symfile_offsets): + Set them. + symtab.h (struct general_symbol_info): Add section field. + minsyms.c (prim_record_minimal_symbol{,_and_info}): Set it. + xcoffread.c: Set section for symbols and msymbols. + (struct symtab): Add block_line_section field. + buildsym.c (end_symtab): Set it. + (end_symtab and callers): Add section parameter. + objfiles.c (objfile_relocate): New funciton. + xcoffexec.c (vmap_symtab): Use it. + xcoffsolib.h (struct vmap): Remove unused fields. + config/rs6000/tm-rs6000.h, stack.c, xcoffexec.c: Remove + CORE_NEEDS_RELOCATION, symtab_relocated. + config/rs6000/tm-rs6000.h: Remove use of loadinfotext. + rs6000-tdep.c: Make loadinfotext static. + breakpoint.c (fixup_breakpoints): Doc fix. + symtab.h (struct symtab), config/rs6000/tm-rs6000.h, buildsym.c + (end_symtab): primary field replaces nonreloc. + +Tue Mar 23 00:10:53 1993 John Gilmore (gnu@cygnus.com) + + * symtab.h (struct linetable_entry): Remove confusing comment. + +Tue Mar 23 00:01:23 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: add installcheck target + +Mon Mar 22 16:17:58 1993 Fred Fish (fnf@cygnus.com) + + * config/{a29k, arm, convex, gould, h8300, i386, i860, i960, m68k, + m88k, mips, none, ns32k, pa, pyr, romp, rs6000, sparc, tahoe, vax, + z8k}: New directories to hold cpu specific configuration files. + Naming follows gcc convention. + * config/{*.mt, *.mh}: All target and host makefile fragment + config files moved to an appropriate config/ subdirectory. + * nm-*, xm-*, tm-*: All native, host, and target files, which + get linked to nm.h, xm.h, and tm.h respectively by configure, + moved to appropriate config/ subdirectory. + * nm-sysv4.h, xm-sysv4.h, tm-sysv4.h, tm-sunos.h, nm-trash.h: + Native, host, and target files that are common across more than + one cpu architecture and included by one of the configured + native, host, or target files, get moved to config directory. + * Makefile.in (INCLUDE_CFLAGS): Add -I${srcdir}/config to + pick up native, host, or target include files moved to one of + the config subdirectories, and that are included by other files. + * Makefile.in (alldeps.mak): Modify to account for new config + directory structure. + * alldeps.mak, depend: Update for new config directory structure. + * config/*/[ntx]m-*.h: Modify all files that include other + [ntx]m-*.h files to use path relative to gdb/config. I.E. + "a29k/tm-ultra3.h" includes "a29k/tm-29k.h" rather than just + "tm-29k.h". + * remote-eb.c (tm-29k.h): Include a29k/tm-29k.h. + * mipsread.c (tm-mips.h): Include mips/tm-mips.h. + * i860-pinsn.c (tm-i860.h): Include i860/tm-i860.h. + * configure.in: Default gdb_host_cpu to host_cpu, and remap + the ones where the default is not unique or different than the + config subdirectory name. Similarly, handle gdb_target_cpu. + Modify configure.in as appropriate to make use of gdb_host_cpu + and gdb_target_cpu to find makefile fragments and make links. + +Mon Mar 22 12:36:24 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c (compare_blocks): Sort blocks with the same start + address by decreasing ending address. + +Mon Mar 22 20:36:04 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (parse_procedure): Save cur_fdr accross call to + lookup_symbol as it might get clobbered by the call. + + * mipsread.c (parse_partial_symbols): Use ADD_PSYMBOL_ADDR_TO_LIST. + The previous code did not initialize the language field for the psymtab + entry. + +Sat Mar 20 00:33:39 1993 John Gilmore (gnu@cygnus.com) + + * c-exp.y (parse_number): Avoid shift warning. + * serial.h (struct ttystate): Declare empty one on DOS. + +Fri Mar 19 12:59:50 1993 Stu Grossman (grossman@cygnus.com) + + * xm-sun4os4.h: Return type of free() should be void, not int. + + * vx-share/vxWorks.h: Remove #def of NULL. + +Fri Mar 19 11:28:18 1993 Jim Kingdon (kingdon@cygnus.com) + + * tm-rs6000.h: Nuke no-op STAB_REG_TO_REGNUM. + +Fri Mar 19 07:40:09 1993 Steve Chamberlain (sac@cygnus.com) + + * z8k-tdep.c (print_insn): Include the new dis-asm header file. + +Thu Mar 18 14:26:57 1993 Per Bothner (bothner@rtl.cygnus.com) + + * ieee-float.c: Moved to ../libiberty. + * ieee-float.h: Moved to ../include. + * Makefile.in: Update accordingly. + * i386-pinsn.c (print_insn), m68k-pinsn.c (print_insn): + Convert to stubs that call disassemblers in ../opcodes/*-dis.c. + * m68k-tdep.c: Removed definition of ext_format ext_format_68881; + it is now in ../opcodes/m68881-ext.c. + * mips-tdep.c (mips_skip_prologue): Try to skip more of the + prologue (some callers _do_ care). + * mips-pinsn.c (print_insn), z8k-tdep.c (print_insn): Convert to + new interface of ../opcodes/*-dis.c. + * ch-exp.y: Add #include . + +Thu Mar 18 11:57:49 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffexec.c (exec_close): Don't close exec_bfd twice. + + * xcoffread.c (enter_line_range): endaddr is exclusive, not inclusive. + +Wed Mar 17 09:46:31 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (arrange_linetable): Use x{m,re}alloc not {m,re}alloc. + +Wed Mar 17 11:28:11 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * z8k-tdep.c (extract_return_value, write_return_value, + store_struct_return): New functions from macros in tm-z8k.h. + +Wed Mar 17 11:23:06 1993 Fred Fish (fnf@cygnus.com) + + * valops.c (value_arg_coerce): Apply temporary patch to + fix problem with coercion of array and function types when + passed as arguments to C functions, pending a more complete + review of when and how coercion should be done, depending + upon context and language. + +Wed Mar 17 09:46:31 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (MIN_TBTABSIZ): Change to 12. + + * xcoffread.c (xcoff_symfile_read): Only read stringtab and + debugsec if there are a non-zero number of symbols. + +Tue Mar 16 18:08:45 1993 John Gilmore (gnu@cygnus.com) + + * command.c (show_user): Avoid fprintf_filtered botch (AGAIN!). + +Tue Mar 16 15:18:17 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffexec.c (add_vmap): Wrap symbol read in catch_errors. + + * xcoffread.c (read_symbol_lineno): Look to end of symbols for .bf, + not just 50 symbols. + (symtbl_num_syms): New variable. + (read_xcoff_symtab): Set it. + (read_symbol_nvalue): Check for bad symno. + (read_symbol_{lineno,nvalue}, callers): Don't pass symtable; it's + always symtbl. + +Tue Mar 16 10:09:05 1993 Stu Grossman (grossman@cygnus.com) + + * config/rs6000.mh: Get rid of -Dfd_set=int crock. + This is defined in defs.h if necessary. + * vx-share/vxWorks.h: Remove #defs of min and max. + * vx-share/xdr_ld.c, vx-share/xdr_ptrace.c, + vx-share/xdr_rdb.c: include defs.h. + +Fri Mar 12 09:33:23 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (retrieve_tracebackinfo): Move assignment out + of while condition. + + * xcoffread.c (enter_line_range): complain() on bad endoffset. + xcoffread.c: Doc fixes. + +Tue Mar 9 09:56:12 1993 Jim Kingdon (kingdon@cygnus.com) + + * tm-rs6000.h (CORE_NEEDS_RELOCATION): Just call xcoff_relocate_core. + xcoffexec.c (xcoff_relocate_core): New function. + (text_adjustment): Removed. + (add_vmap): Return the vmap. + rs6000-tdep.c (add_text_to_loadinfo): No longer static. + +Fri Mar 5 05:22:46 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffsolib.h: Add objfile member to struct vmap. + xcoff{exec,solib}.c: Use it, not lookup_objfile_bfd. + xcoffexec.c (add_vmap): Allocate objfiles here. + +Sun Mar 14 02:54:15 1993 John Gilmore (gnu@cygnus.com) + + Support 68000 series without floating point. + + * configure.in (m68000-*-{aout,elf,coff}): New configs. + * tm-68k-nofp.h: New file, lacks 68881 support. + * config/m68k-nofp.mt: New file. + +Sun Mar 14 02:30:08 1993 John Gilmore (gnu@cygnus.com) + + Remove a few remaining underscore/no-underscore remnants from + config files. + + * config/{m68k-un.mt, sparc-un.mt}: Remove. + * config/m68k-noun.mt: Rename to m68k-fp.mt. + * config/sparc-noun.mt: Rename to sparc-em.mt. + * tm-68k-noun.h, tm-spc-noun.h: Remove. + * tm-68k-un.h: Rename to tm-68k-fp.h. + * tm-spc-un.h: Rename to tm-spc-em.h. + * tm-sun4sol2.h: Cleanup. + * configure.in (m68k-*, sparc-* targets): Corresponding changes. + +Sat Mar 13 14:58:22 1993 John Gilmore (gnu@cygnus.com) + + * symmisc.c (std_in, std_out, std_err): Move initializations + to runtime code, in case they aren't constant. + +Fri Mar 12 16:23:54 1993 K. Richard Pixley (rich@cygnus.com) + + * symtab.c (find_pc_symtab): some object file formats, notably + mips, have holes in the address ranges of symtabs. Change + this algorithm from first hit to tightest fit. + + * mips-tdep.c (heuristic_proc_start): if we walk the pc into the + fence post without finding the enclosing function, then print a + warning. + +Thu Mar 11 09:33:01 1993 Fred Fish (fnf@cygnus.com) + + * utils.c (fputs_demangled, fprint_symbol): Remove. + * utils.c (fprintf_symbol_filtered): New function which combines + the functionality of fputs_demangled and fprint_symbol. Uses a + caller provided language parameter to select the appropriate + demangler, and caller provided args to pass to the demangler. + * defs.h (enum language): Move further up in file so enum can + be used in prototypes. + * defs.h (fputs_demangled, fprint_symbol): Remove prototypes. + * defs.h (fprintf_symbol_filtered): Add prototype. + * c-typeprint.c (cp_type_print_method_args): Replace calls to + fputs_demangled with call to fprintf_symbol_filtered. + * cp-valprint.c (demangle.h): Include + * cp-valprint.c (cp_print_value_fields): Replace calls to + fprint_symbol with calls to fprintf_symbol_filtered. + * printcmd.c (print_frame_args): Replace call to fprint_symbol + with call to fprintf_symbol_filtered. + * stack.c (print_frame_info): Remove obsolete code so we don't + have to update fputs_demangled usage in it. + * stack.c (print_frame_info, frame_info): Add language variable + to pass to fprintf_symbol_demangled and initialize it from the + symbol's language. Replace calls to fputs_demangled with calls + to fprintf_symbol_filtered. + * symtab.c (find_methods): Replace call to fputs_demangled with + call to fprintf_symbol_filtered. + * ch-valprint.c (demangle.h): Include. + * ch-valprint.c (chill_print_value_fields): Replace call to + fprint_symbol with call to new fprintf_symbol_filtered. + +Wed Mar 10 17:37:11 1993 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump version to 4.8.2. + + * main.c (source_command): Require an explicit pathname of file + to source, since previous behavior of defaulting to gdb init file + was troublesome and undocumented. + * printcmd.c (disassemble_command): Add missing '{}' pair to + else with two statements. Bug reported by Stephane Tsacas + . + * symtab.c (find_pc_line): Don't complain about zero length or + negative length line numbers for the moment, since we may not own + the terminal when called, such as when single stepping. (FIXME) + * language.h (CAST_IS_CONVERSION): True if current language is + C++ as well as C. Fix from Peter Schauer. + * environ.c (get_in_environ, set_in_environ, unset_in_environ): + Use STREQN macro rather than bare '!strncmp()'. + * environ.c (unset_in_environ): Avoid use of memcpy on + overlapping memory regions, as suggested by Paul Eggert + . + * c-exp.y (%union struct): Remove unused ulval as suggested + by Paul Eggert . + +Mon Mar 8 19:03:06 1993 Fred Fish (fnf@cygnus.com) + + * main.c (gdbinit): Make static. + * main.c (inhibit_gdbinit): Move to file scope. + * main.c (main): Remove local inhibit_gdbinit. + * main.c (source_command): Don't source '.gdbinit' file by + default if gdb has been told to ignore it. + +Sun Mar 7 21:58:53 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (MAKEOVERRIDES): Define to be empty for GNU Make + 3.63. + +Fri Mar 5 17:39:45 1993 John Gilmore (gnu@cacophony.cygnus.com) + + * printcmd.c (print_address_symbolic): Only print if offset + is shorter than max_symbolic_offset. + (initialize_printcmd): `set print max-symbolic-offset'. + + * am29k-tdep.c (TAGWORD_ZERO_MASK): New #define. + (examine_tag): Use it. + (read_register_stack): Only look in the local registers for a + memory address if it's between rfb and rsp; go to memory otherwise. + (initialize_29k): Fix call_scratch_address doc. Remove reginv_com. + (reginv_com): Remove ancient kludge command. + +Fri Mar 5 17:16:26 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * tm-irix3.h (ZERO_REGNUM): copy this macro from tm-mips.h so that + irix4 will again compile. + + * tm-mips.h (GDB_TARGET_IS_MIPS): no longer used, now removed. + + * configure.in: accept mips-sgi-irix4* for irix4. + +Fri Mar 5 07:49:48 1993 Steve Chamberlain (sac@lisa.cygnus.com) + + * z8k-tdep.c (print_register_hook): Lint. + +Thu Mar 4 17:42:03 1993 John Gilmore (gnu@cygnus.com) + + Lint fixes from Paul Eggert (eggert@twinsun.com): + + * command.c (do_setshow_command): var_uintegers are unsigned. + * sparc-tdep.c (save_insn_opcodes, restore_insn_opcodes): + unsigned, since they use hex values with the high bit set. + +Thu Mar 4 08:22:55 1993 Fred Fish (fnf@cygnus.com) + + Fixes submitted by Karl Berry (karl@nermal.hq.ileaf.com): + * m88k-pinsn.c (sprint_address): Use SYMBOL_NAME macro to + access symbol name. + * m88k-nat-c (SXIP_OFFSET, SNIP_OFFSET, SFIP_OFFSET): Enclose + macro definitions in parenthesis. + + * dbxread.c (dbx_symfile_init): Catch the case where there is + no string table, but the only way we find out is by reading zero + bytes from EOF. + +Wed Mar 3 15:51:28 1993 Fred Fish (fnf@cygnus.com) + + * dbxread.c (dbx_symfile_init): Make size of the string table + size field a define (DBX_STRINGTAB_SIZE_SIZE). Ensure that the + offset to the string table is nonzero and handle the nonexistant + string table case, should it occur. Ensure that the string table + size read from the file is reasonable, with a minimum lower bound + of DBX_STRINGTAB_SIZE_SIZE instead of zero. + +Wed Mar 3 07:23:03 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: Changes to build testsuite correctly. + (FLAGS_TO_PASS): Added CXX and CXXFLAGS. + (CC_FOR_TARGET, CXX, CXX_FOR_TARGET): New variables. + (TARGET_FLAGS_TO_PASS): New variable. + (SUBDIRS): Added testsuite. + (all): Build testsuite using TARGET_FLAGS_TO_PASS, so that + testsuite is compiled with CC_FOR_TARGET rather than CC. + +Tue Mar 2 17:57:56 1993 Fred Fish (fnf@cygnus.com) + + * dbxread.c (dbx_symfile_init): Fix for nonexistant string table, + reported by mycroft@gnu.ai.mit.edu. + + (Ultrix 2.2 support from Michael Rendell ) + * configure.in (vax-*-ultrix2*): New triplet. + * config/vaxult2.mh: New file. + * xm-vaxult2.h: New file. + + * c-exp.y (parse_number): Change high_bit to unsigned. + * demangle.c: Change all references to cfront to ARM, since the + actual algorithm is the one specified in the Annotated Reference + Manual. This was confusing users into thinking that full cfront + support was implemented. + * dwarfread.c (CFRONT_PRODUCER): Remove, was never really used. + * eval.c (evaluate_subexp): For STRUCTOP_PTR pass the arg type + directly to lookup_struct_elt_type, which will do the + dereferencing itself. + * gdbtypes.c (lookup_struct_elt_type): Expand comments. Fix + NULL dereferencing bug for unnamed structs, comment out + questionable code. + +Mon Mar 1 17:54:41 1993 John Gilmore (gnu@cygnus.com) + + * coffread.c (process_coff_symbol): Change PCC argument correction + so that it only happens on big-endian targets; so that it only + happens if the short or char argument is aligned on an int + boundary; and so that it changes the location, rather than the + type, of the argument. These changes tend to parallel similar + (old) changes in stabsread.c. + + * coffread.c (coff_read_enum_type): Use the specified size for + enums, don't assume that they are int-sized. + + * c-valprint.c (c_val_print): Don't assume enums are the same as + ints. + + * coredep.c: Handle NO_PTRACE_H in coredep.c. Fix by Michael + Rendell, . + +Mon Mar 1 09:25:57 1993 Fred Fish (fnf@cygnus.com) + + * language.h (local_decimal_format_custom): Add prototype. + * language.c (local_decimal_format_custom): Add function, bug + reported by Robert R. Henry (rrh@tera.com). + +Fri Feb 26 18:33:18 1993 John Gilmore (gnu@cacophony.cygnus.com) + + * xcoffexec.c (vmap_ldinfo): Fix "/" for '/' typo, reported + by Josef Leherbauer, joe@takeFive.co.at. + +Wed Feb 24 19:17:11 1993 John Gilmore (gnu@cacophony.cygnus.com) + + * symfile.c (syms_from_objfile), tm-29k.h, tm-3b1.h, tm-68k-un.h, + tm-altos.h, tm-arm.h, tm-convex.h, tm-es1800.h, tm-h8300.h, + tm-hp300bsd.h, tm-hp300hpux.h, tm-hppa.h, tm-i386bsd.h, + tm-i386v.h, tm-i960.h, tm-irix3.h, tm-isi.h, tm-linux.h, + tm-m88k.h, tm-merlin.h, tm-mips.h, tm-news.h, tm-np1.h, tm-pn.h, + tm-pyr.h, tm-rs6000.h, tm-spc-un.h, tm-sun386.h, tm-sunos.h, + tm-symmetry.h, tm-sysv4.h, tm-tahoe.h, tm-umax.h, tm-vax.h, + tm-vx68.h, tm-z8k.h: Remove remnants of NAMES_HAVE_UNDERSCORE. + +Wed Feb 24 07:41:15 1993 Fred Fish (fnf@cygnus.com) + + * symtab.h (SYMBOL_INIT_DEMANGLED_NAME): Initialize contents + of demangled name fields to NULL if no demangling exists for + a symbol. SYMBOL_INIT_LANGUAGE_SPECIFIC does this for new + symbols if their language is known at the time they are created, + but sometimes the language is not known until later. + + * ch-typeprint.c (chill_print_type_base): Name changed to + chill_type_print_base to match pattern for C and C++ names. + * ch-typeprint.c (chill_print_type): Change "char" to "CHAR" + to be consistent with other usages. + * ch-typeprint.c (chill_type_print_base): Add support for + printing Chill STRUCT types. + * ch-valprint.c: Include values.h. + * ch-valprint.c (chill_print_value_fields): New function and + prototype for printing Chill STRUCT values. + * ch-valprint.c (chill_val_print): Fix call to val_print_string + that was being called with two args instead of three. + * ch-valprint.c (chill_val_print): Call chill_print_value_fields + to print Chill STRUCT values. + +Tue Feb 23 18:58:11 1993 Mike Werner (mtw@poseidon.cygnus.com) + + * configure.in: added testsuite to configdirs. + +Tue Feb 23 11:46:11 1993 Mike Stump (mrs@cygnus.com) + + * doc/stabs.texi: The `this' pointer is now known by the name + `this' instead of `$t'. + +Tue Feb 23 11:21:33 1993 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (read_tag_string_type): Rewrite to allow forward + references of TAG_string_type DIEs in user defined types. + * ch-lang.c (chill_create_fundamental_type): Track compiler + change that now emits debugging info with the type long for Chill + longs. + +Mon Feb 22 15:21:54 1993 Ian Lance Taylor (ian@cygnus.com) + + * remote-mips.c: New file; implements MIPS remote debugging + protocol. + * config/idt.mt: New file; uses remote-mips.c + * configure.in (mips-idt-ecoff): New target; uses idt.mt. + + * mips-tdep.c (mips_fpu): New variable; controls use of MIPS + floating point coprocessor. + (mips_push_dummy_frame): If not mips_fpu, don't save floating + point registers. + (mips_pop_frame): If not mips_fpu, don't restore floating point + registers. + (_initialize_mips_tdep): New function; let the user reset mips_fpu + variable. + * tm-mips.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): If not + mips_fpu, don't use fp0 as floating point return register. + (FIX_CALL_DUMMY): If not mips_fpu, don't save floating point + registers. + +Mon Feb 22 07:54:03 1993 Mike Werner (mtw@poseidon.cygnus.com) + + * gdb/testsuite: made modifications to testcases, etc., to allow + them to work properly given the reorganization of deja-gnu and the + relocation of the testcases from deja-gnu to a "tool" subdirectory. + +Sun Feb 21 10:55:55 1993 Mike Werner (mtw@poseidon.cygnus.com) + + * gdb/testsuite: Initial creation of gdb/testsuite. + Migrated dejagnu testcases and support files for testing nm to + gdb/testsuite from deja-gnu. These files were moved "as is" + with no modifications. This migration is part of a major overhaul + of dejagnu. The modifications to these testcases, etc., which + will allow them to work with the new version of dejagnu will be + made in a future update. + +Fri Feb 19 18:36:55 1993 John Gilmore (gnu@cygnus.com) + + * NEWS: Add reminders for next release. + +Fri Feb 19 10:01:39 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c (parse_lines): Correct check for files compiled with + -g1. + +Fri Feb 19 05:56:15 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): 4.8.1 to distinguish local versions. + +Fri Feb 19 01:32:58 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): GDB-4.8 release! + * README, NEWS: Update for release. + +Thu Feb 18 22:44:40 1993 Stu Grossman (grossman@cygnus.com) + + * am29k-pinsn.c (print_insn): Minor nits with const. + * am29k-tdep.c: More minor nits with arg types for + supply_register, NULL vs. 0, read_register_gen, & reginv_com. + +Thu Feb 18 22:38:03 1993 John Gilmore (gnu@cygnus.com) + + * gcc.patch: Update for a different GCC (G++) bug. + * main.c (print_gdb_version): Update copyright year to 1993. + * nm-hp300bsd.h: Decide whether this is BSD 4.3 or 4.4, + conditionalize this file on it. FIXME, right way is to split + these into two config files. + (ATTACH_DETACH): Define for BSD 4.4 + (PTRACE_ARG_TYPE): caddr_t for BSD 4.4, unset for 4.3. + (U_REGS_OFFSET): Revise for 4.4. + (REGISTER_U_ADDR): Separate for 4.4, but it doesn't work yet. + * xm-hp300bsd.h: Move definitions of UINT_MAX, INT_MAX, INT_MIN, + LONG_MAX into this file to avoid cpp "redefinition" warnings. + +Thu Feb 18 16:13:28 1993 K. Richard Pixley (rich@rtl.cygnus.com) + + * nm-hp300bsd.h (PTRACE_ARG3_TYPE): FSF's hp300's have int* not + caddr_t. + +Thu Feb 18 04:10:06 1993 John Gilmore (gnu@cygnus.com) + + * c-lang.c (c_printstr): Bugfix for length==0 case. + + * c-lang.c (c_printstr): If a C string ends in a null, don't + print the null. + +Thu Feb 18 02:39:21 1993 Stu Grossman (grossman at cygnus.com) + + * defs.h (STRCMP): Make it work for unsigned chars. + +Thu Feb 18 01:56:06 1993 John Gilmore (gnu@cygnus.com) + + * nm-hp300bsd.h (ATTACH_DETACH, PTRACE_ATTACH, PTRACE_DETACH): define. + * config/hp300bsd.mh (REGEX, REGEX1): Define. + * m68k-pinsn.c (BREAK_UP_BIG_DECL, AND_OTHER_PART): #if __GNUC__, + define to kludge the large opcode table into two smaller tables, + since GCC take exponential space to build the table. Lint. + (NOPCODES): Remove, use "numopcodes" from opcode/m68k.h instead. + +Wed Feb 17 19:24:40 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): Roll to 4.7.9. + * xm-hp300bsd.h: Define PSIGNAL_IN_SIGNAL_H and put a compatible + definition here, to handle both BSD 4.3 and 4.4 systems. + * mipsread.c (ZMAGIC): #undef to avoid duplicate define. + * remote.c (alarm): Move declaration to global level, before + first reference to it. + * tm-i386bsd.h (NUM_REGS): There are only eleven, not twelve. + * dbxread.c (process_one_symbol): Cast to unsigned char, not int. + +Wed Feb 17 13:40:29 1993 K. Richard Pixley (rich@cygnus.com) + + * remote.c (readchar): forward declare alarm which otherwise looks + like an undeclared variable to gcc. + + * dbxread.c (process_one_symbol): cast enum value N_SO into int + when comparing against an int. Avoids superfluous warning from + vax ultrix 4.2 cc. + + * inflow.c (set_sigint_trap): add cast to assignment from signal. + Avoids superfluous warnings from some systems and/or compilers + (like vax ultrix 4.2.) + + * language.c (struct op_print unk_op_print_tab): use the enum + values rather naked zeros as initializers. Avoids warnings from + ultrix type compilers. + +Tue Feb 16 00:53:20 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): Roll to 4.7.6. + (SFILES_SUBDIR): Add 29k-share/udi_soc. + (SFILES_SUBSUBDIR): Move 29k-share/udi files to this macro. + (alldeps.mak): Make ALLDEPFILES_SUBSUBDIR for files in sub sub dirs. + (ALLDEPFILES_SUBSUBDIR): Depend on this for deeper dep files. + (HFILES): Remove all nm-* except nm-trash.h. Add ns32k-opcode.h. + (depend): Fix bug where nm-files in config files weren't noticed. + (make-proto-gdb-1): Avoid changing directories while building new + prototype. Build SFILES_SUBSUBDIR with longer symlinks. + +Mon Feb 15 20:48:09 1993 John Gilmore (gnu@cygnus.com) + + * remote.c: Improve error recovery. Allow user to break out + of initial connection attempt with INTERRUPT. Treat a timeout + while waiting for remote packet like a retry, unless the remote + side is actively running user code. Fix a few long printf_filtered's. + + * xcoffread.c (read_xcoff_symtab): Don't use null symbol name for + trampoline symbols. + + * buildsym.c (start_subfile): Allow null file name. + +Fri Feb 12 15:46:49 1993 K. Richard Pixley (rich@cygnus.com) + + * xcoffread.c (process_xcoff_symbol, read_symbol_lineno): complain + expects a pointer to complaint rather than a complaint + structure. + (process_linenos): free the previously allocated subfile name, + then allocate the new one from the heap. + +Fri Feb 12 08:06:05 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * h8300-tdep.c, tm-h8300.h: turn off some experimental features + +Thu Feb 11 00:59:07 1993 John Gilmore (gnu@cygnus.com) + + * stabsread.c (dbx_lookup_type): Handle negative type numbers. + Previously, would bogusly index off the bottom of type_vector. + (rs6000_builtin_type): Accept type number as argument. + (read_type, case '-'): Handle negatives like any other type number. + + * symfile.c (deduce_language_from_filename): Handle null name. + + * mips-tdep.c (isa_NAN): Fix byte order dependency. + Reported by Nobuyuki Hikichi , + fixed by sato@sm.sony.co.jp. + + * xcoffread.c (parmsym): Don't use an initializer to set up + this struct symbol. Set it up in initialize_xcoffread. + (read_xcoff_symtab, xcoff_symfile_read): Surround code that only + works on real rs/6000 target with #ifndef FAKING_RS6000. + +Wed Feb 10 23:42:37 1993 John Gilmore (gnu@cygnus.com) + + * stabsread.c (rs6000_builtin_type): Move function from + xcoffread.c:builtin_type. + * xcoffread.c (builtin_type): Move to stabsread. Remove + IBM6000_HOST dependency. Move misplaced comments. + (various): Change printf's to complaints. + (patch_block_stabs, process_xcoff_symbol case C_DECL): Add + objfile argument to read_type calls under #if 0. + (process_xcoff_symbol case C_RSYM): Fix typo in #ifdef. + * xcoffexec.c (map_vmap): Don't allocate an objfile for the exec_file. + * Makefile.in: xcoffread.o is not built by default. + * xm-rs6000.h (IBM6000_HOST): Remove. + * config/rs6000.mh (NATDEPFILES): xcoffread.o is native only. + * doc/gdbint.texinfo: Eliminate IBM6000_HOST, document + IBM6000_TARGET. + +Wed Feb 10 18:31:20 1993 Stu Grossman (grossman at cygnus.com) + + * findvar.c (read_var_value): If REG_STRUCT_HAS_ADDR, then set + VALUE_LVAL to be lval_memory so that we don't try to modify wild + register numbers when user tries to modify elements in structs + passed as arguments. + * inflow.c (child_terminal_info): Move banner outside of system + specific #ifdefs. + * tm-hppa.h (REG_STRUCT_HAS_ADDR): Define this for HPPA, which + passes struct/union arguments by address. + +Wed Feb 10 15:34:46 1993 Ian Lance Taylor (ian@cygnus.com) + + * Based on patch from Kean Johnston : + * nm-i386sco4.h: New file. Like nm-i386sco.h, but define + ATTACH_DETACH, PTRACE_ATTACH and PTRACE_DETACH. + * config/i386sco4.mh (NAT_FILE): Use nm-i386sco4.h. + +Tue Feb 9 20:07:18 1993 John Gilmore (gnu@cygnus.com) + + * remote-udi.c (FREEZE_MODE): Fix && for & typo. Found and + fixed by Lynn D. Shumaker, shumaker@saifr00.cfsat.honeywell.com. + +Tue Feb 9 08:18:07 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/i386sco4.mh (MUNCH_DEFINE): Pass -p to nm to avoid bug in + cc debugging output. + +Tue Feb 9 00:19:28 1993 John Gilmore (gnu@cygnus.com) + + * stabsread.c (define_symbol): Complain about unrecognized names + that begin with CPLUS_MARKER (often '$'), but don't die. Fix + suggested by gb@cs.purdue.edu (Gerald Baumgartner). + (read_cpp_abbrev): Don't use the class name as part of the + vtable pointer member name (_vptr$) in $vf abbrevs or unrecognized + abbrevs. Inspired by Mike Tiemann. + (read_tilde_fields): Comment. Remove ancient dead code. + Remove erroneous but non-dead code. Simplify. Add complaints. + (in general): Remove extraneous (parentheses) in return + statements. + +Fri Feb 5 14:01:22 1993 John Gilmore (gnu@cygnus.com) + + * coffread.c (coff_lookup_type): Fix fencepost error reported + by Art Berggreen, . + + Fix long file name bug reported on SCO Open Desktop 2.0 by Ulf Lunde + and Dag H. Wanvik : + + * coffread.c (getfilename): Eliminate COFF_NO_LONG_FILE_NAMES + test, which is apparently left over from when we used native + include files and couldn't depend on the member names being there. + * tm-3b1.h, tm-altos.h, tm-i386v.h: Don't set it. + +Thu Feb 4 12:23:15 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c: Major overhaul to use new BFD symbol table reading + routines. Now swaps information as it is needed, rather than + swapping everything when the file is read. + +Thu Feb 4 01:52:36 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (TARDIRS): Add sparclite demo dir. + (*.tab.c): Change dependency on Makefile to depend on + Makefile.in, otherwise it always rebuilds after configuring. + Force output *.tab.c file into current directory even in "make" + versions that rewrite dependent file names used in command lines. + + * TODO: Remove some things we did. + * am29k-opcode.h, convx-opcode: Remove; now in ../include/opcode. + * os68k-xdep.c: Remove; useless file (os68k is a target only). + * convex-pinsn.c: Use ../include/opcode/convex.h. Add CONST. + * symtab.h: Eliminate unnamed unions and structs. + +Wed Feb 3 14:48:08 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in (VERSION): Roll to 4.7.5. + +Tue Feb 2 20:47:42 1993 John Gilmore (gnu@cygnus.com) + + * breakpoint.c (breakpoint_re_set_one): Handle watchpoints when + re-evaluating symbol pointers. + +Tue Feb 2 16:10:31 1993 Fred Fish (fnf@cygnus.com) + + * c-exp.y (lcurly, rcurly): New nonterminals. + * c-exp.y (exp): Use lcurly and rcurly for arrays and UNOP_MEMVAL + constructs. + * parse.c (free_funcalls): Moved prototype from parser-defs.h, + made function static. + * parse.c (struct funcall): Moved struct def from parser-defs.h. + * parse.c (funcall_chain): Moved from parser-defs.h, made static. + * parse.c (start_arglist): + * parser-defs.h (free_funcalls): Moved prototype to parse.c. + * parser-defs.h (struct funcall): Moved struct def to parse.c. + * parser-defs.h (funcall_chain): Moved to parse.c. + * printcmd.c (print_frame_nameless_args): Fix prototype. + * tm-mips.h (setup_arbitrary_frame): Fix prototype. + * tm-sparc.h (setup_arbitrary_frame): Fix prototype. + * valops.c (typecmp): Moved prototype from values.h. + * value.h (typecmp): Moved prototype to valops.c, made static. + * ch-exp.y (yylex): Change way control sequences are disabled. + +Tue Feb 2 16:11:43 1993 John Gilmore (gnu@cygnus.com) + + * tm-mips.h, tm-sparc.h: Fix thinko in SETUP_ARBITRARY_FRAME. + +Tue Feb 2 15:30:33 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c (upgrade_type): Build array types correctly, using + create_range_type and create_array_type. + +Tue Feb 2 00:19:08 1993 John Gilmore (gnu@cygnus.com) + + * remote-nindy.c: Cleanup. + + * infrun.c (wait_for_inferior): When rolling back the PC after + a breakpoint, call write_pc so that NPC gets rolled back as well + (for the 29K). + + * blockframe.c (inside_entry_file, inside_main_func, + inside_entry_func): PC of zero is always "bottom of stack". + + * printcmd.c (print_frame_args, print_frame_nameless_args): + Let print_frame_nameless_args decide whether there are any, + laying groundwork for possibly later printing 29K args for + functions where we have tag words but no symbols. + +Mon Feb 1 18:09:58 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * Makefile.in: fix GDB doc targets for new doc subdir structure + +Mon Feb 1 17:56:47 1993 John Gilmore (gnu@cygnus.com) + + * stack.c (parse_frame_specification): Parse as many arguments + as there are (up to MAXARGS). Pass all of them in argc, argv + format to SETUP_ARBITRARY_FRAME. Put the burden of checking how + many there were, onto SETUP_ARBITRARY_FRAME. + * tm-mips.h, tm-sparc.h: Corresponding changes. + * mips-tdep.c, sparc-tdep.c: Ditto. + +Mon Feb 1 17:19:37 1993 John Gilmore (gnu@cygnus.com) + + * hp300ux-nat.c: Update copyrights. + * mipsread.c (parse_partial_symbols): Complain about block + indexes that go backwards. Fix from Peter Schauer. + * symfile.c (syms_from_objfile, symbol_file_add): Allow a + symbol-file that has no linkage symbols to be read. + * tm-rs6000.h, xm-rs6000.h: (SIGWINCH_HANDLER and friends): Move + from tm- file to xm-file, since they're host dependent. + * valarith.c (value_binop): Typo. + +Mon Feb 1 16:16:59 1993 Stu Grossman (grossman at cygnus.com) + + * sparclite/aload.c: Add copyleft. + * sparclite/crt0.s: Add comment at beginning. + +Mon Feb 1 14:36:11 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * remote-z8k.c, z8k-tdep.c: support for the Z8001 and Z8002. + * parse.c (std_regs): Only declare if NO_STD_REGS is defined. + +Sun Jan 31 04:32:48 1993 Michael Tiemann (tiemann@rtl.cygnus.com) + + * values.c (value_headof): Fix typo in which VTBL and ARG were + being confused for one another. + + * valops.c (typecmp): Now static. + + * gdbtypes.c (fill_in_vptr_fieldno): Don't ignore the first + baseclass--we don't always inherit its virtual function table + pointer. + + * eval.c (evaluate_subexp): In OP_FUNCALL case, adjust `this' + pointer correctly in case value_struct_elt moves it around. + + * valops.c (typecmp): Now static. Also, now groks references + better. + + * gdbtypes.c (lookup_struct_elt_type): Pass NOERR instead of + zero on recursive call. If NAME is the name of TYPE, return TYPE. + +Sat Jan 30 19:55:52 1993 John Gilmore (gnu@cygnus.com) + + * hppah-nat.c: Eliminate and other unnecessary stuff, + to avoid "too much defining" error from native C compiler (!). + + * Makefile.in (HFILES): Add typeprint.h. + * typeprint.[ch]: Update copyrights. + +Thu Jan 28 19:09:02 1993 John Gilmore (gnu@cygnus.com) + + * Makefile.in: Update to match doc/ subdir changes. + + * config/hp300hpux.mh: No cross-host file needed, just native. + * config/go32.mh: Remove nonexistent "native" support. + + M88K fixes reported by Carl Greco, : + * tm-m88k.h (REGISTER_CONVERT_TO_RAW): Fix typo. + * m88k-tdep.c (next_insn): Lint, cleanup. + (store_parm_word): Lint. + + * README: Fix typo (reported by karl@hq.ileaf.com). + +Wed Jan 27 21:34:21 1993 Fred Fish (fnf@cygnus.com) + + * expression.h (BINOP_CONCAT): Document use for self concatenation + an integral number of times. + * language.c (binop_type_check): Extend BINOP_CONCAT for self + concatenation case. + * valarith.c (value_concat): Rewrite to support self + concatenation an integral number of times. + * Makefile.in (ch-exp.tab.c): Change "expect" message. + * ch-exp.y (FIXME's): Make all FIXME tokens distinct, to + eliminate hundreds of spurious shift/reduce and reduce/reduce + conflicts that mask the 5 real ones. + * ch-exp.y (STRING, CONSTANT, SC): Remove unused tokens. + * ch-exp.y (integer_literal_expression): Remove production, + no longer used. + +Thu Jan 21 09:58:36 1993 Fred Fish (fnf@cygnus.com) + + * eval.c (evaluate_subexp): Fix OP_ARRAY, remove code that + implied that "no side effects" was nonfunctional. + * eval.c (evaluate_subexp): Add BINOP_CONCAT case to deal with + character string and bitstring concatenation. + * expprint.c (dump_expression): Add case for BINOP_CONCAT. + * expression.h (exp_opcode): Add BINOP_CONCAT. + * gdbtypes.h (type_code): Add TYPE_CODE_BITSTRING. + * language.c (string_type): Add function to determine if a type + is a string type. + * language.c (binop_type_check): Add case for BINOP_CONCAT. + * valarith.c (value_concat): New function to concatenate two + values, such as character strings or bitstrings. + * valops.c (value_string): Remove error stub and implement + function body. + * value.h (value_concat): Add prototype. + * ch-exp.y (operand_3): Add actions for SLASH_SLASH (//). + * ch-exp.y (yylex): Recognize SLASH_SLASH. + * ch-lang.c (chill_op_print_tab): Add SLASH_SLASH (//) as + BINOP_CONCAT. + +Tue Jan 19 14:26:15 1993 Fred Fish (fnf@cygnus.com) + + * c-exp.y (exp): Add production to support direct creation + of array constants using the obvious syntax. + * c-valprint.c (c_val_print): Set printed string length. + * dwarfread.c (read_tag_string_type): New prototype and + function that handles TAG_string_type DIEs. + * dwarfread.c (process_dies): Add case for TAG_string_type + that calls new read_tag_string_type function. + * expprint.c (print_subexp): Add support for OP_ARRAY. + * gdbtypes.c (create_range_type, create_array_type): Inherit + objfile from the index type. + * ch-typeprint.c (chill_print_type): Add case for + TYPE_CODE_STRING. + * ch-valprint.c (chill_val_print): Fix case for + TYPE_CODE_STRING. + +Mon Jan 18 11:58:45 1993 Ian Lance Taylor (ian@cygnus.com) + + * mipsread.c (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, + MIPS_UNMARK_STAB, STABS_SYMBOLS): Removed; now in + include/coff/mips.h. + +Fri Jan 15 20:26:50 1993 Fred Fish (fnf@cygnus.com) + + * c-exp.y (exp:STRING): Convert C strings into array-of-char + constants with an explicit null byte terminator. OP_STRING is + now used for real string types. + * c-lang.c (builtin_type_*): Move declarations to lang.c since + they are used by all languages. + * c-lang.c (_initialize_c_language): Move initializations of + builtin_type_* to lang.c. + * c-typeprint.c (c_type_print_varspec_prefix, + c_type_print_varspec_suffix): TYPE_CODE_PASCAL_ARRAY renamed + to TYPE_CODE_STRING. + * c-valprint.c (c_val_print): Change the way character arrays + are printed as strings to be consistent with the way strings + are printed when pointer-to-char types are dereferenced. + Remove test of print_max before calling val_print_string, which + now does it's own test. + * eval.c (evaluate_subexp): Add case for OP_ARRAY. + * expprint.c (print_subexp, dump_expression): Add case for OP_ARRAY. + * expression.h (enum exp_opcode): Add OP_ARRAY and document. + * gdbtypes.c (builtin_type_*): Add declarations moved from + c-lang.c. + * gdbtypes.c (create_string_type): New function to create real + string types. + * gdbtypes.c (recursive_dump_type): TYPE_CODE_PASCAL_ARRAY + renamed to TYPE_CODE_STRING. + * gdbtypes.c (_initialize_gdbtypes): Add initializations of + builtin_type_* types moved from c-lang.c. + * gdbtypes.h (enum type_code): TYPE_CODE_PASCAL_ARRAY renamed + to TYPE_CODE_STRING. + * gdbtypes.h (builtin_type_string): Add extern declaration. + * gdbtypes.h (create_string_type): Add prototype. + * m2-lang.c (m2_create_fundamental_type): TYPE_CODE_PASCAL_ARRAY + renamed to TYPE_CODE_STRING. + * m88k-tdep.c (pushed_size): TYPE_CODE_PASCAL_ARRAY renamed to + TYPE_CODE_STRING. + * mipsread.c (_initialize_mipsread): TYPE_CODE_PASCAL_ARRAY + renamed to TYPE_CODE_STRING. + * parse.c (length_of_subexp, prefixify_subexp): Add case for + OP_ARRAY. + * printcmd.c (print_formatted): Recognize TYPE_CODE_STRING. + * typeprint.c (print_type_scalar): TYPE_CODE_PASCAL_ARRAY renamed + to TYPE_CODE_STRING. + * valops.c (allocate_space_in_inferior): New function and + prototype, using code ripped out of value_string. + * valops.c (value_string): Rewritten to use new function + allocate_space_in_inferior, but temporarily disabled until some + other support is in place. + * valops.c (value_array): New function to create array constants. + * valprint.c (val_print_string): Add comment to document use, + complete rewrite to fix several small buglets. + * value.h (value_array): Add prototype. + * value.h (val_print_string): Change prototype to match rewrite. + * ch-valprint.c (chill_val_print): Add case for TYPE_CODE_STRING. + * ch-exp.y (match_character_literal): Disable recognition of + control sequence form of character literals and document why. + +Thu Jan 14 15:48:12 1993 Stu Grossman (grossman at cygnus.com) + + * nindy-share/nindy.c: Add comments to #endif's to clarify + grouping. + + * hppa-pinsn.c (print_insn): Use read_memory_integer, instead of + read_memory to get byte order right. + * hppah-tdep.c (find_unwind_info): Don't read in unwind info + anymore. This is done in paread.c now. We expect unwind info + to hang off of objfiles, and search all of the objfiles when until + we find a match. + * (skip_trampoline_code): Cast arg to target_read_memory. + * objfiles.h (struct objfile): Add new field obj_private to hold + per object file private data (unwind info in this case). + * paread.c (read_unwind_info): New routine to read unwind info + for the objfile. This data is hung off of obj_private. + * tm-hppa.h: Define struct obj_unwind_info, to hold pointers to + the unwind info for this objfile. Also define OBJ_UNWIND_INFO to + make this easier to access. + +Wed Jan 13 20:49:59 1993 Fred Fish (fnf@cygnus.com) + + * c-valprint.c (cp_print_class_member): Add extern decl. + * c-valprint.c (c_val_print): Extract code for printing methods + and move it to cp_print_class_method in cp-valprint.c. + * c-valprint.c (c_val_print): Extract code to print strings and + move it to val_print_string in valprint.c. + * cp-valprint.c (cp_print_class_method): New function using + code extracted from c_val_print. + * valprint.c (val_print_string): New function using code + extracted from c_val_print. + * value.h (val_print_string): Add prototype. + * ch-exp.y (CHARACTER_STRING_LITERAL): Set correct token type. + * ch-exp.y (literal): Add action for CHARACTER_STRING_LITERAL. + * ch-exp.y (tempbuf, tempbufsize, tempbufindex, GROWBY_MIN_SIZE, + CHECKBUF, growbuf_by_size): New variables, macros, and support + functions for implementing a dynamically expandable temp buffer. + * ch-exp.y (match_string_literal): New lexer function. + * ch-exp.y (match_bitstring_literal): Dynamic buffer code + removed and replaced with new CHECKBUF macro. + * ch-exp.y (yylex): Call match_string_literal when appropriate. + * ch-valprint.c (ch_val_print): Add code for TYPE_CODE_PTR. + +Sat Jan 9 19:59:33 1993 Stu Grossman (grossman at cygnus.com) + + * Makefile.in: Add info for paread.o. + * config/hppahpux.mh: Add paread.o to NATDEPFILES. + + * blockframe.c (frameless_look_for_prologue): Correct the + comment. + * gdbtypes.h, gdbtypes.c: Use const in decl of + cplus_struct_default, now that pa-gas assembler has been fixed. + * hppah-nat.c: Formatting. + * hppah-tdep.c: Remove lots of useless externs for variables we + don't use. + * (find_unwind_entry): Speed up by using binary search, and a one + entry cache. + * (rp_saved): New routine to see what unwind info says about RP + being saved on the stack frame. + * (frame_saved_pc): Look for prologue to see if we need to + examine the stack for the saved RP or not. + * (init_extra_frame_info): Check for prologue, instead of + framesize to determine if we are frameless or not. + * (frame_chain_valid): Stop backtraces when we run into _start. + * (push_dummy_frame): Reformat to make more readable. + * (find_dummy_frame_regs): ditto. + * (hp_pop_frame): ditto. + * (hp_restore_pc_queue): small cleanup. + * (hp_push_arguments): ditto. + * (pa_do_registers_info): ditto. + * (skip_prologue): New routine created from SKIP_PROLOGUE macro. + * tm-hppa.h: Move contents of SKIP_PROLOGUE into hppah-tdep.c. + * Define FRAME_CHAIN_VALID. + * Turn on BELIEVE_PCC_PROMOTION so that we can access char args + passed to functions. + + * paread.c (pa_symtab_read): Use new bfd conventions for + accessing linker symbol table. + * (pa_symfile_init): Access embedded STAB info via BFD section + mechanism and related macros. + + +Sat Jan 9 19:31:43 1993 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c: Use a seperate stack for our traps. + * Handle recursive traps. + * Remove all trap init code. This needs to be done by the + environment. + * (set_mem_fault_trap): Call exceptionHandler() to setup this + trap. + * (handle_exception): See if we are at breakinst, if so, then + advance PC sp that users can just step out of breakpoint(). + * (case 'G'): Don't let GDB hack CWP. Also, copy saved regs to + new place if SP has changed. + * (case 's'): Get rid of this, we can't do it yet. + * (case 't'): New command to test any old random feature. + * (case 'r'): New command to reset the system. + * (breakpoint): Add label to breakpoint trap instruction so that + handle_exception() can detect where we are and get past the + breakpoint trivially. + +Thu Jan 7 13:33:06 1993 Ian Lance Taylor (ian@cygnus.com) + + * mips-pinsn.c: Actual work now done by opcodes/mips-dis.c. + +Thu Jan 7 09:21:51 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: recognise all sparclite variants + +Wed Jan 6 10:14:51 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * symfile.c: If O_BINARY isn't defined, set it to 0, call openp for + binary files oring in the right bit. + + * main.c, source.c, state.c, symmisc.c: use macros defined in + fopen-{bin|both} when fopening files. + +Wed Jan 6 08:19:11 1993 Fred Fish (fnf@cygnus.com) + + * defs.h (HOST_CHAR_BIT): New macro, defaults to either CHAR_BIT + from a configuration file (typically including ), or to + TARGET_CHAR_BIT if CHAR_BIT is not defined. + * eval.c (evaluate_subexp): Use new BYTES_TO_EXP_ELEM macro. + * eval.c (evaluate_subexp): Add case for OP_BITSTRING. + * expprint.c (print_subexp): Use new BYTES_TO_EXP_ELEM macro. + * exppritn.c (print_subexp, dump_expression): Add case for + OP_BITSTRING. + * expression.h (OP_BITSTRING): New expression element type for + packed bitstrings. + * expression.h (EXP_ELEM_TO_BYTES, BYTES_TO_EXP_ELEM): New + macros to convert between number of expression elements and bytes + to store that many elements. + * i960-tdep.c (leafproc_return): Use new macros to access + minimal symbol name and address fields. + * m88k-pinsn.c (sprint_address): Use new macros to access + minimal symbol name and address fields. + * nindy-tdep.c (nindy_frame_chain_valid): Use new macro to access + minimal symbol address field. + * parse.c (write_exp_elt, write_exp_string, prefixify_expression, + parse_exp_1): Use new EXP_ELEM_TO_BYTES macro. + * parse.c (write_exp_string, length_of_subexp, prefixify_expression): + Use new BYTES_TO_EXP_ELEM macro. + * parse.c (write_exp_bitstring): New function to write packed + bitstrings into the expression element vector. + * parse.c (length_of_subexp, prefixify_subexp): Add case for + OP_BITSTRING. + * parser-defs.h (struct stoken): Document that it is used for + OP_BITSTRING as well as OP_STRING. + * parser-defs.h (write_exp_bitstring): Add prototype. + * ch-exp.y (BIT_STRING_LITERAL): Change token type to sval. + * ch-exp.y (NUM, PRED, SUCC, ABS, CARD, MAX, MIN, SIZE, UPPER, + LOWER, LENGTH): New tokens for keywords. + * ch-exp.y (chill_value_built_in_routine_call, mode_argument, + upper_lower_argument, length_argument, array_mode_name, + string_mode_name, variant_structure_mode_name): New non-terminals + and productions. + * ch-exp.y (literal): Useful production for BIT_STRING_LITERAL. + * ch-exp.y (match_bitstring_literal): New lexer support function + to recognize bitstring literals. + * ch-exp.y (tokentab6): New token table for 6 character keywords. + * ch-exp.y (tokentab5): Add LOWER, UPPER. + * ch-exp.y (tokentab4): Add PRED, SUCC, CARD, SIZE. + * ch-exp.y (tokentab3): Add NUM, ABS, MIN, MAX. + * ch-exp.y (yylex): Check tokentab6. + * ch-exp.y (yylex): Call match_bitstring_literal. + +Mon Jan 4 16:54:18 1993 Fred Fish (fnf@cygnus.com) + + * xcoffexec.c (vmap_symtab): Use new macros to access minimal + symbol name and value fields. + + * c-exp.y (yylex): Make static, to match prototype and other + -exp.y files. + + * expression.h (exp_opcode): Add BINOP_MOD. + * eval.c (evaluate_subexp): Handle new BINOP_MOD. + * expprint.c (dump_expression): Handle new BINOP_MOD. + * language.c (binop_type_check): Handle new BINOP_MOD. + * main.c (float_handler): Re-enable float handler when hit. + * valarith.c (language.h): Include, need current_language. + * valarith.c (TRUNCATION_TOWARDS_ZERO): Define default macro + for integer divide truncates towards zero for negative results. + * valarith.c (value_x_binop): Handle BINOP_MOD if seen. + * valarith.c (value_binop): Allow arithmetic operations on + TYPE_CODE_CHAR variables. Add case to handle new BINOP_MOD. + * ch-exp.y (operand_4): Add useful actions for MOD and REM. + * ch-exp.y (tokentab3): Add MOD and REM. + * ch-exp.y (yylex): Set innermost_block for symbols found + in local scopes. Return LOCATION_NAME for local symbols. + * ch-lang.c (chill_op_print_tab): Fix MOD entry to use + BINOP_MOD instead of BINOP_REM. Add REM entry, using BINOP_REM. + +Mon Jan 4 07:35:31 1993 Steve Chamberlain (sac@wahini.cygnus.com) + + * command.c (shell_escape, make_command, _initialize_command): + don't create or use fork if CANT_FORK is defined. + * serial.h, ser-go32.c: now compiles, but "the obvious problems of + code written for the IBM PC" remain. + * xm-go32.h: define CANT_FORK + +Sun Jan 3 14:24:56 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * remote-sim.c: first attempt at general simulator interface + * remote-hms.c: whitespace + * h8300-tdep.c: (h8300_skip_prologue, examine_prologue): + understand new stack layout. (print_register_hook): print ccr + register in a fancy way. + +Sun Jan 3 14:16:10 1993 Fred Fish (fnf@cygnus.com) + + * eval.c (language.h): Include. + * eval.c (evaluate_subexp_with_coercion): Only coerce arrays + to pointer types when the current language is C. It loses for + other languages when the lower index bound is nonzero. + * valarith.c (value_subscript): Take array lower bounds into + account when performing subscripting operations. + * valops.c (value_coerce_array): Add comment describing why + arrays with nonzero lower bounds are dealt with in value_subscript, + rather than in value_coerce_array. + +Sat Jan 2 12:16:41 1993 Fred Fish (fnf@cygnus.com) + + * ch-exp.y (FLOAT_LITERAL): Add token. + * ch-exp.y (literal): Add FLOAT_LITERAL. + * ch-exp.y (match_float_literal): New lexer routine. + * ch-exp.y (convert_float): Remove. + * ch-exp.y (yylex): Call match_float_literal. + * ch-exp.y (yylex): Match single '.' after trying + to match floating point literals. + + * eval.c (evaluate_subexp): Add case MULTI_SUBSCRIPT. + * expprint.c (print_subexp): Rename BINOP_MULTI_SUBSCRIPT to + MULTI_SUBSCRIPT. + * expprint.c (dump_expression): New function for dumping + expression vectors during gdb debugging. + * expression.h (BINOP_MULTI_SUBSCRIPT): Name changed to + MULTI_SUBSCRIPT and moved out of BINOP range. + * expression.h (DUMP_EXPRESSION): New macro that calls + dump_expression if DEBUG_EXPRESSIONS is defined. + * m2-exp.y (BINOP_MULTI_SUBSCRIPT): Changed to MULTI_SUBSCRIPT. + * parse.c (length_of_subexp, prefixify_subexp): Change + BINOP_MULTI_SUBSCRIPT to MULTI_SUBSCRIPT. + * parse.c (parse_exp_1): Call DUMP_EXPRESSION before and after + prefixify'ing the expression. + * printcmd.c (print_command_1): Add comment. + * ch-exp.y (expression_list): Add useful actions. + * ch-exp.y (value_array_element): Add useful actions. + * ch-exp.y (array_primitive_value): Add production. + * ch-exp.y (yylex): Recognize ',' as a token. + +Fri Jan 1 18:22:02 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: pass prefix and exec_prefix via FLAGS_TO_PASS, + POSIXize the recursive makes (make [variable assignments] target{s}) + +Fri Jan 1 11:56:23 1993 Fred Fish (fnf@cygnus.com) + + * tm-sun4sol2.h (CPLUS_MARKER): Remove, now set in tm-sysv4.h. + * tm-sysv4.h (CPLUS_MARKER): By default, g++ uses '.' as the + CPLUS_MARKER for all SVR4 systems, so follow suit. + * defs.h (strdup_demangled): Remove prototype. + * dwarfread.c (enum_type, synthesize_typedef): Use new macro + SYMBOL_INIT_LANGUAGE_SPECIFIC. + * dwarfread.c (new_symbol): Use SYMBOL_INIT_DEMANGLED_NAME. + * minsyms.c (install_minimal_symbols, prim_record_minimal_symbol, + prim_record_minimal_symbol_and_info): Use new macro + SYMBOL_INIT_LANGUAGE_SPECIFIC. + * minsyms.c (install_minimal_symbols): Use new macro + SYMBOL_INIT_DEMANGLED_NAME. + * stabsread.c (define_symbol): Use new macro + SYMBOL_INIT_DEMANGLED_NAME. + * symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list): + Use new macro SYMBOL_INIT_DEMANGLED_NAME. + * symfile.h (ADD_PSYMBOL_VT_TO_LIST): Use new macro + SYMBOL_INIT_DEMANGLED_NAME. + * symmisc.c (dump_msymbols, dump_symtab, print_partial_symbol): + SYMBOL_DEMANGLED_NAME now tests language itself. + * symtab.c (COMPLETION_LIST_ADD_SYMBOL): SYMBOL_DEMANGLED_NAME + now tests language itself. + * symtab.h (SYMBOL_CPLUS_DEMANGLED_NAME): New macro that does + what SYMBOL_DEMANGLED_NAME used to do, directly access the C++ + mangled name member in the language dependent portion of a symbol. + * symtab.h (SYMBOL_DEMANGLED_NAME): New macro that returns the + mangled name member appropriate for a symbol's language. + * symtab.h (SYMBOL_SOURCE_NAME, SYMBOL_LINKAGE_NAME, + SYMBOL_MATCHES_NAME, SYMBOL_MATCHES_REGEXP): + SYMBOL_DEMANGLED_NAME now tests language itself. + * symtab.h (SYMBOL_INIT_LANGUAGE_SPECIFIC): New macro that + initializes language dependent portion of symbol. + * symtab.h (SYMBOL_INIT_DEMANGLED_NAME): New macro that + demangles and caches the demangled form of symbol names. + * utils.c (fputs_demangled, fprint_symbol): Use current language + to select an appropriate demangling algorithm. + * utils.c (strdup_demangled): Remove, no longer used. + * symtab.h (SYMBOL_CHILL_DEMANGLED_NAME): New macro that directly + access the Chill mangled name member in the language dependent + portion of a symbol. + * ch-lang.c (chill_demangle): New function, simple demangler. + * defs.h (chill_demangle): Add prototype. + * symtab.h (language_dependent_info): Add struct for Chill. + +For older changes see ChangeLog-92 + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-94 b/gdb/ChangeLog-94 new file mode 100644 index 0000000000..a691ace100 --- /dev/null +++ b/gdb/ChangeLog-94 @@ -0,0 +1,5705 @@ +Fri Dec 30 17:58:55 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/m68k/tm-est.h: Remove cruft. + + +Thu Dec 29 22:40:00 1994 Jeff Law (law@snake.cs.utah.edu) + + * Allow up to 10 whitespace separated arguments to user defined + commands. + * top.c (struct user_args): Structure for holding arguments to + user defined commands. + (print_command_line): Delete unused "tmp_chain" variable. Clean + up flow control by having cases exit in the same manner. + Before executing a command or evaluating an expression, substitute + the current $arg0..$arg9 values if the command/expression uses them. + (arg_cleanup): New function. + (setup_user_args, locate_arg, insert_args): Likewise. + (execute_user_command): Allow arguments to user defined commands. + + * Allow if/while commands to be used within a breakpoint command + list. + * breakpoint.c (bpstat_do_actions): Call execute_control_command + rather than execute_command (passes entire command structure rather + than just the command line text). + (breakpoint_1): Use "print_command_line" to print a breakpoint + command line (including control structures). + * gdbcmd.h (execute_control_command): Provide extern decl. + (print_command_line): Likewise. + * top.c (execute_control_command): No longer static. + (print_command_line): New function to recursively print a command + line, including control structures. + +Thu Dec 29 18:18:31 1994 Rob Savoye + + * hppa-tdep.c (pa_print_registers): Extract register values stored + in big endian format on big and little endian hosts. + + * array-rom.c: Support for Array Tech LSI33k based RAID disk + controller board. + * configure.in: Recognize "mips*-*-ecoff*" rather than + "mips*-idt-ecoff*" so it'll work for the LSI33k. + + * monitor.[ch], op50-rom.c, rom68k-rom.c, w89k-rom.c: Add support + to monitor config structure for supported baud rates for a target + and variable stop bits. + * monitor.c (monitor_fetch_register): Store register values in big + endian format on any host. + +Wed Dec 28 19:27:22 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (hppa_fix_call_dummy): Prefer import stubs over + export stubs and actual shared library functions so that lazy + binding works correctly. Try both __d_plt_call and __gcc_plt_call + trampolines for calling import stubs. + +Wed Dec 28 15:29:02 1994 Stan Shebs + + * a29k-tdep.c (pop_frame): Fix a variable name. + +Wed Dec 28 12:21:39 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (push_dummy_frame): Refine code to determine what + space ID to place in the stack & inf_status structure. + (hppa_pop_frame): Don't walk through trampoline code if popping a + call dummy frame. + (hppa_fix_call_dummy): Call the stack dummy directly if the + current PC is in a shared library. + + * hppa-tdep.c (push_dummy_frame): Return type is void. Clear + in_syscall bit in flags. Don't depend on the PC queue registers + when in_syscall is set, they're not valid. + * config/pa/tm-hppa.h (PUSH_DUMMY_FRAME): Pass inf_status down to + push_dummy_frame. + (SR4_REGNUM): Define. + + * hppa-tdep.c: Misc. lint changes. + +Tue Dec 27 12:32:43 1994 Jeff Law (law@snake.cs.utah.edu) + + * breakpoint.c (watchpoint_check): Don't bother restoring the + "selected" frame anymore, it's not necessary. Initialize the + frame cache before trying to find the current frame in the frame + chain. + + * somsolib.c (som_solib_add): Return without loading any shared + libraries if symfile_objfile is NULL. + (som_solib_create_inferior_hook): Likewise. + +Fri Dec 23 17:03:13 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote-est.c: New file supports EST-300 CPU32 background + mode ICE. + * remote-utils.c (sr_com): Call registers_changed. + * configure.in (m68*-*-est*): New configuration. + * config/m68k/tm-est.h: New file. + +Fri Dec 23 16:18:50 1994 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (CLIBS): Put LIBIBERTY last. + +Thu Dec 22 09:27:16 1994 Jim Kingdon + + * ser-tcp.c (tcp_open): Cast to struct sockaddr when passing to + function which expects that. + +Thu Dec 22 13:25:33 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * nlm/gdbserve.c, nlm/ppc.c, nlm/ppc.h: Don't try to use + ALTERNATE_MEM_FUNCS. + +Wed Dec 21 14:00:26 1994 Rob Savoye + + * monitor.c: Now supports xmodem as a remoteloadprotocol. + +Tue Dec 20 23:01:17 1994 Stu Grossman (grossman@cygnus.com) + + * config/mips/xm-irix4.h, config/mips/xm-irix5.h: #define + _BSD_COMPAT to get reliable signal handling. + +Tue Dec 20 11:44:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * sparc-tdep.c, a29k-tdep.c, findvar.c (get_saved_register): + if !target_has_registers, call error(). + + * value.h: Remove obsolete comments about FRAME vs struct + frame_info *. + + +Sun Dec 18 11:52:58 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * sparc-tdep.c (sparc_pop_frame): Remove erroneous extra argument + to write_register. + +Sat Dec 17 13:23:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * tm-sparc.c (EXTRA_FRAME_INFO): New field sp_offset. + * sparc-tdep.c (sparc_init_extra_frame_info): Set it. + (examine_prologue, sparc_init_extra_frame_info): Use ->frame plus + ->sp_offset to compute the address something is saved at, not + ->bottom. + + * sparc-tdep.c (get_saved_register): New function. + * tm-sparc.h: Define GET_SAVED_REGISTER; don't define + FRAME_FIND_SAVED_REGS, HAVE_REGISTER_WINDOWS or REGISTER_IN_WINDOW_P. + * stack.c (frame_info): Add comment about what to do if + FRAME_FIND_SAVED_REGS is not defined. + + * sparc-tdep.c (sparc_init_extra_frame_info): Set ->frame field + here. Get it right for flat frames. + * sparc-tdep.c (sparc_frame_chain): Instead of returning + meaningful value for ->frame field, just return dummy value. + This change is needed because the old code didn't deal with mixed + flat and non-flat frames. + + * sparc-tdep.c (sparc_pop_frame): Write SP_REGNUM from + frame->frame, don't go through saved regs for this. + + * sparc-tdep.c: Move guts of skip_prologue to new function + examine_prologue. Check for flat prologue and set is_flat. + Provide the caller with the information about what is saved where + if desired. + (skip_prologue, sparc_frame_find_saved_regs): Call examine_prologue. + + * sparc-tdep.c: Replace union sparc_insn_layout and anonymous + union in isannulled, which won't work on a little-endian host, + with X_* macros. + + * sparc-tdep.c (sparc_frame_saved_pc): If addr == 0, the saved PC + is still in %o7. + + * config/sparc/tm-sparc.h: Define INIT_FRAME_PC and + INIT_FRAME_PC_FIRST. + * blockframe.c (get_prev_frame_info): Modify comments regarding + INIT_FRAME_PC_FIRST and the sparc. + + * sparc-tdep.c (single_step): Use 4 not sizeof (long) for size of + instruction. + +Sat Dec 17 02:33:37 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-typeprint.c (c_type_print_base): Use `show' of -1 to print + the return type of methods to avoid infinite loops with anonymous + types. + * valops.c (search_struct_field): Handle anonymous unions. + + * sparc-tdep.c (sunos4_skip_trampoline_code): New function + to correctly handle steps into -g compiled PIC objects in the + main executable. + * config/sparc/tm-sun4os4.h (SKIP_TRAMPOLINE_CODE): + Redefine to use sunos4_skip_trampoline_code. + + * dwarfread.c (DWARF_REG_TO_REGNUM): Provide a default mapping + from DWARF to GDB register numbering. + * dwarfread.c (locval): Use DWARF_REG_TO_REGNUM to map the + register value. + * config/mips/tm-mipsv4.h (DWARF_REG_TO_REGNUM): Define. + +Fri Dec 16 10:56:29 1994 J.T. Conklin + + * Makefile.in (uninstall): transform file names. + +Thu Dec 15 16:55:35 1994 Stan Shebs + + * defs.h: Include progress.h. + (QUIT): Call PROGRESS. + * main.c (main): Call START_PROGRESS and END_PROGRESS, break + usage message into shorter strings. + * source.c: Change long command help strings into concats of + shorter ones, for picky ANSI compilers. + + * top.c (command_loop): For space usage display, show both + absolute size and the change from before command execution. + +Thu Dec 15 16:40:10 1994 Stu Grossman (grossman@cygnus.com) + + * defs.h, main.c (gdb_fputs), top.c: Add stream arg to + fputs_unfiltered_hook. + * defs.h, top.c, utils.c (error): Add error_hook. + +Tue Dec 13 15:15:33 1994 Stan Shebs + + * breakpoint.c, infrun.c, printcmd.c: Change long command help + strings into concats of shorter ones, for picky ANSI compilers. + +Mon Dec 12 17:08:02 1994 Stan Shebs + + Sparc flat register window support. + * sparc-tdep.c (sparc_insn_layout): New union, defines layout of + instructions symbolically (used to be local to skip_prologue). + (sparc_init_extra_frame_info): New function. + (sparc_frame_chain): Add flat cases throughout. + (skip_prologue): Add recognition of flat prologues. + (sparc_frame_find_saved_regs): Add flat cases. + (sparc_pop_frame): Ditto. + * config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): New slots. + (INIT_EXTRA_FRAME_INFO): Call sparc_init_extra_frame_info. + (PRINT_EXTRA_FRAME_INFO): Define. + + +Mon Dec 12 13:06:59 1994 Jim Kingdon + + * f-lang.c: Remove duplicate declaration of + builtin_type_f_integer, and only include it in the f_builtin_types + once. + + * somread.c (som_symfile_read): Just assign to objfile->obj_private, + not OBJ_UNWIND_INFO. Assigning to a cast is a GCC-ism which + the HP compiler doesn't like. + + +Fri Dec 9 15:50:05 1994 Stan Shebs + + * remote.c (remote_wait): Pass string instead of char to strcpy. + +Fri Dec 9 04:43:17 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/low-lynx.c (mywait): Remove debugging printf. + +Thu Dec 8 15:07:29 1994 Jim Kingdon + + * frame.h: Restore pre-Nov 3 comments about FRAME_FP with minor + changes. They are correct, unlike the post-Nov 3 comment + (FRAME_FP doesn't have any machine-independent relationship with + FP_REGNUM or any other such notion of a "frame pointer"). + +Wed Dec 7 14:50:54 1994 Jim Kingdon + + * gdbserver/remote-utils.c (write_ok): Write "OK", not "Ok", to + match stubs and protocol spec. + * gdbserver/remote-utils.c (remote_open): Cast to struct sockaddr + when passing to function which expects that. + + The following changes aren't quite enough to make things work with + LynxOS (apprently kernel problems). + * infrun.c (wait_for_inferior): When resuming new thread, pass pid + not -1 for remote case. + * thread.c (info_threads_command): Give error if !target_has_stack. + * infrun.c (start_remote): Call init_thread_list. + * thread.c (info_threads_command): Don't call kill for remote + debugging target. + * target.c (normal_pid_to_str): Print "thread" not "process" for + remote. + * remote.c, gdbserver/*: Add 'H', 'S', and 'C' requests, 'X' + response, and `thread' part of 'T' response. + * gdbserver/*: If program exits, send packet to GDB before + exiting. Handle termination with a signal the same as exiting + with an exitstatus. + * remote.c: Don't try to kill program after getting an 'X' + response. + * infrun.c (wait_for_inferior): Add comment about kill versus mourn. + +Thu Dec 8 12:37:38 1994 Rob Savoye + + * config/pa/tm-pro.h tm-hppap.h, hppapro.mt: Rename tm-hppap.h to + tm-pro.h. + +Wed Dec 7 18:22:59 1994 Stan Shebs + + * source.c: Various cosmetic changes. + (forward_search_command): Handle very long source lines correctly. + +Wed Dec 7 13:21:47 1994 Rob Savoye + + * hppa-tdep.c: Use GDB_TARGET_IS_PA_ELF so SOM target support will + stop being linked in. + + * config/pa/tm-hppap.h: New file. Set GDB_TARGET_IS_PA_ELF, + otherwise it looks like BSD-ELF. + +Mon Dec 5 21:43:52 1994 Stu Grossman (grossman@cygnus.com) + + * inftarg.c: include to get def of pid_t. + +Fri Dec 2 15:03:07 1994 Stan Shebs + + * solib.c (auto_solib_add_at_startup): New global. + (solib_create_inferior_hook): Call solib_add only if + auto_solib_add_at_startup is nonzero. + (_initialize_solib): New command "set auto-solib-add". + +Fri Dec 2 12:52:04 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * parse.c (msymbol_addr_type): Replaced by + lookup_pointer_type (builtin_type_void). + + * printcmd.c (_initialize_printcmd): Give examine_*_type + a name for `ptype $_'. + +Fri Dec 2 12:52:04 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (print_formatted): Call val_print_string directly, + rather than via value_print. + +Wed Nov 30 22:27:27 1994 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (som_solib_get_got_by_pc): New function. + * somsolib.h (som_solib_get_got_by_pc): Add extern decl. + * hppa-tdep.c (hppa_fix_call_dummy): Handle case where FUN is the + function's export stub or real address in a shared library. + +Tue Nov 29 13:40:25 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * config/i386/nbsd.mh (REGEX, REGEX1): No longer define. + + * configure.in (i[345]86-*-freebsd*): New configuration. + * config/i386/{fbsd.mh,fbsd.mt,nm-fbsd.h}: New files. + +Tue Nov 29 12:23:25 1994 Stan Shebs (shebs@andros.cygnus.com) + + * top.c (read_next_line): Pass annotation suffix "commands" + instead of "command", matches documentation. + +Mon Nov 28 14:53:21 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/a29k/tm-a29k.h (setup_arbitrary_frame): Replace + FRAME_ADDR with CORE_ADDR in prototype. + + * top.c (command_line_input): If annotation suffix is NULL, + replace it with an empty string. + (read_next_line): Pass "command" as annotation suffix to + command_line_input. + +Mon Nov 28 11:03:14 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * config/rs6000/tm-rs6000.h (setpgrp): move defn from here... + * config/rs6000/xm-rs6000.h: ...to here. + + +Fri Nov 25 21:26:02 1994 Jeff Law (law@snake.cs.utah.edu) + + * tm-hppa.h (skip_trampoline_code): Add extern decl. + * hppa-tdep.c (hppa_pop_frame): Silently restart the inferior and + allow it to execute any return path trampoline code. Stop the + inferior and give the user control when the trampoline has + finished executing. + (in_solib_call_trampoline): Handle export stubs which also perform + parameter relocations. + (in_solib_return_trampoline): Likewise. + +Fri Nov 25 13:37:10 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * coffread.c, symfile.h (coff_getfilename): Make it static again. + * xcoffread.c (coff_getfilename): Use a static copy from + coffread.c, modified for accessing the static xcoff strtbl. + +Fri Nov 25 00:51:05 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (in_solib_call_trampoline): Recognize calls through + _sr4export and $$dyncall as trampolines. Likewise for long-call + stubs and parameter relocation stubs. + (in_solib_return_trampoline): Recognize a return trampoline for + return value relocation stubs. + + * hpread.c: Include hp-symtab.h instead of hpux-symtab.h. + Various name changes to match those used by hp-symtab.h. + +Thu Nov 24 00:39:27 1994 Jeff Law (law@snake.cs.utah.edu) + + * blockframe.c (find_pc_partial_function): Inhibit mst_trampoline + symbol special handling when INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK + is defined. + * infrun.c (IN_SOLIB_CALL_TRAMPOLINE): Renamed from + IN_SOLIB_TRAMPOLINE. All callers changed. + (IN_SOLIB_RETURN_TRAMPOLINE): Provide default definition. + (wait_for_inferior): Handle single stepping through trampolines on + return paths from shared libraries. + * config/pa/tm-hppa.h (IN_SOLIB_CALL_TRAMPOLINE): Use + in_solib_call_trampoline. + (IN_SOLIB_RETURN_TRAMPOLINE): Use in_solib_return_trampoline. + (INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK): Define. + * hppa-tdep.c (in_solib_call_trampoline): New function. + (in_solib_return_trampoline): New function. + +Wed Nov 23 21:43:03 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * tm-h8300.h (REMOTE_BREAKPOINT): Define. + * h8300-tdep.c (h8300_pop_frame): Remove redundant call. + + * remote-e7000.c (HARD_BREAKPOINTS): Reenable. + (BC_BREAKPOINTS): Disable. + * sh-tdep.c (print_insn): Cope with big and little endian machines. + * sh/sh.mt: Use libsim.a + * sh/tm-sh.h (TARGET_BYTE_ORDER_SELECTABLE): New + (BREAKPOINT): Changed to be byteorder independent. + +Tue Nov 22 19:13:39 1994 Stan Shebs (shebs@andros.cygnus.com) + + Maintenance commands to report time and space usage. + * main.c (display_time, display_space): New globals. + (main): Add argument --statistics to enable reporting, display + time and space after startup is done. + * maint.c (maintenance_time_display, maintenance_space_display): + New commands. + * top.c (command_loop): Display time and space after command + execution. + + * top.c (pre_init_ui_hook): New global. + (gdb_init): If pre_init_ui_hook set, call before all other init. + +Tue Nov 22 10:25:59 1994 Kung Hsu (kung@mexican.cygnus.com) + + * a29k-tdep.c (examine_tag): Fix a bug in stack frame size. + +Sat Nov 19 03:10:51 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/i386/i386sol2.mh: Reenable core file support. + + * symfile.c (deduce_language_from_filename): Treat .c++ as a + C++ extension. + + * valops.c (destructor_name_p): Do not compare the template + part for template classes. + +Fri Nov 18 14:55:59 1994 Stan Shebs (shebs@andros.cygnus.com) + + * defs.h, infcmd.c (reg_names): Don't declare as constant. + * remote-mips.c (mips_open): Read and set the processor type. + * mips-tdep.c (mips_set_processor_type): Always return an int. + +Fri Nov 18 10:38:12 1994 J.T. Conklin + + * nlm/alpha.c (strtol): Remove, it is provided by NetWare C library. + * nlm/gdbserve.def (strtol): Add to import list. + * nlm/fake_aio.c: Remove file, no longer used. + + * Makefile.in (LD_FOR_TARGET, NLMCONV_FOR_TARGET): Remove. + * nlm/Makefile.in (gdbserve.O): Link with ${CC_FOR_TARGET}. + (LD_FOR_TARGET): Remove. + +Thu Nov 17 22:09:50 1994 Rob Savoye + + * monitor.h, monitor.c, w89k-rom.c, op50n-rom.c, idp-rom.c: Add + support for two variables used to control the load protocol and + conversion type. + +Thu Nov 17 17:51:12 1994 Stan Shebs (shebs@andros.cygnus.com) + + Support for different MIPS IDT processor models. + * mips-tdep.c (mips_processor_type, tmp_mips_processor_type, + mips_generic_reg_names, mips_r3041_reg_names, + mips_r3051_reg_names, mips_r3081_reg_names, + mips_processor_type_table): New globals. + (mips_do_registers_info): Don't display register if name is empty. + (mips_set_processor_type_command): New command. + (mips_show_processor_type_command): New command. + (mips_set_processor_type): New function. + (mips_read_processor_type): New function. + * config/mips/tm-idt.h (DEFAULT_MIPS_TYPE): New macro. + * config/mips/tm-mips.h (DEFAULT_MIPS_TYPE): New macro. + (NUM_REGS): Increase to account for all CP0 registers. + (REGISTER_NAMES): Add empty names for CP0 registers. + (FIRST_EMBED_REGNUM, LAST_EMBED_REGNUM): Adjust. + (PRID_REGNUM): New macro. + +Wed Nov 16 16:41:52 1994 Stan Shebs (shebs@andros.cygnus.com) + + * README: Add warning about termcap in Ultrix and OSF/1. + +Wed Nov 16 15:28:29 1994 Rob Savoye (rob@cygnus.com) + + + * hppa-tdep.c: Remove including sys/dir.h from a target file. + +Wed Nov 16 10:31:27 1994 J.T. Conklin (jtc@cygnus.com) + + * config/powerpc/gdbserve.mt (TDEPFILES): Remove fake_aio.o. + + * nlm/gdbserve.c: Include before other NetWare headers. + * nlm/ppc.c: Likewise. + + * nlm/ppc.c (strtol): Remove, it is provided by NetWare C Library. + (StopBell): New function (stubbed out). + +Wed Nov 16 00:12:21 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (skip_trampoline_code): Handle shared library import + trampolines. + +Tue Nov 15 16:18:52 1994 Kung Hsu (kung@mexican.cygnus.com) + + * c-exp.y (yylex): Fix a bug in template scanning. + +Tue Nov 15 14:25:47 1994 Stan Shebs (shebs@andros.cygnus.com) + + * i386-stub.c, m68k-stub.c, sparc-stub.c, sparcl-stub.c: Mask out + the top bit returned by getDebugChar. + +Tue Nov 15 01:03:56 1994 Rob Savoye (rob@slipknot.cygnus.com) + + * op50-rom.c, w89k-rom.c, monitor.c: Modify to usr two variables + to set remote load type and protocol. + * rom68k-rom.c: Add to_stop in target_ops. + + +Sat Nov 12 21:55:47 1994 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c: Add TODO list. + (som_solib_add): Immediately return if $SHLIB_INFO$ sections does + not exist or has size zero. Slightly simplify error handling. + Keep an internal list of all the loaded shared libraries and + various tidbits of information about the loaded shared libraries. + Build section tables for each loaded shared library and add those + tables to the core target if necessary. + (som_solib_create_inferior_hook): Force re-reading of shared + libraries at exec time. + (som_sharedlibrary_info_command): New function for dumping + information about the currently loaded shared libraries. + (_initialize_som_solib): New function. + +Sat Nov 12 02:26:50 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * Makefile.in (copying.o, f-exp.tab.o, dpx2-nat.o, dstread.o, + i386aix-nat.o, i386m3-nat.o, irix5-nat.o, lynx-nat.o, m3-nat.o, + mipsm3-nat.o, ns32km3-nat.o, remote-e7000.o, remote-os9k.o): + Add dependencies. + (copying.o, os9kread.o, remote.o): Update dependencies. + + * valarith.c (value_sub): When subtracting pointers, only + check for a match of the pointed to element lengths. + Cast element length to LONGEST to obtain a signed result for + pointer subtractions. + +Fri Nov 11 10:51:07 1994 Jeff Law (law@snake.cs.utah.edu) + + * ch-exp.y (yylex): Fix off-by-one error when converting string to + lowercase. Null terminate new string. + + * hppa-tdep.c (rp_saved): Handle IMPORT stubs too. + + * somsolib.c (som_solib_add): Check the value of __dld_flags, if + it indicates __dld_list is not valid return an error. If it + indicates that libraries were not mapped privately, issue a + warning. + +Thu Nov 10 23:17:45 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symfile.c (syms_from_objfile): Only call find_lowest_section if + no ".text" section exists. + +Thu Nov 10 15:16:21 1994 Rob Savoye + + * rom68k-rom.c: New file. Replaces the old remote-mon.c and uses + the new generic ROM interface in monitor.c. + * config/m68k/monitor.mt: Use new ROM support. + * monitor.c: Add support for xmodem download protocol. + +Wed Nov 9 18:46:24 1994 Stan Shebs (shebs@andros.cygnus.com) + + * findvar.c (find_saved_register): Fix a frame variable name. + * infcmd.c (finish_command): Ditto. + +Tue Nov 8 13:20:14 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Remove "Watchpoints seem not entirely reliable, though + they haven't failed me recently." item--this old (4.6 at least) + item is too vague to be useful (some watchpoint bugs have been + fixed since then). + * TODO: Add explanation of "RPC interface" item. + +Mon Nov 7 22:25:21 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (read_unwind_info): Use "text_offset" for linker + stub unwind descriptors too. + + * Enable backtracing from inside a SOM shared library back into + user code. + * hppa-tdep.c (internalize_unwinds): Accept and use new + "text_offset" argument for dynamic relocation of + region_{start,end} fields in the unwind descriptor. + (read_unwind_info): Pass text_offset to internalize unwinds. + +Mon Nov 7 14:34:42 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m3-nat.c: Remove comments about arbitrary limit in + printf_filtered; that limit is gone. + +Mon Nov 7 00:27:16 1994 Jeff Law (law@snake.cs.utah.edu) + + * Beginnings of SOM shared library support. Breakpoints and + single frame backtracing within the library only. Only works when + using the HPUX 9 dynamic linker. More functionality to be added + soon. + + * somsolib.c, somsolib.h: New files. + * Makefile.in (HFILES_NO_SRCDIR): Add somsolib.h + (ALLDEPFILES): Add somsolib.c. + (somsolib.o): Add some dependencies. + * somread.c (som_symtab_read): Accept multiple section offsets. + All callers changed. Adjust all text symbols with the first + section offset. + * symfile.c (find_lowest_section): Enable this function. Add some + tie-breaking logic when sections have the same vma. + (syms_from_objfile): Use find_lowest_section rather than looking + for ".text" by name. Relax warning to only warn if the lowest + section is not a code section. + * config/pa/{hppabsd.mh, hppahpux.mh} (NATDEPFILES): Add somsolib.o + * config/pa/{nm-hppab.h, nm-hppah.h}: Include somsolib.h. + +Sun Nov 6 12:54:54 1994 Jeff Law (law@snake.cs.utah.edu) + + * partial-stab.h (N_TEXT): Put back GDB_TARGET_IS_HPPA kludge, + it is still needed for GCC-2.6 compiled code. + * TODO (GDB_TARGET_IS_HPPA): Note this kludge can be nuked + sometime after GCC-2.7 has been released. + + * hppa-tdep.c (frame_saved_pc): Mask off low two bits when + retrieving the PC from a signal handler caller. Fix thinko + in Stan's last change ("frame", should have been "frame->next"). + If the next frame is a signal handler caller and it's a system + call which has entered the kernel ((PSW & 0x2) != 0), then the + saved pc is in %r2 instead of %r31. + +Fri Nov 4 23:47:07 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (hppa_frame_find_saved_regs): Change "frame" to + "frame_info" throughout. + +Fri Nov 4 16:26:59 1994 Kung Hsu (kung@mexican.cygnus.com) + + * sparcl-stub.c: get rid of defs.h. + +Fri Nov 4 13:11:54 1994 Jim Kingdon + + * gdbserver/Makefile.in (MMALLOC_CFLAGS): Add -I${MMALLOC_DIR}. + Correct definition of MMALLOC_DIR to reflect fact this is + gdb/gdbserver/Makefile.in, not gdb/Makefile.in. + + * gdbserver/server.c (main): After we kill the inferior in + response to a 'k' request, exit. + + * remote.c (remote_kill): Use catch_errors when calling putpkt. + (putpkt): Return int, not void, to match catch_errors calling + convention. + +Fri Nov 4 10:52:38 1994 Stan Shebs (shebs@andros.cygnus.com) + + * rs6000-tdep.c (pop_frame): Correct a variable name. + +Fri Nov 4 05:43:35 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Re-write item about SIGINT handling to reflect the fact + that target_stop now exists. + +Thu Nov 3 15:19:17 1994 Stan Shebs (shebs@andros.cygnus.com) + + Replace useless FRAME, FRAME_ADDR types with struct frame_info * + and CORE_ADDR, respectively. + * frame.h (FRAME, FRAME_INFO_ID, FRAME_ADDR): Remove. + * blockframe.c (get_frame_info): Remove. + * a29k-tdep.c, alpha-tdep.c, blockframe.c, breakpoint.c, + breakpoint.h, energize.c, findvar.c, gould-pinsn.c, + h8300-tdep.c, h8500-tdep.c, hppa-tdep.c, i386-tdep.c, i960-tdep.c, + infcmd.c, inferior.h, infrun.c, m68k-tdep.c, m88k-tdep.c, + mips-tdep.c, nindy-tdep.c, printcmd.c, pyr-tdep.c, rs6000-tdep.c, + sh-tdep.c, sparc-tdep.c, stack.c, valops.c, z8k-tdep.c, + config/a29k/tm-a29k.h, config/alpha/tm-alpha.h, + config/gould/tm-pn.h, config/h8300/tm-h8300.h, + config/h8500/tm-h8500.h, config/mips/tm-mips.h, + config/ns32k/tm-merlin.h, config/ns32k/tm-umax.h, + config/pyr/tm-pyr.h, config/sparc/tm-sparc.h): Replace FRAME with + struct frame_info * everywhere, replace FRAME_ADDR with CORE_ADDR, + rename variables consistently (using `frame' or `fi'), remove + calls to get_frame_info and FRAME_INFO_ID, remove comments about + FRAME and FRAME_ADDR cruftiness. + +Thu Nov 3 14:25:24 1994 Stu Grossman (grossman@cygnus.com) + + * corelow.c, exec.c, inftarg.c, m3-nat.c, op50-rom.c, procfs.c, + remote-adapt.c, remote-e7000.c, remote-eb.c, remote-es.c, + remote-hms.c, remote-mips.c, remote-mm.c, remote-mon.c, + remote-nindy.c, remote-os9k.c, remote-pa.c, remote-sim.c, + remote-st.c, remote-udi.c, remote-vx.c, remote-z8k.c, remote.c, + w89k-rom.c, target.c, target.h: Add support for target_stop(). + +Thu Nov 3 01:23:45 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * osfsolib.c (solib_map_sections, first_link_map_member, + next_link_map_member, xfer_link_map_member): Retrieve and use + shared library relocation offset from runtime loader structures. + Use libxproc.a routines to get a working version if + USE_LDR_ROUTINES is defined. + * README: Remove item about shared library relocation for + Alpha OSF/1. + +Wed Nov 2 15:05:39 1994 Kung Hsu (kung@mexican.cygnus.com) + + * c-exp.y (yylex): scan template names, and scan nested class + names. + +Wed Nov 2 11:01:55 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * nlm/Makefile.in: install gdbserve.nlm. + + +Tue Nov 1 13:00:46 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-valprint.c (c_value_print): Check for plain literal `char' + target type when suppressing `(char *)' output for strings. + +Mon Oct 31 19:19:51 1994 Stan Shebs (shebs@andros.cygnus.com) + + * coffread.c (coff_symfile_init): Remove unused local abfd. + * utils.c [NO_MMALLOC] (mmalloc, mrealloc): Define and use size_t + instead of long, for compatibility with mmalloc.h. + +Sat Oct 29 02:40:40 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * top.c (line_completion_function): Renamed from + symbol_completion_function, takes the line buffer and the + point in the line buffer as additional arguments. + (readline_line_completion_function): New function, interface + between readline and line_completion_function. + (init_main): Use it. + (complete_command): Use line_completion_function instead of + abusing rl_line_buffer. Free completion strings after printing + them. + * symtab.c (completion_list_add_name): Recheck for duplicates + if we intend to add a modified symbol. + + * gdbtypes.h (cplus_struct_type): nfn_fields_total no longer + includes the number of methods from the baseclasses. + * stabsread.c (attach_fn_fields_to_type): No longer add the + number of methods from the baseclasses to TYPE_NFN_FIELDS_TOTAL, + the baseclass type might not have been completely filled in yet. + * symtab.c (total_number_of_methods): New function to compute + the total number of methods for a type, including the methods + from baseclasses. + (decode_line_1): Use it instead of TYPE_NFN_FIELDS_TOTAL to + allocate the symbol array for find_methods. + + * stabsread.c (scan_file_globals): Add default case to minimal + symbol type switch, to avoid gcc -Wall warnings. + + * config/rs6000/tm-rs6000.h (INIT_EXTRA_FRAME_INFO): + Don't test for zero backchain pointer to recognize a signal + handler frame, if read() gets interrupted by a signal, the + backchain will be non zero. + (SIG_FRAME_FP_OFFSET): Move to here from rs6000-tdep.c, + improve comment. + (SIG_FRAME_PC_OFFSET): New definition. + (FRAME_SAVED_PC): Return saved pc from sigcontext if this + is a signal handler frame. + * rs6000-tdep.c (function_frame_info): Do not error out + if we can't access the instructions. + + * config/rs6000/tm-rs6000.h (CONVERT_FROM_FUNC_PTR_ADDR): + New definition to get the function address from a function pointer. + * valops.c (find_function_addr): Use it when calling a user + function through a function pointer. + +Fri Oct 28 16:16:52 1994 Stan Shebs (shebs@andros.cygnus.com) + + * Makefile.in (MMALLOC_DIR): New definition. + (MMALLOC): Use MMALLOC_DIR. + (MMALLOC_CFLAGS): Look in MMALLOC_DIR for mmalloc.h. + (OPCODES): Remove gratuitous "./". + * defs.h (mmalloc.h): Include. + (mmalloc, mrealloc, etc): Remove decls. + (cplus_demangle, cplus_demangle_opname): Remove decls. + +Wed Oct 26 15:41:07 1994 Stu Grossman (grossman@cygnus.com) + + * defs.h, main.c, top.c: Change sense and name of + no_windows variable. Now called use_windows, and defaults to off + (for compatibility). + +Wed Oct 26 12:20:53 1994 Jim Kingdon + + * coffread.c (coff_symtab_read): If we get the address from + target_lookup_symbol, set the section to -2 not SECT_OFF_BSS. + (coff_symtab_read): Set value and section of symbol that + process_coff_symbol returns. + +Tue Oct 25 09:53:04 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * config/i386/tm-nbsd.h: Enable longjmp support. + +Sat Oct 22 03:41:13 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * valarith.c (value_binop): Take care of ANSI `value preserving' + rule, which was not addressed by the previous change. + + * rs6000-tdep.c (skip_prologue): Handle `mr r31,r1', which is + generated by gcc-2.6, as a synonym for `oril r31,r1,0'. + + * TODO: Remove item about RS/6000 shared libraries. + +Thu Oct 20 17:35:45 1994 Stu Grossman (grossman@cygnus.com) + + * defs.h, infrun.c (wait_for_inferior), top.c: Call + target_wait_hook to allow GUI to handle blocking for inferior. Call + call_command_hook in execute_command to provide means for wrapping + commands with GUI state change updates. + + * infrun.c (wait_for_inferior): Make sure + through_sigtramp_breakpoint is non-null before deleting. + +Thu Oct 20 10:26:43 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * config/powerpc/ppc-nw.mt (TDEPFILES): Removed exec.o. + +Thu Oct 20 06:56:07 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (coffread.o): Depend on target.h. + (remote-vx.o): Depend on gdb-stabs.h objfiles.h symfile.h $(bfd_h). + +Wed Oct 19 22:49:31 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Fix typo. + +Wed Oct 19 11:32:15 1994 Jim Kingdon + + * objfiles.c (objfile_relocate): When relocating ->sections, use + objfile not symfile_objfile. + + * symtab.h, minsyms.c (minsyms_sort): New function. + * objfiles.c (objfile_relocate): Call it. + + * remote-vx.c (vx_add_symbols): Call breakpoint_re_set. + + * objfiles.c, objfiles.h (objfile_to_front): New function. + * remote-vx.c (vx_add_symbols): Call it. + + * coffread.c (coff_symtab_read): Handle common symbols the same + way that partial-stab.h does. + +Wed Oct 19 21:06:12 1994 Rob Savoye (rob@cirdan.cygnus.com) + + * hppa-tdep.c: Remove include files a.out.h, ioctl.h, and + machine/psl.h. These are host files. + +Wed Oct 19 15:13:51 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * objfiles.h (struct objfile): Fix comment--minimal_symbol_count + does *not* include the terminating NULL msymbol. + +Tue Oct 18 20:53:29 1994 Rob Savoye + + * monitor.c (monitor_load_srec,monitor_make_srec): Add an asrecord + loader that reads files using BFD and converts it on the fly. + +Mon Oct 17 18:52:06 1994 Rob Savoye + + * monitor.c (set_loadtype_command): Fixed so it doesn't core dump. + * monitor.c (monitor_load): check the load type and load the file + accordingly. Default to gr_load_image(). + * monitor.c (monitor_load_ascii_srec): Load an ascii file in + srecord format by downloading to the monitor. + * w89k-rom.c, op50n-rom.c: set supported load types. + +Mon Oct 17 10:29:08 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (ALLDEPFILES): Remove xcoffexec.c. + * Makefile.in: Remove xcoffexec.o rule. + + * exec.c (exec_file_command): Add comment. + + Fix data and bss relocation for VxWorks 5.1: + * remote-vx.c (vx_add_symbols): New function. + (vx_load_command, add_symbol_stub): Call it instead of + symbol_file_add. + (vx_wait): Remove comment which was wrong to useless. + * remote-vx.c: Reindent much of file. + * coffread.c (cs_to_section, find_targ_sec): New functions. + (process_coff_symbol): Set SYMBOL_SECTION to result + from cs_to_section. + (coff_symtab_read): Call cs_to_section and deal with result + rather than assuming sections are in a certain order. Deal with + BSS. + * coffread.c: Remove text_bfd_scnum variable. + +Sat Oct 15 16:55:48 1994 Stan Shebs (shebs@andros.cygnus.com) + + * corelow.c: Format to standard. + (core_close): Use name instead of bfd_filename. + +Fri Oct 14 10:29:08 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * exec.c (map_vmap): Cast return from xmalloc to its proper type, + not to PTR. + + * symfile.c (reread_symbols): Include bfd_errmsg string in error + message if bfd_close fails. + * exec.c (exec_close), solib.c (clear_solib), corelow.c + (core_close), objfiles.c (free_objfile), irix5-nat.c + (clear_solib), osfsolib.c (clear_solib), remote-utils.c + (gr_load_image): Check for errors from bfd_close. + * solib.c (look_for_base), remote-utils.c (gr_load_image), + remote-udi.c (download), corelow.c (core_open), symfile.c + (symfile_bfd_open), symfile.c (generic_load): Add comment + regarding error from bfd_close. + * remote-udi.c (download), remote-utils.c (gr_load_image): Add + comment about bogus handling of errors from bfd_openr. + * exec.c (exec_close): Add comment regarding memory leak and + dangling reference to vp->name. + +Sat Oct 15 03:43:00 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * eval.c (evaluate_subexp): Make fnptr a LONGEST instead + of using longest_to_int. + + * infcmd.c (run_stack_dummy): Reinstate set_current_frame call, + mips and alpha targets need the real breakpoint pc for + creating the breakpoint frame. + + * stack.c (return_command): Cast return value to the return + type of the function from which we return. + * values.c (set_return_value): Pass VALUE_CONTENTS unmodified + to STORE_RETURN_VALUE. + + * symtab.c (lookup_symbol): Remove search for `static mangled + symbols', the search for `static symbols' already looks for + mangled and demangled symbols via lookup_block_symbol. + + * valarith.c (value_binop): Use ANSI C arithmetic conversions + when performing integral evaluations, implement BINOP_EQUAL and + BINOP_LESS. + (value_equal, value_less): Use value_binop to perform the + comparison if both operands have TYPE_CODE_INT. + + * rs6000-tdep.c (pop_frame): Make sure all registers are valid, + as they are written back later. Handle sp restore for frameless + functions. Use fdata.nosavedpc instead of fdata.frameless to + determine if the pc has been saved. + (function_frame_info): Handle `mr r31,r1', which is generated by + gcc-2.6, as a synonym for `oril r31,r1,0'. + (skip_trampoline_code): Handle shared library trampolines. + * xcoffread.c (read_xcoff_symtabs): Record XMC_GL symbols with + their real name. Enables setting of breakpoints in shared libraries + before the executable is run. + +Fri Oct 14 19:39:47 1994 Rob Savoye + + * monitor.h, remote-mon.c: Hack up to so the old ROM monitor + interface code still works with the new ROM monitor + structures. Fake out a couple of fields. + +Fri Oct 14 14:54:37 1994 Stan Shebs (shebs@andros.cygnus.com) + + * h8500-tdep.c (target_read_sp, target_write_sp, target_read_pc, + target_write_pc, target_read_fp, target_write_fp): Rename to + h8500_read_sp, etc. + (h8500_read_pc, h8500_write_pc): Add pid argument. + * config/h8500/tm-h8500.h (TARGET_READ_SP, TARGET_WRITE_SP, + TARGET_READ_PC, TARGET_WRITE_PC, TARGET_READ_FP, TARGET_WRITE_FP): + Change to match functions above. + +Thu Oct 13 13:24:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * NEWS: Add item about if and while. + + * .gdbinit: Restore `end'; it was not excess. Reindent + list-objfiles to make this clear. Comment out all of + list-objfiles because old gdb's choke on it. + +Wed Oct 12 23:19:08 1994 Ian Lance Taylor + + * config/mips/tm-bigmips64.h: Just define TARGET_BYTE_ORDER and + include tm-mips64.h. + +Wed Oct 12 18:02:17 1994 Stan Shebs (shebs@andros.cygnus.com) + + * Makefile.in (ANNOTATE_OBS): New definition. + (COMMON_OBS): Add exec.o. + (annotate.o): Remove extra compile rule. + * config/*/*.mh, config/*/*.mt: Remove exec.o from *DEPFILES lists + everywhere. + + * .gdbinit: Remove excess `end'. + + * exec.c: Merge in RS6000 support from xcoffexec.c. + (symfile.h, objfiles.h, xcoffsolib.h): Include. + (vmap): New global variable. + (exec_close): Close and free objects in vmap chain. + (exec_file_command) [IBM6000_TARGET]: Set up initial vmap. + (bfdsec_to_vmap, map_vmap): Moved here from xcoffexec.c. + (exec_files_info): Print vmap information. + * xcoffexec.c: Remove. + * config/rs6000/rs6000.mt, config/rs6000/rs6000lynx.mt + (TDEPFILES): Use exec.o instead of xcoffexec.o. + * TODO: Remove pertinent items. + +Wed Oct 12 10:08:19 1994 Jeff Law (law@snake.cs.utah.edu) + + * partial-stab.h (N_TEXT): Delete GDB_TARGET_IS_HPPA kludge; they + are no longer needed as of gcc-2.6.0. + +Tue Oct 11 15:51:01 1994 Ian Lance Taylor + + * lynx-nat.c (child_wait): Correct handling of byte reversed SPARC + Lynx wait status. + (fetch_core_registers): Don't try to fetch a register if + regmap maps it to -1. + * sparc-tdep.c (sparc_frame_find_saved_regs): Use FRAME_SAVED_I0 + and FRAME_SAVED_L0 when setting saved_regs_addr. SPARC Lynx + stores the registers in a weird order. + +Sat Oct 8 20:59:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * blockframe.c (reinit_frame_cache): Reinstate select_frame call + if inferior_pid is nonzero. + +Sat Oct 8 04:27:21 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + Speed up GDB startup time by not demangling partial symbols. + * symfile.h (ADD_PSYMBOL_VT_TO_LIST), + symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list): + No longer demangle partial symbols. + * symtab.c (lookup_symbol, list_symbols): Handle mangled + variables, e.g. C++ static members, via the minimal symbols. + + Handle reordered functions in an objfile, for Irix 5.2 shared + libraries. + * objfiles.h (OBJF_REORDERED): New bit in the objfile flags, + set if the functions in an objfile are reordered. + * mdebugread.c (parse_partial_symbols): Detect reordered + functions in an objfile. + * symtab.c (find_pc_psymtab, find_pc_symtab): Use expensive + lookup algorithm if the functions in the objfile are reordered. + + * xcoffexec.c (exec_close): If the current target has a copy + of the exec_ops sections, reflect the freeing of the sections + in current_target. + + * valops.c (call_function_by_hand): Use `sizeof dummy1', not + `sizeof dummy', for constructing the call dummy code. + + * config/sparc/tm-sparc.h: Add PARAMS declarations to all + function declarations. + * sparc-tdep.c (sparc_pop_frame): Cast result of + read_memory_integer to CORE_ADDR when passing it to PC_ADJUST. + + * irix5-nat.c (enable_break): Set breakpoint at the entry point + of the executable, to handle the case where main resides in a + shared library. + * irix5-nat.c (solib_create_inferior_hook): Reset stop_soon_quietly + after shared library symbol reading, to get rid of a warning from + heuristic_proc_start if the startup code has no symbolic debug info. + + * breakpoint.h (struct breakpoint): Add new fields language + and input_radix, to enable breakpoint resetting with the + proper language and radix. + * breakpoint.c (set_raw_breakpoint): Initialize them. + (breakpoint_re_set_one): Use them when resetting the breakpoint. + (breakpoint_re_set): Preserve current language and input_radix + across breakpoint_re_set_one calls. + + * symtab.c (decode_line_1): Do not build a canonical line + specification for `*expr' line specifications. + + * breakpoint.h (bpstat_stop_status): Fix prototype declaration. + +Fri Oct 7 08:48:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + The point of these changes is to avoid reading the frame pointer + and stack pointer during stepping, to speed things up. + A. Changes to not select a frame until we need a selected frame: + * blockframe.c (flush_cached_frames): Call select_frame (NULL, -1). + * infrun.c (wait_for_inferior): Move call to select_frame back to + normal_stop. This reverts a change of 13 Apr 94 (it says Jeff + Law, but the change was my idea); the only reason for that change + was so we could save and restore the selected frame in + wait_for_inferior, and now that flush_cached frames clears the + selected frame, that should work OK now. + B. Changes to not create a current_frame until we need one: + * blockframe.c (get_current_frame): If current_frame is NULL, try + to create an innermost frame. + * sparc-tdep.c (sparc_pop_frame), infcmd.c (run-stack_dummy), + infrun.c (wait_for_inferior), thread.c (thread_switch), + convex-tdep.c (set_thread_command), a29k-tdep.c (pop_frame), + alpha-tdep.c (alpha_pop_frame), convex-xdep.c (core_file_command), + h8300-tdep.c (h8300_pop_frame), h8500-tdep.c (h8300_pop_frame), + hppa-tdep.c (hppa_pop_frame), i386-tdep.c (i386_pop_frame), + i960-tdep.c (pop_frame), m68k-tdep.c + (m68k_pop_frame), mips-tdep.c (mips_pop_frame), rs6000-tdep.c + (push_dummy_frame, pop_dummy_frame, pop_frame), sh-tdep.c + (pop_frame), config/arm/tm-arm.h (POP_FRAME), + config/convex/tm-convex.h (POP_FRAME), config/gould/tm-pn.h + (POP_FRAME), config/ns32k/tm-merlin.h (POP_FRAME), + config/ns32k/tm-umax.h (POP_FRAME), config/tahoe/tm-tahoe.h + (POP_FRAME), config/vax/tm-vax.h (POP_FRAME): Don't + call create_new_frame. + * corelow.c (core_open), altos-xdep.c (core_file_command), + arm-xdep.c (core_file_command), gould-xdep.c (core_file_command), + m3-nat.c (select_thread), sun386-nat.c (core_file_command), + umax-xdep.c (core_file_command): Don't call create_new_frame; do + call flush_cached_frames. + * blockframe.c (reinit_frame_cache): Don't call create_new_frame + or select_frame. + C. Changes to get rid of stop_frame_address and instead only + fetch the frame pointer when we need it. + * breakpoint.c (bpstat_stop_status): Remove argument + frame_address; use FRAME_FP (get_current_frame ()). + * infrun.c (wait_for_inferior): Don't pass frame pointer to + bpstat_stop_status. + * infrun.c (wait_for_inferior): Use FRAME_FP (get_current_frame + ()) instead of stop_frame_address. + * infrun.c (save_inferior_status, restore_inferior_status), + inferior.h (struct inferior_status): Don't save and restore + stop_frame_address. + * inferior.h, infcmd.c, thread.c (thread_switch), m3-nat.c + (select_thread): Remove stop_frame_address and uses thereof. + D. Same thing for the stack pointer. + * infrun.c (wait_for_inferior): Remove stop_sp and replace + uses thereof with read_sp (). + E. Change to eliminate one nasty little spot where we were + wanting to know the frame pointer from before the current step + (idea from GDB 3.5, which saved my ass, because my other ideas of + how to fix it were very baroque). + * infrun.c: Remove prev_frame_address. + * infrun.c (wait_for_inferior, step_over_function): Use + step_frame_address instead of prev_frame_address. + F. Same basic idea for the stack pointer. + * inferior.h, infcmd.c: New variable step_sp. + * infcmd.c (step_1, until_next_command): Set it. + * infrun.c: Remove prev_sp and replace uses by step_sp. + * infrun.c (wait_for_inferior): If we get out of the step + range, then set step_sp to the current stack pointer before we + start going again. + +Fri Oct 7 12:17:17 1994 Ian Lance Taylor + + * top.c (target_byte_order_auto): New static variable. + (set_endian): Mention that ``auto'' is permitted. + (set_endian_auto): New static function. + (show_endian): Change message based on target_byte_order_auto. + (set_endian_from_file): New function. + (init_main): Add command ``auto'' to endianlist. + * exec.c (exec_file_command): Call set_endian_from_file. + * defs.h (set_endian_from_file): Declare. + +Thu Oct 6 18:10:41 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * nlm/i386.c (flush_i_cache): New function, does nothing. + (frame_to_registers, registers_to_frame, set_step_traps, + clear_step_traps, do_status): Make non-static. + +Thu Oct 6 12:26:42 1994 Ian Lance Taylor + + * config/mips/tm-mips.h (GDB_TARGET_IS_MIPS64): If not already + defined, define as 0. + (FIX_CALL_DUMMY): Rewrite to remove presumption that host and + target are similar. + * config/mips/tm-idt.h (TARGET_BYTE_ORDER_SELECTABLE): Define. + * config/mips/tm-idtl.h (TARGET_BYTE_ORDER_SELECTABLE): Define. + * config/mips/tm-idt64.h (TARGET_BYTE_ORDER_SELECTABLE): Define. + (BREAKPOINT): Remove definition. + * config/mips/tm-idtl64.h (TARGET_BYTE_ORDER_SELECTABLE): Define. + (BREAKPOINT): Remove definition. + * config/mips/tm-mips64.h (GDB_TARGET_IS_MIPS64): Define with a + value of 1, rather than without a value. + * config/mips/tm-bigmips64.h (GDB_TARGET_IS_MIPS64): Likewise. + * mips-tdep.c: Rewrite uses of GDB_TARGET_IS_MIPS64 to switch at + run time rather than at compile time. + + * remote-mips.c (break_insn): Remove. + (BREAK_INSN, BREAK_INSN_SIZE): Define. + (mips_insert_breakpoint): Use BREAK_INSN, not break_insn. + (mips_remove_breakpoint): Likewise. + + * defs.h: If TARGET_BYTE_ORDER_SELECTABLE is defined by tm.h, + define TARGET_BYTE_ORDER as target_byte_order, and declare + target_byte_order as an extern int, and define BITS_BIG_ENDIAN as + a test of TARGET_BYTE_ORDER. + * top.c: Several additions if TARGET_BYTE_ORDER_SELECTABLE is + defined: + (endianlist, target_byte_order): New variables. + (set_endian, set_endian_big, set_endian_little): New functions. + (show_endian): New function. + (init_cmd_lists): Initialize endianlist. + (init_main): Add commands ``set endian big'', ``set endian + little'', and ``show endian''. + * a29k-pinsn.c: Rewrite uses of TARGET_BYTE_ORDER and + BITS_BIG_ENDIAN to switch at run time rather than at compile time. + * coffread.c, dwarfread.c, findvar.c, mips-tdep.c: Likewise. + * remote-os9k.c, stabsread.c, valarith.c, valprint.c: Likewise. + * values.c: Likewise. + +Wed Oct 5 11:41:24 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * nlm/configure.in: ${gdb_host_cpu} defaults to ${host_cpu}. + + * nlm/Makefile.in: Get rid of NWINCLUDES. + * config/{alpha,powerpc}/gdbserve.mt: Remove NWINCLUDES. + User should now configure with --with-headers. + +Mon Oct 3 07:48:34 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/server.c (main): Silently accept all unrecognized + requests and send back a zero length acknowledge. That is what + *-stub.c do and is what remote.c expects. + +Mon Oct 3 05:11:47 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * corelow.c (core_open): Copy the modified to_sections_end + vector from current_target to core_ops too. + + * gdbserver/server.c (main): Silently accept query requests + and send back a zero length acknowledge. + +Fri Sep 30 17:17:21 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * nlm/Makefile.in: Don't define NWINCLUDES. + * config/{alpha,powerpc}/gdbserve.mt: define NWINCLUDES. + +Fri Sep 30 15:59:55 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/low-lynx.c (create_inferior): Pass all 4 args to ptrace. + +Fri Sep 30 06:42:42 1994 Ian Lance Taylor (ian@cygnus.com) + + * lynx-nat.c (child_wait): Use status.w_status, not status, in + arithmetic. status is a `union wait'. + + * config/nm-lynx.h (PTRACE_ARG3_TYPE): Define to int, not char *. + + * lynx-nat.c (child_wait): Pass fourth argument to ptrace. + +Thu Sep 29 08:22:27 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (read_xcoff_symtab): Fix comment for yesterday's change. + +Wed Sep 28 17:48:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * coffread.c (complete_symtab): If last_source_file is set upon + entry, free it. + +Wed Sep 28 08:59:14 1994 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (read_xcoff_symtab, case C_FILE): + Set main_aux before using it. + + * xcoffexec.c (exec_close): If quitting, don't call clear_symtab_users. + + * xcoffread.c (read_xcoff_symtab): Process XTY_LD symbols we were + ignoring before. But continue to ignore XMC_DS. + +Wed Sep 28 00:35:23 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (hpread_read_array_type): Do not change the type code + to TYPE_CODE_PTR for "char foo[]". Just make it a zero length + array type. + + * hpread.c (hpread_type_translate): Handle T_UNS_LONG types with + lengths other than 32bits (HP C 9.69 represents an "unsigned char" + as an T_UNS_LONG with length 8). + + * hpread.c (struct hpread_symfile_info): Delete have_module field + and accessor macro. Minor indentation fix. + (hpread_build_psymtabs, case K_MODULE): Only start a new psymtab + and reset state variables have_name & texthigh if pst is NULL. + (hpread_build_psymtabs, case K_SRCFILE): Only reset the name of a + partial symbol table if pst is non-NULL. If pst is NULL, then + start a new psymtab. + (hpread_process_one_debug_symbol, case K_MODULE): Now empty. + (hpread_process_one_debug_symbol, case K_SRCFILE): Simplify and + correct handling of subfiles. + +Mon Sep 26 02:59:00 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * defs.h (misc_command_type): Remove trailing comma from + enumerator list. + +Sun Sep 25 23:19:58 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (frame_saved_pc): Fix thinko in code to dig saved pc + out of an interrupt frame. + +Sun Sep 25 12:50:17 1994 Stan Shebs (shebs@andros.cygnus.com) + + * infcmd.c (do_registers_info) [INVALID_FLOAT]: Only use if + defined. + * values.c (unpack_double) [INVALID_FLOAT]: Ditto. + * mips-tdep.c (mips_print_register): Don't test float validity. + * config/a29k/tm-a29k.h, config/alpha/tm-alpha.h, + config/arm/tm-arm.h, config/convex/tm-convex.h, + config/h8300/tm-h8300.h, config/h8500/tm-h8500.h, + config/i386/tm-i386v.h, config/i386/tm-sun386.h, + config/i960/tm-i960.h, config/m68k/tm-m68k.h, + config/m88k/tm-m88k.h, config/mips/tm-mips.h, + config/ns32k/tm-merlin.h, config/ns32k/tm-nbsd.h, + config/ns32k/tm-ns32km3.h, config/ns32k/tm-umax.h, + config/pa/tm-hppa.h, config/pyr/tm-pyr.h, + config/rs6000/tm-rs6000.h, config/sh/tm-sh.h, + config/sparc/tm-sparc.h, config/z8k/tm-z8k.h (INVALID_FLOAT): + Remove definition. + +Sun Sep 25 06:07:37 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Remove item about adding general multi-threaded stuff; + this is done. + Remove item about specifying arbitrary locations of stack frames + (this works on some machines). + Remove item about debugging functions without a frame pointer + (this works on some machines). + Remove item about re-writing macros which handle frame chaining and + frameless functions. They have been re-written at least once + since that item was written. + Remove item about gdb catching SIGINT when attached; this is done. + Remove item about having list_command not read symbols--why bother? + +Sat Sep 24 17:40:10 1994 Stan Shebs (shebs@andros.cygnus.com) + + * TODO: Append contents of Projects file. + * Projects: Remove. + +Sat Sep 24 01:47:25 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * corelow.c (add_solib_stub): Remove copying of to_sections, + pass current_target to SOLIB_ADD. The Sep 10 change failed + if SOLIB_ADD errored out, or if SOLIB_ADD was trying to access + target memory. + * corelow.c (core_open): After reading the shared libraries, + copy the modified to_sections vector from current_target to + core_ops, so that core_close can free it later. + * config/rs6000/nm-rs6000.h, rs6000-nat.c (xcoff_relocate_core): + Pass down target parameter from SOLIB_ADD and use it instead of + directly accessing core_ops. + +Fri Sep 23 14:58:49 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * solib.c: *BSD systems need to be included before + . + + * i386b-nat.c: Add i386_float_info(), etc. + * config/i386/nm-nbsd.h: #define FLOAT_INFO. + + * config/nm-nbsd.h: New file, for generic NetBSD native support. + * config/i386/nm-nbsd.h: Use it. + * config/sparc/nm-nbsd.h: Use it. + * config/ns32k/nm-nbsd.h: Use it. + + * configure.in (i386-*-netbsd): Use config/i386/nbsd.m[ht]. + (ns32k-*-netbsd): Use config/ns32k/nbsd.m[ht]. + * config/i386/{nbsd.mh,nbsd.mt,nm-nbsd.h,tm-nbsd.h,xm-nbsd.h}: + New files, support for NetBSD/i386. + * config/ns32k/{nbsd.mh,nbsd.mh,nm-nbsd.h,tm-nbsd.h,xm-nbsd.h}: + New files, support for NetBSD/ns32k. + +Tue Sep 20 11:34:27 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * .gdbinit: Add list-objfiles command. + + * TODO: Reword item regarding NO_STD_REGS. + + * coffread.c (record_minimal_symbol, coff_read_enum_type, + coff_read_struct_type): Allocate on symbol_obstack, not directly + via malloc/savestring. + +Tue Sep 20 15:42:02 1994 Stan Shebs (shebs@andros.cygnus.com) + + * TODO: Add more items. + * tests: Remove the directory and all of its (obsolete) contents. + +Tue Sep 20 11:34:27 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * coffread.c (init_stringtab): When copying length to stringtab, + use target format, not host format, since that is what the rest of + the code assumes. + +Mon Sep 19 15:48:10 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * Makefile.in: Removed prelude.o, i386-nlmstub.o, nlmstub.o, + nlmstub.nlm, and nlmstub targets. Removed NWSOURCE and + NWINCLUDES definitions. + * i386-nlmstub.c: Removed. + +Mon Sep 19 07:48:36 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c (read_dbx_dynamic_symtab): Cast bfd_asymbol_name to + char * (from const char *) before assigning. Don't save string we + pass to record_minimal_symbol (it already saves it). + + +Sat Sep 17 02:26:58 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * cp-valprint.c (static_field_print): New variable, controls + printing of static members. + (_initialize_cp_valprint): New print set subcommand + "static-members". Turn on printing of static members by default. + (cp_print_value_fields): Print static members if necessary. + + * solib.c: Remove inclusion of libelf.h and elf/mips.h. + (elf_locate_base): Use only standard BFD functions to collect + information about the .dynamic section. Check for DT_MIPS_RLD_MAP + tag only if it got defined via the inclusion of . + + * f-exp.y: Write block for OP_VAR_VALUE. + * f-valprint.c (info_common_command): Handle `info common' + without an argument correctly. + + * c-typeprint.c (c_type_print_base): Handle template constructors. + * symtab.c (gdb_mangle_name): Handle template method mangling, + get rid of GCC_MANGLE_BUG code, which only applied to gcc-2.2.2. + +Fri Sep 16 16:06:08 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * gdbtypes.h (TYPE_INDEX_TYPE): New macro. + * ch-typeprint.c, ch-valprint.c: Use TYPE_INDEX_TYPE. + * ch-valprint.c (chill_val_print): Pass index type directly + (instead of its TYPE_TARGET_TYPE) to print_type_scalar. + * stabsread.c (read_type): Don't set TYPE_FLAG_TARGET_STUB + if the index type is a stub. + +Fri Sep 16 17:18:44 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/i386/{i386aix.mh, i386bsd.mh, i386lynx.mh, i386sco.mh, + i386sco4.mh, i386sol2.mh, i386v.mh, i386v32.mh, i386v4.mh, + ncr3000.mh, ptx.mh, ptx4.mh}, config/m68k/{altos.mh, apollo68v.mh, + delta68.mh, dpx2.mh, hp300bsd.mh, hp300hpux.mh, m68klynx.mh, + m68kv4.mh}, config/m88k/{delta88.mh, delta88v4.mh}, + config/mips/riscos.mh, config/pa/hppahpux.mh, + config/rs6000/rs6000lynx.mh, config/sparc/{sparclynx.mh, + sun4sol2.mh}, config/tahoe/tahoe.mh, config/vax/{vaxbsd.mh, + vaxult.mh, vaxult2.mh} (REGEX, REGEX1, SYSV_DEFINE): No longer + define. + * config/i386/i386sco4.mh (MUNCH_DEFINE): No longer define. + +Fri Sep 16 15:40:34 1994 Stu Grossman (grossman@cygnus.com) + + * defs.h (QUIT): Call interactive_hook to allow GUI to interrupt. + Also, add decl for symtab_to_filename. + * source.c (symtab_to_filename): New. Returns the file + associated with a symtab. + * top.c: Define interactive_hook. Called during QUIT to animate + the GUI. + +Fri Sep 16 00:14:40 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * stabsread.c (read_type): Handle stub types for bitstrings. + * stabsread.c (read_array_type): Check for stub domain type + using TYPE_FLAG_STUB, not its length. + * gdbtypes.c (create_set_type): Handle a stub domain type. + + * ch-exp.y: Get rid of some extra non-terminals, and move + their rules into primitive_value. + * parser-defs.h: Add comment about unary postfix operators. + * ch-lang.c (chill_op_print_tab): Add '->', postfix and prefix. + * expprint.c (print_subexp): Recognize unary postfix operator. + +Wed Sep 14 18:27:42 1994 Jason Molenda (crash@phydeaux.cygnus.com) + + * remote-hms.c: use remote_debug instead of hms_silent toggle. + Add warnings about depreciation of `snoop' cmd. + +Wed Sep 14 18:18:58 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote-hms.c (hms_read_inferior_memory): Cope when + target sends both \r and \n. + +Wed Sep 14 17:14:57 1994 Stan Shebs (shebs@andros.cygnus.com) + + * remote-mips.c (mips_error): Place NORETURN macro correctly. + * TODO: Add item about START_INFERIOR_TRAPS_EXPECTED. + +Wed Sep 14 14:26:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (read_xcoff_symtab): Fix obsolete comment about + mst_solib_trampoline. + + * f-valprint.c (f_val_print): Change cast of valaddr from + CORE_ADDR * to char **, since that is how it is used. + + * dbxread.c (read_dbx_dynamic_symtab): Save copy of symbol names + using obsavestring, and pass that to prim_record_minimal_symbol. + Having the objfile point to bfd_asymbol_name directly doesn't work + if we save and restore a mapped symbol file. + + +Tue Sep 13 18:23:26 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * w89k-rom.c, op50-rom.c, monitor.c, config/pa/hppapro.mt: New files + to add a generic ROM monitor interface, and support file for the + WinBond W89K and the Oki OP50N PA based target boards. + + +Sun Sep 11 22:34:57 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppa.h (REGISTER_NAMES): Use r26-r23 for arg0-arg3. + +Sun Sep 11 04:36:47 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * irix5-nat.c, osfsolib.c, solib.c (solib_add): Simplify last + change by replacing `symbols_added' with `so_last'. + * mdebugread.c (parse_external, parse_partial_symbols): Ignore + global common symbols, they will be resolved by the runtime loader. + * mdebugread.c (parse_symbol, parse_partial_symbols, cross_ref): + Handle scSCommon like scCommon symbols. + +Sat Sep 10 01:43:28 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * corelow.c (add_solib_stub): Copy to_sections changes from + core_ops to current_target after adding the shared libraries. + * partial-stab.h (N_EXCL), dbxread.c (add_old_header_file, + find_corresponding_bincl_psymtab): Change `repeated header not seen' + error to a complaint, simplify complaint. + * procfs.c (signalname, errnoname): Make `name' const. + * symfile.c (reread_symbols): Use filename from old BFD to + reopen the objfile. + * values.c (record_latest_value): Don't record value in the + history chain until we are sure there won't be an error. + +Fri Sep 9 15:52:09 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * nlm/Makefile.in: remove MMALLOC, READLINE, TERMCAP, and other + cruft. + + * config/i386/gdbserve.mt: New file, defs for i386 nlm stub. + +Thu Sep 8 17:14:43 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote.c (fromhex): Make error more explicit. + (read_frame): Don't print bad checksum information unless + remote_debugging. Don't use repeat count unless it's > 0. + * remote-e7000.c (expect): When echoing, ignore multiple newlines. + (e7000_insert_breakpoint, e7000_remove_breakpoint, target_ops): + Optionally cope with BC style breakpoints. + (e7000_command): After command send directly to the E7000 mark + registers as changed. + (why_stop, e7000_wait: Understand BC style stop condition. + * sh-tdep.c (sh_skip_prologue): Understand more complicated + sequences. (frame_find_saved_regs): Likewise. + * config/h8500/tm-h8500.h (target_write_pc, TARGET_WRITE_PC): + Handle extra arg. + * config/i386/xm-go32.h (GDBINIT_FILENAME): Set to gdb.ini. + (more work here to come) + * config/sh/tm-sh.h (EXTRA_FRAME_INFO): Add f_offset and leaf_function + fields. + +Thu Sep 8 16:15:34 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * sparclite/Makefile.in: Assorted stuff needed for eload. + + * sparclite/eload.c: Merge in command line argument parsing and + error message handling improvements orignally made to aload.c. + +Wed Sep 7 23:24:50 1994 Jeff Law (law@snake.cs.utah.edu) + + * defs.h (enum misc_command_type, command_control_type): Enums + for describing the command and control types. + (struct command_line): Add new fields to keep track of the command + type and body associated with the command. + * top.c: Include value.h. Delete whitespace at the end of lines. + (build_command_line, get_command_line): New functions. + (execute_control_command, while_command, if_command): Likewise. + (realloc_body_list, read_next_line): Likewise. + (recurse_read_control_structure): Likewise. + (execute_user_command): Call execute_control_command. + (read_command_lines): Simplify by calling read_next_line, call + read_control_structure for "if" and "while" commands. + (free_command_lines): Free new fields in the command structure. + (define_command): Reset control_level to zero. + (init_main): Install command handlers for "if" and "while" commands. + +Tue Sep 6 16:24:07 1994 Stan Shebs (shebs@andros.cygnus.com) + + * c-typeprint.c (c_type_print_varspec_prefix, + c_type_print_varspec_suffix): Add cases for Fortran type codes. + * eval.c (evaluate_subexp): For OP_ARRAY expressions in Fortran, + call f77_value_literal_string instead. + * f_exp.y: Include , move include of parser-defs.h. + (parse_number): Translate 'd' floats to 'e' so atof() works. + (yylex): Remove unused variables. + * f-lang.c: Include . + (get_bf_for_fcn): Remove unused variable. + * f-typeprint.c (f_type_print_varspec_prefix, + f_type_print_varspec_suffix): Remove unused + variables, add cases to switch statements. + (f_type_print_base): Remove unused variables. + * f-valprint.c (gdbcore.h, command.h): Include. + (f77_get_dynamic_lowerbound, f77_get_dynamic_upperbound): + Call read_memory_integer with correct number of arguments. + (f77_get_dynamic_upperbound): Call f77_get_dynamic_lowerbound + with correct argument type. + (f77_print_array): Removed unused array array_size_array. + (f_val_print): Don't use a CORE_ADDR as a char *. + * valops.c (value_cast): Handle COMPLEX and BOOL types. + (value_assign): Handle Fortran literal string and complex values. + (f77_cast_into_complex, f77_assign_from_literal_string, + f77_assign_from_literal_complex): New functions. + +Mon Sep 5 14:46:41 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * ch-typeprint.c (chill_type_print_base): Make TYPE_CODE_RANGE + case more robust. + +Sun Sep 4 16:06:34 1994 Stan Shebs (shebs@andros.cygnus.com) + + * i960-tdep.c (signal.h): Don't include. + + * cxux-nat.c (target_is_m88110): Remove definition. + + * configure.in (config/nm-empty.h): If cross only, use instead + of config/nm-trash.h. + * config/nm-trash.h: Remove. + * config/nm-empty.h: New file. + * config/i386/nm-m3.h: New file, includes config/nm-m3.h. + * config/mips/nm-m3.h: New file, includes config/nm-m3.h. + * config/m68k/nm-sysv4.h: New file, includes config/nm-sysv4.h. + * config/mips/nm-sysv4.h: New file, includes config/nm-sysv4.h. + * config/sparc/nm-sysv4.h: New file, includes config/nm-sysv4.h. + + +Fri Sep 2 17:35:55 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * configure.in: No longer look for nm, tm, and xm headers in + config/
; they are always in config//
. + +Fri Sep 2 16:40:03 1994 Stan Shebs (shebs@andros.cygnus.com) + + * objfiles.c (allocate_objfile): Add the newly-created objfile to + the end of the list of objfiles, instead of at the beginning. + + * xcoffread.c (allocate_include_entry): New function, abstracted + from code in record_include_begin. + (record_include_begin, record_include_end): Call it. + + * blockframe.c (reinit_frame_cache): Test inferior_pid instead of + target_has_stack to decide whether to create a real stack frame + for the cache. + + * coffread.c (process_coff_symbol) [CXUX_TARGET]: Ignore vendor + section. + * config/m88k/tm-cxux.h (CXUX_TARGET): Define. + + * h8300-tdep.c: Include "dis-asm.h" instead of . + +Fri Sep 2 09:51:46 1994 J.T. Conklin (jtc@cygnus.com) + + * config/sparc/tm-nbsd.h: Add #defines to map NetBSD struct and + field names into what is expected by sparc-nat.c. + +Thu Sep 1 17:32:54 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * c-typeprint.c (c_typedef_print): Add missing Chill support. + +Thu Sep 1 15:41:21 1994 Stu Grossman (grossman@cygnus.com) + + * rs6000-pinsn.c (print_insn): Use powerpc disassembler when + doing Power PC. + * config/powerpc/tm-ppc-nw.h: Define GDB_TARGET_POWERPC. + + * config/i386/i386lynx.mh, config/m68k/m68klynx.mh, + config/rs6000/rs6000lynx.mh, config/sparc/sparclynx.mh: Enable + ser-tcp. + + * nlm/Makefile.in: Get rid of NWSOURCE. + * nlm/alpha-io.S (inVti, outVti): Remove extraneous ldha's. + * nlm/gdbserve.o: Add dummy __main routine. + * nlm/gdbserve.def: Turn on debug. + +Thu Sep 1 12:36:39 1994 Jim Kingdon (kingdon@cygnus.com) + + * config/xm-nbsd.h: Don't define SET_STACK_LIMIT_HUGE; it is obsolete. + +Thu Sep 1 11:01:40 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * config/tm-nbsd.h: New file, support for all NetBSD targets. + * config/xm-nbsd.h: fix typo. + * config/sparc/{nm,tm,xm}-nbsd.h: New files, renamed from + {nm,tm,xm}-sparcnbsd.h to conform to prefered file naming + conventions. + * configure.in: (sparc-*-netbsd): use config/sparc/nbsd.m[ht]. + +Wed Aug 31 14:40:33 1994 Jason Molenda (crash@phydeaux.cygnus.com) + + * remote-udi.c (udi_read_inferior_memory,udi_write_inferior_memory): + change typeo in error msg (`inferrior' -> `inferior'). + +Wed Aug 31 09:17:02 1994 Jim Kingdon (kingdon@cygnus.com) + + * inflow.c (set_sigint_trap, clear_sigint_trap): Check for + attach_flag (this check was performed by the callers). Also check + inferior_thisrun_terminal. + * inftarg.c (child_wait), lynx-nat.c (child_wait), + procfs.c (wait_fd), symm-nat.c (child_wait): Don't check + attach_flag in deciding whether to call set_sigint_trap and + clear_sigint_trap. + + * value.h (struct value): Change literal_data from PTR to char *, + since that is the way it is used. + +Tue Aug 30 21:56:54 1994 Jeff Law (law@snake.cs.utah.edu) + + * somread.c (som_symfile_read): Force unwinds to be re-read after + reading in a new partial symbol table. + +Tue Aug 30 13:14:16 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/h8500/tm-8500.h (DONT_USE_REMOTE): Remove definition, + an obsolete conditional. + * config/pa/tm-hppa.h (BREAKPOINT) [KERNELDEBUG]: Remove use, + an obsolete conditional. + * config/rs6000/rs6000.mh, config/rs6000/rs6000.mt: Clean up + comments. + +Mon Aug 29 14:39:42 1994 Stan Shebs (shebs@andros.cygnus.com) + + * Makefile.in (ns32k-opcode.h): Remove reference. + (ns32k-pinsn.o): Update dependencies. + * ns32k-opcode.h: Remove file. + * ns32k-pinsn.c (print_insn): Call version in libopcodes, remove + all other code in this file. + +Mon Aug 29 12:04:07 1994 Stu Grossman (grossman@cygnus.com) + + * nlm/configure.in: Stop using cpu.c. Put it in TDEPFILES instead. + * config/alpha/gdbserve.mt (TDEPFILES): Remove alpha-patch.o. + + * nlm/Makefile.in: Add rule for .S.o. + * nlm/aio.h: Protect from multiple inclusions. + * nlm/alpha-io.S: Remove everything we don't need. + * nlm/{alpha-patch.c, alpha-patch.h, alpha-uart.c, alpha-uart.h}: + Remove, no longer needed. + * nlm/alpha.c: Merge in lots of stuff from previous files. + * nlm/alpha.h: Don't #include alpha-patch.h. Make + breakpoint_insn extern. + * Move stuff from alpha-patch.h into here. + + * config/alpha/gdbserve.mt (TDEPFILES): Get rid of alpha-uart.o. + +Mon Aug 29 11:34:34 1994 Jim Kingdon (kingdon@cygnus.com) + + * annotate.c (annotate_starting): Flush output. + +Sat Aug 27 23:32:43 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symfile.c (symbol_file_add): Move reinit_frame_cache call to + the callers of symbol_file_add. Gets rid of heuristic fence-post + warnings on mips and alpha targets when the PC resides in a shared + library which is not yet read in. + * coff-solib.c (coff_solib_add), cxux-nat.c (add_shared_symbol_files), + irix5-nat.c (solib_add), osfsolib.c (solib_add), + remote-vx.c (vx_open), solib.c (solib_add): + Add call to reinit_frame_cache after all shared libraries are read in. + * remote-udi.c (udi_load), remote-vx.c (vx_load_command), + symfile.c (symbol_file_command, add_symbol_file_command): + Add call to reinit_frame_cache after symbol_file_add. + +Wed Aug 24 17:45:14 1994 J.T. Conklin (jtc@cygnus.com) + + * config/xm-nbsd.h: New file, support for all NetBSD ports. + * config/sparc/{nm-sparcnbsd.h,tm-sparcnbsd.h,xm-sparcnbsd.h, + sparcnbsd.mh,sparcnbsd.mt}: New files, support for NetBSD/sparc. + * configure.in: Add sparc-*-netbsd target. + +Wed Aug 24 13:17:34 1994 Stan Shebs (shebs@andros.cygnus.com) + + * remote-vx.c (vx_attach): Interpret the command argument as an + unsigned long. + +Wed Aug 24 13:08:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * configure.in: Change i[34]86 to i[345]86. + * nlm/configure.in: Likewise. + * gdbserver/configure.in: Likewise. + +Wed Aug 24 09:41:09 1994 J.T. Conklin (jtc@cygnus.com) + + * configure.in (i386-*-netware): Automatically configure nlm + subdir. + +Tue Aug 23 17:51:13 1994 J.T. Conklin (jtc@cygnus.com) + + * nlm/gdbserve.c: conditionalize header file inclusion for either + NetWare 4.0 or PIN targets. + * nlm/i386.c: include appropriate header files. + * nlm/prelude.c: define TERMINATE_BY_UNLOAD for NetWare 4.0 + targets. + +Tue Aug 23 16:54:16 1994 Stu Grossman (grossman@cygnus.com) + + * nlm/ppc.c (set_step_traps clear_step_traps): Cleanups. + * nlm/gdbserve.def: Autoload clib. + +Tue Aug 23 12:05:19 1994 Jim Kingdon (kingdon@cygnus.com) + + * breakpoint.c (condition_command): Call breakpoints_changed. + + * gdbtypes.h: Declare f77_create_literal_string_type and + f77_create_literal_complex_type. + * valops.c (f77_value_literal_string, f77_value_substring, + f77_value_literal_complex): Use xmalloc not malloc. + * valops.c (f77_value_literal_string, f77_value_substring): + Make addr char * not CORE_ADDR. + * value.h (struct value): Add new field literal_data of aligner union. + (VALUE_LITERAL_DATA): Use it. + * f-lang.h: Declare find_common_for_function. + * value.h, valops.c: Split VALUE_SUBSTRING_START into memaddr and + myaddr fields of a union. Don't overload it with the frame field + (not sure this is necessary; I'm not sure what lval_* codes + VALUE_SUBSTRING_* can be used with). + +Mon Aug 22 11:45:01 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/a29k/{a29k-kern.mt,a29k-udi.mt,a29k.mt,ultra3.mh, + ultra3.mt}: Clean up comments, remove no-longer-used definitions. + + * rs6000-nat.c: Include libbfd.h again, needed until reference + to bfd_cache_lookup is cleaned out. + + * config/i386/linux.mh (XM_CLIBS): Add -lm. + +Mon Aug 22 10:42:15 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + Work to reduce the interrupts-off duration when running in DOS. + * ser-go32.c: (dos_async_ready): See if anything is in the buffer. + (dos_async_rx): rewrite to unpack as many characters from the + asynctsr as possible into a local buffer. + +Fri Aug 19 14:55:45 1994 Stan Shebs (shebs@andros.cygnus.com) + + Initial Fortran language support, adapted from work by Farooq Butt + (fmbutt@engage.sps.mot.com). + * Makefile.in: Add Fortran-related files and dependencies. + * defs.h (language_fortran): New language enum. + * language.h (_LANG_fortran): Define. + (MAX_FORTRAN_DIMS): Define. + * expression.h: Reformat to standard. + (MULTI_F77_SUBSCRIPT, OP_F77_UNDETERMINED_ARGLIST, + OP_F77_LITERAL_COMPLEX, OP_F77_SUBSTR): New expression opcodes. + * gdbtypes.h (TYPE_CODE_COMPLEX, TYPE_CODE_LITERAL_COMPLEX, + TYPE_CODE_LITERAL_STRING): New type codes. + (type): New fields upper_bound_type and lower_bound_type. + (TYPE_ARRAY_UPPER_BOUND_TYPE, TYPE_ARRAY_LOWER_BOUND_TYPE, + TYPE_ARRAY_UPPER_BOUND_VALUE, TYPE_ARRAY_LOWER_BOUND_VALUE): New + macros. + (builtin_type_f_character, etc): Declare. + * value.h (VALUE_LITERAL_DATA, VALUE_SUBSTRING_START): Define. + * f-exp.y: New file, Fortran expression grammar. + * f-lang.c: New file, Fortran language support functions. + * f-lang.h: New file, Fortran language support declarations. + * f-typeprint.c: New file, Fortran type printing. + * f-valprint.c: New file, Fortran value printing. + * eval.c (evaluate_subexp): Add code for new expression opcodes, + fix wording of error message. + * gdbtypes.c (f77_create_literal_complex_type, + f77_create_literal_string_type): New functions. + * language.c (set_language_command): Add Fortran info. + (calc_f77_array_dims): New function. + * parse.c (length_of_subexp, prefixify_subexp): Add cases for new + expression opcodes. + * symfile.c (deduce_language_from_filename): Recognize .f and .F + as Fortran source files. + * valops.c (f77_value_literal_string, f77_value_substring, + f77_value_literal_complex): New functions. + +Fri Aug 19 13:35:01 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-typeprint.c (c_print_type): Assume demangled arguments + if a '(' is found in varstring, looking for ')' at the end of + varstring did fail with demangled const member functions, which + have a trailing `const'. + * remote.c (get_offsets, putpkt): Change to `char' buffers, + to avoid errors when compiling with DEC c89. + (remote_wait): Cast to `char *' before passing buffer to + fputs_filtered, to avoid errors when compiling with DEC c89. + (remote_wait): Do not return inferior_pid by default, this + statement is never reached, which causes warnings from some + compilers. + * stabsread.c (scan_file_globals): Ignore static minimal symbols. + * symfile.c (load_command): If called with no argument, try + to get the filename from the executable file. + (generic_load): Remove check for NULL filename, it is done + in load_command now. + +Fri Aug 19 10:36:15 1994 Jeff Law (law@snake.cs.utah.edu) + + * Makefile.in (ALLDEPFILES): Add hpread.c. + (hpread.o): Add dependencies. + + * somread.c: Do not include "aout/aout64.h". SOM has nothing to + do with a.out. + (BYTES_IN_WORD): Delete. + (som_symfile_read): Call hpread_build_psymtabs to build any + minimal symbols based on the HP C native debug symbols. + (som_symfile_finish): Call hpread_symfile_finish. + (som_symfile_init): Call hpread_symfile_init. + * config/pa/tm-hppa.h (HPREAD_ADJUST_STACK_ADDRESS): Define. + * hppa-tdep.c (hpread_adjust_stack_address): New function. + + * config/pa/hppabsd.mh (NATDEPFILES): Add hpread.o + * config/pa/hppahpux.mh (NATDEPFILES): Likewise. + * hpread.c: New file. + +Fri Aug 19 00:40:55 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (skip_trampoline_code): Revert incorrect change + from June 2, 1994 (what was I thinking?!?). Fix it right this + time. + +Thu Aug 18 17:01:35 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * nlm/i386.c, nlm/i386.h: New files that contain i386 specific code. + +Thu Aug 18 14:39:46 1994 Stan Shebs (shebs@andros.cygnus.com) + + * README: Grammar improvements, clarifications, updates. + +Wed Aug 17 23:08:53 1994 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (TARGET_FLAGS_TO_PASS): Pass down LD_FOR_TARGET and + NLMCONV_FOR_TARGET. (SUBDIRS): Add nlm target. + * configure.in (powerpc-*-netware*): Automatically configure nlm + subdir. + * nlm/Makefile.in: Add {CC NLMCONV LD}_FOR_TARGET. Remove alpha + specific stuff. Make things more configurable. + * nlm/configure.in: Add powerpc-*-netware* target. Use + gdbserve.mt/cpu.c/cpu.h for target stuff. Get rid of tm/xm/nm.h + files. + * nlm/gdbserve.c: Move Alpha specific stuff into other files. + Remove lots of architecture-specific stuff. + * nlm/gdbserve.def: Add new imports. + * nlm/ppc.c, nlm/ppc.h: New files that contain PowerPC specific code. + * nlm/prelude.c: Don't include libhooks.h, get rid of call to + register library. + * nlm/prelude.o: What was this doing here? + * config/alpha/gdbserve.mt: Defs for alpha nlm stub. + * config/powerpc/gdbserve.mt: Defs for PowerPC nlm stub. + * config/powerpc/ppc-nw.mt: Defs for PowerPC target for GDB. + * config/powerpc/tm-ppc-nw.h: Ditto. + + * nlmstub.def: New file, contains imports for 386 nlm stub. + +Wed Aug 17 23:17:33 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * remote-pa.c: New file for HPPA embedded support. Currently it's + a copy of remote.c. + * config/pa/hppabsd.mt,hppahpux.mt,hppaosf.mt: User remote-pa.c. + +Wed Aug 17 13:19:52 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/m68k/tm-delta68.h (EXTRACT_RETURN_VALUE, + STORE_RETURN_VALUE): Define to use %a0 for pointers. + +Wed Aug 17 07:43:06 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-mips.c: Remove unused declaration of mips_load. + +Tue Aug 16 16:45:34 1994 Stan Shebs (shebs@andros.cygnus.com) + + * coffread.c: General cleanup, and support for section offsets. + (time.h, sys/types.h, libbfd.h): Don't include. + (cur_src_start_addr, cur_src_end_addr): Rename to + current_source_start_addr, current_source_end_addr. + (nlist_stream_global): Remove. + (nlist_bfd_global): New global variable. + (coff_symfile_read): Remove code that gets and uses fileno() + directly. + (read_coff_symtab, enter_linenos, process_coff_symbol): Add + section_offsets parameter, add text/data section offset to + appropriate symbols' values. + (read_one_sym): Use bfd_read instead of fread. + (init_stringtab, init_lineno): Change first parameter to a bfd, + use bfd routines instead of raw I/O. + +Tue Aug 16 15:24:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.c (decode_line_1): If funfirstline and we get a + non-LOC_BLOCK symbol (e.g. variable or type), then error(). + + * Makefile.in (TARFILES, NONSRC, SFILES_STAND, SFILES_KGDB): + Remove; unused. + (TAGFILES_NO_SRCDIR): Remove ALLPARAM. + (HFILES_NO_SRCDIR): Remove all files in config sub-directory. + (TAGS): Also pass result of find on config sub-directory to etags. + (ALLPARAM): Remove; now unused. + +Sun Aug 14 13:05:26 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.13.1 + * NEWS, README: Update to match gdb 4.13 release version. + +Sat Aug 13 08:22:50 1994 Fred Fish (fnf@cygnus.com) + + Harris CX/UX support, from Bob Rusk (rrusk@mail.csd.harris.com). + * cxux-nat.c: Remove dangling #else block. + (m88k_harris_core_register_addr): New function. + + * environ.c (init_environ): If no environment, do nothing. + +Fri Aug 12 19:30:53 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Delete rest of TODO list. Do not include "libbfd.h", + , , "demangle.h", , + "expression.h", "language.h", "gdbtypes.h", "demangleh". + Move all global variables into the private symbol table structure + and add accessor macros. Update some comments. + (hpread_build_psymtabs): Delete dbsubc_addr, we don't need it. + (hpread_end_psymtab): New function to end a partial symbol table, + all callers changed (no more bogus sharing with dbxread.c). + +Fri Aug 12 15:52:37 1994 Stu Grossman (grossman@cygnus.com) + + * remote.c (remote_wait): Return inferior_pid instead of 0 for + `W` message. + +Fri Aug 12 11:47:10 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * sparclite/aload.c (sys_error, error): Use vfprintf for variable + argument lists. + +Thu Aug 11 04:06:42 1994 Doug Evans (dje@canuck.cygnus.com) + + * defs.h (concat, basename, buildargv, freeargv, strerrno, strsigno, + errno_max, signo_max, strtoerrno, strtosigno): Delete. + Include "libiberty.h" instead. + +Wed Aug 10 13:23:47 1994 Rick Sladkey (jrs@world.std.com) + + * i386v-nat.c (i386_insert_nonaligned_watchpoint): + add additional argument specifying raw address to permit + proper release of debug registers. + (i386_insert_watchpoint, i386_insert_aligned_watchpoint): + change all callers. + +Wed Aug 10 16:13:45 1994 Stu Grossman (grossman@cygnus.com) + + * defs.h, top.c: Use `extern' in declarations of GUI hooks, and + define them in top.c. Add comments to the hooks. + +Wed Aug 10 15:57:43 1994 Doug Evans (dje@canuck.cygnus.com) + + * remote-sim.c (gdbsim_ops): Set `to_insert_breakpoint' and + `to_remove_breakpoint' fields. + +Wed Aug 10 15:46:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infcmd.c (run_command): Remove comment suggesting using + target_has_execution instead of inferior_pid. + +Wed Aug 10 10:33:20 1994 Kung Hsu (kung@mexican.cygnus.com) + + * remote-mips.c (mips_open): add code to handle baud rate. + +Tue Aug 9 09:44:42 1994 Stu Grossman (grossman@cygnus.com) + + * infrun.c (wait_for_inferior): Call target_resume() upon + detection of new processes. + + * procfs.c (create_procinfo): Return pointer to new procinfo + structure. + * (do_detach): Spacing & formatting cleanup. + * (procfs_wait): Move wait_again label to ensure that we really + wait again. On exit from fork, release new child from gdbs' + clutches. + * (procfs_set_sproc_trap): Enable trapping of fork and vfork. + +Mon Aug 08 15:34:13 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (hpread_process_one_debug_symbol): Fix block scoping + problem (losing localvars on the close-brace instead of after + the close brace). + +Mon Aug 8 15:09:32 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * i386-nlmstub.c (handle_exception): Wait until the thread has + been started before killing the NLM by pointing the PC at + _exit(). + +Sat Aug 6 22:27:30 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/tm-irix5.h (IN_SIGTRAMP): Redefine for Irix 5, + Irix 5 has a standard _sigtramp signal handler. + * irix5-nat.c (solib_add): Get rid of sigtramp_address handling, + it is not needed for a standard _sigtramp signal handler. + Add shared library sections to the section table of the target + before adding the symbols. + * mips-tdep.c (mips_skip_prologue): Do not skip load immediate + instructions that do not prepare a stack adjustment. + * regex.c (SIGN_EXTEND_CHAR): Update to emacs-19.25 definition, + which does the right thing on machines where `char' is unsigned. + +Fri Aug 5 17:50:59 1994 Stu Grossman (grossman@cygnus.com) + + * remote.c (remote_open): Move setting of inferior_pid prior to + call to remote_start_remote. Also use unique value for pid to + avoid confusion with read_register_pid & friends. + * (remote_wait): Return inferior_pid instead of 0 in all cases. + +Fri Aug 5 12:23:02 1994 Stan Shebs (shebs@andros.cygnus.com) + + * dwarfread.c (bfd.h): Don't include. + +Fri Aug 5 09:08:34 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * i386-nlmstub.c (handle_exception): Point the PC at _exit() to + kill the program being debugged. KillMe(), the undocumented + call intended for this purpose, causes the server to hang. + +Thu Aug 4 16:26:06 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote.c (read_frame): Calculate run length encoded checksum + correctly. + * config/sh/stub.c: New file. + +Thu Aug 4 14:34:12 1994 Stu Grossman (grossman@cygnus.com) + + * target.c (find_default_run_target): Make sure to_can_run is set + before calling it. + +Thu Aug 4 11:46:27 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * TODO: Remove note about fast watchpoints and remove obsolete + Mach stuff. + +Thu Aug 4 11:08:03 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/i386/xm-i386v4.h, config/m68k/xm-m68kv4.h, + config/sparc/xm-sun4sol2.h (NORETURN): Don't define. + * config/m88k/tm-cxux.h (ARCH_NUM_REGS): Undefine before defining. + +Thu Aug 4 10:26:36 1994 Stu Grossman (grossman@rtl.cygnus.com) + + * target.c (add_target): Don't call clean_target on target + vectors anymore. + * (unpush_target): Test for to_close being set before calling. + * (target_xfer_memory, target_info): Check for to_has_memory + before playing with memory. + + * remote.c (remote_open): Set inferior_pid to make kill command + happy. + * inflow.c (kill_command): Revert change of Aug 2. Use + inferior_pid to determine whether to print out "The program is not + being run." message. + +Thu Aug 4 07:55:04 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i386/i386m3.mh (NAT_CLIBS): Add -lmachid and -lnetname. + * m3-nat.c, config/nm-m3.h: #if 0 REQUEST_QUIT stuff. + * m3-nat.c: Pass argument to return_to_top_level. + Declare m3_kill_inferior before use. + (port_chain_insert): In "can't happen" case, abort rather than + setting `mid' to large decimal constant (which gcc warns about). + (get_thread_name): Use cast to convert const char * to char *. + (add_mach_specific_commands): #if 0 "thread break" command. + (m3_trace_him): Call push_target. + (mach_really_wait): New argument pid; remove unused + variable pid. + (intercept_exec_calls): Call target_terminal_init and + target_terminal_inferior once the child execs. + * infrun.c (proceed): Pass argument to PREPARE_TO_PROCEED. + +Wed Aug 3 22:41:13 1994 Tom Lord (lord@x1.cygnus.com) + + * procfs.c (procfs_mourn_inferior): don't dereference the + procinfo pointer after it has been freed. + +Wed Aug 3 12:05:13 1994 Stan Shebs (shebs@andros.cygnus.com) + + * breakpoint.c (breakpoint_1): Improve pluralization in display + of breakpoint hit counts. + + * language.h (struct language_defn): Remove unused field + la_longest_float. + (longest_float): Remove, no longer used. + * language.c (unknown_language_defn, auto_language_defn, + local_language_defn): Remove init of la_longest_float field. + * c-lang.c (c_language_defn, cplus_language_defn, + asm_language_defn): Ditto. + * ch-lang.c (chill_language_defn): Ditto. + * m2-lang.c (m2_language_defn): Ditto. + +Tue Aug 2 10:58:34 1994 Stan Shebs (shebs@andros.cygnus.com) + + * defs.h (bfd_read, bfd_seek): Remove declarations. + * os9kread.c, rs6000-nat.c (libbfd.h): Don't include. + +Tue Aug 2 09:50:50 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * inflow.c (kill_command): Fix a bug which prevented target + programs to be killed. + +Mon Aug 1 18:48:47 1994 Stan Shebs (shebs@andros.cygnus.com) + + * defs.h: Change two-line declarations to one-line form. + (NORETURN): Define as "volatile" only for older GCCs. + (ATTR_NORETURN): Define for newer GCCs. + * procfs.c (proc_init_failed): Add ATTR_NORETURN to declaration. + +Mon Aug 1 16:43:24 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (mention), main.c (fputs_unfiltered): Add comments. + * breakpoint.c (delete_breakpoint, enable_breakpoint, + disable_breakpoint): Don't call breakpoints_changed; it is now + called via the *_breakpoint_hook functions. + * annotate.c (_initialize_annotate, breakpoint_changed): New functions. + +Mon Aug 1 13:38:04 1994 Kung Hsu (kung@mexican.cygnus.com) + + * stabsread.c (read_type): Fix a bug in enum size calculation. + +Mon Aug 1 01:36:13 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (compare_unwind_entries): Add "const" to both + argument types to shut up GCC. + + * hppa-tdep.c (saved_pc_after_call): If the saved PC is in a + linker stub, then return the address the stub will return to. + (frame_saved_pc): Correctly restart the search for the saved + pc when a linker stub is encountered. + + * hppa-tdep.c (inst_saves_gr): Handle 16 and 8 bit instruction + register stores emitted by the version 9 HP compilers. + (inst_saves_fr): Relax test for a specific base register (%r1); + this avoids losing with the version 9 HP compilers. + (skip_prologue): Try to skip argument stores emitted by the HP + compilers. It's not perfect, but it's better than before. + +Fri Jul 29 23:20:30 1994 Stu Grossman (grossman@cygnus.com) + + * findvar.c (write_pc write_pc_pid): Remove casts to long when + calling write_register_pid. + * (write_register_pid): Add prototype. + +Fri Jul 29 21:56:23 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * remote.c (read_frame): Split readchar/checksum calculation into + two parts since evaluation order is undefined. + +Fri Jul 29 13:46:08 1994 Fred Fish (fnf@cygnus.com) + + From Kevin A. Buettner (kev@cujo.geg.mot.com). + * Makefile.in (coredep.o): Add inferior.h as dependency. + * inflow.c: Add F_SETOWN to list of defines to check + around code that uses F_SETOWN. + +Fri Jul 29 09:59:05 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): If using newlib, + set the -L and -B directory prefixes so we can link with it. + +Thu Jul 28 14:37:36 1994 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (INSTALLED_LIBS, CLIBS, DEPFILES): Add support for + --enable-xxx configure option by adding ENABLE_{CLIBS DEPFILES} + where appropriate. + + * General hackery to support alternate user-interface. + * breakpoint.c (mention, delete_breakpoint, enable_breakpoint, + disable_breakpoint): Call hooks for alternate user-interface. + * defs.h: Add declarations for alternate user-interface hooks. + * main.c (main): Add --nw (and --nowindows) options to disable + the GUI. + * (near call to command_loop): Call command_loop_hook if set. + * (fputs_unfiltered): Call fputs_unfiltered_hook if set. + * stack.c: Call print_frame_info_listing_hook if set. + * top.c (gdb_init): Initialize targets.c and utils.c prior to + other files to make sure that calls to error and warning will + work. Call init_ui_hook after everything else. + * utils.c (query): Call query_hook if set. + * (gdb_flush): Call flush_hook if set. + * Change _initialize_utils to initialize_utils cuz we don't use + automatic initialization of utils.c anymore. + + + * remote.c: Get rid of #ifdef DONT_USE_REMOTE. It's no longer + necessary. + +Thu Jul 28 14:52:01 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): Use newlib if it is + there and we are using the gcc from the tree. + (LD_FOR_TARGET): Look for ld in ../ld/ld.new. + +Thu Jul 28 10:43:36 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (annotate.o): Add dependencies. + +Wed Jul 27 14:34:42 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * sparclite/aload.c: Added new -q (quiet) option. + return 0 exit status if file was successfully downloaded. + + * nlm/gdbserve.c: merge in command line argument parsing changes + and bug fixes made to i386-nlmstub.c. + + * i386-nlmstub.c: The returnLength field must be initialized + before portConfig is passed to AIOGetPortConfiguration. + Compare command line arguments with strnicmp(); args are + case insensitive on netware. + +Wed Jul 27 09:24:19 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (DISTSTUFF): Add definition. + (diststuff): Add for new distribution support. + (gdb.tar.Z, make-proto-gdb.dir, setup-to-dist, + gdb-$(VERSION).tar.Z, make-proto-gdb-1, make-proto-testsuite.dir): + Remove old distribution building rules, now uses standard + distribution support in parent directory Makefile.in. + +Tue Jul 26 14:15:53 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.c (push_target): Cast result from xmalloc. + +Tue Jul 26 18:20:46 1994 Paul Flinders (ptf@smee) + + * elfread.c (elf_symtab_read): Discard compiler labels generated + by the Solaris 2.1/Intel SunPro compiler. + +Mon Jul 25 18:19:24 1994 Stu Grossman (grossman@cygnus.com) + + * target.c (nomemory): Fix prototype and routine to take correct + args. + +Mon Jul 25 15:38:23 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (clean): Remove libgdb-files. + +Mon Jul 25 11:50:57 1994 Stan Shebs (shebs@andros.cygnus.com) + + * coredep.c: Include inferior.h. + +Mon Jul 25 11:36:02 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * i386-nlmstub.c: Add support for NODE, PORT and BAUD command + line arguments. + +Sat Jul 23 14:36:09 1994 Stan Shebs (shebs@andros.cygnus.com) + + * symfile.c (deduce_language_from_filename): Recognize .S as asm, + .cp as C++, alphabetize better. + + * breakpoint.c (ignore, condition): Move usage note into body of + help text, so first line can be one-line summary. + +Sat Jul 23 00:58:15 1994 Stu Grossman (grossman@cygnus.com) + + * target.c (unpush_target): Fix handling of removal of top target. + +Fri Jul 22 17:30:39 1994 Stu Grossman (grossman@cygnus.com) + + * Makefile.in: Add stuff to build nlmstub. + * Add rule for annotate.o to keep Sun make happy. + * configure.in: Add config for powerpc/Netware. + + * partial-stab.h (near N_SO): Don't call START_PSYMTAB with null + filename. This speeds up handling of trailing N_SO stabs (they + mark the end of a .o file). + + * target.c, target.h: Change the way pushing and popping of + targets work to support target overlays and inheritance. + * corelow.c, hppa-tdep.c, inflow.c, remote-nindy.c, utils.c: + Fixup references to current_target, due to previous changes. + + * config/i386/tm-i386nw.h: Enable longjmp support. More work is + needed to get the address of longjmp out of the target. + +Tue Jul 19 13:25:06 1994 Stan Shebs (shebs@andros.cygnus.com) + + * main.c: Include . + +Mon Jul 18 15:32:17 1994 Kung Hsu (kung@mexican.cygnus.com) + + * remote-mips.c (mips_readchar): Fix a bug in checking + prompt. + +Mon Jul 18 14:26:35 1994 Stan Shebs (shebs@andros.cygnus.com) + + * solib.c (look_for_base): Don't deref exec_bfd if NULL. + +Sun Jul 17 15:38:36 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.12.4. + +Sun Jul 17 12:20:35 1994 Stan Shebs (shebs@andros.cygnus.com) + + Harris CX/UX support, from Bob Rusk (rrusk@mail.csd.harris.com). + * configure.in (m88*-harris-cxux*): New configuration. + * cxux-nat.c, config/m88k/cxux.mh, config/m88k/cxux.mt, + config/m88k/xm-cxux.h, config/m88k/tm-cxux.h, config/m88k/nm-cxux.h: + New files. + * config/m88k/tm-m88k.h: Add comment about Harris OS. + (TARGET_WRITE_PC): Pass pid through to register writers. + + * configure.in (m68*): Put vendor-only-specified host configs + after vendor-and-os-specified configs. + (m68*-atari-sysv4*, m68*-cbm-sysv4*): Replace with m68*-*-sysv4. + + * config/m88k/delta88.mh (MUNCH_DEFINE): Remove. + * config/m88k/delta88.mt, config/m88k/delta88v4.mh: Format + consistently. + +Sat Jul 16 23:39:17 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * elfread.c (elf_symtab_read): Handle error return from + bfd_get_dynamic_symtab_upper_bound gracefully. + +Sat Jul 16 14:43:17 1994 Stan Shebs (shebs@andros.cygnus.com) + + * inferior.h (ARCH_NUM_REGS): New macro, actual number of + registers in use by the inferior. + * coredep.c (fetch_core_registers, register_addr): Use it. + * findvar.c (registers_changed, registers_fetched, + read_register_bytes): Ditto. + * infcmd.c (do_registers_info, registers_info): Ditto. + * infptrace.c (fetch_inferior_registers, + store_inferior_registers): Ditto. + * stack.c (frame_info): Ditto. + + * coredep.c (CORE_REGISTER_ADDR): New macro. + (fetch_core_registers): Use it. + + * breakpoint.c (ignore, condition): Add usage notes to help strings. + * symfile.c (add-symbol-file): Add usage note to help string. + (add_shared_symbol_files_command): New command. + + gcc -Wall lint. + * inferior.h (read_pc_pid): Declare. + * breakpoint.c (watchpoint_check): Cache breakpoint in local + variable b, remove unused variable other_type_used. + * main.c (inferior.h, call-cmds.h): Include. + (gdb_init): Declare. + * remote.c (remote_wait): Return 0 by default. + +Fri Jul 15 16:43:33 1994 Stan Shebs (shebs@andros.cygnus.com) + + Stop printing at null char option, from Oliver Meyer + (omeyer@i3.informatik.rwth-aachen.de). + * valprint.h, valprint.c (stop_print_at_null): New global. + * valprint.c (_initialize_valprint): New print set subcommand + "null-stop". + * c-valprint.c (c_val_print): If stop_print_at_null is on, and + printing a char array, adjust the number of chars to print. + +Fri Jul 15 14:33:40 1994 Stan Shebs (shebs@andros.cygnus.com) + + From Kevin A. Buettner (kev@cujo.geg.mot.com). + * m88k-tdep.c (examine_prologue): Modified to handle prologues for + pic code in addition to prologues where an instruction from the + prologue gets moved into the delay slot of a branch instruction + immediately following the prologue. A table of potential prologue + instructions (prologue_insn_tbl) is now used for picking apart a + function prologue. + (frame_find_saved_regs): Changed the way in which limit gets set + so that the delay slot of branch instructions immediately + following the prologue gets examined. + (pushed_size, store_parm_word, store_parm, push_parameters, + collect_returned_value): Deleted. + +Fri Jul 15 01:06:00 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Handle stepping into leaf + functions whose prologue consists of gp loading code only. + +Thu Jul 14 14:22:12 1994 Stan Shebs (shebs@andros.cygnus.com) + + * dbxread.c: Don't include libbfd.h. + * dwarfread.c, elfread.c somread.c: Don't include libbfd.h, + , or . + * elfread.c (elf_symfile_read): Use only standard BFD functions to + collect information about the stab and stab string sections. + +Thu Jul 14 13:17:39 1994 Kung Hsu (kung@x1.cygnus.com) + + * stabsread.c (read_huge_number): handle large unsigned number + for stabs generated by os9k C compiler. + +Wed Jul 13 18:58:15 1994 Stan Shebs (shebs@andros.cygnus.com) + + Breakpoint hit counts, from Bob Rusk (rrusk@mail.csd.harris.com). + * breakpoint.h (hit_count): New breakpoint field. + * breakpoint.c (show_breakpoint_hit_counts): New variable. + (clear_breakpoint_hit_counts): New function. + (bpstat_stop_status): Increment the hit count. + (breakpoint_1): Display the hit count. + * infcmd.c (run_command): Reset breakpoint hit counts. + * target.c (generic_mourn_inferior): Don't clear ignore counts if + displaying hit counts. + +Tue Jul 12 12:23:15 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * elfread.c (elf_symfile_read): Unconditionally add dynamic + symbols for all symbol files. Makes skipping over the + trampoline code work when stepping from a function in a shared + library into a function in a different shared library for Irix 5. + Other ELF targets do not have enough information in their + dynamic symbol tables to make this work. + (elf_symtab_read): Relocate mst_solib_trampoline address. + +Mon Jul 11 16:38:49 1994 Stan Shebs (shebs@andros.cygnus.com) + + Atari support, from Uwe Seimet (seimet@chemie.uni-kl.de). + * configure.in (m68*-atari-sysv4*): New configuration. + (m68*-cbm-sysv4*): Use m68kv4 instead of amix. + * m68k-tdep.c (R_PS): Define as R_SR if necessary. + * config/m68k/m68kv4.mh, config/m68k/m68kv4.mt, + config/m68k/tm-m68kv4.h, config/m68k/xm-m68kv4.h: New files. + * config/m68k/amix.mh, config/m68k/amix.mt, + config/m68k/tm-amix.h, config/m68k/xm-amix.h: Removed, superseded + by m68kv4 files. + +Sat Jul 9 16:28:43 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.c (find_function_start_sal): New function to find + the start of a function from a function symbol. + (decode_line_1, decode_line_2): Use it instead of open coded + partial copies of the code. + (list_symbols): Quote symbol name before passing it to + break_command to enable proper handling of mangled symbols. + +Wed Jul 6 20:22:07 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * ch-exp.y (match_simple_name_string): Don't lower-case here. + * ch-exp.y (yylex): First try name lookup using exact name + typed by user; if that fails, try lower-cased name. + +Wed Jul 06 12:39:07 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: More cleanups. Delete lots of trailing whitespace. + Remove some items from the TODO list and notes throughout code + for things which need fixing. Add more comments. + Document bogus struct symloc sharing with dbxread.c. Delete more + useless variables. Add more PARAM prototypes. Fixup more + indention problems that have crept in. + (SET_NAMESTRING): Accept new namep and objfile arguments so that + it doesn't depend on the variable names on the procedures it's + used from. + (hpread_symfile_init): Delete incorrect checks for bogus sizes of + the debug sections. + +Wed Jul 6 00:48:57 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c, elfread.c, mipsread.c, nlmread.c, os9kread.c: + Move "no debugging symbols found" test to symfile.c. + * symfile.c (syms_from_objfile, reread_symbols): Add + "no debugging symbols found" test. + * coffread.c (init_stringtab): Handle stripped files with a + stringtab offset of zero gracefully. + * osfsolib.c (solib_create_inferior_hook): Use DYNAMIC flag from + BFD instead of stop_pc heuristic to determine if it is a dynamically + linked object file. + * procfs.c (wait_fd): Handle ENOENT error return from PIOCWSTOP + ioctl, it indicates that the process has exited. + +Mon Jul 04 19:48:03 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (hpread_symfile_init): Make sure to initialize all the + private data to zero. Not having any HP C debug symbols is not an + error. Just return. + +Mon Jul 4 19:28:56 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (read_unwind_info): ELF unwind information is in the + .PARISC.unwind section now. + +Mon Jul 4 17:06:26 1994 Stan Shebs (shebs@andros.cygnus.com) + + * breakpoint.c (mention): Always show breakpoint address if no + source file. + +Sat Jul 2 01:51:33 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * solib.c (bfd_lookup_symbol, look_for_base): Reinstate to reenable + handling of shared libraries for non-ELF executables, but only if + HANDLE_SVR4_EXEC_EMULATORS is defined. + (locate_base): Try to find debug_base in the dynamic linker + for non-ELF executables if HANDLE_SVR4_EXEC_EMULATORS is defined. + * config/sparc/tm-sun4sol2.h (HANDLE_SVR4_EXEC_EMULATORS): + Define to enable handling of shared libraries for a.out executables, + run under Solaris BCP. + +Fri Jul 01 19:50:21 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c: Change contribution notice to the Cygnus/Utah agreed + upon notice. Delete some stuff from the TODO list. Rework + many comments to be clearer. Major cleanups. Consistently + use "hpread_" prefix. Delete unnecessary macros, structures + variables, fiels, functions and #if 0 code. Mark code which + still needs to be cleaned up. PARAMize and make most functions + static. Fix error checking when reading in the debug section + contents. No more minimal symbol table handling in this code! + +Thu Jun 30 13:59:23 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Print "Program exited normally" + regardless of batch_mode. + * defs.h, top.c (batch_mode): Removed. + +Wed Jun 29 18:53:36 1994 Stan Shebs (shebs@andros.cygnus.com) + + * Makefile.in (dcache_h): Remove redundant definition. + (init.c): Add a comment. + (top.c): Remove explicit compile action. + * breakpoint.c (mention): Share code indicating location of + break/watchpoints, don't print address if addressprint is off. + * breakpoint.c, c-typeprint.c, c-valprint.c, energize.c, symtab.h + (demangle): Remove redundant declarations. + * eval.c: Remove redundant function declarations. + * objfiles.h: Cosmetic and grammatical improvements. + * TODO: Various updates. + + * remote-mips.c: Replace all \r chars with \015. + (mips_receive_header): Display control characters readably. + (mips_xfer_memory): Add a simple progress display. + +Wed Jun 29 13:11:45 1994 Steve Chamberlain (sac@cirdan.cygnus.com) + + * remote-e7000.c (e7000_open): Don't try a tcp open if we're + using go32. + * remote-hms.c (flush): New function. + (expect): Get edge case right. + (hms_read_inferior_memory): Be more tolerant of line noise. + +Tue Jun 28 14:17:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * configure.in: Use i386m3.mh and i386m3.mt as names of host and + target files, not non-existent mach3.mh and mach3.mt. + +Wed Jun 29 00:26:17 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c (dbx_symfile_read): Unconditionally add dynamic + symbols for all symbol files. Makes skipping over the + trampoline code work when stepping from a function in a shared + library into a function in a different shared library. + (read_dbx_dynamic_symtab): Relocate mst_solib_trampoline address. + +Tue Jun 28 15:28:01 1994 Stu Grossman (grossman@cygnus.com) + + * dbxread.c, partial-stab.h (near N_SO): SO stabs with blank + names mean end of .o file. + * infrun.c (wait_for_inferior): Clean up multi-thread logic near + top of routine. Handle new thread notification cleanly. + * lynx-nat.c (child_wait): General cleanups, handle new LynxOS + thread notification scheme. + * (child_resume): General cleanups, handle resumption of all + threads properly. + +Mon Jun 27 09:57:23 1994 Steve Chamberlain (sac@cirdan.cygnus.com) + + * ser-go32.c: Rewrite to run under windows. + * ser-e7kpc.c: New file to support the E7000 with the PC ISA + bus interface. + * serial.c (serial_open): Notice device "pc". + * remote-e7000.c: Fix copyright date. + (expect): Compare \n and \r the same. + (e7000_open): Allow pc as a serial port + * sh/sh.mt: Add ser-e7kpc. + * h8300/h8300hms.mt: Add ser-e7kpc. + * main.c (proc_wait): Don't wait if using go32. + +Mon Jun 27 00:35:51 1994 Jeff Law (law@snake.cs.utah.edu) + + * somread.c: Simplify by using stabsect_build_psymtabs. + * dbxread.c (stabsect_build_psymtabs): New argument "text_name" + corresponding to the name of the text section. All references + changed. + (somstab_build_psymtabs): Delete function, no longer needed. + +Sun Jun 26 23:54:08 1994 Jeff Law (law@snake.cs.utah.edu) + + * somread.c: Renamed from paread.c. Changed function names and + comments to reflect that this file deals with SOM (an object file + format), rather than the PA (a cpu). + (Makefile.in): Chaned appropriately. + (config/pa/hppabsd.mh, config/pa/hppahpux.mh): Likewise. + * dbxread.c (somstab_build_psymtabs): Renamed from + pastab_build_psymtabs. + +Fri Jun 24 08:15:42 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * core-sol2.c: New file to handle ELF and BCP core file flavours. + * config/sparc/sun4sol2.mh (NATDEPFILES): Use it instead of + core-svr4. + * Makefile.in: Updated for core-sol2.c. + * README: Add notes about SPARCworks cc under Solaris 2.x, + from Casper H.S. Dik (casper@fwi.uva.nl). + * config/mips/xm-makeva.h: Removed, no longer necessary. + * Makefile.in, config/mips/xm-irix3.h, config/mips/xm-irix5.h, + config/mips/xm-mips.h, config/mips/xm-news-mips.h, + config/mips/xm-riscos.h: Remove references to xm-makeva.h + +Wed Jun 22 17:48:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdba.el: Put program input and output in a separate buffer. + +Wed Jun 22 16:54:15 1994 Fred Fish (fnf@cygnus.com) + + * energize-patches, main.c (main), top.c (gdb_init, pwd_command), + top.h: Change all occurances of dirbuf to gdb_dirbuf. Collides + with global variable of same name in libnsl.so on UnixWare. + +Wed Jun 22 14:40:52 1994 Kung Hsu (kung@mexican.cygnus.com) + + * symtab.c (decode_line_1): fix a bug in dealing with '<>' + embedded in template name. + +Tue Jun 21 14:06:46 1994 Kung Hsu (kung@mexican.cygnus.com) + + * config/i386/nm-linux.h: change calling convention of + TARGET_CAN_USE_HARDWARE_WATCHPOINT() and + target_insert_watchpoint() and + target_remove_watchpoint(). + + * config/mips/tm-mips64.h: define FORCE_LONG_LONG to force LONGEST + to be long long in gdb. + * config/mips/tm-bigmips.h: ditto. + +Mon Jun 20 23:54:37 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-lang.c (asm_language_defn): New definitions for language_asm, + mostly copied from c_language_defn, to avoid warnings when + switching between c and asm stack frames. + +Mon Jun 20 13:51:55 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * mdebugread.c (parse_symbol): Don't call ecoff_swap_tir_in or + ecoff_swap_rndx_in directly; use the debug_swap pointer instead. + (upgrade_type, handle_psymbol_enumerators): Likewise. + (has_opaque_xref, cross_ref): Likewise. + (elfmdebug_build_psymtabs): Call swap->read_debug_info to read + debugging information, rather than doing it here. + * mipsread.c (mipscoff_symfile_read): Call read_debug_info entry + point in ecoff_debug_swap backend structure, rather than calling + ecoff_slurp_symbolic_info directly. + +Fri Jun 17 20:58:58 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c: Include annotate.h. Call annotate_field rather + than printing annotation directly. + + * main.c: Include string.h. + +Thu Jun 16 14:41:37 1994 Stan Shebs (shebs@andros.cygnus.com) + + * fork-child.c (startup_inferior) [STARTUP_INFERIOR]: If defined, + call it instead of doing normal loop. + * infcmd.c (attach_command): Don't call wait_for_inferior if + running Mach 3. + * infrun.c (proceed) [PREPARE_TO_PROCEED]: If defined, call + hook that can decide whether to step over the next breakpoint. + * utils.c (wrap_here): Abort if wrap_buffer not allocated. + (request_quit) [REQUEST_QUIT]: If defined, call it instead of + doing normal quit. + + * configure.in: Improve sorting/formatting of hosts and targets. + (i[34]86-*-mach3*, i[34]86-*-osf1mk*, mips-*-mach3*, + m88*-*-mach3*, ns32k-*-mach3*): Recognize. + * Makefile.in (stop-gdb): New target. + * stop-gdb.c: New file, utility to get attention of waiting GDBs + in Mach 3. + +Wed Jun 15 00:41:03 1994 Tom Lord (lord@rtl.cygnus.com) + + * top.c (gdb_init): Init current_directory in gdb_init. Probably + the identical initialization can be deleted from main.c, but i + haven't done so just in case. + +Tue Jun 14 17:24:41 1994 Tom Lord (lord@x1.cygnus.com) + + * gdba.el: Added menu windows and slightly improved window + handling to gdba.el. Fixed numerous minor bugs that were causing + emacs and gdb to fall out of sync. + +Tue Jun 14 16:18:44 1994 Kung Hsu (kung@mexican.cygnus.com) + + * breakpoint.c: annotate changes lost at merge, put back in. + +Mon Jun 13 17:28:50 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/i386/i386sco.mh, i386sco4.mh (XDEPFILES): Remove + i387-tdep.o. + +Sun Jun 12 03:51:52 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/m68k/dpx2.mh (NATDEPFILES): Remove duplicate inclusion + of inftarg.o. + * config/m68k/tm-dpx2.h (CANNOT_STORE_REGISTER): Define to inhibit + writing of floating registers, the dpx2 kernel disallows it. + * irix5-nat.c (LM_ADDR): The loaded address of the shared library + is contained in o_praw. + * irix5-nat.c (solib_map_sections): Adjust sections by the + difference between the loaded address and the prelinked address. + * irix5-nat.c (solib_address): Use LM_ADDR for the loaded start + address. + * mdebugread.c (parse_symbol): Do not relocate stEnd/scText + symbols, their value is absolute. + * mdebugread.c (parse_partial_symbols): Handle Irix 5.2 shared + libraries fh->adr fields of zero. Relocate minimal symbol values + upon readin. Relocate non-stabs symbols upon readin. + * mdebugread.c (psymtab_to_symtab_1): Use pst->textlow for the + start address of the outermost block. + * mdebugread.c (parse_lines, parse_procedure): Pass in pst + instead of section_offsets and use relocated pst->textlow for + line number and procedure address relocations. + + From gmo@MicroUnity.com (Guillermo A. Loyola): + * mdebugread.c (parse_symbol, parse_partial_symbols, cross_ref): + Handle SGI Irix5 stIndirect symbol type. + +Fri Jun 10 14:52:56 1994 Kung Hsu (kung@mexican.cygnus.com) + + * breakpoint.c: fix a syntax error native cc does not like. + + * Makefile.in: change sparclite-tdep.c to sparcl-tdep.c. + * sparclite/Makefile.in: ditto. + * sparcl-tdpe.c: change file name because first 8 chars has to be + unique. + * sparcl-stub.c: ditto. + + * sparclite/Makefile.in: fix INCLUDE_CFLAGS to have {srcdir}/../config. + +Fri Jun 10 10:38:15 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (target_read_pc, target_write_pc): Accept (and + ignore) a PID argument. + (hppa_pop_frame): Pass a PID to target_write_pc. + * config/pa/tm-hppa.h (TARGET_READ_PC, TARGET_WRITE_PC): Accept + and pass through a PID argument. + (target_read_pc, target_write_pc): Update prototypes. + +Thu Jun 9 18:10:44 1994 Kung Hsu (kung@mexican.cygnus.com) + + * Makefile.in: add new file sparclite-tdep.c. + * sparclite/Makefile.in: add new file sparclite-stub.c. + * sparclite/hw_breakpoint.note: note for SPARClite hardware breapoint + support. + * config/sparc/sparclite.mt: add sparclite-tdep.o. + * config/sparc/tm-sparclite.h: add hardware breakpoints support + defiines and code. + * sparclite-tdep.c: new file, contains hardware breakpoint support + code. + * sparclite-stub.c: new file, stub code that add support hardware + breakpoint support. + * breakpoint.c: add hardware breakpoint support. + * breakpoint.h: add new breakpoint type to support hardware + breakpoint. + * config/mips/nm-irix4.h: change interface for target dependent + code supporting watch point. + * config/pa/nm-hppab.h: change interface for target dependent + code supporting watch point. + +Thu Jun 9 14:59:58 1994 Kung Hsu (kung@mexican.cygnus.com) + + * remote-os9k.c (rombuf_command): fix a bug accepting rombug + output. + * stabsread.c (read_struct_fields): os9k nested structure does not + have terminating ';', instead it just get to ',' and bit position + and length. + +Wed Jun 8 23:20:45 1994 Stu Grossman (grossman@cygnus.com) + + * nlmread.c (nlm_symtab_read): Clean up a bit. + * (nlm_symfile_read): Record bounds of main() so that backtrace + command will know where to stop. + * objfiles.c (objfile_relocate): Relocate entry point/func info + for backtrace as well. + * objfiles.h: Define values for invalid PCs for entry point info. + * symfile.c (init_entry_point_info): Initialize invalid values + with aforementioned macros. + * config/alpha/tm-alphanw.h: Turn on FRAME_CHAIN_VALID_ALTERNATE + to cause backtrace to stop when it gets back to main(). + * config/i386/tm-i386nw.h: Ditto. + +Sat Jun 4 18:17:03 1994 Per Bothner (bothner@kalessin.cygnus.com) + + Fix value_print, which used to be ostensibly language-independent, + but would print pointers and arrays in C syntax. Instead, call + a language-specific function. + * language.h (struct language_defn): New functional field + la_value_print. + (LA_VALUE_PRINT): New macro. + * language.c (unk_lang_value_print): New stub/dummy function. + (unknown_language_defn, auto_language_defn, local_language_defn): + Use it. + * c-valprint.c (c_value_print): New function, with code moved from: + * valprint.c (value_print): ... here. Now just invoke + LA_VALUE_PRINT to do language-specific stuff. + * valprint.c (value_print_array_elements): Make non-static. + * c-lang.c (c_language_defn, cplus_language_defn): Add + c_value_print in the la_value_print field. + * m2-lang.c (m2_language_defn): Likewise. + * ch-lang.c (chill_language_defn): But here use chill_value_print. + * ch-valprint.c (chill_val_print): Print null pointer as NULL. + * ch-valprint.c (chill_value_print): New function, based on + c_value_print, but use Chill "look and feel." + * c-lang.h (c_value_print): New prototype. + * ch-lang.h (chill_value_print): New prototype. + * value.h (value_print_array_elements): New prototype. + + * ch-valprint.c (chill_val_print, case TYPE_CODE_BITSTRING + and case TYPE_CODE_SET): Check that the element type isn't a stub. + +Fri Jun 3 09:15:00 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c: Move entire file except for #ifndef MAIN_OVERRIDE code + to new file top.c. Make things extern instead of static and + similar rearrangements to deal with this. + * top.h: New file. + * utils.c: Move fputs_unfiltered to main.c. Remove + FPUTS_UNFILTERED_OVERRIDE ifndef. + * Makefile.in: Change so that gdb uses main.c, utils.c, and top.c, + and libgdb uses utils.c and top.c. + +Thu Jun 2 23:19:10 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (skip_trampoline_code): Fix typo. + +Thu Jun 2 18:09:59 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * ch-valprint.c (chill_val_print_array_elements): New function. + A Chill version of val_print_array_elements, it prints the + array index labels, in additions ot the array element values. + (chill_val_print): Use the new function. + +Thu Jun 2 08:50:00 1994 Stu Grossman (grossman@cygnus.com) + + * configure.in: Add nlm subdir to configdirs for alpha-*-netware + target. + * defs.h (enum language): Add language_asm. + * findvar.c (read_register_bytes read_register_gen + write_register_bytes read_register read_register_pid + write_register write_register_pid supply_register): Move multi- + thread handling down into these routines. Create XXX_pid routines + that allow register references to specify the pid. + * findvar.c infcmd.c (read_pc read_pc_pid write_pc write_pc_pid + read_sp write_sp read_fp write_fp): Move these routines from + infcmd to findvar to centralize the whole mess. + * i386-nlmstub.c: Portability fixes. + * infptrace.c (child_resume): Conditionalize to allow other natives + to override it. Remove PIDGET gubbish, it's no longer necessary. + * infrun.c (wait_for_inferior): Put registers_changed() before + target_wait() to speed up remote debugging. + * Replace code that reads registers from other threads with much + nicer looking new function calls (see changes to findvar.c). + * Don't skip prologues if debugging assembly source. + * lynx-nat.c (child_resume): Lynx now needs it's own version of + child_resume to handle multi-thread debugging properly. + * remote.c: Add O response to get console output from target. + * (readchar): Add timeout parameter. Handle SERIAL_EOF and + SERIAL_ERROR here to simplify callers. + * Change static var timeout to remote_timeout. + * (fromhex): Remove unnecessary return -1 at end of routine. + * (remote_wait): Turn this into a big switch statement. Add + support for O response. + * (putpkt): Remove unnecessary handling of SERIAL_EOF/ERROR. + * (getpkt): Split getpkt into two parts. read_frame deals with + all formatting issues, run-length encoding, and framing. getpkt + now handles error recovery, and frame detection. + * ser-tcp.c (tcp_readchar): Handle EINTR from read(). + * ser-unix.c (hardwire_raw): Set CLOCAL so that we ignore modem + control. (hardwire_readchar): Handle EINTR from read(). + * symfile.c (deduce_language_from_filename): Add support for .s + files. + * config/nm-lynx.h: Define CHILD_WAIT so that lynx-nat.c can + override infptrace's child_wait. + * config/rs6000/rs6000lynx.mh: Use xm-rs6000ly.h & nm-rs6000ly.h + instead of XXXlynx.h. + * config/rs6000/rs6000lynx.mt: Use tm-rs6000ly.h instead of + tm-rs6000lynx.h. + * nlm/gdbserve.c: Portability fixes. + +Tue May 31 20:35:44 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * inftarg.c (child_wait): Call proc_wait, not wait. + (child_mourn_inferior): Call proc_remove_foreign. + * main.c (gdb_init): Call init_proc. + * main.c: Provide dummy versions of init_proc, proc_wait, and + proc_remove_foreign for the gdb case (the libgdb case provides its + own versions of these functions). + * Makefile.in (libgdb-files): Add libproc.a. + +Wed Jun 1 11:08:52 1994 Stan Shebs (shebs@andros.cygnus.com) + + Hardware watchpoints for Linux, from Rick Sladkey + (jrs@world.std.com). + * infrun.c (wait_for_inferior) [HAVE_CONTINUABLE_WATCHPOINT]: Add + new hardware breakpoint recovery method. + * i386v-nat.c (i386_insert_watchpoint, + i386_insert_nonaligned_watchpoint, i386_remove_watchpoint, + i386_stopped_by_watchpoint) [TARGET_CAN_USE_HARWARE_WATCHPOINT]: + New functions to support the 386 hardware debugging registers. + * config/i386/nm-linux.h (TARGET_CAN_USE_HARDWARE_WATCHPOINT, + HAVE_CONTINUABLE_WATCHPOINT, STOPPED_BY_WATCHPOINT, + target_insert_watchpoint, target_remove_watchpoint): Define these + macros to use the hardware debugging functions in i386v-nat.c. + +Wed May 25 17:06:15 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in: Replace libgdb.a with libgdb-files. Make "all" + build it. + +Thu May 19 09:56:20 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.c, target.h: New variables target_activity_function and + target_activity_fd. + * inflow.c, inferior.h: New functions set_sigio_trap and + clear_sigio_trap. + * inftarg.c (child_wait), procfs.c (wait_fd): Call them. + +Wed May 18 13:01:55 1994 Doug Evans (dje@canuck.cygnus.com) + + * remote-sim.h (sim_verbose): Delete. + Document callbacks needed. + (sim_*): Change result to void where there isn't one. + (sim_open): Clarify argument and error response. + (sim_close): Declare. + (sim_load): Change bfd_handle argument to file name. Clarify result. + (sim_create_inferior): Renamed from sim_set_args. + (sim_set_pc): Delete. + (sim_info): Delete printf_fn argument. + * remote-sim.c (gdbsim_kill): Add comment describing purpose. + (gdbsim_load): Try sim_load first. + (gdbsim_create_inferior): Call sim_create_inferior. + (gdbsim_open): Handle args == NULL. Update call to sim_open. + (gdbsim_close): Call sim_close. + (gdbsim_files_info): Update call to sim_info. + (gdbsim_ops): Realign comments. + + * printcmd.c (decode_format): Allow TARGET_PTR_BIT to be non-constant. + +Tue May 17 16:45:20 1994 Stan Shebs (shebs@andros.cygnus.com) + + * xcoffread.c (read_xcoff_symtab): For C_FILE symbols, only use + the auxent if the symbol's name is ".file". From David Edelsohn + . + +Tue May 17 11:08:22 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (breakpoint_1): Fix typo. + + * annotate.c (annotate_field_end): Fix typo. + + * Makefile.in: Move annotate.o from COMMON_OBS to OBS. + + * Makefile.in (TSSTART): Remove; no longer used. + + * utils.c (vfprintf_maybe_filtered, vfprintf_unfiltered): Call + fputs_unfiltered and exit directly, rather than fatal. The latter + calls vfprintf_unfiltered! + + * gdbtypes.h, gdbtypes.c (can_dereference): New function. + * value.h, printcmd.c (print_value_flags): Move from here... + * annotate.c: ...to here, and make it use can_dereference. + +Sat May 14 15:13:52 1994 Stan Shebs (shebs@andros.cygnus.com) + + * inflow.c (job_control, attach_flag, generic_mourn_inferior): + Remove, needed for both native and cross. + * target.c (attach_flag, generic_mourn_inferior): Put here. + * utils.c (job_control): Put here. + (terminal.h): Don't include anymore. + +Sat May 14 09:11:44 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * source.c (find_source_lines): Always use code that was #ifdef + BROKEN_LARGE_ALLOCA. Do the cleanup before returning, rather than + leaving it on the chain. Reindent much of this function. + * config/sparc/{xm-sun4sol2.h,xm-sun4os4.h}, + config/i386/{xm-sun386.h,xm-i386m3.h,xm-i386mach.h}, + config/m68k/{sun3os4.h,xm-news.h,xm-hp300hpux.h}, + config/ns32k/xm-ns32km3.h: Remove all references to + BROKEN_LARGE_ALLOCA; with the above change it is no longer needed. + * main.c, fork-child.c, many config files: Remove all + SET_STACK_LIMIT_HUGE code; with the above changes it should no + longer be needed. + + * symtab.c (lookup_partial_symbol): Use if and abort, not assert. + This avoids __eprintf troubles. + +Fri May 13 08:10:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (main): Surround in #ifndef MAIN_OVERRIDE. Move + initialization code which needs to be called even if we bypass the + command line stuff into gdb_init. + * utils.c (fputs_unfiltered): Surround in #ifndef + FPUTS_UNFILTERED_OVERRIDE. + * Makefile.in (libgdb.a): New target. + + * utils.c: Rearrange I/O stuff a bit so that all output goes + through fputs_unfiltered. Use vasprintf; removes arbitrary limit + which made %s not work with arbitrarily large strings. + * printcmd.c (printf_command): Use printf_filtered, not + printf_unfiltered and printf, now that arbitrary limit is gone. + + gcc -Wall lint: + * breakpoint.c (watchpoint_check): Remove unused variable b. + * stack.c (print_frame_info): Move sp and buf inside #if. + * eval.c (evaluate_subexp): Remove unused variables pp, + mangle_ptr, ptr, and mangle_tstr. + * valarith.c (value_x_binop): Remove unused variables mangle_tstr + and mangle_ptr. + * symtab.c (lookup_symtab): Put variable copy inside #if. + (decode_line_1): Put variable q1 inside #if 0. + * target.h: Declare target_link. + * infrun.c (wait_for_inferior): Remove unused variables signame. + * remote.c (remote_resume): Remove unused variable name. + * c-exp.y (parse_number): Parenthesize operand of shift. + * dbxread.c (record_minimal_symbol): Parenthesize operand of && + (this is a semantic change, the warning seems to have detected a bug). + * dbxread.c (end_psymtab): Move variable p1 inside #if. + * coffread.c: Move variable temptype inside #if. + * ch-typeprint.c (chill_type_print_base): Remove unused variable + name. + * ch-valprint.c: #include typeprint.h and ch-lang.h. + (chill_val_print): Remove unused variable in_range. + (chill_val_print): Remove statement "length > TYPE_LENGTH (type);". + (chill_val_print): Add default case for switch. + * stabsread.h: Declare stabsect_build_psymtabs. + * os9kread.c (read_minimal_symbols): Make this return void. + (os9k_symfile_read): Remove unused variables stb_exist and val. + (os9k_symfile_init): Remove unused variable val. + (fill_sym): Remove unused variable id. + (read_os9k_psymtab): Put variable back_to inside #if 0. Remove + unused variable nsl. + Remove unused variable symfile_bfd. + #if 0 unused variables lbrac_unmatched_complaint and + lbrac_mismatch_complaint. + Remove declaration for non-existent function os9k_next_symbol_text. + + * annotate.c, annotate.h: New files, containing a function for + each annotation which outputs it. + * Move breakpoints_changed from breakpoint.c to annotate.c. + * breakpoint.c, blockframe.c, infrun.c, cp-valprint.c, main.c, + printcmd.c, source.c, stack.c, utils.c, valprint.c: + Use annotate.c functions to output annotations. + * Makefile.in (OBS): Add annotate.o. + +Thu May 12 10:46:27 1994 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (read_unwind_info): Make sure elf_unwind_size and + elf_unwind_entries are always initialized. + + * hppa-tdep.c (skip_trampoline_code): Handle argument relocation + stubs which return directly to the caller rather than to the stub + itself. + +Wed May 11 20:11:51 1994 Stan Shebs (shebs@andros.cygnus.com) + + * c-exp.y (yyerror): Display a more informative error message. + * ch-exp.y (yyerror): Ditto, don't use global yychar. + * m2-exp.y (yyerror): Ditto. + +Tue May 10 11:57:53 1994 Stan Shebs (shebs@andros.cygnus.com) + + * inflow.c (job_control): Move definition to front of file. + +Tue May 10 14:42:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * maint.c (print_section_table): Rename SEC_SHARED_LIBRARY to + SEC_COFF_SHARED_LIBRARY to match corresponding change in bfd. + +Fri May 6 13:30:22 1994 Stan Shebs (shebs@andros.cygnus.com) + + * Makefile.in (kdb): Remove old init.c creation commands. + * configure.in (sparclite): Match on sparclite*. + * sparclite/aload.c (main): Only change section addresses for + a.out format object files. + +Fri May 6 13:24:04 1994 Steve Chamberlain (sac@cygnus.com) + + * config/i386/go32.mh: Define CC. + +Fri May 6 11:56:54 1994 Stan Shebs (shebs@andros.cygnus.com) + + * gdbserver/Makefile.in: Remove irrelevant definitions and + comments inherited from the gdb Makefile. + (BFD_DIR, BFD, BFD_SRC, BFD_CFLAGS): Add from gdb Makefile. + (VERSION): Update to 4.12.3. + (gdbserver): Remove any existing executable first. + (distclean, realclean): Remove nm.h. + * gdbserver/low-lynx.c: Add Sparc Lynx support. + * gdbserver/low-sparc.c, gdbserver/low-sun3.c (sys/wait.h): + Don't use absolute pathname. + +Thu May 5 12:00:22 1994 Stan Shebs (shebs@andros.cygnus.com) + + * rs6000-nat.c (vmap_ldinfo): Don't fail if fstat returns an + error. + +Wed May 4 06:56:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (proceed, normal_stop, wait_for_inferior), breakpoint.c + (print_it_normal): Add annotations for the inferior starting and + stopping, and for all the various messages related to how it + stopped. + + * printcmd.c (do_one_display): Annotate. + * stack.c (print_frame_info): Annotate printing of stack frames. + +Wed May 4 18:15:51 1994 Stu Grossman (grossman@cygnus.com) + + * remote.c (get_offsets): Handle case where stub doesn't support + qOffsets message. + +Wed May 4 15:30:39 1994 Per Bothner (bothner@kalessin.cygnus.com) + + Add partial support for g++ code compiled with -fvtable-thunks. + * c-valprint.c (c_val_print): Add vtblprint support + when using thunks. + * cp-valprint.c (cp_is_vtbl_member): A vtable can be an array of + pointers (if using thunks) as well as array of structs (otherwise). + * cp-valprint.c (vtbl_ptr_name_old, vtbl_ptr_name): Move to global + level, and make the latter non-static (so define_symbol can use it). + * stabsread.c (define_symbol): If the type being defined is a + pointer type named "__vtbl_ptr_type", set the TYPE_NAME to that name. + * symtab.h (VTBL_PREFIX_P): Allow "_VT" as well as "_vt". + * values.c (value_virtual_fn_field): Handle thunks. + * values.c (value_headof): Minor efficiency hack. + * values.c (value_headof): Incomplete thunk support. FIXME. + +Wed May 4 06:56:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valprint.c (print_longest): Clarify comment about use_local. + * printcmd.c, defs.h (print_address_numeric), callers in + symmisc.c, symfile.c, stack.c, source.c, remote.c, infcmd.c, + cp-valprint.c, core.c, ch-valprint.c, c-valprint.c, breakpoint.c, + exec.c: New argument use_local. + * source.c (identify_source_line): Use filtered output. Use + print_address_numeric. + + * core.c (memory_error), symtab.c (cplusplus_hint, decode_line_1), + language.c (type_error, range_error): Use filtered output. + * utils.c (error_begin): Update comment to tell people to use + filtered output. + + * Makefile.in (HFILES_WITH_SRCDIR): List bfd.h. + (HFILES_NO_SRCDIR): List gdbcore.h not gdbcore_h, so as not to get + bfd.h. + +Tue May 3 07:41:33 1994 Jim Kingdon (kingdon@cygnus.com) + + * procfs.c (procfs_wait): Reinstate code which deduces the signal + from the fault, #ifndef FAULTED_USE_SIGINFO. + * config/sparc/tm-sun4sol2.h: Define FAULTED_USE_SIGINFO. + +Fri Apr 29 18:15:04 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (breakpoint_1): Annotate each field of the headers. + Explicitly annotate each record. + +Fri Apr 29 15:56:18 1994 Stan Shebs (shebs@andros.cygnus.com) + + * xcoffexec.c: Reformat to standards and lint. + (language.h): Include. + (exec_close): Declare arg "quitting". + (file_command): Declare arg "from_tty". + (map_vmap): Cast xmalloc result to PTR. + * rs6000-nat.c: Reformat to standards and lint. + (exec_one_dummy_insn): Use char array for saved instruction. + (fixup_breakpoints): Declare. + (vmap_ldinfo): Be more informative in fatal error messages. + (xcoff_relocate_symtab): Define to return void. + * xcoffsolib.h: Reformat to standards, improve comments. + * config/rs6000/nm-rs6000.h (xcoff_relocate_symtab): Declare. + +Thu Apr 28 08:40:56 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c, defs.h (error_begin): New function. + (quit): Print annotation before printing the error message. + * main.c (return_to_top_level): Print annotation before doing the + longjmp. + * symtab.c (decode_line_1): Call error not warning and then + return_to_top_level. Call error_begin and printf_unfiltered + rather calling warning (before calls to return_to_top_level). + * core.c (memory_error): Use error_begin, printf_unfiltered, + print_address_numeric and return_to_top_level instead of error. + Cleans up a FIXME-32x64. + * language.c (type_error, range_error): Call error_begin + not just target_terminal_ours. + + * dbxread.c (stabsect_build_psymtabs): Assign to sym_stab_info + directly, rather than via DBX_SYMFILE_INFO. A cast on the left + side of an assignment is non-portable. + + * utils.c (query): Change syntax of query annotations to be + consistent with other input annotations. + (prompt_for_continue): Likewise for prompt-for-continue annotation. + +Thu Apr 28 01:20:39 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (psymtab_to_symtab_1): Do not call sort_blocks + for stabs symtabs. + * mips-tdep.c (mips_skip_prologue): Handle prologues for functions + that have a stack frame size of 32k or larger (from Paul Flinders). + Remove #if 0'd code. + +Wed Apr 27 16:33:51 1994 Stan Shebs (shebs@andros.cygnus.com) + + * lynx-nat.c (CANNOT_STORE_REGISTER): Add a fallback definition + for Lynx platforms that need it. + * config/nm-lynx.h (__LYNXOS): Define if not already defined. + +Wed Apr 27 16:01:37 1994 Jim Kingdon (kingdon@cygnus.com) + + * procfs.c (procfs_wait): Use the signal from the pr_info rather + than trying to deduce it from the fault. + +Wed Apr 27 12:22:46 1994 Steve Chamberlain (sac@cygnus.com) + + * printcmd.c (print_address_symbolic): Initialize name to empty + string to avoid core dump if lookup fails. + * remote-e7000.c (printf_e7000debug): Error if target not open. + +Tue Apr 26 22:45:24 1994 Stu Grossman (grossman at cygnus.com) + + * i386-nlmstub.c: Update to be more in line with PIN stub. + * nlm/gdbserve.c (putDebugChar): Install bug fix from i386-nlmstub. + * (hex2mem): Init ptr. + * General cleanups to use ConsolePrintf, standard prologues, etc... + +Tue Apr 26 10:23:04 1994 Stu Grossman (grossman at cygnus.com) + + * i386-nlmstub.c: More changes to be compatible with remote.c. + + * dbxread.c: Move a bunch of strncmps out of process_one_symbol + into (the far less frequently called) dbx_symfile_read. + + * i386-nlmstub.c: An interim version till we get PIN for the x86. + +Tue Apr 26 09:50:45 1994 Stu Grossman (grossman at cygnus.com) + + * dbxread.c (record_minimal_symbol): Record the section + associated with the symbol to make dynmaic relocation work. + * (dbx_symfile_read, process_one_symbol): Fixes to work around + Solaris brain-damage which don't apply to relocatable object + files. + * (stabsect_build_psymtabs): New routine to read stabs out of an + arbitrarily named section. + * nlmread.c (nlm_symtab_read): Read ALL syms from the NLM, not just + globals. + * (nlm_symfile_read): Call stabsect_build_psymtabs to read the + stabs out of the nlm. + * partial-stabs.h (cases 'f' & 'F'): Fixes to work around Solaris + brain-damage which don't apply to relocatable object files. + * remote.c (putpkt): Improve error reporting and error handling. + * (get_offsets): Temporary kludge to force data & bss sections to + have the same relocation. + * stabsread.c (define_symbol, scan_file_globals): Record section + info in sym. + +Sat Apr 23 19:05:52 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (breakpoint_1): Annotate each field of output. Add + FIXME-32x64 comment. + +Fri Apr 22 16:43:54 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Move call to flush_cached_frames + to after call to target_wait. This means that flush_cached_frames + can call target_terminal_ours if it wants to. + * infrun.c (wait_for_inferior) [HAVE_NONSTEPPABLE_WATCHPOINT]: Add + comment about why the code is dubious. + + * stabsread.c (read_type): Call read_type, not nonexistent + os9k_read_type. + +Fri Apr 22 14:25:36 1994 Kung Hsu (kung@mexican.cygnus.com) + + * remote-os9k.c (rombug_fetch_registers): set trace mode + correctly. + * remote-os9k.c (rombug_read_inferior_memory): cache data in + buffer. + * os9kread,c (read_os9k_psymtab): process file symbol to truncate + extra info. + * os9kread.c (os9k_read_ofile_symtab): proper casting of args + passed to process_one_symbol. + * stabsread.c (read_type): process os9k functio prototype. + +Fri Apr 22 11:27:39 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * solib.c (symbol_add_stub): If so->textsection is NULL, don't + dump core. + +Thu Apr 21 07:45:49 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c (prompt_for_continue): Annotate prompt. + (query): Annotate query. + * printcmd.c (print_frame_args): Change syntax of argument + annotation to make name and value part of a single group of + annotations, not two separate groups. + * cp-valprint.c (cp_print_value_fields): Likewise for fields. + * valprint.c (val_print_array_elements): Change syntax of + annotation to be more concise. + * main.c, defs.h (command_line_input): New argument tells what + string to include in the annotations. + * symtab.c (decode_line_2), main.c (read_command_lines, + command_loop): Change callers. + + * breakpoint.c (watch_command): Use (CORE_ADDR)0, not NULL, for + target null pointer. + * blockframe.c (find_frame_addr_in_frame_chain): Likewise. + + * printcmd.c (output_command): Annotate things we print here too. + * printcmd.c (print_command_1): Add "value-history-value" annotation. + * Move declaration of print_value_flags from defs.h to value.h. + * main.c (command_line_input): Call wrap_here as well as gdb_flush. + +Thu Apr 21 09:29:37 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c (read_dbx_dynamic_symtab): Reinstall support for sun3, + BFD handles sun3 dynamic relocations now. + * elfread.c (elf_symtab_read, elf_symfile_read): Handle dynamic + symbol table. + +Wed Apr 20 19:41:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (print_command_1): Annotate the top-level expressions + that we print. + (print_frame_args): Annotate each argument. + * printcmd.c, defs.h (print_value_flags): New function. + * cp-valprint.c (cp_print_value_fields): Annotate each field. + * valprint.c (val_print_array_elements): Annotate each array element. + +Wed Apr 20 13:18:41 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * findvar.c (read_var_value): Handle LOC_REPARM_ADDR case correctly, + the register contains a pointer to the type, not the type itself. + +Mon Apr 11 10:44:35 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * main.c (main): Accept --annotate=N option and make --fullname + the same as --annotate=1. + (command_line_input): Print annotatation before and after prompt. + * blockframe.c (flush_cached_frames): Print annotation. + * Rename frame_file_full_name to annotation_level and move it from + symtab.h to defs.h. + * source.c (identify_source_line): If annotation_level > 1, + change output format. + * breakpoint.c: Print annotation whenever a breakpoint changes. + * main.c: New variable server_command. + (command_line_input): Parse "server " and set server_command. + (dont_repeat): Check server_command. + +Wed Apr 20 08:37:16 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (xcoff_next_symbol_text): Don't return before + updating raw_symbol and symnum. Return a value in the case where + we complained. + + * dstread.c, coffread.c: Don't define pending_blocks; buildsym.c + takes care of it. + * parse.c: Don't define block_found; it is defined in symtab.c. + * parser-defs.h: Add comment regarding block_found. + +Tue Apr 19 09:46:05 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (internalize_unwind_info): Delete unused indexp + argument. + +Mon Apr 18 13:18:56 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c (read_dbx_dynamic_symtab): Relocate BFD symbols by + section vma. Do not read dynamic relocs for sun3 executables to + avoid BFD assertion message. + +Mon Apr 18 10:08:07 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * nm-hppab.h (KERNEL_U_ADDR): Define. + (FIVE_ARG_PTRACE): Likewise. + (CANNOT_STORE_REGISTER): Likewise. + * nm-hppah.h (KERNEL_U_ADDR): Define. + (FIVE_ARG_PTRACE): Likewise. + (CANNOT_STORE_REGISTER): Likewise. + (NEED_TEXT_START_END): Likewise. + + * tm-hppah.h (NEED_TEXT_START_END): Delete definition. + * xm-hppah.h (KERNEL_U_ADDR): Delete definition. + (FIVE_ARG_PTRACE): Likewise. + * xm-hppab.h (KERNEL_U_ADDR): Delete definition. + (FIVE_ARG_PTRACE): Likewise. + + * hppa-tdep.c (read_unwind_info): Make static. + (restore_pc_queue): Indirect through the target vector to + reload the register state. + +Sat Apr 16 22:20:51 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * paread.c (compare_unwind_entries): Delete function. It's been + moved into hppa-tdep.c. + (read_unwind_info): Likewise. + (pa_symfile_read): No longer call read_unwind_info. The unwind + tables will be read in as they are needed. + + * hppa-tdep.c (compare_unwind_entries): New function. + (read_unwind_info, internalize_unwinds): Likewise. + (find_unwind_entry): Read in unwind information on demand. + +Fri Apr 15 11:53:46 1994 Stan Shebs (shebs@andros.cygnus.com) + + * source.c (DIRNAME_SEPARATOR): New macro, replaces all references + to : in search path processing. + * defs.h (qsort): Rename argument in prototype. + * symtab.h (SAYMBOL_VALUE): Rename value field, avoids bugs in + some compilers. + * breakpoint.c, exec.c, mdebugread.c, mipsread.c, xcoffexec.c + (false): Eliminate usages. + +Fri Apr 15 11:35:19 1994 Steve Chamberlain (sac@cygnus.com) + + * h8500-tdep.c (initialize_h8500_tdep, large_command): + All references to value changed to value_ptrlage_command is now + called big_command. + All references to value changed to value_ptr. + * remote-e7000.c (e7000_wait): Use target_waitstatus and SETSTOP + * remote-hms.c (hms_wait): Timeout after five seconds. + * ser-go32.c (dosasync_read): Poll if timeout < 0. + * config/tm/tm-h8500.h (BEFORE_MAIN_LOOP_HOOK): Deleted. + * config/sh/tm-sh.h (BREAKPOINT): Is now sleep opcode. + +Thu Apr 14 07:01:56 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * procfs.c (procfs_wait): Protect watchpoint code with appropriate + #ifdefs. + (procfs_set_watchpoint, procfs_stopped_by_watchpoint): Likewise. + +Wed Apr 13 14:52:46 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * breakpoint.h (enum bptype): Add bp_hardware_watchpoint and + bp_watchpoint_scope breakpoints. + (struct breakpoint): Add val_chain and related_breakpoint fields + for use by watchpoints. + + * breakpoint.c (within_scope): Delete. No longer used. + (TARGET_CAN_USE_HARDWARE_WATCHPOINT): Provide default definition. + (target_{remove,insert}_watchpoint): Likewise. + (can_use_hardware_watchpoint): New function. + (remove_breakpoint): New function to remove a single breakpoint + or hardware watchpoint. + (insert_breakpoints): Handle insertion of hardware watchpoints. + Store a copy of the value chain derived from the watchpoint + expression. + (remove_breakpoints): Simplify by using remove_breakpoint. + (delete_breakpoint): Likewise. + (watchpoint_check): Delete the watchpoint and watchpoint scope + breakpoints when the watchpoint goes out of scope. Save & restore + the current frame after checking watchpoints. + (breakpoint_init_inferior): Likewise (restarting the program + makes all local watchpoints go out of scope). + (bpstat_stop_status): Handle hardware watchpoints much like normal + watchpoints. Delete the watchpoint and watchpoint scope breakpoint + when the watchpoint goes out of scope. Remove and reinsert all + breakpoints before returning if we stopped when a hardware watchpoint + fired. + (watch_command): Use a hardware watchpoint when possible. If + watching a local expression, build a scope breakpoint too. + (map_breakpoint_numbers): Also call given function for any + related breakpoints. + (disable_breakpoint): Never disable a scope breakpoint. + (enable_breakpoint): Handle hardware breakpoints much like normal + breakpoints, but recompute the watchpoint_scope breakpoint's + frame and address (if we have an associated scope breakpoint). + (read_memory_nobpt): Handle hardware watchpoints like normal + watchpoints. When necessary handle watchpoint_scope breakpoints. + (print_it_normal, bpstat_what, breakpoint_1, mention): Likewise. + (clear_command, breakpoint_re_set_one, enable_command): Likewise. + (disable_command): Likewise. + + * blockframe.c (find_frame_addr_in_frame_chain): New function. + Extern prototype added to frame.h + + * infrun.c (wait_for_inferior): Set current_frame and select + a frame before checking if we stopped due to a hardare watchpoint + firing. Handle stepping over hardware watchpoints. + (normal_stop): Remove unnecessary call to select_frame. + + * value.h (value_release_to_mark): Declare. + * values.c (value_release_to_mark): New function. + + * procfs.c (procfs_wait): Add cases for hardware watchpoints. + (procfs_set_watchpoint, procfs_stopped_by_watchpoint): New functions. + + * hppab-nat.c (hppa_set_watchpoint): New function. + + * config/pa/nm-hppab.h (STOPPED_BY_WATCHPOINT): Define. + (HAVE_STEPPABLE_WATCHPOINT): Define. + (TARGET_CAN_USE_HARDWARE_WATCHPOINT): Define. + (target_{insert,delete}_watchpoint): Define. + + * config/mips/nm-irix4.h (TARGET_CAN_USE_HARDWARE_WATCHPOINT): Define. + (STOPPED_BY_WATCHPOINT, HAVE_NONSTEPPABLE_WATCHPOINT): Likewise. + (target_{insert,remove}_watchpoint): Likewise. + +Mon Apr 11 19:21:27 1994 Stu Grossman (grossman at cygnus.com) + + * xcoffread.c (read_xcoff_symtab): Ignore symbols of class C_EXT, + smtyp XTY_LD, sclass XMC_DS (external data segment label). They + often have the same names as debug symbols for functions, and + confuse lookup_symbol(). + +Mon Apr 11 10:44:35 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * remote.c: Around redefinition of PBUFSIZE, adjust whitespace. + * config/pa/tm-hppa.h (REGISTER_BYTES): Use 4 rather than + REGISTER_RAW_SIZE (1). + Together these changes work around a bug in HP's compiler. Both + seem to be necessary. + +Mon Apr 11 09:18:24 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * paread.c (pa_symtab_read): Handle ST_STUB symbols and symbols + with scope SS_EXTERNAL. ST_ENTRY symbols in dynamic executables + are type mst_solib_trampoline. + +Fri Apr 8 17:14:37 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * config/m68k/es1800.mt: Change comments. + +Fri Apr 8 17:14:37 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * config/m68k/monitor.mt (TDEPFILES): Don't include remote-es.o. + +Fri Apr 8 15:35:30 1994 Stu Grossman (grossman at cygnus.com) + + * lynx-nat.c: Restore regmap structure for SPARC. It's needed + for core files. + +Fri Apr 8 14:53:35 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * values.c (unpack_long): Remove obsolete comment about using a + switch statement. + + * symfile.c (symbol_file_command): Add comments about command syntax. + +Thu Apr 7 17:25:21 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + Jim Kingdon (kingdon@cygnus.com) + + * infrun.c (IN_SOLIB_TRAMPOLINE): Correct comment, trampolines + are in the .plt section. + * minsyms.c (lookup_solib_trampoline_symbol_by_pc, + find_solib_trampoline_target): New functions for handling + stepping into -g compiled shared libraries. + * symtab.h (lookup_solib_trampoline_symbol_by_pc, + find_solib_trampoline_target): Add prototypes. + * config/tm-sunos.h (IN_SOLIB_TRAMPOLINE, SKIP_TRAMPOLINE_CODE): + Define to handle stepping into -g compiled shared libraries. + * config/tm-sysv4.h (SKIP_TRAMPOLINE_CODE): Define to handle + stepping into -g compiled shared libraries. + +Thu Apr 7 17:22:54 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * configure.in: Add mips-*-sysv4* support. + * config/mips/mipsv4.mh, config/mips/mipsv4.mt, + config/mips/tm-mipsv4.h, config/mips/xm-mipsv4.h, mipsv4-nat.c: + New files for MIPS SVR4 support. + * Makefile.in: Update for new mipsv4 files. + * alpha-tdep.c (heuristic_proc_desc, find_proc_desc): Use + read_next_frame_reg to obtain the frame relative stack pointer. + * mips-tdep.c (heuristic_proc_desc): Use read_next_frame_reg to + obtain the frame relative stack pointer. + * mdebugread.c (parse_partial_symbols, psymtab_to_symtab1): + Handle stStatic and stStaticProc symbols in stabs-in-ecoff output + by entering them into the minimal symbol table. + * printcmd.c (print_scalar_formatted): Do not try to unpack to + a long for float formats. + * solib.c: Include "elf/mips.h" only if DT_MIPS_RLD_MAP does not + get defined in . + * solib.c (solib_add): Add shared library sections to the section + table of the target before adding the symbols. + * partial-stab.h: Relocate static and global functions. + * dbxread.c (read_dbx_symtab): Remove unused variable + end_of_text_address. Relocate text_addr when passing it + to end_psymtab. + + For Alpha OSF/1 targets, enable gdb to set breakpoints in shared + library functions before the executable is run. Retrieve dynamic + symbols from stripped executables. + * mipsread.c (read_alphacoff_dynamic_symtab): New function. + * mipsread.c (mipscoff_symfile_read): Use it. Issue warning message + if no debugging symbols were found. + * alpha-tdep.c (alpha_skip_prologue): Silently return the unaltered + pc if memory at the pc is not accessible and GDB_TARGET_HAS_SHARED_LIBS + is defined. + * config/alpha/nm-alpha.h (GDB_TARGET_HAS_SHARED_LIBS): Define, + OSF/1 has shared libraries. + +Thu Apr 7 15:11:11 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * dbxread.c (read_dbx_dynamic_symtab): Adjust for recent changes + to BFD handling of dynamic symbols. + +Tue Apr 5 15:29:25 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (hppa_fix_call_dummy): If FUN is a procedure label, + then gets its real address into FUN and its GOT/DP value into %r19. + + * tm-hppa.h (CALL_DUMMY): Use %r20, not %r19 as a temporary. + + * hppa-tdep.c (frameless_function_invocation): If no unwind + descriptor was found, then assume this was not a frameless + function invocation. + (frame_saved_pc): If the saved PC is in a linker stub, then + return the return address which the linker stub will return to. + + * xm-hppab.h: Never define USG. + * xm-hppah.h: Always define USG. + +Tue Apr 5 12:58:47 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * values.c (unpack_long, value_from_longest), + valarith.c (value_binop): Allow TYPE_CODE_RANGE. + +Fri Apr 1 14:04:34 1994 Jason Merrill (jason@deneb.cygnus.com) + + * symfile.c (deduce_language_from_filename): .cpp is a C++ extension. + +Fri Apr 1 00:44:00 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + For SVR4 targets, enable gdb to set breakpoints in shared + library functions before the executable is run. + * elfread.c (elf_symtab_read): Handle symbols for shared library + functions. + * sparc-tdep.c (in_solib_trampoline): Renamed to in_plt_section + and moved to objfiles.c. + * objfiles.c (in_plt_section): Moved to here from sparc-tdep. + * config/tm-sysv4.h (IN_SOLIB_TRAMPOLINE): Use new in_plt_section. + * config/sparc/tm-sun4sol2.h (IN_SOLIB_TRAMPOLINE): Removed, + the new generic definition from tm-sysv4.h works for Solaris. + +Wed Mar 30 16:14:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * elfread.c (elf_symtab_read): Change storage_needed, + number_of_symbols and i to long. Rename get_symtab_upper_bound to + bfd_get_symtab_upper_bound. Check for errors from + bfd_get_symtab_upper_bound and bfd_canonicalize_symtab. + * nlmread.c (nlm_symtab_read): Same changes. + +Wed Mar 30 11:43:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (xcoff_next_symbol_text): New function. + (read_xcoff_symtab): Set next_symbol_text_func to it. + Move raw_symbol outside of read_xcoff_symtab. + + * remote.c (getpkt): Remove unused "out" label. + +Wed Mar 30 09:15:42 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * breakpoint.c (print_it_normal): Allow GDB to notify the user + about more than one watchpoint being triggered. + +Wed Mar 30 08:24:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m68k/tm-dpx2.h: Include tm-m68k.h not nonexistent tm-68k.h. + +Wed Mar 30 00:31:49 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * blockframe.c (find_pc_partial_function): mst_file_text + symbols do not live in the shared library transfer table. + * ch-exp.y (decode_integer_value, match_character_literal, + match_bitstring_literal): Guard tolower calls with isupper, + tolower on old BSD systems blindly subtracts a constant. + * dbxread.c (read_ofile_symtab): Check for __gnu_compiled_* as + well when determining the producer of the object file. + * mdebugread.c (has_opaque_xref): New function to check for + cross reference to an opaque aggregate. + * mdebugread.c (parse_symbol, parse_partial_symbols): Do not + enter typedefs to opaque aggregates into the symbol tables. + * mdebugread.c (parse_external): Remove skip_procedures argument, + it has always been 1. Remove code that handled stProc symbols, + it was never executed and was wrong, as the index of a + stProc symbol points to the local symbol table and not to the + auxiliary symbol info. Update caller. + * mdebugread.c (parse_partial_symbols): Do not enter external + stProc symbols into the partial symbol table, they are already + entered into the minimal symbol table. + * config/i386/tm-symmetry.h: Clean up, it is now only used for Dynix. + Remove all conditionals and definitions for ptx. + I386_REGNO_TO_SYMMETRY moved to here from symm-tdep.c. + Fix addresses of floating point registers in REGISTER_U_ADDR. + STORE_STRUCT_RETURN now handles cc and gcc conventions. + FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC, + IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET defined to make backtracing through + signal trampoline code work. + * config/i386/xm-symmetry.h: Clean up, it is now only used for Dynix. + Remove all conditionals and definitions for ptx. + Remove KDB definitions. + * symm-nat.c (store_inferior_registers): Fetch registers before + storing them to obtain valid floating point control registers. + Store fpu registers. + * symm-nat.c (print_1167_control_word): Dynix 3.1.1 defines + FPA_PCR_CC_C0 and FPA_PCR_CC_C1, avoid duplicate case value. + * symm-nat.c (fetch_inferior_registers, child_xfer_memory): + Fix typos. + * symm-nat.c (child_resume): Update type of `signal' parameter. + * symm-tdep.c (I386_REGNO_TO_SYMMETRY): Moved to tm-symmetry.h. + +Tue Mar 29 23:01:33 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (hppa_fix_call_dummy): Use an alternate method for + calling import stubs for functions in shared libraries. + +Tue Mar 29 21:14:04 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * ch-exp.y: Implement SIZE(mode_name) and SIZE(expression). + + * ch-lang.c (chill_is_varying_struct): Magic string is + was "" is now "__var_length" (more portable). + +Tue Mar 29 19:41:34 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote.c (getpkt): If we get a timeout, actually retry rather + than just giving up the first time it happens. + * remote.c: Document sequence numbers. + (remote_store_registers): Change syntax of 'P' request so that it + never looks like a sequence number. + +Tue Mar 29 16:06:01 1994 Kung Hsu (kung@mexican.cygnus.com) + + * os9kread.c (record_minimal_symbol): add section_offset to + relocate minimal symbol table. + * os9kread.c (read_minimal_symbols): ditto. + * os9kread.c (os9k_symfile_init): increase size of dbg and stb + file names. + * os9kread.c (read_os9k_psymtab): if there's no dbg file, just + return. Also if file addr is 0 leave it 0, not to relocate. + * remote-os9k.c (_initialize_remote_os9k): add 'set remotexon', + 'set remotexoff' and 'set remotelog' commands. + +Tue Mar 29 12:38:45 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote.c (remote_store_registers): Add 'P' request to set an + individual register. + (remote_write_bytes, remote_read_bytes): Use %lx, not %x, to print + a target address. + +Sat Mar 26 07:05:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/sparc/tm-sparc.h: Define USE_REGISTER_NOT_ARG. + * stabsread (define_symbol): If USE_REGISTER_NOT_ARG, go back to + combining all 'p' and 'r' pairs into a LOC_REGPARM. + + * command.c (do_setshow_command, case var_string): Never add a + space to the end of the string. + * NEWS: Document this change. + * .gdbinit: Add a space to the "set prompt" command. + +Fri Mar 25 12:40:41 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m3-nat.c, i386m3-nat.c, config/i386/i386m3.mh: Many minor + changes to make it compile (it doesn't link yet). + + * buildsym.c (start_subfile, patch_subfile_names), demangle.c + (set_demangling_style, set_demangling_command): Use savestring not + strdup. We were not dealing properly with a NULL return from + strdup, and were not declaring strdup (the system header may or + may not have it). + + * valprint.c (val_print): Remove inaccurate comment about what + types can be stub types. + + * config/i386/ptx.mh (XDEPFILES): Add coredep.o. Delete infptrace.o. + * symm-nat.c (child_wait, _initialize_symm_nat, kill_inferior): + Supply alternate version if ATTACH_DETACH is not defined. + * ptx4-nat.c, config/i386/{nm-ptx4.h, ptx4.mh, ptx.mt, ptx4.mt, + tm-ptx.h, tm-ptx4.h, xm-ptx.h, xm-ptx4.h}: New files. + * configure.in: Recognize i[34]86-sequent-sysv4* host. + +Fri Mar 25 10:14:03 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (skip_prologue): Do nothing if not at the beginning + of a function. + (skip_trampoline_code): Rewrite and add support for argument + relocation stubs stubs, import/export stubs, calls through + "_sr4export" and cascaded trampolines. + + * hppa-tdep.c (skip_prologue): Return "pc" not zero + if no unwind descriptor is found. + + * tm-hppa.h (NUM_REGS): Bump to 128 registers. + (REGISTER_NAMES): Add entries for "right-half" of FP registers. + (REGISTER_RAW_SIZE, MAX_REGISTER_RAW_SIZE): Do not treat FP regs + differently. All registers are four bytes. + (REGISTER_BYTES, REGISTER_BYTE): Simplify now that all registers are + the same size. + (REGISTER_VIRTUAL_TYPE): Use builtin_type_float for all FP regs. + + * hppa-tdep.c (pa_print_fp_reg): Update to print even numbered FP + registers as both single and double values (fetching 2nd 32bit half + as necessary). Annotate each register printed with its precision. + + * paread.c (read_unwind_info): Fix off-by-one error. + +Fri Mar 25 08:33:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (complete_command): Deal with it if arg is NULL. + +Thu Mar 24 07:12:09 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Revise comment + regarding using the PC--using the PC is necessary and all the + FIXME comments in the world won't make it go away. + + * valops.c (value_at, value_at_lazy): Give error if we dereference + a pointer to void. + * gdbtypes.h: Fix comments regarding TYPE_CODE_VOID. + * stabsread.c: Use 1, not 0, for TYPE_LENGTH of void types. + + * stabsread.c (patch_block_stabs): Add comment about what happens + if the definition is in another compilation unit from the stab. + + * dbxread.c (end_psymtab): Add comment about empty psymtabs. + +Wed Mar 23 07:50:33 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (complete_command): New command, from Rick Sladkey + . + (symbol_completion_function): Don't declare rl_point and + rl_line_buffer; they are now declared in readline.h. + (show_commands): Don't declare history_base; it is declared in + history.h. + * command.c (lookup_cmd): Don't delete trailing whitespace. + Reverts change of 14 May 1989. + +Wed Mar 23 16:14:52 1994 Stu Grossman (grossman at cygnus.com) + + * minsyms.c (prim_record_minimal_symbol): Move section deduction + code from prim_record_minimal_symbol_and_info() to here. Callers + of the latter can legitimately supply a section number of -1. + +Wed Mar 23 07:50:33 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbtypes.h, gdbtypes.c: Add comments regarding whether static + member functions have an element in args for a (nonexistent) this + pointer. + +Tue Mar 22 20:12:53 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppao.h (NO_PC_SPACE_QUEUE_RESTORE): Define. + + * hppa-tdep.c (hppa_pop_frame): Do not restore the PC space + queue if NO_PC_SPACE_QUEUE_RESTORE is defined. + + * stabsread.c (REG_STRUCT_HAS_ADDR): Accept additional argument + for the structure's type. All callers changed. + + * valops.c (call_function_by_hand): Check REG_STRUCT_HAS_ADDR + for each structure argument rather than assuming it's either + true or false for all structure arguments. + + * config/pa/tm-hppa.h (REG_STRUCT_HAS_ADDR): Depend only + on the length structure passed, not the compiler used. + + * config/sparc/tm-sparc.h (REG_STRUCT_HAS_ADDR): Accept additional + argument for the structure's type. + +Tue Mar 22 15:28:33 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * values.c (set_internalvar): Don't set var->value until we are + sure there won't be an error(). + + * remote.c (get_offsets): Reinstate comment which was in + remote_wait about use of SECT_OFF_TEXT and so on. + +Mon Mar 21 13:11:30 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symmisc.c (maintenance_check_symtabs): New function to check + consistency of psymtabs and symtabs. + * symtab.h (maintenance_check_symtabs): Add prototype. + * maint.c: Add new `maint check-symtabs' command. + * config/i386/tm-i386aix.h, config/i386/tm-sun386.h, + config/i386/tm-symmetry.h (REGISTER_CONVERT_TO_RAW): Fix typo. + * config/i386/tm-symmetry.h: Make comment inside #if 0 a real + comment. + * config/i386/tm-symmetry.h (STORE_STRUCT_RETURN): Cast argument + to write_memory to avoid warnings from gcc. + * config/i386/xm-symmetry.h: Add missing #endif. + * config/i386/nm-symmetry.h (NO_PTRACE_H): Add for Dynix. + * config/i386/symmetry.mt (TDEPFILES): Add i386-tdep.o. + * config/i386/symmetry.mh (NAT_FILE, NATDEPFILES): Add. + +Mon Mar 21 11:50:28 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (hppa_fix_call_dummy): Use value_ptr. + (hppa_push_arguments): Likewise. + +Mon Mar 21 11:02:51 1994 Stu Grossman (grossman at cygnus.com) + + * alpha-tdep.c: Gobs of changes (many imported from mips-tdep) to + improve remote debugging efficiency. Also fixed problems with + doing function calls for programs with no entry points. + * infcmd.c (run_stack_dummy): Use CALL_DUMMY_ADDRESS instead of + entry_point_address. + * inferior.h (PC_IN_CALL_DUMMY): ditto. + * mdebugread.c (parse_symbol, parse_procedure, parse_external, + parse_lines): Pass section_offsets info to these routines so that + we can relocate symbol table entries upon readin. + * (psymtab_to_symtab_1): Set symtab->primary to tell + objfile_relocate to do relocations for our symbols. + * (ecoff_relocate_efi): New routine to relocate adr field of PDRs + (which hang off of the symbol table). + * Use prim_record_minimal_symbols_and_info instead of + prim_record_minimal_symbols to supply section info to make minimal + symbol relocations work. + * minsyms.c (prim_record_minimal_symbols_and_info): If section is + -1, try to deduce it from ms_type. + * objfiles.c (objfile_relocate): Use ALL_OBJFILE_SYMTABS where + appropriate. Handle relocation of MIPS_EFI symbols special. Also, + add code to relocate objfile->sections data structure. + * remote.c (get_offsets): Use new protocol message to acquire + section offsets from the target. + * (remote_wait): Get rid of relocation stuff. That's all handled + by objfile_relocate now. + * config/alpha/alpha-nw.mt (TM_FILE): Use tm-alphanw.h. + * config/alpha/tm-alpha.h: Define CALL_DUMMY_ADDRESS, and + VM_MIN_ADDRESS. + * config/alpha/tm-alphanw.h: DECR_PC_AFTER_BREAK=0, VM_MIN_ADDRESS=0. + +Mon Mar 21 10:09:06 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (_initialize_hpuxread): Don't call add_symtab_fns if + HPREAD is not defined. + +Sun Mar 20 15:21:57 1994 Doug Evans (dje@cygnus.com) + + * sparc-tdep.c (sparc_frame_find_save_regs): Use REGISTER_RAW_SIZE + instead of 4. + * sp64-tdep.c (target_ptr_bit, set_target_ptr_bit): Deleted, + can no longer set this at run time. + * config/sparc/sp64.mt (SIMFILES): Use remote-sim.o now. + (TM_CLIBS): Define to -lm, the simulator uses the sqrt() function. + * config/sparc/tm-sp64.h (FPS_REGNUM, CPS_REGNUM): Define (so + sparc-tdep.c compiles). + (TARGET_PTR_BIT): Must be a constant now, fix at 64. + +Sat Mar 19 08:51:12 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m68k/{cisco.mt,tm-cisco.h}: New files. + * Makefile.in (ALLPARAM, ALLCONFIG): Add them. + * configure.in: Recognize m68*-cisco*-*. + + * Makefile.in (TAGS): Use variables directly, rather than using + find, to locate TM_FILE, XM_FILE, and NAT_FILE. This is faster + and means that these filenames no longer need be unique across all + the config/* directories. + * configure.in: Put the config/*/ into TM_FILE, etc. + + * m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk + and trapv exceptions. + + * target.h (struct section_table), objfiles.h (struct obj_section): + Change name of field sec_ptr to the_bfd_section. More mnemonic + and avoids the (sort of, for the ptx compiler) name clash with + the name of the typedef. + * exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c, + solib.c, irix5-nat.c, objfiles.c, remote.c: Change users. + + * utils.c: Include readline.h. + * Makefile.in (utils.o): Add dependency. + + * remote.c (getpkt): Add support for run-length encoding. + +Fri Mar 18 19:11:15 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * utils.c (prompt_for_continue): Call readline, not gdb_readline. + +Fri Mar 18 10:25:55 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dstread.c (record_minimal_symbol): New arg objfile. Pass it to + prim_record_minimal_symbol. + Callers: Pass it. + + * regex.c (EXTEND_BUFFER): Adjust pointers within buffer by + computing their offset from the start of the old buffer and adding + to the new buffer, rather than by assuming we can add the + difference between the old buffer and the new buffer (it might not + fit in an int). Merge in cosmetic differences from emacs regex.c + version of this macro. + +Wed Mar 16 15:28:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (install-only): Fix use of program_transform_name. + +Wed Mar 16 07:18:43 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c: Remove "set print fast-symbolic-addr off" command. + The bug which it worked around was fixed on 25 Feb 94 in coffread.c, + so I'm nuking the command. + * symtab.c (find_addr_symbol): Comment out, no longer used. + + * main.c (main): Don't init_source_path for the -cd argument. Now + that source_path doesn't contain the current_directory from when + GDB started up, init_source_path is no longer useful (and is + harmful because it clobbers a source_path set in $HOME/.gdbinit). + + * TODO: Remove item about line numbers being off. It is useless + and confusing without a reproducible test case (it mentions + proceed(), but I was able to step through proceed without trouble). + +Tue Mar 15 13:39:23 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + For Sunos 4.x targets, enable gdb to set breakpoints in shared + library functions before the executable is run. Retrieve dynamic + symbols from stripped executables. + * symtab.h (minimal_symbol_type): Add mst_solib_trampoline type. + * parse.c (write_exp_msymbol), symmisc.c (dump_msymbols), + symtab.c (list_symbols): Handle mst_solib_trampoline. + * minsyms.c (lookup_minimal_symbol): Handle mst_solib_trampoline + for all targets, remove IBM6000_TARGET dependencies. + * dbxread.c (read_dbx_dynamic_symtab): New function. + * dbxread.c (dbx_symfile_read): Use it. + * dbxread.c (SET_NAMESTRING): Set namestring to + "" instead of "foo" if the string index is + corrupt. + * xcoffread.c (read_xcoff_symtab): Use mst_solib_trampoline instead + of mst_unknown. + * symtab.c (list_symbols): Take from_tty as parameter and pass it + to break_command. Handle mst_file_* minimal symbol types. + * config/i386/tm-i386bsd.h: Give just macro name, not args, to #undef. + +Tue Mar 15 11:40:43 1994 Kung Hsu (kung@mexican.cygnus.com) + + * c-exp.y(yylex): fix potential memory overflow. + +Tue Mar 15 10:33:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * environ.c (set_in_environ): Eliminate special handling of PATH and + GNUTARGET. + * putenv.c: Removed, conflicts with system declaration of + putenv on RS/6000 running AIX 3.2.5, and above change makes it + unnecessary. + * Makefile.in: Change accordingly. + * procfs.c (procfs_create_inferior): Change comment accordingly. + +Tue Mar 15 10:05:27 1994 Jim Kingdon (kingdon@cygnus.com) + + * rs6000-tdep.c: Change value to value_ptr. + +Sun Mar 13 17:19:03 1994 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (read_hpux_symtab: Correctly determine the namespace + and address class of SVAR, DVAR, TYPEDEF, TAGDEF, CONST, and + MEMENUM symbols. Do not include function-scoped variables in + the partial symbol table. + +Sun Mar 13 09:45:51 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * i386m3-nat.c: Include floatformat.h. + (get_i387_state): Use memset not bzero. + + * Version 4.12.3. + + * Makefile.in: Enable commented out getopt_h, bfd_h, etc. Change + ieee-float.h to floatformat.h. + + * valprint.c (val_print_string): Ignore error if the error + happened after a terminating '\0'. + + * c-valprint.c (c_val_print): Never add 1 to return value from + val_print_string; just return what it returns. + + * target.h (enum target_signal): Add TARGET_SIGNAL_FIRST, for + looping through all of the enums. + * infrun.c (signals_info): Use it. + +Fri Mar 11 08:08:50 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * main.c (main): When printing warning about bad baud rate, don't + use warning(); it relies on current_target which isn't set up yet. + + * breakpoint.c (_initialize_breakpoint): Update docstring for + tbreak to match what the code actually does. Don't mention tbreak + in docstrings for "enable once" or "enable breakpoints once". + +Thu Mar 10 08:52:38 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symfile.h (ADD_PSYMBOL_VT_TO_LIST): Don't put a semicolon after + while (0). That defeats the whole purpose of using do . . . while (0). + * mdebugread.c (parse_partial_symbols): Don't use ?: expression as + list for ADD_PSYMBOL_TO_LIST; the macro takes its address and + using a ?: expression as an lvalue is not portable. + + * stabsread.c (define_symbol): If REG_STRUCT_HAS_ADDR, also + convert a LOC_ARG to a LOC_REF_ARG. Update code which combines + 'p' and 'r' symbol descriptors into a single symbol to look for a + LOC_REF_ARG. + * README, config/sparc/tm-sparc.h: Update comments. + +Wed Mar 9 21:43:24 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_type): Do not complain for types with + an `indexNil' aux index, these are simply undefined types. + Remove indexNil check from caller of parse_type. + * mdebugread.c (parse_partial_symbols): Do not enter + stGlobal, scCommon symbols into the minimal symbol table, their + value is the size of the common, not its address. + Handle scInit, scFini, scPData and scXData sections. + Use minimal symbol type mst_file_* for stLabel symbols, instead of + mst_*. + Enter stProc symbols into the global_psymbols list once, not into + the static_psymbols_list. + Get rid of dummy psymtab if it is empty, to allow proper detection + of stripped executables. + * mdebugread.c (cross_ref): Allow cross references to Fortran + common blocks. + +Wed Mar 9 15:23:19 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (common_block_end, fix_common_block): Stash the + struct pending * in the SYMBOL_TYPE, not the SYMBOL_NAMESPACE, so + as to not assume that a pointer fits in an enum. + +Wed Mar 9 18:56:36 1994 Kung Hsu (kung@mexican.cygnus.com) + + * os9kread.c (fill_sym): check compiler verion number for pre- + UltraC compiler. + * os9kread.c (os9k_process_one_symbol): address of symbol is + relative to section not module. + * stabsread.c (define_symbol): add symbol type 's' as local + symbol for os9k. + * remote-os9k.c: add command 'set monitor_log' to turn on or off + monitor logging. + * remote-os9k.c: fix bug in delete breakpoint, single step trace. + * remote-os9k.c: fix bug in 'set remotebaud' function. + * remote-os9k.c (rombug_link): minimize checking so to improve + speed. + * symfile.c (symbol_file_command): check if failed to link, also make + the command be able to accept more than one filenames. + * target.c (target_link): check if failed to link with rombug. + * config/i386/tm-i386os9k.h : add #define DECR_PC_AFTER_BREAK 0. + +Wed Mar 9 15:23:19 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-es.c (es1800_child_ops): Don't declare it static. + +Tue Mar 8 11:42:39 1994 Jim Kingdon (kingdon@cygnus.com) + + * config/i386/tm-i386v4.h: Give just macro name, not args, to #undef. + +Tue Mar 8 06:56:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c: New variable lowest_text_address. + (record_minimal_symbol, read_dbx_symtab): Set it. + (read_dbx_symtab): Use lowest_text_address + text_size instead of + end_of_text_address. + * config/gould/tm-pn.h: Add comment regarding END_OF_TEXT_DEFAULT. + + * dbxread.c (end_psymtab): Remove old and commented out + capping_global and capping_static. Fix comments regarding + N_SO_ADDRESS_MAYBE_MISSING to match the real name of the macro. + + * parser-defs.h: Add "extern" to start of variable declarations so + we don't end up with commons. + * parse.c: Define these variables. + + * irix5-nat.c (find_solib): Cast o_path to CORE_ADDR when using it + as one. + +Mon Mar 7 13:00:50 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * alpha-tdep.c: Change value to value_ptr. + +Sun Mar 6 17:36:53 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * solib.c (elf_locate_base): New function to locate the address + of the dynamic linker's runtime structure in the dynamic info section. + * solib.c (locate_base): Use it instead of iterating over the list + of mapped address segments. + * solib.c (look_for_base, bfd_lookup_symbol): Removed, no longer + necessary. + +Fri Mar 4 09:50:47 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (pc_in_linker_stub): Move decl to beginning of file. + (pc_in_interrupt_handler): New function. Also add PARAM decl. + (find_proc_framesize): Deal with HPUX setting SAVE_SP bit for + signal trampoline and interrupt routines. + (frame_saved_pc): Handle signal trampolines and interrupt routines. + (frame_chain, frame_chain_valid): Likewise. + (hppa_frame_find_saved_regs): Likewise. Also deal with special + saved regs convention for SP. + + * tm-hppa[bho].h: FRAME_FIND_SAVED_PC_IN_SIGTRAMP): Define. + (FRAME_BASE_BEFORE_SIGTRAMP): Define. + (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Define. + + * tm-hppah.h (IN_SIGTRAMP): Define. + +Thu Mar 3 12:41:16 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * ch-exp.y (match_simple_name_string): Accept '_' as well as an + alphabetic character as the start of a name. + + * sparclite/Makefile.in (all install): Build and install aload. + + * configure.in: Accept i[34]86-*-*sysv32 because that is what + config.guess and config.sub produce. + + * mips-tdep.c: Change value to value_ptr. + +Wed Mar 2 09:17:55 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * breakpoint.c, breakpoint.h, c-valprint.c, ch-valprint.c, + cp-valprint.c, eval.c, expprint.c, findvar.c, language.c, + objfiles.h, infcmd.c, printcmd.c, stack.c, typeprint.c, + valarith.c, valops.c, valprint.c, value.h, values.c: Replace + value with value_ptr. This is for the ptx compiler. + * objfiles.h, target.h: Don't declare a "sec_ptr" field using a + "sec_ptr" typedef. + * symm-nat.c: Add a bunch of stuff for symmetry's ptrace stuff. + #if 0 i386_float_info. + * symm-tdep.c (round): Remove. Also remove sgttyb. + * symm-tdep.c: Remove lots of stuff which duplicates stuff from + i386-tdep.c. Remove register_addr and ptx_coff_regno_to_gdb. + * i386-tdep.c (i386_frame_find_saved_regs): Put in + I386_REGNO_TO_SYMMETRY check in case it is needed for Dynix + someday. + * config/i386/nm-symmetry.h: Change KERNEL_U_ADDR. Move + stuff from PTRACE_READ_REGS, PTRACE_WRITE_REGS macros to + symm-nat.c. Define CHILD_WAIT and declare child_wait(). + * config/i386/tm-symmetry.h: Remove call function stuff; stuff in + tm-i386v.h is apparently OK. + * config/i386/xm-symmetry.h [_SEQUENT_]: Define HAVE_TERMIOS not + HAVE_TERMIO. Define MEM_FNS_DECLARED, NEED_POSIX_SETPGID, and + USE_O_NOCTTY. + +Wed Mar 2 11:31:08 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * osfsolib.c (xfer_link_map_member): Update to use new + target_read_string interface. + +Wed Mar 2 09:17:55 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * infrun.c (wait_for_inferior): In checking + remove_breakpoints_on_following_step, check + through_sigtramp_breakpoint as well as step_resume_breakpoint. + +Tue Mar 1 16:22:56 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * os9kread.c (os9k_process_one_symbol): Rename + VARIABLES_INSIDE_BLOCK to OS9K_VARIABLES_INSIDE_BLOCK. + * symfile.c (symbol_file_command): Check for (CORE_ADDR)-1, not + (CORE_ADDR)0, from target_link, since that is what it uses. + Process name at end, not during parsing (like we did before Kung's + change), so that -readnow and -mapped can appear anywhere. + Make text_relocation a local variable. + * config/i386/i386os9k.mt: Fix comment. + * Makefile.in (ALLDEPFILES): Add remote-os9k.c. + * os9kread.c: Put "comments" after #endif inside /* */. + * stabsread.h: Add os9k_stabs variable. + * stabsread.c (start_stabs), os9kread.c (os9k_process_one_symbol): + Set it. + * stabsread.c (define_symbol): If os9k_stabs, put a 'V' symbol + descriptor in global_symbols not local_symbols. + (read_type): If os9k_stabs, accept 'c', 'i', and 'b' type + descriptors. + (read_type): If os9k_stabs, accept function parameters after 'f' + type descriptor. + (read_array_type): If os9k_stabs, don't expect index type and + expect lower and upper to be separated by ',' not ';'. + (read_enum_type): If os9k_stabs, read a number before the first + enumeration constant. + (os9k_init_type_vector): New function. + (dbx_lookup_type): Call it when starting new type vector. + * config/i386/tm-i386os9k.h: Define BELIEVE_PCC_PROMOTION. + * (os9k_process_one_symbol): Call define_symbol not os9k_define_symbol. + * os9kstab.c: Removed. + * Makefile.in: Update accordingly. + * objfiles.c (objfile_relocate_data): Removed. + * remote-os9k.c (rombug_wait): Call objfile_relocate + not objfile_relocate_data. + * objfiles.h, objfiles.c: Remove find_pc_objfile. + * remote-os9k.c (rombug_wait): Call find_pc_section not + find_pc_objfile. + * main.c (quit_command): Check inferior_pid; revert Kung change. + * remote-os9k.c (rombug_create_inferior): Set inferior_pid. + +Tue Mar 1 14:56:14 1994 Kung Hsu (kung@mexican.cygnus.com) + + * os9kread.c: New file to read os9000 style symbo table. + * os9kstab.c: new file to read os9000 style stabs. + * remote-os9k.c: remote protocol talking to os9000 rombug monitor. + * objfiles.c (find_pc_objfile): new function to search objfile + from pc. + * objfiles.c (objfile_relocate_data): new function to relocate + data symbols in symbol table. + * objfiles.h: Add two aux fields in struct objfile to handle + multiple symbol table files situation like in os9000. + * symfile.c: Change so 'symbol-file' command can handle multiple + files. Also call target_link() to get relocation infos. + * target.c (target_link): new function to get relocation info when + a symbol file is requested to load. + * main.c (quit_command): take out 'inferior_pid != 0' condition, + because in cross mode there's no inferior pid, bit they need to + be detached. + Makefile.in: add os9kread.c os9kstab.c and .o's. + configure.in: add i386os9k target. + config/i386/i386os9k.mt: new add. + config/i386/tm-i386os9k.h: new add. + +Tue Mar 1 13:16:10 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/sparc/tm-sun4sol2.h (IN_SIGTRAMP): Handle ucbsigvechandler. + * sparc-tdep.c (sparc_frame_saved_pc): Handle ucbsigvechandler. + +Tue Mar 1 11:54:11 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * target.c, target.h (target_read_string): Provide error detection to + caller. Put string in malloc'd space, so caller need not impose + arbitrary limits. + * solib.c (find_solib): Update to use new interface. + * irix5-nat.c (find_solib): Read o_path from inferior + (clear_solib): Free storage for o_path. + * valprint.c (val_print_string): Add comments. + +Mon Feb 28 23:54:39 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.c (decode_line_1): Handle the case when skip_quoted does not + advance `p'. + +Mon Feb 28 12:40:46 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * value.h (struct value): Add modifiable field. + * values.c (allocate_value, record_latest_value, value_copy): Set it. + (record_latest_value): Don't mess with VALUE_LVAL of value. + * valops.c (value_assign): Check it. Reword existing error + message on not_lval. + + * mips-tdep.c (mips_step_skips_delay), config/mips/tm-mips.h + (STEP_SKIPS_DELAY): Added. + * infrun.c (proceed) [STEP_SKIPS_DELAY]: Check for a breakpoint in + the delay slot. + + * valprint.c (val_print_string): If errcode is set, always print + an error, regardless of force_ellipsis. In the non-EIO case, + just print the error message rather than calling error(). Don't + access *(bufptr-1) if bufptr points to the start of the buffer. + When looking for '\0', don't increment bufptr and addr if bufptr + started out already at limit. If an error happens on fetching the + first character, don't print the string. + +Sun Feb 27 21:05:06 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * config/m68k/tm-apollo68b.h: Remove HAVE_68881 define; it is + obsolete. + + * i387-tdep.c, i386-tdep.c i386v-nat.c, i386aix-nat.c, + i386m3-nat.c, config/m68k/tm-m68k.h, i960-tdep.c + config/i960/tm-i960.h, remote-nindy.c, config/m88k/tm-m88k.h, + m88k-tdep.c: Use floatformat.h instead of ieee-float.h. + * sparc-tdep.c: Remove now-obsolete ieee-float.h stuff + * findvar.c: Update comment regarding ieee-float.h. + +Sun Feb 27 21:39:48 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/i386/tm-i386v4.h (I386V4_SIGTRAMP_SAVED_PC, IN_SIGTRAMP, + FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC): + Define to make backtracing through the various sigtramp handlers + work. + * i386-tdep.c (i386v4_sigtramp_saved_pc): New routine to fetch + the saved pc from ucontext on the stack for SVR4 signal handling. + +Fri Feb 25 09:41:11 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * remote.c, remote-mon.c, remote-utils.c, remote-utils.h, + target.h, remote-es.c, remote-nindy.c: Don't set baud rate if + baud_rate is -1. Remove sr_get_baud_rate and sr_set_baud_rate; + just use the global variable itself. When printing baud rate, + don't print a baud rate if baud_rate is -1. + + * coffread.c (read_coff_symtab): Pass mst_file_* to + record_minimal_symbol for C_STAT symbols. Put C_EXT and C_STAT + symbols in the minimal symbols regardless of SDB_TYPE. + +Thu Feb 24 08:30:33 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * breakpoint.h (enum bptype): New type bp_through_sigtramp. + (bpstat_what_main_action): New code BPSTAT_WHAT_THROUGH_SIGTRAMP. + * breakpoint.c (bpstat_what): Return BPSTAT_WHAT_THROUGH_SIGTRAMP + if we hit a bp_through_sigtramp breakpoint. Remove kludge which + ignored bs->stop for a bp_step_resume breakpoint. + * infrun.c (wait_for_inferior): Make a through_sigtramp_breakpoint + which performs one (the check_sigtramp2 one) of the functions + which had been handled by the step_resume_breakpoint. For each + use of the step_resume_breakpoint, make it still use the + step_resume_breakpoint, use the through_sigtramp_breakpoint, or + operate on both. + Deal with BPSTAT_WHAT_THROUGH_SIGTRAMP return from bpstat_what. + When setting the frame address of the step resume breakpoint, set + it to the address for frame *before* the call instruction is + executed, not after. + + * mips-tdep.c (mips_print_register): Print integers using + print_scalar_formatted rather than duplicating all the + CC_HAS_LONG_LONG and so on. + (mips_push_dummy_frame): Use read_register_gen rather than using + read_register and then putting it back in target format with + store_unsigned_integer. If registers are more than 4 bytes, give + an error rather than have some registers overwrite other + registers. + #if 0 unused include of opcode/mips.h. + + * symfile.h: Don't declare arguments for coff_getfilename. + + * defs.h: Revert Kung change regarding FORCE_LONG_LONG. + +Thu Feb 24 08:06:52 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * configure.in (hppa*-*-osf*): New configuration. + * config/pa/hppaosf.mt: New target makefile fragment. + * config/pa/tm-hppao.h: New target include file. + +Thu Feb 24 04:29:19 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * exec.c (print_section_info): Print entry point for exec_bfd only. + * ser-unix.c (wait_for): Fix typo in HAVE_TERMIO case. + * dwarfread.c: Remove second inclusion of , which + causes problems if has no multiple inclusion protection. + +Wed Feb 23 16:28:55 1994 Jeffrey A. Law (law@cygnus.com) + + * tm-hppa.h (CALL_DUMMY): Add two NOP instructions to the end of + the call dummy to avoid kernel bugs in HPUX, BSD, and OSF1. + (CALL_DUMMY_LENGTH): Changed accordingly. + +Wed Feb 23 16:21:25 1994 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c (trap_low): Make trap handler work for arbitrary + numbers of register windows. + + * sparclite/hello.c: Add factorial function for testing. + * salib.c: Use macros instead of constants for I/O addresses to + make 931 support easier. + * sparclite.h: Change constraint for LOC to "rJ" to force use of + register in sta/lda instructions. + +Wed Feb 23 10:39:18 1994 Jim Kingdon (kingdon@rtl.cygnus.com) + + * dbxread.c (process_one_symbol): Set + block_address_function_relative for COFF like we do for ELF and SOM. + +Sat Feb 19 03:17:32 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (new_psymtab): Pass in section_offsets and set + them in the pst. + * mdebugread.c (handle_psymbol_enumerators): New function to enter + the enumerators of an ecoff enum into the partial symbol table. + * mdebugread.c (parse_partial_symbols): Call it. + * symfile.c (reread_symbols): Initialize objfile->*_psymbols.next. + * symmisc.c (dump_psymtab): Fix typo, clean up output of section + offsets. Cast psymtab->read_symtab to PTR before passing it to + gdb_print_address. + * i386-tdep.c (i386_skip_prologue): Skip over instructions that + set up the global offset table pointer in pic compiled code. + * config/mips/tm-mips.h (FIX_CALL_DUMMY): For big endian targets, + error() on TYPE_CODE_FLT arguments whose size is greater than 8, + swap all other TYPE_CODE_FLT arguments as mips_push_arguments + ensures that floats are promoted to doubles before they are pushed + on the stack. + +Fri Feb 18 23:12:59 1994 Stu Grossman (grossman at cygnus.com) + + * sparclite/Makefile.in, sparclite/salib.c, sparclite/sparclite.h: + Fixup cache_on and flush_i_cache so that they work for both the + 930 and 932 processors. Rewrite most low level funcs (uart + access & cache stuff) to use new ASI access macros in sparclite.h. + Also make it easy to access second serial port. + +Fri Feb 18 22:17:33 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * hp300ux-nat.c: Don't incloude , , or + ; not needed. + +Fri Feb 18 08:26:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stack.c (print_frame_info): In "pathological" case, don't + distrust the line number information. + +Fri Feb 18 16:51:14 1994 Kung Hsu (kung@mexican.cygnus.com) + + * mips-tdep.c (mips_print_register): handle 64 bits register. + * valprint.c (print_longest): fix a bug in printing 64 bits value. + +Fri Feb 18 08:26:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Version 4.12.2. + + * Makefile.in (install): Do the sed for program_transform_name + ourselves instead of worrying about INSTALL_XFORM. This enables + users to override INSTALL_PROGRAM in the standard way. + + * Makefile.in (c-exp.tab.o, ch-exp.tab.o, m2-exp.tab.o): Don't + depend on Makefile.in. + + * defs.h, valprint.c: Make longest_to_int a function not a macro. + Only test against INT_MIN if a LONGEST is bigger than an int. + + * README: Change GhostScript to Ghostscript. + +Fri Feb 18 07:30:55 1994 Jim Kingdon (kingdon@cygnus.com) + + * config/rs6000/{tm-rs6000lynx.h,nm-rs6000lynx.h,xm-rs6000lynx.h}: + Rename to tm-rs6000ly.h, nm-rs6000ly.h, xm-rs6000ly.h for 14 + character file names. + * Makefile.in (ALLPARAM): Add these files. + + * config/mips/littlemips64.mt: Rename to mipsel64.mt for 14 + character file names. + * Makefile.in: Add Kung's new mips64 files. + +Thu Feb 17 17:25:47 1994 Kung Hsu (kung@mexican.cygnus.com) + + * configure.in: add mips64-*-elf, mips64-*-ecoff, mips64el-*-elf, + mips64el-*-ecoff and mips64-big-*. + * defs.h: get rid of FORCE_LONG_LONG. + * mips-tdep.c (mips_find_saved_regs): add sd and sdc1 instruction + parsing. Change register size to be MIPS_REGSIZE. + +Thu Feb 17 09:30:22 1994 David J. Mackenzie (djm@thepub.cygnus.com) + + * corelow.c, exec.c, irix5-nat.c, mipsread.c, objfiles.c, + osfsolib.c, rs6000-nat.c, solib.c, symfile.c, utils.c, + xcoffexec.c: Use bfd_get_error and bfd_set_error and new error names. + +Fri Feb 11 21:47:24 1994 Steve Chamberlain (sac@sphagnum.cygnus.com) + + * remote-hms.c (readchar, hms_open, hms_fetch_register): Made more robust. + (remove_commands, add_commands): Add/remove hms-drain when target + is connected. + +Fri Feb 11 16:11:38 1994 Stu Grossman (grossman at cygnus.com) + + * configure.in: Add Lynx/rs6000 support. + * lynx-nat.c: Clean up some Sparc stuff. Clean up ptrace error + messages. Add rs6000 support. Don't try to modify unwritable + registers. + * rs6000-nat.c: Move lots of native dependent stuff (like core + file support) from rs6000-tdep.c & xcoffexec.c to here. + * rs6000-tdep.c: Move native dependent stuff to nat.c. + * xcoffexec.c: Move native dependent stuff to nat.c. + * config/rs6000/nm-rs6000.h: Move defs of SOLIB_* macros to here + from tm file. + * config/rs6000/tm-rs6000.h: Remove defs of SOLIB_* funcs, cuz they're + really native. + * config/rs6000/tm-rs6000lynx.h, config/rs6000/xm-rs6000lynx.h: + New files to support Lynx/rs6000. + +Tue Feb 8 00:32:28 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * README: Remove note about gcc warnings on alpha, these should be + gone now. + * c-exp.y, ch-exp.y, core.c, corelow.c, eval.c, fork-child.c, + m2-exp.y, minsyms.c, nlmread.c, parse.c, putenv.c, regex.c + remote-utils.c, stabsread.c: Include . + * regex.c: Include "defs.h", change re_comp argument to const char *. + * infptrace.c (fetch_register, store_inferior_registers): Change + regaddr to type CORE_ADDR. + * config/alpha/alpha-nw.mt, config/alpha/alpha-osf1.mt (MT_CFLAGS): + Remove, no longer necessary now that we use bfd_vma for a CORE_ADDR. + +Mon Feb 7 09:21:17 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * symtab.h: Always define BYTE_BITFIELD to nothing. + +Mon Feb 7 08:44:17 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * config/m68k/{m68k-em.mt,tm-m68k-em.h}: Remove; no longer used. + * configure.in: Remove comment about m68k-em.mt. + * Makefile.in: Remove references. + +Mon Feb 7 08:22:42 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * defs.h [BFD64]: Use BFD_HOST_64_BIT, not nonexistent + BFD_HOST_64_TYPE. + +Sun Feb 6 15:56:09 1994 Jeff Law (law@wild.cs.utah.edu) + + * hpread.c (hpux_symfile_init): Use obj_som_* rather than obj_* to + access BFD private data. Search for the "$TEXT$" space rather + than ".text". + (hppa_sym_fns): Add bfd target flavour to initializer. + +Sun Feb 6 06:55:15 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.c (target_preopen): If target_kill doesn't remove the + target from the stack, use pop_target to do it. + + * coffread.c (process_coff_symbol, case C_TPDEF): Don't set name + of TYPE_CODE_PTR or TYPE_CODE_FUNC types. This parallels similar + changes to stabsread.c from summer 1993. + + * remote-udi.c (udi_files_info): If prog_name is NULL, just skip + printing the program, rather than passing NULL to printf. + (udi_detach): Set udi_session_id to -1 so that udi_close doesn't + try to call UDIDisconnect again. Print better message. + (udi_kill): Just call UDIDisconnect ourselves, rather than doing + it via udi_close. + (udi_create_inferior): If udi_session_id is negative, open a new + TIP rather than giving an error. + + * config/mips/mipsm3.mh, config/i386/i386m3.mh, + config/ns32k/ns32km3.mh: Define NAT_FILE. + * config/nm-m3.h: Change guard from _OS_MACH3_H_ and _OS_MACH3_H + (it was inconsistent and namespace-wrong) to NM_M3_H. + * m3-nat.c (mach_really_wait): Change parameter name to ourstatus. + (m3_open): New function. + (m3_ops): Use it. + * TODO: Update Mach section. + + * Makefile.in: Remove "rapp" stuff; it is superseded by gdbserver. + +Sun Feb 6 13:26:21 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * printcmd.c (printf_command): Add missing single-letter + backslash-escape sequences, and improve error message. + +Sun Feb 6 06:55:15 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * corelow.c (solib_add_stub, core_open): Pass address of from_tty + rather than trying to shove an int into a pointer and back out + again. This avoids compiler warnings. + + * defs.h (alloca): Declare as void *, not char *, on hpux. + Don't prototype it, just declare the return type. + +Sun Feb 6 03:25:41 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/i386/tm-sun386.h, config/i386/tm-symmetry.h + (REGISTER_CONVERT_TO_RAW): Add missing backslash. + +Sat Feb 5 08:03:41 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-mips.c (mips_fetch_registers): If regno is FP_REGNUM or + ZERO_REGNUM, just read it as zero without talking to the board. + + * config/i386/tm-i386aix.h (REGISTER_CONVERT_TO_RAW): Add missing + backslash. + * i386-tdep.c (i386_extract_return_value): Pass TYPE_LENGTH (type) + to store_floating, not nonexistent variable len. + + * remote-mips.c (mips_insert_breakpoint, mips_remove_breakpoint): + New functions. + (mips_store_word): Change calling convention to return errors, and + to provide old contents if the caller wants it. + (mips_xfer_memory): Deal with errors from mips_store_word. + * config/mips/tm-idt.h, config/mips/tm-idtl.h: Remove BREAKPOINT + define now that remote-mips.c doesn't use BREAKPOINT. + + * remote-mips.c (mips_create_inferior): Call warning if arguments + specified, and then execute "set args" command. Call error, not + mips_error, if executable file not specified. + + * remote-e7000.c: Replace "snoop" command (e7000_noecho) with + remote_debug. + + * config/rs6000/tm-rs6000.h (STORE_STRUCT_RETURN): Don't cast + to unsigned int. + +Sat Feb 5 05:27:05 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * value.h (print_longest): Rename "value" to "val" in prototype + declaration because some compilers don't like arguments whose + names are the same as types. + * remote.c (remote_xfer_memory): Cast "myaddr" to unsigned char * + before passing it to remote_*_bytes. + +Fri Feb 4 15:53:18 1994 Steve Chamberlain (sac@cygnus.com) + + * h8500-tdep.c (saved_pc_after_call): The size of the + pc is memory model dependent. (segmented_command, + unsegmented_command, _initialize_h8500_tdep): New commands to + change memory model. + * remote-e7000.c (_initialize_remote_e7000): Change name of snoop + command. + * remote-hms.c (hms_load): Remove breakpoints when loaded. + (hms_wait): Use new status structure + (hms_open): Push the target here. (hms_before_main_loop): Not + here. (supply_val, hms_fetch_register, hms_store_register): Cope + with H8/500 names too. (hms_fetch_register): Take out REGISTER_TYPE. + * sh-tdep.c (show_regs, initialize_sh_tdep): New command to print + all registers in a compact way. + +Fri Feb 4 07:41:13 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * config/rs6000/tm-rs6000.h: Declare rs6000_struct_return_address + as CORE_ADDR to match definition in rs6000-tdep.c. + +Fri Feb 4 01:14:20 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dwarfread.c (process_dies): Skip nested TAG_compile_unit DIEs. + * dwarfread.c (add_partial_symbol): Do not enter opaque aggregate + definitions into the psymtab. + +Thu Feb 3 12:38:58 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * m68k-stub.c: Treat mc68332 like mc68020 most places. Provide + a special exceptionSize for the 68332. + + * remote-udi.c (udi_attach): If no arguments, print error. + +Thu Feb 3 17:34:05 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.12.1 + * NEWS, README: Update to match 4.12 release. + +Thu Feb 3 12:38:58 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * command.c (empty_sfunc): New function. + (add_set_cmd): Use it instead of not_just_help_class_command. + (not_just_help_class_command): Change calling convention back to + what it was before yesterday's change. + + * stabsread.c (read_sun_builtin_type): Skip the semicolon at the end + of the type if present. + +Wed Feb 2 11:16:45 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (decode_format): Don't blithely set the size for + an address to 'w'. Make it 'g' or 'h', depending on TARGET_PTR_BIT. + + * defs.h: Just typedef CORE_ADDR to bfd_vma. Include bfd.h. + If BFD64, make a LONGEST a BFD_HOST_64_BIT. + * defs.h (longest_to_int): Don't depend on CC_HAS_LONG_LONG; instead + always just check against INT_MIN and INT_MAX (this also fixes things + if sizeof (long) > sizeof (int), e.g. Alpha). + * config/pa/tm-hppa.h, config/i386/sun386.h, config/rs6000/tm-rs6000.h: + Don't define LONGEST or BUILTIN_TYPE_LONGEST. + * gdbtypes.h: Remove BUILTIN_TYPE_LONGEST and + BUILTIN_TYPE_UNSIGNED_LONGEST. + * language.h, c-lang.c, ch-lang.c, m2-lang.c, language.c: Remove + longest_int and longest_unsigned_int. + * value.h (struct value): Just align to LONGEST, rather than worrying + about CC_HAS_LONG_LONG. + * valarith.c (value_binop): Figure out type ourself based on + sizeof (LONGEST) rather than relying on BUILTIN_TYPE_LONGEST. The + point is that we don't depend on CC_HAS_LONG_LONG anymore. + * valprint.c (val_print_type_code_int): Just call + extract_unsigned_integer directly, rather than going through + unpack_long. + * printcmd.c (decode_format): Remove code which would sometimes + change 'g' size to 'w' for integers. print_scalar_formatted handles + printing huge integers well enough, thank you. + + * command.c (add_set_cmd, not_just_help_class_command): Change + to make this the sfunc, not cfunc, since that is how we call it. + * command.h: Comment difference between sfunc and cfunc. + * demangle.c (set_demangling_command): Add third arg since that + is how it is called. + (_initialize_demangler): Use sfunc, not cfunc, for + set_demangling_command, since that is how it is called. + Remove show_demangling_command; it has no effect. + + * command.c (shell_escape): Report errors correctly (with error + message from strerror). + +Wed Feb 2 14:35:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * xcoffread.c (read_xcoff_symtab): Change CSECT_LEN to use + x_scnlen.l rather than x_scnlen to match corresponding change in + coff/internal.h. + +Wed Feb 2 11:16:45 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbtypes.h, ch-typeprint.c, ch-valprint.c: + Change comments regarding TYPE_CODE_BOOL. + * language.c (boolean_type): Always return 1 for TYPE_CODE_BOOL, + regardless of the language. + (value_true): Just call value_logical_not regardless of language. + * coffread.c (coff_read_enum_type), stabsread.c (read_enum_type): + Remove #if 0'd code which makes some enums TYPE_CODE_BOOL. + * language.h: Improve comment for la_builtin_type_vector. + * m2-lang.c (_initialize_m2_language): Don't add any fields to + builtin_type_m2_bool. + +Tue Feb 1 17:13:32 1994 Kevin Buettner (kev@cujo.geg.mot.com) + + * config/m88k/{tm-delta88.h,tm-delta88v4.h}, m88k-tdep.c: + Define IN_SIGTRAMP and backtrace correctly through signal handlers. + +Tue Feb 1 22:13:25 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * procfs.c (wait_fd): Handle EINTR error return from PIOCWSTOP ioctl + by restarting the ioctl. + +Tue Feb 1 16:16:25 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.h (target_wait): Add comment about calling + return_to_top_level. + +Tue Feb 1 12:21:00 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * coffread.c (read_one_sym): bfd_coff_swap_aux_in now takes + additional arguments. + * xcoffread.c (read_xcoff_symtab, read_symbol_lineno): Likewise. + +Mon Jan 31 16:10:41 1994 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c: Remove unnecessary #include of memory.h. + +Mon Jan 31 12:12:34 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mips-tdep.c: Remove code which sets saved_regs from + init_extra_frame_info and put it in new function mips_find_saved_regs. + (READ_FRAME_REG): Remove macro and replace uses with the expansion. + * mips-tdep.c, config/mips/tm-mips.h: When examining ->saved_regs, + check if it is NULL and call mips_find_saved_regs if so. + + * remote-mips.c: Use unfiltered, not filtered, output most places. + + * blockframe.c (get_prev_frame_info): Detect and stop an infinite + backtrace. Revise comments. + +Mon Jan 31 09:40:33 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_procedure): Remove _sigtramp kludges for + alpha and irix. The _sigtramp case has to be handled properly + in the tdep files if we have no ecoff debugging info. + * alpha-tdep.c (alpha_frame_saved_pc, alpha_frame_chain), + mips-tdep.c (mips_frame_saved_pc): Handle signal handler frames + without PC_REGNUM kludge. + * mdebugread.c (fixup_sigtramp), mips-tdep.c (read_next_frame_reg): + Clean up handling of mips sigtramp frames, improve comments. + +Sat Jan 29 23:25:57 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * paread.c (read_unwind_info): Fix typo. + + * paread.c (pa_symtab_read): Update the "check_strange_names" + filter to match GCC's current output. Filter out section symbols + (which the HP linker sometimes puts in the wrong place). + +Sat Jan 29 07:44:59 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * serial.h (SERIAL_SET_TTY_STATE): Comment return value. + + * Makefile.in (TAGS): Just echo one line, rather than the whole thing. + + * Makefile.in: Remove all references to sparcly-nat.c. + + * Makefile.in (HFILES_NO_SRCDIR): Include dcache.h remote-utils.h + remote-sim.h directly, rather than via $(remote_utils_h). This avoids + duplicating serial.h and target.h. + + * Makefile.in: Don't set M_INSTALL and M_UNINSTALL. These variables + are not used anywhere (a 5 Oct 1993 change removed the uses). + + * config/m68k/monitor.mt (TDEPFILE): Add remote-es.o. + * config/m68k/es1800.mt: Add comment. + * remote-es.c: Extensive changes to update to current conventions. + + * ser-unix.c (wait_for, hardwire_readchar) [HAVE_TERMIO, HAVE_TERMIOS]: + If the timeout is too big to fit in c_cc[VTIME], then do multiple reads + to achieve the desired timeout. + * serial.h (serial_t): Add field timeout_remaining. + +Fri Jan 28 08:45:02 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * c-exp.y (yylex): Reenable nested type code. + +Fri Jan 28 15:40:33 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * a29k-tdep.c (examine_tag): Add comment regarding argcount. + + * remote-mips.c (mips_ops): Fix docstring. + + * remote-bug.c (bug_ops): Remove spurious newline from docstring. + + * config/m68k/tm-monitor.h: Changes to bring this into accordance + with the old tm-m68k-em.h: + (GDBINIT_FILENAME, DEFAULT_PROMPT): Remove. + (HAVE_68881): Don't undefine; HAVE_68881 is obsolete. + (REGISTER_NAMES): Don't muck with it; what tm-m68k.h has is fine. + Add FIXME regarding GET_LONGJMP_TARGET. + + * remote-udi.c (udi_close, udi_detach, udi_kill): Add comments. + * infptrace.c (kill_inferior): Add comments. + * main.c (quit_command): Call target_close after we kill or + detach. + * remote-udi.c (udi_close): Don't error() if QUITTING. + +Fri Jan 28 11:55:52 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * configure.in: Make m68k-coff and aout add monitor support in + addition to the standard serial support. + +Fri Jan 28 08:45:02 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * mdebugread.c (psymtab_to_symtab_1): Don't complain on stLabel with + index indexNil. + +Fri Jan 28 10:40:34 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/pa/tm-hppa.h: Define macro SMASH_TEXT_ADDRESS. + * elfread.c (record_minimal_symbol_and_info), + dwarfread.c (process_dies), paread.c (pa_symtab_read): Use it. + +Thu Jan 27 15:12:23 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * i386-stub.c: Add ".text" right before "mem_fault:". + + * main.c (baud_rate): Add FIXME comment about printing -1 value. + + * remote-utils.c (usage): Fix message to be accurate and conform + more closely to normal conventions. + + * remote-utils.c (gr_files_info): Have the exec_bfd test control + whether to show information about exec_bfd, and not control whether + to show information about device and speed. + + * remote-utils.c (gr_open): If sr_get_device returns NULL, give + usage message, don't dump core. + + * remote-bug.c (bug_write_memory): Use alloca, not GCC extension + for variable size array. + (bug_fetch_register, bug_store_register): Rename "value" to + "fpreg_buf" because some compilers don't like variables whose + names are the same as types. + (bug_store_register): Use a cast when converting char * to + unsigned char *. + + * symmisc.c (maintenance_print_symbols): Don't refer to the name + of the command in error message (the text was referring to the old + name of the command). + + * symmisc.c (dump_symtab): Fix args to fprintf_filtered. + + * c-typeprint.c (c_type_print_base): Have SHOW == 0 mean to print + full details on structure elements without names. This partially + reverts the changes of 1 Jul 1993 and 31 Aug 1993; I think this aspect + of those changes was accidental. + + * stack.c (parse_frame_specification): If SETUP_ARBITRARY_FRAME is + defined, make it an error to specify a single argument which is not + a frame number. + + * Makefile.in (version.c), main.c (print_gdb_version): Use + host_alias and target_alias, not host_canonical and + target_canonical, to print configuration. + +Wed Jan 26 10:57:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * parse.c (write_exp_msymbol): Use new type msymbol_addr_type instead + of builtin_type_long. It is necessary to get a type which is + TARGET_PTR_BIT bits in size; builtin_type_long might not be big enough. + + Fix many sins which will come up in 32 bit x 64 bit GDB, and + various miscellaneous things discovered in the process: + * printcmd.c, defs.h (print_address_numeric): New function. + * c-valprint.c (c_val_print), ch-valprint.c (chill_val_print) + breakpoint.c (describe_other_breakpoints, breakpoint_1, mention), + cp-valprint.c (cplus_print_value), infcmd.c (jump_command), + printcmd.c, stack.c, symfile.c, symmisc.c, valprint.c: + Use it. + * utils.c, defs.h (gdb_print_address): New function. + * expprint (dump_expression), gdbtypes.h: Use it. + * breakpoint.c (describe_other_breakpoints), + symmisc.c (dump_symtab, print_symbol): + Use filtered not unfiltered I/O. + (remove_breakpoints): Remove BREAKPOINT_DEBUG code. Might as well + just run gdb under a debugger for this (and it had problems with + printing addresses, how to print b->shadow, etc.). + * buildsym.c (make_blockvector), core.c (memory_error), + exec.c (print_section_info), maint.c (print_section_table), + mdebugread.c (parse_procedure), solib.c, source.c, symfile.c, + symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c: + Add comments saying code is broken. Marked with "FIXME-32x64". + * dbxread.c (process_one_symbol), partial-stab.h (default), + remote-vx.c (vx_run_files_info): + Don't cast int being passed to local_hex_string. + * symmisc.c (print_symbol): Don't cast long being passed to %lx. + * symtab.h (general_symbol_info): Add comment about SYMBOL_VALUE + only being a long. + * symmisc.c (print_symbol): Print "offset" in message for LOC_ARG + and LOC_LOCAL. + * printcmd.c (print_address): Remove #if 0 code with ADDR_BITS_REMOVE. + * source.c: Include regardless of USG. + +Tue Jan 25 12:58:26 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * valops.c (value_assign): Set `type' after coercing toval. + * c-valprint.c (c_val_print), ch-valprint.c (chill_val_print): + Use extract_unsigned_integer to get the address of a reference. + +Tue Jan 25 11:31:53 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (STABS_CONTINUE, error_type), partial-stab.h: + AIX can use ? instead of \ for continuation. Deal with it. + + * paread.c (read_unwind_info): Just assign to objfile->obj_private, + not OBJ_UNWIND_INFO. Assigning to a cast is a GCC-ism which + the HP compiler in ANSI mode doesn't like. + + * main.c: When defaulting HAVE_SIGSETMASK based on USG, just do it + based on USG, rather than defining HAVE_SIGSETMASK to an + expression containing defined. Having a macro used in #if expand + to an expression containing "defined" is undefined according to + ANSI, and the HP compiler in ANSI mode doesn't do what we wanted + it to. + +Mon Jan 24 20:51:29 1994 John Gilmore (gnu@cygnus.com) + + * sparc-nat.c (fetch_inferior_registers, store_inferior_registers): + Clean up the changes of 11 Jan, as recommended by Peter Schauer. + +Fri Jan 21 19:10:44 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * ch-exp.y (match_string_literal): Allow a zero-length string. + * ch-lang.c (chill_printstr): Don't print zero-length string funny. + +Sat Jan 22 17:08:48 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * i386aix-nat.c (i386_float_info): Reverse order of registers before + passing them to print_387_status. + (print_387_status): Don't subtract top from 7 before using it. + * i387-tdep.c: Remove comment about AIX wanting "top" subtracted + from 7; the above explains it. + +Sat Jan 22 20:25:11 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-tdep.c (init_extra_frame_info): Use frame relative stack + pointer value when fixing up the frame at the start of a function. + +Sat Jan 22 12:29:13 1994 Stu Grossman (grossman at cygnus.com) + + * lynx-nat.c (fetch_core_registers): Load the I & L regs for the + Sparc from the stack. + +Sat Jan 22 08:30:42 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * remote-mips.c (mips_initialize): Clear mips_initializing via + cleanup chain, not directly. + + * ser-unix.c (wait_for) [HAVE_TERMIO, HAVE_TERMIOS]: Make a timeout + of -1 mean forever, like in the HAVE_SGTTY case. Warn if we are + munging the timeout due to the limited range of c_cc[VTIME]. + + * fork-child.c, inferior.h (fork_inferior): New argument shell_file. + * procfs.c (procfs_create_inferior), inftarg.c (child_create_inferior), + m3-nat.c (m3_create_inferior): Pass it. + * procfs.c: Remove ptrace function. It was declared in a way which + conflicted with the prototype in unistd.h on Solaris. + +Sat Jan 22 01:37:40 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * sparc-tdep.c (frame_saved_pc): Get the pc from the saved pc + in the sigcontext if it is a signal trampoline frame. + * config/sparc/tm-sun4sol2.h (IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET): + Define for Solaris2. + +Sat Jan 22 00:34:47 1994 Stu Grossman (grossman at cygnus.com) + + * sparc-tdep.c, lynx-nat.c, config/sparc/tm-sparc.h, + config/sparc/tm-sparclynx.h: Move defs of FRAME_SAVED_I0/L0 to + tm-sparc.h so they can be overridden if necessary. + +Fri Jan 21 17:49:28 1994 Stu Grossman (grossman at cygnus.com) + + * lynx-nat.c: Add Sparc support. + * sparcly-nat.c: Remove. It's useless. + * config/sparc/nm-sparclynx.h: Rewrite. + * config/sparc/sparclynx.mh (NATDEPFILES): Replace sparcly-nat.o + with lynx-nat.o + * config/sparc/tm-sparclynx.h: Rewrite. + +Fri Jan 21 19:08:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * rs6000-pinsn.c: Use the new disassembler in the opcodes + directory. Old code was discarded, since the new opcode table has + a different format. + +Fri Jan 21 14:28:30 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (realclean): Remove info files per make-stds.texi. + +Fri Jan 21 12:47:53 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c (end_psymtab): Only patch psymtab textlow and texthigh + if N_SO_ADDRESS_MAYBE_MISSING is defined. + * config/sparc/tm-sun4sol2.h: Define it. + +Thu Jan 20 15:04:24 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * printcmd.c (print_address_symbolic): Unconditionally use msymbol + if we did not find a symbol. + +Fri Jan 21 08:20:18 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * infptrace.c (child_xfer_memory): Only use if CHILD_XFER_MEMORY + is not defined. + + * hppab-nat.c (call_ptrace): Delete redundant function. + (kill_inferior, attach, detach, child_resume): Likewise. + (child_xfer_memory): Likewise. + + * hppah-nat.c (call_ptrace): Delete redundant function. + (kill_inferior, attach, detach, child_resume): Likewise. + + * config/pa/hppabsd.mh (NATDEPFILES): Add infptrace.o. + + * config/pa/hppahpux.mh (NATDEPFILES): Add infptrace.o. + + * config/pa/nm-hppab.h (FETCH_INFERIOR_REGISTERS): Define. + + * config/pa/nm-hppah.h (FETCH_INFERIOR_REGISTERS): define. + (CHILD_XFER_MEMORY): Define. + (PT_*): Define so that generic infptrace.c code can be used. + +Fri Jan 21 09:23:33 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (xcoff_symfile_read): Make second parameter a + struct section_offsets *, not a (nonexistent) struct section_offset *. + + * xcoffread.c (read_xcoff_symtab): Make main_aux just a union + internal_xcoff_symtab, not an array of one of them. Change lots of + "main_aux" to "&main_aux" and so on. + + * coffread.c, xcoffread.c: Include + before "symfile.h". + +Thu Jan 20 17:30:55 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * coffread.c (coff_getfilename): Make it not static. + + * xcoffread.c (read_xcoff_symtab): complain() not abort(). + + * xcoffread.c (struct coff_symbol): Rename c_nsyms to c_naux (removes + a completely gratuitous difference between xcoffread.c and coffread.c). + +Wed Jan 19 15:09:44 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Don't set frame for + step_resume_breakpoint for IN_SIGTRAMP cases. + + * infrun.c (wait_for_inferior), breakpoint.h (struct bpstat_what), + breakpoint.c (bpstat_what): Move step_resume from its own field of + the struct bpstat_what into the main_action. Make it override + other breakpoints. This is a conservative change in the sense + that before the step resume breakpoint was a breakpoint.c + breakpoint, hitting the step resume breakpoint overrode even + calling bpstat_stop_status. + +Wed Jan 19 12:40:25 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (normal_stop): Set stop_pc after popping the dummy frame + in case execution was stopped in the called function. + * stack.c (print_frame_info, frame_info): If backtracing through + a call dummy, handle the starting source line number on a line + boundary like backtracing through sigtramp. + * sparc-tdep.c (sparc_frame_find_saved_regs): Get frame address + for call dummy frame right. Remove old test for dummy frame, + it has been unused at least since gdb-3.5. + * sparc-tdep.c (sparc_push_dummy_frame): Set return address register + of the dummy frame. + +Tue Jan 18 16:16:35 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infcmd.c (signal_command): Accept 0 as legitimate signal number. + +Tue Jan 18 14:09:25 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (signals_info), target.c (target_signal_from_name): + Use ugly casts to avoid enumvar < enumvar or enumvar++. + +Mon Jan 17 22:00:15 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * ser-unix.c (hardwire_noflush_set_tty_state): Don't muck with ICANON. + * inflow.c (terminal_ours_1): When discussing how to deal with the + tty state, make note of query() as well as readline. + + * infrun.c (_initialize_infrun): Add TARGET_SIGNAL_POLL to list of + signals for which stop and print are cleared by default. + +Mon Jan 17 20:00:51 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppa.h (unwind_table_entry): Use one of the + reserved fields to hold a stub unwind entry type. Fix typo. + (stub_unwind_entry): New structure for raw stub unwind entries. + (stub_unwind_types): The types of stubs we may encounter. + (UNWIND_ENTRY_SIZE, STUB_UNWIND_ENTRY_SIZE): New defines. + * hppa-tdep.c (rp_saved): Use additional information provided + by linker stub unwind descriptors. + (frameless_function_invocation): Likewise. + (frame_chain_valid): Likewise. + * paread.c (compare_unwind_entries): New function for sorting + unwind table entries. + (read_unwind_info): Rewrite to remove dependency on host endianness. + Read in data from the $UNWIND_END$ subspace which contains linker + stub unwind descriptors. Merge that data into the basic unwind + table. + + * hppab-nat.c (_initialize_kernel_u_addr): Delete unwanted functions. + +Mon Jan 17 22:00:15 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (read_xcoff_symtab, case C_FILE): Accept the name + from either the symbol name or the auxent. + * coffread.c, symfile.h (coff_getfilename): Renamed from getfilename, + no longer static. + +Mon Jan 17 13:35:01 1994 Fred Fish (fnf@cygnus.com) + + * Makefile.in (ALLPARAM): Change irix5.h to nm-irix5.h. + +Mon Jan 17 12:35:42 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * README: Update notes for alpha port. + +Mon Jan 17 11:15:57 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * i960-tdep.c (i960_fault_to_signal): Return TARGET_SIGNAL_ILL + for operation fault, constraint fault, and type fault. + +Sun Jan 16 12:46:01 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (init.c): Add comment explaining formatting conventions. + + * c-exp.y (parse_number): Assign to temporary between the right + shifts, to work around a bug in the SCO compiler. + + * Makefile.in (ALLCONFIG, ALLPARAM, ALLDEPFILES, HFILES_NO_SRCDIR): + Add various files which were added to GDB recently. + + * xcoffread.c (process_xcoff_symbol): Only change 'V' to 'S' if not + within_function. + + * Makefile.in: Add mostlyclean target. + +Sat Jan 15 10:20:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Version 4.11.4. + +Sat Jan 15 18:27:34 1994 Per Bothner (bothner@kalessin.cygnus.com) + + * main.c (show_commands): Make return type of extern + history_get be HIST_ENTRY, rather than struct _hist_entry. + (The latter loses with the upcoming merged readline.) + +Sat Jan 15 10:20:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * minsyms.c (prim_record_minimal_symbol_and_info): Make tempstring + const char *, not char *. + + * symtab.h (struct symbol): Make section short, not unsigned short. + + * symtab.c (lookup_symbol): Add comment about QUIT here. + + * utils.c (fputs_unfiltered): Call fputs, not fputs_maybe_filtered. + + * c-exp.y (parse_number): Check for overflow regardless of range + checking. Fix overflow check to use unsigned LONGEST, not + unsigned int. + + * c-exp.y (parse_number): Make it so that integer constants are + builtin_type_long_long if builtin_type_long isn't big enough or if + an "LL" suffix is used. Properly handle "UL" or "LU" suffixes. + + * c-typeprint.c (c_type_print_varspec_suffix, case TYPE_CODE_FUNC): + Print our "()" first, then recurse for the target type. + +Fri Jan 14 21:55:39 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c (udi_create_inferior): Quote empty execfile argument. + + * gdbserver/low-lynx.c: Include not "/usr/include/wait.h". + +Fri Jan 14 14:17:06 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c (request_quit): Re-establish signal handler regardless + of USG. + + * config/mips/xm-irix4.h: Define HAVE_TERMIOS. + +Fri Jan 14 21:55:39 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * i960-tdep.c: Include target.h. + +Fri Jan 14 17:12:28 1994 Stan Shebs (shebs@andros.cygnus.com) + + * lynx-nat.c (sys/wait.h): Don't use absolute pathname. + +Fri Jan 14 11:06:10 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * lynx-nat.c (child_wait): Fix thinkos in struct target_waitstatus + changes (status -> ourstatus; declare status, etc.). + * config/nm-lynx.h: Fix child_wait prototype and include target.h. + +Fri Jan 14 14:17:06 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (ALLPARAM): Add config/nm-lynx.h. + +Fri Jan 14 11:49:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * remote-mips.c (mips_request, mips_wait): Correct prototypes. + +Fri Jan 14 11:37:17 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/i386/xm-linux.h: Define HAVE_TERMIOS. + +Fri Jan 14 01:04:36 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/alpha/tm-alpha.h (CALL_DUMMY): Improve comment. + +Thu Jan 13 10:32:38 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-vx.c (vx_wait): Only call i960_fault_to_signal if I80960 + is defined. Otherwise just report TARGET_SIGNAL_UNKNOWN. + + * mips-tdep.c (mips_push_arguments): Byteswap struct_addr before + writing it. + + Add search to target vector (#if 0'd until after 4.12): + * target.h (to_search, target_search): Add. + * gdbcore.h, core.c (generic_search): Add. + * remote.c (remote_search): Add. + * a29k-tdep.c (init_frame_info): Use target_search to find traceback + tag. + + * printcmd.c (print_address_symbolic): If set print fast-symbolic-addr + is on, call find_pc_function rather than relying just on the minimal + symbols (probably only matters for symbol readers which don't put + statics in the minimal symbols, but changing this strikes me as + not conservative enough). + Initialize name_location in all cases. + If no symbol and no msymbol, don't print anything symbolic. + + * a29k-tdep.c (push_dummy_frame): Add comment about saving lr0. + +Wed Jan 12 20:53:16 1994 John Gilmore (gnu@cygnus.com) + + * printcmd.c (print_address_symbolic): Make it search the + symtabs for variables as well as functions. Add `set print + fast-symbolic-addr' and default it to fast (the old way). + Print line numbers for data items as well as functions. + + * symtab.c (find_addr_symbol): Return the symtab and the symbol + address, if a symbol is found (take two more args pointing to + where to store these results). + + * symtab.h (find_addr_symbol): Add prototype. + +Wed Jan 12 19:32:11 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * objfiles.h: Fix comments to reflect the fact that the phrase + "top of stack" always refers to where the pushing and popping takes + place, regardless of whether it is at the highest or lowest address. + +Wed Jan 12 13:23:37 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_symbol): Do not set TYPE_TAG_NAME for + compiler generated tag names. + * mdebugread.c (parse_type): Handle cross references to qualified + aggregate types. + * valops.c (value_struct_elt): Improve error message if the + address of a method is requested from an object instance. + * valops.c (search_struct_method): Make name_matched non-static + to get it initialized correctly. + * config/i386/nm-i386sco.h (CANNOT_STORE_REGISTER): Define to + exclude segment register which are not writable on newer SCO versions. + +Wed Jan 12 14:44:45 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * go32-xdep.c: Remove unused function uerror. + (sigsetmask): Declare return type. Declare argument (to match the + way it is called). Explicitly return 0. + +Wed Jan 12 01:44:25 1994 John Gilmore (gnu@cygnus.com) + + * symtab.h (struct symbol, general_symbol_info, minimal_symbol, + partial_symbol): Shrink the storage sizes of symbols, by making + enums into 1-byte bitfields when compiled __GNUC__, moving all the + enums and small ints to the end of each struct to improve + alignment, and switching the section number from int to unsigned + short. + +Wed Jan 12 00:16:26 1994 John Gilmore (gnu@cygnus.com) + + * symtab.c (find_addr_symbol): New routine that will find the nearest + symbol associated with an address. It does so by exhaustive + search of the symtabs, so it's slow but complete. + +Tue Jan 11 23:57:30 1994 John Gilmore (gnu@cygnus.com) + + * coffread.c (read_coff_symtab): Set PC bounds of _globals_ symtab + to [0,0] rather than [0, end of first source file]. This avoids + problems with other parts of GDB looking for linetables in the + _globals_ symtab. Eliminate variables num_object_files and + first_object_file_end. + +Tue Jan 11 00:53:46 1994 John Gilmore (gnu@cygnus.com) + + * a29k-tdep.c (init_frame_info): Cast null arg to examine_tag. + (pop_frame): Restore PC2 and LR0 from dummy frames. + (push_dummy_frame): Save PC2 and LR0 into dummy frames. + (setup_arbitrary_frame): Handle 3 args and set up real frames. + * config/a29k/tm-a29k.h (FRAME_NUM_ARGS): Update comments. + (DUMMY_FRAME_RSIZE): Add 2 longwords for PC2 and LR0. + (SETUP_ARBITRARY_FRAME): Define. + +Tue Jan 11 06:59:10 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * infrun.c, config/mips/tm-irix5.h: Remove #if 0'd AT_FUNCTION_START. + +Tue Jan 11 14:27:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * remote-udi.c (udi_resume): Correct prototype. + +Tue Jan 11 11:10:30 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppa.h (FRAME_FIND_SAVED_REGS): Call + hppa_frame_find_saved_regs. + * hppa-tdep.c (dig_fp_from_stack): Delete function. + (prologue_inst_adjust_sp): New function. + (is_branch, inst_saves_gr, inst_saves_fr): New functions. + (skip_prologue): Completely rewrite to use unwind information. + (hppa_frame_find_saved_regs): Likewise. + +Tue Jan 11 06:59:10 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * remote-mips.c (mips_wait): Use new function mips_signal_from_protocol + to convert a signal number with appropriate bounds checking. + + * remote-mips.c (mips_wait): Fix typos (0x177 -> 0177, 0x377 -> 0377). + +Tue Jan 11 00:53:46 1994 John Gilmore (gnu@cygnus.com) + + * stack.c (frame_info): If FRAME_FIND_SAVED_REGS isn't defined, + print a newline to end the display anyway. + + * sparc-tdep.c (sparc_pop_frame): Pop the fsr and csr (float and + coprocessor status regs) when popping a frame. This fixes + float exceptions that occur after calling inferior functions. + + * sparc-nat.c (fetch_inferior_registers, store_inferior_registers): + Read and write the fsr (float status register) to/from the child + process along with the float regs. Remove Peter Schauer's change + of May 24 '93, which has higher overhead and doesn't solve the + real problem (which was that FSR wasn't being set). + +Mon Jan 10 23:16:42 1994 John Gilmore (gnu@cygnus.com) + + * a29k-tdep.c (examine_prologue): Don't worry if the ASGEQ + stack overflow check isn't right after the register stack + adjustment instruction. Metaware R2.3u compiler moves other + things in front of it. This fix isn't perfect but is what's + running. + +Mon Jan 10 20:08:23 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * c-valprint.c (c_val_print): Treat TYPE_CODE_RANGE like TYPE_CODE_INT. + + * config/alpha/alpha-netware.mt: Rename to alpha-nw.mt for 14 + character filenames. + * configure.in: Change accordingly. + +Mon Jan 10 15:48:36 1994 Tom Lord (lord@rtl.cygnus.com) + + * m68k-stub.c, sparc-stub.c: removed spurious introduction of + _filtered io routines from these two files. + +Fri Jan 7 12:42:45 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/i386/tm-i386v.h, config/m68k/tm-m68k.h, config/mips/tm-mips.h, + config/vax/tm-vax.h (CALL_DUMMY_BREAKPOINT_OFFSET): Define. + * mdebugread.c (parse_symbol): Handle enum sh.type produced by + DEC c89. + * mdebugread.c (add_line): Handle zero linenos produced by DEC c89. + +Fri Jan 7 12:55:25 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c (print_sys_errmsg): Call gdb_flush (gdb_stdout) before + printing to gdb_stderr. + + * remote-udi.c (udi_kill): Don't close the connection, just set + inferior_pid to zero. + (udi_mourn): Call remove_breakpoints. + + * remote-udi.c: Remove obsolete need_artificial_traps comment. + + * i386b-nat.c (sregmap): If sEAX, etc., not defined, use tEAX, etc. + +Thu Jan 6 07:17:53 1994 Jim Kingdon (kingdon@deneb.cygnus.com) + + * symtab.c (lookup_symbol): Don't try adding .c to the name. + + * remote-bug.c: At the start of each section, reset srec_frame + back to 160. + + * target.h: Add TARGET_WAITKIND_LOADED and TARGET_WAITKIND_SPURIOUS. + * target.c (store_waitstatus): Add CHILD_SPECIAL_WAITSTATUS hook. + * infrun.c (wait_for_inferior): Replace SIGTRAP_STOP_AFTER_LOAD with + code which looks for those two waitkinds. Use switch statement. + * config/rs6000/tm-rs6000.h: Replace SIGTRAP_STOP_AFTER_LOAD with + CHILD_SPECIAL_WAITSTATUS. + + * procfs.c (procfs_wait): Fix argument name to match 4 Jan changes. + * Move target_signal_from_host, target_signal_to_host, and + store_waitstatus from inftarg.c to target.c. procfs needs them. + * target.c: Include "wait.h" and . + * target.h, infrun.c (proceed), proceed callers: Pass new code + TARGET_SIGNAL_DEFAULT instead of -1. This avoids problems with + enums being treated as unsigned and is cleaner. + * infrun.c (signals_info): Don't print TARGET_SIGNAL_DEFAULT or + TARGET_SIGNAL_0. + * infcmd.c (signal_command), infrun.c (signals_info): + Don't allow user to specify numeric equivalent of + TARGET_SIGNAL_DEFAULT. + +Tue Jan 4 15:34:36 1994 Stu Grossman (grossman@cygnus.com) + + * config/alpha/alpha-netware.mt: New target support for Alpha + running Netware. + * configure.in: Add alpha-*-netware* target. + +Tue Jan 4 14:51:35 1994 Stan Shebs (shebs@andros.cygnus.com) + + * remote-mips.c (mips_wait): Fix ref to TARGET_WAITKIND_STOPPED. + +Tue Jan 4 09:47:14 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * target.h: Add enum target_waitkind, enum target_signal, and + struct target_waitstatus. Change status argument to target_wait to + be struct target_waitstatus * instead of int *. + * target.h, infrun.c, all targets: Change type of signal arguments + to resume(), proceed(), and target_resume() from int to enum + target_signal. + * All targets (*_wait, *_resume): Change accordingly. + * infcmd.c (program_info, signal_command), throughout infrun.c, + * fork-child.c, solib.c, hppa-tdep.c, osfsolib.c: Use this stuff. + * convex-xdep.c, convex-tdep.c: Add FIXME's (getting the Convex + signal code stuff right with the new signals would be non-trivial). + * inferior.h (stop_signal): Make it enum target_signal not int. + * target.c, target.h (target_signal_to_string, target_signal_to_name, + target_signal_from_name): New functions. + * inftarg.c, target.h (target_signal_to_host, target_signal_from_host, + store_waitstatus): New functions. + * procfs.c (procfs_notice_signals): Use them. + * i960-tdep.c (i960_fault_to_signal): New function, to replace + print_fault. + * config/i960/tm-i960.h: Don't define PRINT_RANDOM_SIGNAL. + + * objfiles.c (build_objfile_section_table): Don't abort() if + objfile->sections is already set. + + * objfiles.c (add_to_objfile_sections): Check SEC_ALLOC not SEC_LOAD + to match recent change to exec.c. + + * Version 4.11.3. + + * main.c (print_gdb_version): Change year to 1994. + + * ChangeLog, ChangeLog-93: Split ChangeLog at 1994. + * Makefile.in (NONSRC): Add ChangeLog-93. + +Mon Jan 3 11:57:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * stabsread.c (read_type): Allow defining several type numbers + at once (e.g. "(1,2)=(3,4)="...). + + * stabsread.c (read_enum_type): Use TARGET_INT_BIT not sizeof (int). + + * breakpoint.c (frame_in_dummy): Check PC as well as frame. + +Mon Jan 3 02:47:03 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (psymtab_to_symtab_1): Only pass N_STAB symbols + to process_one_symbol. + * symtab.c (find_pc_psymbol): Search global_psymbols as well to + avoid caching a bad endaddr in find_pc_partial_function. + +Sun Jan 2 21:41:17 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m68k/tm-sun3.h: Don't define BELIEVE_PCC_PROMOTION. + +Sat Jan 1 04:35:23 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Do not step or step resume past + the end of a one-line function we just stepped into. + +For older changes see ChangeLog-93 + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-95 b/gdb/ChangeLog-95 new file mode 100644 index 0000000000..2265be880a --- /dev/null +++ b/gdb/ChangeLog-95 @@ -0,0 +1,4915 @@ +Fri Dec 29 16:30:58 1995 Stan Shebs + + * symfile.c (find_sym_fns): Add PowerMac to xcoff file recognition + kludge. + +Fri Dec 22 11:05:59 1995 Michael Meissner + + * configure.in (gdb_host): Add support for DG/UX running on x86 as + a host. + (all x86 targets and hosts): Add support for pentium-pro machines. + + * configure: Rebuild. + + * config/i386/i386dgux.mh: New file for DG/UX running on x86 host. + +Thu Dec 21 19:09:20 1995 Rob Savoye + + * remote-array.c (array_wait): Poll the keyboard along with the + serial port so users can tpye at the target while their + application is running. + +Thu Dec 21 11:58:52 1995 Michael Meissner + + * Makefile.in (ppcbug-rom.o, srec.o): Add dependencies. + + * monitor.c (monitor_debug): Take prefix, and suffix arguments. + Print trailing newline after the suffix. + (monitor_printf{,_noecho}): Change monitor_debug calls. + (monitor_printf): Call monitor_expect instead of trying to do the + expect processing locally so that if there is extra junk, it + doesn't hang things up. + (readchar): If MO_HANDLE_NL is set, handle \r\n pairs and convert + them to a single \r. Use monitor_debug to print out byte read. + + * monitor.h (MO_HANDLE_NL): Add new flag. + + * ppcbug-rom.c (ppcbug_ops{1,2}): Split into two ops, one that + uses lo 0 to load, and the other that uses lo 1. Set flag + MO_HANDLE_NL. + (ppcbug_open{0,1}): Clone and split to handle ppcbug_ops{1,2}. + (_initialize_ppcbug_rom): Set up both ppcbug_open{0,1}. + +Wed Dec 20 10:54:41 1995 Fred Fish + + * defs.h: Delete extraneous whitespace at end of file. + * symfile.h: Move #include of demangle.h outside conditional. + * objfiles.h (struct objstats, OBJSTAT, OBJSTATS): New struct and + macros to hold per-objfile statistics for internal + instrumentation. + (struct objfile): Add OBJSTATS member, which is optional. + * buildsym.h (next_symbol_text_func): Now takes objfile argument. + Also update copyright to 1995. + * dbxread.c (dbx_next_symbol_text): Now takes objfile argument. + (dbx_symfile_init, coffstab_build_psymtabs, elfstab_build_psymtabs, + stabsect_build_psymtabs): Accumulate string table size. + (dbx_next_symbol_text, read_dbx_symtab, read_ofile_symtab): + Accumulate number of stabs symbols read. + * dwarfread.c (new_symbol, symthesize_typedef): + Accumulate number of full symbols created. + * gdbtypes.c (alloc_type): Accumulate number of types. + * maint.c (maintenance_print_statistics): New function. + * mdebugread.c (mdebug_next_symbol_text): Now takes objfile + argument. + * minsyms.c (prim_record_minimal_symbol_and_info): Accumulate + number of minimal symbols read. + * os9kread.c (read_os9k_psymtab): next_symbol_text takes objfile + arg. + * partial-stab.h: next_symbol_text takes objfile arg. + * stabsread.c (error_type, STABS_CONTINUE): Now takes objfile arg + and uses it to call next_symbol_text. + * symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list): + Accumulate number of partial symbols created. + * symfile.h (ADD_PSYMBOL_VT_TO_LIST): Accumulate number of partial + symbols created. + * symmisc.c (print_objfile_statistics): Print the per-objfile + internal instrumentation statistics gathered. + * xcoffread.c (xcoff_next_symbol_text): Now takes objfile argument. + +Fri Dec 15 16:15:55 1995 Ian Lance Taylor + + * top.c (set_endian_from_file): Use new bfd_big_endian macro. + +Fri Dec 15 12:21:10 1995 Raymond Jou + + * mpw-make.sed: Add quotes to RIncludes reference. + +Fri Dec 15 13:18:55 1995 Rob Savoye + + * remote-array.c: Remove bogus setting of baudrate to 4800. Their + hardware has real UARTS now. + +Mon Dec 11 18:19:16 1995 Stan Shebs + + * configure.in (powerpc-*-macos*): New target configuration. + * configure: Update. + * config/powerpc/macos.mh, config/powerpc/macos.mt, + config/powerpc/nm-macos.h, config/powerpc/tm-macos.h, mac-nat.c: + New files, native PowerMac debugging support. + * Makefile.in (mac-nat.o): Add build rule. + * mpw-config.in (enable_cflags): Add support. + (m68k-apple-macos, powerpc-apple-macos): Fix natdepfiles to + list object file instead of source file. + * mpw-make.sed (@ENABLE_CFLAGS@): Don't edit out, replace with + value of variable. + (install, install-only): Edit MPW-specific installation into + place of Unix shell code. + * mac-gdb.r: Fix version resources to use symbolic version strings. + (cfrg): New resource, code fragment for PowerMac. + +Mon Dec 11 14:13:03 1995 Fred Fish + + * dbxread.c (process_one_symbol): When looking at the next + minimal symbol, check for end of the minimal symbol array + (symbol with NULL pointer for name) before dereferencing it. + +Mon Dec 11 15:56:55 1995 Per Bothner + + * eval.c (evaluate_struct_tuple): Fix thinko. + +Mon Dec 11 06:52:02 1995 Wilfried Moser + + * ch-typeprint.c (chill_type_print_base): Slightly change of printing + of variant structures. + +Mon Dec 11 00:36:01 1995 Per Bothner + + * valops.c (value_cast): Handle casts to and from TYPE_CODE_CHAR. + * ch-exp.c (match_integer_literal): Fix long long support. + * gdbtypes.c (get_discrete_bounds): Make TYPE_LENGTH (type) == + sizeof (LONGEST) case work OK. + +Fri Dec 8 21:02:24 1995 Fred Fish + + * coffread.c, dbxread.c, dstread.c, objfiles.c, os9kread.c, + symfile.c, symtab.c: Use "obstack.h" rather than . + +Wed Dec 6 16:16:18 1995 Stu Grossman (grossman@cirdan.cygnus.com) + + * remote-mips.c (mips_receive_header): Allow mips_syn_garbage to be + user-settable (via set syn-garbage-limit). Setting it to -1 makes + it unlimited. + +Tue Dec 5 18:33:43 1995 Brendan Kehoe + + * gdbtypes.c (check_stub_method): Make sure we get back a function + string in the demangled name before we try to use it. + +Tue Dec 5 18:08:29 1995 Stu Grossman (grossman@cygnus.com) + + * monitor.c (monitor_expect_regexp): Make static, add prototype. + * (monitor_read_memory_single): Call monitor_expect_regexp with + pointer to getmem_resp_delim_pattern, not entire struct. + +Tue Dec 5 15:51:25 1995 Stan Shebs + + * c-lang.h (c_op_print_tab): Don't declare, some compilers + consider illegal if structure not defined, and only used + in c-lang.c anyway. + +Sun Dec 3 12:31:03 1995 Per Bothner + + * eval.c (evaluate_subexp_standard case): Fix typo. + +Sun Dec 3 11:59:21 1995 Jeffrey A. Law + + * ch-exp.c (parse_named_record_element): Avoid aggregrate + initializations for automatic variables. + + * hppa-tdep.c (hppa_alignof): Fix typo in last change. + +Sat Dec 2 19:32:57 1995 Fred Fish + + * symfile.c (global_psymbols, static_psymbols): Remove, unused. + +Sat Dec 2 03:02:21 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * alpha-tdep.c (heuristic_proc_desc): Add heuristic to + determine the return address register, needed for OSF/1-3.2C. + * config/alpha/tm-alpha.h (T7_REGNUM, T9_REGNUM): Define. + +Fri Dec 1 07:23:57 1995 Michael Meissner + + * ppcbug-rom.c (ppcbug_cmds): Turn on MO_GETMEM_READ_SINGLE + because PPCbug displays the memory as characters as well as hex. + Fix getmem/setmem commands. + + * srec.c (load_srec): Fix off by one typo in last submission. + + * rs6000-tdep.c (push_arguments): Fix typo. + +Thu Nov 30 23:54:17 1995 Per Bothner + + * language.c (lang_bool_type), language.h: New function. + * language.h (LA_BOOL_TYPE): New macro. + * eval.c (evaluate_subexp_standard) Use LA_BOOL_TYPE instead + of builtin_type_int where appropriate, + * valarith.c (value_subscript): Likewise. + + * valops.c (value_slice): Implement (value) bitstring slices. + * valprint.c (val_print): If TYPE_LENGTH is zero, don't automatically + print "" - Chill has zero-length (string) types. + + * gdbtypes.c (check_stub_type): Removed; no longes needed. + * ch-exp.c (expect, parse_call): Tweak error messages. + +Wed Nov 29 13:35:18 1995 Per Bothner + + * scm-valprint.c (scm_isymnames): Remove "#@" prefix. + (scm_scmval_print): Do not print "#@" prefix. + + * gdbtypes.h (enum type_code): Added TYPE_CODE_TYPEDEF. + (check_typedef): New prototype. + (CHECK_TYPEDEF): New macro. + (TYPE_DUMMY_RANGE): Removed. + * gdbtypes.c (get_discrete_bounds): Fix paren error; make more robust. + (create_array_type): Don't force_to_range_type; users of the + array are responsible for handling non-range index types. + (create_set_type): Likewise. + (force_to_range_type): Removed. + (check_typedef): New function handles stub types and typedefs. + (check_stub_type): Just call check_typedef. (To be removed.) + (recursive_dump_type): Handle TYPE_CODE_TYPEDEF. + * ch-lang.c (type_lower_upper): Use get_discrete_bounds. + (evaluate_subexp_chill): Handle string repetition. + Re-arrange to handle EVAL_AVOID_SIDE_EFFECTS better. + * ch-typeprint.c (chill_type_print_base): Handle TYPE_CODE_TYPEDEF. + Pass show=0 in recursive calls various places. + (case TYPE_CODE_ARRAY): Don't require index type to have + TYPE_CODE_RANGE. + (case TYPE_CODE_RANGE): Don't need to support TYPE_DUMMY_RANGE. + * gdbtypes.c, ch-lang.c, ch-typeprint.c (numerous places): + Add check_typedef/CHECK_TYPEDEF as needed. + + * ch-exp.y: Replaced by ... + * ch-exp.c: New file. Use recursive-descent. + Recognize labelled array tuples and powerset ranges. + * Makefile.in: Update for no longer using yacc for ch-exp. + + * c-lang.c: Make various functions non-static. + * c-lang.h: Add bunches of prototypes. + * cp-valprint.c (cp_print_value_fields): Also take address. + (cp_print_value): Likewise. Use baselcass_offset. + * stabsread.c (current_symbol): New static variable. + (type_synonym_name): Remove. + (read_type): If copying, make copy be a TYPE_CODE_TYPEDEF. + (read_array_type): Don't need to handle undefined element type here. + (cleanup_undefined_types): Ditto. + (read_range_type): Look for Chill ranges. + * valops.c (value_assign): Fix case lval_internalvar - don't try + to assign into old value (which might be too small!). + (value_coerce_array): No longer need special VALUE_REPEATED handling. + (value_arg_coerce): Cleaner array->pointer decay mechanism. + (search_struct_field): Use baseclass_offset rather than + baseclass_addr. + (value_slice): Use get_discrete_bounds. + * value.h (COERCE_VARYING_ARRAY): Take type argumnt as well. + * values.c (baseclass_offset): Change parameter interface. + (baseclass_addr): Removed. + * c-typeprint.c, c-valprint.c, ch-valprint.c, values.c, valops.c: + Add check_typedef/CHECK_TYPEDEF as needed. + + * alpha-tdep.c, c-exp.y, h8500-tdep.c, f-exp.y, f-valprint.c, + findvar.c, hppa-tdep.c, infcmd.c, language.c, printcmd.c, + rs6000-tdep.c, symmisc.c, symtab.c, mdebugread.c: + Add check_typedef/CHECK_TYPEDEF as needed. + + * f-typeprint.c, valarith.c, valprint.c, typeprint.c, eval.c: + Add check_typedef/CHECK_TYPEDEF as needed. + * f-typeprint.c: Various cleaning up. + * valarith.c (value_subscript): Also subscript bitstrings (for Chill). + * typeprint.c (print_type_scalar): Also support TYPE_CODE_RANGE. + * eval.c (evaluate_subexp_standard case OP_ARRAY): Implement + support for labelled array tuples and ranges in powerset tuples. + (init_array_element): New function. + + * top.c (command_line_input): Only strip out an initial #-comment. + Looking for internal comments is language-specific (breaks Scheme). + + * expression.h (enum exp_opcode): Add BINOP_RANGE. + * expprint.c (dump_expression): Support BINOP_RANGE. + * eval.c (evaluate_subexp_standard): Handle BINOP_RANGE (as error). + (case MULTI_SUBSCRIPT): Fix broken f77 value->int ad hoc conversion. + * ch-lang.c (chill_op_print_tab): Support BINOP_RANGE. + (evaluate_subexp_chill): Error on BINOP_COMMA. + + * Makefile.in: Clean up so doc stuff stays in doc sub-dir. + +Wed Nov 29 16:39:50 1995 Michael Meissner + + * monitor.c (monitor_debug): New function to print monitor debug + output in printable fashion. + (monitor_printf{,_noecho}): Call monitor_debug instead of + fputs_unfiltered. + + * srec.c (load_srec): When printing srec debug information, do not + print the carriage return directly, instead print \\r followed by + a newline. + +Tue Nov 28 15:25:28 1995 Doug Evans + + * Makefile.in (target_subdir): Define. + (CC_FOR_TARGET, CXX_FOR_TARGET): Use it to find target libraries. + * configure.in (X_CFLAGS): Fix typo. + (target_subdir): Set to "${target_alias}/" if cross. + * configure: Regenerated. + + * dbxread.c (dbx_symfile_read): Set block_address_function_relative + for `pe' format files. + +Tue Nov 28 11:17:47 1995 Fred Fish + + * magic.h: Renamed to gmagic.h to avoid conflict. + * magic.c: Renamed to gmagic.c in sympathy. + * eval.c, gmagic.c, config/tm-magic.h: + Include "gmagic.h" rather than "magic.h". + +Sat Nov 25 02:56:38 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (handle_psymbol_enumerators, parse_symbol): + Recognize enums from alpha cc -migrate. + (upgrade_type): Pass correct fd to parse_symbol when parsing + the index type of an array. + (parse_procedure, parse_lines, psymtab_to_symtab_1): Handle + unsorted procedure descriptors from Irix 5.x and Alpha OSF/1-3.x + shared libraries. Use CORE_ADDR instead of `unsigned long' in + procedure descriptor address computations. + + * symtab.c (decode_line_1): Prevent accidental strchr match + of a null character with the terminating null character of + gdb_completer_quote_characters. + (cplusplus_hint): Make sure that only a single quote is printed + in the hint message. + +Fri Nov 24 16:17:01 1995 Jeffrey A Law (law@cygnus.com) + + * top.c (recurse_read_control_structure): Don't make cleanups + here. Callers handle that correctly. + +Tue Nov 21 15:16:34 1995 Fred Fish + + * config/m68k/xm-hp300hpux.h: Define MMAP_BASE_ADDRESS and MMAP_INCREMENT. + Also force HAVE_MMAP to be defined since autoconf is currently broken + for detecting a working mmap under hpux. + * config/pa/xm-hppah.h (MMAP_BASE_ADDRESS): Tweak MMAP_BASE_ADDRESS + to a better value suggested by Jeffrey A Law (law@cygnus.com). + +Tue Nov 21 08:48:58 1995 Fred Fish + + * config/pa/xm-hppah.h: Define MMAP_BASE_ADDRESS and MMAP_INCREMENT. + Also force HAVE_MMAP to be defined since autoconf is currently broken + for detecting a working mmap under hpux. + * objfiles.c (map_to_address): Have gdb print a warning when it + is compiled with HAVE_MMAP but without both MMAP_BASE_ADDRESS and + MMAP_INCREMENT defined (thus making it appear mmap doesn't work). + +Mon Nov 20 14:13:53 1995 Stu Grossman (grossman@cygnus.com) + + * infrun.c (wait_for_inferior): Add support for dynamic function + trampolines. These are pieces of code between the caller and the + callee that figure out the address of the callee's code at run + time. Upon entry, we can't figure out the callee's address, so we + set a breakpoint within the trampoline where the address will be + known, and continue the target. Once we hit the breakpoint, we + break at the callee's address and proceed as usual. + +Mon Nov 20 11:12:34 1995 Fred Fish + + * objfiles.c (allocate_objfile): Change warning message about mapped + symbol tables so that it is obvious that they are not supported on + this particular machine rather than implying they are not supported + at all in this version of gdb. + +Sun Nov 19 05:20:53 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * irix5-nat.c, osfsolib.c (solib_address): Return the name of the + containing solib. + * stack.c (print_frame_info): Use minimal symbol only if + fi->pc is in a known section. + +Sat Nov 18 11:19:35 1995 Roland McGrath + + * solib.c (solib_address): Return the name of the containing solib. + * solib.h (PC_SOLIB): New macro; define using solib_address. + * stack.c (print_frame_info) [PC_SOLIB]: If no function name, try + PC_SOLIB on the PC value. + +Sat Nov 18 04:09:31 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * annotate.c (annotate_source, annotate_frame_begin): Issue + `0x' prefix for the pc value, to remain consistent with previous + GDB versions. + + * blockframe.c (find_pc_partial_function), config/pa/tm-hppa.h: + Remove Sun shared library transfer hack and + INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK, it is obsoleted by the + mst_solib_trampoline minimal symbols. + + * blockframe.c (inside_main_func): Check main_func_*pc against + INVALID_ENTRY_*PC, not zero. + * symfile.c (init_entry_point_info): Initialize ei.*pc with + INVALID_ENTRY_*PC. + * mipsread.c (mipscoff_symfile_read): If the entry_file bounds + are still unknown after processing the partial symbols, then try + to set them from the minimal symbols. + + * infcmd.c (registers_info): Error out if selected_frame is NULL. + * stack.c (return_command): Select new current frame silently if + not interactive. + + * mipsread.c (read_alphacoff_dynamic_symtab): Ignore additional + DT_MIPS_LOCAL_GOTNO and DT_MIPS_GOTSYM entries. + + * irix5-nat.c (solib_create_inferior_hook): Call solib_add only + if auto_solib_add_at_startup is nonzero. + (_initialize_solib): Add "set auto-solib-add" command. + * osfsolib.c (solib_create_inferior_hook): Call solib_add only + if auto_solib_add_at_startup is nonzero. + (_initialize_solib): Add "set auto-solib-add" command. + +Wed Nov 15 17:12:04 1995 Stan Shebs + + * utils.c: Don't include sys/ioctl.h etc if MPW is host. + +Tue Nov 14 17:16:46 1995 Doug Evans + + * config/arm/tm-arm.h (ADDITIONAL_REGISTER_NAMES): Fix r5. + (FRAME_SAVED_PC): Minor clean up. + +Tue Nov 14 14:51:05 1995 Stu Grossman (grossman@cygnus.com) + + * monitor.c (monitor_load_srec monitor_make_srec): Move all + S-record download code into srec.c. + * srec.c srec.h: New files. Contain S-record loading routines + formerly in monitor.c. + * serial.c serial.h: New routine just like fprintf, but uses + serial_t instead of FILE *. + * sh-tdep.c (frame_find_saved_regs init_extra_frame_info): + Don't add four to saved pc (makes things match manual). Also, fix + bug where we didn't get pc from stack frame correctly. + * config/sh/tm-sh.h (SAVED_PC_AFTER_CALL): Don't add four to + saved pc. Real hardware does this for you. + * sh3-rom.c (sh3_load): New routine. Sets up for download then + calls generic S-record loader. + * config/h8300/h8300.mt, config/h8500/h8500.mt, + config/m68k/monitor.mt, config/pa/hppapro.mt, config/sh/sh.mt: + Add srec.o to TDEPFILES. + +Tue Nov 14 15:57:36 1995 Michael Meissner + + * ppcbug-rom.c: New file to support the Motorola PPCBUG monitor + for PowerPC's. + + * config/powerpc/ppc{,le}-{eabi,sim}.mt (TDEPFILES): Include + ppcbug-rom.o, monitor.o, and srec.o + + * config/i386/linux.mt (XDEPFILES): Include ser-tcp.o. + +Mon Nov 13 13:12:46 1995 Jeffrey A Law (law@cygnus.com) + + * partial-stab.h: Remove GDB_TARGET_IS_HPPA kludge. + +Fri Nov 10 13:08:54 1995 Jeff Law (law@kahlua.cs.utah.edu) + + * terminal.h (HAVE_SGTTY): Fix typo. + +Thu Nov 9 17:34:01 1995 Michael Meissner + + * configure.in (gdb_target): Build in the simulator for all + PowerPC eabi targets, not just eabisim, providing + --enable-sim-powerpc is used, or the host compiler is GCC. + +Thu Nov 9 14:04:05 1995 Raymond Jou (rjou@mexican.cygnus.com) + + * mpw-config.in: Add variable with names of SIOW libraries. + * mpw-make.sed: Add an action to build SIOWgdb. + +Wed Nov 8 19:25:22 1995 Stan Shebs + + * mpw-make.sed: Edit @ENABLE_CFLAGS@ out, mpw-configure can + add back in if necessary. + +Wed Nov 8 15:59:52 1995 James G. Smith + + * config/mips/vr4300.mt: Added simulator to default VR4300 build. + +Tue Nov 7 16:02:25 1995 Stu Grossman (grossman@cygnus.com) + + * remote-mips.c (mips_initialize): Fix brain damage found by + Jamie. Basically had case statement in the wrong place... + * (mips_load): Remove unnecessary `db tty0' command. It's all + handled by mips_initialize now. + +Tue Nov 7 12:59:14 1995 Raymond Jou + + * mac-gdb.r: Added #ifdef Macgdb. + +Tue Nov 7 14:59:51 1995 James G. Smith + + * remote-mips.c (mips_initialize): Updated to talk to VR4300 RISQ + monitor board. + +Mon Nov 6 11:44:11 1995 James G. Smith + + * config/mips/{tm-vr4300.h tm-vr4300el.h} (TARGET_MONITOR_PROMPT): + Change into real strings. + + * remote-sim.c (gdbsim_open): Moved sim_open() call to after + callback initialisation. + +Sun Nov 5 00:07:52 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * configure.in (AC_CHECK_HEADERS): add stddef.h. + +Fri Nov 3 12:30:43 1995 Fred Fish + + * Makefile.in (COMMON_OBS): Use corefile.o rather than core.o + * core.c: Rename to corefile.c. + * config/pyr/tm-pyr.h, umax-xdep.c, sun386-nat.c, pyr-xdep.c, + Makefile.in (SFILES), gould-xdep.c, coredep.c, armtdep.c, + arm-xdep.c, altos-xdep.c: Change core.c references to corefile.c. + + From Graham Stoney . + * Makefile.in (remote-array.o): Add rule to build. + (ALLDEPFILES): Add remote-array.c + * remote-array.c (baud_rate): Remove unnecessary declaration. + (baudrate): Remove. + (array_files_info): Print global baud_rate not baudrate. + +Sat Nov 4 10:21:58 1995 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (INTERNAL_CFLAGS): Add ENABLE_CFLAGS. + * fork-child.c (fork_inferior): Add call to + TARGET_CREATE_INFERIOR_HOOK to allow target specific code to get + control just before the new process executes it's first instruction. + * remote-mips.c (mips_initialize): Cleanup a bit. Don't try to + receive a packet at first. This speeds up initialization a lot. + Use TARGET_MONITOR_PROMPT instead of "". + (common_breakpoint): Use rresponse instead of rerrflg to inspect + error code. + * symfile.c (syms_from_objfile reread_symbols): Call + TARGET_SYMFILE_POSTREAD to allow target specific code to get + control after reading new symbols. + * target.h: New macros TARGET_SYMFILE_POSTREAD, and + TARGET_CREATE_INFERIOR_HOOK. See above for descriptions. + * config/mips/{irix5.mh nm-irix5.h}: Delete nm-irix5.h. Make + NAT_FILE point directly at ../nm-sysv4.h. + * config/mips/{mipsm3.mh nm-m3.h}: Delete nm-m3.h. Make + NAT_FILE point directly at ../nm-m3.h. + * config/mips/{mipsv4.mh nm-sysv4.h}: Delete nm-sysv4.h. Make + NAT_FILE point directly at ../nm-sysv4.h. + * config/mips/nm-mips.h: Improve comment at top of file. + * config/mips/tm-mips.h (TARGET_MONITOR_PROMPT): Change + definition into a proper string. + +Wed Nov 1 20:18:08 1995 Fred Fish + + * config/i386/tm-i386.h: New file containing generic i*86 target + definitions. + (TARGET_BYTE_ORDER): Moved here from tm-i386v.h. + (IEEE_FLOAT): Moved here from tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Define default as 2. + (FUNCTION_START_OFFSET): Moved here from tm-i386v.h. + (SKIP_PROLOGUE): Moved here from tm-i386v.h. + (SAVED_PC_AFTER_CALL): Moved here from tm-i386v.h. + (INNER_THAN): Moved here from tm-i386v.h. + (BREAKPOINT): Moved here from tm-i386v.h. + (DECR_PC_AFTER_BREAK): Moved here from tm-i386v.h. + (ABOUT_TO_RETURN): Moved here from tm-i386v.h. + (REGISTER_SIZE): Moved here from tm-i386v.h. + (NUM_REGS): Moved here from tm-i386v.h. + (REGISTER_NAMES): Moved here from tm-i386v.h. + (EXTRACT_STRUCT_VALUE_ADDRESS): Moved here from tm-i386v.h. + (FP_REGNUM): Moved here from tm-i386v.h. + (SP_REGNUM): Moved here from tm-i386v.h. + (PC_REGNUM): Moved here from tm-i386v.h. + (PS_REGNUM): Moved here from tm-i386v.h. + (FP0_REGNUM): Moved here from tm-i386aix.h. + (FPC_REGNUM): Moved here from tm-sun386.h. + (REGISTER_BYTES): Moved here from tm-i386aix.h. + (REGISTER_BYTE): Moved here from tm-i386aix.h. + (REGISTER_RAW_SIZE): Moved here from tm-i386aix.h. + (MAX_REGISTER_RAW_SIZE): Moved here from tm-i386aix.h. + (REGISTER_VIRTUAL_SIZE): Moved here from tm-i386aix.h. + (MAX_REGISTER_VIRTUAL_SIZE): Moved here from tm-i386aix.h. + (EXTRACT_RETURN_VALUE): Moved here from tm-i386aix.h. + (STORE_RETURN_VALUE): Moved here from tm-i386aix.h. + (REGISTER_VIRTUAL_TYPE): Moved here from tm-i386v.h. + (STORE_STRUCT_RETURN): Moved here from tm-i386v.h. + (FRAME_CHAIN): Moved here from tm-i386v4.h. + (FRAMELESS_FUNCTION_INVOCATION): Moved here from tm-i386v4.h. + (FRAME_SAVED_PC): Moved here from tm-i386os9k.h + (FRAME_ARGS_ADDRESS): Moved here from tm-i386v.h. + (FRAME_LOCALS_ADDRESS): Moved here from tm-i386v.h. + (FRAME_NUM_ARGS): Moved here from tm-i386sun.h. + (FRAME_ARGS_SKIP): Moved here from tm-i386v.h. + (FRAME_FIND_SAVED_REGS): Moved here from tm-i386v.h. + (PUSH_DUMMY_FRAME): Moved here from tm-i386v.h. + (POP_FRAME): Moved here from tm-i386v.h. + (CALL_DUMMY, CALL_DUMMY_LENGTH, CALL_DUMMY_START_OFFSET, + CALL_DUMMY_BREAKPOINT_OFFSET, FIX_CALL_DUMMY): Moved here from + tm-i386v.h + (print_387_control_word, print_387_status_word): Declare prototypes. + (struct frame_info, struct frame_saved_regs): Forward decls for + prototypes. + (SP_ARG0): Moved here from tm-i386v.h. + + * config/i386/tm-i386v.h: + (i386/tm-i386.h): Include. + (TARGET_BYTE_ORDER): Remove. + (IEEE_FLOAT): Remove. + (START_INFERIOR_TRAPS_EXPECTED): Undef before redefine to 4. + (FUNCTION_START_OFFSET): Remove. + (SKIP_PROLOGUE): Remove. + (i386_skip_prologue): Remove prototype. + (SAVED_PC_AFTER_CALL): Remove. + (INNER_THAN): Remove. + (BREAKPOINT): Remove. + (DECR_PC_AFTER_BREAK): Remove. + (ABOUT_TO_RETURN): Remove. + (REGISTER_SIZE): Remove. + (NUM_REGS): Undef before redefine to 16 (no FP support). + (REGISTER_NAMES): Undef before redefine. + (FP_REGNUM, SP_REGNUM, PC_REGNUM, PS_REGNUM): Remove. + (REGISTER_BYTES): Undef before redefine. + (REGISTER_BYTE): Undef before redefine. + (REGISTER_RAW_SIZE): Undef before redefine. + (REGISTER_VIRTUAL_SIZE): Undef before redefine. + (MAX_REGISTER_RAW_SIZE): Undef before redefine. + (MAX_REGISTER_VIRTUAL_SIZE): Undef before redefine. + (REGISTER_VIRTUAL_TYPE): Undef before redefine. + (STORE_STRUCT_RETURN): Undef before redefine. + (EXTRACT_RETURN_VALUE): Undef before redefine. + (STORE_RETURN_VALUE): Undef before redefine. + (EXTRACT_STRUCT_VALUE_ADDRESS): Remove. + (FRAME_CHAIN): Undef before redefine. + (FRAMELESS_FUNCTION_INVOCATION): Undef before redefine. + (FRAME_SAVED_PC): Undef before redefine. + (FRAME_ARGS_ADDRESS): Remove. + (FRAME_LOCALS_ADDRESS): Remove. + (FRAME_NUM_ARGS): Undef before redefine. + (FRAME_ARGS_SKIP): Remove. + (FRAME_FIND_SAVED_REGS): Remove. + (PUSH_DUMMY_FRAME): Remove. + (POP_FRAME): Remove. + (CALL_DUMMY): Remove. + (CALL_DUMMY_LENGTH): Remove. + (CALL_DUMMY_START_OFFSET): Remove. + (CALL_DUMMY_BREAKPOINT_OFFSET): Remove + (FIX_CALL_DUMMY): Remove. + (print_387_control_word): Remove. + (print_387_status_word): Remove. + (SP_ARG0): Remove. + + * config/i386/tm-symmetry.h: + (TM_SYMMETRY_H): Enclose file in test for define & define if needed. + (START_INFERIOR_TRAPS_EXPECTED): Move to after inclusion of + tm-i386v4.h or tm-i386v.h, #undef, and #define back to 2. + (DECR_PC_AFTER_BREAK): Move to after inclusion of tm-i386v4.h + or tm-i386v.h, #undef, and #define to 0. + (MAX_REGISTER_RAW_SIZE): Remove. + (FRAME_CHAIN): Remove. + (FRAMELESS_FUNCTION_INVOCATION): Remove. + (FRAME_SAVED_PC): Remove. + (print_387_control_word, print_387_status_word): Remove prototypes. + + * config/i386/tm-ptx.h: + (TM_PTX_H): Enclose file in test for define & define if needed. + (START_INFERIOR_TRAPS_EXPECTED): Move to after inclusion of + tm-i386v4.h or tm-i386v.h, #undef, and #define back to 2. + (DECR_PC_AFTER_BREAK): Move to after inclusion of tm-i386v4.h + or tm-i386v.h, #undef, and #define to 0. + (SDB_REG_TO_REGNUM): Remove obsolete commented out define. + (print_387_control_word, print_387_status_word): Remove prototypes. + + * config/i386/tm-linux.h: + (TM_LINUX_H): Enclose file in test for define & define if needed. + (i386/tm-i386.h): Include instead of tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Remove. + + * config/i386/tm-i386v4.h: + (TM_I386V4_H): Enclose file in test for define & define if needed. + (i386/tm-i386.h): Include instead of tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Remove. + (FRAME_CHAIN): Moved to tm-i386.h. + (FRAMELESS_FUNCTION_INVOCATION): Moved to tm-i386.h. + (FRAME_SAVED_PC): Remove. + (sigtramp_saved_pc): Define as i386v4_sigtramp_saved_pc. + (FRAME_NUM_ARGS): Remove. + + * config/i386/tm-i386os9k.h: + (TM_I386OS9K_H): Enclose file in test for define & define if needed. + (i386/tm-i386.h): Include instead of tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Remove. + (NUM_REGS): Undefine before redefining. + (FRAME_CHAIN): Remove. + (FRAMELESS_FUNCTION_INVOCATION): Remove. + (FRAME_SAVED_PC): Move to tm-i386.h. + + * config/i386/tm-i386nw.h: + (TM_I386NW_H): Enclose file in test for define & define if needed. + (i386/tm-i386.h): Include instead of tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Remove. + + * config/i386/tm-i386bsd.h: + (TM_I386BSD_H): Enclose file in test for define & define if needed. + (i386/tm-i386.h): Include instead of tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Remove. + (FRAMELESS_FUNCTION_INVOCATION): Remove. + (FRAME_SAVED_PC): Remove. + + * config/i386/tm-i386aix.h: + (i386/tm-i386.h): Include instead of tm-i386v.h. + (START_INFERIOR_TRAPS_EXPECTED): Remove. + (FP_REGNUM): Remove. + (SP_REGNUM): Remove. + (PC_REGNUM): Remove. + (PS_REGNUM): Remove. + (FP0_REGNUM): Moved to tm-i386.h. + (NUM_REGS): Remove. + (REGISTER_NAMES): Remove. + (REGISTER_BYTES): Moved to tm-i386.h. + (REGISTER_BYTE): Moved to tm-i386.h. + (REGISTER_RAW_SIZE): Moved to tm-i386.h. + (MAX_REGISTER_RAW_SIZE): Moved to tm-i386.h. + (REGISTER_VIRTUAL_SIZE): Moved to tm-i386.h. + (REGISTER_VIRTUAL_TYPE): Removed. + (EXTRACT_RETURN_VALUE): Moved to tm-i386.h. + (STORE_RETURN_VALUE): Moved to tm-i386.h. + + * config/i386/tm-sun386.h: + (TM_SUN386_H): Enclose file in test for define & define if needed. + (i386/tm-i386.h): Include. + (TARGET_BYTE_ORDER): Remove. + (FUNCTION_START_OFFSET): Remove. + (SKIP_PROLOGUE): Remove. + (SAVED_PC_AFTER_CALL): Remove. + (INNER_THAN): Remove. + (BREAKPOINT): Remove. + (DECR_PC_AFTER_BREAK): Remove. + (ABOUT_TO_RETURN): Remove. + (REGISTER_SIZE): Remove. + (NUM_REGS): Undefine before defining. + (REGISTER_NAMES): Undefine before redefining. + (REGISTER_BYTES): Undefine before redefining. + (REGISTER_BYTE): Undefine before defining. + (FP_REGNUM): Undefine before defining. + (PC_REGNUM): Undefine before defining. + (FPC_REGNUM): Undefine before defining. + (REGISTER_RAW_SIZE): Undefine before defining. + (FRAME_CHAIN): Undefine before defining. + (FRAMELESS_FUNCTION_INVOCATION): Undefine before defining. + (FRAME_SAVED_PC): Undefine before defining. + (FRAME_NUM_ARGS): Moved to tm-i386.h. + (MAX_REGISTER_RAW_SIZE): Remove. + (MAX_REGISTER_VIRTUAL_SIZE): Remove. + (STORE_STRUCT_RETURN): Remove. + (EXTRACT_STRUCT_VALUE_ADDRESS): Remove. + (FRAME_ARGS_ADDRESS): Remove. + (FRAME_LOCALS_ADDRESS): Remove. + (FRAME_NUM_ARGS): Undefine before defining. + (FRAME_ARGS_SKIP): Remove. + (FRAME_FIND_SAVED_REGS): Remove. + (PUSH_DUMMY_FRAME): Remove. + (POP_FRAME): Remove. + (CALL_DUMMY, CALL_DUMMY_LENGTH, CALL_DUMMY_START_OFFSET): Remove. + (struct frame_info, struct frame_saved_regs): Remove forward decls + for prototypes. + + * config/i386/tm-i386lynx.h (i386/tm-i386.h): Include instead of + tm-i386v.h. + * config/i386/tm-i386m3.h (i386/tm-i386.h): Include instead of + tm-i386v.h. + + * i386-tdep.c (i386_extract_return_value): Make function visible + for all i386 targets, but only assume floating point values returned + in floating point registers for I386_AIX_TARGET. + + * i386v-nat.c (i386_register_u_addr): Enable code to locate + floating point regs in user struct. + +Wed Nov 1 15:32:57 1995 Fred Fish + + * breakpoint.c (breakpoint_re_set): Fix typo in comment. + * symtab.c (in_prologue): Document func_start and when it is zero + don't call SKIP_PROLOGUE (which typically leads unconditionally to + an error when we try to access a prologue at address 0). + +Tue Oct 31 13:01:15 1995 Fred Fish + + * elfread.c: Include elf-bfd.h rather than libelf.h. + +Tue Oct 31 10:42:42 1995 steve chamberlain + + * win32-nat.c (xlate_exception): Treat a stack overflow like a SEGV. + +Sun Oct 29 11:22:05 1995 Fred Fish + + * monitor.c: Include gnu-regex.h rather than system regex.h. + +Sat Oct 28 23:51:48 1995 steve chamberlain + + * defs.h: Test on name __WIN32__ rather than WIN32. + * inflow.c (new_tty): Likewise + * terminal.h: Likewise. + * utils.c (initialize_utils): Likewise. + * win32-nat.c (child_create_inferiror): Print error code when failing. + * config/i386/win32.mh (XM_CLIBS): Need -lkernel32. + +Sat Oct 28 04:52:36 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * symtab.h (enum address_class): Add LOC_UNRESOLVED for + a location whose address has to be resolved via the minimal + symbol table. + * buildsym.c (finish_block), findvar.c (symbol_read_needs_frame, + read_var_value), printcmd.c (address_info), + symmisc.c (print_symbol, print_partial_symbol): Handle + LOC_UNRESOLVED. + * stabsread.c (scan_file_globals): Change unresolved LOC_STATIC + symbols to LOC_UNRESOLVED. Remove rt_common_objfile lookup + kludge, global common symbols are now handled by LOC_UNRESOLVED. + (scan_file_globals_1): Move code back to scan_file_globals, + delete. + +Fri Oct 27 09:54:07 1995 Stu Grossman (grossman@cygnus.com) + + * breakpoint.c (breakpoint_re_set): #ifdef GET_LONGJMP_TARGET + around calls to create_longjmp_breakpoint. Why install the + breakpoints if we can't find the longjmp target? + * infrun.c (wait_for_inferior): Cleanup comments near call test. + * remote-mips.c: Fixed a bunch of prototypes to avoid char/int + complaint from picky compilers. Add comment to mips_expect. + Replace all instances of sr_get_debug with remote_debug. + * (mips_readchar): Don't jam init string to monitor. + mips_initialize() handles that. + * (mips_receive_header): Print better message when we get too + much garbage. + * (mips_request): Allow caller to pass in buff to allow them to + analyze the returned message. + * (mips_initialize): Re-do initialization to try sending a BREAK, + a ^C, and then a download escape sequence. Cleanup protocol + startup. Eliminate sleeps. Clear breakpoints (if using monitor + breakpoints). Re-init frame. + * (mips_detach): Close down target. + * (mips_wait): Handle return status with registers, or breakpoint + * stuff. + * (mips_kill): Add ^C handling. + * (mips_insert_breakpoint mips_remove_breakpoint): Call new + breakpoint stuff if enabled. + * (calculate_mask remote_mips_set_watchpoint + remote_mips_remove_watchpoint remote_mips_stopped_by_watchpoint): + Hardware watchpoint/breakpoint stuff. + * (common_breakpoint): Common code for new monitor breakpoint commands. + * (mips_load): Don't use `prompt'. It's a global variable. + * top.c (dont_repeat_command): New command for use in + user-defined commands to suppress auto-repeat (by hittin return key). + * valops.c: Add start of auto function-call abandonment capability. + +Thu Oct 26 22:02:27 1995 Stan Shebs + + * mpw-config.in: Add support for PowerMac host, add beginnings + of native support. + * mpw-make.sed: Disable subdir recursion, edit out useless rule. + * mac-xdep.c (Values.h): Don't include. + (GestaltEqu.h): Include Gestalt.h instead. + (do_mouse_down): Comment out control tracking, needs to be + updated to use UPP before will work on PowerMac. + * config/xm-mpw.h: New file, all-Mac host support. + * config/m68k/xm-mpw.h: Move most definitions into generic Mac + support. + * config/powerpc/xm-mpw.h: New file, PowerMac host support. + +Thu Oct 26 15:21:32 1995 Brendan Kehoe + + * regex.h: Renamed to gnu-regex.h. + * regex.c: Renamed to gnu-regex.c. + * Makefile.in (POSSLIBS): Refer to gnu-regex.h and gnu-regex.c. + (REGEX, REGEX1): Change to gnu-regex.o instead of regex.o. + (regex.o): Renamed to gnu-regex.o; refer to gnu-regex.c. + (irix5-nat.o, osfsolib.o, gnu-regex.o, solib.o, source.o, symtab.o): + Likewise. + * irix5-nat.c, osfsolib.c, gnu-regex.c, solib.c, source.c, symtab.c): + Include "gnu-regex.h" instead of "regex.h". + * alpha-tdep.c (in_prologue): Rename to alpha_in_prologue, to + avoid conflicts with symtab.h. + +Tue Oct 24 18:30:18 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * config/pa/hppahpux.mh: Remove hardcoding of X locations. + * Makefile.in: Use X11_CFLAGS, X11_LDFLAGS and X11_LIBS. + * configure.in: Link X statically on Solaris, SunOS and HPUX. + +Tue Oct 24 12:26:14 1995 Stu Grossman (grossman@cygnus.com) + + * monitor.c (monitor_expect_regexp): Same as monitor_expect, but + with the obvious extension. + (monitor_read_memory_single): Use regexp for getmem.resp_delim + because of parsing ambiguities caused by certain monitors. + (monitor_read_memory): Use new regexp stuff to parse + getmem.resp_delim. + * monitor.h (struct memrw_cmd->resp_delim): Document this as a + regexp. + * sh3-rom.c: Finish off table. Use new regexp capability for + getmem commands. + + * infrun.c (wait_for_inferior): Disable questionable code near + the step range test. Replace call detection test with much + simpler (and more efficient) test that doesn't require prologue + examination (as often). + * symtab.c symtab.h (in_prologue): New function that indicates + whether or not we are in a function prologue. This uses the + symbol table, and then falls back to prologue examination if that + fails. It's much more efficient for remote debugging because it + avoids examining memory, which is very slow. This is used in + wait_for_inferior to determine if we've made a function call that + needs to be skipped over (for next/nexti). + * mips-tdep.c (after_prologue): New function, returns the PC + after the prologue. Uses PDRs and the symbol table. + (mips_find_saved_regs): Use in_prologue() to avoid costly + prologue examination if possible. + (mips_skip_prologue): Use after_prologue() if possible to avoid + costly prologue examination. + +Mon Oct 23 16:03:33 1995 James G. Smith + + * configure.in (configdirs): Added support for the VR4300 default + builds (mips64*vr4300*el-*-elf*, mips64*vr4300*-*-elf*). + + * configure: Regenerated. + + * remote-mips.c (mips_load): Updated the prompt spotting code to + make use of the TARGET_MONITOR_PROMPT manifest. + +Sat Oct 21 06:11:49 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * alpha-tdep.c, mips-tdep.c (init_extra_frame_info): + Do not set saved registers from heuristics for a sigtramp frame. + + * dwarfread.c (enum_type): Determine signedness of enum type + from enumerators. + + * mips-tdep.c: Include gdb_string.h, gcc -Wall lint. + + * rs6000-nat.c (xcoff_relocate_core): Fix typo. + + * valops.c (value_repeat): Fix length of memory transfer to + match recent allocate_repeat_value change. + +Thu Oct 19 19:04:35 1995 Per Bothner + + * gdbtypes.c (get_discrete_bounds): Fix typo. + +Thu Oct 19 12:15:37 1995 Stan Shebs + + * defs.h (SEEK_SET, SEEK_CUR): Add default definitions. + * dbxread.c, mdebugread.c, os9kread.c (SEEK_SET, SEEK_CUR): + Remove default definitions. + + * Makefile.in (CC-LD): Rename to CC_LD, so MPW xform works. + (MMALLOC_SRC): Define. + (MMALLOC_CFLAGS): Use. + (ser-mac.o): Add rule. + * dwarfread.c, somread.c, ultra3-nat.c, xcoffread.c: Replace L_SET + with SEEK_SET in all calls to bfd_seek. + * scm-tags.h (scm_tags): Remove excess comma. + + * mpw-config.in: Adapt to work with autoconf'ed configury; + build config.h, add empty definitions to mk.tmp. + (powerpc-apple-macos): Make it work. + * mpw-make.sed: New file, sed commands to translate Unix makefile + into MPW syntax. + * mpw-make.in: Remove. + * mac-gdb.r: New file, was macgdb.r, renamed for consistency + with other tools, now includes cfrg resource. + * macgdb.r: Remove. + * config/m68k/xm-mpw.h: Remove most of contents, replace with + include of include/mpw/mpw.h. + +Tue Oct 17 10:38:53 1995 Jeffrey A Law (law@cygnus.com) + + * hppa-tdep.c (frame_chain): Fix more obscure problems caused + by system calls that core dump processes without saving all + the register state. + + * config/pa/hppahpux.mt (XDEPFILES): Remove bogus definition. + * config/pa/hppapro.mt (XDEPFILES): Likewise. + +Tue Oct 17 08:04:26 1995 Fred Fish + + * NEWS: Fix typo. + +Mon Oct 16 18:24:03 1995 Jim Wilson + + * config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): Return builtin_type_float + for FP registers. + (REGISTER_NAMES): Add FP register names. Remove ticks, stalls, cycles, + insts, plr, and tlr. + (NUM_REGS, NUM_REALREGS): Increase from 23 to 41. + (FPUL_REGNUM, FP0_REGNUM): New macros. + +Mon Oct 16 11:27:06 1995 Stu Grossman (grossman@cygnus.com) + + * remote-mips.c: Add support for speedy (about 10x faster) + downloads. + + * remote-array.c: Move baud_rate initialization from + _initialize_array to array_open. It was forcing the baud rate of + all targets to be 4800 baud! Seems like I've fixed this before... + * config/mips/idt.mt (TDEPFILES): Remove remote-array.o. This + has *nothing* to do with IDT!!! + + + * Makefile.in sh3-rom.c config/sh/sh.mt config/sh/tm-sh.h: Add + sh3 monitor support. + * monitor.c: Cleanup regexp compilation stuff to make it easier + to use several regexps. + * monitor.h: Get rid of struct rom_cmd_data. It's no longer used. + * config/m68k/tm-monitor.h: Don't redefine NUM_REGS here. It just + causes GDB to crash. + + * sparcl-tdep.c: Cleanup serial error handling. + +Sun Oct 15 16:19:27 1995 Stan Shebs + + * rs6000-tdep.c: Don't include a.out.h, improve some formatting. + +Fri Oct 13 15:27:49 1995 Stu Grossman (grossman@cygnus.com) + + * dcache.c: Change default value of remotecache to off. It just + screws up too many targets. + * sparcl-stub.c: Add prototypes to many forward decls. + * Create private copies of strlen, strcpy, and memcpy to prevent + chaos when user steps into them. + * (trap_low handle_exception): Clean up DSU support code + (hardware breakpoints). Move lots of stuff from asm-land to + C-land (make it much easier to #ifdef if necessary). Also, use + trap 255 to get into break mode instead of doing a DSU register + write, which may trash the register. + * (putpacket): Don't check return value of putDebugChar. It + returns void... + +Fri Oct 13 14:16:17 1995 steve chamberlain + + * remote-sim.h: Always include callback.h. + (sim_set_callbacks): New declaration. + +Fri Oct 13 10:57:40 1995 Jeffrey A Law (law@cygnus.com) + + * somsolib.c (som_solib_add): Just give a warning if a file + mentioned in the dld_list can't be found. + * config/pa/tm-hppah.h (FRAME_SAVED_PC_IN_SIGTRAMP): Dig out + the PC from the PC queues rather than %r31. + +Thu Oct 12 13:36:15 1995 Jeffrey A Law (law@cygnus.com) + + * corelow.c (core_open): Don't update the to_sections and + to_sections_end fields in core_ops here. It's too late. + * irix5-nat.c (solib_add): Update the to_sections and + to_sections_end fields in core_ops here if needed. + * osfsolib.c (solib_add): Likewise. + * rs6000-nat.c (xcoff_relocate_core): Likewise. + * solib.c (solib_add): Likewise. + * somsolib.c (solib_add): Likewise. + +Wed Oct 11 17:25:59 1995 Fred Fish + + * Makefile.in (VERSION): Bump version to 4.15.1 + +Tue Oct 10 15:26:39 1995 Fred Fish + + * Makefile.in (VERSION): Version 4.15 released. + * README: Updated for version 4.15. + * NEWS: Updated for 4.15 release. + +Tue Oct 10 13:18:50 1995 Fred Fish + + * configure.in: Add AC_PROG_YACC + * configure: Regenerate + * Makefile.in (BISON): Remove macro definition. + (YACC): Set from autoconfig. + (FLAGS_TO_PASS): Remove BISON. + (TARGET_FLAGS_TO_PASS): Remove BISON. + +Tue Oct 10 12:25:11 1995 steve chamberlain + + * win32-nat.c (child_create_inferior): Pass argv correctly. + * Makefile.in (win32-nat.o): Add dependencies. + +Mon Oct 9 14:36:29 1995 steve chamberlain + + * NEWS: Add information about win32 and arm code. + * win32-nat.c: Renamed from win32.c. + * config/i386/win32.mh: Renamed from config/i386/i386win32.mh. + * config/i386/win32.mt: Renamed from config/i386/i386win32.mt. + * config/i386/tm-win32.h: Renamed from config/i386/tm-i386win32.h. + * config/i386/xm-win32.h: Renamed from config/i386/xm-i386win32.h. + * configure.in (i[345]86-*-win32): Updated to cope with filename + changes. + * configure: Regenerated. + +Sun Oct 8 18:01:04 1995 Per Bothner + + * ch-exp.y (yylex): Also look for '$' following '$'. + +Sat Oct 7 22:52:42 1995 Michael Meissner + + * ch-exp.y (yylex): Fix typo. + +Fri Oct 6 11:56:49 1995 Jim Wilson + + * remote-sim.c (gdbsim_open): Put callback initializations here. + (_initalize_remote_sim): Not here. + +Fri Oct 6 17:08:49 1995 Stan Shebs + + * top.c (execute_control_command): Use 0/1 instead of BFD's + true/false. + +Fri Oct 6 14:43:19 1995 Stu Grossman (grossman@cygnus.com) + + * sparcl-stub.c: Include sparclite.h to get access to register + fondling macros. + * (trap_low): Save and restore FP regs if necessary. Also, clean + up save and restore of debug unit regs. + * (hard_trap_info): Add more architecturally defined traps. + * (set_debug_traps): Only set FP disabled trap if FP is disabled. + * (get_in_break_mode): Clean up. Get rid of calls to + set_hw_breakpoint_trap(). Also, use write_asi macro. + * (handle_exception): Clean up `g' and `G' commands. Add `P' + command. + * (hw_breakpoint): Why was this here!? It's gone now... + +Fri Oct 6 11:56:49 1995 Jim Wilson + + * callback.c (fdbad): Fix typo in comment. + (os_close, os_isatty, os_lseek, os_read, os_write): Use if + statements rather than || to get correct return value. + (os_write_stdout): Pass missing first argument to os_write. + * remote-sim.c: Include callback.h. + (_initialize_remote_sim): Call sim_set_callbacks and then + initialize the callbacks. + +Thu Oct 5 17:28:09 1995 Per Bothner + + * values.c (allocate_repeat_value): Allocate an array type, and + a value of that type; use that instead of setting VALUE_REPEATED. + * value.h (struct value): Remove fields repetitions and repeated. + (VALUE_REPEATED, VALUE_REPETITIONS): Removed, no longer used. + * c-valprint.c, ch-valprint.c, eval.c, printcmd.c, valops.c, + value.h, values.c: Simplify, since now VALUE_REPEATED is never + used. + * valprint.c (value_print_array_elemen): Removed never-used + function. + +Thu Oct 5 15:14:36 1995 Per Bothner + + * parse.c (write_dollar_variable): New function. + + * c-exp.y (yylex): Replace code for recognizing '$' + pseudo-variables with a call to write_dollar_variable. + Simplify grammar correspondingly. + * f-exp.y: Likewise. + * m2-exp.y: Likewise. + * ch-exp.y: Likewise. (Remove function match_dollar_tokens.) + * scm-exp.c (scm_lreadr): Call write_dollar_variable to handle '$'. + +Thu Oct 5 13:27:30 1995 steve chamberlain + + * win32.c: New file; support for debugging on windows NT. + * configure.in: (i[345]86-*-win32): New target. + * configure: Regnerated. + * eval.c (evaluate_subexp_standard): Remove unused name. + * serial.c (gdb_string.h): Include. + * source.c (value.h): Include. + * config/i386/i386win32.mh (XDEPFILES): Add win32.o + * config/i386/i386win32.mt: New. + * config/i386/tm-i386win32.h: New. + +Wed Oct 4 18:41:34 1995 Per Bothner + + * expression.h (enum exp_code): Added OP_NAME. + * expprint.c (print_subexp): Add OP_NAME support. + * parse.c (length_of_subexp, prefixify_subexp): Likewise. + * scm-lang.c (scm_unpack, in_eval_c, scm_lookup_name): new function. + * scm-lang.h: Declare builtin_type_scm; other minor tweaks. + * values.c (unpack_long): If type is SCM, call scm_unpack. + * scm-valprint.c (scm_val_print): Use extract_signed_integer, + instead unpack_long + * scm-lang.c: More Scheme expression parsing from here ... + * scm-exp.c: ... to here. New file. + Also, provide for gdb to evaluate simple constants and names.. + * Makefile.in: Note new scm-exp.{c,o}. + +Wed Oct 4 17:23:03 1995 Per Bothner + + * gdbtypes.c (get_discrete_bounds): New function. + (force_to_range_type): Use get_discrete_bounds. + * gdbtypes.h (get_discrete_bounds): Add declaration. + * valarith.c (value_bit_index): Generalize to use get_discrete_bounds. + * ch-valprint.c (chill_val_print): Make (power)sets and bitstring + support use get_discrete_bounds and generally be more robust. + +Tue Oct 3 16:54:56 1995 Stan Shebs + + * remote-nrom.c (nrom_ops): Add value for to_thread_alive, + add comments naming slots. + +Mon Oct 2 21:45:44 1995 Jeff Law (law@hurl) + + * top.c (build_command_line): Demand arguments for if/while + commands. + +Mon Oct 2 13:08:01 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * Makefile.in (X11_CFLAGS): Set only to @X_INCDIR@. + +Sat Sep 30 16:13:36 1995 Per Bothner + + * scm-lang.c: Moved Scheme value printing code to ... + * scm-valprint.c: ... this new file. + Also major improvements in support for printing SCM values. + * scm-lang.h: New file. + * scm-tags.h: New file. + * Makefile.in: Note new scm-valprint.{c,o}. + +Sat Sep 30 09:35:02 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * configure.in: X_INCDIR and X_LIBDIR added. + * Makefile.in: @X_INCDIR@ and @X_LIBDIR@ added. + * configure: Regnerated. + +Fri Sep 29 02:10:05 1995 steve chamberlain + + * config/arm/tm-arm.h (FRAME_CHAIN, FRAME_CHAIN_VALID): + Any pc > LOWESTPC is ok. + + * remote-rdp.c (rdp_init): Take out variable baud rate stuff. + (remote_rdp_detatch): Delete. + * breakpoint.c (ctype.h): Don't include twice. + + * Makefile.in (remote-rdp.o): Doesn't need remote-rdp.h + * callback.c (os_printf_filtered): fix protos. + * defs.h (puts_filtered, puts_unfiltered + [v|f|]printf_[un]filtered): Make format arg const. + * remote-rdp.c (rdp_init): Attept to sync at different + baudrates. + * utils.c (puts_filtered, puts_unfiltered + [v|f|]printf_[un]filtered): Define prototypes with + const in the right place. + +Thu Sep 28 17:43:39 1995 Per Bothner + + * defs.h (enum language): Add language_scm. + * expression.h (enum exp_code): Added OP_EXPRSTRING. + * scm-lang.c: Preliminary support for Guile /SCM dialect of Scheme. + * expprint.c (print_subexp): Add OP_EXPRSTRING support. + * parse.c (length_of_subexp, prefixify_subexp): Likewise. + * valops.c (find_function_in_inferior): New function. + (value_allocate_space_in_inferior): New function. + (allocate_space_in_inferior): Redefine using previous function. + * Makefile.in (SFILES): Add scm-lang.c. + (COMMON_OBS): Add scm-lang.o + +Thu Sep 28 14:32:11 1995 steve chamberlain + + * callback.[ch]: New files. + * remote-rdp.c: Support for the ARM RDP monitor. + * Makefile: Update. + * arm-tdep.c (arm_othernames): New. + (_initialize_arm_tdep): install 'othernames' command. + (arm_nullified_insn, shifted_reg_val, arm_get_next_pc): New. + * configure.in: Check for termios.h, termio.h and sgtty.h. + (i[345]86-*-win32*): New host. + * configure: Regenerated. + * inflow.c: Clean up inclusions. + * main.c (main): Check for WINGDB, not WIN32. + * printcmd.c (do_examine): Put QUIT test in loop. + * remote-hms.c (e7000_load): Delete. + (hms_ops): Point to generic_load instead. + * remote-hms.c (hms_ops): Point to generic_load. + * remote-sim.c (sim_callback_write_stdout): Becomes + gdbsim_write_stdout. + (gdbsim_load): Call generic_load. + * remote-utils.c (gr_load_image): Delete. + * ser-unix.c (terminal.h): Include instead of havig + own #if tree. + (hardwire_flush_input): Reset input buffer too. + * source.c (openp): If WIN32 then open file in binary mode. + * terminal.h: Configure IO mechanism using autoconf defines if + available and not overriden. + * utils.c (quit, pollquit, notice_quit): WIN32 check becomes + WINGDB check. + + * config/arm/arm.mt (TDEPFILES): Add remote-rdp.o. + * config/arm/tm-arm.h (TARGET_BYTE_ORDER): becomes + TARGET_BYTE_ORDER_SELECTABLE. + (ADDR_BITS_REMOVE): New. + (ORIGINAL_REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): New. + (INST_xx): New. + (FRAME_FIND_SAVED_REGS): Pass the right argument. + (arm_get_next_pc): Declare. + +Wed Sep 27 10:14:36 1995 Per Bothner + + * valops.c (search_struct_field): Also allow "else" as a variant + name. + * eval.c (evaluate_struct_tuple): New function. Used to evaluate + structure tuples. Now also handles Chill variant records. + (get_label): New function, used by evaluate_struct_tuple. + (evaluate_subexp_standard case OP_ARRAY): Use evaluate_struct_tuple. + (evaluate_labeled_field_init): Removed. + + * valops.c (search_struct_field): Generalize to work with Chill + variant records. + +Sat Sep 23 01:22:23 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_partial_symbols): Reset includes_used + and dependencies_used after finishing the partial symbol table. + + * rs6000-tdep.c (push_dummy_frame): Handle lr_offset of zero + correctly. + + * rs6000-nat.c (xcoff_relocate_core): Don't relocate data + addresses for the main objfile if DONT_RELOCATE_SYMFILE_OBJFILE + is defined. + * xcoffread.c: gcc -Wall lint. Remove traceback table reading + code. The existing code tried to add parameter information for + functions compiled without -g, which cannot be done properly + for optimized code and produced misleading parameter displays. + (ef_complaint, eb_complaint): Make a local static copy to avoid + dependency on coffread.c. + (read_xcoff_symtab, process_xcoff_symbol, scan_xcoff_symtab): + Enter C_EXT/C_HIDEXT symbols into the minimal symbol table only. + (read_xcoff_symtab): Ignore C_STAT section auxiliary entry + symbols. Complain about unmatched .ef and .eb symbols instead of + segfaulting. + (process_xcoff_symbol): Determine value of C_GSYM symbols via + the global_sym_chain mechanism in stabsread.c. + (xcoff_new_init): Call stabsread_new_init and buildsym_new_init. + (init_string_tab): Initialize length field bytes in the strtbl. + (scan_xcoff_symtab): Skip symbols that start with `$' or `.$'. + Set first_fun_line_offset for symbols with two auxents only. + +Wed Sep 20 21:06:35 1995 Jeff Law (law@snake.cs.utah.edu) + + * op50-rom.c (op50n_cmds): Send ".\r" after the interrupt + character. + +Wed Sep 20 13:12:56 1995 Ian Lance Taylor + + * Makefile.in (maintainer-clean): New target, synonym for + realclean. Add GNU standard maintainer-clean echos. + * gdbserver/Makefile.in (maintainer-clean): New target, synonym + for realclean. + * nlm/Makefile.in (maintainer-clean): Likewise. + +Wed Sep 20 08:16:03 1995 steve chamberlain + + * defs.h (xmalloc, xrealloc): Delete, they're declared in libiberty.h. + (GETENV_PROVIDED, FCLOSE_PROVIDED): New. + * doc/gdbint.texinfo (GETENV_PROVIDED, FCLOSE_PROVIDED): Document. + * remote-sim.[ch] (sim_callback_write_stdout): New. + +Tue Sep 19 15:28:58 1995 Per Bothner + + * gdbtypes.c (create_set_type): Set TYPE_LENGTH in bytes, not bits. + * valops.c (value_bitstring): TYPE_LENGTH is bytes, not bits. + + * gdbtypes.c (force_to_range_type): Calculate upper limit of + TYPE_CODE_CHAR depending on TYPE_LENGTH (instead of just using 255). + +Mon Sep 18 01:43:42 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (auto_solib_add_at_startup): Delete definition. No + longer needed. + +Sat Sep 16 13:23:36 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/tm-mips.h (UNUSED_REGNUM): Define. + * mipsv4-nat.c (supply_gregset): Fill UNUSED_REGNUM register + with zero. + +Thu Sep 14 17:35:24 1995 Stu Grossman (grossman@cygnus.com) + + * remote-sim.c (gdbsim_create_inferior): Back out change that + broke all simulator configurations except the rs6000. + +Thu Sep 14 14:44:59 1995 Jeffrey A. Law + + * monitor.c (monitor_expect): Discard NULL characters. + +Thu Sep 14 14:12:30 1995 Kung Hsu + + * infcmd.c: Add extern declaration for auto_solib_add_at_startup. + +Wed Sep 13 13:33:58 1995 Kung Hsu + + * symfile.c: Move global variable auto_solib_add_at_startup from + solib.c to symfile.c. + * solib.c: ditto. + * symfile.h: Add extern declaration of the above mentioned variable. + * infcmd.c: Take out extern declaration, since it's in symfile.h. + +Thu Sep 14 12:39:35 1995 Stu Grossman (grossman@cygnus.com) + + * coffread.c (coff_symtab_read): Complain about unmatched .ef and + .eb symbols instead of segfaulting. + +Wed Sep 13 13:33:58 1995 Kung Hsu + + * stabsread.c (read_one_struct_field): Use subfile language instead of + global language. Improve efficiency. + +Wed Sep 13 08:45:02 1995 Jeff Law (law@fast.cs.utah.edu) + + * somsolib.c (auto_solib_add_at_startup): Define new global variable. + (som_solib_create_inferior_hook): Don't add libraries if + auto_solib_add_at_startup is zero. + (_initialize_som_solib): Add command to toggle + auto_solib_add_at_startup. + +Tue Sep 12 19:37:24 1995 Jeff Law (law@snake.cs.utah.edu) + + * monitor.c (monitor_make_srec): Fix thinkos in computation + of addr_size. + +Tue Sep 12 15:46:18 1995 Kung Hsu + + * stabsread.c (read_one_struct_field): Add a patch to handle cfront + generated stabs that each field is in full mangled name. + + * stabsread.c: To include language.h and expression.h for the reason + above. + + * infcmd.c (attach_command): Add solibs only when + auto_solib_add_at_startup is set. + +Mon Sep 11 17:22:35 1995 Fred Fish + + * NEWS: Add information about remote target caching. + +Sun Sep 10 15:36:21 1995 Fred Fish + + * defs.h: Only include mmalloc.h if NO_MMALLOC is not + defined. + +Sun Sep 10 10:24:48 1995 Michael Tiemann + + * tm-ppc-eabi.h (PC_IN_CALL_DUMMY): Redefine this to work with the + simulator. FIXME. + + * rs6000-tdep.c (push_dummy_frame): Calculate the correct link + register offset from the current frame (don't assume it is always 8). + (push_dummy_frame): Add comment about having only 4096 bytes of + stack space in the simulator (by default). + + * remote-sim.c (gdbsim_create_inferior): Call + `add_text_to_loadinfo' so that gdb can find TOC entries when + calling functions in the inferior. + +Sun Sep 10 09:00:28 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * sparc-tdep.c (fill_fpregset): Fix incorrect FP_MAX_REGNUM + substitution. + (supply_fpregset): Use FP_MAX_REGNUM. + +Sat Sep 9 08:21:52 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * stabsread.c (read_enum_type): Exit loop for putting pending + enum symbols into the enum type correctly if we had no pending + symbols on entry to read_enum_type. + +Fri Sep 8 12:57:41 1995 Kung Hsu + + * inferior.h: Add extern declaration of inferior_environ. + * solib.c (solib_map_sections): To get inferior's env instead of + gdb's for LD_LIBRARY_PATH, same for PATH. + + * solib.c (solib_map_sections): Copy full path name into so_list + structure so that symbol_file_add can find it. + +Tue Sep 5 17:47:53 1995 Doug Evans + + * config/sparc/tm-sp64.h (REGISTER_RAW_SIZE): Lower 32 fp regs + have size 4. + (REGISTER_VIRTUAL_SIZE): Likewise. + (REGISTER_VIRTUAL_TYPE): Lower 32 fp regs have type float. + Upper 32 fp regs have type double. + * sparc-tdep.c (NUM_SPARC_FPREGS): Replace with + (FP_REGISTER_BYTES): this, and update all uses. + (FP_MAX_REGNUM): Define if not already. + (get_saved_register): Handle new sparc64 fp regs. + (sparc_frame_find_saved_regs): Likewise. + (sparc_print_register_hook): Only print fp regs < 32 as doubles. + Add code to handle long doubles when gdb does. + (_initialize_sparc_tdep): Use print_insn_sparc64 if sparc64. + +Sat Sep 2 06:41:26 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * configure.in: Explicitly `exit 0' for broken shells. + * configure: Rebuilt. + + * symtab.c (list_symbols): Add missing blank after + `' output. + + * valops.c (value_assign): Handle truncation when assigning + to bitfields. Use value_copy to construct the return value + from toval. + * values.c (value_copy): Copy VALUE_FRAME and VALUE_OPTIMIZED_OUT. + +Fri Sep 1 08:25:50 1995 James G. Smith + + * configure (mips64*vr4300*-*-elf): Support added. + * remote-mips.c (mips_readchar): Change to allow build-time prompt + string. + * config/mips/tm-mips.h: Added TARGET_MONITOR_PROMPT. + * config/mips/{vr4300.mt, vr4300el.mt, tm-vr4300.h, + tm-vr4300el.h}: Added. + +Thu Aug 31 12:48:04 1995 Jim Wilson + + * config/sh/sh.mt (SIM): Add -lm. + +Wed Aug 30 18:10:57 1995 Kung Hsu + + * rmote-nindy.c (non_dle, nidy_resume, nindy_wait): Changes to + conform to GNU coding standards. + + * solib.c (match_main): Modify to follow GNU coding conventions. + +Mon Aug 28 17:07:26 1995 Kung Hsu + + * remote.c (remote_wait): Revert 19 July my change which should be + customer specific. + +Sat Aug 26 00:26:11 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_symbol): Handle sh.value of zero for enums. + Determine signedness of enum type from enumerators. + (parse_type): Handle btIndirect types, handle fBitfield for + some non-member types. + (upgrade_type): Use TYPE_FLAG_TARGET_STUB for arrays with + unknown length. + (cross_ref): Handle stIndirect forward reference to btTypedef. + + * stabsread.c (read_enum_type): Determine signedness of enum + type from enumerators. + + * top.c (execute_command): Remove trailing whitespace from + command arguments, except for `set' and `complete' commands. + (validate_comname): Allow underscores in user defined command + names. + + * values.c (modify_field): Change `Value does not fit in %d bits' + error to a warning. Exclude sign extension bits of negative field + values from fit check. + +Fri Aug 25 11:31:29 1995 Michael Meissner + + * configure.in (powerpc*-*-eabisim*): Only link in the simulator + if the target is powerpc{,le}-*-eabisim*, since the simulator + needs GCC to build. + * config/powerpc/ppc{,le}-sim.mt: Cloned from ppc{,le}-eabi.mt. + * config/powerpc/ppc{,le}-eabi.mt: Remove simulator support. + * config/powerpc/tm-ppc{,le}-sim.mt: Include tm-ppc{,le}-sim.h. + +Wed Aug 23 16:55:35 1995 Michael Meissner + + * config/powerpc/ppc{,le}-eabi.mt (SIM_OBJS, SIM): Link in the + PowerPC simulator. + +Tue Aug 22 02:00:47 1995 Jeff Law (law@snake.cs.utah.edu) + + * tm-hppa.h (EXTRACT_RETURN_VALUE): Fix for FP values. + + * tm-hppa.h (STORE_RETURN_VALUE): Fix to work with -msoft-float + calling conventions too. Use the TYPE of the return value, not + its length to determine if it should also be copied into the + floating point registers. + + * tm-hppa.h (PROLOGUE_FIRSTLINE_OVERLAP): Delete. Causes more + problems than it fixes. + * hppa-tdep.c (skip_prologue): If we exit the main loop without + finding all the register saves, retry again without looking for + the registers we could not find the first time. + +Mon Aug 21 23:39:56 1995 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (frame_chain_valid): Handle systems where "$START$" + calls "main" directly. + (skip_prologue): Always assume arguments were saved into the stack + since GCC will do so without setting the magic Args_Saved bit in + the unwind descriptor. + +Mon Aug 21 11:49:17 1995 Kung Hsu + + * remote-udi.c (udi_wait): Mask off high bits of stop reason. + * remote-udi.c (fetch_register): For unfetchable regs, pretend it's + done. Fix a bug. + +Mon Aug 21 00:45:17 1995 Jeff Law (law@snake.cs.utah.edu) + + * Makefile.in (install): Remove "brokensed" hack, unnecessary now + that we're using autoconf. + (uninstall): Likewise. + + +Sat Aug 19 01:19:34 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * gdbtypes.c (recursive_dump_type): Add dont_print_type_obstack + to inhibit infinite recursion when printing aggregate types. + +Fri Aug 18 17:48:55 1995 steve chamberlain + + * dcache.c (dcache_write_line): Write dirty lines right. + +Fri Aug 18 06:26:56 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * sparc-tdep.c (isbranch): Fix typo which caused wrong + target addresses for annulled branches. + +Wed Aug 16 21:54:39 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppa.h (PROLOGUE_FIRSTLINE_OVERLAP): Define. + +Tue Aug 15 07:51:21 1995 steve chamberlain + + * remote.c (remote_write_bytes): Chop up large transfers. + +Mon Aug 14 17:56:36 1995 Stan Shebs + + * gcc.patch: Remove, relevant only to long-ago versions of GCC. + +Mon Aug 14 13:43:01 1995 Kung Hsu + + * config/sparc/tm-sparclite.h: Define FRAME_CHAIN_VALID_ALTERNATE. + * blockframe.c (inside_main_func): If main func addr range not set, + try to set it now. + +Sat Aug 12 15:34:54 1995 Jeffrey A. Law + + * config/powerpc/xm-aix.h (FIVE_ARG_PTRACE): Define. + * config/rs6000/xm-rs6000.h (FIVE_ARG_PTRACE): Likewise. + + * configure.in: Recognize aix4 specially as some aspects + of aix4 need different handling than aix3. + * configure: Updated. + * config/powerpc/{aix4.mh,aix4.mt,tm-ppc-aix4.h}: New files + specific to aix4 support on the power pc. + * config/powerpc/tm-ppc-aix.h (DONT_RELOCATE_SYMFILE_OBJFILE): Do + not defined. The aix4 specific target files will do that. + * config/rs6000/{aix4,mh,aix4,mt,tm-rs6000-aix4.h}: New files + specific to aix4 support on the rs6000. + + * config/rs6000/tm-rs6000.h (CONVERT_FROM_FUNC_PTR_ADDR): Don't + do the conversion if the pointer is not a magic aix function + pointer. + * rs6000-tdep.c: Include objfiles.h and symtab.h. + (is_magic_function_pointer): New function. + + * rs6000-tdep.c (skip_prologue): Refine check for frameless + functions. Handle b .+4 emitted by aix4 compilers. Only + allow one load of a minimal toc pointer. Handle aix4 compiler's + code for alloca. + + * rs6000-tdep.c (find_toc_address): Report an error if no toc was + found rather than possibly core dumping. + + * partial-stab.h: Handle extra field generated by the aix4 compiler + for enumerations. + * stabsread.c (read_enum_type): Likewise. + +Sat Aug 12 03:18:04 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * rs6000-tdep.c (extract_return_value): Fix returning of values + whose length is less than the register size for big endian targets. + +Fri Aug 11 13:04:32 1995 Kung Hsu + + * symtab.c (list_symbols): if break command set breakpoint on + matched symbol. + +Wed Aug 9 18:59:05 1995 Fred Fish + + * defs.h (strchr, strrchr, strstr, strtok, strerror): Enclose in + #ifndefs to protect against previous definitions as macros. + +Wed Aug 9 14:51:36 1995 Kung Hsu + + * xcoffread.c (xcoff_symfile_offset): Revert an unwanted change + that got in accidentally with Aug 1 change. + +Sat Aug 5 09:07:28 1995 steve chamberlain + + * remote-hms.c (hms_cmds): Get reg term right. + * monitor.c (monitor_fetch_register): If we see + a non-hex digit, just stop reading. + * remote.c (remote_wait): Change way $O is handled. + +Wed Aug 9 11:42:36 1995 Jeffrey A. Law + + * configure.in (powerpc-*-aix*): Recognize as a new gdb host + and target. + (powerpc-*-eabi*): Don't set configdirs. + (powerpcle-*-eabi*): Likewise. + * configure: Updated. + * rs6000-nat.c (vmap_ldinfo): Don't relocate data addresses + for the main objfile if DONT_RELOCATE_SYMFILE_OBJFILE is + defined. + * config/powerpc/{aix.mh,aix.mh}: Host and target makefile fragments + for powerpc running aix4. + * config/powerpc/{nm-aix.h, tm-ppc-aix.h, xm-aix.h}: Native, target + and host include files for powerpc running aix4. + +Wed Aug 9 08:11:45 1995 Stan Shebs + + * top.c (target_output_hook): Really make it match defs.h (char * + is not the same as unsigned char *). + +Tue Aug 8 15:13:05 1995 J.T. Conklin + + * Makefile.in (CXX_FOR_TARGET): Don't use ${rootme}/../gcc/xgcc + unless it is present. + +Tue Aug 8 10:50:15 1995 Jeffrey A. Law + + * top.c (target_output_hook): Make declaration match the one + in defs.h. + + * symfile.c (add_psymbol_to_list): Initialize SYMBOL_SECTION. + (add_psymbol_addr_to_list): Likewise. + * symfile.h (ADD_PSYMBOL_VT_TO_LIST): Likewise. + +Mon Aug 7 15:34:29 1995 steve chamberlain + + * top.c (target_output_hook): New definition. + * stack.c (gdb_string.h): Include after defs.h + * defs.h (target_output_hook): New declaration. + * source.c (mod_path): Fix Win32 \ handling. + +Sun Aug 6 22:14:25 1995 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (frame_saved_pc): Don't try to dig a return pointer + out of a long branch stub. + +Fri Aug 4 13:37:31 1995 Jeffrey A. Law + + * xcoffread.c (process_linenos): Fix typo in last change. + +Thu Aug 3 22:01:26 1995 Fred Fish + + * ch-exp.y (write_lower_upper_value): Add prototype so bison + generated parser will insert prototype before first func usage. + Bison and byacc order the output sections differently. Also + make function static. + +Thu Aug 3 10:45:37 1995 Fred Fish + + * Update all FSF addresses except those in COPYING* files. + +Thu Aug 3 01:38:45 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/alpha/tm-alpha.h (EXTRA_FRAME_INFO): Add pc_reg field. + (SKIP_TRAMPOLINE_CODE): Define. + * alpha-tdep.c (alpha_frame_saved_pc): Use pc_reg field from + frame to find the saved pc register. + (alpha_saved_pc_after_call): Skip over shared library trampoline + before trying to find the saved pc register. + (find_proc_desc): Copy PROC_PC_REG from found proc_desc + to heuristic proc_desc. + (init_extra_frame_info): Initialize pc_reg field in frame. + +Wed Aug 2 18:00:36 1995 Stan Shebs + + * configure.in (m68*-est-*): Use monitor target config. + * configure: Update. + * config/m68k/est.mt, config/m68k/tm-est.h: Delete. + * config/m68k/monitor.mt, config/m68k/tm-monitor.h: Fix comments. + +Tue Aug 1 22:52:53 1995 Fred Fish + + * Makefile.in (VERSION): Bump to 4.14.2 + +Tue Aug 1 16:04:36 1995 Kung Hsu + + * xcoffread.c (process_linenos): The value in include file symbol + should point to line number table. Currently this value is not + set correctly by AIX ld. A fix to get around this bug. + +Tue Aug 1 11:44:53 1995 J.T. Conklin + + * configure.in: Check for working mmap, ansi headers, string.h, + strings.h, and memory.h. + * configure: Regenerated. + + * gdb_stat.h: New file, "portable" . + * gdb_string.h: New file, "portable" . + + * altos-xdep.c, arm-tdep.c, arm-xdep.c, convex-tdep.c, + convex-xdep.c, coredep.c, cxux-nat.c, dbxread.c, exec.c, + gould-xdep.c, hppa-tdep.c, i386aix-nat.c, i386b-nat.c, + i386mach-nat.c, i386v-nat.c, infptrace.c, m88k-nat.c, main.c, + mdebugread.c, objfiles.c, os9kread.c, procfs.c, pyr-xdep.c, + rs6000-nat.c, source.c, standalone.c, stuff.c, sun386-nat.c, + symfile.c, symm-nat.c, symm-tdep.c, symtab.c, top.c, ultra3-nat.c, + ultra3-xdep.c, umax-xdep.c, xcoffread.c: Include "gdb_stat.h" + instead of . + + * alpha-tdep.c, breakpoint.c, buildsym.c, c-typeprint.c, + ch-typeprint.c, coffread.c, command.c, core-sol2.c, core-svr4.c, + core.c, corelow.c, cp-valprint.c, dbxread.c, dcache.c, demangle.c, + dpx2-nat.c, dstread.c, dwarfread.c, elfread.c, environ.c, eval.c, + exec.c, f-lang.c, f-typeprint.c, f-valprint.c, findvar.c, + fork-child.c, gdbtypes.c, hpread.c, i386-tdep.c, infcmd.c, + inflow.c, infptrace.c, infrun.c, irix5-nat.c, language.c, + m2-typeprint.c, main.c, mdebugread.c, minsyms.c, mipsread.c, + monitor.c, nlmread.c, objfiles.c, os9kread.c, osfsolib.c, parse.c, + printcmd.c, procfs.c, regex.c, remote-adapt.c, + remote-array.c, remote-bug.c, remote-e7000.c, remote-eb.c, + remote-es.c, remote-hms.c, remote-mm.c, remote-os9k.c, + remote-pa.c, remote-sim.c, remote-st.c, remote-udi.c, + remote-utils.c, remote-vx.c, remote-vx29k.c, remote-vx68.c, + remote-vx960.c, remote-vxmips.c, remote-vxsparc.c, remote.c, + solib.c, somread.c, source.c, stabsread.c, stack.c, symfile.c, + symmisc.c, symtab.c, target.c, top.c, typeprint.c, utils.c, + valarith.c, valops.c, valprint.c, values.c, xcoffread.c: Include + "gdb_string.h" instead of . + + * config/xm-sysv4.h, i386/xm-ptx.h, m68k/xm-sun3os4.h, + sparc/xm-sun4os4.h (HAVE_MMAP): Removed. + + * config/xm-lynx.h, config/i386/xm-ptx.h, + config/m68k/nm-apollo68b.h, config/m68k/xm-hp300hpux.h, + config/mips/xm-irix3.h, config/mips/xm-mips.h, + config/mips/xm-news-mips.h, config/mips/xm-riscos.h, + config/pa/hppah.h, config/rs6000/xm-rs6000.h, + config/sparc/xm-sun4os4.h, config/sparc/xm-sun4sol2.h, + config/vax/xm-vaxbsd.h, config/vax/xm-vaxult.h, + config/vax/xm-vaxult2.h (MEM_FNS_DECLARED): Removed. + * config/mips/xm-irix3.h, config/mips/xm-mips.h, + config/pa/xm-hppah.h (memcpy, memset): Removed declarations. + +Tue Aug 1 02:08:30 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-tdep.c (mips_extract_return_value): Fix returning of + values whose length is less than the register size for big endian + targets. + * alpha-tdep.c (alpha_extract_return_value, + alpha_store_return_value): Use alpha_convert_register_to_* + to handle functions returning "float" correctly. + +Mon Jul 31 19:12:48 1995 Stan Shebs + + * h8500-tdep.c: General linting and cleanup. + (opcodes/h8500-opc.h): Don't include. + (code_size, data_size): Make static. + (frame_locals_address, frame_args_address): Remove. + (h8300_pop_frame): Rename to h8500_pop_frame. + (big_command, medium_command, compact_command, small_command): + Define as regular functions rather than with macro trickery. + (tm_print_insn): Set to correct disassembler function. + * config/h8500/tm-h8500.h: Minor cleanup, add prototypes. + (ABOUT_TO_RETURN): #if 0 out. + (FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS): Use usual define. + (GDB_TARGET_IS_H8500): Remove duplicate definition. + (regoff): Remove, never used. + * config/h8500/h8500.mt (TDEPFILES): Add monitor.o. + +Mon Jul 31 14:32:30 1995 J.T. Conklin + + * configure.in: Check for unistd.h. + * configure: Regenerated. + + * command.c, cp-valprint.c, fork-child.c, i386-tdep.c, + i386b-nat.c, inflow.c, main.c, maint.c, objfiles.c, solib.c, + source.c, stack.c, symfile.c, top.c, utils.c: Include strings.h + and/or unistd.h to bring prototypes into scope. + +Sun Jul 30 01:40:11 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * rs6000-tdep.c (frame_saved_pc): Check for signal handler caller + before trying to determine the start of the function. + (skip_prologue): Skip subroutine call which might save the + floating point registers only if it is within the first three + instructions. + Reinstate setting of alloca_reg if setup of a gcc frame pointer + is found. + (frame_get_cache_fsr): Use new fields in rs6000_framedata. + +Sat Jul 29 14:43:35 1995 Stan Shebs + + * sparclite: Removed subdirectory. aload and eload are now in + utils/sparclite, low-level library is in libgloss. + * configure.in (sparclite*): Don't configure sparclite subdir. + * configure: Update. + * Makefile.in (TARDIRS): Remove, no longer used. + +Sat Jul 29 01:45:56 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * procfs.c (unconditionally_kill_inferior): Clear current signal + if PROCFS_NEED_CLEAR_CURSIG_FOR_KILL is defined. + * config/alpha/nm-osf3.h (PROCFS_NEED_CLEAR_CURSIG_FOR_KILL): Define. + + * alpha-tdep.c: Move sigtramp handling of saved registers from + read_next_frame_reg to alpha_find_saved_regs, handle saved + floating point registers. + * mips-tdep.c: Move sigtramp handling of saved registers from + read_next_frame_reg to mips_find_saved_regs, handle saved + floating point registers. + * config/mips/tm-irix3.h, config/mips/tm-irix5.h, + config/mips/tm-mipsv4.h (SIGFRAME_FPREGSAVE_OFF): Define. + + * sparc-tdep.c (sparc_pc_adjust): Fix check for `unimp' + instruction to handle functions returning structures with + large sizes properly. + +Fri Jul 28 11:50:17 1995 steve chamberlain + + * configure, configure.in (z8k-*-sim): deleted. + +Thu Jul 27 12:49:28 1995 Jeffrey A. Law + + * lynx-nat.c (child_wait): Handle threads exiting. + +Thu Jul 27 07:47:50 1995 Michael Meissner + + * rs6000-tdep.c (skip_prologue): Don't assume the update stack + instruction is the last in the prologue, since xlc stores the lr + after the stack update. Make sure offset is correct sign for + large frames. + (frame_saved_pc): Move test for signal before frameless. + + * config/rs6000/tm-rs6000.h (DEFAULT_LR_SAVE): Define. + * config/powerpc/tm-ppc-eabi.h (DEFAULT_LR_SAVE): Redefine. + +Thu Jul 27 01:22:08 1995 Jeffrey A. Law + + * hppa-tdep.c (hppa_fix_call_dummy): Rewrite code for calling + into shared libraries. + +Wed Jul 26 23:33:34 1995 Michael Meissner + + * config/rs6000/tm-rs6000.h (rs6000_framedata): Add offsets the + gprs, fprs, lr, and cr is stored at. + (FRAME_FIND_SAVED_REGS): Use new fields in rs6000_framedata. + (function_frame_info): Delete declaration. + (SKIP_PROLOGUE): Skip_prologue is now passed a rs6000_framedata + structure to fill in. + (FRAMELESS_FUNCTION_INVOCATION): Function now longer takes a + second argument. + (FRAME_SAVED_PC): Call frame_saved_pc. + + * rs6000-tdep.c (skip_prologue): Recognize V.4 prologues as well + as AIX style. Fill in rs6000_framedata structure. Remember where + the gprs, fprs, cr, and lr are saved. + (pop_frame): Use skip_prologue, not function_frame_info, and use + new rs6000_framedata fields. + (function_frame_info): Function deleted. + (frameless_function_invocation): Separate frame_saved_pc support + to new function. Recognize V.4 frames. + (frame_saved_pc): New function. + (frame_get_cache_fsr): Use skip_prologue, not function_frame_info. + (frame_initial_stack_address): Ditto. + +Wed Jul 26 01:00:37 1995 Jeff Law (law@snake.cs.utah.edu) + + * remote.c: Add documentation for extended protocol operations + and for thread_alive change from a couple weeks ago. + (extended_remote_ops): Declare and define a new target vector + for the extended remote protocol. + (extended_remote_restart): New function to restart the remote + server & process. + (remote_open): Just a stub routine. + (extended_remote_open): New function to start a remote session + using the extended gdb remote protocol. + (remote_open_1): New function containing code common to both + remote_open and extended_remote_open. + (remote_mourn, extended_remote_mourn, remote_mourn_1): Similarly. + (extended_remote_create_inferior): New function for the extended + remote target. + (initialize_remote): Add the extended_remote_ops target vector. + * gdbserver/server.c (main, case '!'): Set extended_protocol. + (main, case 'k'): If the extended protocol is in use, kill the + inferior then start a new one. + (main, case 'R'): New command to restart the remote server and + inferior process. Only supported when using the extended + protocol. + (main, server loop): If the inferior terminates while using the + extended protocol then start a new one. If getpkt fails when + using the extended protocol then exit. + +Tue Jul 25 11:43:44 1995 Stan Shebs + + * mdebugread.c (psymtab_to_symtab_1): Relocate encoded stab + line numbers using the psymtab's section offsets. + +Tue Jul 25 10:43:27 1995 Michael Meissner + + * config/rs6000/tm-rs6000.h (rs6000_framedata): Rename from + aix_framedata. Change all uses. + * rs6000-tdep.c: Change all aix_framedata -> rs6000_framedata. + +Sat Jul 22 23:44:18 1995 Jeff Law (law@snake.cs.utah.edu) + + * defs.h (ATTR_FORMAT): Disable if ANSI_PROTOTYPES is not defined. + +Fri Jul 21 16:50:28 1995 Jeffrey A. Law + + * lynx-nat.c (child_thread_alive): New function. Somehow I + forgot to check this in with all the other thread_alive changes. + +Thu Jul 20 22:22:34 1995 Jeff Law (law@snake.cs.utah.edu) + + * somread.c (som_symtab_read): Add unsatisfied common symbols to + the minimal symbol table. All common symbols are "unsatisfied" + when -E is passed to the linker. + +Thu Jul 20 15:04:57 1995 Fred Fish + + * top.c (show_endian): Cast first arg of printf_unfiltered to + correct type of "char *". + +Thu Jul 20 14:18:51 1995 Jeffrey A. Law + + * lynx-nat.c (child_wait): A thread_id of zero from wait apparently + means the process is single threaded, so there's no need to add + it to the thread list. Handle case where multi-threaded process + reverts back to a single-threaded process. + + * gdbserver/low-hppabsd.c: Remove error declaration. + * gdbserver/low-sparc.c: Likewise. + * gdbserver/low-sun3.c: Likewise. + * gdbserver/server.h: Remove error and fatal declaration. + * gdbserver/utils.c (error): Update to be compatable with recent + changes in defs.h. + (fatal): Likewise. + +Wed Jul 19 22:42:43 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/m68k/tm-m68kv4.h (DWARF_REG_TO_REGNUM): Define to + correctly map floating point registers numbers. + + * dwarfread.c (locval, new_symbol): Handle variables that are + optimized out. + + * mdebugread.c: Replace all uses of builtin_type_* with + mdebug_type_*. Define and initialize mdebug_type_*. + + * serial.h (serial_close): Add additional argument `really_close'. + (SERIAL_CLOSE): Update serial_close call accordingly. + (SERIAL_UN_FDOPEN): Use serial_close to handle refcnt properly. + * serial.c (serial_close): Handle `really_close'. + * serial.h (scb_base): Moved to serial.c, made static. + + * valops.c (value_addr): Don't coerce arrays. + (typecmp): Coerce arrays instead of calling value_addr if necessary. + +Wed Jul 19 18:19:28 1995 Stan Shebs + + From Richard Earnshaw (rearnsha@armltd.co.uk): + * infrun.c (wait_for_inferior): Set the convenience variable + $_exitcode to the termination code of the inferior. + * top.c (quit_command): Accept optional expression to use + as parameter to exit(). + +Wed Jul 19 13:15:32 1995 Kung Hsu + + * remote.c (remote_wait): When getting registers, check endianess and + do conversion if necessary. + +Tue Jul 18 00:41:31 1995 Jeff Law (law@snake.cs.utah.edu) + + * gdbserver/low-hppabsd.c: New file. + * gdbserver/Makefile.in (SFILES): Add low-hppabsd.c. + * config/pa/hppabsd.mh (XDEPFILES): Add ser-tcp.o. + (GDBSERVER_DEPFILES): Add low-hppabsd.o. + * config/pa/hppaosf.mh: Likewise. + +Mon Jul 17 21:35:18 1995 Fred Fish + + * dache.c (struct dcache_block): Change data member from unsigned + char to char, since everything passed in and out of dcache is char + or casted to appropriate type anyway. + (dcache_alloc): Move assignment of db out of test and combine + separate tests into if-else. + (dcache_peek_byte): Change ptr from unsigned char* to char*. + (dcache_peek_byte): Remove now unnecessary cast in read_memory call. + (dcache_peek): Change cast of incoming data arg. + (dcache_poke): Change cast of addr of incoming data arg. + (dcache_info): Mask data passed to printf_filtered to lsbyte only. + (dcache_info): Change printf_filtered arg from "% 2x" to " %2x". + * target.c (debug_to_thread_alive): Change return type to int and + return zero, for type compatibility with other *_thread_alive + funcs. + (cleanup_target): Change cast of ignore function to match type of the + to_thread_alive member. + * defs.h (error_hook): Add ATTR_NORETURN. + * defs.h (NORETURN, ATTR_NORETURN): Switch from volatile to + __attribute__ method with gcc 2.7, to avoid gcc 2.6.3 bug. + * remote.c (remote_wait): Cast first arg to strtol, strchr, and + strncmp to "const char *" from "unsigned char *". + (remote_wait): Cast arg to putpkt and strcpy from "unsigned char *" + to "char *". + (remote_wait): Change printf format for long arg from "%d" to "%ld". + (getpkt): Remove unused variable "bp". + (remote_fetch_word, remote_store_word): Ifdef out apparently unused + functions. + * breakpoint.c (watchpoint_check): Removed unused variables + "saved_level" and "saved_frame". + * valops.c (value_arg_coerce): Add other enum TYPE_CODE_* and + default cases to switch for completeness. + * infrun.c (wait_for_inferior): Enclose "have_waited" label + in #ifdef that matches the one in which it is referenced. + * ser-unix.c (hardwire_noflush_set_tty_state): Enclose otherwise + unused variable "state" in #ifdef that matches one in which it is + referenced. + * eval.c (evaluate_subexp_standard): Remove unused variable "var". + * eval.c (evaluate_subexp_standard): Remove unused variable + "tmp_symbol". + * valarith.c (value_subscript): Remove unused variable + "lowerbound", which is redeclared in a nested scope prior to use. + * printcmd.c (print_frame_nameless_args): Use "%ld" to print long + arg, not "%d". + * {mem-break.c, remote-pa.c, remote.c, saber.suppress}: + Remove unused static var "check_break_insn_size". + * buildsym.c (finish_block): Add other enum LOC_* and default + cases to switch for completeness. + ch-lang.c (type_lower_upper): Removed unused label "retry". + Add other enum TYPE_* and default cases to switch for completeness. + * f-typeprint.c (f_type_print_args): Ifdef out unused function + that may be used someday when Fortran support is complete. + * ch-valprint.c (chill_print_type_scalar): Add other enum + TYPE_* and default cases to switch for completeness. + (chill_val_print): Remove unused local var "high_bound" that + is redeclared in a nested scope prior to use. + (chill_var_print): Use "%ld" to print long arg, not "%d". + * regex.c (re_compile_fastmap, re_match_2): Add remaining enum + types and default to switches for completeness. + * minsyms.c (lookup_minimal_symbol_text): Delete unused variable + "trampoline_symbol". + (prim_record_minimal_symbol_and_info): Return NULL rather than + trash. + * elfread.c (elf_symtab_read): Don't dereference NULL returns from + record_minimal_symbol_and_info. + * f-lang.c (saved_function_list_end): Ifdef out unused variable + that may be used someday. + * f-valprint.c (f_val_print): Remove unused local "straddr". + +Mon Jul 17 13:08:00 1995 Ian Lance Taylor + + * stabsread.h (struct stab_section_list): Define. + (coffstab_build_psymtabs): Remove staboff and stabsize parameters. + Add textaddr, textsize, and stabs parameters. + * gdb-stabs.h (struct dbx_symfile_info): Remove text_sect field. + Add text_addr and text_size fields. + (DBX_TEXT_SECT): Don't define. + (DBX_TEXT_ADDR, DBX_TEXT_SIZE): Define. + * coffread.c: Include . + (struct coff_symfile_info): Remove stabsect and stabindexsect + fields. Add textaddr, textsize, and stabsects fields. + (coff_locate_sections): Record the address of the .text section, + and total the sizes of all sections with names beginning with + ".text". Don't bother to record a .stab.index section (COFF + doesn't use them). Make a linked list of all sections with names + beginning with ".stab". + (coff_symfile_read): Adjust call to coffstab_build_psymtabs for + new parameters. + * dbxread.c (dbx_symfile_read): Use DBX_TEXT_ADDR and + DBX_TEXT_SIZE, rather than getting both from DBX_TEXT_SECT. + (dbx_symfile_init): Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not + DBX_TEXT_SECT. + (elfstab_build_psymtabs): Likewise. + (stabsect_build_psymtabs): Likewise. + (symbuf_sections, symbuf_left, symbuf_read): New static variables. + (fill_symbuf): If symbuf_sections is not NULL, read symbols from + multiple sections. + (coffstab_build_psymtabs): Remove staboffset and stabsize + parameters. Add textaddr, textsize, and stabsects parameters. + Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not DBX_TEXT_SECT. Handle + multiple stabs sections. + * os9kread.c (os9k_symfile_read): Use DBX_TEXT_ADDR and + DBX_TEXT_SIZE, rather than getting both from DBX_TEXT_SECT. + (os9k_symfile_init): Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not + DBX_TEXT_SECT. + + * remote-vx.c (vx_ops, vx_run_ops): Initialize new to_thread_alive + field. + +Sat Jul 15 01:02:53 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/alpha/alpha-osf3.mh, config/alpha/nm-osf3.h: New files + for OSF/1-3.x procfs support. + * configure.in (alpha-dec-osf): Use them when configuring + for OSF/1-3.x. + * configure: Updated. + * target.c: Include . + +Fri Jul 14 16:16:56 1995 J.T. Conklin + + * Makefile.in, configure.in: Use one variable, frags, to hold + pathnames of makefile fragments. + * configure: regenerated. + +Fri Jul 14 09:49:47 1995 Jeff Law (law@snake.cs.utah.edu) + + * procfs.c (procfs_ops): Fix typo in last change. + +Thu Jul 13 13:42:38 1995 Jeffrey A. Law + + * inftarg.c (child_thread_alive): New function to see if a + particular thread is still running. + (child_ops): Add child_thread_alive entry. + * remote.c (remote_thread_alive): New function to see if a + particular thread is still alive. + (remote_ops): Add remote_thread_alive. + * target.c (dummy_target): Add dummy entry for thread_alive. + (cleanup_target): de_fault thread_alive too. + (update_current_target): INHERIT thread_alive too. + (debug_to_thread_alive): New function. + (setup_target_debug): Add debug_to_thread_alive. + * target.h (struct target_ops): Add to_thread_alive. + (target_thread_alive): Define. + * thread.c (info_threads_command): Don't call kill; use + target_thread_alive instead. + * config/nm-lynx.h (CHILD_THREAD_ALIVE): Define. + * gdbserver/low-lynx.c (mythread_alive): New function. + (mywait): Don't restart any threads after a new thread notification, + let the generic code handle it. + * gdbserver/low-sparc.c (mythread_alive): Dummy version. + * gdbserver/low-sun3.c (mythread_alive): Likewise. + * gdbserver/server.c (main): Handle thread_alive requests. + * gdbserver/server.h (mythread_alive): Declare. + * corelow.c (core_ops): Add dummy entry for thread_alive. + * exec.c (exec_ops): Likewise. + * m3-nat.c (m3_ops): Likewise. + * monitor.c (monitor_ops): Likewise. + * procfs.c (procfs_ops): Likewise. + * remote-array.c (array_ops): Likewise. + * remote-e7000.c (e7000_ops): Likewise. + * remote-es.c (es1800_ops, es1800_child_ops): Likewise. + * remote-mips.c (mips_ops): Likewise. + * remote-pa.c (remote_hppro_ops): Likewise. + * remote-sim.c (gdbsim_ops): Likewise. + * sparcl-tdep.c (sparclite_ops): Likewise. + +Tue Jul 11 11:15:55 1995 Kung Hsu + + * solib.c: Add _DYNAMIC__MGC base symbol for Mentor Graphics Inc. + * solib.c (match_main): New function for checking name of main. + * solib.c (solib_add): Not to add if solib match main. + +Fri Jul 7 14:41:56 1995 Kung Hsu + + * elfread.c (elf_symtab_read): Fix a bug ignoring compiler + generated internal labels ($LM...). + +Wed Jul 5 11:38:36 1995 Kung Hsu + + * defs.h: if __GO32__ or WIN32 the directory separating symbol should + be '\' not '/'. + + * remote-nindy (nindy_wait): Use infinite timeout reading after + esacpe character. + +Tue Jul 4 10:30:22 1995 Jeffrey A. Law + + * infrun.c (wait_for_inferior): When switching from one thread to + another, save infrun's state for the old thread and load infrun's + previous state for the new thread. + * thread.c (struct thread_info): Add new fields for thread specific + state saved/restored in infrun.c. + (add_thread): Initialize new fields. + (load_infrun_state): New function. + (save_infrun_state): New function. + * thread.h (load_infrun_state): Provide external decl. + (save_infrun_state): Likewise. + + * infrun.c (wait_for_inferior): When we hit a breakpoint for the + wrong thread, make sure to write the fixed PC value into the thread + that stopped. Restart all threads after single stepping over a + breakpoint for a different thread. + * breakpoint.c (set_momentary_breakpoint): Make momentary + breakpoints thread specific in a multi-threaded program. + * lynx-nat.c (child_resume): Add some comments. Correctly + choose between the single and multi-threaded step and continue + ptrace calls. + +Fri Jun 30 16:15:36 1995 Stan Shebs + + * config/h8300/h8300.mt: Renamed from h8300hms.mt. + * config/h8500/h8500.mt: Renamed from h8500hms.mt. + * config/z8k/z8k.mt: Renamed from z8ksim.mt. + * configure, configure.in: Update to reflect renamings. + + * remote-sim.c (sim): New command, passes commands to simulator. + (simulator_command): New function. + (gdbsim_ops): Clean up. + * remote-sim.h (sim_do_command): Declare. + * sh-tdep.c (memory_size): Remove command. + + * Makefile.in (SIM, SIM_OBS): New variables. + (CLIBS, CDEPS): Add value of SIM. + (DEPFILES): Add value of SIM_OBS + + * config/arm/arm.mt, config/h8300/h8300.mt, config/h8500/h8500.mt, + config/sh/sh.mt, config/sparc/sp64sim.mt, config/w65/w65.mt, + config/z8k/z8k.mt: Remove simulator files from TDEPFILES, + define in SIM_OBS and SIM. + config/sparc/sp64sim.mt (SIMFILES): Remove. + + * remote-z8k.c: Remove, was superseded by remote-sim.c + * Makefile.in, mpw-make.in: Remove references to remote-z8k.c. + +Sun Jun 25 15:30:43 1995 Stan Shebs + + * remote.c (remote_read_bytes, remote_write_bytes): Second arg + should be char *, not unsigned char *. + * dcache.h (memxferfunc): Ditto. + * monitor.c (monitor_write_memory, monitor_read_memory_single): + Ditto. + (monitor_make_srec): Let compiler figure size of hextab. + +Sat Jun 24 19:27:37 1995 Jeffrey A. Law + + * lynx-nat.c (child_wait): Don't restart new threads and loop + to the top of child_wait; let the machine independent code in + wait_for_inferior deal with new thread notifications. + +Fri Jun 23 11:51:58 1995 Kung Hsu + + * remote-nindy (nindy_load): Put in target specific load, it's + 20 times faster. + +Thu Jun 22 20:21:59 1995 Stan Shebs + + * utils.c (error): Move local `args' outside conditional, + move local `string1' inside, declare function as void if + non-ANSI compiler, dereference error_hook when calling. + + * mac-xdep.c (stdarg.h): Don't include. + +Thu Jun 22 13:12:33 1995 Kung Hsu + + * remote-nindy.c (nindy_wait): Change timeout in SERIAL_READCHAR. + +Wed Jun 21 13:24:41 1995 Jeff Law (law@snake.cs.utah.edu) + + * hppam3-nat.c: Change HP800_THREAD_STATE to TRACE_FLAVOR and + HP800_THREAD_STATE_COUNT to TRACE_FLAVOR_SIZE. + +Wed Jun 21 05:57:56 1995 Steve Chamberlain + + * monitor.c: Turn on caching. + (monitor_printf): If a ^C was sent, don't expect to see its + echo. + (monitor_open): Enable caching. + (monitor_resume, monitor_load): Flush cache. + (monitor_xfer_memory): Call cache routine. + (monitor_dump_regs): New. + (monitor_fetch_registers): If monitor_dump_regs available + then use it. + (monitor_load): Don't ref exec_bfd if it's NULL. + (monitor_load_srec): Use new monitor_make_srec calling convention. + (monitor_make_srec): Rewrite to cope with two, three and four byte + addresses. + * remote-hms.c (hms_cmds): Initialze end-of-command delim. + * dcache.h, dcache.h: Rewritten. + * remote.c: Reenable caching. + (getpkt): Reduce MAX_TRIES to 3. + (remote_xfer_memory): Use dcache_xfer_memory. + * defs.h (error_hook): New. + * top.c (error_hook): New definition. + * utils.c (error): Use error_hook if initialized. + * sparcl-tdep.c (HAVE_SOCKETS): Don't define if GO32 or WIN32. Use + HAVE_SOCKETS in place of #ifndef GO32. + +Tue Jun 20 22:17:44 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppa.h (PSW_*): Define processor status word masks. + (INSTRUCTION_NULLIFIED): Allow specific targets to override. + * config/pa/tm-hppao.h (INSTRUCTION_NULLIFIED): Define to work + around losing mach kernel behavior. + +Tue Jun 20 12:03:36 1995 Stan Shebs + + * monitor.c (monitor_wait): Don't use the watchdog timeout + if its value is 0. + * w89k-rom.c (w89k_open): Define to be static. + + +Sat Jun 17 10:17:16 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (som_solib_add): Validate regexp argument. + Don't assume the first entry on dld's library list is the main + program. Don't load the same library more than once and don't + consider the main program a shared library. + (som_solib_sharedlibrary_command): New function + (_initialize_som_solib): Add "sharedlibrary" command. + +Thu Jun 15 14:54:58 1995 Stan Shebs + + * array-rom.c: Remove, no longer used. + + * remote-hms.c (hms_open): Make static. + + * mpw-config.in (MacSerial.h): Copy from version in {CIncludes}, + not {MPW}Interfaces:CIncludes. + * ser-mac.c (mac_baud_rate_table): Fix value for 38400 baud. + +Wed Jun 14 14:27:07 1995 Per Bothner + + * ch-exp.y: Remove lots of unsupported productions and names. + Add support for IF-expressions, ORIF, ANDIF, NUM, and ADDR. + +Tue Jun 13 21:40:11 1995 Per Bothner + + * parser-defs.h (enum precedence): Added PREC_BUILTIN_FUNCTION. + * expression.h (enum exp_opcode): Added UNOP_LOWER, UNOP_UPPER, + UNUP_LENGTH. + * expprint.c (dump_expression): Handle the new exp_opcodes. + (print_subexp): Handle PREC_BUILTIN_FUNCTION. + (print_simple_m2_func): Removed. + (print_subexp): Remove support for Modula2 builtin functions. + * m2-lang.c (m2_op_print_tab): Add support for builtin functions. + * ch-exp.y: Parse LOWER, UPPER, and LENGTH builtins. + (write_lower_upper_value): Convenience function for LOWER and UPPER. + (upper_lower_argument, length_argument): Removed non-terminals. + * ch-lang.c (chill_op_print_tab): Entries for UPPER, LOWER, LENGTH. + (type_lower_upper): New function. Calculate LOWER/UPPER of type. + (value_chill_length): New function. Calcalate LENGTH of ARRAY/STRING. + (evaluate_subexp_chill): Handle UNOP_LOWER, UNOP_UPPER, UNOP_LENGTH. + +Mon Jun 12 12:48:13 1995 Stan Shebs + + Windows support bits from Steve Chamberlain . + * defs.h: Don't declare strchr and friends if WIN32. + (DIRNAME_SEPARATOR): Move here from source.c. + (SLASH_P, SLASH_CHAR, SLASH_STRING, ROOTED_P): New macros, + symbolic definitions for filename bits. + * top.c (cd_command): Use these. + * source.c (mod_path, openp): Ditto. + * terminal.h: Disable termio/sgtty definitions if WIN32. + * findvar.c (registers_changed): Call registers_changed_hook + if it is defined. + +Mon Jun 12 12:22:05 1995 J.T. Conklin + + * Makefile.in (distclean, realclean): Remove config.cache and + config.log. + +Mon Jun 12 00:21:59 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c: Include gdb-stabs.h. + (som_solib_section_offsets): Use SECT_OFF_XXX rather than 0, 1, + etc. Initialize offsets for RODATA & BSS too. + +Sat Jun 10 17:59:11 1995 Jeff Law (law@snake.cs.utah.edu) + + * hppa-tdep.c (frame_chain): Try to compensate for incomplete + register information in core files when backtracing. + +Fri Jun 9 14:51:38 1995 Stu Grossman (grossman@cygnus.com) + + * remote-nrom.c: Remove everything but download code. More + cleanups. + +Thu Jun 8 15:06:00 1995 Stu Grossman (grossman@cygnus.com) + + * defs.h maint.c monitor.c remote-mips.c remote.c: Add support + for `watchdog' variable. This allows the user to put an upper + limit on the amount of time that GDB will wait for the target to + return from a step or continue operation. This will primarily be + used for the testsuite, where it is difficult to come up with a + reasonable timeout for things like function calls, which can take + as long as three minutes under some circumstances. If the + watchdog timer expires, GDB will generate an error that looks like + `Watchdog has expired.', and will detach from the target. + + * remote-mips.c (mips_open): Setup initial frame from target. + Print it out so that user is told where the program is stopped + when they attach. + + * remote-nrom.c: Loads of cleanups. Use serial code to open + network connections. Use expect() to wait for response to + download command. + + * ser-tcp.c (tcp_open): Retry connection if we get ECONNREFUSED. + + * serial.c serial.h (serial_open serial_fdopen serial_close): + Allow users to open the same device multiple times. They all get + to share the same serial_t. This is about the only way to have + multiple active targets use the same device (for download and + debug). + + * sparcl-tdep.c: Keep #include away from GO32. + + * target.c: Add `targetdebug' variable. If this is non-zero, + then a special target is put at the top of the target stack which + will cause all calls through the target vector to have their args + and results printed out. + +Wed Jun 7 17:40:37 1995 Per Bothner + + * ch-exp.y: Handle "->" . + +Wed Jun 7 17:46:33 1995 Michael Meissner + + * mem-break.c (LITTLE_BREAKPOINT): If BREAKPOINT and + {LITTLE,BIG}_BREAKPOINT are all defined, don't redefine. + (BIG_BREAKPOINT): Ditto. + + * config/rs6000/tm-rs6000.h (BREAKPOINT): Define as either + BIG_BREAKPOINT or LITTLE_BREAKPOINT depending on the target byte + order. + +Wed Jun 7 12:41:42 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (som_solib_section_offsets): Handle relative pathnames. + + * hppa-tdep.c (frame_saved_pc): Handle backtracing through signal + handler in dynamically linked executables. + +Tue Jun 6 10:44:25 1995 Michael Meissner + + From Andrew Cagney + * rs6000-tdep.c (single_step): Handle both little and big endian + breakpoints. + (gdb_print_insn_powerpc): Deal with disassembling both little and + big endian PowerPC systems. + (_initialize_rs6000_tdep): Use gdb_print_insn_powerpc to handle + disassembly, rather that assuming big endian order. + + * config/rs6000/tm-rs6000.h (BREAKPOINT): Delete. + (BIG_BREAKPOINT): Define, big endian breakpoint instruction. + (LITTLE_BREAKPOINT): Define, little endian breakpoint instruction. + +Sat Jun 3 01:54:56 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * README: Add note about Unixware 2.x. + + * dbxread.c (process_one_symbol): Check for exact symbol name + match when fixing up N_GSYM and N_STSYM symbols from Sun acc. + + * valprint.c (value_print_array_elements): Use + fprintf_filtered to put out `', + from schwab@issan.informatik.uni-dortmund.de (Andreas Schwab). + + * value.h (struct value): Change `repetitions' field from + `short' to `int' type. + +Fri Jun 2 11:17:23 1995 Doug Evans + + * arc-tdep.c (arc_bfd_mach_type): New static global. + (codestream_fill): Handle byte order differences. + (setup_prologue_scan): Don't read stdarg function's "sub sp,sp,N". + (arc_get_frame_setup): Read it here. + (arc_frame_saved_pc): And here. + (arc_print_insn): New function. + (arc_set_cpu_type): Set arc_bfd_mach_type. Don't set tm_print_insn. + (_initialize_arc_tdep): Set tm_print_insn to arc_print_insn. + +Wed May 31 12:04:01 1995 J.T. Conklin + + * nlm/{configure.in, Makefile.in}: Converted to use autoconf. + * nlm/configure: New file, generated with autoconf 2.3. + + * nlm/configure.in: Use sed instead of awk to get the value of + cpufile. Awk is not a utility required by the GNU coding + standards. This change also fixes the rigid whitespace + requirements that were required for awk. + + * sparclite/aload.c: Use a file descriptor instead of a stdio + stream for i/o with target board. + Use #error if HAVE_TERMIOS is not defined. + + * sparclite/{Makefile.in, configure.in}: Converted to use + autoconf. + * sparclite/configure: New file, generated with autoconf 2.3. + +Sun May 28 23:10:07 1995 Jeff Law (law@snake.cs.utah.edu) + + * defs.h: Include either varargs.h or stdarg.h (for va_list). + Fix stupid thinko in last change ("..." -> "va_list"). + + * defs.h (vprintf_filtered declaration): Add PARAMS prototype; + gcc-2.5 chokes on format attributes for unprototyped functions. + (vfprintf_filtered declaration): Likewise. + (vprintf_unfiltered declaration): Likewise. + (vfprintf_unfiltered). Likewise. + +Sat May 27 23:54:17 1995 J.T. Conklin + + * configure.in: Use sed instead of awk to get the values of + hostfile, targetfile and nativefile. Awk is not a utility + required by the GNU coding standards. This change also + fixes the rigid whitespace requirements that were required + for awk. + * configure: regenerated. + +Sat May 27 16:24:04 1995 Angela Marie Thomas + + * sparclite/{Makefile,configure}.in: Add hooks for building with + -lsocket & -lnsl for solaris2. Don't build aload/eload for DOS. + +Thu May 25 12:46:37 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdbserver/remote-utils.c (prepare_resume_reply): Add FIXME + comment regarding signal numbering. + +Wed May 24 15:49:47 1995 Steve Chamberlain + + * arm-tdep.c (_initialize_arm_tdep): Use print_insn_little_arm + now. + + * arm-tdep.c (convert_from_extended, convert_to_extended): + New. + * coffread.c (enter_linenos): Return if linetab 0. + * config/arm/arm.mt (TDEPFILES): Add simulator support. + * config/arm/tm-arm.h (FRAME_FIND_SAVED_REGS): Fix prototypes. + +Mon May 22 19:37:21 1995 Rob Savoye + + * config/idt.mt: replace monitor and array-rom with the new + remote-array. + +Mon May 22 15:38:25 1995 Stu Grossman (grossman@cygnus.com) + + * remote-nindy.c: Install Kung patch for PR 6820. I have no idea + what this does... + + * breakpoint.c: Move defaults of watchpoint related macros into + target.h. + * target.h: Macros from breakpoint.c. Conditionalize based on + TARGET_HAS_HARDWARE_WATCHPOINTS. + * i386v-nat.c procfs.c: Use TARGET_HAS_HARDWARE_WATCHPOINTS + instead of TARGET_CAN_USE_HARDWARE_WATCHPOINT to enable watchpoint + code. + * config/i386/nm-linux.h, config/mips/nm-irix4.h, + config/pa/nm-hppab.h, config/sparc/tm-sparclite.h: #define + TARGET_HAS_HARDWARE_WATCHPOINTS to enable watchpoint code. + +Mon May 22 06:47:30 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c, target.h: Move defaults of watchpoint related + macros back to breakpoint.c. Required to get GDB compiling + on Solaris again. + +Fri May 19 14:49:37 1995 J.T. Conklin + + * defs.h (ATTR_FORMAT): New macro, expands to gcc's format + attribute when compiled by gcc. + * defs.h, language.h, monitor.h: Changed many function + declarations to use ATTR_FORMAT. + + * breakpoint.c (delete_command); source.c (directory_command); + top.c (define_command): Changed call to query() that had too + many arguments. + * printcmd.c (address_info): Changed call to printf_filtered() + that had too many arguments. + +Fri May 19 09:52:07 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Move assignments to stop_signal + and stop_pc, and STOPPED_BY_WATCHPOINT code, back where they + were--after the switch statement on w.kind. You can't read the + registers of an inferior which has exited. Use a goto in the + STOPPED_BY_WATCHPOINT code. + * infrun.c (wait_for_inferior): Reinstate + HAVE_STEPPABLE_WATCHPOINT and HAVE_CONTINUABLE_WATCHPOINT code. + +Fri May 19 06:15:40 1995 Jim Kingdon + + * utils.c, complaints.c, language.c, monitor.c, remote-array.c, + remote-mips.c, remote-os9k.c, remote-st.c: Conditionalize use of + stdarg rather than varargs on ANSI_PROTOTYPES not __STDC__; it + must match the definition of PARAMS. + +Thu May 18 15:58:46 1995 J.T. Conklin + + * utils.c (fprintf_filtered, fprintf_unfiltered, fprintfi_filtered, + printf_filtered, printf_unfiltered, printfi_filtered, query, warning, + error, fatal, fatal_dump_core): Use stdarg.h macros when compiling + with an ANSI compiler. + * complaints.c (complain): Likewise. + * language.c (type_error, range_error): Likewise. + * monitor.c (monitor_printf, monitor_printf_noecho): Likewise. + * remote-array.c (printf_monitor, debuglogs): Likewise. + * remote-mips.c (mips_error): Likewise. + * remote-os9k.c (printf_monitor): Likewise. + * remote-st.c (printf_stdebug): Likewise. + + * defs.h, complaints.h, language.h, monitor.h: Add prototypes to + match above changes. + + * printcmd.c: Remove uneeded #include . + * remote-e7000.c: Likewise. + + * f-typeprint.c (f_type_print_base): Fix typo found by above + changes. + +Wed May 17 11:21:32 1995 Jim Kingdon + + * Makefile.in (xcoffread.o): Depend on partial-stab.h. + + * xcoffsolib.c (sharedlibrary_command): New command. + * xcoffsolib.c (solib_info): Call xcoff_relocate_symtab. + * xcoffsolib.c: Miscellaneous cleanups. + + * partial-stab.h: Ignore symbol descriptor '-' (for local + variables with negative type numbers) without complaint. + + * rs6000-nat.c (vmap_ldinfo): Use bfd_stat rather than our own + local emulation thereof. Remove unused variable ostart. + +Wed May 17 15:55:53 1995 J.T. Conklin + + * Makefile.in (config.status): changed target so that + config.status --recheck is executed if configure script changes. + + * monitor.c (monitor_printf): Changed format specification in + error message to work with pre-ansi compilers. + (monitor_load_srec): reduced length of s-records from 128 to 32 + bytes so download is more reliable with the rom68k monitor. + + * rom68k-rom.c: Added trailing space to prompt string. + + * config/i386/xm-i386sco.h (HAVE_STRSTR): Removed. + * config/i386/xm-go32.h, mswin/xm.h (SYS_SIGLIST_MISSING): + Removed. + * defs.h, config/{xm-lynx.h, xm-nbsd.h}, + config/i386/{xm-i386bsd.h, xm-linux.h}, + config/m68k/xm-hp300bsd.h, config/mips/xm-irix4.h, + config/ns32k/xm-ns32km3.h, doc/gdbint.texinfo + (PSIGNAL_IN_SIGNAL_H): Removed. + +Tue May 16 13:16:06 1995 J.T. Conklin + + * Makefile.in (Makefile): Added config.status to dependency list. + + * configure.in: Added INIT-CMDS argument to AC_OUTPUT which sets + gdb_host_cpu, gdb_target_cpu and nativefile. + * configure: regenerated. + +Mon May 15 23:50:51 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_symbol): Do not relocate stBlock/scText + symbols, their value is the displacement from the procedure address. + * top.c (init_main): Add missing newlines to help strings for + `if' and `while' commands, fix help string for `show commands'. + +Mon May 15 18:37:56 1995 Stu Grossman (grossman@cygnus.com) + + * breakpoint.c: Move defaults of watchpoint related macros into + target.h. Use BP_TEMPFLAG and BP_HARDWAREFLAG instead of + constants. + * infrun.c (wait_for_inferior): Enhance comment near + STOPPED_BY_WATCHPOINT. + * target.h: Macros from breakpoint.c. + +Mon May 15 17:11:38 1995 J.T. Conklin + + * config/i386/{i386sol2.mh, i386v4.mh, ncr3000.mh}, + config/m68k/m68kv4.mh, config/mips/{irix4.mh, irix5.mh, + mipsv4.mh}, config/sparc/sun4so2.mh (INSTALL): Removed, figured + out by autoconf. + * config/apollo68v.mh (RANLIB): Removed, figured out by autoconf. + + * Makefile.in, configure.in: Converted to use autoconf + * aclocal.m4: New file, local autoconf macro definitions. + * configure: New file, generated with autoconf 2.3. + +Mon May 15 14:46:41 1995 Stan Shebs + + * remote.c (remote_kill): Add prototype. + * cpu32bug-rom.c (cpu32bug_open): Properly define as static. + * config/h8300/h8300hms.mt (TDEPFILES): Add monitor.o. + +Mon May 15 12:12:34 1995 Stu Grossman (grossman@cygnus.com) + + * sparclite/salib.c (win_ovf win_unf): Make window size constant + into a variable (__WINSIZE) so that it can be controlled via the + .h file. + * sparclite/sparclite.h: Add SL933 #ifdef to set __WINSIZE to 6 + for the 933 board. + + * infrun.c: Add #ifdef HP_OS_BUG to all references to + trap_expected_after_continue. + * (wait_for_inferior): Fix for remote watchpoints. Don't try to + insert breakpoints while target is running (this only works on + *some* native targets). This may also speed up native watchpoints + considerably. + +Sat May 13 13:55:04 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dwarfread.c (struct dwfinfo), dbxread.c (struct symloc), + mdebugread.c (struct symloc), hpread.c (struct symloc), + xcoffread.c (struct symloc): Fix inaccurate comment introduced + 20 Apr 1995. + +Sat May 13 13:34:18 1995 Jim Kingdon + + * rs6000-tdep.c (find_toc_address): Revise comment. + * symfile.c, symfile.h (init_psymbol_list): New function; + consolidate duplicated copies from os9kread.c, dbxread.c + and dwarfread.c. + * defs.h: Declare info_verbose. + * xcoffread.c: Extensive changes to support psymtabs. + +Fri May 12 13:48:41 1995 Stu Grossman (grossman@andros.cygnus.com) + + * cpu32bug-rom.c remote-est.c rom68k-rom.c: Update line_term element. + +Fri May 12 06:39:30 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * partial-stab.h: Expand comments. + +Thu May 11 19:01:37 1995 Jeff Law (law@snake.cs.utah.edu) + + * Support debugging using native MACH primitives on hppa*-*-osf*. + * configure.in: hppa*-*-osf* != hppa*-*-bsd* anymore. + * config/pa/hppaosf.mh: New file. + * config/pa/nm-hppao.h: Likewise. + * hppam3-nat.c: Likewise. + * config/pa/tm-hppao.h (PSW_SS): Define for single-stepping. + (MACHINE_CPROC_*_OFFSET): Define. + (TRACE_*): Define. + (START_INFERIOR_TRAPS_EXPECTED): Delete definition. + +Wed May 10 18:59:26 1995 Stu Grossman (grossman@andros.cygnus.com) + + * hppa-tdep.c (read_unwind_info): Cosmetic cleanup. + * (unwind_command): Clean it up and make it print things out + nicer. + * monitor.c: Add ^C handling capability (mostly ripped off from + remote.c). + * (monitor_printf): Make it check the command echo. + * (monitor_printf_noecho): Similar to above, but doesn't check + for echo. + * (monitor_stop): No longer waits for prompt. That is the job of + the caller. This makes things work much better for monitor_wait, + which waits for the prompt itself. + * (monitor_open): Deal with new monitor_stop semantics. Also, + flush input after sending init strings to get rid of junk that may + be output. Also, don't always send \r to remote. Use + monitor_ops->line_term cuz proper character isn't always \r. + * (monitor_fetch_register): Switch to completely different + algorithm to deal with lame-ass monitors which put spaces in the + middle of numbers, and prompt with a space!!!!! + * (monitor_read_memory_single): New routine to be used with + monitors that can only return one byte/short/long at a time. This + is selected via MO_GETMEM_READ_SINGLE. + * (monitor_load_srec): Use monitor_printf_noecho for sending S + records. Most targets don't echo them. + * (monitor.h): Get rid of cmd_delim. Add line_delim. + * op50n-rom.c (op50n_cmds): Fill it up. Make it work. + * w89k-rom.c: Change all eols from \r to \n. Change load_resp to + ^Q to prevent error message. + * config/pa/tm-hppa.h (CALL_DUMMY (for hppro)): Add special + instruction sequence at end to make restore_pc_queue happy. + +Wed May 10 15:59:00 1995 Torbjorn Granlund + + * remote-est.c (est_open): Make static to match prototype. + +Tue May 9 16:58:50 1995 Michael Meissner + + * configure.in: Add little endian PowerPC support. + * config/powerpc/ppcle-eabi.mt: New file for little endian PowerPC + support. + * config/powerpc/tm-ppcle-eabi.h: ditto. + +Mon May 8 12:11:38 1995 J.T. Conklin + + * nlm/configure.in (gdb_host, gdb_host_cpu, gdb_target): Removed. + These variables not used. + + * config/m68k/monitor.mt (TDEPFILES): Added cpu32bug-rom.o. + +Wed May 3 17:54:47 1995 Stan Shebs + + * monitor.c (monitor_command): Don't use PROMPT until monitor + target is known to be open. + (monitor_make_srec): Don't define size of hextab. + +Tue May 2 18:32:24 1995 Stan Shebs + + * configure.in (--enable-netrom): New configuration option. + * Makefile.in (REMOTE_OBS): Rename from REMOTE_O, append + value of NETROM_OBS. + (NETROM_OBS): New variable. + * remote-nrom.c: New file, NetROM target support. + * config/a29k/a29k-udi.mt, config/i960/vxworks960.mt: Use + REMOTE_OBS instead of REMOTE_O. + * config/arc/arc.mt: Ditto. + +Fri Apr 28 23:30:00 1995 Stu Grossman (grossman@cygnus.com) + + * array-rom.c (_initialize_array array_open): Move baud_rate + initialization from _initxxx to array_open to fix bug with + overriding -b command line option. + +Thu Apr 27 20:29:34 1995 Doug Evans + + * Makefile.in (RUNTEST): Fix reference of `srcdir'. + +Wed Apr 26 19:01:08 1995 Steve Chamberlain + + * remote-hms.c: Rewrite to use new monitor conventions. + +Tue Apr 25 11:27:14 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dbxread.c: Add comment explaining lowest_text_address. + Add comment regarding stringtab_global and psymtabs. + +Sat Apr 22 01:26:29 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/pa/tm-hppa.h (EXTRACT_STRUCT_VALUE_ADDRESS): Fix. + + * config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Rewrite to correctly + handle "short", "int" and small structures returned in registers. + +Fri Apr 21 12:57:53 1995 Kung Hsu + + * minsyms.c: add new function lookup_minimal_symbol_text, to look + for text symbol only. + * breakpoint.c (create_longjmp_breakpoint): call + lookup_minimal_symbol_text instead of lookup_minimal_symbol. + * symtab.h: add lookup_minimal_symbol_text prototype. + +Fri Apr 21 12:03:44 1995 Stan Shebs + + * sh-tdep.c (sh-opc.h): Don't include. + (gdbcore.h): Include. + (frame_find_saved_regs): Remove unused local. + +Thu Apr 20 10:12:21 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * dwarfread.c (struct dwfinfo), dbxread.c (struct symloc), + mdebugread.c (struct symloc), hpread.c (struct symloc): Clean + up comments. + +Wed Apr 19 16:58:11 1995 Stu Grossman (grossman@andros.cygnus.com) + + * hppa-tdep.c (deposit_17): New routine to deposit 17 bit + constants into PA instructions. + * Put #ifdefs around all signal handling code. Not generally + needed for embedded boards. + * (hppa_fix_call_dummy): Parameterize offsets into call dummy to + allow different dummys to be used by this code. Use + INSTRUCTION_SIZE instead of REGISTER_SIZE for things. + Conditionalize setup of _sr4export fixup. Improve comments. + * config/pa/tm-hppa.h: Define INSTRUCTION_SIZE. Use a different + call dummy if PA_LEVEL_0 is defined. Better comments for call + dummys. Define offsets for LDIL/LDO instructions which load + function addresses. + * config/pa/tm-pro.h: Get rid of signal handling stuff. Define + PA_LEVEL_0 to disable mucking with space regs and such. + +Mon Apr 17 15:37:08 1995 Stu Grossman (grossman@andros.cygnus.com) + + * cpu32bug-rom.c monitor.h op50-rom.c remote-est.c rom68k-rom.c + w89k-rom.c: Remove loadtypes, loadprotos and baudrates. + * op50-rom.c: Fix copyrights and add load routine to op50n_cmds. + * rom68k-rom.c (_initialize_rom68k): Don't set baud rate. + * w89k-rom.c: Fix copyrights. + +Sun Apr 16 14:00:55 1995 Stu Grossman (grossman@andros.cygnus.com) + + * monitor.c: Move all xmodem stuff into xmodem.[ch]. Remove + unnecessary remoteloadprotocol and remoteloadtype support. + * (expect expect_prompt): Change names to monitor_expect and + monitor_expect_prompt. Make them global. + * (printf_monitor): Change name to monitor_printf. Make global. + * (monitor_read_memory): Flush command echo to avoid parsing + ambiguity with CPU32Bug monitor. + * (monitor_load): Remove remoteloadprotocol and remoteloadtype + support. Call target_ops->load_routine, default to + monitor_load_srec. + * (monitor_load_srec): Remove everything but S-record support. + * monitor.h (monitor_ops): Add load_routine to provide monitor + specific download capability. + * remote-est.c: Clean up copyrights and comments. + * w89k-rom.c: Use new xmodem support. + * xmodem.c xmodem.h: New files to support xmodem downloads. + * rom68k-rom.c remote-est.c: Fix copyrights, add load_routine + entry to monitor_ops. + * cpu32bug-rom.c: New file to support Moto BCC debuggers. + * config/m68k/est.mt (TDEPFILES): Add cpu32bug.o. + * config/pa/hppapro.mt (TDEPFILES): Add xmodem.o. + +Sat Apr 15 18:00:15 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * rem-multi.shar: Removed; superceded by gdbserver. + +Fri Apr 14 12:10:24 1995 Jim Kingdon + + * xcoffread.c (xcoff_sym_fns): Revise comment about merging this + with coffread.c. + + * breakpoint.c (fixup_breakpoints): Removed. + * rs6000-nat.c (vmap_symtab): Don't call fixup_breakpoints. + (vmap_ldinfo, xcoff_relocate_core): Call breakpoint_re_set. + + * coffread.c (coff_symfile_offsets): Allocate SECT_OFF_MAX + sections, not just SECT_OFF_MAX-1. + + * rs6000-nat.c (vmap_symtab), xcoffread.c: Re-do section offsets + to be indexed by SECT_OFF_* instead of xcoff section numbers. + * objfiles.c, remote.c: Remove comments regarding SECT_OFF_*. + * symtab.h: Revise comment about block_line_section. + * rs6000-nat.c (vmap_symtab): Don't relocate objfile->sections. + +Sat Apr 15 14:15:14 1995 Stan Shebs + + * mpw-make.in (init.c): Don't try to do symbolic {o} in sed + command, not allowed by some version of MPW Make. + * ser-mac.c (mac-setbaudrate): Make it actually set baud rates. + +Sat Apr 15 14:05:09 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * alpha-tdep.c (alpha_push_arguments): Fix typo (TYPE_VALUE -> + VALUE_TYPE). Do the cast for TYPE_CODE_BOOL, TYPE_CODE_CHAR, + TYPE_CODE_ENUM, and TYPE_CODE_RANGE as well as TYPE_CODE_INT. + +Sat Apr 15 14:04:32 1995 Per Bothner + + * alpha-tdep.c (alpha_push_arguments): Only cast to long for + TYPE_CODE_INT. + + +Thu Apr 13 16:17:04 1995 Rob Savoye + + * remote-array.c: New file for Array Tech LSI33k based controller + board. + +Thu Apr 13 12:23:31 1995 Kung Hsu + + * a29k-tdep.c (get_longjmp_target): Replace SWAP_TARGET_AND_HOST with + extract_address. + * remote-vxsparc.c: New file, preliminary check in, this configuration + not supported yet. + * remote-vxmips.c: ditto. + +Thu Apr 13 12:10:14 1995 Michael Meissner + + * rs6000-tdep.c (xcoff_add_toc_to_loadinfo): Don't use a prototype + to declare the function. + +Wed Apr 12 16:40:20 1995 Stan Shebs + + * monitor.h (init_monitor_ops): Declare. + * rom68k-rom.c: Clarify some comments. + (rom68k_open): Define as static, to match decl. + +Wed Apr 12 16:36:44 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * gdb.gdb: New file. + * .gdbinit: Move list-objfiles to gdb.gdb. + + * values.c (set_internalvar): Set modifiable flag of newval. + +Wed Apr 12 14:34:31 1995 Jim Kingdon + + * xcoffread.c: Call complain() rather than error() or printing a + warning. + +Wed Apr 12 08:15:27 1995 Doug Evans + + * arc-tdep.c: #include "gdbcmd.h". + (codestream_seek): Pass CORE_ADDR. + (arc_cpu_type, tmp_arc_cpu_type, arc_cpu_type_table): New globals. + (debug_pipeline_p): Likewise. + (X_...): Instruction field access macros. + (BUILD_INSN): Define. + (codestream_tell): Allow for stream elements > 1 byte. + (codestream_fill): Likewise. + (setup_prologue_scan): New function. + (arc_get_frame_setup): Call it. Update to current spec + regarding prologues. Use BUILD_INSN. + (skip_prologue): New argument `frameless_p'. Use BUILD_INSN. + (arc_frame_saved_pc): New function. + (frame_find_saved_regs): Use BUILD_INSN. + (get_insn_type, single_step): New functions. + (one_stepped): New global. + (arc_set_cpu_type_command, arc_show_cpu_type_command): New functions. + (arc_set_cpu_type): New function. + (_initialize_arc_tdep): Define new `set' commands `cpu', + `displaypipeline', and `debugpipeline'. + * arc/tm-arc.h (TARGET_BYTE_ORDER): Delete. + (TARGET_BYTE_ORDER_SELECTABLE): Define. + (DEFAULT_ARC_CPU_TYPE): Define. + (SKIP_PROLOGUE_FRAMELESS_P): Define. + (BREAKPOINT): Delete. + (BIG_BREAKPOINT, LITTLE_BREAKPOINT): Define. + (DECR_PC_AFTER_BREAK): Change to 8. + (NO_SINGLE_STEP): Define. + (ARC_PC_TO_REAL_ADDRESS): Define. + (SAVED_PC_AFTER_CALL): Use it. + (NUM_REGS, REGISTER_BYTES): Fix. + (FRAME_SAVED_PC): Call arc_frame_saved_pc. + (FRAME_LOCALS_ADDRESS): Fix. + +Tue Apr 11 16:42:37 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * top.c, utils.c, defs.h: Remove error_hook. It is currently + unused and would need to hook into error_begin()/return_to_top_level(), + instead of error(), if it were to be used. + +Tue Apr 11 13:46:25 1995 Jim Kingdon + + * utils.c, defs.h (warning_begin): Renamed from warning_setup, for + consistency with error_begin. Also print warning_pre_print. + Document it better. + * utils.c (warning): Use it. + * utils.c (error_begin): Doc fix. + * rs6000-nat.c (vmap_ldinfo): If we don't find ldinfo for the + symfile_objfile, nuke it. + +Tue Apr 11 09:35:20 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * printcmd.c (print_address_numeric): Pass use_local to + print_longest, rather than always passing 1. + + * nlm/Makefile.in: Remove comments discussing munch. + + +Mon Apr 10 18:31:57 1995 Stan Shebs + + Merge in support for Mac MPW as a host. + (Old change descriptions retained for informational value.) + + * mpw-config.in (i386-unknown-go32): Change from aout. + (sh-hitachi-hms): New target. + * mpw-make.in (BISON): Use byacc instead of bison. + (VERSION): Bump to 4.14.1. + (*-pinsn.*): Remove mentions everywhere. + (all): Don't build MacGDB. + (gdb, SiowGDB): Depend on Version.r. + (Version.r): Generate from version info. + * main.c (main): Pass program name to START_PROGRESS, END_PROGRESS. + (main) [MPW]: Remove debugging hook. + * mac-xdep.c (debug_openp): New flag. + (mac_init): Set flag if env variable defined. + * ser-mac.c (mac_open): Clarify error message. + (mac_readchar): Call PROGRESS while looping. + (mac_write): Call sleep instead of sec_sleep. + (sec_sleep): Remove. + * source.c (openp) [MPW]: Only print debugging info if debugging. + * utils.c (query) [MPW]: Clarify that behavior is a bug. + + * mpw-make.in (init.c): Use open-brace instead of mpw-open-brace. + + * main.c, source.c: Remove hacks that replace long strings + with shorter ones, now solved portably. + + * config/m68k/xm-mpw.h (spin.h): Include. + (ALMOST_STDC): Only define if MPW_C. + * config/m68k/tm-mac.h: New file, Mac target definitions. + + * mpw-config.in (m68k-apple-macos, ppc-apple-macos, + i386-unknown-aout): New targets. + (mk.tmp): Add *DEPFILES definitions. + * mpw-make.in: Remove gC rules, clean up definitions for other + include files, bump version, fix bogus \ that should be \Option-d. + (init.c): Build correctly. + + * mpw-make.in (HFILES_NO_SRCDIR): Add somsolib.h + (ALLDEPFILES): Add somsolib.c. + (somsolib.o): Add some dependencies. + + * mpw-config.in: Use nm-empty.h if host is not target. + (xdepfiles): Add mac-xdep.c.o. + (xm_file): Remove. + * mpw-make.in: Add Fortran files. + (XDEPFILES): Remove. + + * mpw-config.in (MacSerial.h): Duplicate from standard Serial.h. + * ser-mac.c (MacSerial.h): Include instead of Serial.h. + + * mpw-make.in: Use {s} instead of {srcdir} everywhere. + (bindir, libdir): Remove extra colon. + (source.c): Compile with C instead of gC. + (c-exp.tab.c, ch-exp.tab.c, m2-exp.tab.c): Add {o}. + (install-only): Don't install MacGDB. + * source.c (openp) [MPW]: Add a debugging display. + (open_source_file) [MPW]: Use MPW basename finders. + [MPW_C]: Briefer versions of help for line and list commands. + + * mpw-make.in: Change references from paread.c to somread.c + + * mpw-make.in (VERSION): Update to 4.12.3. + (SiowGDB): New target, GDB using SIOW library. + (init-new.c): New target, attempt to generate init.c from sources. + (main.c.o, top.c.o): Put each in its own segment. + * main.c (main) [MPW]: Always call mac_init. + * utils.c (query) [MPW]: Always return "yes" if in MacGDB, output + an extra newline otherwise. + * mac-xdep.c: More comments in various places, remove junk. + (mac_init): Add tests for MPW and SIOW. + (use_wne, has_color_qd): Renamed. + (use_color_qd): New variable. + (grow_window): Only do console resizing to console window, + call resize_console_window. + (zoom_window): Call resize_console_window. + (resize_console_window, scroll_text): New functions. + (adjust_console_sizes): Always align viewrect to even multiples of + text lines. + (adjust_console_text): Always scroll by whole lines. + (hacked_vfprintf, hacked_puts, hacked_fputc, hacked_putc): Force a + recalculation of scroll positions if a newline was output. + (hacked_fflush): Similarly, for flushing. + (hacked_fgetc): New function, aborts if called in MacGDB. + * ser-mac.c (mac_readchar): Rename starttime to start_time, + remove debugging printf. + (mac_write): Sleep on first 4 writes. + (sec_sleep): New function, works like standard sleep. + * macgdb.r: Adjust positioning and contents of About box. + Set minimum size to 2000K, preferred size to 5000K. + * config/m68k/xm-mpw.h (fgetc): Define as a macro. + + * mpw-make.in (.c.o, .gc.o): Prefix segment names with gdb_. + (top.c.o, annotate.c.o): Add build rules. + * macgdb.r (SysTypes.r): Include. + ('vers'): New resource, version info. + (mFile, mEdit, mDebug): Enable all menu items. + (mDebug): Add key equivalents for continue, step, next. + (wConsole): Add zoom and close boxes to window. + * mac-xdep.c (new_console_window): New function, code taken from + mac_init. + (mac_command_loop): Use GetCaretTime for wait interval, call + do_idle on null events. + (do_idle): New function. + (zoom_window): Implement zooming. + (v_scroll_proc): New function, handles vertical scrolling. + (activate_window): Do activation of console window. + (do_menu_command): Implement items of file, edit, and debug menus. + (do_keyboard_command): Fix command extraction. + (adjust_console_sizes, adjust_console_text): New functions. + (hacked_fprintf, hacked_vfprintf, hacked_fputs, hacked_fputc, + hacked_putc): Don't call draw_console. + * ser-mac.c (mac_open): Add an error message for invalid ports. + (first_mac_write): New global. + (mac_write): Use first_mac_write to sleep on first several writes. + + * mpw-make.in (INCLUDE_CFLAGS): Add readline source dir. + (READLINE_CFLAGS, READLINE_SRC, READLINE_DIR): Uncomment. + (TSOBS): Don't compile inflow.c. + (all, install): Add MacGDB. + * main.c (main): Do Mac-specific init and command loop if a + standalone app, skip full option help message if compiling + with MPW C. + (gdb_readline): If MPW, add a newline after the (gdb) prompt. + * utils.c (_initialize_utils): If MPW, don't try to use termcap to + compute the window size. + * config/m68k/xm-mpw.h (printf, fprintf, fputs, fputc, putc, + fflush): Define as macros that expand into hacked_... versions. + (StandAlone, mac_app): Declare. + * macgdb.r (SIZE): Set the default partition to 4000K. + * mac-xdep.c (readline.h, history.h): Include. + (terminal.h): Don't include. + (mac_app): Define. + (gdb_has_a_terminal): Define Mac-specific version. + (do_keyboard_command): Simplify search for command string. + (readline): Define as gdb_readline. + Add other history/readline stubs to make main gdb link. + (hacked_fprintf, hacked_printf, hacked_vfprintf, hacked_fputs, + hacked_fputc, hacked_fflush): New functions, intercept output to + stdout and stderr, send to console window. + + * mpw-make.in (MacGDB): New target, standalone Mac-hosted gdb. + (XDEPFILES): Define. + (main.c.o): Compile with gC instead of C. + * mac-defs.h: New file, menu etc definitions shared between + C and Rez files. + * macgdb.r: New file, Rez (resource compiler) resource + definitions. + * mac-xdep.c: New file, Mac host interface code. + * config/m68k/xm-mpw.h (PATHNAME_SEPARATOR): Rename to + DIRNAME_SEPARATOR. + (PATHNAME_SEPARATOR_STRING): Remove. + (SIGQUIT, SIGHUP): Define. + (fileno, R_OK): Define. + + * mpw-config.in: New file, MPW configuration fragment. + * mpw-make.in: New file, MPW makefile fragment. + * config/m68k/xm-mpw.h: New file, MPW host definitions. + * ser-mac.c: New file, Mac serial interface. + +Mon Apr 10 16:47:57 1995 Kung Hsu + + * valprint.c (print_longest): Fix a syntax error in #ifdef + PRINTF_HAS_LONG_LONG. + + * config/mips/xm-irix5.h: turn on CC_HAS_LONG_LONG and + PRINTF_HAS_LONG_LONG. + * config/mips/tm-irix5.h: turn on FORCE_LONG_LONG. + +Sat Apr 8 02:47:45 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_symbol): Use new variable + nodebug_var_symbol_type as type of variables which don't have any + ecoff debug info associated with them. + (parse_symbol, parse_procedure): Use heuristics to determine if + functions were compiled without debugging info and change their + type to nodebug_function_symbol_type. + (_initialize_mdebugread): Initialize nodebug_*_symbol_type. + + * source.c (line_info): Clear sal.pc for `info line' without + arguments. + +Fri Apr 7 17:43:01 1995 Stu Grossman (grossman@andros.cygnus.com) + + * monitor.c: make_xmodem_packet and print_xmodem_packet go away. + send_xmodem_packet shows up to do the obvious. Lots of fixes to + xmodem downloads including resetting of block number at start of + new transfers, fix for buffer overrun problem, addition of CRC + generation code. + * (monitor_open): loadtype_str and loadproto_str now default to + first entry in monitor_ops->loadtypes. + * (monitor_wait): Lengthen register dump buf, because of verbose + Winbond monitor. + * (monitor_fetch_register): Report unimplemented registers as 0. + * (monitor_read_memory): Only do 16 byte aligned transfers + because of formatting weirdness with the Winbond monitor. Also, + ignore non-hex, non-whitespace formatting between bytes (same + monitor). + * (monitor_load): Clean up logic. + * (monitor_load_srec): Re-do xmodem support. Move lots of it + into send_xmodem_packet. + * (getacknak): Get rid of polls and timeouts. Handle CRC + requests from receiver. + * (monitor_make_srec): Efficiency improvements. Don't call + sprintf to output two digit hex numbers. + * (crcinit, docrc): New, CRC-16 support routines. + * (send_xmodem_packet): New routine to generate either CRC-16 or + checksummed xmodem packets. + + * remote-est.c (est_loadtypes), rom68k-rom.c (rom68k_loadtypes): + Reduce tables down to only the load types supported by each + monitor. + + * w89k-rom.c (w89k_supply_register): Parses output of Winbond + register dumps. + * (w89k_loadtypes, w89k_loadprotos): Reduce to just srec/xmodem. + * (w89k_cmds): Add clear all breakpoints, memory fill, and dump + registers commands. + + * config/pa/tm-hppa.h: Define lots register offsets needed by + w89k-rom.c. + + +Thu Apr 6 17:00:46 1995 Michael Meissner + + * Makefile.in (X11_INCLUDES): Define as empty. + (X11_CFLAGS): Define as including $(X11_INCLUDES). + (X11_LIB_SWITCHES): Define as empty. + (X11_LIBS): Define as -lX11. + + +Wed Apr 5 19:57:38 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * mips-tdep.c (mips_print_register): Remove unused variable + our_type and call to init_type. Fixes memory leak. Reindent function. + + * mips-tdep.c (mips_print_register), findvar.c + (write_register_bytes): Make buffer char[] instead of unsigned + char[]. + +Mon Apr 3 19:28:14 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * top.c, utils.c, main.c, defs.h: Replace error_pre_print with two + variables: error_pre_print (for RETURN_ERROR) and quit_pre_print + (for RETURN_QUIT). Fixes a bug whereby typing ^C (e.g. in "maint + print sym") could output extraneous stuff. + * objfiles.c: Don't declare error_pre_print; defs.h does it. + +Mon Apr 3 13:48:28 1995 Stu Grossman (grossman@andros.cygnus.com) + + * monitor.h: Add MO_GETMEM_NEEDS_RANGE flag. + * monitor.c (monitor_read_memory): Use previously mentioned flag + to send proper format memory examine commands to the w89k monitor. + Also, try to handle bizarre format of memory dump... + + * op50-rom.c w89k-rom.c: Update to new monitor.[ch] conventions. + +Sat Apr 1 03:22:20 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c (process_one_symbol) [SOFUN_ADDRESS_MAYBE_MISSING]: + Handle relocated symbol address. + * partial-stab.h, case N_SO, SOFUN_ADDRESS_MAYBE_MISSING: + Do not relocate a zero address. + +Thu Mar 30 19:46:36 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/a29k/tm-a29k.h: Nuke obsolete define CONTROL_END_ADDR; it + is nowhere used. + + * stabsread.c (read_range_type): Remove FIXME comment about + type-id (I presume this meant a number followed by = followed by a + type) versus type number; Per fixed it. + +Wed Mar 29 09:56:04 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * configure.in: sparc-*-sunos5* is same as sparc-*-solaris2*. + +Wed Mar 29 18:30:03 1995 Stan Shebs + + * remote-e7000.c (why_stop): Add new kinds of strings to expect + from the emulator. + (e7000_wait): Add interpretations for more stop reasons, + including warnings for write protect and cycle address errors. + +Wed Mar 29 17:09:29 1995 Stu Grossman (grossman@cygnus.com) + + * monitor.c monitor.h remote-est.c rom68k-rom.c: Add start of + support for interrupting target. + * monitor.c (monitor_open): Send stop command before doing + anything else. + * (monitor_load_srec): Fix record size calculation to prevent end + of segment from getting trashed. + * rom68k-rom.c: Update to latest version of struct monitor_ops. + * config/sparc/tm-sparc.h (FIX_CALL_DUMMY): Fix byte-order + problems. Makes DOS hosted function calling work. + * sparclite/crt0.s: Define _start to make COFF happy. + +Wed Mar 29 09:11:51 1995 Michael Meissner + + * defs.h (atof): Don't provide an external declaration if atof is + a macro. + +Wed Mar 29 00:01:07 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * rs6000-tdep.c (skip_prologue): Skip saving of LR and CR in + the stack frame, fix typos in `st rx,NUM(r1)' and `stu r1,NUM(r1)' + tests. + +Tue Mar 28 17:04:04 1995 Per Bothner + + * gdbtypes.c (create_range_type): If indextype has TYPE_FLAG_STUB + set, set TYPE_FLAG_TARGET_STUB. + (check_stub_type): Recalculate TYPE_LENGTH for range type. + * stabsread.c (read_range_type): If index type number is followed + by '=', back up, call read_type. and assume we have a true range. + * gdbtypes.h (TYPE_FLAG_TARGET_STUB): Update comment. + +Mon Mar 27 22:51:54 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * alpha-nat.c, irix4-nat.c, irix5-nat.c, mipsv4-nat.c, + sparc-tdep.c (supply_gregset, supply_fpregset): Fill inaccessible + registers with zero to handle recent read_register_bytes change. + * irix4-nat.c, irix5-nat.c, mipsv4-nat.c (supply_gregset, + fill_gregset): Fix handling of CAUSE_REGNUM. + * mips-nat.c (store_inferior_registers): Handle unwritable + registers when storing a single register. + * config/mips/tm-irix3.h (CAUSE_REGNUM, BADVADDR_REGNUM): + Fix definitions. + + * mdebugread.c (parse_symbol, psymtab_to_symtab_1): Clear + allocated mips_extra_func_info, if the debug info is corrupt, + the PDR to fill it in might be missing. + +Mon Mar 27 14:43:00 1995 Kung Hsu + + * vx-share/regPacket.h: a new file interfacing with vxworks. + +Sun Mar 26 13:22:47 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (bpstat_do_actions): Once we've executed the + commands, set bs->commands to NULL. + +Sat Mar 25 01:16:10 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * buildsym.c (patch_subfile_name): Update last_source_file + with the real source file name. + * dbxread.c (end_psymtab): Handle static functions in the + SOFUN_ADDRESS_MAYBE_MISSING case by passing pst->filename + to lookup_minimal_symbol. + (process_one_symbol): Ignore extra outermost context from + SunPRO cc and acc. + * stabsread.c (define_symbol): Do not complain for SunPRO + static variable encoding if STATIC_TRANSFORM_NAME is defined. + * sparc-tdep.c, config/sparc/tm-sun4sol2.h + (sunpro_static_transform_name): Renamed from + solaris_static_transform_name. + * config/sparc/tm-sun4os4.h (STATIC_TRANSFORM_NAME): + Define to sunpro_static_transform_name for acc 3.0 compiled + executables. + * procfs.c, config/alpha/nm-osf2.h (PROCFS_DONT_TRACE_FAULTS): + Renamed from PROCFS_DONT_TRACE_IFAULT, don't trace any faults + if defined. + * procfs.c (info_proc_siginfo): Cast sip->si_addr to + `unsigned long' and use `lx' format for printing it. + +Fri Mar 24 15:45:42 1995 Stu Grossman (grossman@cygnus.com) + + * configure.in: Move test for m68*-est-* before m68*-*-coff*. + * findvar.c: Move default def of CANNOT_STORE_REGISTER closer to + the beginning of the code. + * (write_register_gen): New routine. Analogous to + read_register_gen. + * (write_register_bytes): Another rewrite! Make it smarter about + not updating regs with the same value. + * monitor.c (printf_monitor readchar): Use stderr instead of + stdout to output debug info. Also cleanup readchar a little. + * (expect): Make sure that excessive responses are null + terminated. + * (monitor_open): Check for magic number in monitor_ops struct. + Allow multiple commands as init strings. Also, clear all + breakpoints. + * (monitor_resume monitor_wait): Send a command to dump all the + regs for those targets which don't do so when waking up after a + continue command. + * (monitor_wait): Handle excessive response output better. + * (monitor_write_memory): Use block fill, word, and long word + commands (if they exist) to write memory more efficiently. + * General cleanups to use flag bits instead of individual flag + words in monitor_ops struct. + * (monitor_command): Return output from command. + * (monitor_load_srec): Allocate buffer only once. Use alloca. + Wait for load response string instead of using a timeout to start + sending S-records. Fix bug where value of srec_frame shrinks. If + hashmark is set, print `-' for retransmissions. General cleanups. + * (monitor_make_srec): Get rid of S-record default type kludge. + * monitor.h: Use seperate struct for memory and register + read/write commands. Memory commands can come in byte, word, + long, and longlong forms. + * (monitor_ops): Change lots of fields. Generalize some stuff. + Put all flags into flags word. Allow init to be a list of commands. + Add command for clearing all breakpoints, block fill, dumping all + registers. + * remote-est.c: Rewrite to use new monitor conventions. + * config/m68k/est.mt (TDEPFILES): Add monitor.o. + * config/m68k/tm-est.h: Set NUM_REGS to 18. + * testsuite/gdb.base/break.exp: Lots of cleanups. Use gdb_test + more thoroughly. + +Thu Mar 23 23:20:00 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (som_solib_add): Handle case where a shared library + referenced by a core file has sections without the SEC_ALLOC bit + set (eg stabs sections). + +Thu Mar 23 15:07:08 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * breakpoint.c (bpstat_do_actions): For each element in the bpstat + chain, do all the commands regardless of whether they run the + inferior. + +Wed Mar 22 19:17:06 1995 Doug Evans + + * mem-break.c (LITTLE_BREAKPOINT, BIG_BREAKPOINT): Define as + BREAKPOINT if mono-endian. + (break_insn): Deleted. + (big_break_insn, little_break_insn): Define. + (memory_insert_breakpoint): Handle bi-endian cpus. + (BREAKPOINT_LEN): Define. + (memory_remove_breakpoint): Use it. + (memory_breakpoint_size): Likewise. + +Tue Mar 21 17:03:17 1995 Kung Hsu + + * sparc-stub.c: add nop after 'bg good_wim'. + * sparcl-stub.c: ditto. + +Tue Mar 21 13:34:12 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (handle_command): Don't print TARGET_SIGNAL_0, + TARGET_SIGNAL_UNKNOWN, or TARGET_SIGNAL_DEFAULT. + +Mon Mar 20 10:09:59 1995 Jeff Law (law@snake.cs.utah.edu) + + * hppab-nat.c (store_inferior_registers): Sync with HPUX version. + +Mon Mar 20 07:34:48 1995 Stu Grossman (grossman@cygnus.com) + + * hppah-nat.c (store_inferior_registers): Move check for + CANNOT_STORE_REGISTER to a better place. Fixes ptrace I/O errors + found by test suite during function calls, which attempts to write + unwritable registers. + +Sat Mar 18 02:02:24 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_symbol): If finishing a function without + known parameter type info, set that from parameter symbols. + Remove commented-out add_param_to_type support. + +Thu Mar 16 16:38:03 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (process_linenos): Make sure filename we pass to + start_subfile will cause deduce_language_from_filename to return + the correct thing. Reindent function to GNU standards. + +Thu Mar 16 15:54:00 1995 J.T. Conklin + + * nlm/gdbserve.c (handle_exception): #if out call to StopBell, + as it is not available on NetWare 3 or PIN. + * nlm/ppc.c (StopBell): Removed. + +Thu Mar 16 12:14:41 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (read_xcoff_symtab): When creating a dummy parameter + inferred from the traceback tags, give its type the name + "". + + * stabsread.c (rs6000_builtin_type): Recognize types -31 to -34. + +Wed Mar 15 15:09:29 1995 Stu Grossman (grossman@cygnus.com) + + * findvar.c (read_register_bytes write_register_bytes): Make + these routines much smarter about updating registers from the + target, only doing so when absolutely necessary. This really + speeds up register modification on some remote targets. + + * monitor.c: More cleanups. Get rid of monitor_load_ascii_srec. + BFD makes this unnecessary. Lots of debugging speedups. + * (expect): NULL terminate return string. + * (monitor_open monitor_supply_register parse_register_dump + monitor_wait monitor_fetch_register): Switch to using GNU regexp + library to parse multi-register displays. + * (monitor_read_memory): Read multiple bytes (up to 16) at once. + * (monitor_create_inferior): Call clear_proceed_status to make run + command notice first breakpoint. + * (monitor_load): Clean up. Reset inferior_pid, set pc to start + address and reset symbol table stuff to make loads put things into + a fresh state. + * (monitor_load_srec): Lower sleep time to 1 second. + + * monitor.h (struct monitor_ops): Add register_pattern and + supply_register to monitor_ops. + + * rom68k-rom.c: Add new support for handling register dumps. + * config/m68k/tm-m68k.h: Define D0_REGNUM and A0_REGNUM for register + dump handling. + +Wed Mar 15 15:18:27 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * utils.c, defs.h (putchar_unfiltered, fputc_unfiltered): Make + argument be an int, not a char. Using a prototype followed by an + old-style function definition in a case where an argument is + widened is a GCC-ism not supported by the native AIX compiler. + +Wed Mar 15 12:22:35 1995 J.T. Conklin + + * nlmstub.def: Removed, this was moved to nlm/gdbserve.def + long ago. + + * configure.in (alpha-*-netware*): Removed configuration. + * config/alpha/{alpha-nw.mt, gdbserve.mt, tm-alphanw.h}: Removed. + * nlm/{README-ALPHA-NETWARE, aio.h, alpha-io.S, alpha-regdef.h, + alpha.c, alpha.h, altdebug.h}: Removed. + + * nlm/gdbserve.c (main): Add support for processing BOARD= + argument, deprecate NODE=. + +Wed Mar 15 10:58:26 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * c-exp.y (yylex): Make an empty character constant an error. + +Tue Mar 14 15:00:54 1995 Per Bothner + + * valops.c (value_arg_coerce): Do possible value_coerce_array + before determining type argument to value_cast. + +Tue Mar 14 10:41:41 1995 Kung Hsu + + * remote-es.c: Replace ignore with 0. + +Tue Mar 14 05:52:36 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valops.c (value_repeat), eval.c (evaluate_subexp_standard): + If VALUE_REPEATED is already set, just error out. + + * valops.c (value_cast, value_slice), parse.c (follow_types): Add + FIXME-type-allocation comments. + + * gdbtypes.h (struct type): Fix comment about what units the + TYPE_LENGTH is in. + +Mon Mar 13 18:27:25 1995 Stan Shebs + + * ch-valprint.c (annotate.h): Include. + * eval.c (evaluate_subexp_standard): Remove unused variable. + (calc_f77_array_dims): Add parens to expression. + * f-exp.y (yylex): Add parens to expression, remove unused label. + * f-lang.h (calc_f77_array_dims): Declare. + * f-valprint.c (f_val_print): Remove unused variables. + +Mon Mar 13 15:25:47 1995 Jim Kingdon + + * alpha-tdep.c (find_proc_desc): If pdr.framereg field is -1, don't + use the PDR, just examine prologues instead. + +Fri Mar 10 16:13:18 1995 Kung Hsu + + * config/arc/tm-arc.h: Change arc register names. + +Fri Mar 10 02:49:40 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + Fix problems with infinite recursion when printing a class + that contains a static instance of the class. + * cp-valprint.c (dont_print_vb_obstack): Renamed from + dont_print_obstack, made static. + (dont_print_statmem_obstack): New obstack, controls printing + of static member classes. + (_initialize_cp_valprint): Initialize it. + (cp_print_static_field): New function, handles printing of + static members. + (cp_print_value_fields): New parameter dont_print_statmem to + handle recursive printing of static member classes, use + cp_print_static_field to handle printing of static members. + * c-valprint.c (cp_print_value_fields): Update prototype and + call to include additional dont_print_statmem parameter. + * c-valprint.c, f-valprint.c (dont_print_obstack): Remove unused + extern declaration. + + * alpha-tdep.c, findvar.c, infptrace.c: Include . + + * config/alpha/tm-alpha.h (FRAME_FIND_SAVED_REGS): Call + alpha_find_saved_regs if fi->saved_regs is still NULL. + + * elfread.c (elf_symtab_read): Ensure that the filename field + of a minsym is nonempty. Ignore solib trampoline symbols from + the main symbol table, they might have a bogus value. + + * procfs.c (set_proc_siginfo), config/alpha/alpha-osf2.mh: + Fix typos in comments. + +Thu Mar 9 17:19:47 1995 Jim Kingdon + + * mdebugread.c (parse_symbol, psymtab_to_symtab_1): Initialize + pdr.framereg field of MIPS_EFI_SYMBOL_NAME symbol to -1. That way + we know whether the PDR ever got set. + * mips-tdep.c (find_proc_desc): If pdr.framereg field is -1, don't + use the PDR, just examine prologues instead. + +Wed Mar 8 23:35:10 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (som_solib_section_offsets): Get offset of text + section right. + +Wed Mar 8 16:12:21 1995 Stu Grossman (grossman@cygnus.com) + + + * source.c (forward_search_command reverse_search_command): Set + convenience variable $_ to be the line # of the match. + * symtab.c (decode_line_1): Allow convenience variables to be + used in line specs (for breakpoints and such). + +Wed Mar 8 12:51:00 1995 Stan Shebs + + * Makefile.in (VERSION): Bump to 4.14.1. + * NEWS, README: Update for 4.14. + * i386v-nat.c (i386_insert_aligned_watchpoint): Fix declaration. + (i386_insert_nonaligned_watchpoint): Call aligned instead of + generic watchpoint insertion. + +Tue Mar 7 19:26:10 1995 Per Bothner + + * valops.c (value_slice): Do COERCE_VARYING_ARRAY. + +Tue Mar 7 00:23:47 1995 Stu Grossman (grossman@cygnus.com) + + * monitor.c, array-rom.c, monitor.h, rom68k-rom.c: Move target_ops + into monitor.c. + * monitor.c (monitor_create_inferior): Allow run command to start + program. + + * monitor.c (monitor_load): Set PC to start address when done + loading. + + * array-rom.c, monitor.h, rom68k-rom.c: Clean up target_ops. + Remove ref to monitor_create_inferior. + + * monitor.c: More general cleanups. Add prototypes, remove + unused routines. Fix bug with wrong number of args to error(). + + * main.c (main): Don't start up GUI when running under gdb mode + in emacs. + + * Makefile.in: Add rules for monitor.o and rom68k-rom.o to make + Sun make (with VPATH) work... + + * monitor.c, monitor.h, rom68k-rom.c: Serious cleanup to make IDP + (rom68k) target work right. + * array-rom.c, op50-rom.c, w89k-rom.c: Partial updates to new + monitor.c interface. More work needs to be done here. + * config/m68k/tm-monitor.h: Change DECR_PC_AFTER_BREAK to 0 to + match the IDP monitor. Also, set NUM_REGS to 18 cuz there's no + floating-point for this card. + + * serial.h, ser-go32.c, ser-mac.c, ser-tcp.c, ser-unix.c: Add + SERIAL_SETSTOPBITS to set the number of stopbits (needed for IDP + board?!?!?). + + * defs.h, utils.c, remote-hms.c, remote-pa.c, remote.c: Fix defs + and usage of fputc_unfiltered and putchar_unfiltered. Eliminate + putc_unfiltered (it's superfluous). + + * command.h, command.c, top.c: Add var_enum command type. It's + like var_string but allows only only one of the specified strings. + +Mon Mar 6 15:03:59 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valops.c (value_cast): Don't use backslash newline--pre-ANSI + compilers (such as SunOS4 /bin/cc) don't generally support it + except in some contexts. + +Fri Mar 3 17:42:48 1995 Per Bothner + + * valops.c (value_cast): Check for cast to array type *before* + we coerce array to pointer (in case arg2 is already array). + + * valops.c (call_function_by_hand): Set using_gcc to 2 if using + gcc2. Needed for REG_STRUCT_HAS_ADDR to work on sparc. + Also check REG_STRUCT_HAS_ADDR for union, array and string types. + + * valops.c (call_function_by_hand): Re-arrange code for pushing + paramaters on the stack so we can do better STACK_ALIGN. + + * valops.c (call_function_by_hand): Call error if the number + of arguments is fewer than parameter types in function type. + +Fri Mar 3 17:13:05 1995 Doug Evans + + * sparc-tdep.c (sparc_extract_struct_value_address): Move + sparc64 support to here. + (sparc64_extract_struct_value_address): Deleted. + (dump_ccreg): Add a prototype so long long arg -> int. + * sparc/tm-sp64.h (USE_STRUCT_CONVENTION): Define. + (EXTRACT_STRUCT_VALUE_ADDRESS): Delete. + +Fri Mar 3 15:12:12 1995 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (hpread_record_lines): New argument "offset". All + callers changed. Use it to handle dynamic address relocation. + (hpread_build_psymtabs): Adjust texthigh as we read each function + debug symbol. Fix computation of texthigh. + (hpread_read_subrange_type): Work around macro bugs in HP's + compilers. + (hpread_process_one_debug_symbol): Correctly map source lines. + + * somread.c (check_strange_names): Filter names emitted by the HP + compiler when generating PIC code. + + * valops.c (value_struct_elt_for_reference): Work around macro + bugs in HP's compilers. + * c-exp.y (block): Likewise. + +Fri Mar 3 12:27:28 1995 Jim Kingdon + + * rs6000-tdep.c (push_dummy_frame): Fix order of arguments to + store_address. + + * utils.c [_AIX]: Include stddef.h instead of #defining size_t. + +Fri Mar 3 12:33:24 1995 Michael Meissner + + * rs6000-tdep.c (skip_prologue): Skip multiple stores of the saved + registers that GCC emits on the PowerPC by default in addition to + the store multiple instruction used on the Power series. + +Fri Mar 3 00:54:58 1995 Doug Evans + + * sparc-tdep.c (decode_asi): New function. + (sparc_print_register_hook): Pretty print more v9 registers. + * sparc/tm-sp64.h (REGISTER_NAMES): Fix some typos. + +Thu Mar 2 22:20:22 1995 Doug Evans + + * dwarfread.c (struct dieinfo): Use CORE_ADDR for at_{low,high}_pc. + (target_to_host): Change result type to CORE_ADDR. + +Thu Mar 2 15:13:04 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * rs6000-tdep.c: Fix byte-swapping sins. + +Thu Mar 2 16:48:45 1995 Michael Meissner + + * rs6000-tdep.c (branch_dest): Minor code cleanup, don't share + code between branch unconditional and branch conditional cases. + +Wed Mar 1 09:41:26 1995 Doug Evans + + Various changes for sparc64. + * sparc-tdep.c (NUM_SPARC_FPREGS): Define. + (SPARC_INTREG_SIZE): Define. + (*): Use SPARC_INTREG_SIZE instead of REGISTER_RAW_SIZE (intreg) + where appropriate. + (enum branch_type): New value `done_retry'. + (isbranch): Renamed from isannulled. All callers changed. + Support new sparc64 branch insns. + (single_step): Handle done_retry. + (sparc_extract_struct_value_address): Don't assume 4 byte regs. + (get_saved_register): Likewise. + (sparc_push_dummy_frame): Likewise. + (sparc_frame_find_saved_regs): Likewise. + (sparc_pop_frame): Likewise. Don't refer to FPS_REGNUM, CPS_REGNUM, + or PS_REGNUM if not sparc64. sparc64 has 64 fp regs. + (sparc64_extract_struct_value_address): New function. + (dump_ccreg, sparc_print_register_hook): Likewise. + * sp64-tdep.c: Deleted. + * sparc/tm-sp64.h (GDB_TARGET_IS_SPARC64): Define. + (NUM_REGS): Reduce by 2, cle/tle are in the pstate reg. + (CC_HAS_LONG_LONG): Define. + (REGISTER_NAMES): Delete cle/tle and reorganize. + (PS_REGNUM, FPS_REGNUM, CPS_REGNUM): Delete, they're ifdef'd out of + sparc-tdep.c now. + (REGISTER_BYTES): Update. + (REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Delete. + (EXTRACT_RETURN_VALUE): Delete. Use definition in tm-sparc.h. + (NO_SINGLE_STEP): Likewise. + * sparc/tm-sparc.h (EXTRACT_VALUE_RETURN): Don't assume 4 byte regs. + * sparc/sp64.mt: Move simulator support ... + * sparc/sp64sim.mt: ... to here. + +Wed Mar 1 13:14:42 1995 Kung Hsu + + * remote-vx960.c: new file for target specific register packaging. + * remote-vx68.c: ditto. + * config/i960/vxworks960.mt: add remote-vx960.o. + * config/m68k/vxworks68.mt: add remote-vx68.o. + +Wed Mar 1 13:42:49 1995 Michael Meissner + + * remote.c (remote_wait): Make calls to strtol be type correct by + passing the address of a char * pointer instead of an unsigned + char *. + + * rs6000-tdep.c (push_dummy_frame): Cast sp to char * when calling + write_memory to make things type correct. + +Wed Mar 1 12:17:31 1995 Michael Meissner + + * ch-exp.y, c-exp.y, f-exp.y, m2-exp.y (yy defines): Support the + standard Linux yacc by adding more names to be redefined with a + prefix. + +Tue Feb 28 22:55:47 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * hppa-tdep.c (pa_print_registers), monitor.c: Use + extract_unsigned_integer and friends, not SWAP_TARGET_AND_HOST. + * defs.h, findvar.c: Move SWAP_TARGET_AND_HOST back to findvar.c. + Rename it to SWAP_FLOATING to make it clear it is no longer for + integers. + +Tue Feb 28 14:38:39 1995 Kung Hsu + + * defs.h (SWAP_TARGET_AND_HOST): check endianess at runtime not + compile time. + * arc-tdep.c (_initialize_arc_tdep): set tm_print_insn according to + processor. + + * vx-share/ptrace.h: merge in WRS new ptrace requests. + + * defs.h: fix a syntax error. + + * a29k-tdep.c (get_longjmp_target): add this function, from WRS. + * remote-vx.c: move read_register and write_register out to + target specific files. + * remote-vx29k.c (get_fp_contnets): add this function, from WRS. + + * defs.h: define SWAP_TARGET_AND_HOST macro. + * findvar.c, monitor.c, hppa-tdep.c: remove definition of + SWAP_TARGET_AND_HOST. + +Tue Feb 28 08:31:40 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * alpha-tdep.c (find_proc_desc): Only attempt to set + PROC_LOCALOFF (found_heuristic) if found_heuristic is non-NULL. + +Mon Feb 27 11:56:32 1995 Stan Shebs + + * monitor.c: General gcc -Wall lint cleanup and reformat. + (monitor_command): If no args, send an empty command. + +Thu Feb 23 21:07:25 1995 Stu Grossman (grossman@cygnus.com) + + * monitor.c (monitor_load_ascii_srec): Add a one second sleep + after send LOAD_CMD to prevent loss of first S-record. + +Tue Feb 21 20:48:42 1995 Per Bothner + + * valops.c (call_function_by_hand): Set using_gcc to 2 if gcc-2. + Call error if too few arguments. + If REG_STRUCT_HAS_ADDR (structs passed by invisible reference), + copy and convert to reference *before* we calculate alignment. + Also, make sure structs allocated for return values and invisible + reference don't violate STACK_ALIGN. + +Tue Feb 21 23:29:59 1995 Per Bothner + + * ch-exp.y (expression_conversion): Recognize 'ARRAY () TYPE (EXPR)' + (same as C's '(TYPE[])EXPR') + +Tue Feb 21 11:47:26 1995 Stan Shebs + + * top.c (print_gdb_version): Update the year. + +Sun Feb 19 14:31:57 1995 Jim Kingdon + + * Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): Look for newlib in + `..' not in `../..'. + +Sun Feb 19 11:05:28 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * procfs.c (unconditionally_kill_inferior): Don't issue a PIOCKILL + in addition to a PIOCSSIG to kill the inferior. + +Thu Feb 16 15:06:12 1995 Per Bothner + + * parse.c (follow_types): Given (TYPE[]) (i.e. with no length), + create a 0-length array type, and set BOUND_CANNOT_BE_DETERMINED. + * valops.c (value_cast): If a cast like (TYPE[])VALUE (i.e. array + of unknown length) use sizeof(VALUE)/sizeof(TYPE) as the length. + * c-typeprint.c (c_type_print_varspec_suffix): If array length + is 0, print it, but not if upper_bound is BOUND_CANNOT_BE_DETERMINED. + +Thu Feb 16 16:06:50 1995 Michael Meissner + + * dcache.c (insque, remque): Rewrite Linux support. + +Wed Feb 15 12:33:20 1995 Michael Meissner + + * config/powerpc/tm-ppc-eabi.h (TEXT_SEGMENT_BASE): Define as 1. + + * dcache.c (insque, remque): If compiling in standard C on Linux, + protect insque and remque with macros to cast the pointer + arguments to the proper type. + +Tue Feb 14 17:16:41 1995 Stu Grossman (grossman@cygnus.com) + + * annotate.c, breakpoint.c, defs.h, top.c: Replace + enable/disable_breakpoint_hook with modify_breakpoint_hook. + +Tue Feb 14 16:58:07 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * expression.h: Move declaration of evaluate_subexp_with_coercion + from here... + * value.h: ...to here. + * expression.h: Don't include value.h + +Tue Feb 14 11:46:07 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * expression.h: Move include of value.h until after declaration of + enum exp_opcode. + +Sun Feb 12 13:47:30 1995 Stan Shebs + + * remote-e7000.c: Comprehensive cleanup; removal of dead code, + simplify code, declare things, format to standards. + (inferior.h, value.h, command.h, remote-utils.h): Include. + (e7000_login): Rename to e7000_login_command. + (e7000_ftp): Rename to e7000_ftp_command. + (e7000_drain): Rename to e7000_drain_command. + + * irix5-nat.c (string.h): Include near beginning of file. + +Sun Feb 12 12:36:38 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * valops.c (value_arg_coerce): Use VALUE_TYPE not SYMBOL_TYPE on + arg, it is a value not a symbol. + + gcc -Wall lint: + * eval.c: Move declaration of evaluate_subexp_with_coercion from here.. + * expression.h: ..to here. + * expression.h: Include value.h. + * ch-lang.c (evaluate_subexp_chill): Add default case in switch. + +Sun Feb 12 11:03:47 1995 Per Bothner + + * language.h (struct language_defn): New field evaluate_exp. + * c-lang.c (c_language_defn, cplus_language_defn, asm_langauge_defn), + f-lang.c (f_language_defn), language.c (unknown_language_defn, + auto_language_defn, local_language_defn), m2-lang.c (m2_language_defn): + Set evaluate_exp to evaluate_subexp_standard. + * ch-lang.c (evaluate_subexp_chill): New function. Chill-specific + support for MULTI_SUBSCRIPT. + (chill_language_defn): Set evaluate_exp to evaluate_subexp_chill. + * eval.c (enum noside): Move from here .... + * expression.h (enum noside): ... to here. + (evaluate_subexp_standard): New prototype. + * eval.c (evaluate_subexp): Renamed to evaluate_subexp_standard. + Removed lo-longer-needed test for chill_varying_type. + (evaluate_subexp): New. Calls exp->language_defn->evaluate_exp. + + * ch-exp.y (maybe_expression_list): New non-terminal. + (primitive_value): Allow empty parameter list. + +Sun Feb 12 10:02:16 1995 Per Bothner + + * buildsym.c (finish_block): If finishing a function without known + parameter type info, set that from parameter symbols. + * c-typeprint.c (c_type_print_varspec_suffix): For TYPE_CODE_FUNC, + print parameter types, if available. + * ch-typeprint.c (chill_type_print_base): Likewise. + + * gdbtypes.h (struct type): Remove function type field. + (TYPE_FUNCTION_TYPE): Remove macro. We can't as simply re-use + function types now that we're also storing parameter types. + And the payoff is much less. + * gdbtypes.c (make_function_type): Don't use/set TYPE_FUNCTION_TYPE. + (recursive_dump_type): Don't print TYPE_FUNCTION_TYPE. + * dwarfread.c (read_subroutine_type): Don't set TYPE_FUNCTION_TYPE. + + * valops.c (value_arg_coerce): Now takes param_type argument. + (call_function_by_hand): Convert arguments with value_arg_coerce + early, and overwrite original args with converted args. + No longer need multiple calls to value_arg_coerce. + (value_arg_push): Removed. + * hppa-tdep.c (hppa_push_arguments): No longer call value_arg_coerce. + * mips-tdep.c (mips_push_arguments): Likewise. + * alpha-tdep.c (alpha_push_arguments): Likewise. + * rs6000-tdep.c (push_arguments, ran_out_of_registers_for_arguments): + Likewise. + * value.h (value_arg_coerce): Remove declaration. (It's now static.) + + * valops.c (value_cast): Do COERCE_VARYING_ARRAY after COERCE_REF. + + * symtab.c (add_param_to_type): Remove (commented-out) function, + since that functionality has been re-written. + * coffread.c: Remove commented-out add_param_to_type support. + * mdebugread.c (parse_symbol): Likewise. + * stabsread.c (define_symbol): Likewise. + +Sun Feb 12 09:03:47 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * buildsym.c (start_subfile): Set language for f2c like for cfront. + +Thu Feb 9 20:20:11 1995 Rob Savoye + + * op50n-rom.c: Add the control registers. + +Thu Feb 9 15:46:39 1995 Stan Shebs + + * Makefile.in (CLIBS): Add $(LIBIBERTY) before, in addition to + after, any host/target/native libraries. + * dcache.c (insque, remque): Remove declarations. + * gdbtypes.h (type_code): Remove trailing comma. + + From Peter Schauer: + * xcoffread.c (read_xcoff_symtab) [C_HIDEXT]: Move #ifdef + STATIC_NODEBUG_VARS inside case. + +Thu Feb 9 07:43:41 1995 Jim Kingdon + + * config/sparc/tm-sun4sol2.h: Define STATIC_TRANSFORM_NAME. + * partial-stab.h: Call it. + * stabsread.c (define_symbol) [STATIC_TRANSFORM_NAME]: Call + STATIC_TRANSFORM_NAME to get the name and use minimal symbols to + get the address. + * sparc-tdep.c (solaris_static_transform_name): New function. + +Thu Feb 9 12:09:09 1995 Jeff Law (law@snake.cs.utah.edu) + + * somread.c (som_symtab_read): Handle dynamic relocation for both + text and data symbols. + (som_symfile_offsets): If objfile is a shared library, then get + text and data offsets from the shared library structures. + * somsolib.c (som_solib_add): Copy the bfd pointer from the + objfile rather than reopening the file again. + (som_solib_section_offsets): New function. + * somsolib.h (som_solib_section_offsets): Declare. + +Wed Feb 8 20:32:18 1995 Jim Kingdon + + * config/sparc/tm-sun4sol2.h, dbxread.c: Rename + N_SO_ADDRESS_MAYBE_MISSING to SOFUN_ADDRESS_MAYBE_MISSING. + * symtab.h (minimal_symbol) [SOFUN_ADDRESS_MAYBE_MISSING]: Add + filename field. + * elfread.c (record_minimal_symbol_and_info), + minsyms.c, symtab.h (prim_record_minimal_symbol_and_info): Return + newly created symbol. + * elfread.c (elf_symtab_read) [SOFUN_ADDRESS_MAYBE_MISSING]: + Set filename field of minimal symbol. + * symmisc.c (dump_msymbols) [SOFUN_ADDRESS_MAYBE_MISSING]: + Print filename field. + * minsyms.c, symtab.h (lookup_minimal_symbol): New arg sfile. + * symm-tdep.c, somsolib.c, hppa-tdep.c, c-exp.y, f-exp.y, + m2-exp.y, nindy-tdep.c, m3-nat.c, irix5-nat.c, hpread.c, + os9kread.c, breakpoint.c, alpha-tdep.c, valops.c, symtab.c, + printcmd.c, dbxread.c: Change callers to pass NULL for sfile. + * dbxread.c (process_one_symbol) [SOFUN_ADDRESS_MAYBE_MISSING]: + Find address of function from minimal symbols. + * partial-stab.h, case 'f', 'F': Call find_stab_function_addr + instead of getting pst->textlow from the stab. + * minsyms.c (find_stab_function_addr): New function. + +Wed Feb 8 19:19:56 1995 Rob Savoye + + * monitor.c: Fix so all the output shows up in the GUI command + window. + +Mon Feb 6 18:50:59 1995 Stan Shebs + + * i386-tdep.c (_initialize_i386_tdep): Put void decl on separate + line, so init.c generation works correctly. + * arc-tdep.c (_initialize_arc_tdep): Ditto. + +Mon Feb 6 14:44:36 1995 Rob Savoye + + * config/mips/idt.mt: Add support for the lsi33k target. + * config/sparc/sun4sol2.mh: Add support for ser-tcp. + * array-rom.c: Finish the rest of the support commands needed by + GDB. + * mips-tdep.c: Add LSI33k register names and processor type. + +Sat Feb 4 13:29:52 1995 Stan Shebs + + * config/m68k/est.mt (TDEPFILES): Remove m68k-pinsn.o. + +Fri Feb 3 11:19:20 1995 Stu Grossman (grossman@cygnus.com) + + * core.c (dis_asm_read_memory), defs.h, top.c: Get rid of + dis_asm_read_memory_hook. We can now call the disassemblers + directly and have no need for this hook anymore. + * defs.h, printcmd.c: Make print_insn be static. + + * ser-go32.c (dos_comisr): Make this 8 bit clean. + * (dos_open dos_close): Allow multiple opens to the same device. + Use a ref count to prevent unwanted deallocations. + * sparcl-tdep.c: Put #ifdefs around all socket stuff to make GO32 + happy. + * (sparclite_ops): Switch to download_stratum. + * target.h (enum strata): Move download_stratum before + process_stratum so that executable targets get pushed on top of + download targets. + +Thu Feb 2 19:02:45 1995 Rob Savoye + + * array-rom.c: Remove the non GDB remote protocol config stuff. + + * monitor.c: All reading/writing functions for memory and + registers work. + +Thu Feb 2 16:11:04 1995 Kung Hsu + + * config/arc/arc.mt: new target makefile for arc processor. + * config/arc/tm-arc.h: new target header for arc processor. + * config/arc/go32.mh: new go32 host makefile for arc processor. + * config/arc/xm-go32.h: new go32 host header for arc processor. + * arc-tdep.c: new target dependent codes for arc processor. + +Thu Feb 2 13:58:40 1995 Stan Shebs + + * Makefile.in (VERSION): Bump to 4.13.2. + +Thu Feb 2 07:27:56 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + Fix compiler warnings: + * remote-e7000.c (printf_e7000debug): Rename to puts_e7000debug + and have the caller do the sprintf. Saves us from varargs hell. + (normal): Define before use. + * remote-e7000.c: Reindent a few things. + +Wed Feb 1 21:16:42 1995 Per Bothner + + * f-typeprint.c (f_type_print_varspec_suffix): Print array index + ranges in reverse order. + * f-valprint.c (f77_create_arrayprint_offset_tbl): Fix calculation. + + * eval.c (evaluate_subscript): Don't call value_subscript, since + it adjusts for lower bound and enforces ranges. + + * expression.h (exp_code): Remove MULTI_F77_SUBSCRIPT, OP_F77_SUBSTR. + * eval.c, parse.c: Removed uses of removed opcodes. + * eval.c (evaluate_subexp): Clean up handling of + OP_UNDETERMINED_ARGLIST (no backtracking, more general). + + * f-valprint.c (f_val_print): Print TYPE_CODE_STRING using + LA_PRINT_STRING, and not val_print_string (which reads from inferior). + + * ch-lang.c (chill_is_varying_struct), ch-lang.h: Remve function + duplicate function made redundant by chill_varying_type. + + Re-write of f77 string and complex number support: + + * language.h (struct language_defn): New fields string_lower_bound + and string_char_type. + * c-lang.c (c_language_defn, cplus_language_defn, asm_language_defn), + language.c (unknown_language_defn, auto_language_defn, + local_language_defn), m2-lang.c (m2_language_defn), f-lang.c + (f_language_defn), ch-lang.c (chill_language_defn): Set new fields. + * gdbtypes.c (create_string_type): Use new string_char_type field. + * valops.c (value_string): Use new string_lower_bound field. + + * defs.h (TARGET_COMPLEX_BIT, TARGET_DOUBLE_COMPLEX_BIT): Removed. + * f-lang.c (f_create_fundamental_type, _initialize_f_language), + m2-lang.c (m2_create_fundamental_type), + gdbtypes.c (_initialize_gdbtypes): Set TYPE_TARGET_TYPE of complex + types. Set their TYPE_CODEs to TYPE_CODE_COMPLEX. + * mdebugread.c (mdebug_type_complex, mdebug_type_double_complex): + Removed. Use builtin_type_complex and builtin_type_double_complex. + + * gdbtypes.h (enum type_code): Removed TYPE_CODE_LITERAL_STRING + and TYPE_CODE_LITERAL_COMPLEX. + * c-typeprint.c, f-typeprint.c, f-valprint.c, eval.c: Removed uses of + TYPE_CODE_LITERAL_STRING and TYPE_CODE_LITERAL_COMPLEX. + * gdbtypes.c, gdbtypes.h (f77_create_literal_complex_type, + f77_create_literal_string_type): Removed. + * value.h (VALUE_LITERAL_DATA, VALUE_SUBSTRING_MEMADDR, + VALUE_SUBSTRING_MYADDR): Removed. + + * expression.h (enum exp_opcode): Rename OP_F77_LITERAL_COMPLEX to + OP_COMPLEX. + * parse.c: Update accordingly. + + * f-valprint.c (f77_print_cmplx): Removed. + (f_val_print case TYPE_CODE_COMPLEX): Re-write to use print_floating. + + * f-exp.y (STRING_LITERAL): Use OP_STRING instead of OP_ARRAY. + * eval.c (evaluate_subexp): For case OP_ARRAY, don't call + f77_value_literal_string. + * valops.c, value.h (f77_value_literal_string, f77_value_substring, + f77_assign_from_literal_string, f77_assign_from_literal_complex): + Removed. + (value_assign): No longer need to handle literal types. + * valops.c (f77_value_literal_complex), value.h: Re-written and + renamed to value_literal_complex. Last arg is now a (complex) type. + * valops.c (f77_cast_into_complex): Re-written and renamed to + cast_into_complex. + * eval.c (evaluate_subexp): Update accordingly. + + * ch-valprint.c (chill_val_print): On TYPE_CODE_STRING, don't + print address for non-'s'-formats. + * ch-typeprint.c, ch-valprint.c: Use chill_varying_type instead + of chill_is_varying_struct. + +Wed Feb 1 13:27:33 1995 Stan Shebs + + gcc -Wall lint. + * alpha-tdep.c (alpha_in_lenient_prologue): Comment out. + (after_prologue): Remove unused local b. + * procfs.c (thread.h): Include. + (pr_flag_table, pr_why_table, faults_table, siginfo_table): Use + nested braces in initializer. + * top.c (initialize_targets, initialize_utils): Declare. + (locate_arg, insert_args): Add parens around tested assignments. + * remote-utils.c (sr_scan_args): Remove decl of strtol. + * remote.c (thread.h): Include. + (remote_wait): Remove unused local p2. + * sparc-tdep.c (fill_gregset, fill_fpregset): Remove decls of + registers array. + + defs.h (stdlib.h): Include. + (exit, perror, atoi, qsort, memcpy, memcmp): Don't declare. + (fclose, atof, malloc, realloc, free, strchr, strrchr, strstr, + strtok, strerror): Don't specify parameter types in declaration. + +Wed Feb 1 12:23:57 1995 Per Bothner + + * ch-exp.y (value_string_element, string_primitive_value, + start_element, left_element, right_element, slice_size, + lower_element, upper_element, first_element): Removed. + (value_string_slice, value_array_slice): Replaced by ... + (slice): New non-terminal, with working slice support. + (primitive_value_lparen, rparen): New non-terminals. + (maybe_tuple_elements): New non-terminal, to allow empty tuples. + (idtokentab): Added "up". + + * value.h (COERCE_VARYING_ARRAY): New macro. + * valarith.c (value_subscript): Use it. + * valops.c (value_cast): Likewise. Also, do nothing if already + correct type, and allow converting from/to range to/from scalar. + + * valops.c, value.h (varying_to_slice, value_slice): New functions. + * eval.c (OP_ARRAY): Add cast for array element. + * expression.h (TERNOP_SLICE, TERNOP_SLICE_COUNT): New exp_opcodes. + * valops.c (chill_varying_type): Moved function frp, here ... + * gdbtypes.c (chill_varying_type), gdbtypes.h: ... to here. + * parse.c (length_of_subexp, prefixify_subexp): Add support + for TERNOP_SLICE, TERNOP_SLICE_COUNT. + * expprint.c (print_subexp, dump_expression): Likewise. + * eval.c (evaluate_subexp): Likewise. + + * eval.c (evaluate_subexp case MULTI_SUBSCRIPT): Don't call + value_x_binop on a Chill varying string. + +Tue Jan 31 13:51:53 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * config/m68k/monitor.mt, + config/pa/{hppabsd.mt,hppahpux.mt,hppaosf.mt,hppapro.mt}: Put + depfiles in TDEPFILES not REMOTE_O. + +Tue Jan 31 11:14:44 1995 Steve Chamberlain + + From nigel@algor.co.uk. + * ser-go32.c (dos_close): Don't crash if scb null. + (dos_sendbreak): New function. + (dos_ops): Point to dos_sendbreak. + (dos_info): Calculate COM number correctly. + +Tue Jan 31 09:40:11 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * xcoffread.c (process_xcoff_symbol): Use new variables + func_symbol_type and var_symbol_type as type of functions and + variables which don't have any stabs associated with them. + Reindent most of function. + (_initialize_xcoffread): Initialize *_symbol_type. + + * xcoffread.c (read_xcoff_symtab): Reindent most of function. + Put C_HIDEXT symbols in the minimal symbols, rather than ignoring + them (this part commented out as I didn't quite get it to work). + (cs_to_section, find_targ_sec): New functions, to support above code. + * xcoffread.c (RECORD_MINIMAL_SYMBOL): Only skip '.' if it is + actually present. + +Mon Jan 30 17:34:24 1995 Stu Grossman (grossman@cygnus.com) + * sparcl-tdep.c: Add `sparclite' target for doing serial and udp + downloads to SPARClite demo boards. + +Sun Jan 29 09:43:22 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote.c, remote-pa.c: Remove #if 0'd icache code. It has had + no hope of working as is for a long time (in particular, shebs' 27 + Jan 95 change confuses the issue further--target_read_memory and + xfer_core_file do *not* do the same thing in this context). + Revise comment. + +Sat Jan 28 13:40:46 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * elfread.c (elf_symtab_read): Do not test BSF_GLOBAL for + procedure linkage table symbols, it is no longer set due to the + Jan 6 BFD change in bfd/elfcode.h. + +Fri Jan 27 17:08:06 1995 Stan Shebs + + * top.c (use_windows): Clarify comments. + + * convex-tdep.c (xfer_core_file): Comment out. + * config/convex/tm-convex.h (XFER_CORE_FILE): Remove. + * remote.c, remote-pa.c (remote_fetch_word): Change xfer_core_file + references to target_read_memory. + * gdbcore.h (xfer_core_file, core_open, core_detach): Remove + declarations. + * corelow.c (core_open, core_detach): Make static. + + * arm-tdep.c: Make it compile. + (exec_file_command, xfer_core_file): Comment out. + (arm_print_insn): Remove, now in libopcodes. + (skip_prologue): Comment out most of body. + (arm_frame_find_saved_regs): Move here from tm-arm.h. + (_initialize_arm_tdep): Set tm_print_insn. + * config/arm/tm-arm.h: Remove old refs to first_object_file_end. + (XFER_CORE_FILE): Remove. + (FRAME_FIND_SAVED_REGS): Call arm_frame_find_saved_regs. + +Fri Jan 27 08:48:28 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (CHILL_LIB): Define as in testsuite/Makefile.in. + +Thu Jan 26 18:24:41 1995 Jim Kingdon + + * symtab.c (find_pc_line): When subtracting one to get a line + number, make sure not to end up with zero. + + * remote-vx.c: Revert all of Kung's changes of 16 Jan. The + problems with those changes were (a) the file didn't compile, (b) + they changed memset to bzero--memset is correct, (c) they took out + code to deal with boards lacking floating point, (d) who knows + what I didn't discover in a quick read. + +Thu Jan 26 17:32:54 1995 Stu Grossman (grossman@cygnus.com) + + * sparcl-tdep.c: Clean up formatting and indentation. + +Thu Jan 26 10:49:59 1995 Steve Chamberlain + + * remote-hms.c (hms_ops): Change ref of hr_load_image + to gr_load_image. + (dcache_flush, dcache_hit, dcache_value, dcache_fetch, + dcache_poke, dcache_init): Deleted. + (hms_open, hms_resume, hms_fetch_word, hms_store_word): + Use dcache routines provided by remote-util.h + +Thu Jan 26 12:08:31 1995 Michael Meissner + + * configure.in: Add support for powerpc-*-eabi. + + * powerpc/tm-ppc-eabi.h, powerpc/pcc-eabi.mt: New files for + PowerPC support. + +Wed Jan 25 18:13:14 1995 Per Bothner + + * language.h (struct language_defn): New field c_style_arrays. + * language.c (unknown_language_defn, auto_language_defn, + local_language_defn), c-lang.c (c_language_defn, cplus_language_defn, + asm_language_defn): Set c_style_arrays to true. + * m2-lang.c (m2_language_defn), ch-lang.c (chill_language_defn), + f-lang.c (f_language_defn): Set c_style_arrays to false. + * valops.c (value_string): If c_style_array is not set, + allocate string in gdb (not inferior) using allocate_value. + + * value.h (COERCE_ARRAY), valops.c (value_addr, value_arg_coerce): + Only call value_coerce_array if current_language->c_style_arrays. + * values.c: Add #include "language.h". (Needed for COERCE_ARRAY.) + + * valops.c (chill_varying_type): New predicate. + * valops.c (value_cast): Support assigning a fixed string or array + to a variable string/array structure. + + * valarith.c (value_subscripted_rvalue): Extra parameter lowerbound. + Check index>=lowerbound, and then add lowerbound to index here, + instead of in caller. Generalize to arbitrary lval_types. + (value_subscript): Use enhanced value_subscripted_rvalue if + c_style_arrays is false (and index is in range). + + +Wed Jan 25 18:13:14 1995 Per Bothner + + * eval.c (evaluate_subexp case OP_ARRAY): Fix calls to memset: + TYPE_LENGTH is length in bytes, not bits. + +Wed Jan 25 08:19:35 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (proceed): Flush stdout before resuming inferior. + * infcmd.c (step_1), annotate.c (annotate_starting): + Don't bother to flush here. + +Wed Jan 25 01:11:21 1995 Jeff Law (law@snake.cs.utah.edu) + + * hpread.c (hpread_process_one_debug_symbol): Fix lines garbled + by an ill-advised global search and replace. + +Mon Jan 23 13:11:46 1995 Per Bothner + + Add support for Chill bitstring literals (e.h. H'FF00'). + * ch-exp.y (match_bitstring_literal): Fix for proper endianness. + * expprint.c (print_subexp): Don't call error on OP_BITSTRING, + just print B''. + * gdbtypes.c (create_set_type): Fix bug in length calculation. + * valops.c, value.h (value_bitstring): New function. + * eval.c (evaluate_subexp): Implement support for OP_BITSTRING. + + * ch-typeprint.c (chill_type_print_base): For TYPE_CODE_FUNC, + check that return type is non-void, and print in proper Chill syntax. + +Mon Jan 23 12:20:34 1995 Rob Savoye + + * Makefile.in: Remove references to remote-mon.c. + * remote-mon.c: remove. Replaced by rom68k-rom.c. + * rom68k-rom.c: Support for Rom68k monitor. + +Mon Jan 23 10:50:57 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * Makefile.in (CHILL_FOR_TARGET): Update -L argument to point to + gcc/ch/runtime not chillrt, since that is where the chill runtime + lives now. + +Mon Jan 23 00:06:57 1995 Steve Chamberlain + + * remote-hms.c (hms_load): Delete. + (target_ops): Use hr_load_image. + + * remote-e7000.c, remote-z8k.c, remote-nindy.c (target_ops): + Define memory_insert/remove_breakpoint. + * xm-go32.h: Remove redundant SIGs. + +Thu Jan 19 20:26:58 1995 Steve Chamberlain + + * ser-go32.c: Rewritten by nigel@algor.co.uk. + +Fri Jan 20 15:23:55 1995 Per Bothner + + * expression.h (OP_LABELED): New operator, for Chill + labeled structre tuples. + * ch-exp.y (tuple_element, named_record_element, tuple_elements): + New non-terminals, to handle labeled structure tuples. + (tuple): Re-define using tuple_elements. + * eval.c (evaluate_labeled_field_init): New function, to handle + initialization of structure fields, possibly using OP_LABELED. + (evaluate_subexp): Use it. + * expprint.c (print_subexp case): For OP_ARRAY, use Chill syntax + for Chill. Handled OP_LABELED. + * parse.c (length_of_subexp, prefixify_subexp): Handle OP_LABELED. + + * eval.c (evaluate_subexp): Handle Chill Powerset tuples. + * valarith.c (value_bit_index): Just treat bitstring as represented + by an array of bytes. Alignment is handled by compiler. + +Wed Jan 18 19:00:29 1995 Stan Shebs + + * h8300-tdep.c (gdb_print_insn_h8300): Fix typo (&info -> info). + * sh-tdep.c (gdb_print_insn_sh): Ditto. + +Wed Jan 18 11:25:43 1995 Kung Hsu + + * remote-os9k.c (rombug_open): Fix a bug in exception handling + command. + * remote-os9k.c (rombug_write_inferior_memory): reset buffer after + write. + +Tue Jan 17 09:48:38 1995 Jim Kingdon + + * parse.c (_initialize_parse): Improve wording of names of + msym_*_symbol_type. + +Tue Jan 17 14:00:58 1995 Ian Lance Taylor + + * config/mips/tm-mips.h (enum mips_fpu_type): New enum. + (mips_fpu): Change type to enum mips_fpu_type. + (FIX_CALL_DUMMY): Handle mips_fpu == MIPS_FPU_SINGLE. + * mips-tdep.c (mips_fpu): Change type to enum mips_fpu_type. + Don't initialize. + (mips_fpu_string): New static variable. + (mips_push_dummy_frame): Handle mips_fpu == MIPS_FPU_SINGLE. + (mips_pop_frame): Likewise. + (mips_extract_return_value): Likewise. + (mips_store_return_value): Likewise. + (mips_set_fpu_command): New static function. + (mips_show_fpu_command): New static function. + (_initialize_mips_tdep): Change handling of set/show mipsfpu. + +Tue Jan 17 09:48:38 1995 Jim Kingdon + + * a29k-tdep.c (gdb_print_insn_a29k): Fix typo (&info -> info). + + * parse.c (write_exp_msymbol): Use new variables + msym_*_symbol_type as type of msymbol expression. + (_initialize_parse): Initialize them. + +Mon Jan 16 18:11:03 1995 Stan Shebs + + General cleanup and simplication of disassembler interface. + * a29k-pinsn.c, arm-pinsn.c, convex-pinsn.c, gould-pinsn.c, + hppa-pinsn.c, i386-pinsn.c, i960-pinsn.c, m68k-pinsn.c, + m88k-pinsn.c, mips-pinsn.c, ns32k-pinsn.c, pyr-pinsn.c, + rs6000-pinsn.c, sparc-pinsn.c, tahoe-pinsn.c, vax-pinsn.c: Remove. + * gould-tdep.c, ns32k-tdep.c, tahoe-tdep.c, vax-tdep.c: New files, + had been -pinsn.c files. + * Makefile.in (ALLDEPFILES): Remove removed files. + (a29k-pinsn.o, arm-pinsn.o, convex-pinsn.o, gould-pinsn.o, + hppa-pinsn.o, i386-pinsn.o, i960-pinsn.o, m68k-pinsn.o, + m88k-pinsn.o, mips-pinsn.o, ns32k-pinsn.o, pyr-pinsn.o, + rs6000-pinsn.o, sparc-pinsn.o, tahoe-pinsn.o, vax-pinsn.o): + Remove compile actions. + * arm-tdep.o, gould-tdep.o, ns32k-tdep.o, tahoe-tdep.o, + vax-tdep.o: Add compile actions. + * defs.h (tm_print_insn): New global. + * a29k-tdep.c (gdb_print_insn_a29k): New function. + (_initialize_a29k_tdep): Rename from _initialize_29k, + set tm_print_insn. + * alpha-tdep.c (print_insn): Remove. + (_initialize_alpha_tdep): Set tm_print_insn. + * arm-tdep.c (arm_print_insn): New function, was print_insn + in arm-pinsn.c. + * convex-tdep.c (convex_print_insn): New function, was print_insn + in convex-pinsn.c. + * h8300-tdep.c (print_insn): Remove. + (gdb_print_insn_h8300): New function. + (_initialize_h8300_tdep): New function. + * h8500-tdep.c (print_insn): Remove. + (_initialize_h8500_tdep): New function. + * hppa-tdep.c (_initialize_hppa_tdep): Set tm_print_insn. + * i386-tdep.c (_initialize_i386_tdep): New function. + * i960-tdep.c (mem, next_insn): New functions, were in + i960-pinsn.c. + (_initialize_i960_tdep): Set tm_print_insn. + * m68k-tdep.c (_initialize_m68k_tdep): New function. + * m88k-tdep.c (_initialize_m88k_tdep): New function. + * mips-tdep.c (gdb_print_insn_mips): New function. + (_initialize_mips_tdep): Set tm_print_insn. + * pyr-tdep.c (pyr_print_insn): New function, was print_insn + in pyr-pinsn.c. + * rs6000-tdep.c (_initialize_rs6000_tdep): New function. + * sh-tdep.c (print_insn): Remove. + (gdb_print_insn_sh): New function. + (_initialize_sh_tdep): Set tm_print_insn. + * sparc-tdep.c (_initialize_sparc_tdep): New function. + * w65-tdep.c (print_insn): Remove. + (_initialize_w65_tdep): New function. + * z8k-tdep.c (print_insn): Remove. + (gdb_print_insn_z8k): New function. + (_initialize_z8k_tdep): Set tm_print_insn. + * printcmd.c (print_insn): New function, generic disassembler. + * config/*/*.mt (TDEPFILES): Remove refs to *-pinsn.o. + +Mon Jan 16 15:43:29 1995 Kung Hsu + + * Makefile.in: add new files remote-vx29k.c, config/a29k/tm-vx29k.h, + and config/a29k/vx29k.mt. + * configure.in: add new configuration a29k-*-vxworks. + * remote-vx29k.c: new file merged from WRS. + * remote-vx.c: merge changes from WRS. + * config/a29k/vx29k.mt: new file for new configuration. + * config/a29k/tm-vx29k.h: new header file for newconfiguration. + +Sun Jan 15 14:36:19 1995 Steve Chamberlain + + * breakpoint.h (disable_breakpoint, enable_breakpoint): + New declarations. + (enum bpdisp): Change name of 'delete' member to 'del'. + (struct bpstat): Changed name to 'bpstats'. + * breakpoint.c (disable_breakpoint, enable_breakpoint, + breakpoint_chain): Made globally visible. + (bpstat_stop_status): Use new name for bpstat. + (break_command_1, watch_command_1, catch_command_1, + breakpoint_auto_delete, denable_delete_breakpoint): Use 'del' + instead of 'delete'. + (set_breakpoint_sal): New function. + * defs.h (registers_changed_hook): New declaration. + * infcmd.c (run_stack_dummy): 'delete' is now 'del'. + * inflow.c (new_tty): Treat WIN32 in same way as __GO32__ + * main.c (main): Don't scan options when in WIN32 and exit + without entering main loop. + * m2-exp.y (m2_elx): Member 'class' is now 'aclass'. + * symtab.h (struct symbol, struct partial_symbol): Changed name of + member 'class' to 'aclass'. + (SYMBOL_CLASS, PSYMBOL_CLASS): Reflect change. + * top.c (registers_changed_hook): New definition. + * utils.c (quit, notice_quit, initialize_utils): Treate WIN32 + in same way as __GO32__. + * value.h (c_typedef_print): Rename 'new' argument. + + * w65-tdep.c, config/tm-w65.h, config/w65.mt: New files. + * configure.in: Suppprt for w65, + + +Sat Jan 14 11:18:11 1995 Jim Kingdon + + * infcmd.c (signal_command): For "signal 0", pass (CORE_ADDR)-1, + not stop_pc, to proceed. + + * eval.c (evaluate_subexp): Clear expect_type except for C++ and CHILL. + +Fri Jan 13 17:52:57 1995 Jim Kingdon + + * infcmd.c (signal_command): Accept "signal 0"; the change to not + accept it was accidental. "handle 0" and "info signal 0" remain + illegal, though. + +Fri Jan 13 15:19:01 1995 Stan Shebs + + * Makefile.in (all): Don't make libgdb-files. + (libgdb): New action, makes libgdb-files. + +Thu Jan 12 21:23:25 1995 Per Bothner + + * stabsread.c (read_enum_type): When pending enum symbols are + put into the enum type, they must be inserted in "backwards + order, in case we've overflowed a struct pending buffer. + + +Thu Jan 12 09:33:24 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * README: Add note about SPARCworks cc release 3.0 and higher. + + Add procfs support for Alpha OSF/1-2.x. + * config/alpha/nm-osf.h: Renamed from nm-alpha.h, generic + OSF/1 native support. + * config/alpha/alpha-osf1.mh (NAT_FILE): Changed accordingly. + (MUNCH_DEFINE): Removed. + * config/alpha/alpha-osf2.mh, config/alpha/nm-osf2.h: New files + for procfs support. + * configure.in (alpha-dec-osf*): Use alpha-osf2.mh for OSF/1 + release 2.x and higher, else alpha-osf1.mh, as the procfs support + in release 1.x is incomplete. + * Makefile.in (ALLCONFIG): Add config/alpha/alpha-osf2.mh. + * alpha-nat.c (supply_gregset, fill_gregset, supply_fpgregset, + fill_fpgregset): New routines for procfs support. + * inftarg.c (_initialize_inftarg): Don't add ptrace support + if we have an optional procfs and /proc is accessible. + * procfs.c: Include sys/fault.h and sys/syscall.h before + including sys/procfs.h. + (unconditionally_kill_inferior): If PROCFS_NEED_PIOCSSIG_FOR_KILL + is defined, additionally perform a PIOCSSIG to really terminate + the inferior. + (create_procinfo): Always return a result. + (create_procinfo, do_attach): Don't trace T_IFAULT faults if + PROCFS_DONT_TRACE_IFAULT is defined. + (procfs_init_inferior): Use START_INFERIOR_TRAPS_EXPECTED as + argument to startup_inferior if it is defined. + (proc_set_exec_trap): If PIOCSSPCACT is defined, use it instead + of tracing exits from exec system calls. Needed for the user level + loader under Alpha OSF/1. + (do_detach): Clear any pending signal if we want to detach from + a process without a signal. + (set_proc_siginfo): If PROCFS_DONT_PIOCSSIG_CURSIG is defined, + don't issue a PIOCSSIG if pr_cursig already contains the signal we + intend to set. + (info_proc_signals): If PROCFS_SIGPEND_OFFSET is defined, the + pending signals are numbered from 1 instead of 0. + (info_proc_mappings): Increase size of output format for addresses + if BFD_HOST_64_BIT is defined. + (procfs_stop): Renamed from child_stop. + (_initialize_procfs): Don't add procfs support if we have an + optional procfs and /proc is not accessible. + + +Wed Jan 11 17:53:26 1995 Rob Savoye + + * array-rom.c: Add support for most commands. + + * monitor.c: Add GDB remote protocol for the hybrid environment on + the Array board. + +Wed Jan 11 00:44:01 1995 Jeff Law (law@snake.cs.utah.edu) + + * command.c (show_user_1): Use print_command_line to show a user + defined command (including control structures). + + * top.c (init_main): Change documentation for user defined + commands to indicate they may accept up to ten arguments. + +Tue Jan 10 16:22:41 1995 Jim Kingdon + + * mips-tdep.c (mips_skip_prologue): Accept or as well as addu for + `move $s8, $sp' instruction. + +Sun Jan 8 12:45:34 1995 Jim Kingdon + + * target.c, target.h (target_signal_from_command): New function. + * infrun.c (handle_command, signals_info), infcmd.c + (signal_command): Use it. + * infrun.c, infcmd.c: Update docstrings for these commands. + + * target.h (enum target_signal), target.c (signals), target.c + (target_signal_from_host, target_signal_to_host): Add + TARGET_SIGNAL_REALTIME_* and TARGET_SIGNAL_PRIO for lynx. + * config/tm-lynx.h: Define signal numbers for realtime events. + +Sat Jan 7 07:23:53 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dbxread.c (process_one_symbol): Handle N_FUN symbols + for Sun acc 3.0 under SunOS4. + + Changes to improve handling of runtime common symbols + under SunOS4. + * minsyms.c (get_symbol_leading_char): New routine to determine + the leading symbol character for an objfile. + (prim_record_minimal_symbol_and_info, install_minimal_symbols): + Use it. + * objfiles.h (rt_common_objfile): New global, points to objfile + containing the runtime common minimal symbols. + * objfiles.c (free_objfile): Mark rt_common_objfile as + unallocated before freeing it. + * solib.c (allocate_rt_common_objfile): New routine to allocate + an objfile for the runtime common minimal symbols. + (solib_add_common_symbols): Allocate an objfile for the runtime + common symbols if necessary and put common symbols into it. + Clean up code and comments. + (solib_add, special_symbol_handling): Cleanup comments regarding + runtime common symbols. + * stabsread.c (scan_file_globals_1): New routine, contains + old scan_file_globals code. Checks if there are any unresolved + global symbols before starting the expensive minimal symbol table + search. + (scan_file_globals): Now calls scan_file_globals_1 for the passed + objfile and eventually for the runtime common objfile. Complains + about any unresolved global symbols and removes them from the + global symbol chain to avoid dangling pointers into the symbol + table if the symbol table is reread. + +Thu Jan 5 17:38:29 1995 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (install_only uninstall): Indent for clarity. + + * core.c (dis_asm_read_memory): Add call to + dis_asm_read_memory_hook to provide alternate way for disassembler + to read memory. + + * defs.h: Protect from multiple inclusion. Add decl for + dis_asm_read_memory_hook. + + * top.c: Make window startup be the default. + * Add dis_asm_read_memory_hook. + + +Thu Jan 5 01:16:40 1995 Jeff Law (law@snake.cs.utah.edu) + + * stabsread.c (define_symbol): Handle `a' symbol type used for + reference parameter passed in a register. + + +Wed Jan 4 12:27:29 1995 Kung Hsu + + * defs.h: move include tm.h up, so that the type LONGEST can + also based on the target requirement to determine. In this case + target mips64. + + * remote-os9k.c (rombug_open): catch exception e in rombug. + * remote-os9k.c (rombug_wait): print message before register display + from rombug. + +Wed Jan 4 09:18:27 1995 Jim Kingdon (kingdon@lioth.cygnus.com) + + * top.c (locate_arg): Call strchr not index. + +Tue Jan 3 16:52:03 1995 Per Bothner + + * ch-exp.y (literal): Recognize NULL. + (tuple): Parse simple unlabelled tuples. + * eval.c (evaluate_subexp case OP_ARRAY): Use expect_type to + evaluate brace-initializer-expressions depending on context. + (evaluate_subexp case UNOP_CAST): Pass the target type as + expected type when evaluating the expression. + + * ch-typeprint.c (chill_type_print_base): Get names of PTR and + BOOL from TYPE_NAME. + * ch-valprint.c (chill_print_type_scalar): New function, to handle + TYPE_CODE_RANGE better than print_type_scalar does. + (chill_val_print_array_elements): Use above new function. + +Mon Jan 2 15:02:51 1995 Stan Shebs + + * remote-udi.c (udi_load): Tell symbol_file_add that the + program being loaded is the main program. + +For older changes see ChangeLog-94 + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-96 b/gdb/ChangeLog-96 new file mode 100644 index 0000000000..760b425f75 --- /dev/null +++ b/gdb/ChangeLog-96 @@ -0,0 +1,5116 @@ +Tue Dec 31 15:19:32 1996 Geoffrey Noer + + * config/mn10300/tm-mn10300.h: more small register fixes + +Tue Dec 31 06:51:43 1996 Mark Alexander + + * config/i386/xm-windows.h: Undo previous change to SIGTRAP + and SIGQUIT values; it messed up non-MIPS targets. + * config/mips/tm-mips.h: Undefine BREAKPOINT, replace + with separate LITTLE_BREAKPOINT and BIG_BREAKPOINT definitions; + this fixes problem with setting breakpoints in little-endian + programs in the simulator. + +Mon Dec 30 00:14:06 1996 Doug Evans + + * remote-sim.c (gdbsim_open_p): New static local. + (gdbsim_open): Call unpush_target if sim open. Set gdbsim_open_p. + (gdbsim_close): Only call sim_close if sim open. Reset gdbsim_open_p. + +Sun Dec 29 09:15:03 1996 Mark Alexander + + * config/i386/xm-windows.h: Make SIGTRAP and SIGQUIT consistent + with sim/mips/support.h. + +Fri Dec 27 14:53:40 1996 Michael Meissner + + * v850-tdep.c (struct pifsr): Add cur_frameoffset field. + (v850_scan_prologue): Add debug code #ifdef'ed DEBUG. Support new + compiler prologues using register save functions and short store + instructions. Add support for functions with large stack frames. + + * config/v850/tm-vm850.h ({R0,R1,R12,EP}_REGNUMS): New register + number defintiions for r0, r1, r12, ep. + (SAVE{1,2,3}_{START,END}_REGNUM): Register number definitions for + the 3 sets of saved registers. + +Thu Dec 26 19:56:55 1996 Mark Alexander + + * valprint.c (print_longest): Don't lose upper bits + of 64-bit values on Windows. + * config/i386/xm-windows.h: Leave CC_HAS_LONG_LONG defined, + undefine PRINTF_HAS_LONG_LONG, so that 64-bit values will + be printed without loss of upper bits. + +Thu Dec 26 15:15:21 1996 Michael Snyder + + * config/sparc/tm-sparclet.h: make registers ASR15, ASR19 invisible + (they're not useful, you can't change, write or even read them) + +Thu Dec 26 15:20:48 1996 Fred Fish + + * config/pa/hppahpux.mh (TERMCAP): Always link to libc before + libcurses, to avoid picking up broken select() from libcurses + on some versions of HPUX. + +Thu Dec 26 15:14:41 1996 Michael Snyder + + * sparclet-rom.c: Remove includes of Unix system files. + Add function "sparclet_supply_register" so that parse_register_dump + will not seg-fault by calling a null function pointer. + Remove XMODEM support (unfinished work?). + Remove flag "MO_HANDLE_NL", so monitor's output can be read by humans. + Add fill command. + Remove colon from getreg.resp_delim so PSR register will work. + Remove pointer to sparclet_load (downloading SREC's doesn't work). + Null out local register names for %g0, all %cc and all %asr regs, + since the monitor can't report them. Will return zero instead. + * sparclet-stub.c: New -- remote protocol support for sparclet CPU. + * config/sparc/tm-sparclet.h: Re-arrange REGISTER_NAMES: + Add back %g0 and %psr, add %cc coprocessor regs, add %asr regs. + Adjust NUM_REGS and REGISTER_BYTES accordingly + +Tue Dec 24 10:27:37 1996 Jeffrey A Law (law@cygnus.com) + + * remote-e7000.c (want_h8300h, want_nopc_h8300h): Renamed + from want and want_nopc. + (want_h8300s, want_nopc_h8300s): New variables for H8/S register + lists. + (e7000_fetch_registers): Use H8/300H or H8/S register list string + as needed. + (e7000_wait): Likewise. + +Mon Dec 23 02:25:58 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-tdep.c (mips_find_saved_regs): If a frame has been + interrupted by a signal, figure out whether the registers that + the proc_desc claims are saved have been saved yet. + (mips_push_dummy_frame): Write dummy frame register after all + registers have been saved in the dummy frame. Update comments + to reflect the fact that we are now using an AT_ENTRY_POINT + call dummy. + +Sun Dec 22 15:52:25 1996 Martin M. Hunt + + * d10v-tdep.c (d10v_skip_prologue): PR11287. Fix problem where + some breakpoints weren't being set. + +Sat Dec 21 12:57:59 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/tm-mips.h (PC_IN_CALL_DUMMY): Removed, the default + definition in inferior.h is sufficient. + * mips-tdep.c (mips_pc_in_call_dummy): Ditto. + (mips_push_arguments): Make sure that the stack is aligned to a + multiple of 8 after the arguments are pushed. + Structures are always passed by value in the old ABI. + Adjust argument register value on big endian targets when passing + a value whose length is less than the register size. + Write stack arguments with a single write_memory call. + (mips_pop_frame): Use frame_saved_regs instead of proc_desc to + decide which registers have to be restored. + + * irix5-nat.c (fill_gregset): Sign extend registers before + filling in the gregset structure. + +Fri Dec 20 11:06:03 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mswin/genmakes: Don't define _DEBUG. This breaks wingdb. + +Thu Dec 19 19:42:44 1996 Michael Meissner + + * v850-tdep.c (v850_scan_prologue): Deal with -mep shorting + register saves by using the ep register. + +Thu Dec 19 15:57:16 1996 Doug Evans + + * m32r-tdep.c (m32r_frame_find_saved_regs): Fix thinko in arg def. + +Thu Dec 19 09:38:56 1996 Mark Alexander + + * values.c (unpack_double): Make it compile with MSVC++ 2.x. + * remote-mips.c (S_IROTH): Define if not defined by stat.h, e.g. + when using MSVC++. + (common_open): Fix help string. + +Wed Dec 18 23:01:32 1996 Stan Shebs + + * mpw-make.sed: Use NewFolderRecursive for installation. + +Sat Dec 14 20:50:01 1996 Mark Alexander + + * mips-tdep.c (mips_push_arguments): Handle floating point args. + * config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to set up $25 + correctly for PIC on Irix 5. + +Sat Dec 14 09:52:30 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * i386-tdep.c (i386_frame_find_saved_regs): Handle zero return + from get_pc_function_start gracefully. + +Sat Dec 14 00:43:57 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-exp.y (qualified_name): Replace explicit check for valid + destructor name with call to destructor_name_p. + + * c-lang.h, c-typeprint.c (cp_type_print_method_args): Removed, + no longer needed. + + * c-typeprint.c (c_type_print_varspec_prefix, c_type_print_base): + Replace remaining fprintf_unfiltered calls with their filtered variant. + (c_type_print_base): Do not print return type for destructors from + template classes. + Replace cp_type_print_method_args with cplus_demangle call to get + consistent type output for stubbed and unstubbed methods. + + * cp-valprint.c (cp_print_class_method): Replace + cp_type_print_method_args with cplus_demangle call to get consistent + type output for stubbed and unstubbed methods. + + * gdbtypes.c, gdbtypes.h (get_destructor_fn_field): New function + to find the destructor field indices for a type. + + * gdbtypes.h (struct type): Clarify comments for vptr_basetype + and arg_types fields. + (struct fn_field): Remove args field, no longer used. + + * symtab.c (decode_line_1), valops.c (value_struct_elt, + check_field_in): Use get_destructor_fn_field to find the destructor + field indices instead of assuming that the compiler passes the member + function fields in a specific order. + + * symtab.c (find_methods): Pass NULL instead of SYMBOL_BLOCK_VALUE + to lookup_symbol. + (list_symbol): Replace cp_type_print_method_args with cplus_demangle + call in zapped out code and explain why this code is zapped out. + +Thu Dec 12 13:29:14 1996 Michael Meissner + + * config/powerpc/ppc{,le}-sim.mt (SIM): Add the simulator common + library ../sim/common/libcommon.a. + +Wed Dec 11 11:15:08 1996 Doug Evans + + * monitor.c (monitor_load): Add support for load address argument. + * dsrec.c: #include . + (load_srec): New argument load_offset. Print download stats. + * srec.h (load_srec): Update prototype. + * sh3-rom.c (sh3_load): Update call to load_srec. + +Mon Dec 9 17:34:05 1996 Geoffrey Noer + + * config/mn10300/tm-mn10300.h: more small register fixes + * mn10300-tdep.c: filled in from another target + +Mon Dec 9 17:12:19 1996 Doug Evans + + * monitor.c (monitor_insert_breakpoint): Handle bi-endian machines. + +Mon Dec 9 15:58:51 1996 Mark Alexander + + * config/mips/tm-mips.h: Get rid of call-dummy code. + Minor changes to make pre-ANSI compilers happy. + * mips-tdep.c: Minor changes to make pre-ANSI compilers happy. + (mips_push_arguments): Rewrite to partially support EABI. + (mips_pc_in_call_dummy): New function. + * infcmd.c: Include symfile.h to get prototype of entry_point_address, + which fixes 64-bit sign extension bug on MIPS. + +Mon Dec 9 00:14:49 1996 Geoffrey Noer + + * config/mn10300/tm-mn10300.h: fix register names + * mn10300-tdep.c: new skeleton tdep for mn10300 + +Sun Dec 8 18:02:57 1996 Doug Evans + + * remote-sim.h: Update some comments. + * remote-sim.c (gdb_os_error): New function. + (init_callbacks): Fix initializing of gdb_callback. Add gdb_os_error. + (gdb_os_printf_filtered): Use gdb_stdout, not stdout. + +Sun Dec 8 00:36:31 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * irix5-nat.c (supply_gregset, fill_gregset): Handle gregsets + from O32 and N32 ABI. + (xfer_link_map_member): Work around problem with alignments + in struct obj when compiling GDB under N32 ABI. + +Thu Dec 5 23:30:44 1996 Stan Shebs + + * d10v-tdep.c: Add support for examination and interpretation + of instruction trace buffer. + (trace, untrace, info trace, tdisassemble): New commands. + +Thu Dec 5 14:06:23 1996 Doug Evans + + * config/sparc/tm-sparclet.h (TARGET_BYTE_ORDER): Undef. + (TARGET_BYTE_ORDER_SELECTABLE): Define. + (BREAKPOINT): Undef. + ({BIG,LITTLE}_BREAKPOINT): Define. + (TM_PRINT_INSN_MACH): Redefine for sparclet. + +Wed Dec 4 16:34:05 1996 Geoffrey Noer + + * config/mn10300/mn10300.mt, config/mn10300/tm-mn10300.h: New. + +Tue Dec 3 13:02:08 1996 Fred Fish + + * infptrace.c (store_inferior_registers): Move some common code out + to store_register, like fetch_inferior_registers & fetch_register. + (store_register): New function, from store_inferior_registers. + (fetch_inferior_registers, fetch_register): Minor code tweaks to + make {fetch,store}_inferior_registers and {fetch,store}_register + routines as similar in structure as possible. + (fetch_inferior_registers, store_inferior_registers): Eliminate + local variable numregs and just use ARCH_NUM_REGS directly. + +Tue Dec 3 11:38:14 1996 Michael Snyder + + * blockframe.c: add macro USE_GENERIC_DUMMY_FRAMES to enable/disable + code for generic call_dummy frames. + * config/h8300/tm-h8300.h: turn on USE_GENERIC_DUMMY_FRAMES + * config/m32r/tm-m32r.h: Ditto. + * config/sh/tm-sh.h: Ditto. + * config/v850/tm-v850.h: Ditto. + +Sun Dec 1 00:41:47 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * vax-tdep.c (vax_print_insn, print_insn_arg): Use info functions + for printing. From Valeriy Ushakov . + +Sun Dec 1 00:40:46 1996 Geoffrey Noer + + * configure.tgt: Add new mn10300 entry. + +Sun Dec 1 00:18:59 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + Add support for Irix 6.2 native O32 and N32 ABI. + + * config.in, configure.in, configure: Check for . + * configure.tgt: Handle mips*-sgi-irix6* like irix5 for now. + + * cp-valprint.c (cp_print_value_fields): Use SYMBOL_VALUE_ADDRESS + instead of SYMBOL_BLOCK_VALUE to get the address of a static member. + + * dwarf2read.c: Turn warnings and recoverable errors into complaints, + add new complaints where appropriate. + gcc -Wall cleanup. + (struct line_head): Change line_base from char to int to avoid + problems with compilers whose plain char is represented by an + unsigned char. + (struct partial_die_info): Add is_declaration field. + (dwarf2_tmp_obstack): New obstack for allocating temporary storage + used during symbol reading. + (cu_header_offset): New variable for resolving relative reference + dies. + (optimized_out, basereg, islocal, frame_base_reg, frame_base_offset): + New interface variables for decode_locdesc. + (struct dwarf2_pinfo): New structure for communication between + psymtab and symtab reading, passed via pst->read_symtab_private. + (dwarf2_has_info, dwarf2_build_psymtabs): Accept objects files + without line number sections. + (dwarf2_build_psymtabs_hard): Initialize temporary obstack + for symbol reading. + Allocate and initialize pst->read_symtab_private. + Relocate pst->textlow and pst->texthigh with baseaddr. + (scan_partial_symbols): Do not add DW_AT_declaration symbols + to the partial symbol table. + Add file scope enumerator symbols to the partial symbol table. + Fix typo in highpc computation. + If we didn't find a lowpc, set it to highpc to avoid complaints + from `maint check. + (add_partial_symbol): Relocate symbol values with baseaddr. + Add static DW_TAG_subprogram and DW_TAG_variable symbols to the + minimal symbol table. + Obtain symbol values for DW_TAG_variable symbols from the location + descriptor, skip symbols with missing location desciptors. + Skip symbols for aggregate types without children. + Handle enumerator symbols. + (dwarf2_psymtab_to_symtab): Issue symbol reading message if verbose. + (psymtab_to_symtab_1): Set local variables from + pst->read_symtab_private, set cu_header_offset and baseaddr. + Initialize temporary obstack for symbol reading, initialize + buildsym and add a cleanup to really_free_pendings. + Relocate highpc with baseaddr when calling end_symtab. + If the compilation is from a C file generated by language + preprocessors, do not set the symtab language if it was already + deduced by start_subfile. + Removed verbose sorting symbol table message. + (process_die): Handle DW_TAG_ptr_to_member_type and + DW_TAG_reference_type. + Use read_subroutine_type to get the function type for + DW_TAG_subprogram before calling read_func_scope. + (read_file_scope): Initialize file name to , start_subfile + expects a non-NULL name. + If we didn't find a lowpc, set it to highpc to avoid complaints + from finish_symbol. + Relocate lowpc and highpc with baseaddr. + Get rid of Irix6.2 native cc compile machine prefix in comp_dir. + Zero out ftypes for each new compilation unit (may be different + language or different objfile). + Accept compilation units without line number information, pass + comp_dir to decode_lines. + (read_func_scope): Initialize function name to to avoid + core dumps when DW_AT_name is missing. + Relocate lowpc and highpc with baseaddr. + Handle DW_AT_frame_base, keep result for DW_OP_fbreg operations. + Pass function type to new_symbol. + (read_lexical_block_scope): Relocate lowpc and highpc with baseaddr. + (read_structure_scope): Set TYPE_TAG_NAME, not TYPE_NAME. + Handle DW_TAG_class_type. + Copy fields to type_obstack, release temporary storage for fields. + Don't add symbol if die is a stub die and has no children. + Handle C++ static member fields. + (read_enumeration): Set TYPE_TAG_NAME, not TYPE_NAME. + Copy fields to type_obstack, release temporary storage for fields. + Let new_symbol handle the symbol creation for enumerators + instead of handcrafting a symbol. + Determine signedness of enum type from enumerators. + (dwarf_read_array_type): Handle variable length arrays. + Use lookup_pointer_type instead of handcrafting a type. + Create array type only if a DW_TAG_subrange_type was found. + (read_tag_pointer_type, read_tag_reference_type): + Use lookup_pointer_type and lookup_reference_type instead + of handcrafting a type. + (read_tag_ptr_to_member_type): New function to handle + DW_TAG_ptr_to_member_type. + (read_subroutine_type): Handle parameter dies. + Use lookup_function_type instead of handcrafting a type. + (read_typedef): Allocate a TYPE_CODE_TYPEDEF type for the typedef. + (read_base_type): If the type has a name, use init_type to create + a new type instead of second guessing a fundamental type. + (read_comp_unit): Reset die reference table before building + a new one. + (dwarf2_read_section): Read section contents into psymbol_obstack. + (dwarf2_read_abbrevs): Handle unterminated abbreviations + for a compile unit gracefully. + (read_partial_die): Zero partial die before reading its info. + Handle DW_AT_declaration. + Fix typo in handling of DW_FORM_block4. + (read_full_die): Fix typo in handling of DW_FORM_block4. + (read_1_signed_byte, read_2_signed_bytes, read_4_signed_bytes): + New routines to get signed values from a buffer. + (read_n_bytes, read_string): Allocate storage from the temporary + obstack. If the host char size permits it, return pointer + to buffer instead of allocating storage. + (set_cu_language): Handle DW_LANG_Mips_Assembler. + (dwarf_attr): Return NULL if reference die for DW_AT_specification + or DW_AT_abstract_origin die is not found. + (record_minimal_symbol): Removed, replaced with a direct call to + prim_record_minimal_symbol, it now handles saving the string itself. + (convert_locdesc): Removed, partial symtab reading now uses + decode_locdesc. + (dwarf_attr): Use dwarf2_get_ref_die_offset to get the absolute + offset for the die reference. + (dwarf_decode_lines): Complain if the line section info is missing. + Use read_1_signed_byte to extract lh.line_base to avoid + problems with compilers whose plain char is represented by an + unsigned char. + Add cleanups for allocated temporary storage. + Start a subfile for the first file in the state machine. + Fix off by one problem with dirs.dirs access. + Use comp_dir when directory index is 0. + Support multiple sequences (from Jason Merrill ). + (dwarf2_start_subfile): Try to keep line numbers from identical + absolute and relative file names in a common subfile. + (new_symbol): Allocate symbol and symbol name on the symbol_obstack. + Set SYMBOL_LINE from DW_AT_decl_line if present. + Set SYMBOL_TYPE from passed type if not NULL. + Change DW_TAG_variable symbol types with missing type entries + to a sensible type. + Handle optimized_out, offreg and islocal storage classes. + Add external symbols with type information whose address isn't + known as LOC_UNRESOLVED symbols. + Synthesize typedefs for C++ classes, structs, unions and enumerations. + Handle DW_TAG_enumerator symbols, complain for unrecognized + symbol tags. + (die_type): A missing DW_AT_type represents a void type. + Use dwarf2_get_ref_die_offset to get the absolute offset for + the die reference. + (die_containing_type): New function to build type from + DW_AT_containing_type attribut. + (read_type_die): Handle DW_TAG_ptr_to_member_type. + Treat DW_TAG_subprogram like DW_TAG_subroutine_type. + (dwarf_base_type): Fix typo with creation of FT_UNSIGNED_SHORT + fundamental type. + (create_name): Removed, symbol name allocation is now done + in new_symbol. + (dump_die): Use print_address_numeric to print a CORE_ADDR. + (dwarf2_empty_die_ref_table): New function to clear the die + reference table. + (dwarf2_get_ref_die_offset): New function to get the absolute + die offset from a die reference attribute. + (decode_locdesc): Complete rewrite using a stack, code mostly + borrowed from dwarfread.c:locval. + (dwarf_alloc_type): Removed, replaced by direct calls to alloc_type. + (dwarf_alloc_block): Allocate block on temporary obstack. + + * elfread.c (elf_symtab_read): When handling Irix dynamic symbols, + skip section name symbols and relocate all others. + (elf_symfile_read): Build dwarf2 psymtab even if offset is non-zero. + + * irix5-nat.c (fetch_core_registers): Handle core_reg_sect + from N32 executables. Call registers_fetched after extracting + the registers. + (obj_list_variant, struct link_map, LM_OFFSET, LM_ADDR): New + definitions to enable support of O32 and N32 format objlists. + (struct so_list): New members offset, so_name and lmstart to + eliminate dependencies from the objlist format used. + (solib_map_sections, symbol_add_stub, solib_add, + info_sharedlibrary_command, solib_address, clear_solib): Use + so_name and LM_OFFSET. + (first_link_map_member): Rewrite to enable support of O32 and N32 + format objlists. + (next_link_map_member, xfer_link_map_member): New functions to + support O32 and N32 format objlists. + (find_solib): Use first_link_map_member, next_link_map_member and + xfer_link_map_member. + (solib_create_inferior_hook): Use TARGET_SIGNAL_* instead of + host signal numbers. + + * mdebugread.c (parse_partial_symbols, handle_psymbol_enumerators): + Pass CORE_ADDR variant to add_psymbol_to_list. + + * mips-tdep.c (heuristic_proc_desc): Stop examining the prologue + if we encounter a positive stack adjustment. Handle `move $30,$sp'. + Handle `sd reg,offset($sp)' for 32 bit ABIs. + + * symmisc.c (dump_msymbols, print_partial_symbols): Use + print_address_numeric to print a SYMBOL_VALUE_ADDRESS. + (dump_symtab): Print compilation directory if it is not NULL. + + * valops.c (search_struct_field, value_struct_elt_for_reference): + Use SYMBOL_VALUE_ADDRESS instead of SYMBOL_BLOCK_VALUE to get the + address of a static member. + +Thu Nov 28 00:46:24 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * vax-tdep.c (vax_print_insn): Made static, modified to take + disassemble_info as parameter. + (_initialize_vax_tdep): New function to initialize tm_print_insn + to vax_print_insn. + +Wed Nov 27 11:29:06 1996 Michael Snyder + + * blockframe.c: Remove old-style CALL_DUMMY code. + * h8300-tdep.c, config/h8300/tm-h8300.h: Ditto. + * m32r-tdep.c, config/m32r/tm-m32r.h: Ditto. + * sh-tdep.c, config/sh/tm-sh.h: Ditto. + * v850-tdep.c, config/v850/tm-v850.h: Ditto. + +Wed Nov 27 10:32:14 1996 Michael Snyder + + * breakpoint.c: DELETE command will not delete CALL_DUMMY breakpoint. + * blockframe.c: Add target-independant support for managing + CALL_DUMMY frames on the host side. + * frame.h: Declarations for generic CALL_DUMMY frame support. + * h8300-tdep.c: Add target function calls using generic frame support. + * config/h8300/tm-h8300.h: config for generic target function calls. + * m32r-tdep.c: Add target function calls using generic frame support. + * config/m32r/tm-m32r.h: config for generic target function calls. + * sh-tdep.c: Add target function calls using generic frame support. + * config/sh/tm-sh.h: config for generic target function calls. + * v850-tdep.c: Add target function calls using generic frame support. + * config/v850/tm-v850.h: config for generic target function calls. + * valops.c: ADD PUSH_RETURN_ADDRESS so that it doesn't have to be + done by PUSH_ARGUMENTS when there's no CALL_DUMMY. + +Tue Nov 26 19:21:35 1996 Mark Alexander + + * config/mips/tm-mips.h (ADDR_BITS_REMOVE, TARGET_READ_SP): Define. + (mips_addr_bits_remove): Declare. + * mips-tdep.c (mips_push_dummy_frame): Fix heuristic-fence-post + errors when hitting breakpoints during inferior function calls + in 64-bit programs. + (fix_sign_extension): Make public, rename to mips_addr_bits_remove. + * utils.c (paddr_nz, preg_nz): New functions, similar to + paddr and preg but don't print leading zeroes. + * defs.h (paddr_nz, preg_nz): Declare. + * remote-mips.c: Use paddr_nz instead of paddr throughout + to reduce packet size. + (pmon_end_download): Improve timeout error handling. + +Tue Nov 26 17:21:37 1996 Ian Lance Taylor + + * configure: Rebuild with autoconf 2.12. + +Mon Nov 25 13:17:16 1996 Fred Fish + + From: Paul Eggert + * remote-bug.c (wait_strings): Avoid creating a trigraph. + +Fri Nov 22 15:55:22 1996 Martin M. Hunt + + * valops.c (value_at, value_fetch_lazy): Put in D10V call + to fix up address pointers. + * values.c (value_from_longest): Removed previous d10v changes. + * config/d10v/tm-d10v.h (TARGET_PTR_BIT): Change to 4 bytes. + +Fri Nov 22 10:06:19 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/i386/nm-i386v4.h (LOSING_POLL): Define, needed for + Unixware 1.1.2. + +Thu Nov 21 19:13:58 1996 Mark Alexander + + * mips-tdep.c: Replace hard-coded constants with MIPS_INSTLEN. + (common_breakpoint): Use paddr instead of %x to print 64-bit values. + (heuristic_proc_desc): Add tests for 64-bit instructions. + (init_extra_frame_info, mips_push_arguments): Recognize additional + registers for EABI. + * remote-mips.c: Extend DDB target to allow TFTP downloads. + * config/mips/tm-mips.h (MIPS_LAST_ARG_REGNUM, MIPS_NUM_ARG_REGS): + Define. + +Wed Nov 20 19:09:16 1996 Martin M. Hunt + + * infcmd.c (do_registers_info): Call val_print with the + virtual buf instead of the raw buf. Needed for REGISTER_CONVERT + to work with non-floating point regs. + + * d10v-tdep.c (d10v_skip_prologue): If we have line debugging + information, then the end of the prologue should the first + assembly instruction of the first source line. + + * values.c (value_from_longest): Put in D10V call to + fix up address pointers. + + * config/d10v/tm-d10v.h (REGISTER_VIRTUAL_SIZE): Modified. + (REGISTER_VIRTUAL_TYPE): Modified for PC_REGNUM and SP_REGNUM. + (REGISTER_CONVERTIBLE): Make PC and SP convertible. + (REGISTER_CONVERT_TO_VIRTUAL): Define. + (REGISTER_CONVERT_TO_RAW): Define. + (D10V_MAKE_DADDR): Define. + (D10V_MAKE_IADDR): Define. + +Wed Nov 20 16:15:15 1996 Geoffrey Noer + + * config/i386/cygwin32.mh: add MMALLOC_CFLAGS = -I$(MMALLOC_SRC) + -DMMCHECK_FORCE=1 so memory checks are loaded for cygwin32 gdb + +Wed Nov 20 00:43:09 1996 Doug Evans + + * callback.h: Delete, moved to ../include. + * callback.c: Delete, moved to ../sim/common. + * Makefile.in (SFILES,COMMON_OBJS): Delete callback.[co]. + (callback.o): Delete rule. + * remote-sim.h: No longer include callback.h. + (sim_callback_write_stdout): Delete prototype. + * remote-sim.c (init_callbacks,end_callbacks): New functions. + (gdb_os_write_stdout, gdb_os_printf_filtered): New functions. + (gdb_callback, callbacks_initialized): New static globals. + (gdbsim_open): Call init_callbacks. + (gdbsim_close): Call end_callbacks. + (simulator_command): Call init_callbacks. + + * config/h8300/h8300.mt (SIM): Change to ../sim/h8300/libsim.a. + * config/h8500/h8500.mt (SIM): Change to ../sim/h8500/libsim.a. + +Mon Nov 18 15:58:05 1996 Jim Wilson + + * config/mips/tm-mips.h (FIX_CALL_DUMMY): Change unsigned LONGEST + to ULONGEST. + +Fri Nov 15 15:34:18 1996 Fred Fish + + From Peter Schauer + * procfs.c (wait_fd): Handle EINTR error return from poll + by restarting the poll. + * defs.h (PIDGET): Define a default version that just + returns its argument unchanged. + * inflow.c (terminal_init_inferior): Eliminate #ifdef + of PIDGET and fold both alternatives into common code. + (pass_signal): Use PIDGET for pid passed to kill(). + +Thu Nov 14 15:54:20 1996 Michael Meissner + + * utils.c (paddr,preg): Use a static variable initialized to 32 + instead of doing addr>>32 to eliminate a warning produced by GCC + on 32-bit systems. + + * config/d10v/tm-d10v.h (ULONGEST): Define. + +Tue Nov 12 12:25:27 1996 Jim Wilson + + * c-typeprint.c (cp_type_print_method_args): Pass -1 for show in + recursive call to type_print. + +Tue Nov 12 12:18:29 1996 Jim Wilson + + * defs.h (ULONGEST): New macro. + * alpha-tdep.c, breakpoint.c, c-exp.y, ch-exp.c, convex-xdep.c, + corefile.c, defs.h, f-exp.y, findvar.c, gdbcore.h, m2-exp.y, + m88k-tdep.c, printcmd.c, remote-hms.c, remote-mips.c, sparc-tdep.c, + valarith.c, valops.c, values.c, config/gould/tm-np1.h, + config/mips/tm-mips.h, mswin/prebuilt/gdb/cexptab.c, + mswin/prebuilt/gdb/fexptab.c, mswin/prebuilt/gdb/m2exptab.c: + Change all occurances of unsigned LONGEST to ULONGEST. + + * configure.host (mips-sgi-irix6): Add. + +Tue Nov 12 12:16:40 1996 Michael Snyder + + * sh-tdep.c: Add functionality for target function calls. + * config/sh/tm-sh.h: Add support for target function calls. + +Tue Nov 12 12:06:58 1996 Michael Snyder + + * m32r-tdep.c: Add functionality for target function calls. + * valops.c: Small change to support target function calls. + * config/m32r/tm-m32r.h: Add support for target function calls. + +Mon Nov 11 17:15:59 1996 Geoffrey Noer + + * defs.h: Modify Nov 11 12:59:00 change so _MSC_VER is checked + instead of _WIN32. + * win32-nat.c: Fix Nov 11 12:59:00 change (windows.h should + be included instead of windefs.h for compilers other than + VC++). + * mswin/windefs.h: Remove ^Ms and change C++ style comments + to C style comments. + +Mon Nov 11 14:32:38 1996 Mark Alexander + + * utils.c (get_cell): Fix off-by-one bug. + * mips-tdep.c (get_frame_pointer, fix_sign_extension): + New functions to consolidate common code. + (mips_frame_chain, init_extra_frame_info): Use new functions + to fix problems with backtrace and finish commands on ddb board. + +Mon Nov 11 12:59:00 1996 Dawn Perchik + + * mips-tdep.c, remote-mips.c, values.c, mdebugread.c, + config/mips/tm-mips.h: Add/fix bugs for 64-bit mips support. + * defs.h: Cleanup; add prototypes. + * corefile.c: Change FIXME #ifdef + * win32-nat.c: Include windefs instead of windows.h. + * utils.c: Add routines for printing addresses and registers + based on type size. + +Sat Nov 9 01:05:10 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * alpha-tdep.c (heuristic_proc_desc): Stop examining the prologue + if we encounter a positive stack adjustment. + (find_proc_desc): If heuristic_fence_post is non-zero, use + heuristic_proc_start to determine the start of a function before + calling heuristic_proc_desc. + + * coffread.c (coff_symtab_read): Change minimal symbol types + for C_LABEL symbols from mst_* to mst_file_*. + + * config/m68k/sun3os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1. + + * configure.in: Handle error message from sun3 native ld when + configuring HLDFLAGS. + * configure: Regenerated with autoconf. + + * c-valprint.c (c_value_print): Adjust value address by VALUE_OFFSET. + * cp-valprint.c (cp_print_value): Prevent gdb crashes by making sure + that the virtual base pointer from an user object still points to + accessible memory. + + * dbxread.c (dbx_symfile_init): Initialize sym_stab_info to + clear the recently added header_files fields. + (dbx_symfile_finish): Free hfiles[i].vector to avoid storage leak. + +Fri Nov 8 14:30:23 1996 Michael Snyder + + * config/tm-sh.h: Added a missing comma in middle of + REGISTER_NAMES list. + +Fri Nov 8 12:29:51 1996 Stan Shebs + + * monitor.c: Fix some formatting and comments. + + * remote-sim.c (simulator_command): Set up callbacks before + entering the simulator. + +Thu Nov 7 15:19:08 1996 Martin M. Hunt + + * d10v-tdep.c: Fix some problems with inferior function calls. + * config/d10v/tm-d10v.h (EXTRA_FRAME_INFO): Change dummy to be + a pointer to the dummy's stack instead of just a flag. + +Tue Nov 5 10:21:02 1996 Michael Snyder + + * m32r-tdep.c: Improved frame_chain and fn prologue analysis. + * config/tm-m32r.h: Add framesize and register to extra_frame_info. + +Tue Nov 5 10:08:07 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mswin/gdbwin.h: Remove bogus definition of CORE_ADDR. + * mswin/srcwin.cpp (CSrcScroll1::CSrcScroll1): Initialize depth + to fix divide-by-zero problem with clicking on source window. + +Mon Nov 4 00:48:37 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mswin/recordit: Fix problem with absolute paths. + * mswin/recordit: Fix problem with relative paths. + +Sun Nov 3 18:06:42 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mswin/{Makefile.in configure configure.in}: New files for + configuring wingdb under Unix. + +Sat Nov 2 03:54:13 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * irix5-nat.c, osfsolib.c, solib.c (symbol_add_stub): Handle + missing or zero-sized .text sections properly. + * mdebugread.c: Handle scRConst and scSUndefined storage classes. + * stabsread.c (scan_file_globals): Try to resolve symbols + for shared libraries from the minimal symbol table of the main + executable first. + +Fri Nov 1 13:59:28 1996 Martin M. Hunt + + * d10v-tdep.c, config/d10v/tm-d10v.h: Major fixes to support + inferior function calls and proper stack backtracing on D10V-EVA + board. + +Fri Nov 1 10:50:51 1996 Michael Meissner + + * config/powerpc/linux.mh (NATDEPFILES): Fix up things so that it + links. + (GDBSERVER_DEPFILES,TERMCAP): Ditto. + + * monitor.c (dev_name,targ_ops): Move static variables before + first use, to avoid compiler warnings. + +Thu Oct 31 16:37:17 1996 Michael Snyder + + * m32r-tdep.c: Improved frame_chain and fn prologue analysis. + * configure.tgt: Add entry for m32r target. + * monitor.h: Add a flag to tell monitor_store_register to use + (val, regno) instead of (regno, val). + * monitor.c: Make monitor_store_register honor the above flag. + Make monitor_exp ignore DC1/DC3 for m32r. + Increase buf size in monitor_dump_regs. + +Wed Oct 30 18:14:14 1996 Michael Snyder + + * m32r-tdep.c, m32r-rom.c: New files. + * config/m32r/m32r.mt: New file. + * config/m32r/tm-m32r.h: New file. + +Tue Oct 29 16:56:01 1996 Geoffrey Noer + + * config/i386/xm-cygwin32.h: + * config/powerpc/xm-cygwin32.h: + add #define LSEEK_NOT_LINEAR so source lines aren't unexpectedly + truncated. + +Tue Oct 29 18:36:43 1996 Michael Meissner + + * config/powerpc/tm-ppc-eabi.h (TARGET_BYTE_ORDER_SELECTABLE): + Define. + +Tue Oct 29 14:59:20 1996 Stan Shebs + + * TODO: Add item suggesting an "info bfd" command. + +Tue Oct 29 12:48:04 1996 Martin M. Hunt + + * d10v-tdep.c: Snapshot that supports D10V-EVA board. + + * config/d10v/tm-d10v.h (REGISTER_NAMES): Add imap0,imap1,dmap. + (TARGET_READ_FP,TARGET_WRITE_FP): Define. + +Mon Oct 28 17:34:24 1996 Stu Grossman (grossman@critters.cygnus.com) + + * mswin/genmakes mswin/recordit: New scripts to generate make + files for MSVC. + +Sun Oct 27 20:18:04 1996 Mark Alexander + + * config/mips/{tm-vr5000.h,tm-vr5000el.h,vr5000.mt,vr5000el.mt}: + New files. + * configure.tgt: Modify cases for vr5000 to use new files. + +Sat Oct 26 07:15:14 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/alpha/alpha-osf3.mh (XM_CLIBS): Add -lm for OSF/1-4.0. + + * procfs.c (proc_set_exec_trap): Under Alpha OSF/1-4.0, tracing + the entry to the exit system call to detect termination of the + inferior stopped working. Trace termination of the inferior via + PRFS_STOPTERM instead. + (procfs_init_inferior): Do not trace entry to exit system call + if PIOCSSPCACT is defined. + (procfs_wait): Handle PR_DEAD event, which signals the termination + of the inferior if PRFS_STOPTERM is set. + + * mdebugread.c (parse_partial_symbols): Ignore stNil section + start address symbols. + + * sparc-tdep.c (get_saved_register): Get saved PC from the + frame info if not in innermost frame. + +Thu Oct 24 10:51:45 1996 Mark Alexander + + * dbxread.c (process_one_symbol): Interpret end-of-function + markers correctly; this fixes problem on Vr5000 where all + functions in a module had the same address. + * configure.in, configure.tgt, configure.host, gdbserver/configure.in: + Correct for pc-linux-gnu problem in config.guess. + * configure: Regenerate. + +Thu Oct 24 10:06:58 1996 Stu Grossman (grossman@critters.cygnus.com) + + * dbxread.c: Don't swap symbols in place, since internal and + external forms may have different sizes. Don't assume that an + internal_nlist has the same layout as an external_nlist. Create + symbol for n_strx element so to hide specifics of nlist from + partial-stab.h. + * partial-stab.h: Don't reference dbxread symbols directly. Use + CUR_SYMBOL_STRX instead. + * config/i386/xm-windows.h: Define SIGQUIT and SIGTRAP. + + * config/v850/tm-v850.h: Define PS_REGNUM and TARGET_V850 for + MSVC builds. + * mswin/gdbwin.c (reg_order): Define register order for V850. + * mswin/gui.cpp (CGuiApp::InitInstance): Define target name for + V850. + * mswin/regdoc.h: Define MAXREGS for V850. + +Tue Oct 22 16:28:20 1996 Stu Grossman (grossman@critters.cygnus.com) + + * v850-tdep.c (scan_prologue): Changes to deal with scheduled + prologues correctly. First, prologue end is now defined by + presence of a branch, jump or call insn. Second, can no longer + fix frame offsets because we may not know the offset until after a + register has been saved. + * (v850_init_extra_frame_info): Fixup frame offsets here because + we have all the info at this time. + * (v850_frame_chain): Use new calling convention for scan_prologue. + +Tue Oct 22 10:25:29 1996 Martin M. Hunt + + * d10v-tdep.c, config/d10v/tm-d10v.h: Changes to allow stack + backtraces and inferior function calls. + +Tue Oct 22 10:32:46 1996 Stan Shebs + + * mpw-make.sed: Update init.c editing to work with Oct 8 change. + (@HLDFLAGS@): Always edit out. + +Mon Oct 21 18:17:08 1996 Mark Alexander + + * mdebugread.c (parse_partial_symbols): Fix 64-bit + sign-extension problems in calculating psymtab addresses. + * buildsym.c (end_symtab): Use macro to pop context. + +Mon Oct 21 14:40:50 1996 Stu Grossman (grossman@critters.cygnus.com) + + * v850-tdep.c: Cleanup lots of things. Add many comments. + + * v850-tdep.c (v850_init_extra_frame_info v850_frame_chain): Fix + sign bugs with scanning prologues. Get a little smarter about + calculating the length of uninteresting instructions. + +Mon Oct 21 14:01:38 1996 Michael Snyder + + * top.c: Add new commands "set annotate" and "show annotate". + +Sun Oct 20 04:38:39 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * corelow.c (core_close): Clear inferior_pid only if there is + an open core_bfd. + + * cp-valprint.c (cp_print_value_fields): Pass correct address + to val_print, not 0. + + From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de): + * eval.c (evaluate_subexp_standard) [case BINOP_REPEAT]: Chase + typedefs before checking for integral type of right operand. + +Fri Oct 18 17:26:22 1996 Mark Alexander + + * mdebugread.c (parse_symbol): Fix crash when malloc has + no type info and void type has no associated pointer type. + +Thu Oct 17 18:18:20 1996 Stan Shebs + + * configure.host: New file, host configuration mapping. + * configure.tgt: New file, target configuration mapping. + * configure.in: Remove host and target mapping. + * configure: Rebuild. + +Wed Oct 16 17:46:03 1996 Stan Shebs + + * breakpoint.c (must_shift_inst_regs): New global. + (bpstat_stop_status): Change #if uses of DECR_PC_AFTER_BREAK into + equivalent expression uses. + * infrun.c (wait_for_inferior): Ditto. + +Wed Oct 16 01:53:43 1996 Stu Grossman (grossman@critters.cygnus.com) + + * v850-tdep.c (v850_push_arguments): Use symbolic names for arg + registers. + * config/v850/tm-v850.h: Change FP to 29. Define arg regs. + +Tue Oct 15 16:30:07 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (init.c): Don't use -s option with grep. It means + something different under Digital Unix. + + * buildsym.c (finish_block): Treat LOC_BASEREG_ARG and + LOC_LOCAL_ARG as arguments so that GDB will know about function + args declared this way. Mostly affects dwarf. + * dwarfread.c (decode_die_type): Change default type from int to + void. This allows GDB to recognize void functions. + * (new_symbol): If AT_PROTOTYPED is present, set a flag in the + type structure. + * findvar.c (extract_floating store_floating): Clean up comments + to reflect reality. + * gdbtypes.h: Add TYPE_FLAG_PROTOTYPED so that we can tell if a + function has a prototype. Currently, only dwarf supports this. + * utils.c (floatformat_from_doublest): Fix logic error with + converting from double to float. (It wasn't shifting mant_long if + it had a hidden bit.) + * v850-tdep.c: Add support for function calling. Fix some + problems with debugging code w/o debug symbols. + * config/v850/tm-v850.h: Ditto. + +Tue Oct 15 18:19:42 1996 Ian Lance Taylor + + * utils.c: Always ensure that size_t is defined. Check + HAVE_STDDEF_H rather than __STDC__ + (xmalloc, xrealloc): Use size_t rather than long. + +Tue Oct 15 14:24:19 1996 Martin M. Hunt + + * config/powerpc/tm-ppc-eabi.h: Undefine NO_SINGLE_STEP so targets + can use single-step commands. + +Sun Oct 13 11:38:25 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * stabsread.c (define_symbol): If REG_STRUCT_HAS_ADDR is non-zero, + follow typedefs before checking TYPE_CODE for structures and unions. + +Fri Oct 11 15:43:54 1996 Stu Grossman (grossman@critters.cygnus.com) + + * frame.h: Move definition of struct frame_saved_regs to before + struct frame to make it possible to use frame_saved_regs in + EXTRA_FRAME_INFO macro. + + * v850-tdep.c config/v850/tm-v850.h: Lotsa new functions and + macros to make frame operations (such as backtrace) work. + +Fri Oct 11 14:23:50 1996 Fred Fish + + * dbxread.c (process_one_symbol): Check for null string directly + rather than using strcmp against "". + * partial-stab.h: Ditto. + +Fri Oct 11 12:18:32 1996 Mark Alexander + + * gdbserver/{gdbreplay.c,low-linux.c,remote-utils.c,utils.c}: + Make it compile on Linux and eliminate some warnings. + +Thu Oct 10 16:32:08 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (init.c): Fixup final sed script to work around + Linux bug with `p' operator. + +Wed Oct 9 18:02:48 1996 Stan Shebs + + * remote-mips.c: Use the correct name everywhere (DDB) for NEC's + VR4300 target. + (ddb_ops, pmon_ops): Fix the documentation strings. + +Wed Oct 9 07:42:44 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (init.c): Retro HPUX grep lacks -h option. Strip + filenames with sed instead. + +Tue Oct 8 15:59:44 1996 Stu Grossman (grossman@critters.cygnus.com) + + * defs.h: Remove decls of xmalloc and xrealloc. There is a + conflicting definition in libiberty.h. + +Tue Oct 8 11:47:13 1996 Fred Fish + + * dbxread.c (dbx_symfile_read): Call free_pending_blocks rather + than poking global variable (which is now static). + * hpread.c (hpread_build_psymtabs): Ditto. + * os9kread.c (os9k_symfile_read): Ditto. + * xcoffread.c (xcoff_initial_scan): Ditto. + + * buildsym.h (free_pending_blocks): Declare here. + (pending_blocks): Remove declaration of global symbol. + (free_pendings): Remove declaration of global symbol. + (make_blockvector): Declare here. + (record_pending_block): Declare here. + + * dstread.c (make_blockvector): Remove static copy that was old + clone of version in buildsym.c. + (process_dst_block): Call record_pending_block rather than doing + it by hand. + (read_dst_symtab): Ditto. + + * buildsym.c (make_blockvector): Make global rather than static, + (record_pending_block): New function, code moved from finish_block. + (finish_block): Use record_pending_block. + (free_pending_blocks): New function. + (really_free_pendings): Call free_pending_blocks. + (pending_blocks): Make static instead of global. + (free_pendings): Make static instead of global. + +Tue Oct 8 09:03:22 1996 Stu Grossman (grossman@critters.cygnus.com) + + * config/i386/windows.mh config/i386/xm-windows.h:: New config + files to support building Wingdb (built under Microsoft build + environment). + + * Makefile.in: Add rule for hpux-thread.o (needs special header + files). + * (SUBDIRS): Remove mswin. + * Change procedure for creating init.c. Speeds things up quite a + bit. + * config.in configure configure.in: Check for select, poll. + * Check for OSF header files before including hpux-thread.o. + * Don't configure doc or testsuite when building under MSVC. + * findvar.c value.h (read_register_pid write_register_pid): Make + global. Needed for hppa-tdep.c. + * (supply_register): Don't set pid to inferior_pid when supplying + registers. + * hppa-tdep.c (saved_pc_after_call): frame_saved_pc -> + FRAME_SAVED_PC. + * (frame_saved_pc): Change name to hppa_frame_saved_pc. + * (hppa_pop_frame): Don't use a pid of 0 with target_write_pc. + Use write_pc instead, which uses the correct pid. + * (target_read_pc target_write_pc): Use read/write_register_pid + instead of read/write_register to preserve the pid passed in. + * inftarg.c (child_can_run): Add flag child_suppress_run to allow + hpux-threads.c to override this as a runnable target. + * config/pa/nm-hppah.h: Define target_new_objfile and + target_pid_to_str. + * config/pa/tm-hppa.h (FRAME_SAVED_PC): Use hppa_frame_saved_pc + instead of frame_saved_pc. + * config/m68k/tm-m68k.h: Define TARGET_M68K for Wingdb. + * config/m68k/tm-monitor.h: Use FRAME_CHAIN_VALID_ALTERNATE, since + we can't easily determine the start file bounds with ELF. + * config/mips/tm-mips.h: Define TARGET_MIPS for Wingdb. + * hpux-thread.c: New file for HPUX/OSF thread support. + * osf-share/{README AT386/cma_thread_io.h HP800/cma_thread_io.h + RIOS/cma_thread_io.h cma_attr.h cma_deb_core.h cma_debug_client.h + cma_errors.h cma_handle.h cma_init.h cma_list.h cma_mutex.h + cma_sched.h cma_semaphore_defs.h cma_sequence.h cma_stack.h + cma_stack_int.h cma_tcb_defs.h cma_util.h}: New files for OSF + thread support. + +Sun Oct 6 15:48:09 1996 Fred Fish + + * buildsym.c (finish_block): Change innerblock_anon_complaint to + print the addresses as part of the complaint. Add a complaint for + cases where the block end address is smaller than the block start + address, in case any such conditions slip through our fixup mechanism. + * symmisc.c (dump_symtab): Only print blockvector for primary + symtabs, to avoid massive duplication of output due to secondary + symtabs that point to same blockvector. Also do some minor + formatting tweaks. + +Mon Oct 7 10:42:32 1996 Per Bothner + + Replace header_files global by per-objfile field. + * gdb-stabs.h (struct dbx_symfile_info): Add fields header_files, + n_header_files, n_allocated_header_files. + * stabsread.h (header_files, n_header_files, n_allocated_header_files): + Replace externs by macros HEADER_FILES, N_HEADER_FILES, and + N_ALLOCATED_HEADER_FILES. + * dbxread.c (dbx_symfile_finish): Free HEADER_FILES. + (free_header_files, init_header-files): Don't free/init headerfiles. + (various functions): Use macros instead of header_files globals. + * stabsread.c (various functions): Likewise. + +Sun Oct 6 22:43:06 1996 Jason Merrill + + * dwarf2read.c (read_tag_reference_type): New fn. + (read_type_die): Call it. + (dwarf_attr): Also look in the DIEs referred to by specification + or abstract_origin attributes. + +Wed Oct 2 22:07:16 1996 Fred Fish + + * inferior.h (IN_SIGTRAMP): Pass pc to SIGTRAMP_START and + SIGTRAMP_END. + * config/i386/tm-i386os9k.h (SIGTRAMP_START, SIGTRAMP_END): + Define with dummy pc arg. + * config/m68k/tm-nbsd.h: Ditto. + * doc/gdbint.texinfo: Document that SIGTRAMP_START and + SIGTRAMP_END are macros that take an single argument. + +Mon Sep 30 20:02:45 1996 Fred Fish + + * defs.h: Remove define of PRIVATE_XMALLOC. + +Mon Sep 30 15:39:28 1996 Stu Grossman (grossman@critters.cygnus.com) + + * config/v850/tm-v850.h: Use distinct register for PC, not EIPC. + +Mon Sep 30 11:16:34 1996 Jeffrey A Law (law@cygnus.com) + + * top.c (execute_control_command): Free values from while_control + and if_control conditions after evaluation to avoid storage leaks. + From Peter Schauer. + +Fri Sep 27 17:43:06 1996 Stu Grossman (grossman@critters.cygnus.com) + + * configure configure.in: Recognize v850 target. + * v850-tdep.c: New file, NEC V850 target support. + * config/v850/{v850.mt tm-v850.h}: New files for NEC V850 support. + +Fri Sep 27 14:48:15 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Update current_line and + current_symtab when stepping continues in the middle of a new line. + +Fri Sep 27 10:25:30 1996 Fred Fish + + * top.c (print_gdb_version): Rewrote to comply with new GNU coding + standards for the --version option. + (print_gnu_advertisement): Remove, now part of print_gdb_version. + (show_version): Remove call to print_gnu_advertisement. + * top.h (print_gnu_advertisement): Remove prototype. + * main.c (print_gdb_help): Move help to static function and + add prototype. + (main): Call print_gdb_help rather than inlining it. + (main): Remove call to print_gnu_advertisement. + +Fri Sep 27 13:32:53 1996 Michael Meissner + + * config/d10v/tm-d10v.h (TARGET_{INT,PTR}_BIT): Define. + (TARGET_{,LONG_}DOUBLE_BIT): Ditto. + +Thu Sep 26 23:10:26 1996 Mark Alexander + + * configure.in, config/i386/tm-linux.h: Fix configure + problem on older Linux systems that prevented core files + from being recognized. + +Wed Sep 25 18:31:33 1996 Stan Shebs + + * dbug-rom.c: New file, support for Motorola's dBUG monitor. + * config/m68k/monitor.mt (TDEPFILES): Add it. + * NEWS: Mention it. + +Mon Sep 23 16:13:50 1996 Martin M. Hunt + + * config/d10v/tm-d10v.h (SAVED_PC_AFTER_CALL): Fixed. + Now single-steps correctly. + * d10v-tdep.c (d10v_pop_frame): Fixed. + +Fri Sep 20 16:10:58 1996 Stan Shebs + + * config/sh/tm-sh.h (REGISTER_NAMES): Move fp registers to + be consistent with GCC. + (FPUL_REGNUM, etc): Renumber to match list changes. + (ADDR_BITS_REMOVE): Delete. + * sh-tdep.c (sh_reg_names, sh3_reg_names, sh3e_reg_names): + Rearrange to match REGISTER_NAMES. + * sh3-rom.c (sh3_regnames, sh3e_regnames): Ditto. + +Thu Sep 19 16:19:01 1996 Martin M. Hunt + + * d10v-tdep.c: Stack chain should work now. + +Tue Sep 17 18:46:57 1996 Martin M. Hunt + + * d10v-tdep.c, config/d10v/tm-d10v.h: Snapshot. + +Tue Sep 17 12:20:50 1996 Ian Lance Taylor + + * configure.in: Add cases for MIPS 5000 like MIPS 4300. + * configure: Rebuild. + +Tue Sep 17 12:09:00 1996 Dawn Perchik + + * ser-e7kpc.c: Added wingdb support for target e7000pc. + +Tue Sep 17 10:56:52 1996 James G. Smith + + * remote-mips.c (pmon_wait): DDB PMON does not require forced + re-entry back into debug mode. + +Mon Sep 16 14:32:58 1996 James G. Smith + + * remote-mips.c (mips_load): Ensure that the PC is explicitly + loaded after a load to a DDB PMON system. + +Fri Sep 13 12:02:39 1996 Fred Fish + + * Makefile.in (INTERNAL_LDFLAGS): Add @HLDFLAGS@ to list. + (HLDENV): Set to @HLDENV@. + (gdb): Prefix link command line with $(HLDENV). + * configure.in: Add support to test for --enable-shared and + generate appropriate values for HLDFLAGS and HLDENV. + * configure: Regenerated with autoconf. + +Sun Sep 8 15:26:27 1996 Fred Fish + + * alpha-nat.c (fetch_core_registers): Match Sep 4 gdbcore.h prototype + change for core_read_registers in struct core_fns. + * core-regset.c (fetch_core_registers): Ditto & add prototype. + * core-sol2.c (fetch_core_registers): Ditto & add prototype. + * i386aix-nat.c (fetch_core_registers): Ditto & add prototype. + * i386b-nat.c (fetch_core_registers): Ditto. + * i386mach-nat.c (fetch_core_registers): Ditto & add prototype. + * irix4-nat.c (fetch_core_registers): Ditto. + * irix5-nat.c (fetch_core_registers): Ditto. + * lynx-nat.c (fetch_core_registers): Ditto & add prototype. + * m68knbsd-nat.c (fetch_core_registers): Ditto. + * mips-nat.c (fetch_core_registers): Ditto & add prototype. + * rs6000-nat.c (fetch_core_registers): Ditto. + * sparc-nat.c (fetch_core_registers): Ditto. + * sun3-nat.c (fetch_core_registers): Ditto & add prototype. + * ultra3-nat.c (fetch_core_registers): Ditto & add prototype. + + * alpha-nat.c (register_addr): Match Sep 4 gdbcore.h prototype change. + * delta68-nat.c (register_addr): Ditto. + * gdbserver/low-linux.c (register_addr): Ditto. + * gdbserver/low-hppabsd.c (register_addr): Ditto. + * i386m3-nat.c (register_addr): Ditto. + * mips-nat.c (register_addr): Ditto. + * ultra3-nat.c (register_addr): Ditto. + +Sun Sep 8 15:14:00 1996 Stu Grossman (grossman@critters.cygnus.com) + + * blockframe.c (inside_main_func): Cleanup slightly. Move + mainsym def into the block it's used in. + * configure.in configure: Allow NATDEPFILES to be recognized in + .mh files regardless of whitespace. + + * cpu32bug-rom.c (cpu32bug_cmds): Change load_response string to + keep downloads from hanging. + + * remote-wiggler.c: Add support for flash upgrades. + * (wiggler_error): Fix message format. Add new error code. + * (wiggler_write_byets): Error code is hex. Report errors with + proper routine name. + * (wiggler_read_byets): Report errors with proper routine name. + * (get_packet): Add support for new flash commands. + * (wiggler_load): Call clear_symtab_users() to reset things + properly after download. + * (flash_xfer_memory bdm_update_flash_command): New funxtions to + support flash upgrades for Wiggler. + * (_initialize_remote_wiggler): Add `bdm update-flash' command. + +Fri Sep 6 13:14:13 1996 Geoffrey Noer + + * ser-tcp.c: don't include netinet/tcp.h if __CYGWIN32__ + +Thu Sep 5 17:05:13 1996 Geoffrey Noer + + * config/i386/cygwin32.mh: + * config/powerpc/cygwin32.mh: build ser-tcp.o for both hosts + +Thu Sep 5 12:09:13 1996 Per Bothner + + * value.h (COERCE_REF): Fix previous change. + (COERCE_ENUM): Add a check_typedef (this is the real fix). + +Thu Sep 5 03:28:30 1996 Wilfried Moser + + * eval.c (evaluate_subexp_standard): In case of OP_ARRAY: make a + better check of array boundaries. + +Thu Sep 5 01:29:42 1996 Stu Grossman (grossman@critters.cygnus.com) + + * configure: Update aclocal.m4 and re-run autoconf to get correct + defs for BFD stuff. + * remote-wiggler.c (wiggler_error): Error codes are hex. Also, + fix default message generation. + +Wed Sep 4 17:28:40 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in: Add mswin to SUBDIRS. Add rules for + mswin/libwingdb.a and remote-wiggler.o. + * breakpoint.c (breakpoint_here_p): Clean up bp enabled test. + * (breakpoint_inserted_here_p): New func, just like + breakpoint_here_p, except it's honest. Honestly. + * breakpoint.h: Proto for above. + * configure configure.in: Add mswin to configdirs if host is + i[3456]86-*-windows. + * core-aout.c (fetch_core_registers register_addr) gdbcore.h: + Change all vars that can contain addresses to type CORE_ADDR. + * findvar.c (supply_register): Allow val to be NULL. This means + that regno is unsupported. + * (read_pc read_pc_pid write_pc write_pc_pid): Make non-pid forms + just call pid forms with inferior_pid so that there's only once + place to hack PC's and such. + * infrun.c (proceed): Don't skip breakpoints if user changed PC. + * remote-wiggler.c: New file. Support for BDM interface from + Macraigor Systems. + * serial.c: Enhance serial logging capability. Add hex and octal + output modes (set remotelogbase {hex|octal|ascii}. Also log + breaks, timeouts, errors, and eofs. + * serial.h: Redefine SERIAL_SEND_BREAK to go through a wrapper + function so that we can log breaks. Don't export serial_logfile + or serial_logfp. + * top.c (execute_command): Don't test for serial_logfp here. + Just call serial_log_comand, and let serial.c sort it out. + * valops.c (value_of_variable): Don't attempt to establish frames + for static and global variables. This makes things work a bit + better if the stack or frame pointer is trashed. + * config/m68k/monitor.mt (TDEPFILES): Add remote-wiggler.o. + * config/m68k/tm-m68k.h: Define STACK_ALIGN. CPU32 can't hack + misaligned stacks during function calls. + +Wed Sep 4 13:06:26 1996 Ian Lance Taylor + + * terminal.h: Don't use #elif. + +Wed Sep 4 06:49:35 1996 Wilfried Moser + + * ch-exp.c (parse_tuple_element): Allow (*): for array tuples + if we have a type. + + * eval.c (evaluate_subexp_standard): In case of OP_ARRAY: + check number of args against bounds of array to avoid + memory corruption. + + * value.h (COERCE_REF): Do a CHECK_TYPEDEF in case we get + a TYPE_CODE_TYPEDEF. + +Fri Aug 30 15:07:14 1996 James G. Smith + + * remote-mips.c: Provide support for DDBVR4300 target board. + (ddb_open, ddb_ops): Added. + (mips_monitor_type): MON_DDB Added. + (mips_enter_debug, mips_exit_debug, mips_initialize, + mips_fetch_registers, common_breakpoint, mips_load, + _initialize_remote_mips): Updated. + +Thu Aug 29 17:00:18 1996 Michael Meissner + + * nlm/configure.in (i[345]86-*-*): Recognize i686 for pentium pro. + * nlm/configure: Regenerate. + + * gdbserver/configure.in (i[345]86-*-*): Recognize i686 for + pentium pro. + +Wed Aug 28 13:11:15 1996 Ian Lance Taylor + + * configure.in: If CY_AC_PATH_TCLCONFIG can't find TCL, don't run + CY_AC_LOAD_TCLCONFIG. + * configure: Rebuild. + +Tue Aug 27 12:40:40 1996 Fred Fish + + * infrun.c (wait_for_inferior): Initialize stop_func_end before calling + find_pc_partial_function. + +Tue Aug 27 10:17:34 1996 Michael Meissner + + * configure: Regenerate again. + +Tue Aug 27 04:25:08 1996 Geoffrey Noer + + * configure.in: work around host_alias configure bug. + AC_CANONICAL_HOST is called twice (first by AC_CHECK_TOOL + and second by AC_CANONICAL_SYSTEM). The second clobbers the + previous setting. Circumventing by moving the second check + to before the first. + * configure: regenerated + +Mon Aug 26 18:36:54 1996 Martin M. Hunt + + * config/d10v/d10v.mt: New file. + * config/d10v/tm-d10v.h: New file. + * configure.in: New target D10V. + * d10v-tdep.c: New file. + +Sun Aug 25 00:09:47 1996 Fred Fish + + * rs6000-tdep.c: Fix typo in comment. + * valops.c (call_function_by_hand): Set using_gcc to 2 + for code compiled without -g, per comment in code. + * config/a29k/tm-a29k.h (STACK_ALIGN): Add comment. + * config/sparc/tm-sparc.h (STACK_ALIGN): Add comment. + * config/sparc/tm-sp64.h (STACK_ALIGN): Add comment. + * config/pyr/tm-pyr.h (STACK_ALIGN): Add comment. + * config/m88k/tm-m88k.h (STACK_ALIGN): Add comment. + * config/pa/tm-hppa.h (PUSH_ARGUMENTS): Enclose args in ()'s. + (STACK_ALIGN): Add comment, move to be with other associated + macros, and document. + * config/mips/tm-mips.h (PUSH_ARGUMENTS): Enclose args in ()'s. + (STACK_ALIGN): Remove completely, handled by PUSH_ARGUMENTS. + * config/alpha/tm-alpha.h (PUSH_ARGUMENTS): Enclose args in ()'s. + * config/rs6000/tm-rs6000.h (STACK_ALIGN): Remove completely, + handled by PUSH_ARGUMENTS. + (PUSH_ARGUMENTS): Enclose args in ()'s. + +Fri Aug 23 13:55:05 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Try to reenable shared library + breakpoints even if auto_solib_load is not set. + +Wed Aug 21 16:31:27 1996 Fred Fish + + * valprint.c (print_longest): Test for CC_HAS_LONG_LONG as well as + PRINTF_HAS_LONG_LONG. + * expprint.c (dump_expression): Ditto. + * configure.in: Fix check for long long support in compiler to + use a function body, not a nested function. + * configure: Rebuild with autoconf. + +Tue Aug 20 17:59:42 1996 Ian Lance Taylor + + * aclocal.m4: Include ../bfd/aclocal.m4. + * configure.in: Add stdlib.h to AC_CHECK_HEADERS. Call + BFD_NEED_DECLARATION on malloc, realloc, and free. + * acconfig.h: Add NEED_DECLARATION_MALLOC, + NEED_DECLARATION_REALLOC, and NEED_DECLARATION_FREE. + * configure, config.in: Rebuild. + * defs.h: Include and based on HAVE_*_H + rather than __STDC__. Only declare malloc, realloc, and free if + NEED_DECLARATION_* is defined. + +Tue Aug 20 15:37:03 1996 Fred Fish + + * solib.c (_initialize_solib): Add missing '\' chars at ends of + strings that continue on next line. + (enable_break): Replace "return 0" with setting success to zero + and letting normal return handle the return. + +Sat Aug 17 14:16:23 1996 Fred Fish + + * mips-tdep.c (mips_push_arguments): Make sure sp and struct_addr + are properly aligned. + +Fri Aug 16 17:54:26 1996 Stan Shebs + + * rs6000-tdep.c (rs6000_fix_call_dummy): Add full set of arguments. + * config/rs6000/tm-rs6000.h (FIX_CALL_DUMMY): Pass all arguments + to function, declare function correctly. + +Fri Aug 16 17:24:35 1996 Dawn Perchik + + * symtab.h: changed namespace to _namespace for compiling under + MFC v4.0. + +Fri Aug 16 13:52:21 1996 Stan Shebs + + * mpw-make.sed: Update for various recent changes, add some + comments. + +Fri Aug 16 15:47:36 1996 Michael Meissner + + * config/rs6000/tm-rs6000.h (FIX_CALL_DUMMY): Cast args to be an + integer for type correctness. + +Fri Aug 16 15:15:37 1996 James G. Smith + + * config/mips/{vr4300.mt, vr4300el.mt} (SIM): Add -lm when + simulator is included. + +Thu Aug 15 13:44:13 1996 Fred Fish + + * findvar.c (write_register_pid): Only needed when TARGET_WRITE_PC + is not defined. + (read_register_pid): Only needed when TARGET_READ_PC is not + defined. + * hppa-tdep.c (frame_saved_pc): Remove prototype. + * infptrace.c (udot_info): Prototype when CHILD_XFER_MEMORY is + not defined. + * config/xm-aix4.h (aix_resizewindow): Convert old style decl + to prototype. + * xcoffsolib.c (command.h): Include for needed prototypes. + +Wed Aug 14 17:54:19 1996 Stu Grossman (grossman@critters.cygnus.com) + + * config/i386/cygwin32.mh: Set NAT_FILE to nm-empty.h to make + native work. + +Wed Aug 14 02:03:42 1996 Fred Fish + + From Blair MacIntyre : + * hppa-tdep.c (hppa_fix_call_dummy): Use MSYMBOL_TYPE rather + than SYMBOL_TYPE on msymbols. + * somsolib.c (som_solib_create_inferior_hook): Ditto. + + * Makefile.in (init.c): Generate with prototypes. + + * config/pa/tm-hppa.h (frame_saved_pc): Add prototype. + * config/rs6000/xm-rs6000.h (aix_resizewindow): Ditto. + * config/rs6000/tm-rs6000.h (frame_initial_stack_address): Ditto. + (pc_load_segment_name): Ditto. + (pop_frame): Ditto. + (extract_return_value): Ditto. + (is_magic_function_pointer): Ditto. + (push_dummy_frame): Ditto. + (fix_call_dummy): Ditto. + (push_arguments): Ditto. + (skip_trampoline_code): Ditto. + (aix_process_linenos): Ditto. + + * config/m68k/tm-cisco.h (get_longjmp_target): Add prototype. + * config/m68k/tm-es1800.h: Ditto. + * config/m68k/tm-vx68.h: Ditto. + * config/m68k/tm-sun3.h: Ditto. + * config/m68k/tm-m68kv4.h: Ditto. + +Tue Aug 13 23:04:36 1996 Fred Fish + + * config/mips/nm-mips.h (get_longjmp_target): Add prototype. + * config/mips/nm-irix3.h (get_longjmp_target): Add prototype. + * remote-mips.c (mips_read_processor_type): Remove prototype. + * mips-tdep.c (gdb_print_insn_mips): Add prototype and make static. + * irix5-nat.c (fetch_core_registers): Add prototype. + +Mon Aug 12 21:23:44 1996 Fred Fish + + * remote-pa.c (boot_board): Add dummy params to make type compatible + for passing to add_com. + * scm-exp.c (scm_lreadr): Ensure svalue is not used uninitialized. + * buildsym.c (compare_line_numbers): Change function to match + prototype and also what qsort expects. + +Mon Aug 12 19:19:00 1996 Mark Alexander + + * remote.c: Make remote_write_size public. + * sh-tdep.c (_initialize_sh_tdep): Set remote_write_size to 300 + to prevent packet errors with some versions of CMON. + +Mon Aug 12 16:20:58 1996 Stu Grossman (grossman@critters.cygnus.com) + + * defs.h: Define CONST_PTR as blank if compiling with Microsoft + C, else it's `const'. + * c-lang.c c-lang.h ch-lang.c f-lang.c language.c m2-lang.c + scm-lang.c: Microsoft C can't hack const pointers. Use CONST_PTR + macro instead. + * configure configure.in defs.h: Use AC_C_CONST to figure out if + the compiler supports const. Gets rid of some cruft in defs.h. + * dwarf2read.c: -> "gdb_string.h" + * remote-sim.c: Add prototypes. Fix call to gdbsim_kill. + * sparcl-tdep.c (download): Add prototypes to write_routine and + start_routine args. + + * mswin/gdbwin.c: Don't include both varargs.h AND stdarg.h. Get + rid of varargs.h Include string.h. + * (gdbwin_update gdbwin_fputs regs_changed_f bpt_changed_f + update): Fix prototypes, fix calls. + * (update): Return value for catch_errors. + * (run_execute_command togdb_command_from_tty togdb_command): + Cleanup catching of errors from calls to execute_command. Also, + dup command string to avoid modifying const strings. + * (togdb_breakinfo_i_init togdb_breakinfo_i_next): Use 0 instead + of NULL when see if b->address isn't set. + * (bi_disable_bpt bi_enable_bpt bi_delete_all + bi_delete_breakpoint): Add arg to calls to update. + * (gui_command): Add prototype. + * (mswin_query): Fix prototype. + * (_initialize_gdbwin): Dup string to avoid modifying const. + * (info_path togdb_get_info_path): Remove const from decls cuz + this can't be const (it points at malloc'ed memory). + * (togdb_searchpath): Remove const from path. Dup string to + avoid modifying const strings. + * rindex -> strrchr. + * (gdbwin_list_symbols): Regexp param is const. + * Fix lots of refs to psymtabs to deref correct pointers. + * (togdb_set_breakpoint_sal): Call set_breakpoint_sal with sal, + not &sal. + * mswin/gdbwin.h (togdb_searchpath togdb_get_info_path + toget_set_info_path): Fix prototypes to match reality. + * mswin/gui.cpp: Define _beginthreadex and _endthreadex routines + with proper prototypes. + * mswin/iface.cpp (gdbwin_fputs): Define with correct number of args. + * mswin/ser-win32s.c: Fix defs of min and max. + * mswin/serdll32.c (OpenComm16): Make cbInQueue and cbOutQueue be + USHORT. + * (WriteComm16): Change lpBug from LPVOID to LPCSTR. + * mswin/serdll32.h: Fix prototypes for OpenComm16 and WriteComm16. + +Sun Aug 11 20:54:16 1996 Stu Grossman (grossman@critters.cygnus.com) + + * main.c (main): Make sure command loop is used with cygwin32. + * terminal.h: Allow cygwin32 to use termios.h. + +Fri Aug 9 12:42:49 1996 Jeffrey A Law (law@cygnus.com) + + * somread.c (som_symtab_read): Handle secondary definition + symbols (aka weak symbols). + + * config/tm-hppa.h (EXTRACT_RETURN_VALUE): Fix thinko in + last change. + +Thu Aug 8 10:12:36 1996 Stu Grossman (grossman@critters.cygnus.com) + + * symfile.c (symfile_bfd_open): Change ifdef from __WIN32__ to + _WIN32. + + * somread.c: Rearrange order of includes to fix warnings under + hpux-10.10. Also don't include sys/file.h. + +Wed Aug 7 21:45:52 1996 Stu Grossman (grossman@critters.cygnus.com) + + * dbxread.c: Don't include param.h or sys/file.h. + * (dbx_symfile_read): Determine symfile_relocatable from bfd + flags instead of file extension. Also clean up a little bit. + +Wed Aug 7 17:18:37 1996 Stu Grossman (grossman@critters.cygnus.com) + + * dwarf2read.c dwarfread.c exec.c infcmd.c infrun.c main.c + mdebugread.c os9kread.c source.c top.c utils.c: Don't + include param.h or sys/file.h (or unistd.h in some cases). + * defs.h exec.c inflow.c remote-array.c remote-e7000.c + sparcl-tdep.c terminal.h utils.c: Replace all occurances of + __WIN32__, WINGDB, WIN32, etc... with _WIN32. + * main.c: Remove #ifndef WINGDB around option processing. Fix + bug with passing argc==0 and argv==NULL to getopt. + * (main) Remove calls to access() before source_command. Let + soure_command handle access errors. + * maint.c (maintenance_dump_me): #ifdef out for _WIN32. + * symtab.c (operator_chars): Make this global for wingdb. + * top.c (disconnect): #ifdef out for _WIN32. + * (source_command): If got an error and from_tty, then call print + error, else just return quietly. + * utils.c (fatal_dump_core): Can't kill ourselves under windows. + Just exit. + * (pollquit notice_quit): #ifdef out stuff that doesn't exist + under windows. + +Wed Aug 7 09:59:19 1996 Jeffrey A Law (law@cygnus.com) + + * config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Tweak for + structures > 4 bytes in size. + + * valops.c (call_function_by_hand): Handle aligning stacks that + grow up correctly. + * config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Define. + (STACK_ALIGN): Define. + * hppa-tdep.c (hppa_alignof): Don't demand a minumim two byte + alignment on structs/unions. + +Sun Aug 4 16:22:42 1996 Fred Fish + + * config/powerpc/nm-aix.h (PTRACE_ARG3_TYPE): Define to "int *", + which is the documented type under at least AIX 3 and AIX 4. + +Sat Aug 3 04:02:46 1996 Fred Fish + + * config/alpha/alpha-osf3.mh (XM_FILE): Change from xm-alpha.h to + xm-alphaosf.h. + (MMALLOC_CFLAGS): Define NO_MMCHECK to not install consistency + checks. + +Thu Aug 1 10:11:34 1996 Fred Fish + + * config/mips/tm-mips.h (TM_MIPS_H): Enclose file contents in + this, define when contents are included. + (mips_read_processor_type): Add prototype. + * config/mips/xm-mips.h: Remove strdup decl, now in gdb_string.h + * mdebugread.c (ecoff_relocate_efi): Add prototype. + (fixup_sigtramp): Only needed when TM_MIPS_H is defined. + +Wed Jul 31 20:21:24 1996 Fred Fish + + * rs6000-nat.c (add_vmap): Return 0 to caller rather than random value. + (vmap_ldinfo): Ensure got_exec_file is not used uninitialized. + (fetch_core_registers): Add prototype. + (vmap_symtab): Ditto. + (objfile_symbol_add): Ditto. + (add_vmap): Ditto. + (vmap_ldinfo): Ditto. + (vmap_exec): Ditto. + +Tue Jul 30 17:57:46 1996 Stan Shebs + + * stabsread.c (get_substring): Declare second arg as int. + + * remote-es.c: Include gdb_string.h after defs.h. + +Mon Jul 29 21:13:20 1996 Fred Fish + + * rs6000-tdep.c (push_arguments): Remove unused variable "pc". + (branch_dest): Remove unused variable "offset". + (pop_dummy_frame): Add prototype and make static. + (push_arguments): Guard against using len uninitialized. + (push_arguments): Guard against using arg uninitialized. + (frame_saved_pc): Remove unused variable "frameless". + (free_loadinfo): Ifdef out unused function. + + * xcoffread.c (compare_lte): Change prototype and function to + be correct type for passing to qsort. + (add_stab_to_list): Ifdef out unused function and prototype. + (compare_lte): Add prototype + (arrange_linetable): Ditto. + (record_include_begin): Ditto. + (record_include_end): Ditto. + (process_linenos): Ditto. + (xcoff_next_symbol_text): Ditto. + (scan_xcoff_symtab): Ditto. + (xcoff_initial_scan): Ditto. + + * mips-tdep.c (mips_read_processor_type): Add parens around + bitwise-and operands in comparison; previous expression always + evaluated to 0 because of equality comparison of two constants. + + * rs6000-tdep.c (skip_prologue): Add missing parens around + operands of logical-or so that first operand does not bind + to previous logical-and. + + * configure.in: Expand "long long" test to include code that triggers + known problem on HPUX with native compiler. + (configure): Regenerated. + +Mon Jul 29 18:12:27 1996 Jeffrey A Law (law@cygnus.com) + + * somsolib.c (som_solib_create_inferior_hook): Don't + warn if __d_pid can't be found. + +Sun Jul 28 10:46:39 1996 Fred Fish + + * config/mips/tm-mips.h (struct frame_info): Forward decl. + (struct type): Ditto. + (struct value): Ditto. + + * config/mips/tm-mips.h (sigtramp_address): Move extern decl + from mips-tdep.c to here. + (sigtramp_end): Ditto. + (fixup_sigtramp): Ditto. + + * config/mips/tm-mips.h (init_extra_frame_info): Add prototype. + (mips_frame_chain): Ditto. + (mips_step_skips_delay): Ditto. + (mips_frame_saved_pc): Ditto. + (mips_find_saved_regs): Ditto. + (mips_frame_num_args): Ditto. + (mips_pop_frame): Ditto. + (mips_extract_return_value): Ditto. + (mips_store_return_value): Ditto. + (mips_push_dummy_frame): Ditto. + (mips_push_arguments): Ditto. + (mips_do_registers_info): Ditto. + (ecoff_relocate_efi): Ditto. + (ecoff_relocate_efi): Ditto. + * irix4-nat.c (fetch_core_registers): Add prototype. + * mips-tdep.c (read_next_frame_reg): Add prototype + (heuristic_proc_start): Ditto. + (heuristic_proc_desc): Ditto. + (mips_print_register): Ditto. + * config/mips/nm-irix5.h (procfs_set_watchpoint): Add prototype. + (procfs_stopped_by_watchpoint): Ditto. + * config/mips/nm-irix4.h (procfs_set_watchpoint): Add prototype. + (procfs_stopped_by_watchpoint): Ditto. + * config/alpha/tm-alpha.h (ecoff_relocate_efi): Add prototype. + (struct symbol): Add forward decl for prototype. + + * breakpoint.c (internal_breakpoint_number): Only needed if + GET_LONGJMP_TARGET or SOLIB_ADD is defined. + + * objfiles.c (ecoff_relocate_efi): Remove prototype. + +Sat Jul 27 17:47:35 1996 Fred Fish + + * configure.in: Add test for "long long" support. + * configure: Regenerate with autoconf. + * acconfig.h: Add CC_HAS_LONG_LONG + * config.in: Regenerate with autoheader. + * config/mips/tm-mips64.h (FORCE_LONG_LONG): Remove + * config/sparc/tm-sp64.h (CC_HAS_LONG_LONG): Remove. + * config/mips/tm-vr4300el.h (CC_HAS_LONG_LONG): Remove. + * config/mips/tm-vr4300.h (CC_HAS_LONG_LONG): Remove. + * config/mips/xm-irix5.h (CC_HAS_LONG_LONG): Remove + (PRINTF_HAS_LONG_LONG): Remove. + (FORCE_LONG_LONG): Remove. + * config/powerpc/xm-aix.h (UINT_MAX): Undef and use gdb's version. + * config/convex/xm-convex.h (CC_HAS_LONG_LONG): Remove + (PRINTF_HAS_LONG_LONG): Remove. + * config/xm-nbsd.h (CC_HAS_LONG_LONG): Remove. + (PRINTF_HAS_LONG_LONG): Remove. + * config/pa/tm-hppa.h (GET_FIELD): Put parens around + subtraction inside shift. Put parens around subtraction + in operand of bitwise and. + (struct frame_info): Forward declare + if __STDC__ defined. + (frame_saved_regs): Ditto. + (struct value): Ditto. + (struct type): Ditto. + (struct inferior_status): Ditto. + (init_extra_frame_info): Add prototype. + (skip_prologue): Ditto. + (frameless_function_invocation): Ditto. + (frame_chain): Ditto. + (frame_chain_valid): Ditto. + (saved_pc_after_call): Ditto. + (hppa_fix_call_dummy): Ditto. + (hppa_push_arguments): Ditto. + (pa_do_registers_info): Ditto. + (in_solib_call_trampoline): Ditto. + (in_solib_return_trampoline): Ditto. + (push_dummy_frame): Ditto. + * convex-tdep.c (decout): Use print_longest rather than + fprintf_filtered. + * defs.h: Remove use of FORCE_LONG_LONG and __GNUC__ to set + CC_HAS_LONG_LONG. + (INT_MIN): Fix so it works correctly when assigned to a long long. + * valprint.c (longest_to_int): Rewrite to remove dependence + on INT_MIN and INT_MAX. + (print_longest): Rewrite the code that falls back to synthesized + hex output when LONGEST value is not representable as in a long and + printf doesn't support printing long longs. + * ch-valprint.c (chill_val_print): Cast 2nd arg of + chill_print_type_scalar to LONGEST. + chill_print_type_scalar): Make static and add prototype. + * hppa-tdep.c (get_field): Ifdef out unused function. + (set_field): Ditto. + (extract_3): Ditto. + (extract_5_store): Ditto. + (extract_11): Ditto. + (extract_12): Ditto. + (deposit_17): Ditto. + (extract_14): Convert to static and add prototype. + (deposit_14): Ditto. + (extract_21): Ditto. + (deposit_21): Ditto. + (extract_17): Ditto. + (extract_5r_store): Ditto. + (extract_5R_store): Ditto. + (extract_5_load): Ditto. + (find_proc_framesize): Ditto. + (find_dummy_frame_regs): Ditto. + (sign_extend): Ditto. + (find_unwind_entry): Add prototype. + (find_return_regnum): Ditto. + (unwind_command): Ditto. + (find_dummy_frame_regs): Add parens around subtraction in operand + of bitwise-and. + (skip_prologue): Add parens around operands of logical-and inside + operand of logical-or. + (sign_extend): Add parens around operands of subtraction inside + operand of shift. + (low_sign_extend): Ditto. + * top.c (filename_completer): Convert old style decl of + filename_completion_function into prototype. + * f-lang.c (patch_common_entries): Ifdef out unused function. + * stabsread.c (read_cfront_baseclasses): Remove unused local + variable "msg_noterm". + (resolve_cfront_continuation): Remove unused local variable "fip". + (read_type): Remove unused variable xtypenums. + (read_cfront_static_fields): Remove unused variable "i". + (read_cfront_static_fields): Remove unused variable "nfields". + (read_cfront_member_functions): Add missing comment terminator. + (read_cfront_static_fields): Return 1 rather than random value. + (read_cfront_baseclasses): Ditto. + (read_cfront_baseclasses): Ditto. + (read_cfront_baseclasses): Ditto. + * somsolib.c (som_solib_create_inferior_hook): Remove unused + variable "u". + (som_solib_create_inferior_hook): Remove unused variable + shadow_contents. + (language.h): Add for needed prototypes. + (som_solib_sharedlibrary_command): Add prototype. + * hpread.c: (hpread_read_array_type): Add prototype. + * somread.c (hpread_build_pysmtabs): Add prototype. + (hpread_symfile_finish): Ditto. + (hpread_symfile_init): Ditto. + * hppah-nat.c (fetch_register): Convert old style decl + to prototype. + (gdbcore.h): Include for needed prototypes. + (fetch_register): Remove unused variable "mess". + * remote-pa.c (get_offsets): Ifdef out unused function. + (remote_start_remote): Remove unused variable "timeout". + (boot_board): Add prototype. + (reaad_frame): Add prototype. + (getpkt): Remove unused variable "bp". + (remote_kill): Add prototype. + (remote_mourn): Add prototype. + (remote_insert_breakpoint): Add prototype. + (remote_remove_breakpoint): Add prototype. + * valops.c (value_push): Only use if PUSH_ARGUMENTS is not defined. + * infcmd.c (do_registers_info): Only need prototype if + DO_REGISTERS_INFO is not defined. + (breakpoint_auto_delete_contents): Only need if + CALL_DUMMY_BREAKPOINT_OFFSET is defined. + +Sat Jul 27 08:49:49 1996 Fred Fish + + * xcoffread.c (xcoff_end_psymtab): Add textlow_not_set parameter. + (END_PSYMTAB): Ditto. + (scan_xcoff_symtab): Call xcoff_end_psymtab with textlow_not_set. + +Fri Jul 26 14:07:37 1996 Ian Lance Taylor + + * printcmd.c (_initialize_printcmd): Initialize + tm_print_insn_info.flavour. + +Thu Jul 25 19:41:31 1996 Fred Fish + + * Makefile.in (scm-valprint.o): Depends upon gdbcore_h. + (arm-tdep.o): Ditto. + (dcache.o): Ditto. + (i386ly-tdep.o): Ditto. + (i960-tdep.o): Ditto. + (m68k-tdep.o): Ditto. + (nindy-tdep.o): Ditto. + (scm-lang.o): Ditto. + (w65-tdep.o): Ditto. + (z8k-tdep.o): Ditto. + (m68k-tdep.o): Depends upon value_h and gdb_string.h + (m2-valprint.o): Depends upon m2-lang.h. + (sparc-tdep.o): Depends upon gdb_string.h + (valprint.o): Depends upon valprint.h + + * remote-e7000.c (notice_quit): Remove prototype. + * top.c (initialize_targets): Remove prototype, now in target.h. + * stabsread.c (resolve_cfront_continuation): Remove prototype. + * dbxread.c (resolve_cfront_continuation): Remove prototype. + * symfile.h (set_demangling_style): Remove prototype. + * config/tm-sysv4.h (in_plt_section): Remove prototype, in objfiles.h. + * config/sparc/tm-sparc.h (single_step): Remove extern decl, now in + target.h. + * config/arc/tm-arc.h (one_stepped, single_step): Remove extern decls, + now in target.h. + * ser-unix.c (hardwire_restore): Remove obsolete prototype. + * sparc-tdep.c (single_step): Remove forward decl of isbranch. + * scm-lang.c (find_function_in_inferior): Remove prototype. + (value_allocate_space_in_inferior): Ditto. + * infrun.c (write_pc_pid): Remove prototype, now in inferior.h. + * defs.h (strchr): Remove declarations, they are declared in + gdb_string.h also. + (strrchr): Ditto. + (strstr): Ditto. + (strtok): Ditto. + (strerror): Ditto. + * f-valprint.c (f77_print_array_1): Remove extra arg that was being + passed to f77_print_array_1. + * gdbtypes.c (add_name): Remove unused variables lenstrlen and lenstr. + * scm-exp.c (scm_istr2int): Remove unused variable "j". + (scm_parse): Remove unused variable "str". + * hp300ux-nat.c (store_inferior_register): Remove unused variable + "buf". + (store_inferior_registers): Remove unnecessary decl "registers". + * m68k-tdep.c (m68k_pop_frame): Remove unused variable "fi". + * scm-lang.c (scm_get_field): Remove unused variable "val". + (scm_lookup_name): Remove unused variable "symval". + * objfiles.c (map_to_file): Remove unused local variable "tempfd". + * procfs.c (do_attach, do_detach): Remove unused variable "result". + (last_resume_pid): Remove unused static variable. + * alpha-tdep.c (alpha_linux_sigtramp_offset): Remove unused variable + "res". + * objfiles.c (map_to_address): Remove unused function. + * f-valprint.c (print_max): Remove extraneous extern decl, + in valprint.h. + (calc_f77_array_dims): Remove extraneous prototype, in f-lang.h. + * ch-exp.c (write_lower_upper_value): Remove prototype for + type_lower_upper. + + * gdbtypes.c (cfront_mangle_name): #ifdef out unused function. + * ch-exp.c (parse_mode_call): Ditto. + * f-valprint.c (there_is_a_visible_common_named): Ditto. + * f-lang.c (clear_function_list): Ditto. + (get_bf_for_fcn): Ditto. + (clear_bf_list): Ditto. + (add_common_block): Ditto. + (patch_all_commons_by_name): Ditto. + (find_first_common_named): Ditto. + (add_common_entry): Ditto. + (allocate_saved_function_node): Ditto. + (allocate_saved_bf_node): Ditto. + (allocate_common_entry_node): Ditto. + (allocate_saved_f77_common_node): Ditto. + + * arm-tdep.c (gdbcore.h): Include for necessary prototypes. + * dcache.c (gdbcore.h): Ditto. + * i386ly-tdep.c (gdbcore.h): Ditto. + * i960-tdep.c (gdbcore.h): Ditto. + * m2-valprint.c (m2-lang.h): Ditto. + * m68k-tdep.c (gdbcore.h): Ditto. + (value.h): Ditto. + (gdb_string.h): Ditto. + * nindy-tdep.c (gdbcore.h): Ditto. + * scm-lang.c (gdbcore.h): Ditto. + * scm-valprint.c (gdbcore.h): Ditto. + * w65-tdep.c (gdbcore.h): Ditto. + * z8k-tdep.c (gdbcore.h): Ditto. + * sparc-tdep.c (gdb_string.h): Include. + * valprint.c (valprint.h): Include. + + * config/xm-lynx.h: Remove part of comment about INT_MIN + redefined warnings from defs.h, since INT_MIN define in + defs.h is now protected by #ifndef INT_MIN. + * config/i386/xm-i386bsd.h: Ditto. + * config/m68k/xm-hp300bsd.h: Ditto. + * config/m68k/xm-news.h: Ditto. + + * config/pa/xm-hppah.h (INT_MIN): Remove bogus INT_MIN + definition as 0x80000000. The macro in defs.h is better. + * config/i386/xm-i386m3.h (INT_MIN): Ditto. + * config/i386/xm-i386mach.h (INT_MIN): Ditto. + * config/ns32k/xm-ns32km3.h (INT_MIN): Ditto. + * config/pa/xm-hppab.h: Ditto. + + * core-aout.c (fetch_core_registers): Add prototype. + * hp300ux-nat.c (fetch_inferior_register): Ditto. + (store_inferior_register_1): Ditto. + (store_inferior_register): Ditto. + * config/m68k/tm-m68k.h (find_saved_regs): Ditto. + *scm-valprint.c (c_val_print): Ditto. + * procfs.c (add_fd): Ditto. + (remove_fd): Ditto. + (wait_fd): Ditto. + (sigcodename): Ditto. + (sigcodedesc): Ditto. + (procfs_kill_inferior): Ditto. + (procfs_xfer_memory): Ditto. + (procfs_store_registers): Ditto. + (create_procinfo): Ditto. + (procfs_init_inferior): Ditto. + (proc_set_exec_trap): Ditto. + (procfs_attach): Ditto. + (procfs_detach): Ditto. + (procfs_prepare_to_store): Ditto. + (procfs_files_info): Ditto. + (procfs_open): Ditto. + (procfs_wait): Ditto. + (procfs_fetch_registers): Ditto. + (procfs_mourn_inferior): Ditto. + (procfs_can_run): Ditto. + (procfs_thread_alive): Ditto. + (procfs_stop): Ditto. + * alpha-nat.c (fetch_core_registers): Ditto. + * config/alpha/tm-alpha.h (alpha_osf_skip_sigtramp_frame): Ditto. + * objfiles.c (ecoff_relocate_efi): Ditto. + * inflow.c (pass_signal): Ditto. + (handle_sigio): Ditto. + * annotate.c (breakpoint_changed): Ditto. + * callback.c (wrap): Ditto. + (fdbad): Ditto. + (fdmap): Ditto. + * utils.c (malloc_botch): Ditto. + (fputs_maybe_filtered): Ditto. + (vfprintf_maybe_filtered): Ditto. + * defs.h (notice_quit): Ditto. + * defs.h (xmalloc, xrealloc): Ditto. + * top.c (stop_sig): Ditto. + (init_signals): Ditto. + (user_defined_command): Ditto. + (source_cleanup_lines): Ditto. + (dont_repeat_command): Ditto. + (serial_log_command): Ditto. + (disconnect): Ditto. + * target.h (initialize_targets): Ditto. + * os9kread.c (read_minimal_symbols): Ditto. + * mdebugread.c (mdebug_psymtab_to_symtab): Ditto. + (fdr_name): Ditto. + (push_parse_stack): Ditto. + (pop_parse_stack): Ditto. + (is_pending_symbol): Ditto. + (add_pending): Ditto. + * serial.c (serial_logchar): Ditto. + (serial_interface_lookup): Ditto. + * serial.h (serial_log_command): Ditto. + * f-valprint.c (info_common_command): Ditto. + * gdbtypes.h (print_type_scalar): Ditto. + * scm-valprint.c (scm_scmlist_print): Ditto. + (scm_ipruk): Ditto. + * scm-lang.c (scm_printstr): Ditto. + (in_eval_c): Ditto. + (evaluate_subexp_scm): Ditto. + * scm-exp.c (scm_read_token): Ditto. + (scm_skip_ws): Ditto. + (scm_lreadparen): Ditto. + * m2-lang.c (emit_char): Ditto. + (m2_printchar): Ditto. + (m2_printstr): Ditto. + (m2_create_fundamental_type): Ditto. + * f-lang.c (emit_char): Ditto. + (f_printchar): Ditto. + (f_printstr): Ditto. + (f_create_fundamental_type): Ditto. + * ch-lang.c (chill_printchar): Ditto. + (chill_printstr): Ditto. + (chill_create_fundamental_type): Ditto. + (value_chill_length): Ditto. + (value_chill_card): Ditto. + (value_chill_max_min): Ditto. + (evaluate_subexp_chill): Ditto. + * ch-exp.c (PEEK_TOKEN): Ditto. + (peek_token_): Ditto. + (forward_token_): Ditto. + (parse_case_label): Ditto. + (parse_opt_untyped_expr): Ditto. + (parse_unary_call): Ditto. + (parse_call): Ditto. + (parse_named_record_element): Ditto. + (parse_tuple_element): Ditto. + (parse_opt_element_list): Ditto. + (parse_tuple): Ditto. + (parse_primval): Ditto. + (parse_operand6): Ditto. + (parse_operand5): Ditto. + (parse_operand4): Ditto. + (parse_operand3): Ditto. + (parse_operand2): Ditto. + (parse_operand1): Ditto. + (parse_operand0): Ditto. + (parse_expr): Ditto. + (parse_then_alternative): Ditto. + (parse_else_alternative): Ditto. + (parse_if_expression): Ditto. + (parse_untyped_expr): Ditto. + (growbuf_by_size): Ditto. + (match_simple_name_string): Ditto. + (decode_integer_value): Ditto. + (decode_integer_literal): Ditto. + (match_float_literal): Ditto. + (match_float_literal): Ditto. + (match_string_literal): Ditto. + (match_character_literal): Ditto. + (match_integer_literal): Ditto. + (match_bitstring_literal): Ditto. + (write_lower_upper_value): Ditto. + * ch-lang.h (type_lower_upper): Ditto. + * c-lang.c (emit_char): Ditto. + * dwarfread.c (free_utypes): Ditto. + * stabsread.h (resolve_cfront_continuation): Ditto. + * stabsread.c (get_substring): Ditto. + (read_one_struct_field): Ditto. + * stabsread.h (process_later): Ditto. + * demangle.c (set_demangling_command): Ditto. + * defs.h (set_demangling_style): Ditto. + * maint.c (maintenance_info_command): Ditto. + (print_section_table): Ditto. + (maintenance_info_sections): Ditto. + (maintenance_print_command): Ditto. + * symtab.h (maintenance_print_statistics): Ditto. + * objfiles.h (in_plt_section): Ditto. + * objfiles.c (add_to_objfile_sections): Ditto. + * bcache.c (hash): Ditto. + (lookup_cache): Ditto. + * exec.c (bfdsec_to_vmap): Ditto. + (ignore): Ditto. + * f-exp.y (growbuf_by_size, match_string_literal): Ditto. + * language.c (unk_lang_printchar): Ditto. + (unk_lang_printstr): Ditto. + (unk_lang_create_fundamental_type): Ditto. + (unk_lang_print_type): Ditto. + (unk_lang_val_print): Ditto. + (unk_lang_value_print): Ditto. + * target.c (update_current_target): Ditto. + (debug_to_open): Ditto. + (debug_to_close): Ditto. + (debug_to_attach): Ditto. + (debug_to_detach): Ditto. + (debug_to_resume): Ditto. + (debug_to_wait): Ditto. + (debug_to_fetch_registers): Ditto. + (debug_to_store_registers): Ditto. + (debug_to_prepare_to_store): Ditto. + (debug_to_xfer_memory): Ditto. + (debug_to_files_info): Ditto. + (debug_to_insert_breakpoint): Ditto. + (debug_to_remove_breakpoint): Ditto. + (debug_to_terminal_init): Ditto. + (debug_to_terminal_inferior): Ditto. + (debug_to_terminal_ours_for_output): Ditto. + (debug_to_terminal_ours): Ditto. + (debug_to_terminal_info): Ditto. + (debug_to_kill): Ditto. + (debug_to_load): Ditto. + (debug_to_lookup_symbol): Ditto. + (debug_to_create_inferior): Ditto. + (debug_to_mourn_inferior): Ditto. + (debug_to_can_run): Ditto. + (debug_to_notice_signals): Ditto. + (debug_to_thread_alive): Ditto. + (debug_to_stop): Ditto. + * breakpoint.h (set_breakpoint_sal): Ditto. + * remote-utils.c (usage): Ditto. + * remote.c (set_thread): Ditto. + (remote_thread_alive): Ditto. + (get_offsets): Ditto. + (read_frame): Ditto. + (remote_insert_breakpoint): Ditto. + (remote_remove_breakpoint): Ditto. + * sparc-nat.c (fetch_core_registers): Ditto. + * corelow.c (add_to_thread_list): Ditto. + (ignore): Ditto. + * inftarg.c (proc_wait): Ditto. + * infptrace.c (udot_info): Ditto. + (fetch_register): Ditto. + * ser-unix.c (hardwire_noflush_set_tty_state): Ditto. + (hardwire_print_tty_state): Ditto. + (hardwire_flush_output): Ditto. + (hardwire_flush_input): Ditto. + (hardwire_send_break): Ditto. + (hardwire_setstopbits): Ditto. + * ser-tcp.c (tcp_return_0): Ditto. + (tcp_noflush_set_tty_state): Ditto. + (tcp_print_tty_state): Ditto. + * solib.c (match_main): Ditto. + * gdbtypes.c (print_bit_vector): Ditto. + (print_arg_types): Ditto. + (dump_fn_fieldlists): Ditto. + (print_cplus_stuff): Ditto. + * symfile.h (entry_point_address): Ditto. + * symfile.c (decrement_reading_symtab): Ditto. + * valops.c (value_arg_coerce): Ditto. + * value.h (find_function_in_inferior): Ditto. + (value_allocate_space_in_inferior): Ditto. + * values.c (vb_match): Ditto. + * thread.c (info_thread_command): Ditto. + (restore_current_thread): Ditto. + (thread_apply_all_command): Ditto. + (thread_apply_command): Ditto. + * inferior.h (write_pc_pid): Ditto. + * infrun.c (delete_breakpoint_current_contents): Ditto. + * breakpoint.c (print_it_normal): Ditto. + (watchpoint_check): Ditto. + (print_it_done): Ditto. + (print_it_noop): Ditto. + (maintenance_info_breakpoints): Ditto. + (create_longjmp_breakpoint): Ditto. + (hbreak_command): Ditto. + (thbreak_command): Ditto. + (watch_commnd_1): Ditto. + (rwatch_command): Ditto. + (awatch_command): Ditto. + (do_enable_breakpoint): Ditto. + * ch-valprint.c (chill_val_print_array_elements): Ditto. + * eval.c (evaluate_subexp): Ditto. + (get_label): Ditto. + (evaluate_struct_tuple): Ditto. + * eval.c (init_array_element): Ditto. + + * alpha-tdep.c (push_sigtramp_desc): Add prototype and make static. + * breakpoint.c (hw_breakpoint_used_count): Ditto. + (hw_watchpoint_used_count): Ditto. + * findvar.c (write_register_gen): Ditto. + (read_register_pid): Ditto. + * symtab.c (cplusplus_hint): Ditto. + * infcmd.c (breakpoint_auto_delete_contents): Ditto. + * ch-valprint.c (chill_print_type_scalar): Ditto. + * gdbtypes.c (add_name): Ditto. + (add_mangled_type): Ditto. + (cfront_mangle_name): Ditto. + * sparc-tdep.c (isbranch): Ditto. + * inftarg.c (child_stop): Ditto. + * win32-nat.c (child_stop): Ditto. + * mac-nat.c (child_stop): Ditto. + * remote-utils.c (sr_com): Ditto. + * dbxread.c (process_now): Ditto. + * ch-exp.c (require): Ditto. + (check_token): Ditto. + (expect): Ditto. + (parse_mode_call): Ditto. + (parse_mode_or_normal_call): Ditto. + * scm-lang.c (scm_lookup_name): Ditto + * f-lang.c (allocate_saved_bf_node): Ditto. + (allocate_saved_function_node): Ditto. + (allocate_saved_f77_common_node): Ditto. + (allocate_common_entry_node): Ditto. + (add_common_block): Ditto. + (add_common_entry): Ditto. + (find_first_common_named): Ditto. + (patch_common_entries): Ditto. + (patch_all_commons_by_name): Ditto. + (clear_bf_list): Ditto. + (get_bf_for_fcn): Ditto. + (clear_function_list): Ditto. + * scm-exp.c (scm_istr2int): Ditto. + (scm_istring2number): Ditto. + * scm-valprint.c (scm_inferior_print): Ditto. + * f-typeprint.c (print_equivalent_f77_float_type): Ditto. + * f-valprint.c (f77_get_dynamic_length_of_aggregate): Ditto. + (f77_create_arrayprint_offset_tbl): Ditto. + (f77_print_array_1): Ditto. + (f77_print_array): Ditto. + (list_all_visible_commons): Ditto. + (there_is_a_visible_common_named): Ditto. + * mdebugread.c (ecoff_relocate_efi): Ditto. + * callback.c (os_close): Ditto. + (os_get_errno): Ditto. + (os_isatty): Ditto. + (os_lseek): Ditto. + (os_open): Ditto. + (os_read): Ditto. + (os_read_stdin): Ditto. + (os_write): Ditto. + (os_write_stdout): Ditto. + (os_rename): Ditto. + (os_system): Ditto. + (os_time): Ditto. + (os_unlink): Ditto. + (os_shutdown): Ditto. + (os_init): Ditto. + (os_printf_filtered): Ditto. + + * scm-lang.h (scm_parse): Change old style decl to prototype. + * config/alpha/tm-alphalinux.h (alpha_linux_sigtramp_offset): Ditto. + * top.c (init_proc): Ditto. + (query_hook): Ditto. + (error_hook): Ditto. + * f-lang.c (c_value_print): Ditto. + * ch-exp.c (parse_expression): Ditto. + (parse_primval): Ditto. + (parse_untyped_expr): Ditto. + (parse_opt_untyped_expr): Ditto. + (ch_lex): Ditto. + * config/sparc/tm-sparc.h (sparc_init_extra_frame_info): Ditto. + (sparc_frame_saved_pc): Ditto. + (sparc_push_dummy_frame): Ditto. + (sparc_pop_frame): Ditto. + * defs.h (fclose): Ditto. + (atof): Ditto. + (error_hook): Ditto. + + * arc-tdep.c (single_step): Change arg to type "enum target_signal". + * rs6000-tdep.c (single_step): Ditto. + * sparc-tdep.c (single_step): Ditto. + + * breakpoint.c (cleanup_executing_breakpoints): Change unused arg type + to PTR which is what make_cleanup expects. + * utils.c (null_cleanup): Change arg type to PTR. + * defs.h (null_cleanup): Change prototype to match actual function. + * config/sparc/tm-sparc.h (struct frame_info): Move forward decl. + * ch-valprint.c (chill_val_print): Cast 2nd arg of + chill_print_type_scalar to LONGEST. + * infrun.c (wait_for_inferior): Have empty switch case for + BPSTAT_WHAT_CHECK_SHLIBS when SOLIB_ADD is not defined. + (stop_on_solib_events): Only needed if SOLIB_ADD is defined. + * infcmd.c (attach_command): Only need auto_solib_add if SOLIB_ADD + is defined. + * symfile.c (generic_load): Scan long int using a long int spec, + not an int spec. + * infptrace.c (udot_info): Only need local variables if KERNEL_U_SIZE + is defined. + (fetch_register): Only need function if FETCH_INFERIOR_REGISTERS is + not defined. + * inflow.c (handle_sigio): Only need prototype when the actual + function is compiled in. + * valprint.c (longest_to_int): Expand error message to be + separate messages for args larger than largest signed int + and args smaller than smallest signed int. + * valprint.c (print_longest): Fix problems with support for case + where compiler supports type "long long" but the runtime doesn't + support printing them with "%ll". + * scm-valprint.c (scm_scmlist_print, scm_scmval_print): Change + return types to void since we don't actually return anything + meaningful and callees ignore the values anyway. + * procfs.c (modify_inherit_on_fork_flag): Enclose pr_flags in PIOCSET + ifdef. + (modify_run_on_last_close_flag): Ditto. + (wait_fd): Enclose local variables "num_fds" and "i" LOSING_POLL + ifdef + * alpha-tdep.c (push_sigtramp_desc): Return proc_desc rather than + random value. + * infrun.c (wait_for_inferior): Ensure random_signal is not used + uninitialized. + * valops.c (call_function_by_hand): Ensure struct_addr is not used + uninitialized. + * breakpoint.c (watch_command_1): Ensure prev_frame is not used + uninitialized. + * utils.c (vfprintf_maybe_filtered): Change second arg from "char *" + to "const char *". + * infptrace.c (udot_info): Add two dummy args so that the type is + correct for passing to add_info. + * f-lang.c (saved_fcn): Move decl to head of file so it can be used + in prototypes. + (saved_bf_symnum): Ditto. + (SAVED_FUNCTION): Ditto. + (SAVED_FUNCTION_PTR): Ditto. + (SAVED_BF): Ditto. + (SAVED_BF_PTR): Ditto. + * ch-exp.c (parse_named_record_element): Build error message in + temporary buffer before passing it to expect, rather than passing + wrong number of args to expect. + * demangle.c (set_demangling_style): Call set_demangling_command with + correct number of arguments. + * inferior.h (terminal_init_inferior_with_pgrp): Change arg type to + int to match actual function. + (os_isatty): Call fdmap with right number of arguments, was missing + the host_callback* arg. + * target.c (cleanup_target): Prototype all functions casts. + * target.h (one_stepped, single_step): Declare here and convert + single_step to prototype. + * infrun.c (one_stepped, single_step): Don't declare externs + here, they have moved to target.h. + * eval.c (init_array_element): Declare previously undeclared + last two args as LONGEST. + * dcache.c (dcache_xfer_memory): Change xfunc decls to prototype form. + +Thu Jul 25 16:11:54 1996 Doug Evans + + * dsrec.c (load_srec): Protect ANSI style function parms with PARAMS. + +Mon Jul 22 18:13:27 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (os9kread.o): Remove dependency on partial-stab.h. + * dbxread.c (read_dbx_symtab end_psymtab), partial-stab.h: Don't + use partial_symtab->textlow==0 as a flag, as 0 is a legitimate + text address. Use a seperate flag (textlow_not_set) instead. + This makes stabs in ELF .o files work a lot better. + * mdebugread.c xcoffread.c: Define textlow_not_set for + partial-stab.h. + * stabsread.h (end_psymtab): Add textlow_not_set arg to prototype. + +Sat Jul 20 10:41:06 1996 Fred Fish + + * dwarf2read.c (struct filenames): Change internal "struct file" + to "struct fileinfo" to avoid conflict with "struct file" in + on HPUX and Solaris. + +Fri Jul 19 14:05:57 1996 Stan Shebs + + * dwarf2read.c: New file, DWARF 2 reader originally contributed by + Brent Benson, with additions by Gary Funck and Jerry Kreuscher. + * Makefile.in (COMMON_OBS): Add dwarf2read.o. + (SFILES): Add dwarf2read.c. + (dwarf2read.o): Add build rule. + * symfile.h (dwarf2_has_info, dwarf2_build_psymtabs): Declare + exported functions. + * elfread.c (elf_symfile_read): Call them. + (elf_symtab_read) [HARRIS_TARGET]: Skip some special symbols. + +Thu Jul 18 01:22:01 1996 Geoffrey Noer + + * symfile.c (symfile_bfd_open): + * exec.c (exec_file_command): for __GO32__ and __WIN32__ systems, + free the user from having to type the .exe extension. + +Wed Jul 17 06:54:50 1996 Mark Alexander + + * mon960-rom.c: Shorten the mon960_inits string to a single + carriage return; this prevents a hang on connecting immediately + after powerup, when MON960 is attempting autobaud detection. + +Tue Jul 16 23:47:04 1996 Mark Alexander + + * a29k-tdep.c (get_saved_register): Allow PC to be modified + when innermost frame is selected, but not in outer frames. + +Tue Jul 16 23:37:25 1996 Stu Grossman (grossman@critters.cygnus.com) + + * command.c (do_setshow_command): Don't segfault when showing + var_string and var_string_noescape vars that are NULL. + +Mon Jul 15 16:55:48 1996 Doug Evans + + * win32-nat.c (handle_load_dll): dos_path_to_unix_path renamed to + cygwin32_conv_to_posix_path. + (child_create_inferior): unix_path_to_dos_path renamed to + cygwin32_conv_to_win32_path. Rewrite code to translate PATH. + +Mon Jul 15 16:44:05 1996 Stu Grossman (grossman@critters.cygnus.com) + + * defs.h printcmd.c: Create global disassemble_info structure + tm_print_insn_info. + * i386-tdep.c (set_assembly_language_command): set + tm_print_insn_info.mach to the appropriate value for 386 or 8086 + disassembly. + * printcmd.c (print_insn): Move init of disassembler_info to + _initialize_printcmd. Set endian for disassembler here. + * sparc-tdep.c: Set tm_print_insn_info.mach as appropriate to + select sparc/sparclite. + * config/sparc/{tm-sparc.h tm-sparclite.h}: Get rid of + TM_PRINT_INSN. Set TM_PRINT_INSN_MACH to + bfd_mach_sparc/bfd_mach_sparc_sparclite. + +Fri Jul 12 19:04:32 1996 Fred Fish + + * hpread.c (hpread_lookup_type): Use xmmalloc/xmrealloc rather + than xmalloc/xrealloc. + +Fri Jul 12 17:59:47 1996 Fred Fish + + * objfiles.c (map_to_file): Error return from mmalloc_findbase is + a NULL pointer, not a -1. + +Fri Jul 12 10:16:24 1996 Stu Grossman (grossman@critters.cygnus.com) + + * i386-tdep.c (set_assembly_language_command): New routine to + select between i386 and i8086 instruction sets for disassembly. + New command `set assembly-language {i386 i8086}'. + +Thu Jul 11 21:13:21 1996 Mark Alexander + + * monitor.c (monitor_write_memory, monitor_read_memory_single): + Disable use of "long long" memory read/write commands; can't + use them because we hold the values to read/write in an int + variable, and because strtoul fails on values that exceed the + size of a long. This fixes breakpoint problems on MON960. + +Thu Jul 11 11:39:31 1996 Fred Fish + + * config/m68k/xm-hp300hpux.h (HAVE_MMAP): Remove definition. + * config/pa/xm-hppah.h (HAVE_MMAP): Ditto. + +Wed Jul 10 16:54:41 1996 Fred Fish + + * Makefile.in (MMALLOC_CFLAGS): Eliminate intermediate MMALLOC_DISABLE + and MMALLOC_CHECK macros, and add comment indicating how host dependent + makefile fragment should modify MMALLOC_CFLAGS to not use mmalloc, or + to use it but to not do heap corruption checking. + * gdbserver/Makefile.in: Ditto. + * utils.c (init_malloc): Replace warning() use with direct call of + fprintf_unfiltered, since current_target has not yet been set and thus + we cannot use warning(). If we try to use mmcheck and it fails, + suggest that this configuration needs NO_MMCHECK or MMCHECK_FORCE + defined. Other small mmalloc related cleanups. + * config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1. + * config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Set to -DNO_MMCHECK. + + * config/sparc/xm-sun4os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + * config/i386/xm-i386v4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + * config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + * config/m68k/xm-hp300hpux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + * config/m68k/xm-m68kv4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT); + * config/m68k/xm-sun3os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + * config/pa/xm-hppah.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + * config/sparc/xm-sun4sol2.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + Remove obsolete defines. + + * config/alpha/alpha-linux.mh (MMALLOC_DISABLE): + * config/alpha/alpha-osf1.mh (MMALLOC_DISABLE): + * config/rs6000/rs6000.mh (MMALLOC_DISABLE): + * config/rs6000/aix4.mh (MMALLOC_DISABLE): + * config/powerpc/aix4.mh (MMALLOC_DISABLE): + * config/powerpc/aix.mh (MMALLOC_DISABLE): + * config/ns32k/ns32km3.mh (MMALLOC_DISABLE): + * config/mips/mipsm3.mh (MMALLOC_DISABLE): + * config/mips/decstation.mh (MMALLOC_DISABLE): + * config/m88k/cxux.mh (MMALLOC_DISABLE): + * config/i386/i386mk.mh (MMALLOC_DISABLE): + * config/i386/i386m3.mh (MMALLOC_DISABLE): + * config/i386/i386gnu.mh (MMALLOC_DISABLE): + Use MMALLOC_CFLAGS instead. + +Tue Jul 9 22:41:12 1996 Jeffrey A Law (law@cygnus.com) + + * h8300-tdep.c: Remove some outdated comments. + (h8300_skip_prologue): Rework to be more correct for the H8/300H. + Handle stm.l insns for the H8/S. + (examine_prologue): Likewise. + +Tue Jul 9 16:48:55 1996 Raymond Jou + + * ser-mac.c (mac_close): Change a typo SetSetBuf to SerSetBuf. + +Mon Jul 08 08:50:39 1996 Mark Alexander + + * mon960-rom.c (mon960_open): Add floating point detection to + prevent hang on non-FPU processors (PR 9775). + (mon960_cmds): Swap setmem.cmdw and setmem.cmdl to fix problem + setting breakpoints and improve loading speed. + +Sun Jul 7 14:57:34 1996 Fred Fish + + * coffread.c (record_minimal_symbol): Don't presave name string + on symbol_obstack before passing to prim_record_minimal_symbol. + It now handles saving the string itself. + * dbxread.c (read_dbx_dynamic_symtab): Ditto. + * mipsread.c (read_alphacoff_dynamic_symtab): Ditto. + * os9kread.c (record_minimal_symbol): Ditto. + * solib.c (solib_add_common_symbols): Ditto. + + * coffread.c (coff_symtab_read): Don't presave name string on + symbol_obstack before passing to prim_record_minimal_symbol_and_info. + It now handles saving the string itself. + * dbxread.c (record_minimal_symbol): Ditto. + * elfread.c (record_minimal_symbol_and_info): Ditto. + + * dstread.c (record_minimal_symbol): Remove static function that just + called prim_record_minimal_symbol with the same args (after change to + prim_record_minimal_symbol to do it's own name string saves). + * nlmread.c (record_minimal_symbol): Ditto. + * somread.c (record_minimal_symbol): Ditto. + + * hpread.c (hpread_read_enum_type): Save symbol name on symbol obstack. + (hpread_read_function_type): Ditto. + (hpread_process_one_debug_symbol): Ditto. + * mdebugread.c (parse_symbol): Ditto. + (new_symbol): Ditto. + * minsyms.c (prim_record_minimal_symbol_and_info): Ditto. + + * coffread.c (process_coff_symbol): Use obsavestring to save + SYMBOL_NAME, rather than obstack_copy0. + * dstread.c (create_new_symbol): Ditto + * symfile.c (obconcat): Ditto. + * stabsread.c (patch_block_stabs): Ditto. + * xcoffread.c (SYMNAME_ALLOC): Ditto. + + * symfile.c (obsavestring): Update comments + * solib.c (solib_add_common_symbols): Remove local var origname. + +Wed Jul 3 15:56:08 1996 Stu Grossman (grossman@critters.cygnus.com) + + * configure: Re-build with autoconf-2.10. + + * sparcl-tdep.c (_initialize_sparc_tdep) config/sparc/tm-sparc.h, + config/sparc/tm-sparclite.h: Initialize tm_print_insn from + TM_PRINT_INSN, which comes from the tm file. + +Tue Jul 02 21:41:20 1996 Mark Alexander + + * coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, + os9kread.c: Replace identical sym_offsets functions with + default_symfile_offsets. + * somread.c (som_symfile_offsets): Use new SIZEOF_SECTION_OFFSETS + macro to allocate section_offsets. + * symfile.c (default_symfile_offsets): New function. + * symfile.h: Declare default_symfile_offsets. + * symtab.h: Define SIZEOF_SECTION_OFFSETS macro to + simplify allocation of section_offsets. + +Tue Jun 11 12:02:55 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (INTERNAL_LDFLAGS): Add in flags from configure. + * configure configure.in: Only make sol-thread.o for native. + Also, switch to dlopened libthread_db.so.1. + * sol-thread.c: Switch to using dlopen to get the thread_db + library. + +Thu Jun 13 16:53:25 1996 Stu Grossman (grossman@critters.cygnus.com) + + * configure, configure.in: Change test for libthread_db to only + work for configs where build/host/target are the same. + +Tue Jul 2 15:04:20 1996 Michael Meissner + + * config/powerpc/{linux.mh,xm-linux.h}: New files, for Linux on + PowerPC. + + * configure.in (powerpc-*-linux): Add Linux, System V, and ELF + support. + * configure: Regenerate. + +Mon Jul 1 13:00:43 1996 Stan Shebs + + From Raymond Jou : + * mpw-make.sed: Add lines to whack out autoconf hook + @CONFIG_LDFLAGS@. + +Mon Jul 01 11:07:15 1996 Mark Alexander + + * remote-e7000.c (e7000_stop): New function. + +Fri Jun 28 06:34:19 1996 Dawn Perchik + + * configure, configure.in: Add target sparclet. + * monitor.h, monitor.c: Added monitor flags MO_NO_ECHO_ON_SETMEM + (don't expect echo on setmem command), MO_RUN_FIRST_TIME (if + command to start process running on target is different from one + to continue execution), MO_HEX_PREFIX (if addresses from monitor + have a "0x" prefix). + * monitor.c, parse.c, sparc-tdep.c: Don't require strings in the + registers array. This is to allow NULLs to be place holders in + the tm-*.h file so that only minor changes are needed when a new + processor is introduced (eg, one without floating point). + * sparc-tdep.c: Conditionally remove dependancies on floating + point. + * sparclet-rom.c, config/sparc/sparclet.mt, + config/sparc/tm-sparclet.h: New files for target sparclet. + * symfile.c (load_command): Add option for 2nd parameter; a load + offset added to the vma of each section. + +Fri Jun 28 05:39:19 1996 Dawn Perchik + + * main.c (main): Add option "l" for setting remote_timeout. + +Fri Jun 28 05:25:18 1996 Dawn Perchik + + * remote-e7000.c, remote.c, target.h, top.c: Add set option + "remote_timeout" for setting remote_timeout. Add set option + "use_hard_breakpoints" for setting hardware .vs. memory + breakpoints. + +Fri Jun 28 04:32:18 1996 Dawn Perchik + + * remote-e7000.c (e7000_parse_device): New function. + Add option "tcp_remote" to target command if using + tcp to connect to a remote host which is then connected + via serial port to the e7000 (for exampole, a port master). + (e7000_open): Change to call e7000_parse_device. + +Fri Jun 28 03:47:17 1996 Dawn Perchik + + * monitor.c (monitor_debug): Fix remotedebug buffering. + +Thu Jun 27 18:24:17 1996 Stan Shebs + + * config/i386/cygwin32.mh, config/powerpc/cygwin32.mh + (NATDEPFILES): Add a space. + +Wed Jun 26 06:05:39 1996 Wilfried Moser + + * gdbtypes.c (create_array_type): If TYPE_LENGTH (result_type) + is zero, set TYPE_FLAG_TARGET_STUB to force reevaluation of the type. + + * ch-exp.c (calculate_array_length): Function removed. + +Tue Jun 25 17:41:06 1996 Martin M. Hunt + + * remote-e7000.c (e7000_read_inferior_memory_large): New function. + (e7000_xfer_inferior_memory): Call it. + +Tue Jun 25 23:14:07 1996 Jason Molenda (crash@godzilla.cygnus.co.jp) + + * gdb/gdbserver/Makefile.in (docdir): Removed. + +Tue Jun 25 22:05:38 1996 Jason Molenda (crash@godzilla.cygnus.co.jp) + + * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir): + Use autoconf set values. + (docdir): Removed. + * configure.in (AC_PREREQ): autoconf 2.5 or higher. + * nlm/Makefile.in (bindir, libdir, datadir, mandir, infodir, + includedir): Use autoconf set values. + (docdir): Removed. + * nlm/configure.in (AC_PREREQ): autoconf 2.5 or higher. + * nlm/configure: Rebuilt. + * gdb/gdbserver/Makefile.in (datadir): Set to $(prefix)/share. + +Mon Jun 24 09:56:14 1996 Angela Marie Thomas (angela@cygnus.com) + + * stabsread.c (read_cfront_member_functions): add type + +Sun Jun 23 23:40:48 1996 Doug Evans + + * win32-nat.c: #include . + (unix_paths_to_dos_paths, dos_paths_to_unix_paths): Delete. + (child_create_inferior): Convert only env var PATH to win32 style. + (set_pathstyle_dos): Delete. + (_initialize_inftarg): Delete dos-path-style command. + +Thu Jun 20 13:42:23 1996 Doug Evans + + * configure.in: Revise sol-thread.o test. + * configure: Regenerated. + + * source.c (find_source_lines): Reassign size to result of read. + +Tue Jun 18 16:25:54 1996 Jeffrey A. Law + + * h8300-dep.c (gdb_print_insn_h8300): Handle the H8/S. + (h8300_command): Likewise. + (set_machine): Likewise. + (set_machine_hook): Likewise. + (_initialize_h8300m): Likewise. + + * config/h8300/tm-h8300.h (h8300smode): Declare. + +Sun Jun 16 15:21:51 1996 Jeffrey A. Law + + * somsolib.c (som_solib_create_inferior_hook): Handle tracking + of shl_load calls for hpux10. + +Thu Jun 13 11:16:10 1996 Tom Tromey + + * config.in: Regenerated. + * acconfig.h (HAVE_THREAD_DB_LIB): Added entry. + + * configure: Regenerated. + * aclocal.m4 (CY_AC_PATH_TCLH, CY_AC_PATH_TKH): Use odd names to + avoid name clashes with SunOS headers. + +Tue Jun 11 19:52:50 1996 Fred Fish + + From Michael Snyder : + * bcache.c (print_bcache_statistics): Avoid divide-by-zero + exception if one or more objfile has no symbols, such as when + a dynamic library has been stripped. + +Tue Jun 11 12:02:55 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (INTERNAL_LDFLAGS): Add in flags from configure. + * configure configure.in: Only make sol-thread.o for native. + Also, switch to dlopened libthread_db.so.1. + * sol-thread.c: Switch to using dlopen to get the thread_db + library. + +Mon Jun 10 14:17:19 1996 Fred Fish + + * config/sparc/{xm-sun4sol2.h,xm-sun4os4.h} (MMAP_BASE_ADDRESS): + Change from 0xE0000000 to 0xC0000000. + +Thu Jun 6 17:10:32 1996 Michael Meissner + + * config/powerpc/xm-solaris.h: Initial version of support for + Solaris on PowerPC. + +Wed Jun 5 01:52:57 1996 James G. Smith + + * configure.in (configdirs): Force 4100 builds to use 4300 GDB + target. + * configure: Rebuild. + + * config/mips/vr4300el.mt (SIM_OBS): Include simulator in + little-endian builds. + +Mon Jun 3 11:48:29 1996 Jeffrey A Law (law@cygnus.com) + + * inftarg.c (child_thread_alive): Protect declaration with + #ifndef CHILD_THREAD_ALIVE. + + * source.c (find_source_lines): Check the time on the symtab's bfd if + it exists, else check the time on the exec_bfd. + +Thu May 30 09:43:17 1996 Mark Alexander + + * dsrec.c (make_srec): Fix calculation of address size + to allow addresses less than 0x100. + +Thu May 30 04:24:09 1996 Wilfried Moser + + * ch-exp.c (ch_lex): In case of LOC_TYPEDEF call calculate_array_length. + +Tue May 28 16:15:47 1996 Geoffrey Noer + + * remote-mips.c: cannot use EINVAL for breakpoint test since + its value varies for different hosts (e.g. go32's is 19, while + sunos is 22). Changed to hardcoded 22 since that is what the + mips boards return. + +Tue May 28 11:14:58 1996 Tom Tromey + + * configure: Regenerated. + * aclocal.m4 (CY_AC_PATH_TCLH): Don't use AC_TRY_RUN. + (CY_AC_PATH_TKH): Don't use AC_TRY_RUN. + +Sun May 26 16:56:35 1996 Miles Bader + + * solib.c (solib_absolute_prefix, solib_search_path): New variables. + (_initialize_solib): Add set/show commands for those variables. + (solib_map_sections): Implement searching using them. + +Sun May 26 14:14:49 1996 Fred Fish + + Changes from: David Mosberger-Tang + + * NEWS: Add Alpha Linux as a new native configuration. + + * mdebugread.c (parse_symbol): When we find a malloc() symbol with + return type VOID, assume no debugging info is available for that + object file and patch the return value into VOID *. Otherwise, + operations requiring an implicit call to malloc() will fail. + + * infrun.c (wait_for_inferior): The criterion to detect entering a + sigtramp handler is now: (a) the current pc is inside a sigtramp + handler, (b) the previous pc is not in a sigtramp handler, and (c) + the current stack pointer is "inner" than the old one. Condition + (c) is new to avoid mistaking a return from a signal handler into + sigtramp as a new sigtramp invocation. + + * dcache.c (struct dcache_block): Declare addr as CORE_ADDR. An + int may not be big enough to hold an address. + (dcache_hit): Ditto. + (dcache_peek_byte): Fix indentation. + + * configure.in (alpha-*-linux*): Add target. + * configure: Rebuild + + * config/alpha/tm-alpha.h (PROC_DESC_IS_DYN_SIGTRAMP): New macro. + (SET_PROC_DESC_IS_DYN_SIGTRAMP): Ditto. + (DYNAMIC_SIGTRAMP_OFFSET): Ditto. + (SIGCONTEXT_ADDR): Ditto. + (FRAME_PAST_SIGTRAMP_FRAME): Ditto. + + * config/alpha/alpha-linux.mh: New file. + * config/alpha/alpha-linux.mt: Ditto. + * config/alpha/nm-linux.h: Ditto. + * config/alpha/tm-alphalinux.h: Ditto. + * config/alpha/xm-alphalinux.h: Ditto. + * config/alpha/xm-alphaosf.h: Renamed from xm-alpha.h. + * config/alpha/alpha-osf1.mh (XM_FILE): Change from xm-alpha.h to + xm-alphaosf.h. + * config/alpha/alpha-osf2.mh: Ditto. + + * blockframe.c (find_pc_partial_function): Pass PC to + SIGTRAMP_START and SIGTRAMP_END macros for the benefit of systems + that detect sigtramp code via designated code sequences (as is the + case for Linux/Alpha, for example). + + * config/i386/tm-i386bsd.h: Change SIGTRAMP_START and SIGTRAMP_END + to ignore new PC argument. + * config/m68k/tm-hp300bsd.h: Ditto. + * config/vax/tm-vax.h: Ditto. + + * alpha-tdep.c (alpha_linux_sigtramp_offset): New function. + (alpha_osf_skip_sigtramp_frame): Ditto. + (push_sigtramp_desc): Ditto. + (alpha_find_saved_regs): Use SIGCONTEXT_ADDR macro to extract + sigcontext address from frame. + (alpha_saved_pc_after_call): When in sigtramp, use + alpha_frame_saved_pc() instead of read-register(). + (after_prologue): When inside a dynamically generated sigtramp + function, there is no prologue, so return address of first + instruction. + (alpha_in_prologue): Fix typo in comment. + (find_proc_desc): Use macro DYNAMIC_SIGTRAMP_OFFSET to determine + whether we're inside a dynamicaly generated sigtramp function. If + so, create and push and appropriate procedure descriptor. + (alpha_frame_chain): Use macro FRAME_PAST_SIGTRAMP_FRAME to obtain + the frame past a sigtramp frame (if the current frame is indeed a + sigtramp function). + (init_extra_frame_info): Don't read next frame register off of + stack-pointer when inside a dynamiccaly generated sigtramp. + (alpha_pop_frame): Also unlink and destroy procedure descriptors + created for dynamically generated sigtramp functions. + + * alpha-nat.c: When compiling under Linux, include and + instead of + +Tue Jul 2 13:58:10 1996 Miles Bader + + * gnu-nat.c (inf_validate_task_sc): + Give terminal to gdb while asking question. + (inf_resume): Don't validate the task suspend-count while execing. + +Thu Jun 13 11:04:52 1996 Miles Bader + + * gnu-nat.c (inf_validate_task_sc): Query user before clearing any + additional suspend count. + (S_proc_wait_reply, gnu_attach): Don't call inf_validate_task_sc. + (inf_resume): Call inf_validate_task_sc here. + (gnu_resume): Call inf_update_procs to ensure noticing new threads. + +Fri Jun 7 17:00:43 1996 Miles Bader + + * gnu-nat.c (gnu_create_inferior: attach_to_child): Return PID. + +Thu May 23 15:13:56 1996 Jeffrey A Law (law@cygnus.com) + + * h8300-tdep.c (IS_PUSH): Refine. + (IS_MOVE_FP, IS_MOV_SP_FP): Accept H8/300H varaints. + (IS_SUB4_SP, IS_SUBL_SP): New macros. + (h8300_skip_prologue): Handle H8/300H prologue code sequences. + (examine_prologue): Handle addresses from 0x010000 to 0xffffff + when in H8/300H mode. Get the return pointer's address correctly + for the H8/300H. Handle H8/300H prolouge code sequences. + + * symfile.c (generic_load): Print the starting address + of the file just loaded. + +Thu May 23 12:09:52 1996 Stan Shebs + + * mpw-make.sed: Edit @THREAD_DB_OBS@ out of makefile. + +Tue May 21 11:53:56 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c (bpstat_do_actions): Avoid endless recursion + if a `source' command is contained in bs->commands. + + * infrun.c (wait_for_inferior): Update step_frame_address when + stepping into a new line. + + From schwab@issan.informatik.uni-dortmund.de (Andreas Schwab): + * breakpoint.c (breakpoint_1): Add shlib_disabled case to + bpenables array. + +Mon May 20 22:52:00 1996 Mark Alexander + + * dsrec.c (load_srec): Add WAITACK parameter, for machines + like EST visionICE that send back an ACK after each S-record. + * monitor.c (monitor_wait_srec_ack): New function. + (monitor_load): Pass monitor_wait_srec_ack to load_srec + if the monitor's MO_SREC_ACK flag is set. + * monitor.h: Define MO_SREC_ACK flag. + * remote-est.c (est_cmds): Add MO_SREC_ACK flag. + * sh3-rom.c (sh3_load): Accomodate change in load_srec prototype. + * srec.h: Add WAITACK parameter to load_srec prototype. + +Sun May 19 21:22:00 1996 Rob Savoye + + * config/sparc/sparclite.mt: Add the sparc simulator. + +Sun May 19 16:49:37 1996 Fred Fish + + * defs.h (read_command_lines, query_hook): Update prototypes. + (readline_begin_hook, readline_hook, readline_end_hook): Declare. + * breakpoint.c (commands_command): Build message in temporary buffer + and pass that, as well as tty control flag, to read_command_lines. + * top.c (readline_begin_hook, readline_hook, readline_end_hook): + Define here. + (command_loop): Check for non-NULL instream before looping. + (command_line_input): Use readline_hook when appropriate, to get + user input from a GUI window. + (read_next_line): Also build prompt if getting user input from a GUI. + (recurse_read_control_structure): Fix typo in comment. + (read_command_lines): Use passed in prompt and tty flag to decide how + to build message. Use readline_begin_hook when appropriate, to set + up a GUI interaction window. Just return head, whether NULL or not, + after using readline_end_hook to complete GUI interaction. + (define_command, document_command): Build message in a temporary + buffer and pass it to read_command_lines, along with tty flag. + + +Sat May 18 02:43:58 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * blockframe.c (frameless_look_for_prologue): + Add FUNCTION_START_OFFSET only if func_start is non-zero. + * minsyms.c (lookup_minimal_symbol_by_pc): Return NULL if + pc is not in a known section. + * stack.c (print_frame_info): Remove check for fi->pc in known + section, now handled by lookup_minimal_symbol_by_pc. + + +Fri May 17 13:31:04 1996 Stan Shebs + + * sh-stub.c: New file, was config/sh/stub.c. + + +Wed May 15 08:25:12 1996 Jeffrey A Law (law@cygnus.com) + + * top.c (read_next_line): Fix thinkos. From Donn Seeley. + + * coffread.c (coff_symtab_read): Handle C_LABEL symbols like + C_STAT symbols. + * h8300-tdep.c (h8300_pop_frame): Reset $sp and $pc correctly. + Flush cached frames just before exiting. + * remote-sim.c (gdbsim_resume): Complain if the program isn't + being run. + * config/h8300/tm-h8300.h (BELIEVE_PCC_PROMOTION): Define. + +Tue May 14 18:05:16 1996 Stu Grossman (grossman@critters.cygnus.com) + + * procfs.c (procfs_thread_alive procfs_stop): Make static. + (procfs_pid_to_str): New routine to print out thread id's in an + intelligible manner. + * sol-thread.c (sol_thread_fetch_registers): Re-order manner in + which supply_register is called to fix bug with writing + individual regs. + * config/sparc/tm-sun4sol2.h: Define default for + target_pid_to_str in case host lacks libthread_db. + +Mon May 13 23:53:30 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in config.in configure configure.in + config/sparc/nm-sun4sol2.h config/sparc/sun4sol2.mh + config/sparc/tm-sun4sol2.h: Use autoconf to config Solaris thread + and pthread support, since pre-2.5 systems don't come with + libthread_db.so.1. + + * procfs.c (info_proc): Use int instead of id_t. Old versions of + Irix don't seem to define this. + +Mon May 13 17:40:58 1996 Jeffrey A Law (law@cygnus.com) + + * top.c (execute_control_command, case while_control): Allow + a while command to be interrupted. + +Mon May 13 16:17:36 1996 Stu Grossman (grossman@critters.cygnus.com) + + * sol-thread.c: More cleanup, add comments. + (sol_thread_resume): Prevent people from trying to step + inactive threads. + (sol_thread_wait sol_thread_fetch_registers + sol_thread_store_registers): Remove unnecessary check for + sol_thread_active. These routines won't get called unless threads + are active. + +Mon May 13 11:29:37 1996 Stan Shebs + + SH3-E support from Allan Tajii : + * sh-tdep.c (sh_reg_names, sh3_reg_names): Add empty names for + float registers. + (sh3e_reg_names): New register name array. + (sh_processor_type_table): Add sh3e processor type. + * config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): Fix test. + (REGISTER_NAMES, NUM_REGS, NUM_REALREGS, etc): Adjust for + full set of registers. + * remote-e7000.c (want_sh3, want_sh3_nopc): New globals. + (e7000_fetch_registers, e7000_wait): Use them. + * sh3-rom.c (sh3_regnames): Add float registers. + (sh3e_cmds, sh3e_ops): New globals. + (sh3e_open): New function. + (_initialize_sh3_rom): Rename from _initialize_sh3, set up + sh3e target vector. + +Fri May 10 15:53:38 1996 Stu Grossman (grossman@lisa.cygnus.com) + + * sol-thread.c: Cleanup. gcc -Wall fixes. Add prototypes. + Print out messages instead of codes for thread_db errors. Make + access macros for thread and lwp manipulation. Make cleanups to + fixup inferior_pid in case of errors. + +Thu May 9 19:06:02 1996 Fred Fish + + * aclocal.m4: Remove unused definition of AC_C_CROSS. + * configure.in: Add powerpcle-*-solaris* host and target config + so April 30th change does not get lost next time configure is + rebuilt. + +Thu May 9 14:13:08 1996 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in, breakpoint.c, corelow.c, fork-child.c, inflow.c, + infrun.c, mac-nat.c, procfs.c, remote.c, sol-thread.c, thread.c, + win32-nat.c, config/nm-lynx.h: Rename thread.h to gdbthread.h to + avoid conflict with Solaris /usr/include/thread.h. + +Thu May 9 12:33:32 1996 Rob Savoye + + * abug-rom.c: Config file for the older style ABug monitor that + runs on the mvme13x boards. + * config/m68k/monitor.mt: Add abug support for m68k cross + debugging. + +Wed May 8 20:33:24 1996 Fred Fish + + * infcmd.c (do_registers_info): Always print the raw floating + point value's bytes in big endian order, so the the leftmost bit + is the most significant. + * breakpoint.c (clear_momentary_breakpoints): Remove dead code + that is referenced nowhere else. + (set_breakpoint): Ditto. + (do_enable_breakpoint): Created from enable_once_breakpoint + with a couple of changes. + (enable_breakpoint): Call do_enable_breakpoint with an appropriate + bpdisp enum value to set disposition of breakpoint. + (enable_once_breakpoint): Ditto. + (enable_delete_breakpoint): Ditto. + * breakpoint.h (clear_momentary_breakpoints): Remove prototype. + * symtab.c (find_pc_line): Improve comments. + * xcoffread.c: Ditto. + +Tue May 7 18:37:06 1996 Stan Shebs + + * target.c (debug_to_xfer_memory): Insert line breaks when + dumping the memory block. + +Mon May 6 13:52:52 1996 Stu Grossman (grossman@critters.cygnus.com) + + * fork-child.c (fork_inferior), inferior.h: init_trace_fun now + returns a possibly modified pid. + * inftarg.c (ptrace_him): Now returns pid; + * m3-nat.c (m3_trace_him): Now returns pid; + * infcmd.c (run_command): Minor cleanup. + * infrun.c (wait_for_inferior): Add another check for one_stepped + near where we read the pc to avoid erroneously setting + random_signal for multi-threaded support. + * procfs.c: Add support for Solaris LWPs. Remove def of + LOSING_POLL. Many cleanups... Several workarounds for Solaris + lossage. System call entry and exit are now handled by + dynamically registered handlers. + * (syscallname): Don't barf when handed an unknown syscall + number. + * (info_proc_syscalls): Ditto. + * sol-thread.c: New file. Implements Solaris thread support. + * symfile.c (symbol_file_add): Add call to target_new_objfile to + notify target-dependent code about new symbol tables. + * (clear_symtab_users): Call target_new_objfile to notify it of + the removal of all symbol tables. + * target.c (push_target): Make sure that to_close is non-zero + before calling it. + * target.h (target_new_objfile): Provide default. + * config/alpha/nm-osf2.h: Define LOSING_POLL because this version + of OSF can't hack using poll with /proc. + * config/sparc/nm-sun4sol2.h (target_new_objfile): Define to be + sol-thread-new-objfile. + * config/sparc/sun4sol2.mh: Add sol-thread.o to NATDEFFILES, and + add libthread_db.so.1 to NAT_CLIBS. + * config/sparc/tm-sun4sol2.h: Define PIDGET, TIDGET, and + target_pid_to_str. + +Sat May 4 02:13:34 1996 N Srin Kumar + + * procfs.c (remove_fd): Fix copy of fds to fill hole left after + removal of the requested fd. + +Mon May 6 07:52:48 1996 Michael Meissner + + * rs6000-tdep.c (_initialize_rs6000_tdep): Don't do XCOFF specific + hooks under ELF. + + * config/powerpc/tm-ppc-eabi.h: Define ELF_OBJECT_FORMAT. + +Thu May 2 12:46:14 1996 Jeffrey A Law (law@cygnus.com) + + From Peter Schauer: + * breakpoint.h (enum bpdisp): Add del_at_next_stop. + * breakpoint.c (insert_breakpoints, watchpoint_check, + bpstat_stop_status): Avoid bad references to memory freed via + delete_breakpoint on watchpoints going out of scope. + Do not delete these watchpoints, disable them and change their + disposition to del_at_next_stop instead. + (breakpoint_auto_delete): Delete all breakpoints whose disposition + is del_at_next_stop. + (breakpoint_init_inferior): Use switch to avoid reference to + already deleted breakpoint. + +Wed May 1 17:29:18 1996 Fred Fish + + * Makefile.in (rs6000-nat.o): Depend on xcoffsolib.h. + * config/rs6000/rs6000.mh (NATDEPFILES): Move xcoffread.o ... + * config/rs6000/rs6000.mt (TDEPFILES): ... to here. + * xcoffsolib.c (xcoff_relocate_symtab_hook): Define and initialize. + (solib_info): Call xcoff_relocate_symtab via the hook. + (sharedlibrary_command): Ditto. + * xcoffread.c: Remove all FAKING_RS6000 comments and defines. + (xcoff_add_toc_to_loadinfo_hook): Define and initialize here. + (xcoff_init_loadinfo_hook): Define and initialize here. + (scan_xcoff_symtab): Call xcoff_add_toc_to_loadinfo via the hook. + (xcoff_initial_scan): Call xcoff_init_loadinfo via the hook. + * xcoffsolib.h (xcoff_relocate_symtab_hook): Declare extern func. + * rs6000-tdep.c (_initialize_rs6000_tdep): Add initializations + of xcoff_add_toc_to_loadinfo_hook and xcoff_init_loadinfo_hook. + * rs6000-nat.c (_initialize_core_rs6000): Add initialization + of xcoff_relocate_symtab_hook. + +Tue Apr 30 13:22:02 1996 Michael Meissner + + * configure (powerpcle-*-solaris*): Add Solaris support. + + * config/powerpc/{solaris.m[ht],tm-solaris.h}: New files for + Solaris support. + +Mon Apr 29 16:17:31 1996 Dawn Perchik + + * c-valprint.c (c_val_print): Fix printing for arrays defined + with 0 length. + +Sun Apr 28 15:08:05 1996 Stan Shebs + + Support for bi-endian remote breakpoints. + * remote.c (big_break_insn, little_break_insn): New globals. + (break_insn): Remove. + (remote_insert_breakpoint, remote_remove_breakpoint): Use own + code if REMOTE_BREAKPOINT defined, otherwise call memory + breakpoint functions. + * config/sh/tm-sh.h (REMOTE_BREAKPOINT): Remove. + (BIG_REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT): Define. + + * mon960-rom.c (mon960_cmds): Remove forward decl. + (mon960_load): Use current_monitor instead of mon960_cmds. + (mon960_regnames): Remove backslashes from line ends. + (_initialize_mon960): Fix documentation string. + +Sun Apr 28 12:10:35 1996 Fred Fish + + * symfile.h (psymbol_allocation_list): Expand comments which + describe the psymbol allocation list and how each field is + used. + +Sun Apr 28 03:44:30 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c (delete_breakpoint): Fix bpt->val, bpt->exp + storage leaks. + (breakpoint_re_set_one): Fix b->exp, b->val, b->cond storage leaks. + + * infcmd.c (run_command), solib.c (locate_base): Check for + target_has_execution in addition to inferior_pid, a core file + from a threaded program is yielding a non-zero inferior_pid. + + * sparc-tdep.c (get_saved_register): Handle window registers + in a dummy frame correctly. + +Sat Apr 27 20:38:32 1996 Fred Fish + + * Makefile.in (CLIBS): Move $(MMALLOC) past all other libs, + so that anything that wants an allocation function not yet pulled + in, will get it from mmalloc rather than a system library. + * Makefile.in (INSTALLED_LIBS): Reorder to match order of CLIBS, + to avoid surprising results when used. + +Sat Apr 27 00:12:05 1996 Dawn Perchik (dawn@cygnus.com) + + * stabsread.c: Changes and bug fixes for cfront support. + Fix bug for class data members. + Fix parsing bug when no base classes exist. + Fix memory bug - allocate space for cplusplus specific info. + Add support for static data. + Add prototypes for static functions. + Enhance comments to show what each function expects to parse. + Cleanup code. + * stabsread.c(resolve_cont),dbxread.c(resolve_cont): Rename + function to resolve_cfront_continuation. + +Fri Apr 26 23:58:26 1996 Jeffrey A Law (law@cygnus.com) + + * infrun.c (wait_for_inferior): Call registers_changed when + restarting the inferior to get over a nullified instruction. + +Tue Apr 24 12:12:55 1996 Dawn Perchik (dawn@cygnus.com) + + * dbxread.c,stabsread.c,gdbtypes.c,partial-stab.h,valops.c: + Add new support for parsing cfront stabs. + +Wed Apr 24 00:32:55 1996 Jeffrey A Law (law@cygnus.com) + + * infrun.c (wait_for_inferior): Move "have_waited" label + outside of #ifdef conditionals. Don't trash the wait status + if we get a signal and the current instruction is nullified. + +Mon Apr 22 20:17:01 1996 Fred Fish + + * Makefile.in (VERSION): Bump version number to 4.16.1. + * NEWS: Update for 4.16 release. + +Mon Apr 22 16:32:29 1996 Stan Shebs + + * monitor.h: Clean up comment formatting. + (current_monitor): Remove decl. + (LOADTYPES, LOADPROTOS, INIT_CMD, etc): Remove definitions. + (push_monitor, SREC_SIZE): Remove. + * monitor.c: Expand old macro into current_monitor derefs + everywhere. + * remote-os9k.c (current_monitor): Remove definition. + +Mon Apr 22 14:54:45 1996 Mark Alexander + + * corefile.c (specify_exec_file_hook): Allow arbitrary number of + hooks. + (call_extra_exec_file_hooks): New function. + * h8300-tdep.c: Lint; add .h files to provide missing declarations, + remove unused variables. + (set_machine_hook): New function. + (_initialize_h8300m): Initialize it. + +Fri Apr 19 15:03:49 1996 Ian Lance Taylor + + * remote-mips.c (encoding): Don't specify size, to avoid bug in + SunOS native compiler. + +Thu Apr 18 18:46:57 1996 Stan Shebs + + * monitor.c: Use int rather than LONGEST for values, since + the formatting strings are not prepared to accept long longs. + +Wed Apr 17 20:17:27 1996 Doug Evans + + * arm-tdep.c (initialize_arm_tdep): Make apcs32 a `zinteger'. + +Tue Apr 16 17:38:23 1996 Stu Grossman (grossman@critters.cygnus.com) + + * corelow.c (add_to_thread_list): Make sure reg_sect is non-null + before de-referencing it. Prevents deref of NULL pointer if core + file lacks .reg section. + * defs.h: Rename floatformat_{to from}_long_double to + floatformat_{to from}_doublest. Get rid of FLOATFORMAT_{TO + FROM}... macros. + * findvar.c (extract_floating store_floating): Change all refs to + FLOATFORMAT_{FROM TO}... to floatformat_{from to}_doublest. + * utils.c: Change floatformat_{to from}_long_double to + floatformat_{to from}_doublest cuz the new routines will use + whatever size (double or long double) is appropriate. + * config/i960/tm-i960.h (REGISTER_CONVERT_TO_VIRTUAL + REGISTER_CONVERT_TO_RAW): Change FLOATFORMAT... macros to + floatformat... routine calls. + +Mon Apr 15 16:34:11 1996 Per Bothner + + * stabsread.c (read_type): Move handling of '@' from type + number handling to handling of types proper (as emitted by gcc!). + For typedefs, allocate the typedef type before reading its + definition, to properly handling recursive types. + +Mon Apr 15 11:19:26 1996 Jeffrey A Law (law@cygnus.com) + + * ch-exp.c (calculate_array_length): Fix prototype. + +Sat Apr 13 14:21:16 1996 Stu Grossman (grossman@critters.cygnus.com) + + * remote-nindy.c (nindy_open): Acquire more target state so that + user can attach to a previously running program. + * (nindy_fetch_registers nindy_store_registers): Get rid of fp + conversion code. That's all handled in {extract store}_floating + now. + * utils.c (floatformat_to_double): Don't bias exponent when + handling zero's, denorms or NaNs. + * config/i960/tm-i960.h (REGISTER_CONVERT_TO_VIRTUAL + REGISTER_CONVERT_TO_RAW): Change to using DOUBLST and + FLOATFORMAT_TO/FROM_DOUBLEST macros. + * config/i960/tm-nindy960.h: Undefine + REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW, and + REGISTER_CONVERTIBLE. These are no longer necessary now that all + the magic happens in extract/store_floating. + +Sat Apr 13 02:58:02 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * eval.c (evaluate_subexp_standard): Report error when attempting to + evaluate subscripts for types which cannot be subscripted. + + * valarith.c (value_x_binop, value_x_unop): Add noside parameter. + Return a zero value with the return type of the member function + if noside is EVAL_AVOID_SIDE_EFFECTS instead of calling the member + function. + * values.h (value_x_binop, value_x_unop): Update prototypes + accordingly. + * eval.c (evaluate_subexp_standard): Update all callers of + value_x_binop, value_x_unop accordingly. + + * valarith.c (value_neg, value_complement): Perform ANSI C/C++ + integral promotion on operands. + +Fri Apr 12 13:19:27 1996 Fred Fish + + * README: Update for 4.16 release. + * configure.in (AC_CHECK_FUNCS): Also check for sbrk. + * configure: Regenerate with autoconf. + * config.in: Regenerate with autoheader. + * main.c (main): Only use sbrk() when HAVE_SBRK is defined. + * top.c (command_loop): Ditto. + +Fri Apr 12 09:45:29 1996 Stu Grossman (grossman@critters.cygnus.com) + + * defs.h: Define TARGET_{FLOAT DOUBLE LONG_DOUBLE}_FORMAT + defaults for bi-endian targets. Replace function pointers for + floatformat routines with macros. No need for these to be runtime + selectable. + * findvar.c: Get rid of floatformat function pointers. Use + macros in extract_floating and store_floating. + * remote-nindy.c (nindy_fetch_registers nindy_store_registers): + Use floatformat macros. + +Thu Apr 11 21:28:02 1996 Fred Fish + + From: Miles Bader + * configure.in (AC_CHECK_HEADERS): check for endian.h. + Use AC_CHECK_TOOL to find AR & RANLIB. Add AC_PROG_AWK. + Add host & target cases for i[345]86-*-gnu*. + * config.in: Regenerate with autoheader. + * configure: Regenerate with autoconf. + * Makefile.in (AR, AWK): Set from corresponding autoconf substs. + (init.c): Don't scan mig-generated files. + * defs.h (endian.h): Include if HAVE_ENDIAN_H defined. + * config/nm-m3.h (ATTACH_NO_WAIT): Define. + * infcmd.c (attach_command): Use "#ifndef ATTACH_NO_WAIT" + rather than "#ifndef MACH". + +Thu Apr 11 18:49:42 1996 Stan Shebs + + * remote.c (remotewritesize): New GDB variable, controls size + of memory packets sent to the target. + +Thu Apr 11 13:47:52 1996 Stu Grossman (grossman@critters.cygnus.com) + + * dcache.c: Add prototypes. Make many functions static. + * (dcache_peek dcache_fetch dcache_poke): Make dcache_fetch and + dcache_poke call dcache_xfer_memory directly in order to fix + problems with turning off dcache. dcache_peek is now unnecessary, + so it goes away. + + * defs.h: Define new macros HOST_{FLOAT DOUBLE LONG_DOUBLE}_FORMAT + and TARGET_{FLOAT DOUBLE LONG_DOUBLE}_FORMAT to specify a pointer + to a struct floatformat. This allows for better handling of + targets whose floating point formats differ from the host by more + than just byte order. + * (floatformat_to_long_double floatformat_from_long_double): + Prototypes for new functions in utils.c. + * (floatformat_to_doublest floatformat_from_doublest): Prototypes + for pointers to floating point conversion functions. The actual + function uses either double or long double if the host supports it. + * findvar.c (floatformat_to_doublest floatformat_from_doublest): + Initialize to point at correct function depending on HAVE_LONG_DOUBLE. + * (extract_floating store_floating): Rewrite. Now, if host fp + format is the same as the target, we just do a copy. Otherwise, + we call floatformat_{to from}_doublest. + * remote-nindy.c (nindy_xfer_inferior_memory): Change param + `write' to `should_write'. + * utils.c (floatformat_to_long_double + floatformat_from_long_double): New routines that implement long + double versions of functions in libiberty/floatformat.c. + * config/i960/tm-i960.h (TARGET_LONG_DOUBLE_FORMAT): Define this for + i960 extended real (80 bit) numbers. + * nindy-share/nindy.c (ninMemGet ninMemPut): Return number of bytes + actually read or written. + +Wed Apr 10 02:56:06 1996 Wilfried Moser + + * ch-valprint.c (chill_val_print): Remove call to calculate_array_length. + (calculate_array_length): Move function from here ... + + * ch-exp.c (calculate_array_length): ... to here. + (parse_primval): If we have a symbol with an array type + and the length is 0, call calculate_array_length. + +Tue Apr 9 01:23:05 1996 Wilfried Moser + + * eval.c (evaluate_subexp_standard): In case of TYPE_CODE_SET: + Add some checks for powerset compatibility. + + * valops.c (value_slice): Use lowbound instead of lowerbound for + call to slice_range_type to get correct bounds. + +Mon Apr 8 12:53:56 1996 Fred Fish + + * Makefile.in (scm-exp.o, scm-lang.o, scm-valprint.o): Add targets and + dependencies. + * scm-lang.c (gdb_string.h): Include. + * objfiles.c (add_to_objfile_sections): Cast second arg of obstack_grow + call to correct type (char *). + * cp-valprint.c (cp_print_static_field): Ditto. + * somsolib.c (som_solib_create_inferior_hook): Add a declaration + for external find_unwind_entry function (from hppa-tdep.c). + * remote-pa.c (remote_write_bytes, remote_read_bytes): Change + type of second arg to "char *" to be type compatible with + dcache. + (remote_wait): Cast second arg to strtol to correct type. + * hppa-tdep.c (compare_unwind_entries): Change argument types to + "const void *" to be type compatible with qsort, and then + assign to local args prior to use. + +Mon Apr 8 15:35:52 1996 Jeffrey A Law (law@cygnus.com) + + * infptrace.c (kill_inferior): Remove call to "kill"; update + comments. + +Mon Apr 8 14:05:07 1996 Geoffrey Noer + + * remote-e7000.c: don't append :23 to target port if __WIN32__ + is defined (it's WinGDB). + +Sun Apr 7 22:34:29 1996 Fred Fish + + From: Miles Bader + * gnu-nat.c, gnu-nat.h, msg.defs, exc_request.defs, i386gnu-nat.c, + msg_reply.defs, notify.defs, process_reply.defs, reply_mig_hack.awk, + config/nm-gnu.h, config/i386/{i386gnu.mh, i386gnu.mt, nm-gnu.h, + m-i386gnu.h, xm-i386gnu.h}: New files for GNU hurd. + +Sun Apr 7 13:32:41 1996 Fred Fish + + * configure.in (case host): Add i386sco5 host. + * configure: Regenerate. + + From: Robert Lipe + Add support for SCO OpenServer 5 (a.k.a. 3.2v5*) This + target is an SVR3.2 with COFF, ELF, and shared libes, but + no /proc. + * config/i386/i386sco5.mh: New file. + * config/i386/nm-i386sco5.h: New file. + +Sat Apr 6 08:55:22 1996 Fred Fish + + * bcache.c (bcache): When size of chunk to cache is exactly equal to + BCACHE_MAXLENGTH, stash chunk as unique copy. + +Sat Apr 6 00:46:26 1996 Fred Fish + + * symfile.c (INLINE_ADD_PSYMBOL): Remove ifdef. + (add_psymbol_to_list): Add an arg for passing CORE_ADDR values and + use it, rather than calling add_psymbol_addr_to_list. + (add_psymbol_addr_to_list): Delete. + (add_psymbol_to_list): Make psymbol static to avoid random data in + gaps due to alignment of structure members. + * symfile.h (INLINE_ADD_PSYMBOL, ADD_PSYMBOL_TO_LIST, + ADD_PSYMBOL_ADDR_TO_LIST): Remove. Real world tests show no + performance improvements by inlining via complicated macros and + they just make gdb larger and harder to maintain. + * dwarfread.c (add_enum_psymbol): Replace ADD_PSYMBOL_TO_LIST + and/or ADD_PSYMBOL_ADDR_TO_LIST macro(s) with call to + add_psymbol_to_list with appropriate long or CORE_ADDR args. + (add_partial_symbol): Ditto. + * partial-stab.h: Ditto. + * os9kread.c (read_os9k_psymtab): Ditto + * mdebugread.c (parse_partial_symbols): Ditto. + (handle_psymbol_enumerators): Ditto. + (demangle.h): Include. + * hpread.c (hpread_build_psymtabs): Ditto. + (hpread_build_psymtabs): Ditto. + (demangle.h): Include + +Thu Apr 4 20:16:55 1996 Fred Fish + + * configure.in: Check for setpgid function. + * config.in: Regenerate with autoheader. + * configure: Regenerate with autoconf. + * inflow.c (_initialize_inflow): Only try to use _SC_JOB_CONTROL + if it is actually defined. + (gdb_setpgid): Use HAVE_SETPGID. + * ch-exp.c: Change include of to "gdb_string.h". + * c-exp.y, f-exp.y, m2-exp.y: Ditto. + * c-exp.y, serial.c: Include . + * config/m68k/nm-news.h: Add typedef for pid_t which is + apparently missing from . Enclose entire + file in NM_NEWS_H ifndef and define when included. + * config/mips/nm-news-mips.h: Ditto. + * config/m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL, + REGISTER_CONVERT_TO_RAW): Change name of temporary variable. + +Thu Apr 4 19:04:18 1996 Stan Shebs + + * arm-xdep.c: Move native-specific code to here from arm-tdep.c. + * arm-tdep.c (arm_apcs_32): New global. + (arm_addr_bits_remove, arm_saved_pc_after_call, + arm_push_dummy_frame, arm_pop_frame): New functions. + (arm_skip_prologue): Updated version from Richard Earnshaw. + (_initialize_arm_tdep): Add set/show "apcs32". + * config/arm/tm-arm.h (ADDR_BITS_REMOVE): Call + arm_addr_bits_remove. + (SAVED_PC_AFTER_CALL): Call arm_saved_pc_after_call. + (frame_find_saved_regs): Declare properly. + (PUSH_DUMMY_FRAME): Call arm_push_dummy_frame. + (POP_FRAME): Call arm_pop_frame, use ADDR_BITS_REMOVE instead of + explicit mask. + * config/arm/nm-arm.h: New file. + * config/arm/xm-arm.h (KERNEL_U_ADDR, FETCH_INFERIOR_REGISTERS): + Move definitions to nm-arm.h. + * config/arm/arm.mh (NAT_FILE): Define. + + * symfile.c (generic_load): Initialize data_count properly. + +Thu Apr 4 17:17:53 1996 Fred Fish + + * symmisc.c (print_objfile_statistics): Print memory used by + psymbol cache obstack. + +Thu Apr 4 15:43:07 1996 Stan Shebs + + * symfile.c (report_transfer_performance): New function. + (generic_load): Call it to report transfer rate. + * remote-e7000.c (e7000_load): Ditto. + +Mon Apr 1 16:31:00 1996 Stan Shebs + + * mpw-make.sed: Change references to config.h to be in objdir, + edit out rules to rebuild config.h. + +Mon Apr 1 08:32:23 1996 Fred Fish + + * hppa-tdep.c (hppa_pop_frame): Call clear_proceed_status before + proceeding. + +Sun Mar 31 16:15:43 1996 Fred Fish + + * hppah-nat.c (store_inferior_registers, store_inferior_registers, + fetch_register, child_xfer_memory): Use call_ptrace function supplied + by infptrace.c rather than calling ptrace directly. + +Sun Mar 31 15:39:00 1996 Stan Shebs + + * mon960-rom.c: Cleanups and elimination of unused code, + clarify documentation string. + (mon960_serial, mon960_ttyname): Remove. + * config/i960/tm-mon960.h (ADDITIONAL_OPTIONS, + ADDITIONAL_OPTION_CASES, ADDITIONAL_OPTION_HELP): Remove. + +Sat Mar 30 11:00:22 1996 Fred Fish + + * configure.in: Check whether printf family supports printing + long doubles or not and define PRINTF_HAS_LONG_DOUBLE if so. + * acconfig.h: Provide default undef for PRINTF_HAS_LONG_DOUBLE. + * configure: Regenerate. + * valprint.c (print_floating): Use PRINTF_HAS_LONG_DOUBLE. + * c-exp.y (parse_number): Use PRINTF_HAS_LONG_DOUBLE. + * configure.in: Fix have_gregset and have_fpregset autoconf + variable names so that they match the pattern required to + cache them. + +Fri Mar 29 21:39:56 1996 Fred Fish + + * core-aout.c (fetch_core_registers): Cast core_reg_size to int + before testing against reg_ptr. + * eval.c (evaluate_subexp_standard): Cast type of + TYPE_FN_FIELD_VOFFSET to int. + * findvar.c (extract_signed_integer, extract_unsigned_integer, + extract_long_unsigned_integer): Cast type of sizeof to int. + * values.c (unpack_field_as_long, modify_field): Ditto. + * valops.c (value_assign, call_function_by_hand): Ditto. + * infcmd.c (do_registers_info): Ditto. + * ser-tcp.c (tcp_open): Ditto. + * remote.c (putpkt): Ditto. + * dcache.c (dcache_peek): Ditto. + * dcache.c (dcache_poke): Ditto. + * m2-exp.y (yylex): Ditto. + * gnu-regex.c (re_match_2): Ditto. + * f-lang.c (ADD_BF_SYMNUM, saved_bf_list_end, tmp_bf_ptr): Ifdef + out unused macro definition and variables. + * inftarg.c (proc_wait): Move from main.c to here, and make static. + * valprint.c (val_print_string): Change bufsize from int to unsigned. + * main.c (wait.h): Include. + * top.c (command_line_input): Remove unused variable "c". + * f-typeprint.c (f_type_print_varspec_prefix): Add missing enum + value TYPE_CODE_TYPEDEF to switch statement. + (f_type_print_varspec_suffix): Add missing enum value + TYPE_CODE_TYPEDEF to switch statement. + * ch-exp.c (parse_primval): Add remaining enumeration values to + switch statement, with no specific action. + (ch_lex): Add LOC_UNRESOLVED in switch statement. + (pushback_token): Ifdef out, since code using it is ifdef'd out. + * stabsread.c (cleanup_undefined_types): Remove unused label + "badtype". + * objfiles.h (print_symbol_bcache_statistics): Add prototype. + * maint.c (objfiles.h): Include. + (maintenance_print_statistics): Remove unused variable "temp". + * minsyms.c (lookup_minimal_symbol_solib_trampoline): Remove + unused variable "found_file_symbol". + * m2-exp.y (yylex): Add LOC_UNRESOLVED case to switch. + * language.c (lang_bool_type): Use existing function local type + variable rather than create block local variables. + * solib.c (disable_break): Enclose in ifndef SVR4_SHARED_LIBS. + * infptrace.c (wait.h, command.h): Include. + * ser-tcp.c (gdb_string.h): Include + * i386-tdep.c (codestream_seek): Change "place" to CORE_ADDR. + (i386_get_frame_setup): Change "pc" from int to CORE_ADDR. + * command.c (complete_on_enum): Make assignment used as truth value + explictly check against NULL. + (wait.h): Include. + * infrun.c (wait_for_inferior): Ifdef out prologue_pc since code + that uses it is ifdef'd out. + * parser-defs.h: Add prototype for write_dollar_variable. + * infrun.c: Add prototype for write_pc_pid. + * breakpoint.h: Add prototype for re_enable_breakpoints_in_shlibs. + * symmisc.c (bcache.h): Include. + * bcache.h: Add prototype for print_bcache_statistics. + * symfile.c: Include . + * printcmd.c (print_scalar_formatted): Change len to unsigned int. + * valarith.c (value_equal): Cast result of TYPE_LENGTH to int. + * valarith.c (value_binop): Change result_len, promoted_len1, + and promoted_len2 to unsigned int. + * valarith.c (value_subscripted_rvalue): Change elt_offs and + elt_size to unsigned int. + * valops.c (value_array): Change typelength to unsigned int. + (destructor_name_p): Change len to unsigned int. + * scm-lang.h (scm_parse): Add prototype for scm_unpack. + * symfile.c (decrement_reading_symtab): Change return type to void. + * valarith.c (value_subscript): Remove unused variable "word". + (value_subscript): Remove unused variable "tint". + * valops.c (auto_abandon): Ifdef out, since code using it is also + ifdef'd out. + * eval.c (init_array_element): Remove unused variable "val". + * Makefile.in (values.o): Depends on scm-lang.h. + (command.o): Depends upon wait_h. + (ser-tcp.o): Depends upon gdb_string.h. + (infptrace.o): Depends upon wait_h and command_h. + (maint.o): Depends on objfiles.h and symfile.h. + * values.c (allocate_repeat_value): Remove unused variable + "element_type". + (scm-lang.h): Include. + * breakpoint.c (create_longjmp_breakpoint): Enclose in + GET_LONGJMP_TARGET define, unused otherwise. + * config/i386/nm-linux.h: Add prototypes for i386_insert_watchpoint, + i386_remove_watchpoint and i386_stopped_by_watchpoint. + +Thu Mar 28 12:53:19 1996 Doug Evans + + * configure.in (sparc64-*-solaris2*): Delete. + Stick with sparc-*-solaris2*. + * configure: Regenerated. + +Thu Mar 28 06:51:26 1996 Fred Fish + + * valops.c (value_assign): Make copy of internal variable value + before returning it as a new value, since it is owned by the + internal variable and will be freed along with it. + +Wed Mar 27 08:36:17 1996 Jeffrey A Law (law@cygnus.com) + + * From Peter Schauer. + * breakpoint.c (breakpoint_re_set_one): Keep temporary + breakpoints bp_until, bp_finish, bp_watchpoint_cope, bp_call_dummy + and bp_step_resume in case breakpoint_re_set_one is called due + to a step over a dlopen call. + * infrun.c (wait_for_inferior): Always remove breakpoints from + inferior in BPSTAT_WHAT_CHECK_SHLIBS case. + +Tue Mar 26 13:15:32 1996 Fred Fish + + * config/mips/tm-mips.h (COERCE_FLOAT_TO_DOUBLE): Only prefer + non-prototyped case over prototyped case for C. + * config/pa/tm-hppa.h (COERCE_FLOAT_TO_DOUBLE): Ditto. + +Sat Mar 23 17:24:28 1996 Fred Fish + + * os9kread.c (os9k_process_one_symbol): Note nonportable + assumption that an int can hold a char *. + + * bcache.h (struct hashlink): Wrap data[] inside union with + double to force longest alignment. + (BCACHE_DATA): New macro to access data[]. + (BCACHE_ALIGNMENT): New macro to get offset to data[]. + * bcache.c (lookup_cache, bcache): Use BCACHE_DATA to get + address of cached data. Use BCACHE_ALIGNMENT to compute + amount of space to allocate for each hashlink struct. + +Sat Mar 23 12:14:02 1996 Fred Fish + + * ch-lang.c (evaluate_subexp_chill): Fix typo. + +Thu Mar 21 08:27:19 1996 Fred Fish + + * Makefile.in (VERSION): Bump version to 4.15.3 + +Thu Mar 21 10:56:41 1996 Ian Lance Taylor + + * config.in: Rename from config.h.in. + * configure.in: Call AC_CONFIG_HEADER with config.h:config.in. + Change CONFIG_HEADERS test in AC_OUTPUT accordingly. + * configure: Rebuild. + * Makefile.in (stamp-h): Depend upon config.in, not config.h.in. + Set CONFIG_HEADERS to config.h:config.in. + +Tue Mar 19 12:47:51 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * partial-stab.h (case N_ENDM): Finish current partial symbol + table for Solaris 2 cc. + +Tue Mar 19 10:39:15 1996 Jeffrey A Law (law@cygnus.com) + + * rs6000-nat.c (exec_one_dummy_insn): Don't clobber the + PC in the registers array. From Peter Schauer. + +Mon Mar 18 13:47:09 1996 Fred Fish + + * symfile.c (reread_symbols): Reinitialize bcache struct + members to zero using memset. Also use memset to reinit + global_psymbols and static_psymbols, rather than explicitly + resetting each structure member. + +Sat Mar 16 19:47:36 1996 Fred Fish + + * configure.in: Add fragment to create stamp-h. + + From Peter Schauer + * configure.in (AC_CHECK_HEADERS): Check for link.h. + * configure: Regenerate with autoconf. + * config.h.in: Regenerate with autoheader. + * config/i386/nm-linux.h: Include solib.h only if HAVE_LINK_H + is defined. + * solib.c: Exclude most of the code if HAVE_LINK_H is not defined. + * config/i386/linux.mh: Reinstate XM_CLIBS, it is needed for + older a.out based systems. + +Sat Mar 16 16:45:43 1996 Fred Fish + + * config.h.in: New file. + * acconfig.h: New file, for autoheader. + * configure.in (AC_CONFIG_HEADER): Add, generate config.h. + * configure: Regenerate. + * Makefile.in (defs_h): Add config.h + (distclean): Remove config.h and stamp-h during distclean. + (config.h, stamp-h): New targets to remake config.h when necessary. + * defs.h (config.h): Include before any other includes or defines. + * i386-tdep.c (gdb_string.h): Move include after include of defs.h. + * i386v4-nat.c (defs.h): Include before testing HAVE_SYS_PROCFS_H. + +Sat Mar 16 14:55:27 1996 Fred Fish + + From Peter Schauer + * Makefile.in (INSTALLED_LIBS): Make sure that @LIBS@ will not + result in an empty line, to work around a bug in native Ultrix 4.4 + and OSF/1-3.2C make. + +Sat Mar 16 13:33:17 1996 Fred Fish + + * configure.in: Add gdbserver to configdirs under linux. + * configure: Regenerate. + +Fri Mar 15 12:06:58 1996 J.T. Conklin + + * config/i386/nm-nbsd.h (FLOAT_INFO): Comment out. + * config/i386/tm-nbsd.h (NUM_REGS): Define. + +Thu Mar 14 10:31:18 1996 Jeffrey A Law (law@cygnus.com) + + * solib.c (solib_break_names): Add _r_debug_state for + vanilla SVR4 implementations. From Peter Schauer. + +Mon Mar 11 14:24:57 1996 Dawn Perchik + + * mon960-rom.c: New file; support mon960 rom monitor on i960. + * monitor.c (monitor_debug): Change remotedebug to buffer strings. + * monitor.c (monitor_open): Add test for flag MO_NO_ECHO_ON_OPEN before + epecting prompt and echo during open. + * monitor.c (monitor_stop): Add test for flag MO_SEND_BREAK_ON_OPEN to + determine if break should be sent as stop command. + * monitor.h: Add flags MO_NO_ECHO_ON_OPEN and MO_SEND_BREAK_ON_OPEN. + * i960-tdep.c (mon960_frame_chain_valid): New function for getting + stack frame on mon960. + * Makefile.in: Add mon960 files. + * configure.in: Changed i960-*-coff* and i960-*-elf* to target mon960; + added i960-nindy-coff* and i960-nindy-elf* for target nindy. + * configure: Regenerated. + * config/i960/mon960.mt, config/i960/tm-mon960.h: New files; + support mon960 rom monitor on i960. + +Mon Mar 11 11:02:47 1996 Steve Chamberlain + + With Michael Snyder: + * i386-tdep.c (skip_trampoline_code): Fix strncmp length. + * win32-nat.c (CHECK, DEBUG*, debug_*): New. + (handle_load_dll): Don't reload symbols. + (handle_exception): Use the DEBUG_* names. + (child_wait): Add DEBUG_* code. + (_initialize_inftarg): Add new commands to set debug_ names. + +Mon Mar 11 09:19:58 1996 Jeffrey A Law (law@cygnus.com) + + * From Peter Schauer: + * breakpoint.c (insert_breakpoints): Use ALL_BREAKPOINTS_SAFE. + (bpstat_stop_status): Likewise. + (remove_solib_event_breakpoints): Likewise. + (clear_momentary_breakpoints): Likewise. + (re_enable_breakpoints_in_shlibs): Don't reenable a breakpoint + if we still can't read the memory for that breakpoint. + (mention): Add bp_shlib_event case to keep gcc quiet. + +Fri Mar 8 12:08:12 1996 Jeffrey A Law (law@cygnus.com) + + * breakpoint.h (enum enable): New enum shlib_disabled for + shared library breakpoints that have been temporarily disabled. + * breakpoint.c: Handle temporarily disabled shared library + breakpoints like disabled breakpoints in most places. + (insert_breakpoints): Use shlib_disabled to indicate + that an unsettable breakpoint is only temporarily disabled. + (re_enable_breakpoints_in_shlibs): New function. + * corelow.c (solib_add_stub): After adding shared libraries, + try to reenable any temporarily disabled breakpoints. + * infcmd.c (attach_command): Likewise. + * infrun.c (wait_for_inferior): Likewise. + +Fri Mar 8 11:41:25 1996 Ian Lance Taylor + + * defs.h (extract_long_unsigned_integer): Declare. + * findvar.c (extract_long_unsigned_integer): New function. + * printcmd.c (print_scalar_formatted): Use it. + * valprint.c (val_print_type_code_int): Likewise. + +Thu Mar 7 17:40:50 1996 Stan Shebs + + * infcmd.c (do_registers_info): Ignore anonymous registers. + * sh-tdep.c (set processor): New command to set specific + processor type. + (sh_reg_names, sh3_reg_names): Arrays of register names for + SH and SH3 processors. + (sh_set_processor_type): New function. + * sh3-rom.c (sh3_open): Call it. + (sh3_regname): Add names of all the bank registers. + (sh3_supply_register): Clean up formatting. + * config/sh/tm-sh.h (NUM_REGS, NUM_REALREGS): Increase to include + bank registers. + (REGISTER_NAMES): Add names of bank registers. + (FP15_REGNUM): Define. + (REGISTER_VIRTUAL_TYPE): Use it. + * monitor.c: Clean up some comments. + +Thu Mar 7 12:09:51 1996 J.T. Conklin + + * i386b-nat.c: Revert part of Mar 5 change. FreeBSD collapsed the + s* and t* symbols too. + +Thu Mar 7 15:18:51 1996 James G. Smith + + * symfile.c (generic_load): Avoid division by zero. + +Wed Mar 6 17:57:59 1996 Jeffrey A Law (law@cygnus.com) + + * breakpoint.c (bfd_lookup_symbol): Provide for all SVR4 systems, + not just those with HANDLE_SVR4_EXEC_EMULATORS. + + From Peter Schauer: + * breakpoint.c (internal_breakpoint_number): Move to file scope. + (create_solib_event_breakpoint): Use an internal breakpoint number. + +Wed Mar 6 00:32:44 1996 Wilfried Moser + + * valarith.c (value_in): Change builtin_type_chill_bool to + LA_BOOL_TYPE. + +Tue Mar 5 23:48:36 1996 Wilfried Moser + + * ch-exp.c (parse_primval): Handle CARD, MAX, MIN. + (match_string_literal): Handle control sequence. + (match_character_literal): Deto. + + * ch-lang.c (chill_printchar): Change formating of nonprintable + characters from C'xx' to ^(num). + (chill_printstr): Deto. + (value_chill_card, value_chill_max_min): New functions to process + Chill's CARD, MAX, MIN. + (evaluate_subexp_chill): Process UNOP_CARD, UNOP_CHMAX, UNOP_CHMIN. + + * expression.h (exp_opcode): Add UNOP_CARD, UNOP_CHMAX, UNOP_CHMIN + for Chill's CARD, MAX, MIN. + + * valarith.c (value_in): Add processing of TYPE_CODE_RANGE + and change return type from builtin_type_int to + builtin_type_chill_bool. + +Tue Mar 5 18:54:04 1996 Stan Shebs + + * config/nm-nbsd.h (link_object, lo_name, etc): Move to here + from config/nm-nbsd.h. + * config/sparc/nm-nbsd.h (regs, fp_status, etc): Move to here + from config/sparc/tm-nbsd.h. + + * config/m68k/nm-hp300hpux.h (FIVE_ARG_PTRACE): Define here + instead of in config/m68k/xm-hp300hpux.h. + +Tue Mar 5 12:05:35 1996 J.T. Conklin + + * i386b-nat.c, m68knbsd-nat.c (fetch_core_registers): Provide + implementation for NetBSD systems. + +Mon Mar 4 23:44:16 1996 Per Bothner + + * valarith.c (binop_user_defined_p): Return 0 for BINOP_CONCAT. + (value_concat): Handle varying strings (add COERCE_VARYING_ARRAY). + + * ch-lang.c (evaluate_subexp_chill case MULTI_SUBSCRIPT): Error + if "function" is pointer to non-function. + +Mon Mar 4 17:47:03 1996 Stan Shebs + + * top.c (print_gdb_version): Update copyright year. + +Mon Mar 4 14:44:54 1996 Jeffrey A Law (law@cygnus.com) + + From Peter Schauer: + * infrun.c (wait_for_inferior): Remove breakpoints and + switch terminal settings before calling SOLIB_ADD. + * solib.c (enable_break, SVR4 variant): Don't map in symbols + for the dynamic linker, the namespace pollution causes real + problems. + +Sun Mar 3 17:18:57 1996 James G. Smith + + * remote-mips.c (common_breakpoint): Explicitly terminate the + returned buffer. + +Wed Feb 28 22:32:18 1996 Stan Shebs + + From Wilfried Moser : + * remote.c (remote_detach): Send a command 'D' to the target + when detaching, update the function's comments. + +Thu Jun 6 16:11:38 1996 Miles Bader + + * gnu-nat.c (thread_cmd_list): New declaration. + (parse_int_arg): New function. + +Wed Jun 5 17:28:04 1996 Miles Bader + + * gnu-nat.h (struct proc): Add DETACH_SC field. + * gnu-nat.c (make_proc): Set DETACH_SC. + (struct inf): Add DETACH_SC & DEFAULT_THREAD_DETACH_SC fields. + (make_inf): Set DETACH_SC & DEFAULT_THREAD_DETACH_SC fields. + (add_thread_commands): Add set/show for detach-suspend-count. + Add takeover-suspend-count cmd. + (inf_detach): Set suspend counts to the detach SC, not 0. + (set_thread_detach_sc_cmd, show_thread_detach_sc_cmd, + set_task_detach_sc_cmd, show_task_detach_sc_cmd, + set_thread_default_thread_detach_sc_cmd, + show_thread_default_thread_detach_sc_cmd): New functions. + (show_task_cmd): Also show detach-suspend-count values. + (thread_takeover_sc_cmd): New function. + +Fri May 31 16:49:24 1996 Miles Bader + + * gnu-nat.c (show_thread_run_cmd): Actually print state. + +Thu May 30 10:47:56 1996 Miles Bader + + * gnu-nat.c (inf_signal): Make unforwardable exceptions an error. + +Tue May 28 17:06:36 1996 Miles Bader + + * gnu-nat.c (inf_validate_stopped): proc_getprocinfo takes a + pointer to the flags now, not the flags themselves. + +Mon May 27 13:31:17 1996 Miles Bader + + * gnu-nat.c (gnu_wait): Print debugging msgs for pending execs. + (gnu_create_inferior): Check return from ptrace. + +Sun May 26 16:56:35 1996 Miles Bader + + * gnu-nat.h (struct proc): Add DEAD field. + * gnu-nat.c (make_proc): Initialize DEAD. + (inf_set_traced, inf_validate_task_sc, inf_validate_procs: Frob it. + (gnu_wait): Only abort for 0 threads if the task isn't dead. + +Sat May 25 17:06:05 1996 Miles Bader + + * gnu-nat.c (inf_signal): Pass SIGCODE when posting a signal. + +Wed May 22 18:44:28 1996 Miles Bader + + * gnu-nat.c (S_proc_wait_reply): Add SIGCODE argument. + (inf_set_traced): Only give no-signal-thread error message if + turning *on* tracing. + +Wed May 15 13:03:16 1996 Miles Bader + + * gnu-nat.c (inf_validate_procs): If INF has no threads, always + set inf->threads_up_to_date to 0. + (inf_signal): Pass in new SIGCODE argument to msg_sig_post_untraced. + (gnu_wait): Pass in new TIMEOUT arg to interrupt_operation. + (proc_update_sc): Cast thread state arg to thread_set_state. + (proc_get_state): Cast thread state arg to thread_get_state. + (inf_validate_task_sc): Cast task_basic_info arg to task_info. + * i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Call + inf_update_procs before we lookup the thread. + * config/i386/i386gnu.mh (MH_CFLAGS): New variable. + +Tue May 7 17:52:33 1996 Miles Bader + + * gnu-nat.c (gnu_kill_inferior): Use inf_set_task to clear the task. + +Mon May 6 19:06:49 1996 Miles Bader + + * gnu-nat.c (inf_set_traced): Use msg_set_init_int with + INIT_TRACEMASK instead of setting the exec flags. + +Fri May 3 19:10:57 1996 Miles Bader + + * gnu-nat.c (inf_validate_procs): Don't clear INF->task if we find + the task's died, so others have a chance at it. + (gnu_resume): When single-stepping a single thread, given an error + if there is no such thread. When single-stepping one but running + the others, just given a warning and still run all the threads. + (gnu_wait): If there seem to be no threads, look harder, and + signal an error if there really aren't any. + (gnu_attach): Reset thread numbering to 0. + + * i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Give + thread name in warning messages. + + * gnu-nat.c (active_inf): New function. + (show_sig_thread_cmd, show_stopped_cmd): Use it. + (info_port_rights, info_send_rights_cmd, info_port_sets_cmd, + info_recv_rights_cmd, info_port_rights_cmd, info_port_rights_cmd): + New functions. + (add_task_commands): Add new port-right info commands. + +Fri Apr 26 20:42:16 1996 Miles Bader + + * gnu-nat.c (gnu_wait): Instead of _hurd_intr_rpc_mach_msg, just + use mach_msg with MACH_RCV_INTERRUPT. + (set_noninvasive_cmd): New function. + (add_task_commands): Add command entry for `set noninvasive'. + +Mon Mar 4 14:12:02 1996 Miles Bader + + * gnu-nat.c (gnu_read_inferior): Use hurd_safe_memmove, not safe_bcopy. + (safe_bcopy): Function removed. + +Mon Dec 4 14:18:26 1995 Miles Bader + + * gnu-nat.c (proc_update_sc): Assert only threads can have state. + (make_proc): Initialize state_valid & state_changed fields. + +Tue Nov 28 17:51:21 1995 Miles Bader + + * reply_mig_hack.awk: New file. + +Tue Nov 14 14:31:03 1995 Miles Bader + + * breakpoint.c (breakpoint_1): Print breakpoint thread field. + + * lynx-nat.c (child_wait): Return TARGET_WAITKIND_SPURIOUS for new + threads. + +Mon Nov 13 18:30:53 1995 Miles Bader + + * target.c (debug_to_check_threads): New function. + + * inflow.c (terminal_init_inferior_with_pgrp): New function. + (terminal_init_inferior): Call terminal_init_inferior_with_pgrp. + * inferior.h (terminal_init_inferior_with_pgrp): New declaration, + but only if PROCESS_GROUP_TYPE is defined. + +Mon Nov 6 16:42:09 1995 Miles Bader + + * target.c (debug_to_thread_alive): Pass through the return value. + +Thu Nov 2 18:05:00 1995 Miles Bader + + * target.c (signals, target_signal_from_host, target_signal_to_host): + Add mach exceptions. + * target.h (enum target_signal): Add mach exceptions. + +Mon Oct 30 16:41:04 1995 Miles Bader + + * gnu-nat.c: New file: gnu native backend. + * i386gnu-nat.c: New file: i386-specific part of gnu native backend. + * gnu-nat.h: New file. + * config/nm-gnu.h: New file. + * config/tm-i386gnu.h: New file. + * config/xm-i386gnu.h: New file. + * config/i386/i386gnu.mh: New file. + * config/i386/i386gnu.mt: New file. + +Wed Feb 28 15:50:12 1996 Fred Fish + + * Makefile.in (VERSION): Bump version to 4.15.2 to establish + baseline for gdb 4.16 rerelease testing. + +Wed Feb 28 13:32:05 1996 Jeffrey A Law (law@cygnus.com) + + * somsolib.c (som_solib_create_inferior_hook): Before returning + call clear_symtab_users. + +Tue Feb 27 00:04:46 1996 Stu Grossman (grossman@critters.cygnus.com) + + * remote-e7000.c (e7000_open): Delete all breakpoints when + connecting to e7000. Change connect message to allow use of + monitor.exp in test suite. + * (e7000_load): Print transfer rate of download. + * symfile.c (generic_load): Print transfer rate of download. + +Sun Feb 25 13:58:33 1996 Stan Shebs + + * configure.in (mips*-*-vxworks*): New config. + * configure: Regenerated. + + * config/mips/vxmips.mt, config/mips/tm-vxmips.h: New files. + * remote-vxmips.c (vx_convert_to_virtual, vx_convert_from_virtual): + Remove, never used. + +Sat Feb 24 12:30:28 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * partial-stab.h (case N_FUN): Function symbols generated + by SPARCworks cc have a meaningless zero value, do not update + pst->textlow if the function symbol value is zero. + + * stabsread.c (define_symbol): Initialize SYMBOL_TYPE field + for function prototype declaration symbols. + +Fri Feb 23 22:33:04 1996 Stu Grossman (grossman@critters.cygnus.com) + + * remote-e7000.c (e7000_load): New routine to download via the + network. + * (e7000_wait): Don't backup PC when we hit a breakpoint. + Apparantly new sh2 pods get this right... + * (e7000_ops): Add call to e7000_load. + +Thu Feb 22 00:52:42 1996 J.T. Conklin + + * config/m68k/{nbsd.mh,nbsd.mt,nm-nbsd.h,tm-nbsd.h,xm-nbsd.h}, + m68knbsd-nat.c: New files, support for NetBSD/m68k. + + * configure.in (m68k-*-netbsd*): New config. + * configure: Regenerated. + +Wed Feb 21 19:00:21 1996 Fred Fish + + * standalone.c (open, _initialize_standalone): Fix obvious typos + reported by Martin Pool . + +Wed Feb 21 14:24:04 1996 Jeffrey A Law (law@cygnus.com) + + * solib.c (solib_create_inferior_hook): Fix thinko. + +Tue Feb 20 23:59:19 1996 Jeffrey A Law (law@cygnus.com) + + * solib.c (solib_break_names): Define for Solaris and Linux. + (enable_break): For SVR4 systems, first try to use the debugger + interfaces in the dynamic linker to track shared library events + as they happen, then fall back to BKPT_AT_SYMBOL code. Convert + BKPT_AT_SYMBOL code to use shared library event breakpoints. + (solib_create_inferior_hook): Simplify BKPT_AT_SYMBOL code, + it no longer needs to restart/wait on the inferior. + * symfile.c (find_lowest_section): No longer static. + * symfile.h (find_lowest_section): Corresponding changes. + +Tue Feb 20 18:54:08 1996 Fred Fish + + * valops.c (COERCE_FLOAT_TO_DOUBLE): Define default value. + (value_arg_coerce): Use COERCE_FLOAT_TO_DOUBLE. + * config/alpha/tm-alpha.h (COERCE_FLOAT_TO_DOUBLE): Define to 1. + * config/mips/tm-mips.h: Ditto. + * config/pa/tm-hppa.h: Ditto. + * config/rs6000/tm-rs6000.h: Ditto. + * config/sparc/tm-sparc.h: Ditto. + +Tue Feb 20 17:32:05 1996 J.T. Conklin + + * config/{i386,ns32k}/nbsd.mh (NATDEPFILES): Remove core-aout.o. + + * config/nm-nbsd.h (FETCH_INFERIOR_REGISTERS): Defined. + * config/xm-nbsd.h (CC_HAS_LONG_LONG, PRINTF_HAS_LONG_LONG): + #ifdef'd out definitions --- Causes serious gdb failures on + the i386. Need to investigate further before enabling. + + * i386b-nat.c (fetch_inferior_registers, store_inferior_registers, + fetch_core_registers): New functions. These functions are defined + if FETCH_INFERIOR_REGISTERS is set. Registers are fetched/stored + with ptrace PT_GETREGS/PT_SETREGS. + +Tue Feb 20 16:55:06 1996 Stu Grossman (grossman@critters.cygnus.com) + + * findvar.c (extract_floating store_floating): Replace `long + double' with `DOUBLEST'. + +Mon Feb 19 15:25:51 1996 J.T. Conklin + + * config/xm-nbsd.h (CC_HAS_LONG_LONG, PRINTF_HAS_LONG_LONG): + Define. + +Mon Feb 19 10:32:05 1996 Jeffrey A Law (law@cygnus.com) + + * symtab.h (looup_minimal_symbol_solib_trampoline): Declare. + + * breakpoint.h (remove_solib_event_breakpoints): Declare. + * breakpoint.c (remove_solib_event_breakpoints): New function. + * somsolib.c (solib_create_inferior_hook): Remove all solib event + breakpoints before inserting any new ones. Use a solib event + breakpoint for the breakpoint at "_start". + Remove extraneous "\n" from calls to warning. + + * breakpoint.c (breakpoint_1): Add missing "sigtramp" to bptypes + name array. + +Mon Feb 19 01:09:32 1996 Doug Evans + + * dwarfread.c (add_partial_symbol): Use ADD_PSYMBOL_ADDR_TO_LIST + for CORE_ADDR values. + (new_symbol): Use SYMBOL_VALUE_ADDRESS for CORE_ADDR values. + * symfile.h (add_psymbol_{,addr}to_list): Add prototypes. + +Sun Feb 18 14:37:13 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mipsread.c (mipscoff_symfile_read): Unconditionally add + alpha coff dynamic symbols for all symbol files. Makes skipping + over the trampoline code work when stepping from a function in a + shared library into a function in a different shared library. + +Sun Feb 18 09:27:10 1996 Stu Grossman (grossman@cygnus.com) + + * config/sparc/tm-sparc.h: Define PS_FLAG_CARRY. Define + RETURN_VALUE_ON_STACK to return long doubles on the stack. + +Sat Feb 17 16:33:11 1996 Fred Fish + + * Makefile.in (ch-exp.o): Add dependencies. + (various): Add gdb_string.h to dependencies that need it. + +Sat Feb 17 08:57:50 1996 Fred Fish + + * symmisc.c (print_symbol_bcache_statistics): Update description for + printing byte cache statistics. + +Thu Feb 16 16:02:03 1996 Stu Grossman (grossman@cygnus.com) + + * Add native support for long double data type. + * c-exp.y (%union): Change dval to typed_val_float. Use DOUBLEST + to store actual data. Change types of INT and FLOAT tokens to + typed_val_int and typed_val_float respectively. Create new token + DOUBLE_KEYWORD to specify the string `double'. Make production + for FLOAT use type determined by parse_number. Add production for + "long double" data type. + * (parse_number): Use sscanf to parse numbers as float, double or + long double depending upon the type of typed_val_float.dval. Also + allow user to specify `f' or `l' suffix to explicitly specify + float or long double constants. Change typed_val to + typed_val_int. + * (yylex): Change typed_val to typed_val_int. Also, scan for + "double" keyword. + * coffread.c (decode_base_type): Add support for T_LNGDBL basic + type. + * configure, configure.in: Add check for long double support in + the host compiler. + * defs.h: Define DOUBLEST appropriatly depending on whether + HAVE_LONG_DOUBLE (from autoconf) is defined. Also, fix prototypes + for functions that handle this type. + * expression.h (union exp_element): doubleconst is now type + DOUBLEST. + * m2-exp.y f-exp.y (%union): dval becomes type DOUBLEST. + * findvar.c (extract_floating): Make return value be DOUBLEST. + Also, add support for numbers with size of long double. + * (store_floating): Arg `val' is now type DOUBLEST. Handle all + floating types. + * parser-defs.h parse.c (write_exp_elt_dblcst): Arg expelt is now + DOUBLEST. + * valarith.c (value_binop): Change temp variables v1, v2 and v to + type DOUBLEST. Coerce type of result to long double if either op + was of that type. + * valops.c (value_arg_coerce): If argument type is bigger than + double, coerce to long double. + * (call_function_by_hand): If REG_STRUCT_HAS_ADDR is defined, and + arg type is float and > 8 bytes, then use pointer-to-object + calling conventions. + * valprint.c (print_floating): Arg doub is now type DOUBLEST. + Use appropriate format and precision to print out floating point + values. + * value.h: Fixup prototypes for value_as_double, + value_from_double, and unpack_double to use DOUBLEST. + * values.c (record_latest_value): Remove check for invalid + floats. Allow history to store them so that people may examine + them in hex if they want. + * (value_as_double unpack_double): Change return value to DOUBLEST. + * (value_from_double): Arg `num' is now DOUBLEST. + * (using_struct_return): Use RETURN_VALUE_ON_STACK macro (target + specific) to expect certain types to always be returned on the stack. + +Fri Feb 16 14:00:54 1996 Fred Fish + + * bcache.c, bcache.h: New files to implement a byte cache. + * Makefile.in (SFILES): Add bcache.c. + (symtab_h): Add bcache.h. + (HFILES_NO_SRCDIR): add bcache.h + (COMMON_OBJS): Add bcache.o + (bcache.o): New target. + * dbxread.c (start_psymtab): Make global_syms & static_syms + type "partial_symbol **". + * hpread.c (hpread_start_symtab): Ditto. + * os9kread.c (os9k_start_psymtab): Ditto. + * stabsread.h (start_psymtab): Ditto. + * {symfile.c, symfile.h} (start_psymtab_common): Ditto. + * maint.c (maintenance_print_statistics): Call + print_symbol_bcache_statistics. + * objfiles.c (allocate_objfile): Initialize psymbol bcache malloc + and free pointers. + * solib.c (allocate_rt_common_objfile): Ditto. + * symfile.c (reread_symbols): Ditto. + (free_objfile): Free psymbol bcache when objfile is freed. + (objfile_relocate): Use new indirect psymbol pointers. + * objfiles.h (struct objfile): Add psymbol cache. + * symfile.c (compare_psymbols): Now passed pointers to pointers to + psymbols. + (reread_symbols): Free psymbol bcache when freeing other objfile + resources. + (add_psymbol_to_list, add_psymbol_addr_to_list): Initialize new + psymbol using the psymbol bcache. + (init_psymbol_list): Psymbol lists now contain pointers rather than + the actual psymbols. + * symfile.h (psymbol_allocation_list): Psymbol lists now dynamically + grown arrays of pointers. + (ADD_PSYMBOL_VT_TO_LIST): Initialize new symbol using the psymbol + bcache. + * symmisc.c (print_partial_symbols): Now takes pointer to pointer + to partial symbol. + (print_symbol_bcache_statistics): New function to print per objfile + bcache statistics. + (print_partial_symbol, print_partial_symbols, + maintenance_check_symtabs, extend_psymbol_list): + Account for change to pointer to pointer to partial symbol. + * symtab.c (find_pc_psymbol, lookup_partial_symbol, decode_line_2, + make_symbol_completion_list): + Account for change to pointer to pointer to partial symbol. + * symtab.h (bcache.h): Include. + * xcoffread.c (xcoff_start_psymtab): Make global_syms & static_syms + type "partial_symbol **". + +Fri Feb 16 10:02:34 1996 Fred Fish + + * dwarfread.c (free_utypes): New function. + (read_file_scope): Call free_utypes as cleanup, rather than just + freeing the utypes pointer. + +Thu Feb 15 21:40:52 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * demangle.c (is_cplus_marker): New function, checks if a + character is one of the commonly used C++ marker characters. + * defs.h (is_cplus_marker): Add prototype. + * c-typeprint.c (c_type_print_base), ch-lang.c (chill_demangle), + cp-valprint.c (cp_print_class_method), mdebugread.c (parse_symbol), + stabsread.c (define_symbol, read_member_functions, read_struct_fields), + symtab.h (OPNAME_PREFIX_P, VTBL_PREFIX_P, DESTRUCTOR_PREFIX_P), + values.c (vb_match): Use is_cplus_marker instead of comparison + with CPLUS_MARKER. + +Thu Feb 15 18:08:13 1996 Fred Fish + + * symfile.h (INLINE_ADD_PSYMBOL): Default this to 0 and possibly + delete entirely someday. + +Thu Feb 15 15:25:34 1996 Stan Shebs + + * mpw-make.sed: Edit out makefile rebuild rule. + (host_alias, target_alias): Comment out instead of deleting. + (@LIBS@): Edit out references. + +Tue Feb 13 22:56:46 1996 Fred Fish + + * symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list): + Use n_psyms in OBJSTAT, not psyms. + +Mon Feb 12 15:59:31 1996 Doug Evans + + * configure.in (sparclet-*-aout*): New config. + * configure: Regenerated. + +Mon Feb 12 14:17:52 1996 Fred Fish + + * somsolib.c (som_solib_add): Use xmalloc rather than bare + unchecked call to malloc. + * remote-mips.c (pmon_load_fast): ditto. + * remote-mm.c (mm_open): ditto. + * hpread.c (hpread_lookup_type): ditto. + * remote-adapt.c (adapt_open): ditto. + +Mon Feb 12 13:11:32 1996 Fred Fish + + * f-lang.c (allocate_saved_bf_node, allocate_saved_function_node, + allocate_saved_f77_common_node, allocate_common_entry_node, + add_common_block): Use xmalloc rather than malloc, some of which + were unchecked. + * gnu-regex.c: At same point as other gdb specific changes + #undef malloc and then #define it to xmalloc. + * ch-exp.c (growbuf_by_size): Use xmalloc/xrealloc rather than + bare unchecked calls to malloc/realloc. + * stabsread.c (dbx_lookup_type): Use xmalloc rather than bare + unchecked call to malloc. + +Wed Feb 7 11:31:26 1996 Stu Grossman (grossman@cygnus.com) + + * symtab.c (gdb_mangle_name): Change opname var to be const to + match return val of cplus_mangle_name. + * i960-tdep.c: Change arg types of next_insn to match callers. + +Wed Feb 7 07:34:24 1996 Fred Fish + + * config/i386/linux.mh (XM_CLIBS, GDBSERVER_LIBS): Remove. These + apparently aren't needed in any reasonably recent version of + linux. + +Tue Feb 6 21:37:03 1996 Per Bothner + + * stabsread.c (read_range_type): If !self-subrange and language + is Chill, assume a true range. If a true_range is a sub_subrange, + use builtin_type_int for index_type. + +Tue Feb 6 18:38:51 1996 J.T. Conklin + + * nindy-share/nindy.c (say): Use stdarg.h macros when compiling + with an ANSI compiler. + +Mon Feb 5 18:24:28 1996 Steve Chamberlain + + From Michael_Snyder@NeXT.COM (Michael Snyder): + * valops.c (value_arg_coerce): Coerce float to double, unless the + function prototype specifies float. + +Mon Feb 5 09:51:55 1996 Tom Tromey + + * language.c (set_language_command): Use languages table when + printing available languages. + +Sat Feb 3 12:22:05 1996 Fred Fish + + Fix problems reported by Hans Verkuil (hans@wyst.hobby.nl): + * command.c (add_cmd): Add missing initialization for enums member. + Reorder members to match structure declaration to make it easier to + tell when one is missing. + * exec.c (exec_file_command): Fix problem where filename in malloc'd + memory is referenced after being freed. + +Sat Feb 3 03:26:21 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dwarfread.c (read_func_scope): Avoid GDB core dumps if + AT_name tag is missing. + + * procfs.c (procfs_stopped_by_watchpoint): Fix logic when + FLTWATCH and FLTKWATCH are defined. + + * remote.c (remote_read_bytes): Advance memaddr for transfers, + return number of bytes transferred for partial reads. + + * top.c (init_signals): Reset SIGTRAP to SIG_DFL. + +Fri Feb 2 13:40:50 1996 Steve Chamberlain + + * win32-nat.c (mappings): Add ppc registers. + (child_resume): Turn off step for ppc. + +Thu Feb 1 10:29:31 1996 Steve Chamberlain + + * config/powerpc/(cygwin32.mh, cygwin32.mt, tm-cygwin32.h, + xm-cygwin32.h): New. + * config/i386/(*win32*): Becomes *cygwin32*. + * configure.in (i[3456]86-*-win32*): Becomes i[3456]86-*-cygwin32. + (powerpcle-*-cygwin32): New. + * configure: Regenerate. + * win32-nat.c (child_create_inferior): Call CreateProcess + with the right program arg. + +Thu Feb 1 11:01:10 1996 Jeffrey A Law (law@cygnus.com) + + * config/pa/tm-hppa.h (SOFT_FLOAT): Provide a default definition. + +Wed Jan 31 19:01:28 1996 Fred Fish + + * serial.c: Change fputc/fputs/fprintf to _unfiltered forms. + +Wed Jan 31 18:36:27 1996 Stan Shebs + + * config/sparc/xm-sun4os4.h (HAVE_TERMIOS): Remove. + + * config/sparc/xm-sparc.h (HAVE_WAIT_STRUCT): Remove, never used. + + * config/i386/nm-i386mach.h (CHILD_PREPARE_TO_STORE): Move to + here from config/i386/xm-i386mach.h, fix name. + * config/i386/nm-sun386.h: Ditto, from config/i386/xm-sun386.h. + * config/i386/nm-ptx4.h (CHILD_PREPARE_TO_STORE): Move to + here from config/i386/xm-ptx4.h. + * config/i386/nm-ptx4.h: Ditto, from config/i386/xm-ptx.h. + * config/i386/nm-symmetry.h: Ditto, from config/i386/xm-symmetry.h. + * config/m68k/nm-sun3.h: Ditto, from config/m68k/xm-sun3.h. + * config/sparc/nm-nbsd.h: Ditto, from config/sparc/xm-nbsd.h. + * config/sparc/nm-sun4os4: Ditto, from config/sparc/xm-sparc.h. + + * config/sparc/nm-sun4sol2.h: New file, renamed from nm-sysv4.h. + (PRSVADDR_BROKEN): Move here from xm-sun4sol2.h. + * config/sparc/sun4sol2.mh (NAT_FILE): Update. + +Wed Jan 31 17:20:26 1996 Jeffrey A Law (law@cygnus.com) + + * config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Handle software + floating point correctly. + (STORE_RETURN_VALUE): Likewise. + * config/pa/tm-pro.h (SOFT_FLOAT): define. + +Wed Jan 31 13:34:52 1996 Fred Fish + + * config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT): + Define to what should be reasonable values. However, apparently + a bug in linux mmap prevents mapped symbol tables from working. + +Tue Jan 30 18:26:19 1996 Fred Fish + + * defs.h (errno.h>: Move #include closer to head of file to solve + obscure problem with systems that declare perror with const arg, in + both errno.h and stdio.h, and const is defined away by intervening + local include. + +Tue Jan 30 15:41:10 1996 Fred Fish + + From Jon Reeves : + * i386-stub.c (getpacket): Change fprintf stream from "gdb" to stderr. + (mem_fault_routine): Fix misplaced volatile type qualifier in decl. + +Mon Jan 29 19:05:58 1996 Fred Fish + + * Makefile.in (diststuff): Make all-doc; diststuff target does not + exist in doc/Makefile.in. + +Mon Jan 29 18:44:57 1996 Stan Shebs + + * config/m88k/xm-cxux.h (BP_HIT_COUNT): Remove, never used. + +Mon Jan 29 00:10:35 1996 Wilfried Moser + + * ch-valprint.c (calculate_array_length): New function to + determine the length of an array type. + (chill_val_print (case TYPE_CODE_ARRAY)): If the length of an + array type is zero, call calculate_array_length. + + * gdbtypes.c (get_discrete_bounds (case TYPE_CODE_ENUM)): The + values may not be sorted. Scan all entries and set the real lower + and upper bound. + +Sun Jan 28 15:50:42 1996 Fred Fish + + * config/xm-linux.h: Move include of solib.h and #define of + SVR4_SHARED_LIBS from here ... + * config/nm-linux.h: ...to here. + +Sat Jan 27 10:34:05 1996 Fred Fish + + * configure.in (AC_CHECK_HEADERS): Check for sys/procfs.h. + Also check for gregset_t and fpregset_t types. + * configure: Regenerate. + * core-regset.c (sys/procfs.h): Only include if HAVE_SYS_PROCFS_H + is defined. + (fetch_core_registers): Turn into stub unless both HAVE_GREGSET_T + and HAVE_FPREGSET_T are defined. These changes allow systems + like linux that are migrating to /proc support to use a single + configuration for both new and old versions. + + * config/i386/linux.mt: Note that this is now for both a.out and + ELF systems. + * config/i386/linux.mh (NATDEPFILES): Add solib.o, core-regset.o, + i386v4-nat.o + * config/i386/tm-linux.h (tm-sysv4.h): Include. + * config/i386/xm-linux.h (solib.h): Include + (SVR4_SHARED_LIBS): Define. + * i386v4-nat.c: Only compile if HAVE_SYS_PROCFS_H is defined. + (supply_gregset, fill_gregset): Compile if HAVE_GREGSET_T defined. + (supply_fpregset, fill_fpregset): Compile if HAVE_FPREGSET_T + defined. + +Fri Jan 26 13:48:14 1996 Stan Shebs + + * config/sparc/xm-sparc.h (NEW_SUN_CORE): Remove, never used. + * config/i386/xm-sun386.h: Ditto. + * config/m68k/xm-sun2.h, config/m68k/xm-sun3.h: Ditto. + +Thu Jan 25 16:05:53 1996 Tom Tromey + + * Makefile.in (INSTALLED_LIBS, CLIBS): Include @LIBS@. + +Thu Jan 25 09:22:15 1996 Steve Chamberlain + + From Greg McGary : + * dcache.c (dcache_peek, dcache_poke): Advance addr for + multi-byte I/O. + +Thu Jan 25 13:08:51 1996 Doug Evans (dje@cygnus.com) + + * infrun.c (normal_stop): Fix test for shared library event. + +Thu Jan 25 03:26:38 1996 Doug Evans + + * configure.in (sparc64-*-*): Add default host configuration. + (sparc64-*-solaris2*): Add target configuration. + (sparc64-*-solaris2* host): Link statically if GCC used. + * configure: Regenerated. + * sparc/sp64sol2.mt: New file. + +Wed Jan 24 22:31:37 1996 Doug Evans + + * Makefile.in (RUNTEST): srcdir renamed to rootsrc. + +Wed Jan 24 15:42:24 1996 Tom Tromey + + * Makefile.in (lint): Close backquotes. + +Wed Jan 24 13:19:10 1996 Fred Fish + + * NEWS: Make note of new record and replay feature for + remote debug sessions. + * serial.c (gdbcmd.h): Include. + (serial_logfile, serial_logfp, serial_reading, serial_writing): + Define here, for remote debug session logging. + (serial_log_command, serial_logchar, serial_write, serial_readchar): + New functions for remote debug session logging. + (serial_open): Open remote debug session log file when needed. + (serial_close): Close remote debug session log file when needed. + (_initialize_serial): Add set/show commands for name of remote + debug session log file. + * serial.h (serial_readchar): Declare + (SERIAL_READCHAR): Call serial_readchar(). + (SERIAL_WRITE): Call serial_write(). + (serial_close): Declare as extern. + (serial_logfile, serial_logfp): Declare. + * top.c (execute_command): Declare serial_logfp. Log user command + in remote debug session log if log file is open. + * remote-array.c (array_wait): #ifdef out echo to gdb_stdout. + (array_read_inferior_memory): Rewrite to fix memory overwrite bug. + * remote-array.c (SREC_SIZE): Remove, duplicates define in + monitor.h. + * remote-array.c (hexchars, hex2mem): Remove, unused. + * gdbserver/low-linux.c (store_inferior_registers): Remove + unnecessary extern declaration of registers[]. + * gdbserver/Makefile.in (all): Add gdbreplay. + * gdbserver/gdbreplay.c: New file. + * gdbserver/README: Give example of recording a remote + debug session with gdb and then replaying it with gdbreplay. + +Tue Jan 23 18:02:35 1996 Per Bothner + + * stabsread.c (rs6000_builtin_type): Make bool type unsigned. + (read_one_struct_field): Support boolean bitfields. + * c-valprint.c (c_val_print): Print booleans properly. + +Tue Jan 23 18:54:09 1996 Stan Shebs + + * remote-vxsparc.c (vx_convert_to_virtual, vx_convert_from_virtual): + Remove, never used. + * config/sparc/vxsparc.mt (TDEPFILES): Add remote-vxsparc.o. + +Tue Jan 23 14:36:05 1996 Per Bothner + + * ch-exp.c (parse_tuple): Error if invalid mode. + + * value.h (COERCE_ARRAY): Don't coerce enums. + (COERCE_ENUM): Don't COERCE_REF. + (COERCE_NUMBER): New macro (same as COERCE_ARRAY then COERCE_ENUM). + * valops.c (value_assign): Only do COERCE_ARRAY if internalvar (let + value_cast handle it otherwise); do *not* COERCE_ENUM either way. + * valarith.c: Use COERCE_NUMBER instead od COEREC_ARRAY. + Add COERCE_REF before COERCE_ENUM. + * values.c (value_as_long): Simplify. + + * valops.c (value_array): Create internalvar if !c_style_arrays. + + * language.c (lang_bool_type): Add Fortran support. + * eval.c (OP_BOOL): Use LA_BOOL_TYPE. + +Tue Jan 23 13:08:26 1996 Jeffrey A Law (law@cygnus.com) + + * symfile.c (auto_solib_add): Renamed from auto_solib_add_at_startup. + All references changed. + * breakpoint.c (bpstat_what): Add shlib_event to the class types. + Update state table. Reformat so that it's still readable. + When we hit the shlib_event breakpoint, set the calss of shlib_event. + (breakpoint_1): Add "shlib events" as a breakpoint type. + Print the shlib_event breakpoint like other breakpoints. + (create_solib_event_breakpoint): New function. + (breakpoint_re_set_one): Handle solib_event breakpoints. + * breakpoint.h (enum bytype): Add bp_shlib_event breakpoint type. + (enum bpstat_what_main_action): Add BPSTAT_WHAT_CHECK_SHLIBS + action. + (create_solib_event_breakpoint): Declare. + * infrun.c (wait_for_inferior): Handle CHECK_SHLIBS bpstat. + (normal_stop): Inform the user when the inferior stoped due + to a shared library event. + (_initialize_infrun): Add new set/show variable "stop-on-solib-events" + to control whether or not gdb continues the inferior or stops it when + a shared library event occurs. + * minsyms.c (lookup_minimal_symbol_solib_trampoline): New function. + * somsolib.c (TODO list): Update. + (som_solib_create_inferior_hook): Arrange for gdb to be notified + when significant shared library events occur. + * hppa-tdep.c (find_unwind_entry): No longer static. + +Tue Jan 23 09:00:48 1996 Doug Evans + + * printcmd.c (print_insn): Pass fprintf_unfiltered to + INIT_DISASSEMBLE_INFO. + +Mon Jan 22 16:59:40 1996 Stan Shebs + + * remote.c (remotebreak): New GDB variable. + (remote_break): New global. + (remote_interrupt): Send a break instead of ^C if remote_break. + * NEWS: Describe the new variable. + +Mon Jan 22 16:24:11 1996 Doug Evans + + * sparc-tdep.c (_initialize_sparc_tdep): Always use print_insn_sparc. + +Fri Jan 19 07:19:38 1996 Fred Fish + + * hp300ux-nat.c (getpagesize): Remove unused function + fetch_core_registers. + (hp300ux_core_fns): Remove, is unused. + (_initialize_core_hp300ux): Remove, is unused. + (gdbcore.h): Remove #include, no longer needed. + +Fri Jan 19 00:59:53 1996 Jeffrey A Law (law@cygnus.com) + + * rs6000-nat.c (exec_one_dummy_insn): Rework to avoid + ptrace bug in aix4.1.3 on the rs6000. + +Wed Jan 17 13:22:27 1996 Stan Shebs + + * remote-hms.c (hms_ops): Add value for to_thread_alive. + * remote-nindy.c (nindy_ops): Ditto. + * remote-udi.c (udi_ops): Ditto. + +Tue Jan 16 18:00:35 1996 James G. Smith + + * remote-mips.c (pmon_opn, pmon_wait, pmon_makeb64, pmon_zeroset, + pmon_checkset, pmon_make_fastrec, pmon_check_ack, + pmon_load_fast): New functions. Support for the PMON monitor world. + (common_open): New function to merge support for different monitors. + (mips_open): Use common_open(). + (mips_send_command): New function. + (mips_send_packet): Scan out-of-sequence packets. + (mips_enter_debug, mips_exit_debug): New functions. + (pmon_ops): New target definition structure. + +Tue Jan 16 11:22:58 1996 Stu Grossman (grossman@cygnus.com) + + * Makefile.in (CLIBS): Add LIBS to allow libraries to be + specified on the make command line (via make LIBS=xxx). + + +Fri Jan 12 21:41:58 1996 Jeffrey A Law (law@cygnus.com) + + * symtab.c (find_pc_symtab): Don't lose if OBJF_REORDERED + is set but there are no psymtabs. + +Fri Jan 12 15:56:12 1996 Steve Chamberlain + + * dsrec.c (load_srec): Remove unused variable. + * monitor.c (monitor_expect): Don't expect a ^C to echo. + * serial.c (serial_open): Add parallel interface. + * sh3-rom.c (parallel, parallel_in_use): New. + (sh3_load): If parallel_in_use, download though the + parallel port. + (sh3_open): Open parallel port if specified. + (sh3_close): New function. + (_inititalize_sh3): Add sh3_close hook and documentation. + * monitor.c (monitor_close): Export. + * monitor.h (monitor_close): Add prototype. + +Fri Jan 12 13:11:42 1996 Stan Shebs + + From Wilfried Moser : + * remote.c (remotetimeout): New GDB variable, use to set the + remote timeout for reading. + +Fri Jan 12 07:14:27 1996 Fred Fish + + * lynx-nat.c, irix4-nat.c, sparc-nat.c: Include gdbcore.h + to get "struct core_fns" defined. + * Makefile.in (lynx-nat.o, irix4-nat.o, sparc-nat.o): + Are dependent upon gdbcore_h. + +Thu Jan 11 23:13:24 1996 Per Bothner + + * symfile.c (decrement_reading_symtab): New function. + * symfile.c, symtab.h (currently_reading_symtab): New variable. + * symfile.c (psymtab_to_symtab): Adjust currently_reading_symtab. + * gdbtypes.c (check_typedef): Don't call lookup_symbol if + currently_reading_symtab (since that could infinitely recurse). + +Thu Jan 11 17:21:25 1996 Per Bothner + + * stabsread.c (read_struct_type): Trivial simplification. + + * stabsread.c (define-symbol): Use invisible references + for TYPE_CODE_SET and TYPE_CODE_BITSTRING too. + * valops.c (call_function_by_hand): Likewise. + * eval.c (evaluate_subexp_standard): When known, use the formal + parameter type as the expected type when evaluating arg expressions. + * ch-lang.c (evaluate_subexp_chill): Likewise (for MULTI_SUBSCRIPT). + +Thu Jan 11 10:08:14 1996 Tom Tromey + + * main.c (main): Disable window interface if --help or --version + specified. + +Wed Jan 10 16:08:49 1996 Brendan Kehoe + + * configure.in, configure: Recognize rs6000-*-aix4*. + * config/powerpc/xm-aix.h: Reduce to include "xm-aix4.h". + * config/rs6000/aix4.mh (XM_FILE): Point to xm-aix4.h. + * config/rs6000/xm-aix4.h: New file. + * config/xm-aix4.h: New file. + +Wed Jan 10 11:25:37 1996 Fred Fish + + From Wilfried Moser : + * gdbserver/low-linux.c: New file. + * remote.c (remote_read_bytes): Fix aborts on larger packets. + + * config/i386/linux.mh (GDBSERVER_DEPFILES, GDBSERVER_LIBS): + Define. + * stabsread.c (define_symbol): If register value is too large, + tell what it is and what max is. + +Tue Jan 9 09:33:53 1996 Jeffrey A Law (law@cygnus.com) + + * hpread.c (hpread_build_psymtabs): Finish Jan 4th + enum namespace -> enum_namespace change. + +Tue Jan 9 04:44:47 1996 Wilfried Moser + + * ch-exp.c (parse_primval): In case ARRAY, add missing + FORWARD_TOKEN (). + +Mon Jan 8 13:29:34 1996 Stan Shebs + + * remote-mips.c (mips_receive_header): Recognize \012 instead + of \n, but write \n when program sends a \012. + * ser-mac.c (mac_input_buffer): Increase size of buffer. + +Mon Jan 8 12:00:40 1996 Jeffrey A Law (law@cygnus.com) + + * infptrace.c (initialize_infptrace): Move function out of + #ifdef conditional; put code within the function inside an + #ifdef conditional. + + * buildsym.c (end_symtab): Remove sort_pending and sort_linevec + arguments. Sorting is now dependent on OBJF_REORDERED. All + callers/references changed. + * dbxread.c (read_ofile_symtab): Correctly determine value for + last_source_start_addr for reordered executables. + (process_one_symbol): Handle N_FUN with no name as an end of + function marker. + * partial-stab.h (case N_FN, N_TEXT): Don't assume CUR_SYMBOL_VALUE + is the high text address for a psymtab. + (case N_SO): Likewise. + (case N_FUN): Handle N_FUN with no name as an end of function + marker. + * minsyms.c (lookup_minimal_symbol_by_pc): Examine all symbols + at the same address rather than a random subset of them. + * coffread.c (coff_symfile_init): Set OBJF_REORDERED. + * elfread.c (elf_symfile_init): Similarly. + * somread.c (som_symfile_init): Similarly. + * xcoffread.c (xcoff_symfile_init): Similarly. + +Fri Jan 5 17:46:01 1996 Stu Grossman (grossman@cygnus.com) + + * stack.c (print_stack_frame print_frame_info) symmisc.c + (dump_symtab): Change RETURN_MASK_ERROR to RETURN_MASK_ALL so + that catch_errors doesn't get blindsided by QUIT and lose the + cleanup chain. This fixes a problem where ^C while in a + user-defined command sometimes leaves instream NULL and causes a + segfault in command_loop. + +Fri Jan 5 13:59:16 1996 Brendan Kehoe + + * configure.in, configure: Add `-ldl -lw' for Solaris linking. + +Fri Jan 5 12:02:00 1996 Steve Chamberlain + + * config/sh/sh.mt, config/powerpc/*.mt, config/pa/hppapro.mt, + config/m68k/monitor.mt, config/h8500/h8500.mt, config/h8300/h8300.mt: + srec.o renamed to dsrec.o. + +Thu Jan 4 16:04:54 1996 Stu Grossman (grossman@cygnus.com) + + * breakpoint.c (remove_breakpoint): Change error to warning so + that hardware watchpoint removal problems won't leave breakpoint + traps in the target. + * remote-e7000.c (e7000_insert_breakpoint, + e7000_remove_breakpoint): Use e7000 based breakpoints, not memory + breakpoints. + * (e7000_wait): Adjust PC back by two when we see a breakpoint to + compensate for e7000 maladjustment. + * sparcl-tdep.c (sparclite_check_watch_resources): Fix logic bug + which prevented hardware watchpoints from working. + +Thu Jan 4 10:44:17 1996 Fred Fish + + * infptrace.c (udot_info): New function. + (PT_*): Define each individually if that one is not defined. + * rs6000-nat.c (kernel_u_size): New function + Include for "struct user" + * alpha-nat.c (kernel_u_size): New function. + Include for "struct user" + * sparc-nat.c (kernel_u_size): New function. + Include for "struct user" + * i386b-nat.c (kernel_u_size): New function. + * i386v-nat.c (kernel_u_size): New function. + * config/i386/nm-fbsd.h (KERNEL_U_SIZE): Define. + (kernel_u_size): Declare. + * config/i386/nm-linux.h (KERNEL_U_SIZE): Define. + (kernel_u_size): Declare. + * config/sparc/nm-sun4os4.h (KERNEL_U_SIZE): Define. + (kernel_u_size): Declare. + * config/alpha/nm-osf2.h (KERNEL_U_SIZE): Define. + (kernel_u_size): Declare. + * config/rs6000/nm-rs6000.h (KERNEL_U_SIZE): Define. + (kernel_u_size): Declare. + +Thu Jan 4 11:00:01 1996 steve chamberlain + + * mdebugread.c (mylookup_symbol): enum namespace becomes + enum_namespace type. + * symfile.c (add_psymbol_to_list) + (add_psymbol_addr_to_list): Ditto. + * symtab.c (lookup_partial_symbol): Ditto. + (lookup_symbol): Ditto. + (lookup_block_symbol): Ditto. + * win32-nat.c (handle_load_dll): Use incoming dll base. + (child_wait): Catch DLL load errors. + (create_child_inferior): Translated between paths correctly. + +Wed Jan 3 23:13:53 1996 Fred Fish + + * i386v4-nat.c (supply_gregset, fill_gregset): Subtract NUM_FREGS + from NUM_REGS to get number of general registers that we care about. + * config/i386/tm-i386.h (REGISTER_BYTES): Define in terms + of number of general regs and number of floating point regs. + +Wed Jan 3 19:49:54 1996 steve chamberlain + + * config/i386/tm-win32.h (IN_SOLIB_CALL_TRAMPOLINE): New. + (SKIP_TRAMPOLINE_CODE): New. + * config/i386/xm-win32.h (CANT_FORK): Deleted. + (SLASH*) Changed to use unix style slash. + * symtab.h (namespace enum): becomes typedef to avoid namespace + collision in C++. + * infcmd.c (path_command): Use empty string if PATH name not set. + * i386-tdep.c (skip_trampoline_code): New function. + * srec.c: Renamed dsrec.c to avoid filename collision. + * Makefile.in: Cope with renaming. + +Wed Jan 3 13:09:04 1996 Fred Fish + + * symmisc.c (print_objfile_statistics): Print memory use statistics + for objfile psymbol, symbol, and type obstacks. + +Tue Jan 2 13:41:14 1996 Stan Shebs + + * config/mips/nm-irix5.h: Restore. + (TARGET_HAS_HARDWARE_WATCHPOINTS, etc): Define as for Irix 4; + from Lee Iverson . + * config/mips/irix5.mh (NAT_FILE): Use nm-irix5.h. + * config/mips/irix[345].mh (MUNCH_DEFINE): Remove. + +For older changes see ChangeLog-95 + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-97 b/gdb/ChangeLog-97 new file mode 100644 index 0000000000..4f9a949c04 --- /dev/null +++ b/gdb/ChangeLog-97 @@ -0,0 +1,2855 @@ +Wed Dec 31 11:43:53 1997 Mark Alexander + + * dsrec.c (load_srec): Check remotedebug flag when printing + debug info. + +Wed Dec 31 10:33:15 1997 David Taylor + + * breakpoint.c (breakpoint_re_set): add _siglongjmp to list of + longjmp breakpoints. + +Mon Dec 29 21:25:34 1997 Mark Alexander + + * dve3900-rom.c: New file to support Densan DVE-R3900/20 board. + * monitor.c (monitor_debug): Move to utils.c, rename to puts_debug. + (monitor_write_memory, monitor_read_memory, monitor_insert_breakpoint, + monitor_remove_breakpoint): Remove useless address bits if current + monitor has MO_ADDR_BITS_REMOVE flag. + * monitor.h (MO_ADDR_BITS_REMOVE): Define. + * utils.c (puts_debug): Formerly monitor_debug from monitor.c; + move here and make public. Add better support for carriage returns. + * defs.h (puts_debug): Declare. + * dsrec.c (load_srec): Use puts_debug to print remotedebug information. + Output header record correctly. + (make_srec): Output a header record instead of a termination record + if sect is non-NULL (value is ignored), but abfd is NULL. + * config/mips/tm-tx39.h (DEFAULT_MIPS_TYPE): Remove definition. + (REGISTER_NAMES): Define to add R3900-specific registers. + * config/mips/tm-tx39l.h: Ditto. + * config/mips/tx39.mt (TDEPFILES): Add dve3900-rom.o and support files. + * config/mips/tx39l.mt: Ditto. + +Wed Dec 24 12:48:48 1997 Stan Shebs + + * dsrec.c: Cosmetic improvements. + (make-srec): Change indexing of format and code tables to + remove confusing empty entries. + +Mon Dec 22 21:51:53 1997 Mark Alexander + + * remote-mips.c (_initialize_remote_mips): Fix DDB doc string. + +Sun Dec 21 17:00:06 1997 David Taylor + + * d30v-tdep.c (d30v_frame_find_saved_regs): split most of + function off into d30v_frame_find_saved_regs_offsets; + (d30v_frame_find_saved_regs_offsets): new function. Got + backtrace working when calling from framefull (unoptimized) + routines (.e.g, main) into frameless (optimized) routines + (e.g., printf). + +Fri Dec 19 09:49:49 1997 David Taylor + + * d30v-tdep.c (d30v_frame_chain): test end_of_stack + (d30v_frame_find_saved_regs): set it. + * config/d30v/tm-d30v.h: improved FRAME_CHAIN_VALID + +Thu Dec 18 12:34:28 1997 Andrew Cagney + + From Gavin Koch : mips-tdep.c + * (mips_push_arguments): For big-endian shorts and char's store at + * the correct location. + +Thu Dec 18 00:26:46 1997 Andrew Cagney + + * mdebugread.c (parse_partial_symbols): Delete check that symbols + for file not already loaded. Did not work when an include file + was involved. + +Wed Dec 17 10:43:04 1997 Andrew Cagney + + * elfread.c (elf_symfile_read): Since the partial symbol table is + searched last in first, insert mdebug or XCOFF info into the + partial symbol table before any DWARF2 info. + +Thu Dec 18 00:00:48 1997 Andrew Cagney + + * symfile.c (init_psymbol_list): Handle init with zero elements. + + * elfread.c (elf_symfile_read): If `mainline', clear psymbol table + using init_psymbol_list 0. For build_psymtabs functions, pass + mainline==0 so that psymbol_list isn't re-initialized. + + * symfile.c (discard_psymtab): New function, correctly unlink an + empty psymtab from an object file. + * dbxread.c (end_psymtab): Call discard_psymtab. + * xcoffread.c (xcoff_end_psymtab): Ditto. + * hpread.c (hpread_end_psymtab): Ditto. + * os9kread.c (os9k_end_psymtab): Ditto. + +Wed Dec 17 10:47:05 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c (set_raw_tracepoint): initialize addr_string + to NULL; (trace_actions_command): call readline_begin_hook only + if from_tty is true. + +Tue Dec 16 20:05:48 1997 Mark Alexander + + * configure.tgt: Change little-endian tx39 target name to tx39l. + +Tue Dec 16 11:24:30 1997 Jeffrey A Law (law@cygnus.com) + + * remote-sim.c (gdbsim_open): Use "--architecture" instead of + ambigious short form. + +Tue Dec 16 10:29:16 1997 David Taylor + + * d30v-tdep.c (d30v_frame_chain): don't or in DMEM_START to + FP_REGNUM value before return; (prologue_find_regs): two sets + of offsets -- frame pointer and stack pointer, not just one that + tries to do double duty; (d30v_frame_find_saved_regs): stop once + we hit pc (in case we're stopped in the middle of the prologue) + and improve handling of frameless prologues; (d30v_push_arguments): + *ALL* arguments go on the stack until we run out of args registers, + force sp to be 8 byte aligned. + + * config/tm-d30v.h (EXTRACT_STRUCT_VALUE_ADDRESS): fix, it's r2, + not r0; (FRAME_CHAIN_VALID): handle use of external memory; + (STACK_ALIGN): define. + +Mon Dec 15 15:13:57 1997 Andrew Cagney + + * remote-sim.c (gdbsim_wait): When HAVE_SIGACTION and SA_RESTART + intall cntrl-c handler with SA_RESTART clear. On BSD systems this + stops read syscalls's being restarted. + + * configure.in (configdirs): Check for sigaction. + * configure: Re-generate. + +Mon Dec 15 11:38:52 1997 Andrew Cagney + + * dwarf2read.c: From change proposed by Gavin Koch. + (address_significant_size): New static variable. + (dwarf2_build_psymtabs_hard): Check consistency between + `address_size' and `address_significant_size'. + (read_address): MASK out all but the significant bits, as + determined by `address_significant_size', of any addresses. + (elf-bfd.h): Include. + (dwarf2_build_psymtabs_hard): Set `address_significant_size' + according to the arch_size of the elf object file. + +Thu Dec 11 13:40:46 1997 Andrew Cagney + + * dwarf2read.c (dwarf_decode_lines): Change type of address to + CORE_ADDR. + +Thu Dec 11 14:28:01 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c (trace_find_command): don't error if going + backwards thru the trace buffer in a loop. + * (struct tracepoint): delete unused field. + +Wed Dec 10 17:57:00 1997 David Taylor + + * d30v-tdep.c : don't bury lots of magic numbers in the code + instead use defines for the opcodes and opcode masks; update + to use actual d30v patterns; fix register sizes to be 4 bytes + not 2 bytes; improve prologue testing now that we have a C + compiler; fix stack frame handling enough to get backtraces + working; initial changes to push and pop frames (so that gdb + can call functions in the inferior). + + * config/d30v/tm-d30v.h: update DMEM_START, IMEM_START, and + STACK_START; change FR_REGNUM to 61 (was 11). Reformat comment + about DUMMY FRAMES so that it is readable. Fix SAVED_PC_AFTER_FRAME + macro. + +Wed Dec 10 17:41:07 1997 Jim Blandy + + * ch-valprint.c (chill_val_print): To avoid segfaults, don't print + a string whose dynamic length is longer than its static length. + +Wed Dec 10 15:54:00 1997 Andrew Cagney + + * dwarf2read.c (dwarf2_build_psymtabs_hard): Check + cu_header.length is within dwarf_info_buffer not + dwarf_abbrev_buffer. + +Mon Dec 8 14:28:49 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c (memrange_sortmerge): allow for memranges + that overlap. (collect_pseudocommand etc.) cleanup decls. + +Fri Dec 5 09:22:35 1997 Nick Clifton + + * config/v850/tm-v850.h (BREAKPOINT): Reverted back to old value... + +Thu Dec 4 09:30:22 1997 Nick Clifton + + * config/v850/tm-v850.h (BREAKPOINT): Changed to match new value. + +Wed Dec 3 12:44:15 1997 Keith Seitz + + * tracepoint.c: Add declaration for x_command. + + * printcmd.c (x_command): Remove static declaration. + +Wed Dec 3 12:00:42 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c (finish_tfind_command): call do_display so that + auto-displays are updated by tfind. Also, keep track of frame + and current-function so that tfind behaves like stepping (only + show the stack frame if we step into a new function or return). + +Wed Dec 3 14:14:58 1997 David Taylor + + * sol-thread.c: additional support for debugging threaded core + files on solaris; previously only kernel threads were found -- + user threads generated errors. + * corelow.c: don't register core_ops as a target if + coreops_suppress_target is true (set by sol-thread.c). + +Tue Dec 2 14:53:09 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c: make "tdump" command handle literal memranges. + +Tue Dec 2 11:34:48 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c: use "lookup_cmd" to parse actions commands + (thus allowing unambiguous prefixes and aliases). + +Tue Dec 2 10:15:57 1997 Nick Clifton + + * configure.tgt: Add support for Thumb target. + +Tue Dec 2 10:14:15 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c: move prototype of validate_actionline(), and + make it consistent with the function declaration. + +Thu Nov 27 09:07:18 1997 Michael Meissner + + * Makefile.in (tracepoint_h): New macro for tracepoint.h + includes. + (tracepoint.o): Add rule to build. + +Wed Nov 26 22:59:04 1997 Jeffrey A Law (law@cygnus.com) + + * remote-sim.c (gdbsim_cntrl_c): Lose ANSI prototype. + + * tracepoint.c (set_raw_tracepoint): fix typo + +Wed Nov 26 11:33:09 1997 Keith Seitz + + * tracepoint.c (set_raw_tracepoint): Make sure there's a trailing + slash on the directory name. + + * top.c (get_prompt): New function. + * top.h: Declare it. + +Wed Nov 26 09:59:47 1997 Andrew Cagney + + * dwarf2read.c (struct comp_unit_head): Change length and + abbrev_offset fields to unsigned int. + (dwarf2_build_psymtabs_hard): Verify length and offset read from + .debug_info section. + +Mon Nov 24 19:36:34 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c, tracepoint.h: new module, implements tracing, + which is a new functionality somewhat like breakpoints except + that a tracepoint stops the inferior only long enough to collect + and cache selected buffers and memory locations, then allows + the inferior to continue; the cached trace data can then be + examined later. + +Mon Nov 24 14:17:02 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * infcmd.c: export registers_info, for use by other modules. + * printcmd.c: export output_command, for use by other modules. + * stack.c: export locals_info and args_info, for use by other modules. + * remote.c: export getpkt, putpkt, and fromhex for external use. + Make fromhex case-insensative. New function "remote_console_output" + abstracts the acceptance of "O" packets from target. + Make all "remotedebug" output go to stdout, not stderr. + +Mon Nov 24 08:59:28 1997 Andrew Cagney + + * valprint.c (print_longest): When CC has long long but printf + doesn't, print decimal value as three parts. + + * config/i386/tm-fbsd.h: New file. + * config/i386/fbsd.mt (TM_FILE): Change to tm-fbsd.h. + + * config/i386/nm-fbsd.h (FLOAT_INFO): Move definition from here. + * config/i386/tm-fbsd.h (FLOAT_INFO): To here. + + * configure.in (PRINTF_HAS_LONG_LONG): Check full functionality of + %ll format specifier. + (SCANF_HAS_LONG_DOUBLE): Check the scanf family for support of + long double using %Lg. + * acconfig.h: Provide default undef for SCANF_HAS_LONG_DOUBLE. + * configure: Re-generate. + + * c-exp.y (parse_number): Use sscanf %Lg when host has + SCANF_HAS_LONG_DOUBLE not PRINTF_HAS_LONG_DOUBLE + +Sun Nov 23 17:12:58 1997 Andrew Cagney + + * printcmd.c (print_insn): Set the machine type if known. + + * i386-tdep.c (_initialize_i386_tdep): Delete "set + assembly-language" command. Replaced by generic "set + architecture". Set initial machine using bfd_lookup_arch. + +Fri Nov 21 19:43:23 1997 Jim Blandy + + * valops.c (call_function_by_hand): If the function has a + prototype, convert its arguments as if by assignment. Otherwise, + do the usual promotions. + * stabsread.c (define_symbol): Set the TYPE_FLAG_PROTOTYPED flag + on functions' types when we can; all C++ functions should get it, + and if the Sun-style prototype notation is in the stabs, we can + notice that. + +Fri Nov 21 12:20:16 1997 Ian Lance Taylor + + * aclocal.m4 (AM_CYGWIN32, AM_EXEEXT): Remove. They are already + defined by the inclusion of ../bfd/aclocal.m4. + * configure: Rebuild. + +Fri Nov 21 10:52:39 1997 Michael Meissner + + * Makefile.in (SHELL): Really do the change. + +Fri Nov 21 02:19:57 1997 Geoffrey Noer + + * Makefile.in: also revert SHELL change until configury + changes work + +Thu Nov 20 16:35:13 1997 Doug Evans + + * sparc-tdep.c (sparc_pc_adjust): Don't assume sizeof (long) == 4. + +Thu Nov 20 04:11:27 1997 Geoffrey Noer + + * aclocal.m4: add EXEEXT setting rule + * configure.in: call it + * configure: regenerate + * Makefile.in: pepper with EXEEXTs in appropriate places, + set SHELL = @SHELL@ for those lame hosts that don't have a /bin/sh + For some reason, EXEEXT isn't getting substututed in correctly + so for now, set EXEEXT to empty string + +Mon Nov 17 15:35:06 1997 Doug Evans + + * Makefile.in (remote-sim.o): Depend on $(INCLUDE_DIR)/callback.h. + +Fri Nov 14 13:04:34 1997 Jeffrey A Law (law@cygnus.com) + + * jv-exp.y (copy_exp, insert_exp): Avoid ANSI prototypes. + +Thu Nov 13 09:47:35 1997 Michael Meissner + + * d30v-tdep.c (d30v_print_flags): Function to print the d30v flags + in a human readable format. + (print_flags_command): Command wrapper to call d30v_print_flags. + (d30v_do_registers_info): When printing out all of the registers, + print out the flag values in a human readable fashion. + (_initialize_d30v_tdep): Add info flags command to print the + flags. + + * config/d30v/tm-d30v.h (PSW_*): Add macros for each of the PSW + bits that are defined. + +Wed Nov 12 14:58:39 1997 Jeff Holcomb + + * symfile.c (generic_load): Handle cancel from the + ui_load_progress_hook routine. + * dsrec.c (load_srec): Handle cancel from the + ui_load_progress_hook routine. + +Mon Nov 10 15:13:13 1997 Ian Lance Taylor + + * valprint.c (print_longest): The b, h, w, and g format specifiers + print unsigned values. + +Mon Nov 10 02:02:49 1997 Martin M. Hunt + + * top.c (quit_confirm): Change exit message. + +Tue Nov 4 16:52:50 1997 Geoffrey Noer + + * config/i386/cygwin32.mh: because cygwin.dll calls malloc/realloc + to allocate memory for environ space, gdb cannot use memory + checks -- set -DNO_MMCHECK + +Tue Nov 4 13:50:59 1997 Jim Blandy + + * jv-exp.y (ArrayAccess): Implement Name [ Expression ]; check the + code to see why this is not trivial. + (copy_exp, insert_exp): New functions. + +Fri Oct 24 17:24:00 1997 Dawn Perchik + + * dwarf2read.c (dwarf2_build_psymtabs_hard): Handle the case + where a compilation unit die has no children (DW_TAG_compile_unit + has DW_children_no). + (scan_partial_symbols): Add comment for nesting_level. + +Wed Oct 29 15:53:24 1997 David Taylor + + * solib.c (solib_break_names): add entry for Solaris 2.6 run + time linker. From Casper Dik via Peter Schauer. + +Tue Oct 28 17:31:47 1997 Martin M. Hunt + + * configure.in (configdir): Add -lcomdlg32 and -ladvapi32 + to WIN32LIBS. + + * configure: Rebuild + +Fri Oct 24 16:48:21 1997 David Taylor + + * sol-thread.c (sol_find_new_threads_callback, + sol_find_new_threads): New functions. + * config/sparc/nm-sun4sol2.h (FIND_NEW_THREADS): New macro, invoke + sol_find_new_threads. + * thread.c (info_threads_command): invoke FIND_NEW_THREADS if it + is defined. + +Thu Oct 23 16:16:04 1997 Jeff Law (law@fast.cs.utah.edu) + + * dbxread.c (process_one_symbol): Put back initialization + of a variable lost during last change. Don't perform + assignment inside conditionals. + * stabsread.c (symbol_reference_defined): Return -1 for error/not + found. All callers changed appropriately. + (define_symbol): Don't perform assignment inside conditionals. + +Wed Oct 22 13:04:52 1997 Jeffrey A Law (law@cygnus.com) + + * mdebugread.c (psymtab_to_symtab_1): Handle new live range stabs + entries. + + * dbxread.c: More comment cleanups. + * stabsread.c: Fix various violations of the GNU coding and + formatting standards. Update/add comments to make code clearer. + (resolve_reference): Delete unused function. + (ref_search_val): Remove function. It didn't belong in stabsread.c + (resolve_live_range): No longer returns a value. Do not add it + to the live range list until the entire range stab has been parsed. + (get_substring): Remove duplicate declaration. + (resolve_symbol_reference): Now static. Remove unnecessary code + to deal with cleanups. + (ref_add): Use xrealloc instea of realloc. + (process_reference): Reorganize slightly to make clearer. + * stabsread.h (resolve_symbol_reference): Remove declaration. + (resolve_reference): Likewise. + * symtab.c (find_active_alias): New function. + (lookup_block_symbol): Use find_active_alias. + * symtab.h (struct range_list): Fix dangling struct live_range + reference. + (ref_search_val): Remove decl. + + * symtab.h (struct range_list): Renamed from struct live_range. + (struct symbol): Remove struct live_range_info substruct. + Bring the alias list and range list fields up to the toplevel + as "aliases" and "ranges". + (SYMBOL_ALIASES, SYMBOL_RANGES): Corresponding changes. + (SYMBOL_RANGE_START, SYMBOL_RANGE_END, SYMBOL_RANGE_NEXT): Delete. + * stabsread.c: Corresponding changes. + + * dbxread.c: Fix various violations of the GNU coding and + formatting standards. Update/add comments to make code + clearer. + (process_later): Use xrealloc instead of realloc. + + * symtab.c: Include inferior.h. + +Tue Oct 21 14:15:26 1997 Per Bothner + + * ch-exp.c: Rename FIELD_NAME to DOT_FIELD_NAME (to avoid conflict). + +Fri Oct 17 13:22:02 1997 Stan Shebs + + * infcmd.c: Improve grammar of "set args" help. + +Thu Oct 16 15:03:58 1997 Michael Meissner + + * remote-sds.c (sds_load): Properly declare as static. + +Wed Oct 15 10:27:14 1997 Doug Evans + + * config/sparc/tm-sparc.h (FIX_CALL_DUMMY): Mask off displacement + to 30 bits in call insn to handle --enable-64-bit-bfd. + (STORE_STRUCT_RETURN): Change to handle --enable-64-bit-bfd. + +Tue Oct 14 22:13:27 1997 Dawn Perchik + + * stabsread.c: Make ref_map entries dynamically allocated. + +Thu Oct 9 12:37:57 1997 Frank Ch. Eigler + + * printcmd.c (print_address_symbolic, address_info): Mask + target-specific flag bits from PC, for more aesthetic disassembly. + * config/mips/tm-mips.h: Added PC masking for MIPS family + (especially the MIPS16). + +Sat Oct 4 18:45:44 1997 Mark Alexander + + * remote-mips.c (mips-initialize): Work around flakiness in + some versions of PMON after loading a program. + +Fri Oct 3 15:49:18 1997 Per Bothner + + * c-lang.h, cp-valprint.c (static_field_print): Make non-static. + * parse.c, parser-defs.h (length_of_subexp): Make non-static. + * jv-exp.y (FieldAccess): Handle dollar-VARIABLE as primary. + (ArrayAccess): Likewise. Also remove warnings. + (CastExpression): Implement (typename) UnaryExpression. + (push_qualified_expression_name): Fix small bug. + * jv-lang.c: Use TYPE_TAG_NAME, not TYPE_NAME for class names. + (_initialize_jave_language): Fix typo (jave -> java). + (java_language): Java does *not* have C-style arrays. + (java_class_from_object): Make more general (and complicated). + (java_link_class_type): Fix typo "super" -> "class". Handle arrays. + (java_emit_char, java_printchar): New function. + (evaluate_subexp_java case BINOP_SUBSCRIPT): Handle Java arrays. + * jv-valprint.c (java_value_print): Implement printing of Java arrays. + (java_print_value_fields): New function. + (java_val_print): Better printing of TYPE_CODE_CHAR, TYPE_CODE_STRUCT. + +Fri Oct 3 09:52:26 1997 Mark Alexander + + * config/mips/tm-mips.h (MAKE_MSYMBOL_SPECIAL): Force MIPS16 + addresses to be odd. + (MIPS_FPU_SINGLE_REGSIZE, MIPS_FPU_DOUBLE_REGSIZE): Define. + * mips-tdep.c (mips_extract_return_value): Doubles aren't + returned in FP0 if FP registers are single-precision only. + +Mon Sep 29 23:03:03 1997 Mark Alexander + + * mips-tdep.c (set_reg_offset): New function. + (mips16_heuristic_proc_desc): Calculate offsets of registers + saved by entry pseudo-op after rest of prologue has been read. + Use set_reg_offset to ignore all but the first save of a given + register. + (mips32_heuristic_proc_desc): Initialize frame adjustment value. + * remote-sim.c (gdbsim_store_register): Don't update registers + that have a null or empty name. + * findvar.c (read_register_bytes): Don't fetch registers + that have a null or empty name. + +Tue Sep 30 13:35:54 1997 Andrew Cagney + + * config/mips/tm-mips.h (NUM_REGS): Define conditionally. + (REGISTER_NAMES): Ditto. + +Fri Sep 26 21:08:22 1997 Keith Seitz + + * dsrec.c (load_srec): add ui_load_progress_hook to + display some feedback to user + + * symfile.c (generic_load): add ui_load_progress_hook to + display some feedback to user + +Fri Sep 26 17:32:22 1997 Jason Molenda (crash@pern.cygnus.com) + + * command.c (add_cmd, add_show_from_set): Insert new commands in + alphabetical order. + +Fri Sep 26 12:22:00 1997 Mark Alexander + + * config/mips-tm-mips.h (mips_extra_func_info): New frame_adjust + member for storing offset of MIPS16 frame pointer from SP. + * mips-tdep.c: Use RA_REGNUM instead of hardcoded 31 throughout. + (PROC_FRAME_ADJUST): Define. + (mips16_heuristic_proc_desc): Store frame pointer adjustment value. + (get_frame_pointer): Use frame pointer adjustment value when + calculating frame address. + * remote-sim.c (gdbsim_fetch_register): Don't fetch registers + that have a null or empty name. + +Fri Sep 26 12:40:51 1997 Jeffrey A Law (law@cygnus.com) + + * mips-tdep.c (_initialize_mips_tdep): Allow target files to + override default FPU type. + +Fri Sep 26 10:33:54 1997 Felix Lee + + * configure.tgt (v850-*-*): necmsg.lib instead of v850.lib. + +Wed Sep 24 14:02:09 1997 Andrew Cagney + + * config/v850/tm-v850.h (BREAKPOINT): Use 1 word DIVH insn with + RRRRR=0 for simulator breakpoint. Previous breakpoint insn was two + words. + +Thu Sep 18 15:07:46 1997 Andrew Cagney + + * ser-e7kpc.c (get_ds_base): Only use under Windows. + (windows.h): Include when any _WIN32 host. + +Wed Sep 24 18:12:47 1997 Stu Grossman + + * The following block of changes add support for debugging assembly + source files. + * breakpoint.c (resolve_sal_pc): Prevent crash when pc isn't + associated with a function. + * buildsym.c (record_line start_symtab end_symtab): Don't delete + symtabs which only have line numbers (but no other debug symbols). + * dbxread.c (read_dbx_symtab end_psymtab): Ditto. + + * remote-sim.c: New functions gdbsim_insert/remove_breakpoint. Use + intrinsic simulator breakpoints if available, otherwise do it the + hard way. + + * configure.tgt: Add d30v. + * d30v-tdep.c: New file. + * config/d30v/d30v.mt, config/d30v/tm-d30v.h: New files. + +Tue Sep 23 11:24:13 1997 Stan Shebs + + * Makefile.in (ALLCONFIG): Remove, inaccurate and never used. + +Tue Sep 23 00:08:18 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mips-tdep.c (mips_push_arguments): Tweak alignment of register + value if the remaining length of a non-integral argument is smaller + than the register size for big-endian non-EABI mode. + + * rs6000-tdep.c (branch_dest): Handle return from signal + handler function via sigreturn kernel call. + +Mon Sep 22 15:32:06 1997 Dawn Perchik + + * stabsread.h, symtab.h, dbxread.c, symtab.c, stabsread.c: + Fix prototypes. Remove function scoped function declarations. + +Fri Sep 19 18:51:26 1997 Felix Lee + + * config/i386/windows.mh (XDEPFILES): need to list some files + explicitly, for odd reasons. + +Tue Sep 16 20:00:05 1997 Per Bothner + + * jv-exp.y (push_fieldnames): New, to handle EXP.FIELD1....FIELDN. + (push_expression_name): New, to handle expression names. + (push_qualified_expression_name): New, for qualified expression names. + (parse_number): Fix bugs in parsing of non-decimal integers. + * jv-lang.h, jv-lang.c (java_demangle_type_signature): New. + * jv-lang.c (type_from_class): Just use name with java_lookup_class. + (java_link_class_type): Add dummy "class" field. + (java_lookup_type): New. + (evaluate_subexp_java case STRUCTOP_STRUCT): Force to address. + * jv-typeprint.c (java_type_print_base): Don't print "class" field. + Use java_demangle_type_signature to print array class types. + * jv-valprint.c (java_value_print): Preliminary array support. + Print pointer as TYPE@HEXADDR, instead of (TYPE)0xHEXADDR. + (java_val_print): Move check for object type to java_value_print. + Check for null. Print pointer as @HEXADDR, not 0xHEXADDR. + + * valops.c (search_struct_field): Search basesclasses in + ascending, not descending order. Hack to avoid virtual baseclass + botch for Java interfaces. + +Tue Sep 16 19:56:23 1997 Per Bothner + + * util.c (run_cleanup_chain, make_run_cleanup, do_run_cleanups): + New cleanup clean for cleanups to be run when at each 'run' command. + * infcmd.c (run_command): Call do_run_cleanups. + + * solib.c (find_solib): Register cleanup to call clear_solib + on a new 'run' command. + (symbol_add_stub): First look for existing objfile with same name. + +Tue Sep 16 16:00:01 1997 Stan Shebs + + * remote-sds.c (sds_load): New function. + (sds_ops): Use it. + (sds_open): Don't set inferior_pid yet. + (sds_kill): Remove contents. + (sds_create_inferior): Rewrite to work more like monitor + interfaces. + (sds_restart): Remove, no longer used. + + * monitor.h (MO_SREC_ACK_PLUS, MO_SREC_ACK_ROTATE): New flags. + * monitor.c (monitor_wait_srec_ack): Add DINK32-specific ack code. + * dsrec.c (load_srec): Always write a header S-record. + * dink32-rom.c (dink32_regnames): Fix the names of float registers. + (dink32_cmds): Set to use S-record downloading with acks. + * remote-est.c (est_cmds): Add MO_SREC_ACK_PLUS flag. + +Tue Sep 16 10:08:27 1997 Andrew Cagney + + * config/v850/tm-v850.h (BREAKPOINT): Set to a truely illegal + instruction. + + * exec.c (exec_file_command): Call set_architecture_from_file. + +Mon Sep 15 13:01:22 1997 Mark Alexander + + * dbxread.c (MSYMBOL_SIZE): New macro. + (end_psymtab): Use MSYMBOL_SIZE to extract size from minimal symbol. + * elfread.c (elf_symtab_read): If ELF symbol is "special", + such as a MIPS16 function, mark minimal symbol as special too. + * mips-tdep.c (pc_is_mips16): New function to check whether + a function is MIPS16 by looking at the minimal symbol. Use + pc_is_mips16 throughout instead of IS_MIPS16_ADDR macro. + * config/mips/tm-mips.h (SYMBOL_IS_SPECIAL, MAKE_MSYMBOL_SPECIAL, + MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): New functions for setting/testing + "special" MIPS16 bit in ELF and minimal symbols. + * mdebugread.c (parse_partial_symbols): Don't construct a partial + symbol table for a file that already has one. + +Sat Sep 13 08:32:13 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * mdebugread.c (parse_symbol, handle_psymbol_enumerators): Handle + yet another variant of enumerator debugging info, used by DU 4.0 + native cc. + +Tue Sep 9 20:47:23 1997 Felix Lee + + * config/i386/windows.mh (XDEPFILES): reduce to libwingdb.a. + otherwise link command line is too long. + +Tue Sep 9 17:41:41 1997 Jeffrey A Law (law@cygnus.com) + + * symtab.c, dbxread.c, stabsread.c: Fix up ANSI-C isms. Fix + some formatting problems. + +Mon Sep 8 16:45:51 1997 Stu Grossman + + * ser-e7kpc.c: Don't include w32sut.h. We no longer use the UT + mechanism. Remove prototypes for dos_async_* functions. They don't + exist anymore. + +Mon Sep 8 12:48:50 1997 Ian Lance Taylor + + * top.c (quit_confirm, quit_force): New functions, broken out of + quit_command. + (quit_command): Just call quit_confirm and quit_force. + * top.h (quit_confirm, quit_force): Declare. + +Sun Sep 7 17:26:30 1997 Dawn Perchik + + * dbxread.c, buildsym.c, symtab.c, stabsread.c: Add support for + reading stabs extensions for live range information. + * stabsread.h, partial-stab.h: Add prototypes for new functions. + * symtab.h: Add structure for storing live range information. + +Wed Sep 3 16:39:39 1997 Andrew Cagney + + * top.c (set_arch): New function, update target_architecture. + + * defs.h, top.c (set_architecture_from_arch_mach): Replace + set_architecture, takes the arch and machine as arguments. + + * sh3-rom.c (sh3e_open): Update. + (sh3_open): Ditto. + +Tue Sep 2 12:00:46 1997 Andrew Cagney + + * remote-e7000.c (e7000_fetch_registers): Fix typo, stray paren. + (e7000_wait): Ditto. + +Mon Sep 1 11:21:03 1997 Andrew Cagney + + * top.c (init_main): Add ``set processor'' as an alias for ``set + architecture''. + +Sat Aug 30 13:44:48 1997 Bob Manson + + * config/sparc/sparclite.mt: Removed simulator references (erc32 + has been disabled). + +Thu Aug 28 10:20:04 1997 Andrew Cagney + + * remote-e7000.c (e7000_fetch_registers): Check + target_architecture instead of sh_processor_type. + (e7000_wait): Ditto. + + * config/sh/tm-sh.h (sh_set_processor_type): Delete prototype. + + * sh3-rom.c (sh3_open): Call set_architecture not + sh_set_processor_type. + (sh3e_open): Ditto. + + * sh-tdep.c (sh_show_processor_type_command): Delete. + (sh_set_processor_type_command): Delete. + (sh_target_architecture_hook): Rename from sh_set_processor_type, + use AP to determine architecture. + (sh_show_regs): Use bfd_mach_sh* types. + + * remote-sim.c (gdbsim_open): Pass --arch=XXX to simulator when + architecture was specified explicitly. + + * defs.h (target_architecture, target_architecture_auto, + set_architecture, set_architecture_from_file): Declare. + (target_architecture_hook): Allow targets to be notified of set + arch commands. + + * top.c (init_main): Add set/show/info architecture commands. + (set_architecture, show_architecture, info_architecture): New + functions, parse same. + (set_architecture_from_file): New function, determine arch from + BFD. + +Tue Aug 26 17:13:43 1997 Andrew Cagney + + * remote-sim.c (gdbsim_open): Only pass endianness to sim_open + when set explicitly. Prepend endianness arg so that it can be + overridden. + + * defs.h, top.c (target_byte_order_auto): Make global when + byteorder is selectable. + +Tue Aug 26 15:19:56 1997 Andrew Cagney + + * remote-sim.c (gdbsim_create_inferior): Pass exec_bfd into + sim_create_inferior. + (gdbsim_create_inferior): Pass -1 to proceed, sim_create_inferior + has already set the PC. + (gdbsim_create_inferior): Allow exec_file to be NULL, make "No + exec file" a warning. Ditto for "No program loaded". + +Mon Aug 25 17:08:01 1997 Geoffrey Noer + + * ocd.c: revert Sun change -- enable log file handling + +Mon Aug 25 12:21:46 1997 Andrew Cagney + + * remote-sim.c (gdbsim_open): Pass exec_bfd to sim_open call. + +Sun Aug 24 21:16:59 1997 Geoffrey Noer + + * ocd.c: comment out sections that create and flush wigglers.log + log file when using the wiggler. + +Thu Aug 21 16:18:08 1997 Geoffrey Noer + + * config/powerpc/ppc-eabi.mt: + * config/powerpc/ppc-sim.mt: + * config/powerpc/ppcle-eabi.mt: + * config/powerpc/ppcle-sim.mt: ser-ocd.c needs to be before + other ocd-related files in TDEPFILES + +Thu Aug 21 14:56:04 1997 Geoffrey Noer + + * ppc-bdm.c (bdm_ppc_wait): stop printfing ecr, der + * ocd.c: initialize remote_timeout + (ocd_wait): while looping, call ocd_do_command with OCD_AYT + (ocd_get_packet): remove find_packet goto. If there isn't + an 0x55 at the start, something is quite wrong so error out + instead of advancing in the packet and trying again. If checksum + is invalid, print error message instead of trying again. + * ser-ocd.c (ocd_readchar): error if we attempt to read past + the end of the from_wiggler_buffer. + + +Wed Aug 20 14:08:39 1997 Stan Shebs + + * dink32-rom.c: Don't use "mf" command to fill, is too picky + about alignment. + + +Tue Aug 19 08:41:36 1997 Fred Fish + + * objfiles.c (objfile_relocate): Add call to breakpoint_re_set + after relocations are complete. + * remote-vx.c (vx_add_symbols): Remove call to breakpoint_re_set, + this is now done in objfile_relocate. + +Mon Aug 18 17:29:54 1997 Ian Lance Taylor + + * win32-nat.c (handle_exception): Return a value indicating + whether the exception was handled. Don't handle random exceptions + the first time around, so that structured exception handling + works. + (child_wait): Check the return value of handle_exception. Set the + continue_status argument to ContinueDebugEvent accordingly. + +Mon Aug 18 11:14:15 1997 Nick Clifton + + * configure.tgt: Add support for v850ea target. + +Sun Aug 17 20:31:57 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * m32r-stub.c: fix typo + +Sun Aug 17 17:33:34 1997 Stan Shebs + + * remote-sds.c: Remove unused remnants of remote.c. + (tob64): Return the result length. + (sds_interrupt): Send a stop message. + (sds_wait): Add debug output for signal interpretation, flag + that signal was due to a trap. + (sds_fetch_registers): Fill the registers array correctly for + PowerPC. + (sds_store_registers): Get the right values from registers array. + (putmessage): Tweak length handling so checksum comes out right. + (sds_insert_breakpoint, sds_remove_breakpoint): Do correctly. + +Fri Aug 15 20:53:13 1997 Ian Lance Taylor + + * Makefile.in (init.c): Don't use xargs. + +Fri Aug 15 13:59:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Add the symbols for any + newly loaded objects upon a TARGET_WAITKIND_LOADED event. + + Rewrite code which determines the TOC address for calling functions + in the inferior under AIX. + * rs6000-nat.c (find_toc_address): New function to determine + the required TOC address from a function address. + (_initialize_core_rs6000): Set up find_toc_address_hook to point + to find_toc_address. + (xcoff_relocate_symtab, xcoff_relocate_core): Remove + add_text_to_loadinfo calls. + (exec_one_dummy_insn): Change pid and status to int to get rid of + compiler warnings. + (xcoff_relocate_symtab): Cast ldi to `int *' when passing it to + ptrace to get rid of compiler warnings. + * rs6000-tdep.c: Add definition for find_toc_address_hook. + (rs6000_fix_call_dummy): If find_toc_address_hook is non zero, + patch TOC address load code in the call dummy with the value + returned from find_toc_address_hook. + (struct loadinfo, loadinfo, loadinfolen, + loadinfotextindex, xcoff_init_loadinfo, free_loadinfo, + xcoff_add_toc_to_loadinfo, add_text_to_loadinfo, find_toc_address): + Remove. + (_initialize_rs6000_tdep): Remove initialization of + coff_add_toc_to_loadinfo_hook and xcoff_init_loadinfo_hook. + * xcoffread.c (coff_add_toc_to_loadinfo_hook, + xcoff_init_loadinfo_hook): Remove. + (struct coff_symfile_info): Add toc_offset field. + (scan_xcoff_symtab): Record toc_offset value in toc_offset field + instead of calling xcoff_add_toc_to_loadinfo_hook. + (get_toc_offset): New function to return the value of the + toc_offset field for an object file. + (xcoff_initial_scan): Remove call of xcoff_init_loadinfo_hook. + * xcoffsolib.h (add_text_to_loadinfo): Remove declaration. + * config/rs6000/tm-rs6000.h: Add declarations for + find_toc_address_hook and get_toc_offset. + +Wed Aug 13 19:31:28 1997 Stan Shebs + + * remote-sds.c: New file, interface to SDS-compatible monitors. + * Makefile.in (remote-sds.o): Add build rule. + * config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt + (TDEPFILES): Add remote-sds.o. + +Tue Aug 12 14:37:18 1997 Geoffrey Noer + + * ocd.c (ocd_wait): loop until we're in BDM mode instead of + assuming control has returned to GDB. + +Mon Aug 11 19:16:04 1997 Stan Shebs + + * dink32-rom.c: New file, support for DINK32 monitor. + * Makefile.in (dink32-rom.o): Add build rule. + * config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt + (TDEPFILES): Add dink32-rom.o. + * monitor.h (MO_32_REGS_PAIRED, MO_SETREG_INTERACTIVE, + MO_SETMEM_INTERACTIVE, MO_GETMEM_16_BOUNDARY, + MO_CLR_BREAK_1_BASED): New monitor interface flags. + * monitor.c: Use them. + (monitor_store_register): Use setreg.term if defined. + (monitor_insert_breakpoint, monitor_remove_breakpoint): Notice + if set_break and clr_break fields are empty. + +Mon Aug 11 16:22:36 1997 Geoffrey Noer + + * ocd.c (ocd_insert_breakpoint, ocd_remove_breakpoint): Macro + BDM_BREAKPOINT already has braces around it, remove erroneous ones. + * ser-ocd.c (ocd_write): Conditionalize on _WIN32 instead of + __CYGWIN32__. + * config/powerpc/tm-ppc-eabi.h: Remove BDM_NUM_REGS, BDM_REGMAP + * ppc-bdm.c: move BDM_NUM_REGS, BDM_REGMAP here from tm.h file, + fill in doc fields of bdm_ppc_ops. + (bdm_ppc_fetch_registers): Don't ask for invalid registers such + as the MQ or floating point regs not present on ppc 8xx boards. + (bdm_ppc_store_registers): Don't write those same invalid registers. + * config/i386/cygwin32.mh: Stop including ocd.o ser-ocd.o. + * config/powerpc/ppc-eabi.mt: + * config/powerpc/ppcle-eabi.mt: + * config/powerpc/ppc-sim.mt: + * config/powerpc/ppcle-sim.mt: Include ser-ocd.o. + +Mon Aug 11 16:08:52 1997 Fred Fish + + * frame.h (enum lval_type): Conditionalize on __GNUC__ + instead of __STDC__. + +Sun Aug 10 19:08:26 1997 Jeffrey A Law (law@cygnus.com) + + * utils.c (error): Fix return type for !ANSI_PROTOTYPES. + +Sun Aug 10 16:49:09 1997 Geoffrey Noer + + * ocd.c: move ocd_write_bytes proto to ocd.h since it is used + by ppc-bdm.c, use OCD_LOG_FILE to help debugging, define + BDM_BREAKPOINT if not defined in tm.h + (ocd_error): add new error cases + (ocd_start_remote): send the OCD_INIT command before + OCD_AYT and OCD_GET_VERSION calls, 80 was correct speed after all + (ocd_write_bytes): no longer static + (ocd_insert_breakpoint): no longer static + (ocd_remove_breakpoint): new + * ocd.h: add protos for ocd_write_bytes, ocd_insert_breakpoint, + and ocd_remove_breakpoint + * ppc-bdm.c: change bdm_ppc_ops so we call ocd_insert_breakpoint + and ocd_remove_breakpoint instead of memory_insert_breakpoint + and memory_remove_breakpoint. + (bdm_ppc_open): after calling ocd_open, modify DER + register so interrupts will drop us into debugging mode, finally + disable the watchdog timer on the board so we don't leave BDM + mode unexpectedly. + +Sat Aug 9 01:50:14 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * values.c (value_primitive_field): Account for offset when + extracting the value of a bitfield. + From Paul Hilfinger . + +Fri Aug 8 21:35:44 1997 Mark Alexander + + * gdbserver/utils.c (error): Change prototype to match defs.h. + * gdbserver/low-sim.c: Change simulator calls to use new interface. + * remote.c (remote_write_bytes): Include '$' at start of packet + and checksum at end of packet in overhead calculation. + +Fri Aug 8 15:59:24 1997 Ian Lance Taylor + + * ser-ocd.c: If _WIN32, include . + (dll_do_command): New static variable if _WIN32. + (ocd_open): Set dll_do_command if _WIN32. + (ocd_write): Use dll_do_command rather than do_command. + * config/i386/cygwin32.mh (XDEPFILES): Remove libwigglers.a. + (BDM_DLLNAME, BDM_LIBNAME, BDM_DEFFILE): Don't define. + ($(BDM_LIBNAME)): Remove target. + * wigglers.def: Remove. + + * config/i386/cygwin32.mh ($(BDM_LIBNAME)): Rename target from + libwigglers.def. + (libwigglers.a): Remove target. + +Fri Aug 8 13:11:01 1997 Mike Meissner + + * config/powerpc/ppc{,le}-{eabi,sim}.mt (TDEPFILES): Make sure + ppc-bdm.o and ocd.o are used for all powerpc-eabi targets. + +Thu Aug 7 19:40:52 1997 Geoffrey Noer + + Changes to OCD support to support wiggler box as well as + target boxes: + * ocd.c: change speed in init command to 0 from 80, + add (temporary) logging commands to help debugging, + (ocd_open): if "target ocd wiggler lpt" then use special + ser-ocd.c serial interface which communicates with Wigglers.dll, + otherwise ("target ocd ") do as we did before + (ocd_get_packet): add OCD_LOG_FILE and OCD_SET_CONNECTION to + switch of known commands of len 0 + * ocd.h: add OCD_LOG_FILE + * serial.c (serial_open): do serial_interface_lookup on ocd + in the case of ocd + * ser-ocd.c: add buffer to contain responses from sending a + command to the Wigglers.dll. + (ocd_readchar): return curr char from buffer and increment ptr + (ocd_write): send buffer to Wigglers.dll, storing response in + return buffer and initializing curr location ptr to start of + buffer. + +Thu Aug 7 13:39:31 1997 Geoffrey Noer + + * ocd.h: add OCD_SET_CONNECTION + * ocd.c: rename "do_command" to "ocd_do_command" + +Thu Aug 7 13:09:17 1997 Geoffrey Noer + + Nomenclature change. BDM is a specific type of OCD + (On Chip Debugging). Wiggler is the parallel port box controlled + by Wigglers.dll. The faster target box from Macraigor Systems + is not a wiggler. + * ocd.c: + * ocd.h: + * ppc-bdm.c: + * ser-ocd.c: + Replace all instances of "wiggler_" with "ocd_" and change most other + instances of "wiggler" to "ocd" or "ocd device" depending on context. + * config/m68k/monitor.mt: remove remote-wiggler.o from TDEPFILES + until OCD with that target is supported again. + +Wed Aug 6 16:15:31 1997 Geoffrey Noer + + * Makefile.in: add DLLTOOL = @DLLTOOL@, pass on DLLTOOL to + sub makes, change clean rule to also remove *.a to remove + libwigglers.a, in dependencies: add ppc-bdm.o ocd.o ser-ocd.o and + remove remote-wiggler.o + * configure.in: add DLLTOOL support + * configure: regenerate + * wigglers.def: new file for imports for wigglers.dll + * ser-ocd.c: new file which is layer between ocd.c and either the + wigglers.dll or the target box, only stub so far + * config/powerpc/ppc-eabi.mt: add ppc-bdm.o to TDEPFILES + * config/powerpc/ppc-sim.mt: add ppc-bdm.o to TDEPFILES + * config/i386/cygwin32.mh: add ocd.o ser-ocd.o libwigglers.a + to XDEPFILES, add rules to build libwigglers.a + + checking in changes of Stu Grossman : + * remote-wiggler.c: delete + * ocd.c: new, was remote-wiggler.c + always include sys/types.h, include ocd.h, move WIGGLER + commands and many wiggler prototypes to ocd.h, make wiggler_desc + static, stop making local wiggler functions static, + define write_mem_command for wiggler_write_bytes + (wiggler_start_remote): stop hardcoding the target type, + instead set and use a target_type variable. + (wiggler_open): add new target_type and ops args + (wiggler_wait): now no longer takes pid and target_status as args, + stop trying to set target_status struct, remove BGND insn + checks + (read_bdm_registers): renamed to wiggler_read_bdm_registers + (wiggler_read_bdm_registers): numregs arg changed to reglen arg, + remove pktlen check, set reglen instead of numregs + (dump_all_bdm_regs): delete + (wiggler_fetch_registers): delete + (wiggler_prepare_to_store): now just an empty function + (wiggler_store_registers): delete + (wiggler_read_bdm_register): new + (wiggler_write_bdm_registers): new + (wiggler_write_bdm_register): new + (wiggler_write_bytes): use write_mem_command variable instead of + WIGGLER_WRITE_MEM + (get_packet): renamed to wiggler_get_packet, change refs throughout + (put_packet): renamed to wiggler_put_packet, change refs throughout + (wiggler_get_packet): add break to default case of switch, + change length of WIGGLER_GET_VERSION len to 10 from 4 to match + specs + (wiggler_mourn): unpush_target with current_ops, not &wiggler_ops + (flash_xfer_memory): delete + (noop_store_registers): new placeholder replacement for + target_store_registers() which prevents generic_load from trying to + set up the PC. + (bdm_update_flash_command): add store_registers_tmp variable, + make handling of wiggler_ops more generic -- define wiggler_ops + in a target-specific file instead (such as ppc-bdm.c in the case + of the ppc), use current_target to deal with registers again + making this file less target-specific. + (bdm_read_register_command): new + (_initialize_remote_wiggler): stop doing add_target (&wiggler_ops), + comment out add_cmd ("read-register", ...) + * ocd.h: new, contains common wiggler prototypes, command definitions + * ppc-bdm.c: file for ppc-specific OCD code, including target_ops + structure for ppc bdm + (bdm_ppc_open): new + (bdm_ppc_wait): new + (bdm_ppc_fetch_registers): new + (bdm_ppc_store_registers_: new + (_initialize_bdm_ppc): new + * config/powerpc/tm-ppc-eabi.h: add necessary CPU32 BDM defines + +Wed Aug 6 00:24:08 1997 Jeffrey A Law (law@cygnus.com) + + * hpread.c (hpread_read_struct_type): Use accessor macros rather + than directly mucking around with data structures. + +Tue Aug 5 13:37:14 1997 Per Bothner + + * gdbtypes.h: Re-interpret struct field. Suppport address of static. + Add a bunch of macros. + * coffread.c, dwarf2read.c, dwarfread.c, mdebugread.c, stabsread.c: + Update to use new macros. + * coffread.c, hpread.c, stabsread.c: Remove bugus TYPE_FIELD_VALUE. + * value.h, values.c (value_static_field): New function. + * cp-valprint.c, valops.c: Modify to use value_static_field. + + * jv-lang.c (get_java_utf8_name): Re-write so it works with + implied (missing) data field, as defined by cc1java. + (java_link_class_type): Type length and field offset (in interior) + now includes object header. Get static fields working. + * jv-lang.h (JAVA_OBJECT_SIZE): Update for change in Kaffe. + * jv-typeprint.c (java_type_print_derivation_info, + java_type_print_base): New functions, for better Java output. + * jv-valprint.c: Start to support Java-specific output. + +Sun Aug 3 08:18:09 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-valprint.c (c_val_print): Use extract_address to retrieve + the address of the virtual function. + From Peter Bloecher (Peter.Bloecher@eedn.ericsson.se). + + * eval.c (evaluate_subexp_standard), valarith.c (value_x_unop): + Handle C++ operator *. + +Fri Aug 1 15:21:44 1997 Ian Lance Taylor + + * configure.in: Check for cygwin32 environment. Define and + substitute WIN32LIBS and WIN32LDAPP. Always set configdir to + unix; setting it to win was for an old Tcl/Tk configuration + scheme. + * Makefile.in (TK_CFLAGS): Add @TK_BUILD_INCLUDES@. + (WIN32LDAPP, WIN32LIBS): Define. + (CLIBS): Add $(WIN32LIBS). + (gdb): Use $(WIN32LDAPP). + * configure: Rebuild. + +Thu Jul 31 15:40:19 1997 Per Bothner + + * symtab.h (SYMBOL_INIT_LANGUAGE_SPECIFIC, SYMBOL_INIT_DEMANGLED_NAME, + SYMBOL_DEMANGLED_NAME): Add demangling support for Java. + * utils.c (fprintf_symbol_filtered): Handle language_java. + + * symtab.c (decode_line_1): Handle Java-style package.class.method. + +Wed Jul 30 14:04:18 1997 Per Bothner + + * java-*: Renamed to jv-*, to make fit within 14 characters. + * jv-lang.h (java_type_print): Added declaration. + * jv-typeprint.c: New file. Provides java_print_type. + * jv-lang.c (java_link_class_type): New function. + (java_language_defn): Replace c_print_type by java_print_type. + * Makefile.in: Update accordingly. + +Tue Jul 29 10:12:44 1997 Felix Lee + + * Makefile.in (init.c): except some mswin files do need to be + scanned. oh well. + +Mon Jul 28 14:04:39 1997 Felix Lee + + * Makefile.in (init.c): don't try to scan mswin for _initialize + funcs. (generates misleading error message because files have + .cpp suffix, not .c suffix) + +Mon Jul 28 13:27:21 1997 Felix Lee + + * ser-e7kpc.c: -> "mswin/w32sut.h" + +Mon Jul 28 02:54:31 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * xcoffread.c (coff_getfilename): Do not strip directory component + of filename. + +Fri Jul 25 15:16:15 1997 Felix Lee + + * mon960-rom.c: removed unused #includes; no ioctl.h in Windows. + * nindy-share/ttyflush.c: find sleep() for _MSC_VER. + * remote-array.c: #include for isascii(). + * utils.c (notice_quit,pollquit): cleanup. _WIN32 -> _MSC_VER. + +Fri Jul 25 16:48:18 1997 Jeffrey A Law (law@cygnus.com) + + * top.c (execute_command): Force cleanup of alloca areas. + * findvar.c (registers_changed): Likewise. + +Fri Jul 25 15:37:15 1997 Stu Grossman + + * v850ice.c: Include . Support new v850 DLL interface. + * Add defs for target status. + +Tue Jul 22 12:11:48 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * config/mips/tm-mips64.h: longs, long longs, and pointers + are all 64 bits on EABI mips targets. + +Thu Jul 17 11:38:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * partial-stab.h (case N_BINCL): detect missing partial symtab. + * dbxread.c: Add a complaint for N_BINCL without a corresponding + partial symtab. Remove earlier change of 5/27/97. + +Wed Jul 16 10:38:03 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * sol-thread.c (sol_thread_[store, fetch]_registers): if + inferior_pid is an LWP rather than a Solaris thread, let + procfs handle the request. + (rw_common, sol_thread_xfer_memory): procfs_xfer_memory will + only work if inferior_pid points to an LWP (rather than a + Solaris thread). Use procfs_first_available to find a good LWP. + (info_solthreads): added a maintenance command to list all + known Solaris threads and their attributes. + * mips-tdep.c (mips_do_registers_info): Completely changed the + output format to be neat and columnar. Added the helper funcs + do_fp_register_row and do_gp_register_row. Also small mods to + mips_print_register, which is still used to print a single reg. + +Mon Jul 14 18:02:53 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * procfs.c (wait_fd): Handle an fd that has "hung up" or + otherwise terminated (Solaris threads). + +Thu Jul 10 00:02:41 1997 Martin M. Hunt + + * defs.h (init_ui_hook): Change prototype to accept one arg. + * main.c (gdb_init): Change prototype to accept one arg. + * top.c (gdb_init): Accepts one argument which it uses to + call (*init_ui_hook). + +Fri Jul 4 14:49:33 1997 Ian Lance Taylor + + * source.c (OPEN_MODE, FDOPEN_MODE): Define; value depends upon + whether CRLF_SOURCE_FILES is defined. + (open_source_file): Use OPEN_MODE with open and openp. + (print_source_lines): Use FDOPEN_MODE with fdopen. If + CRLF_SOURCE_FILES is defined, ignore \r characters. + (forward_search_command): Use FDOPEN_MODE with fdopen. + (reverse_search_command): Likewise. + * config/i386/xm-cygwin32.h (CRLF_SOURCE_FILES): Define. + (LSEEK_NOT_LINEAR): Don't define. + +Thu Jul 3 17:41:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * mips-tdep.c (mips_extract_return_value): align 4-byte float + return values within the 8-byte FP register. + +Thu Jul 3 13:48:11 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * mips-tdep.c (mips_push_arguments): don't left-adjust 32-bit + integers in 64-bit register parameters before function calls. + +Mon Jun 30 17:54:51 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * mips-tdep.c (mips_push_arguments): special-case handling for + odd-sized struct parameters passed in registers / on stack. + +Mon Jun 30 15:30:38 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * mips-tdep.c (mips_push_arguments): tweak alignment of small + structs passed in registers for little-endian non-EABI mode. + +Mon Jun 30 13:05:39 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * breakpoint.c (frame_in_dummy): use generic dummy if available. + (check_duplicates, clear_command): compare sections only if + doing overlay debugging. + +Fri Jun 27 23:03:53 1997 Fred Fish + + * buildsym.h (struct subfile): Add debugformat member. + (record_debugformat): Declare global function. + * buildsym.c (start_subfile): Initialize debugformat member + to NULL. + (record_debugformat): New function to record the format. + (end_symtab): Copy format into symtab debugformat member. + (end_symtab): Free subfile debugformat member. + * symmisc.c (free_symtab): Free debugformat when freeing + symtab. + * symfile.c (allocate_symtab): Initialize the new debugformat + member for new symtabs. + * symtab.h (struct symtab): Add debugformat member. + * source.c (source_info): Print the debug format. + + * os9kread.c (os9k_process_one_symbol): Call record_debugformat + with "OS9". + * hpread.c (hpread_expand_symtab): Call record_debugformat + with "HP". + (hpread_process_one_debug_symbol): Ditto. + * dbxread.c (process_one_symbol): Call record_debugformat + with "stabs". + * coffread.c (coff_start_symtab): Call record_debugformat + with "COFF". + * xcoffread.c (read_xcoff_symtab): Call record_debugformat + with "XCOFF". + * dwarfread.c (read_file_scope): Call record_debugformat + with "DWARF 1". + * dwarf2read.c (read_file_scope): Call record_debugformat + with "DWARF 2". + * dstread.c (dst_end_symtab): Set debugformat to be + "Apollo DST". + * mdebugread.c (new_symtab): Set debugformat to be "ECOFF". + +Fri Jun 27 21:05:45 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * mips-tdep.c (mips_push_arguments): handle alignment of + integer and struct args on stack for mips64 big-endian. + +Fri Jun 27 19:19:12 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * config/mips/tm-mips.h (USE_STRUCT_CONVENTION): MIPS_EABI returns + structs in a register wherever possible. + * mips-tdep.c (mips_extract_return_value): handle structs. + (mips_store_return_value): handle values smaller than MIPS_REGSIZE + (including structs, if gdb ever allows it). + +Fri Jun 20 17:58:34 1997 Fred Fish + + * sh-tdep.c (sh_skip_prologue): Also recognize fmov insns. + (sh_frame_find_saved_regs): Recognize fmov insns and adjust + stack push count accordingly. + * sh-tdep.c (IS_FMOV, FPSCR_SZ): New defines + +Thu Jun 19 08:18:48 1997 Mark Alexander + + * utils.c (floatformat_from_doublest): Improve test for infinity. + +Wed Jun 18 13:47:52 1997 Fred Fish + + * dwarfread.c (isreg, optimized_out, offreg, basereg): Move + global variables into the struct dieinfo structure. + (locval): Pass pointer to a dieinfo struct rather than a + pointer to the raw location information. Change prototype. + Set isreg, optimized_out, offreg and basereg as appropriate. + (struct_type): Call locval with dieinfo struct pointer. + (new_symbol): Ditto. + (new_symbol): Call locval and save location before testing + the values of the new dieinfo struct flags, set by locval. + +Tue Jun 17 13:30:12 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * procfs.c (proc_set_exec_trap, procfs_init_inferior, procfs_wait, + unconditionally_kill_inferior): Undo Oct 26 1996 and Apr 26 1997 + changes to trace PRFS_STOPTERM and handle PR_DEAD. + These changes tried to work around a problem with an early DU 4.0 + release, but they trigger subtle timing dependent kernel bugs + in older OSF/1 releases. + +Tue Jun 17 06:52:47 1997 Fred Fish + + * dwarfread.c (new_symbol): Use SYMBOL_VALUE_ADDRESS, instead of + SYMBOL_VALUE, to set the value of LOC_STATIC symbols. + +Mon Jun 16 18:38:28 1997 Mark Alexander + + * infrun.c (wait_for_inferior): Mark registers as invalid when + stepping over an instruction that triggered a watchpoint. + * remote-mips.c: Numerous changes to support hardware breakpoints + and watchpoints on LSI MiniRISC and TinyRISC boards. + * mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h. + (mips_breakpoint_from_pc): Account for different breakpoint + instructions used by PMON and IDT monitor. + * config/mips/tm-embed.h: Enable hardware breakpoints on embedded + MIPS targets. + * config/mips/tm-mips.h: Define breakpoint instructions for + PMON and IDT monitor. Move MIPS16-related macros here from + mips-tdep.c. + +Fri Jun 13 13:44:47 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * config/mips/tm-tx39[l].h, tx39[l].mt: change r3900 target to tx39. + +Fri Jun 13 14:14:10 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300-tdep.c (mn10300_analyze_prologue): Fix some comments. + Add missing return statements after finding an "add imm{16,32},sp" + instruction. + (mn10300_frame_chain): Add in size of our register save area to find + our caller's frame if our caller does not have a frame pointer. + +Fri Jun 13 12:55:49 1997 Doug Evans + + * symfile.c (generic_load): Check return code of target_write_memory. + +Fri Jun 13 10:28:09 1997 Fred Fish + + * config/i386/nm-linux.h: Enable prototypes that were #ifdef out. + * config/tm-sysv4.h (in_plt_section): Add prototype. + + * maint.c (maintenance_translate_address): Avoid assignment + inside if, per GNU coding standards. + * symfile.c (simple_read_overlay_table): Avoid assignments inside if, + per GNU coding standards. + + * monitor.c (parse_register_dump): Is really a void function. + Add prototype. + (monitor_read_memory): Remove unused variable "name". + (monitor_read_memory): Remove unused variable "regbuf". + (monitor_open): Remove unused variable "i". + (get_hex_word): Apparently unused, #if away for now. + (from_hex): Ditto. + + * i386v4-nat.c (supply_fpregset): Remove unused variable "regi". + (fill_fpregset): Remove unused variables "regi", "to", "from" and + "registers". + + * remote-e7000.c (ctype.h): Include. + (e7000_insert_breakpoint): #if away unused arg used by unused expr. + * frame.h (generic_get_saved_register): Add prototype. + (enum lval_type): Add partial forward decl. + * dsrec.c (make_srec): Remove unused variable "type_code". + * remote-sim.c (gdbsim_wait): Handle sim_running and sim_polling + cases by just ignoring them. + (command.h): Include. + + * java-exp.y (parse_number): Remove unused variable "unsigned_p". + * java-lang.c (gdbcore.h): Include for prototypes. + (type_from_class): Remove unused variable "ftype". + (type_from_class): Remove unused variable "name_length". + (evaluate_subexp_java): Add default case to handle remaining + enumerations. + * java-valprint.c (c-lang.h): Include for prototypes. + + * symfile.c (simple_read_overlay_region_table): #if away + unused function. + (simple_free_overlay_region_table): Ditto. + (overlay_is_mapped): Add default case to switch. + (simple_read_overlay_region_table): Ditto. + (simple_read_overlay_region_table): Add prototype. + + * symtab.c (fixup_symbol_section): Remove unused msym variable. + (fixup_psymbol_section): Ditto. + (find_pc_sect_symtab): Make distance a CORE_ADDR. + + * utils.c: Add comment about t_addr being either unsigned long or + unsigned long long. + (paddr): Change formats to match actual types args are cast to. + (preg): Ditto. + (paddr_nz): Ditto. + (preg_nz): Ditto. + + * defs.h (perror_with_name): Is a NORETURN function. + * utils.c (perror_with_name): Is a NORETURN function. + (error): Is NORETURN independently of ANSI_PROTOTYPES. + + * symtab.c (fixup_symbol_section): Remove prototype. + * symtab.h: (fixup_symbol_section): Add prototype. + * m32r-rom.c (report_transfer_performance): Add prototype. + * sparclet-rom.c: Ditto. + * dsrec.c: Ditto. + + * c-exp.y (parse_number): Cast args to float* or double* as + appropriate for conversion format. + * java-exp.y (parse_number): Ditto. + + * Makefile.in (c-exp.tab.c): Remove #line lines that refer + to nonexistant y.tab.c file. + (java-exp.tab.c): Ditto. + (f-exp.tab.c): Ditto. + (m2-exp.tab.c): Ditto. + + * sh-tdep.c (symfile.h): Include. + (gdb_string.h): Include. + (sh_fix_call_dummy): Ifdef away, currently unused. + * config/sh/tm-sh.h (pop_frame): Add prototype. + * config/sh/tm-sh.h (sh_set_processor_type): Add prototype. + +Sat Jun 7 02:34:19 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * eval.c (evaluate_subexp_for_sizeof): Handle dereferencing + of non-pointer values. + + * symtab.c (gdb_mangle_name): Improve mangling of nested types, + their physical names already include the class name. + + * valops.c (value_cast): Handle upcast of a class pointer. + + From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de): + * corelow.c (get_core_registers): Make secname big enough. + +Fri Jun 6 14:43:23 1997 Keith Seitz + + * config/sh/tm-sh.h: add define for FPSCR_REGNUM + * sh-tdep.c (sh_show_regs): print out all registers for + the current processor + +Fri Jun 6 13:01:55 1997 Andrew Cagney + + * remote-sim.c (gdbsim_kill): Remove call to depreciated function + sim_kill. + +Thu Jun 5 11:39:03 1997 Ian Lance Taylor + + Fixes for recent correction to PE format: + * coffread.c (pe_file): New static variable. + (struct find_targ_sec_arg): Change resultp from pointer to int to + pointer to pointer to asection. + (find_targ_sec): Just store the section in args->resultp, not the + section offset value. + (cs_to_section): Compute the section offset value from the + section. + (cs_section_address): New static function. + (coff_symfile_read): Set pe_file. + (read_one_sym): When reading a PE file, adjust the symbol value to + include the section address if the symbol has an appropriate + storage class. + +Tue Jun 3 16:24:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * configure.tgt: add mipsr3900-elf target + * config/mips/r3900.mt r3900l.mt tm-r3900.h tm-r3900l.h: ditto + +Tue May 27 10:34:11 1997 Michael Snyder + + * dbxread.c: Check malloc's return for null, prevent segv. + +Fri May 23 14:45:02 1997 Bob Manson + + * infcmd.c (jump_command): Don't try to dereference sfn if it's + NULL. + +Fri May 23 13:51:57 1997 Andrew Cagney + + * top.c (init_cmd_lists): Always initialize endianlist. + (init_main): Always define endian commands. + (set_endian_big): Issue warning if endian not selectable. + (set_endian_little): Ditto. + (set_endian_auto): Ditto. + +Thu May 22 11:53:21 1997 Andrew Cagney + + * remote-sim.c (simulator_command): Restrict access to the + simulator to periods when the simulator is open. + +Wed May 21 16:03:25 1997 Michael Snyder + + * procfs.c (init_procinfo): new function, abstracts some code + shared by create_procinfo and do_attach; + (procfs_set_inferior_syscall_traps): new function, abstracts + some code needed by procfs_init_inferior, do_attach, and + procfs_lwp_creation_handler; (procfs_first_available): new + function, find any LWP that's runnable; (procfs_thread_alive): + replace stub function with real implementation; + (procfs_lwp_creation_handler): fix bug starting new child + threads; (info_proc): bug fixes and enhancements for the + "INFO PROCESSES" command; (close_procinfo_file): call new + function "delete_thread" to cleanup GDB's thread database; + (proc_init_failed): add new argument "kill", to control whether + process is killed (so this function can be shared by + create_procinfo and do_attach); (procfs_exit_handler): handle + exit from an attached process, and cleanup procinfo handles + when the process exits; (procfs_resume, procfs_wait): cleanup + after a thread when it exits; (do_attach, do_detach): handle + attached processes with multiple threads; plus some general + improvements in the diagnostic output. + * sol-thread.c (sol_thread_alive): replace stub with real + implementation; (thread_to_lwp, lwp_to_thread): enhance to + handle threads that may have exited; (sol_thread_attach): add + startup setup stuff; (sol_thread_detach): add unpush_target + call; (sol_thread_mourn_inferior): add unpush_target call; + (sol_thread_wait, sol_thread_resume): enhance to deal with + thread exit cleanly; (sol_thread_new_objfile, + sol_thread_pid_to_str): detect unsuccessful startup and + don't crash; plus some general cleanup. + * thread.c (delete_thread): new function, allows targets to + notify gdb when a thread is no longer valid. + * infrun.c (wait_for_inferior): don't try to detect a new + thread on receiving a TARGET_EXITED event. + +Tue May 20 09:32:02 1997 Andrew Cagney + + * remote-sim.c (gdbsim_open): Pass callback struct. + (init_callbacks): Remove call to sim_set_callbacks. + +Thu May 15 07:56:50 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/rs6000/tm-rs6000.h (SIG_FRAME_LR_OFFSET): Define. + * rs6000-tdep.c (frameless_function_invocation): Mark frames + with a zero PC as frameless to improve backtraces from core dumps + caused by dereferencing a NULL function pointer. + (frameless_function_invocation, frame_saved_pc, rs6000_frame_chain): + Handle frameless functions interrupted by a signal. + + * sparc-tdep.c (sparc_init_extra_frame_info, sparc_frame_saved_pc): + Handle frameless functions interrupted by a signal. + +Wed May 14 08:58:55 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200-tdep.c (mn10200_analyze_prologue): Update prologue comments + to reflect current reality. Gross attempt at handling out of + line prologues. + + * mn10200-tdep.c (mn10200_skip_prologue): Don't look at the debug + symbols to find the end of the prologue. + * mn10300-tdep.c (mn10300_skip_prologue): Likewise. + +Thu May 8 08:42:47 1997 Andrew Cagney + + * configure.in (AC_TYPE_SIGNAL): Add + * configure: Re-generate. + * remote-sim.c: Signal returns RETSIGTYPE. + +Wed May 7 20:05:07 1997 Andrew Cagney + + * target.h (target_stop): Drop argument so it can be tested for + NULL. + +Sat May 3 20:51:48 1997 Mark Alexander + + * utils.c (floatformat_from_doublest): Handle infinity properly. + +Thu May 1 11:44:46 1997 Michael Snyder + + * Finalize merge from Hurd folk. + Mon Oct 30 16:41:04 1995 Miles Bader + * thread.c (thread_apply_command, thread_apply_all_command, + thread_command): Make sure TP is alive. + (thread_alive): New function. + Tue Nov 14 14:31:03 1995 Miles Bader + * infrun.c (sig_print_info): Deal better with long signal names. + Wed Nov 22 15:23:35 1995 Miles Bader + * thread.c (thread_id_to_pid): New function. + Fri Dec 1 13:25:25 1995 Miles Bader + * gnu-nat.c: (set_thread_cmd_list, show_thread_cmd_list, + set_thread_default_cmd_list, show_thread_default_cmd_list): + New variables. (set_thread_cmd, show_thread_cmd, + set_thread_default_cmd, show_thread_default_cmd): New functions. + Fri Apr 18 15:20:16 1997 Miles Bader + * gnu-nat.c (inf_startup): remove TASK parameter. + (inf_set_task): replace with new function (inf_set_pid). + * gdbthread.h: Add extern decl for thread_cmd_list. + +Thu May 1 02:28:21 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * printcmd.c (disassemble_command): Adjust low function bound + by FUNCTION_START_OFFSET. + +Mon Apr 28 21:25:32 1997 Michael Snyder + + * Makefile.in: Add rule for gnu-nat.o and i386gnu-nat.o (Gnu Hurd) + * config/i386/i386gnu.mh: remove rules for [i386]gnu-nat.o, now + in Makefile.in (as for other targets); add NATDEPFILE corelow.o to + satisfy symbol dependancy in solib.c (core_ops). + * target.[ch] conditionalize Mach-specific signals so that they + won't show up in non-Mach gdb's! + * thread.c: change name of static function "thread_switch" to + "switch_to_thread", to avoid conflict with Mach global symbol; + move thread_cmd_list to global scope so targets can add their + own thread commands. + * infrun.c: sig_print_info: allow for long signal names. + * gnu-nat.[ch]: tidying up comments. + * gnu-nat.c: remove calls to prune_threads and renumber_threads; + gnu_wait must not return -1 when inferior exits; + attach_to_child will modify inferior_pid in a way that allows + fork_inferior to remain unchanged; remove extra arg from + startup_inferior; move Mach thread commands here from thread.c. + +Mon Apr 28 18:21:20 1997 Michael Snyder + + * symtab.c: decode_line_1, replace the assignment to + values.sals[0].pc which I accidentally left out on 4/3/97. + +Mon Apr 28 17:27:40 1997 Michael Snyder + + * c-exp.y: make parse_number reject "123DEADBEEF". + (fix by Bob Manson). + * java-exp.y: Ditto. + * top.c: change "to enable to enable" to "to enable" in a couple + of help strings. + +Mon Apr 28 09:01:59 1997 Mark Alexander + + * breakpoint.c (remove_breakpoint): Pass correct type to + target_remove_watchpoint. + * target.h: Improve comment for target_{remove,insert}_breakpoint. + +Sat Apr 26 03:38:02 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * alpha-tdep.c (heuristic_proc_desc): Increase search limit + for return address register, handle `ret' instruction. + + * corelow.c (get_core_registers): Initialize cf. + + * procfs.c: Minor changes to make pre-ANSI compilers happy. + (procfs_notice_signals): Copy traced signal set back to + pi->prrun.pr_trace. + (unconditionally_kill_inferior): If PR_DEAD is defined, + rerun inferior after killing it. + +Fri Apr 25 00:10:18 1997 Jeffrey A Law (law@cygnus.com) + + * config/mn10300/tm-mn10300.h (EXTRACT_STRUCT_VALUE_ADDRESS): The + structure value address is found in $a0 now. + * config/mn10200/tm-mn10200.h (EXTRACT_STRUCT_VALUE_ADDRESS): Likewise. + +Thu Apr 24 13:31:10 1997 Jeffrey A Law (law@cygnus.com) + + * config/mn10300/tm-mn10300.h (STORE_RETURN_VALUE): Pointers are + returned in $a0. + (EXTRACT_RETURN_VALUE): Likewise. + + * mn10300-tdep.c (mn10300_analyze_prologue): Check for a return + insn at "pc", not "fi->pc". + +Wed Apr 23 11:18:45 1997 Jeffrey A Law (law@cygnus.com) + + * config/mn10200/tm-mn10200.h (STORE_RETURN_VALUE): Pointers are + returned in $a0. + (EXTRACT_RETURN_VALUE): Likewise. + +Tue Apr 22 11:58:15 1997 Fred Fish + + * config/arm/tm-arm.h (TARGET_DOUBLE_FORMAT): Define to use + floatformat_ieee_double_littlebyte_bigword for little endian + target byte order. + * utils.c (floatformat_to_doublest): Create local preswapped + copy of input for floatformat_littlebyte_bigword formats. + (get_field, put_field): Treat floatformat_littlebyte_bigword + the same as floatformat_little. + (floatformat_from_doublest): Postswap output words for + the floatformat_littlebyte_bigwords format. + +Tue Apr 22 09:02:10 1997 Stu Grossman (grossman@critters.cygnus.com) + + * config/alpha/alpha-osf3.mh config/i386/{i386gnu linux}.mh + config/mips/{embed embed64 embedl embedl64 vr4300 vr4300el vr5000 + vr5000el}.mt config/powerpc/{aix aix4}.mh config/rs6000/{aix + aix4}.mh config/sh/sh.mt config/sparc/sp64sim.mt: + config/v850/v850.mt: + Remove -lm. That's now handled by configure. + + * Makefile.in (maintainer-clean): Add distclean to dependencies. + Remove duplicate rm's of files. + +Mon Apr 21 09:49:25 1997 Stu Grossman (grossman@critters.cygnus.com) + + * remote-pa.c: Remove. It's broken and no longer necessary. + + Sat Apr 19 11:56:10 1997 Per Bothner + + * java-exp.y: Combine TRUE and FALSE into BOOLEAN_LITERAL. + (Avoids name clash with broken AIX header files.) + +Sat Apr 19 01:49:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * serial.c (serial_log_command): Fix fputs_unfiltered calls. + + * config/powerpc/tm-ppc-aix4.h, config/rs6000/tm-rs6000-aix4.h + (DONT_RELOCATE_SYMFILE_OBJFILE): Removed. + * xcoffsolib.h (struct vmap): Add new members tvma, toffs and dvma, + remove tadj. + * exec.c (bfdsec_to_vmap): Initialize new vmap members, initialize + tstart and dstart with section VMA. + * rs6000-nat.c (vmap_symtab): Relocate relative to the VMA in the + object file. + (vmap_ldinfo, xcoff_relocate_core): Adjust tstart by section offset + of the text section, remove DONT_RELOCATE_SYMFILE_OBJFILE hack. + (vmap_exec): Relocate relative to the VMA in the object file, + relocate .bss section as well. + (xcoff_relocate_core): No longer adjust section addresses by VMA. + * rs6000-tdep.c (find_toc_address): Change type of tocbase + to CORE_ADDR. + * xcoffread.c (secnum_to_bfd_section): New routine to get + BFD section from CS section number. + (scan_xcoff_symtab): Make toc_offset section relative. + + * symtab.c (total_number_of_methods): Avoid core dump if + baseclass type is still undefined. + +Fri Apr 18 17:25:10 1997 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in (SUBDIRS): Add mswin so that make cleanup cleans up + that directory. + * defs.h utils.c (error warning): Make message be const. + * main.c (fputs_unfiltered): Only send gdb_stdout and gdb_stderr + to hook. Otherwise send it to fputs. + * monitor.c monitor.h (monitor_get_dev_name): New function. Does + the obvious. + * remote-e7000.c: Remove debugify stuff. Change printf, fprintf + to _filtered forms to make output appear in GUIs. Replace all + uses of SERIAL_READCHAR with readchar, which has better error + checking. + * (e7000_parse_device): Add prototype. + (readchar): Improve doc. Handle random serial errors. + (expect): Disable notice_quit code. It's busted. Remove + serial error handling (it's now handled in readchar). Remove + remote_debug echoing. That's handled in readchar as well. + (e7000_parse_device): Remove serial_flag arg. It's not + necessary. + (e7000_open): Split into two pieces. Second part is + e7000_start_remote, and is error protected. Now, when we connect + to the target, we setup the initial frame and registers so that + the user gets an immediate indication of where the target is. + (gch): Remove debug output. That's handled by readchar. + (e7000_read_inferior_memory): Handle errors better. + (_initialize_remote_e7000): Get rid of `' things from + command names. They show up when doing completion and confuse + things horribly. + * ser-e7kpc.c: Get rid of the DLL's since we can access the device + directly from Win32s and Win95. Get rid of debugify crud. + * serial.c: Remove debugify cruft. + * (serial_logchar serial_log_command serial_write serial_readchar + serial_send_break serial_close): Merge common functionality into + serial_logchar. Clean up rest of routines. + * sparclet-rom.c: Disembowel. Leave only download routine. + Download routine now switches to remote target automatically. + * top.c (disconnect): Only define if SIGHUP is defined. Cleans + up MSVC/Win32 problem. + * utils.c (gdb_flush): Don't call hook unless it's for gdb_stdout + or gdb_stderr. + * config/sh/tm-sh.h: Define TARGET_SH for WinGDB. + * config/sparc/tm-sparclet.h: Remove override for prompt. + +Fri Apr 18 13:38:19 1997 Doug Evans + + * remote-sim.c (gdbsim_open): Only pass -E to sim_open if + TARGET_BYTE ORDER_SELECTABLE. + +Fri Apr 18 16:52:41 1997 Andrew Cagney + + * remote-sim.c (init_callbacks): Initialize poll_quit and magic + fields of gdb_callback. + (gdbsim_stop): Add gdbsim_stop to list of supported client + operations. + (gdbsim_wait, gdbsim_resume): Move call to sim_resume into + sim_wait where gdb is in a position to handle a long running + function. + (gdbsim_cntrl_c): New function. Wrap the sim_resume call in a + SIGINT handler. + (gdb_os_poll_quit): New function. Check for a quit pending on the + console. + +Thu Apr 17 14:30:04 1997 Per Bothner + + * objfiles.c (allocate_objfile): Allow NULL bfd argument. + * defs.h (enum language): Add language_java. + * java-exp.y, java-lang.c, java-lang.h, java-valprint.c: New files. + * Makefile.in: Update for new files. + * symfile.c (deduce_language_from_filename): Recognize .java. + +Thu Apr 17 02:20:23 1997 Doug Evans + + * m32r-stub.c (stash_registers): Rewrite. + (restore_registers): Renamed to restore_and_return. + (cleanup_stash): New function. + (process_exception): New function. + (_catchException*): Rewrite. + + * remote-sim.c (gdbsim_load): Update call to sim_load. + (gdbsim_create_inferior): No longer pass start_address to + sim_create_inferior. + (gdbsim_open): Pass endian indicator as arg. + +Tue Apr 15 15:31:09 1997 Stan Shebs + + * remote.c (get_offsets): Don't use scanf for interpreting + response to qOffsets. + +Tue Apr 15 14:51:04 1997 Ian Lance Taylor + + * gdbserver/Makefile.in (INSTALL_XFORM): Remove. + (INSTALL_XFORM1): Remove. + (install-only): Use $(program_transform_name) directly, rather + than using $(INSTALL_XFORM) and $(INSTALL_XFORM1). + (uninstall): Transform name. + +Mon Apr 14 17:06:27 1997 Mark Alexander + + * remote-mips.c (mips_load): Ensure that PC gets updated + after a load on LSI target. + +Mon Apr 14 15:54:51 1997 Geoffrey Noer + + * procfs.c (notice_signals): fix typo + +Mon Apr 14 16:25:10 1997 Ian Lance Taylor + + * gdbserver/Makefile.in (INSTALL): Change install.sh to + install-sh. + +Mon Apr 14 11:55:27 1997 Geoffrey Noer + + * config/i386/cygwin32.mh: remove -lkernel32 from XM_CLIBS + since gcc automatically includes it + +Thu Apr 10 13:20:53 1997 Geoffrey Noer + + * procfs.c: Substantial (but incomplete) changes to support + sysv4.2mp procfs as implemented in UnixWare 2.1. The procinfo + struct now has substructs like struct flt_ctl instead of + just a fltset_t and has a ctl_fd, status_fd, as_fd, and + map_fd instead of a single fd. Non-sysv4.2mp procfs models + still have the structs and multiple fds, but don't use the + entire struct and the four fds all point to the same thing. + We use PROCFS_USE_READ_WRITE to decide whether to talk to + procfs with reads/writes or use ioctl instead. We use + HAVE_MULTIPLE_PROC_FDS to determine whether procfs really has + multiple fds or not. PROC_NAME_FMT is split out into + CTL_PROC_NAME_FMT, AS_PROC_NAME_FMT, MAP_PROC_NAME_FMT, + STATUS_PROC_NAME_FMT. + + (procfs_notice_signals): now a necessary wrapper around + (notice_signals): which are the new guts for noticing signals + (open_proc_file): gets a new flag arg used in sysv4.2mp to + determine whether or not to attempt to open the ctl_fd. + (procfs_read_status): new local function, reads procfs status + (procfs_write_pcwstop): new local function, writes a PCWSTOP + (procfs_write_pckill): new local function, writes a PCKILL + (unconditionally_kill_inferior): remove signo since we now + just call procfs_write_pckill(). + (procfs_xfer_memory): call lseek with SEEK_SET rather than 0 + (proc_iterate_over_mappings): the whole function is ifdefed + on UNIXWARE to keep things readable. + + Expanded the syscall_table to include new potential sysv4.2mp + members. Note that all ifdefs of UNIXWARE should be eliminated + if possible or renamed to describe what's being selected for a + bit better. Sysv4.2mp and IRIX both have SYS_sproc so the + IRIX specific code now also checks it's not UNIXWARE. + + * config/i386/tm-i386v42mp.h: also define HAVE_PSTATUS_T, + HAVE_NO_PRRUN_T, PROCFS_USE_READ_WRITE, and UNIXWARE + * config/mips/nm-irix4.h: set CTL_PROC_NAME_FMT et al to + "/debug/%d" as PROC_NAME_FMT used to be + +Wed Apr 9 11:36:14 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300-tdep.c: Almost completely rewritten based on mn10200 + port. + * config/mn10300/tm-mn10300.h: Likewise. + +Tue Apr 8 10:45:24 1997 Stu Grossman (grossman@critters.cygnus.com) + + * config/pa/{hppabsd.mt hppahpux.mt hppaosf.mt}: Remove + remote-pa.o from TDEPFILES. Nobody uses it, and besides, it's a + lousy out-of-date clone of remote.c. + +Fri Apr 4 08:21:21 1997 Stu Grossman (grossman@critters.cygnus.com) + + * remote.c: Fix problems realized while showering. + * (hexnumlen): Add prototype. Use max, not min. + * (remote_write_bytes remote_read_bytes): Fix max packet size + calculations to properly account for packet overhead. Also handle + (probably rare) case where remote_register_buf_size isn't set. + + * remote.c: Fix doc for `C' and `S' commands to indicate full + address. + * (remote_ops extended_remote_ops remote_desc remote_write_size): + Make static. + * (remote_fetch_registers remote_write_bytes remote_read_bytes): + Record size of response to fetch registers command, use this to + limit size of memory read and write commands. + * (push_remote_target): New function to make it possible to have + another target switch to the remote target. + * target.h: Add prototype for push_remote_target. + * sh-tdep.c (sh_frame_find_saved_regs): Fix sign extension bugs + for hosts which default to unsigned chars (such as SGI's). + * (_initialize_sh_tdep): Don't set remote_write_size. It's now + handled automatically in remote.c. + +Thu Apr 3 15:10:30 1997 Michael Snyder + + * blockframe.c: blockvector_for_pc_sect(), block_for_pc_sect(), + find_pc_sect_function(), find_pc_sect_partial_function(): new + functions for debugging overlays; pc without section is ambiguous. + * breakpoint.[ch]: add section pointer to breakpoint struct; + add section argument to check_duplicates(); check section as well + as pc in [breakpoint_here_p(), breakpoint_inserted_here_p(), + breakpoint_thread_match(), bpstat_stop_status()]; + add section argument to describe_other_breakpoints(); + use INIT_SAL() macro to zero-out new sal structures; + make resolve_sal_pc() fix up the sal's section as well as its pc; + match on section + pc in clear_command() and delete_breakpoint(); + account for overlay sections in insert_breakpoints(), + remove_breakpoint() and breakpoint_re_set_one(); + all this to support overlays where a PC is not unique. + * exec.c: change xfer_memory() to handle overlay sections. + * findvar.c: change read_var_value() to handle overlay sections. + * frame.h: declaration for block_for_pc_sect() [blockframe.c]. + * infcmd.c: jump_command() warns against jumping into an overlay + that's not in memory. Also use INIT_SAL() to initialize sals. + * infrun.c: wait_for_inferior() sets a flag to invalidate cached + overlay state information; Also use INIT_SAL() to init sals. + * m32r-rom.c: modify load routines to use LMA instead of VMA. + * m32r-stub.c: mask exit value down to 8 bits; screen out any + memory read/writes in the range 600000 to a00000, and ff680000 + to ff800000 (hangs because nothing is mapped there); fix strcpy(). + * maint.c: maintenance command "translate-address" supports overlays. + * minsyms.c: lookup_minimal_symbol_by_pc_sect() supports overlays. + * objfiles.[ch]: add ovly_mapped field to the obj_section struct; + this constitutes gdb's internal overlay mapping table. Add macro + ALL_OBJSECTIONS() to loop thru the obj_structs and look at overlays. + Add function find_pc_sect_section(). + * printcmd.c: modify print_address_symbolic() with overlay smarts; + modify address_info() with overlay smarts; add function sym_info() + to support the INFO SYMBOL command (translate address to symbol(s)); + modify disassemble_command() to work on unmapped overlays. + * source.c: use INIT_SAL() to initialize sals. + * symfile.[ch]: change generic_load() to use section's LMA address + instead of VMA address, for overlay sections. + Add numerous functions for finding a PC's section / overlay, + translating between VMA and LMA address ranges, determining if an + overlay section is mapped, etc. Add several user commands for + overlay debugging. Add support for a "generic" form of automatically + reading overlay mapping info from the inferior (based on the default + (simple) overlay manager which Cygnus provides as an example). + * symtab.[ch]: add functions find_pc_sect_symtab(), + find_pc_sect_psymtab(), find_pc_sect_psymbol(), find_pc_sect_line() + for lookup; modify lookup_symbol and decode_line_1() to use them; + modify find_function_start_sal() to account for overlay sections; + add macro INIT_SAL() for initializing struct symtab_and_line. + * target.c: fix a comment in the declaration of target_ops. + +Thu Apr 3 10:31:12 1997 Mark Alexander + + * mips-tdep.c (mips_in_call_stub, mips_in_return_stub, + mips_skip_stub, mips_ignore_helper): New functions for dealing + with MIPS16 call/return thunks. + (mips_init_frame_pc_first): New function to implement + INIT_FRAME_PC_FIRST macro; includes code from old macro plus + new code to skip over MIPS16 thunks. + (mips_frame_chain): Skip over MIPS16 thunks. + * config/mips/tm-mips.h (mips_in_call_stub, mips_in_return_stub, + mips_skip_stub, mips_ignore_helper): Declare. + (IN_SOLIB_CALL_TRAMPOLINE, IN_SOLIB_RETURN_TRAMPOLINE, + SKIP_TRAMPOLINE_CODE, IGNORE_HELPER_CALL): New macros that invoke + the above functions. + (INIT_FRAME_PC_FIRST): Change to invoke mips_init_frame_pc. + (mips_init_frame_pc): Declare. + * infrun.c (wait_for_inferior): Use new IGNORE_HELPER_CALL macro + to decide if certain library function calls should be ignored. + +Wed Apr 2 14:16:51 1997 Doug Evans + + * remote-sim.c (gdbsim_open): Check return code from sim_open. + Update call to sim_open (new arg SIM_OPEN_DEBUG). + +Mon Mar 31 14:55:53 1997 Ian Lance Taylor + + * gdbinit.in: New file. + * .gdbinit: Remove. + * configure.in: Generate .gdbinit from gdbinit.in. + * configure: Rebuild. + +Sat Mar 29 13:57:20 1997 Fred Fish + + * COPYING: Install new version of file from FSF. + * copying.c (show_copying_command): Update FSF address. + +Fri Mar 28 18:33:41 1997 Ian Lance Taylor + + * Makefile.in (distclean): Remove .gdbinit. + +Fri Mar 28 15:38:04 1997 Mike Meissner + + * remote-sim.c (gdb_os_{,e}vprintf_filtered): Change stdarg type + to va_list from void *, since va_list might not be a pointer + type. + +Thu Mar 27 14:21:46 1997 Mark Alexander + + * remote-mips.c: Clean up comment and extraneous semicolon + for mips_monitor_prompt variable. + +Thu Mar 27 12:46:58 1997 Mark Alexander + + * remote-mips.c: Add `set monitor-prompt' command. + +Wed Mar 26 06:47:44 1997 Mark Alexander + + Fix from Peter Schauer: + * mdebugread.c (parse_procedure): Set address of procedure to + block start; this fixes problems with shared libraries introduced + by change of Mar 21. + +Mon Mar 24 19:43:16 1997 Geoffrey Noer + + * symtab.c (find_pc_symtab): change to support the case + where the objfile is reordered and contains both coff and + stabs debugging info (continue on if a psymtab isn't found). + +Sun Mar 23 16:19:20 1997 Mark Alexander + + Fixes from Peter Schauer: + * config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE, + REGISTER_CONVERT_FROM_TYPE): Swap words if target, not host, + is big-endian and if registers are 32 bits. + * mips-tdep.c (mips_print_register, mips_extract_return_value, + mips_store_return_value): Fix floating-point word-order problems on + little-endian targets introduced by changes of Mar 21. + +Sun Mar 23 15:43:27 1997 Stan Shebs + + * remote.c (target_resume_hook, target_wait_loop_hook): New + globals. + (remote_resume, remote_wait): Use them. + * d10v-tdep.c: Set the above hooks. + (tracesource): New GDB variable, controls source display in + traces. + (display_trace): Find and display source line if requested. + (trace_info): Mention empty trace buffer if appropriate. + (tdisassemble_command): Robustify argument handling. + + * configure.host: Remove extra bogus Linux case. + +Sat Mar 22 16:41:35 1997 Fred Fish + + * remote-sim.c (simulator_command): Add comment about dealing with + NULL or empty args. + +Sat Mar 22 02:48:11 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * c-exp.y (yylex): Handle nested template parameter lists. + * symtab.c (decode_line_2): Fix test for valid choice number. + +Fri Mar 21 19:10:05 1997 Mark Alexander + + * mips-tdep.c (mips_push_arguments): On non-EABI architectures, + copy first two floating point arguments to general registers, so that + MIPS16 functions will receive the arguments correctly. + (mips_print_register): Print double registers correctly on + little-endian hosts. + (mips_extract_return_value): Return double values correctly + on little-endian hosts. + + * mdebugread.c (parse_procedure): Adjust address of procedure relative + to address in file descriptor record; this accounts for constant + strings that may precede functions in the text section. Remove + now-useless lowest_pdr_addr from argument list and all calls. + +Fri Mar 21 15:36:25 1997 Michael Meissner + + * configure.tgt (powerpc*-{eabi,linux,sysv,elf}*): Determine + whether the simulator will be built by whether the Makefile in the + simulator directory was built. + + * configure.in (--enable-sim-powerpc): Delete switch. + * configure: Regenerate. + +Thu Mar 20 20:52:04 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200-tdep.c (mn10200_analyze_prologue): Look for save of "a1" + in the prologue too. + + * remote-sim.c (gdb_os_vprintf_filtered): Fix to work with non-ANSI + compilers. + (gdb_os_evprintf_filtered): Similarly. + +Wed Mar 19 16:13:22 1997 Geoffrey Noer + + New UnixWare 2.1 configuration + * config/i386/i386v42mp.mt: new + * config/i386/i386v42mp.mh: new + * config/i386/tm-i386v42mp.h: new + * config/i386/nm-i386v42mp.h: new + * configure.tgt: added new entries + * configure.host: added new entries + +Mon Mar 17 17:52:00 1997 J.T. Conklin + + * dsrec.c (load_srec): Print leading zeroes when printing section + addresses. + +Mon Mar 17 15:00:16 1997 Andrew Cagney + + * remote-sim.h: Delete - moved to ../include/remote-sim.h. + + * Makefile.in (remote_utils_h): Update path to remote-sim.h. + +Fri Mar 7 20:55:28 1997 Andrew Cagney + + * remote-sim.c (flush_stdout, write_stderr, flush_stderr, + vprintf_filtered, evprintf_filtered): Callbacks that accept + varargs. + +Sat Mar 15 00:50:46 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * breakpoint.c (insert_breakpoints, watchpoint_check, + bpstat_stop_status): Do not disable watchpoints going out of scope. + (insert_breakpoints): Make sure that the current frame is valid + before calling find_frame_addr_in_frame_chain. + + * top.c (setup_user_args): Handle quotes and backslashes. + (print_gdb_version): Update copyright year. + +Fri Mar 14 15:44:03 1997 Ian Lance Taylor + + * Makefile.in (elfread.o): Depend upon elf-bfd.h and elf/mips.h. + +Thu Mar 13 22:51:00 1997 Dawn Perchik + + * utils.c (pollquit, notice_quit): If _WIN32, limit test for + cntl-C to wingdb. + (initialize_utils): If _WIN32, don't call ScreenRows and ScreenCols + except under wingdb. (Contributed by Martin Hunt). + +Thu Mar 13 12:40:49 1997 Tom Tromey + + * configure: Regenerated. + * configure.in: Run AC_CONFIG_AUX_DIR before AC_CANONICAL_SYSTEM. + +Thu Mar 13 11:00:22 1997 Doug Evans + + * remote-sim.h (sim_state, SIM_DESC): New types. + (sim_open): Return a `descriptor' as result. + (*): New argument of descriptor result from sim_open. + * remote-sim.c (gdbsim_desc): Renamed from gdbsim_open_p. + (gdbsim_open): Record result of sim_open in gdbsim_desc. + Pass argv list to sim_open, argv[0] = pseudo program name. + (*): Pass gdbsim_desc to sim_foo fns. + +Wed Mar 12 14:40:06 1997 Tom Tromey + + * config.in: Regenerated. + + * acconfig.h (START_INFERIOR_TRAPS_EXPECTED, sys_quotactl, + HAVE_HPUX_THREAD_SUPPORT): Define. + +Tue Mar 11 07:25:27 1997 Mark Alexander + + First cut at supporting simulators in gdbserver: + + * configure, configure.in: Allow gdbserver to be configured + for cross-target environments. + * gdbserver/Makefile.in: Add simulator support. + * gdbserver/configure.in: Eliminate assumption that host == target. + Simplify using gdb/configure.tgt and gdb/configure.host. + Fix other minor configuration errors. + * gdbserver/low-sparc.c: Fix compile error. + * gdbserver/remote-utils.c: Eliminate assumption that registers + and addresses are four bytes. Fix minor compile errors and warnings. + * gdbserver/server.c: Rewrite numerous instances of identical code + for starting inferior processes to call new function start_inferior. + Eliminate assumption that registers and addresses are four bytes. + * gdbserver/server.h: Add missing prototypes to eliminate compiler + warnings. + * gdbserver/low-sim.c: New file to mate gdbserver with simulators. + * config/mips/vr5000.mt: Add Vr5000 simulator support to gdbserver. + * config/i386/linux.mh: Eliminate gdbserver support as a first step + in moving such support from host to target makefile fragments. + * config/i386/linux.mt: Move gdbserver support here from linux.mh. + +Mon Mar 10 12:27:47 1997 Michael Snyder + + * symtab.h (INIT_SAL): New macro to initialize symtab_and_line, + to insure consistant initialization of unused fields to zero. + * symtab.c: replace initializations of sals with new macro INIT_SAL. + * breakpoint.c: ditto. + * infrun.c: ditto. + * infcmd.c: ditto. + * source.c: add call to INIT_SAL macro. + +Sat Mar 8 00:16:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * sparc-tdep.c (isbranch): Always handle v9 branch instructions, + they might get used on 32 bit targets as well. + +Wed Mar 5 19:34:09 1997 Bob Manson + + * remote-mips.c (mips_exit_debug): Some IDT boards don't + send the full exit string. + +Wed Mar 5 12:59:27 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200-tdep.c (mn10200_push_arguments): Handle new calling + conventions. + (mn10200_store_struct_return): Likewise. + +Tue Mar 4 10:31:02 1997 Mark Alexander + + * mips-tdep.c (mips_fetch_instruction): New function; replace + common code throughout with calls to it. + (mips_find_saved_regs): Examine MIPS16 entry instruction to determine + correct saved addresses of $s0 and $s1. + (mips_find_saved_regs, mips16_heuristic_proc_desc): Use MIPS_REGSIZE + instead of hardcoded 4. + (mips16_skip_prologue): Handle extended instructions correctly. + +Mon Mar 3 12:29:20 1997 Doug Evans + + * defs.h (LONGEST): Move #ifndef LONGEST to outside. + Try BFD_HOST_64_BIT if ! CC_HAS_LONG_LONG. + +Thu Feb 27 18:54:11 1997 Mark Alexander + + * mips-tdep.c (IS_MIPS16_ADDR, MAKE_MIPS16_ADDR, UNMAKE_MIPS16_ADDR): + New macros for testing, setting, and clearing bit 0 of addresses. + Change numerous bits of code where bit 0 was being manipulated + to use these macros. + +Thu Feb 27 14:12:41 1997 Mark Alexander + + * remote-mips.c: Put back the form feeds. + +Thu Feb 27 12:04:24 1997 Mark Alexander + + * remote-mips.c: Remove form feeds (^L) from source. + (mips_initialize): LSI PMON doesn't support 'set regsize' command. + (pmon_wait): Don't need to exit and re-enter debug mode on LSI + PMON after a continue; it causes target program misbehavior. + (mips_fetch_register): Don't fetch unsupported registers; this + cuts down on wasted serial traffic. + +Thu Feb 27 09:38:16 1997 Stu Grossman (grossman@critters.cygnus.com) + + * configure.in configure (HPUX/OSF thread support): Enable this + only when running GCC, since HP's thread header files use ANSI C + which is not supported by their default compiler. + + * configure.host (i[3456]86-*-windows): Disable long long + support for WinGDB. Add mswin to configdirs. + * configure.in configure: Move calls to configure.host and + configure.tgt to the top of configure.in to allow them to set + config variables before they are referenced. + +Tue Feb 25 20:21:52 1997 Stan Shebs + + * configure.tgt (mips*-*-lnews*): New target. + +Mon Feb 24 16:35:00 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200-tdep.c (mn10200_analyze_prologue): Don't fix fi->frame + if we're not the innermost frame. Fix minor typos. + +Sat Feb 22 03:39:50 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * stabsread.c (read_type): Fix handling of template names + with template parameters containing `::'. + + * valops.c (search_struct_field, search_struct_method): + Pass correct valaddr parameter to baseclass_offset. + Prevent gdb crashes by making sure that the virtual base pointer + from an user object still points to accessible memory. + +Tue Feb 18 13:36:34 1997 Mark Alexander + + * maint.c: Eliminate -Wall warnings by including some header files. + +Tue Feb 18 13:06:30 1997 Mark Alexander + + * remote-sim.c (init_callbacks): Undo previous change. + +Tue Feb 18 11:13:00 1997 Dawn Perchik + + * maint.c: Fix dereference of pointer. + * remote-sim.c: Fix reference of structure member "last_error". + * debugify.c: Include config.h to get ANSI definitions. + +Sat Feb 15 17:43:46 1997 Stu Grossman (grossman@critters.cygnus.com) + + * remote-vx.c (vx_attach): Remove code added by kung. It made no + sense. + +Fri Feb 14 13:00:07 1997 Ian Lance Taylor + + * main.c (print_gdb_help): Make static to match declaration. + +Thu Feb 13 18:18:18 1997 Dawn Perchik + + * remote-e7000.c, ser-e7kpc.c, serial.c: Remove // comments. + +Wed Feb 12 15:58:00 1997 Dawn Perchik + + * debugify.c, debugify.h: Make safe for non-ansi compilers. + +Wed Feb 12 15:30:00 1997 Dawn Perchik + + * defs.h: Fix prototypes for new cleanup functions. + +Wed Feb 12 15:08:47 1997 Dawn Perchik + + * debugify.c, debugify.h: Fix for general gnu use. Remove C++ + comment, add PARAMS, add license info and fix indentation. + +Wed Feb 12 14:42:47 1997 Dawn Perchik + + * debugify.c, debugify.h: New files. Provide common macros + for writing debug info to a log file or stdio. + +Wed Feb 12 02:44:39 1997 Dawn Perchik + + * c-valprint.c (c_val_print): Fix printing for arrays defined + with 0 length. + +Tue Feb 11 22:24:39 1997 Dawn Perchik + + * defs.h: Fix cntl-C to read from the Windows message queue. + Add prototypes for make_final_cleanup (and the other cleanup + routines. + * remote-e7000.c: Fix sync code to timeout if unable to sync. + Change sync code to report status while trying to sync-up + with hardware. Add debugging output and document. + * ser-e7kpc.c: Swap order of len & offset to match implementation. + Add debugging output and document. + * serial.c: Add debugging output. + * top.c: Add call to do_final_cleanups. + Remove conditionals preventing Win32 from getting SIGQUIT. + * utils.c: (*_cleanup): Modify cleanup routines to accept a cleanup + chain as a parameter. Extract this generic code from the cleanup + routines into separate funtions (*_my_cleanup). Keep old + functionality by passing "cleanup_chain" to the new funtions. + Define the cleanup chain "final_cleanup_chain" to be a cleanup + chain which will be executed only when gdb exits. Add functions + (*_final_cleanup) to match the original (*_cleanup) functions. + (pollquit, quit, notice_quit): Fix to read cntl-C from the + Windows message queue. + +Tue Feb 11 15:36:31 1997 Doug Evans + + * m32r-rom.c: #include . + #ifdef out new load support if wingdb. + * m32r/tm-m32r.h (TARGET_M32R): Define, for wingdb. + +Tue Feb 11 12:28:09 1997 Jeffrey A Law (law@cygnus.com) + + + * config/mn10200/tm-mn10200.h (STORE_STRUCT_RETURN): Fix. + * mn10200-tdep.c (mn10200_store_struct_return): New function. + + * config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Fix case when + extracting a return value from a register pair. + + * mn10200-tdep.c (mn10200_push_arguments): Stack only needs to + be two byte aligned. Round argument sizes up to two byte boundary. + Write out args in two byte hunks. + (mn10200_push_return_address): Implement. + * config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Abort for + structures > 8 bytes (temporary). + (STORE_RETURN_VALUE): Likewise. + (CALL_DUMMY): No longer undefine. + (USE_STRUCT_CONVENTION): Use for args > 8 bytes. + (REG_STRUCT_HAS_ADDR): Define. + +Mon Feb 10 18:35:55 1997 Mark Alexander + + * mips-tdep.c (non_heuristic_proc_desc): New function. + (find_proc_desc): Move non-heuristic proc search code into separate + function. + (gdb_print_insn_mips): Use non-heuristic method to find procedure + descriptor, to avoid prologue examination when disassembling. + * remote-mips.c: Add support for new "lsi" target (LSI MiniRISC + aka MicroMeteor board). + (mips_exit_debug): Prevent protocol reinitialization if an error + occurs while exiting debug mode. + +Mon Feb 10 16:11:57 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200-tdep.c: Remove lots of debugging printfs, update/improve + comments, formatting, etc. Plus other minor fixes for problems + I found during my first pass over the mn10200 port. + (mn10200_analyze_prologue): New function. + (mn10200_frame_chain, mn10200_init_extra_frame_info): Use it. + * config/mn10200/tm-mn10200.h: Lots of updates/improvements to + comments, formatting, etc. Minor fixes for problems I found during + my first pass over the mn10200 port. + (TARGET_*_BIT): Define appropriately for ints, long longs, doubles and + pointers. + (REGISTER_VIRTUAL_TYPE): Define as a long. + (EXTRACT_RETURN_VALUE): Rework to deal with long ints living + in register pairs. + (STORE_RETURN_VALUE): Similarly. + + * blockframe.c (generic_get_saved_regs): Remove unused variable + "addr". + * breakpoint.c (frame_in_dummy): Move struct breakpoint *b decl + inside #ifdef CALL_DUMMY. + (watch_command_1): Initialize target_resources_ok. + * command.c (do_setshow_command): Provide dummy initialization + for "match". + * valops.c (find_function_addr): Move function & prototype inside + #ifdef CALL_DUMMY. + (value_arg_coerce): Similarly. + (value_of_variable): Provide dummy initialization of "frame". + +Mon Feb 10 07:54:26 1997 Fred Fish + + * xcoffread.c (RECORD_MINIMAL_SYMBOL): Add NULL asection* parameter + to prim_record_minimal_symbol_and_info call that was missed in Jan 3 + change. + (scan_xcoff_symtab): Ditto. + +Sun Feb 09 09:23:26 1997 Mark Alexander + + * remote-mips.c (common_breakpoint): Prevent 64-bit addresses + from being sent to 32-bit targets by masking off upper bits. + * mips-tdep.c (heuristic_proc_start): Mask off upper 32 bits + of PC on 32-bit targets. + (mips16_heuristic_proc_desc): Recognize 'addiu s1,sp,n' as a + frame setup instruction. + (mips32_heuristic_proc_desc): Fix warning found by gcc -Wall. + (mips16_skip_prologue): Recognize 'addiu s1,sp,n' as a valid + prologue instruction. Fix warnings and bugs found by gcc -Wall. + * buildsym.c (finish_block): Improve handling of overlapping blocks; + fixes problem on MIPS16 printing function arguments. + +Sat Feb 8 01:14:43 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dwarf2read.c (dwarf2_linkage_name): New function to get + the linkage name of a die from DW_AT_MIPS_linkage_name or + DW_AT_name. + (read_func_scope, dwarf2_add_field, dwarf2_add_member_fn, + new_symbol): Use it instead of accessing DW_AT_name. + (read_partial_die): Use DW_AT_MIPS_linkage name as name of the + partial die if present. + (dwarf2_add_member_fn): Make a copy of physname on the type obstack. + +Fri Feb 7 10:06:22 1997 Jeffrey A Law (law@cygnus.com) + + * blockframe.c (generic_frame_chain_valid): If the new frame + is not INNER_THAN the old frame, then it's not valid. + +Tue Feb 04 09:04:37 1997 Mark Alexander + + * mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate. + (mips16_heuristic_proc_desc): Recognize jal(x) instruction. + +Mon Feb 03 17:57:58 1997 Mark Alexander + + * mips-tdep.c (mips16_decode_reg_save): Distinguish between + sd and sw instructions correctly. + (heuristic_proc_start): Add support for MIPS16. + (mips16_get_imm, mips16_heuristic_proc_desc, + mips32_heuristic_proc_desc): New helper functions for + heuristic_proc_desc. + (heuristic_proc_desc): Rewrite and reorganize to support MIPS16. + (mips_push_arguments): Don't align small arguments in EABI. + (mips32_skip_prologue): Attempt to shrink code size a little. + +Mon Feb 3 11:06:05 1997 Michael Snyder + + * m32r-stub.c: New -- remote protocol support for M32R cpu. + * m32r-rom.c: Several experiments with improved download time. + +Fri Jan 31 08:26:39 1997 Mark Alexander + + * mips-tdep.c (MIPS16_INSTLEN): Define. + (mips_find_saved_regs): Replace hardcoded 2's with MIPS16_INSTLEN. + (heuristic_proc_start): Recognize 'entry' pseudo-op as a start + of function on MIPS16. + (mips32_skip_prologue, mips16_skip_prologue): New helper functions + for mips_skip_prologue. + (mips_skip_prologue): Recognize both 16- and 32-bit prologues. + +Wed Jan 29 12:45:54 1997 Michael Meissner + + * config/powerpc/ppc{,le}-sim.mt (SIM): Remove the library + ../sim/common/libcommon.a. + +Tue Jan 28 15:54:13 1997 Michael Snyder + + * blockframe.c: fix a null pointer ref in generic_get_saved_register + +Tue Jan 28 15:39:50 1997 Geoffrey Noer + + * mn10200-tdep.c (mn10200_frame_chain): Get basic backtracing + working. + +Mon Jan 27 14:31:52 1997 Mark Alexander + +First set of changes for mips16: + * config/mips/tm-mips.h (MIPS16_BIG_BREAKPOINT, + MIPS16_LITTLE_BREAKPOINT, BREAKPOINT_FROM_PC): Define. + (ABOUT_TO_RETURN): Call new function mips_about_to_return. + (mips_breakpoint_from_pc, mips_about_to_return): Declare. + * mem-break.c (memory_breakpoint_from_pc): New function. + (memory_insert_breakpoint, memory_remove_breakpoint): Use + memory_breakpoint_from_pc to determine breakpoint contents and size. + * target.h (memory_breakpoint_from_pc): Declare. + * monitor.c (monitor_insert_breakpoint): Use memory_breakpoint_from_pc + to determine size of breakpoint instruction. + * mips-tdep.c (mips32_decode_reg_save, mips16_decode_reg_save): + New helper functions for mips_find_saved_regs. + (mips_find_saved_regs): Recognize mips16 prologues. + (mips_addr_bits_remove): Strip off upper 32 bits of address + when target CPU is 32 bits but CORE_ADDR is 64 bits. + (mips_step_skips_delay): No branch delay slot on mips16. + (gdb_print_insn_mips): Disassemble mips16 code. + (mips_breakpoint_from_pc, mips_about_to_return): New functions. + +Mon Jan 27 10:34:03 1997 Jeffrey A Law (law@cygnus.com) + + * tm-mn10200.h (NUM_REGS): Decrease to 12. + (REGISTER_NAMES): Elimination registers not found on the mn10200. + (PC_REGNUM, MDR_REGNUM, PSW_REGNUM): Corresponding changes. + (LIR_REGNUM, LAR_REGNUM): Delete. They don't exist on the mn10200. + +Sat Jan 25 00:07:59 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dwarf2read.c: Replace integral tag, name and form fields in + internal structure definitions with the corresponding enumeration + types from dwarf2.h. Add default cases to switches on enumerations + where appropriate. + Make quoting of string arguments in complaint messages consistent. + Check for NULL returns from DW_STRING. + (struct partial_die_info): Add sibling and has_type fields, remove + unused value field. + (DW_*): Move access macro definitions near the definition of the + attribute structure. + (struct field_info): New structure to pass information about fields + and member functions between die processing routines. + (dwarf2_build_psymtabs_hard): Set cu_header_offset. + (scan_partial_symbols): Do not enter DW_TAG_subprogram dies into + the partial symbol table if the DW_AT_*_pc attributes are missing. + Add file scope base type definitions to the partial symbol table. + Skip over child dies if the die has a sibling attribute. + (add_partial_symbol): Enter global variables with type attributes + and without location descriptors into the partial symbol table. + Store value of DW_TAG_variable dies in the partial symbol table. + Do not enter global variables into the minimal symbol table. + Add base type definitions to the partial symbol table. + (psymtab_to_symtab_1): Use dwarf2_get_pc_bounds to determine highpc. + (process_die): Move check for DW_AT_low_pc to read_func_scope. + Add a typedef symbol for base type definitions to the symbol table. + Ignore DW_TAG_inlined_subroutine tags for now. + (read_file_scope): Use dwarf2_get_pc_bounds to determine pc bounds. + (read_func_scope, read_lexical_block_scope): Use dwarf2_get_pc_bounds + to determine pc bounds, ignore dies with invalid bounds. + (dwarf2_get_pc_bounds): New routine to extract and validate the + DW_AT_*_pc attributes of a die. + (dwarf2_add_field, dwarf2_attach_fields_to_type, skip_member_fn_name, + dwarf2_add_member_fn, dwarf2_attach_fn_fields_to_type): + New functions to handle fields and member functions. + (read_structure_scope): Rewritten to use them. + (read_array_type): Renamed from dwarf_read_array_type. + Default upper array bound to describe an array with unspecified + length. + Create array types in backwards order, as dwarf2 puts out the array + dimensions from left to right. + (read_subroutine_type): Handle DW_TAG_unspecified_parameters, + DW_AT_artificial and DW_AT_prototyped. + (read_base_type): Make an unsigned type for DW_ATE_boolean. + Pass objfile to dwarf_base_type. + (read_partial_die): Use read_attribute to read in the attributes. + Handle DW_AT_sibling and DW_AT_type. + Follow references when determining DW_AT_name and DW_AT_external + attributes of the die. + Validate DW_AT_*_pc attributes. + (read_full_die): Use read_attribute to read in the attributes. + (read_attribute): New function to read an attribute described + by an abbreviated attribute. + (new_symbol): Relocate symbol value for DW_TAG_label with baseaddr. + Do not set SYMBOL_VALUE_ADDRESS for DW_TAG_subprogram, + SYMBOL_BLOCK_VALUE for the symbol will be set later by finish_block. + Change symbol class for global variables with a zero valued location + descriptor to LOC_UNRESOLVED. + Handle DW_AT_const_value attributes for DW_TAG_variable, + DW_TAG_formal_parameter and DW_TAG_enumerator. + Build a typedef symbol for DW_TAG_base_type. + (dwarf2_const_value): New routine to copy a constant value from an + attribute to a symbol. + (dwarf_base_type): Use passed in objfile, not current_objfile + when calling dwarf2_fundamental_type. + (dump_die): Use DW_* accessor macros to access values of attributes. + (decode_locdesc): Handle DW_OP_plus_uconst. + +Wed Jan 22 01:31:16 1997 Geoffrey Noer + + * mn10200-tdep.c: New file. + * config/mn10200/tm-mn10200.h: New, REGISTER_SIZE is 24 bits not 32, + SP_REGNUM and FP_REGNUM are different, also no lar or lir. + * config/mn10200/mn10200.mt: New file. + * configure.tgt: add mn10200 entry. + +Tue Jan 21 18:32:23 1997 Stu Grossman (grossman@lisa.cygnus.com) + + * configure.in configure: Check if host has libdl if doing + Solaris threads. + +Tue Jan 21 17:03:26 1997 Geoffrey Noer + + * mn10300-tdep.c: Wrote/fixed implementations of + mn10300_frame_chain, mn10300_init_extra_frame_info, + mn10300_frame_saved_pc + * config/mn10300/tm-mn10300.h: Redefine INIT_EXTRA_FRAME_INFO + and INIT_FRAME_PC macros. + +Tue Jan 21 17:01:20 1997 Stu Grossman (grossman@lisa.cygnus.com) + + * configure.in configure: Check if host has libm. Make sure we + are using gcc when using the -export-dynamic option. Fixes a + problem with building under Solaris/SunPro cc. + +Mon Jan 20 13:52:13 1997 Mark Alexander + + * config/mips/{embed,embed64,embedl,embedl64}.mt: + Link in simulator on MIPS embedded targets. + +Sat Jan 18 02:31:29 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * blockframe.c (frameless_look_for_prologue): Mark frames + with a zero PC as frameless to improve backtraces from core dumps + caused by dereferencing a NULL function pointer. + +Thu Jan 16 14:10:41 1997 Geoffrey Noer + + * config/mn10300/tm-mn10300.h: fix BREAKPOINT definition. + +Tue Jan 14 16:01:06 1997 Geoffrey Noer + + * mn10300-tdep.c: made a lot more generic, ripping out code + from copied target (no more mn10300_scan_prologue, + init_extra_frame_info, and mn10300_fix_call_dummy calls) + * config/mn10300/tm-mn10300.h: undefine INIT_EXTRA_FRAME_INFO + and INIT_FRAME_PC macros + +Thu Jan 9 11:44:40 1997 Michael Snyder + + * sparc-tdep.c (sparc_frame_find_saved_regs): Don't use + FP_REGISTER_BYTES to compute offsets into the saved frame, + since it fails for SPARC targets configured without any + FP regs. Instead, use DUMMY_STACK_REG_BUF_SIZE. + +Mon Jan 6 11:15:14 1997 Stu Grossman (grossman@critters.cygnus.com) + + * symtab.c (fixup_symbol_section): Handle NULL symbols without + crashing. + +Fri Jan 3 12:08:16 1997 Stu Grossman (grossman@critters.cygnus.com) + + * Makefile.in configure configure.in: Remove ENABLE_CLIBS, + ENABLE_OBS, and THREAD_DB_OBS. These are consolidated into LIBS + and CONFIG_OBS. + * configure configure.in: Clean up test cases around thread support. + * configure.tgt (v850-*-*): Include v850ice.o and v850.lib if + host is Windows. + * c-valprint.c ch-valprint.c cp-valprint.c eval.c expprint.c + printcmd.c valops.c value.h values.c: Add bfd_section arg to + value_at and value_at_lazy. + * coffread.c dbxread.c elfread.c mdebugread.c minsyms.c symtab.h: + Add bfd_section arg to prim_record_minimal_symbol_and_info. + * corefile.c gdbcore.h printcmd.c valops.c: Use read_memory_section + instead of read_memory. It takes a bfd_section arg. + * coffread.c dbxread.c elfread.c gdb-stabs.h objfiles.h: Remove + unnecessary cast for assignment of struct dbx_symfile_info. + Struct objfile now uses a real pointer instead of PTR for this + element. + * dbxread.c (dbx_symfile_init): Stash bfd section pointers for + text, data and bss into dbx_symfile_info. + * exec.c (xfer_memory): Handle transfers for user-specified + sections. + * findvar.c (read_var_value locate_var_value): Copy bfd section + from the symbol to the value. + * gdb-stabs.h: Add section pointers for text, data and bss + sections. + * maint.c (translate address command): Add test code for overlay + address translation. + * printcmd.c (do_examine do_one_display): Now takes a bfd section + arg. + * (print_formatted x_command): Record current section along with + current address for repeated commands. + * sparc-nat.c (fetch_inferior_registers): Change + target_xfer_memory to target_{read write}_memory to allow changes + to target_xfer_memory interface for section info. + * symmisc.c (dump_msymbols print_symbol): Print section + assocaited with symbol. + * symtab.c (fixup_symbol_section): New routine to + add section info to symbols returned by lookup_symbol. + * symtab.h (struct general_symbol_info): Add bfd section to + symbols. + * target.c target.h (target_xfer_memory): Add bfd section to + args. + * (target_read_memory_section): New routine to read data from a + specific section. + * (target_memory_bfd_section): New global variable to pass bfd + section in to targets. + * valarith.c (value_add value_addr value_array): Preserve bfd + section when computing new value. + * value.h (struct value): Add bfd section to values. + * values.c (allocate_value value_copy): Initialize/preserve bfd + section. + * (unpack_double): Clean up _MSC_VER conditionals to remove + duplicate code. + * v850ice.c: New module to support communication with NEC's + PC-based ICE. + * config/v850/tm-v850.h (REGISTER_NAMES): Replace sp, gp, fp, and + ep names with rxx names. sp and fp are renamed via a different + mechanism. + +Fri Jan 3 14:20:05 1997 Geoffrey Noer + + * mn10300-tdep.c (mn10300_push_arguments): rewrote, + also removed code elsewhere that made use of RP_REGNUM. + * config/mn10300/tm-mn10300.h: ripped out RP_REGNUM, V0_REGNUM, + ARG0_REGNUM, ARGLAST_REGNUM (all not appropriate for mn10300 + arch.), redefined SAVED_PC_AFTER_CALL, EXTRACT_RETURN_VALUE, + EXTRACT_STRUCT_VALUE_ADDRESS, STORE_RETURN_VALUE. + +For older changes see ChangeLog-96 + +Local Variables: +mode: indented-text +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/ChangeLog-98 b/gdb/ChangeLog-98 new file mode 100644 index 0000000000..bd19b49066 --- /dev/null +++ b/gdb/ChangeLog-98 @@ -0,0 +1,7122 @@ +Thu Dec 31 15:26:13 1998 Stan Shebs + + * corelow.c (core_ops): Don't initialize statically. + (init_core_ops): New function, fills in core_ops. + (_initialize_corelow): Use it. + +Thu Dec 31 16:54:30 1998 David Taylor + + The following changes were made by + Elena Zannoni + Edith Epstein + David Taylor + + * config/pa/tm-hppa.h (INSTRUCTION_NULLIFIED): Change to read + nullify instruction bit from IPSW only when we are not in a system + call. + (STRCAT_REGISTER, pa_do_strcat_registers_info): Additional + parameter -- precision. + + * Makefile.in (BUILD_TUI): To build the tui, only when configured + with --enable-tui. + (YLWRAP): Use ylwrap to avoid problems on systems w/o bison. + (gdb$(EXEEXT)): Make it dependent on BUILD_TUI. + (all-tui): Remove dependency from phony target. + (c-exp.tab.c): Use ylwrap instead of bison. + (jv-exp.tab.c): Ditto. + (f-exp.tab.c): Ditto. + (m2-exp.tab.c): Ditto. + + * configure.in (ENABLE_CFLAGS): Define and export BUILD_TUI. + + * configure: Regenerated. + + * c-typeprint.c (c_type_print_base): Get to the method name by + skipping over all the namespaces, classes and '::'. + + * infcmd.c (run_command): Only call SOLIB_RESTART if it's + defined. + (detach_command): Ditto. + + * infptrace.c (call_ptrace): Add some debugging code. + + * infrun.c (follow_inferior_fork): Only define on HP. + (wait_for_inferior): Only call SOLIB_IN_DYNAMIC_LINKER if we have + shared libraries; restore test of IN_SOLIB_DYNSYM_RESOLVE_CODE + removed by HP. + + * Makefile.in (ALLDEPFILES): Add somread.c, hp-psymtab-read.c, + hp-symtab-read.c. + (SFILES): Remove the above files + (COMMON_OBS): Remove somread.o + (SFILES): Add the tui files to this, so they get + included in etags tables. + (all-tui): New rule, which does a recursive make in the tui + subdir. + (gdb$(EXEEXT)): Add tui-all to the list of + dependencies, and add tui/libtui.a to the link list. + (tui/libtui.a): When recursing, pass down + ${FLAGS_TO_PASS}. And don't echo the make command. This is + closer to what the other recursions do. + (HFILES_NO_SRCDIR) add hpread.h. + (COMMON_OBS): Add hp-psymtab-read.o, hp-symtab-read.o + Allow the TUI code to be conditionally enabled. + (TUI_TARGET, TUI_LIBRARY): New variables, whose values are set by + the configuration script. They're set to the empty string when + the TUI isn't enabled. + (gdb$(GDBEXT)): Use those, instead of referring to tui-all and + tui/libtui.a directly. + + * Makefile.in: Avoid spurious relinking. + (gdb$(EXEEXT)): Depend on the actual tui library, not on a + fictitious target. Since the fictitious target never existed, make + would always relink. + (tui/libtui.a): Renamed from all-tui. Always recurse to make sure + the library is up to date. + (TUI_TARGET): Variable removed; there's no need for it any more. + + * Makefile.in: Look for tui include files in the tui source dir. + + * Use automake's `aclocal' program to generate aclocal.m4, to allow + us to use automake macros in configure.in with impunity. + + * acconfig.h: Add an entry for the `TUI' symbol. + + * acinclude.m4: New file, containing the code from the old + aclocal.m4. Incorporate (by reference) ../bfd/acinclude.m4, not + ../bfd/aclocal.m4, since we only want bfd's local macros. + + * aclocal.m4: Now automagically generated. Just run aclocal! + + * annotate.c (annotate_catchpoint): New function. + + * annotate.h: Taking the new includes (symtab.h and gdbtypes.h). + not taking the ansic C build fix. + (annotate_catchpoint): Declare. + + * blockframe.c (blockvector_for_pc_sect): Check that the end of + the block is >= to the pc, not just >. + + * breakpoint.c (create_temp_exception_breakpoint): #If it out -- + nothing calls it. + (bpstat_stop_status): Don't call SOLIB_HAVE_LOAD_EVENT if it's not + defined; don't call SOLIB_HAVE_UNLOAD_EVENT if it's not defined. + (bpstat_get_triggered_catchpoints): If we don't have shared + library support, then don't call SOLIB_LOADED_LIBRARY_PATHNAME nor + SOLIB_UNLOADED_LIBRARY_PATHNAME. + (watch_command_1): Don't require a run before a watch command + unless we're on HP [it's an HP OS bug, not a generic limitation] + (catch_load_command_1): Don't define if no shared libraries. + (catch_command_1): Don't claim to support fork catchpoints unless + CHILD_INSERT_FORK_CATCHPOINT is defined, don't claim to support + vfork catchpoints unless CHILD_INSERT_VFORK_CATCHPOINT is defined, + don't clain to support shared library load catchpoints if shared + libraries aren't supported, and don't claim to support exec + catchpoints unless CHILD_INSERT_EXEC_CATCHPOINT is defined + + (bpstat_do_actions): If we just set cmd to NULL, don't then try to + set it to cmd->next as we'll SEGV. + (bpstat_do_actions): Simplify significantly. It's + now almost as simple as before the merge and it no longer has the + HP bug that breakpoint commands are executed repeatedly. + + (break_at_finish_command_1): Rewrite and make sure + selected_frame points to a frame before using it. Fix string + termination error. + (break_at_finish_at_depth_command_1): Ditto. + + (can_use_hw_watchpoints): New static variable. + (read_memory_nobpt): Test for breakpoint type bp_none. + (insert_breakpoints): Test for breakpoint type bp_catch_exec; + insure have a current frame before getting the frame address. + (remove_breakpoints): Check for breakpoints of types bp_none, + bp_catch_fork, bp_catch_vfork, and bp_catch_exec. + (bpstat_stop_status): Fix updates of b->hit_count. + (bpstat_have_active_hw_watchpoints): New function. + (create_exec_event_watchpoint): New function. + (watch_command_1): Use can_use_hw_watchpoints. + (catch_fork_command_1): Change name of function to call from + target_create_catch_(v)fork_hook to create_(v)fork_even_catchpoint. + (delete_breakpoint): Test for already deleted breakpoints; add + support for bp_catch_fork, bp_catch_vfork, and bp_catch_exec + breakpoints. + (_initialize_breakpoint): Add can-use-hw-watchpoints to list of + user settable debugger variables. + + (clear_command): When there is no argument + to the clear command, delete all breakpoints that are hit at + default line. This will include a breakpoint whose line number + does not correspond to the default line, but has been set at + the default address. + + (delete_breakpoint): Don't call bpstat_clear_actions, instead + clear things explicitly; if clearing breakpoint_at, then also + clear any associated actions so that bpstat_do_actions won't try + to execute them. + (_initialize_breakpoint): Fix function name for bx command. + + (tbreak_command): Remove static from declaration. + (maintenance_info_breakpoints): Ditto. + + (reattach_breakpoints): New funct definition, used with with + hardware watchpoints + (breakpoint_1): Change format and add entries to bptypes[] + (maintenance_info_breakpoints): Function is no longer static + + (_initialize_breakpoint): Removed a comment. + (exception_catchpoints_are_fragile, + exception_support_initialized): Define. + (breakpoint_here_p): Fixed syntax error in conditional + (disable_watchpoints_before_interactive_call_start): Fixed call to + check_duplicates. Need a section parameter. + (enable_watchpoints_after_interactive_call_stop): Fixed call to + check_duplicates. Need a section parameter. + (breakpoint_re_set_one): Fixed call to check_duplicates. Need a + section parameter. + (delete_command): Fixed syntax error in conditional + (breakpoint_re_set): Fixed some typos. + + (args_for_catchpoint_enable): New type for handling exceptions. + (current_exception_event): New variable for handling exceptions. + (insert_breakpoints): Check for additional breakpoint types -- + bp_catch_throw, bp_catch_catch, call_disabled. Also, do some + additional work to handle an exception catchpoint. + (remove_breakpoint): There are additional breakpoint types to + check for: Bp_catch_throw, bp_catch_catch, call_disabled. Also do + some additional work to remove the exception catchpoints + (breakpoint_init_inferior): New input parameter. If there are + exception catchpoints delete them. + (breakpoint_here_p): There are additional breakpoint enable + settings to check for: Shlib_disabled, call_disabled + (breakpoint_thread_match): There are additional breakpoint enable + settings to check for: Call_disabled + (ep_is_catchpoint): There are additional breakpoint types to check + for: Bp_catch_throw, bp_catch_catch + (ep_is_exception_catchpoint): New function + (bpstat_find_step_resume_breakpoint): New function + (bpstat_do_actions): Introduce a local copy of the bpstat + structure. + (print_it_normal): There are additional breakpoint types to check + for: Bp_catch_throw, bp_catch_catch Changeing the control + structure a bit (adding else ifs) Add code to print out info about + exceptions. + (bpstat_stop_status): There are additional breakpoint enable + settings to check for: Call_disabled. there are additional + breakpoint types to chack for: Bp_catch_catch and bp_catch_throw. + Check to see if stopped due to an exception. Minor fixes to the + catch_errors calls. Make sure to count all encountered + breakpoints. There was something funky going on previously with + the counting. + (bpstat_what): Add cases for new breakpoint types: + bp_catch_catch, bp_catch_throw. + (bpstat_get_triggered_catchpoints): Check for new breakpoint types + : Bp_catch_catch, bp _catch_throw. + (breakpoint_1): Account for new breakpoint types. + (describe_other_breakpoints): Account for new breakpoint enable + setting (call_disabled) + (check_duplicates): Account for new breakpoint enable setting + (call_disabled) + (disable_breakpoints_in_shlibs): New function + (disable_watchpoints_before_interactive_call_start): New function + (mention): Account for new breakpoint types. + (break_command_1): Some additional checking for a valid PC. + (watch_command_1): Some dditional checking to prevent a watch + before a run command. + (ep_parse_optional_filename): Simplified for loop. + (create_exception_catchpoint): New function + (cover_target_enable_exception_callback): New function + (handle_gnu_4_16_catch_command): This used to be thcatch_command_1 + function.e + (create_temp_exception_breakpoint): New function + (catch_command_1): Differs from gdb 4.16 and gdb 4.17. Is now + calling catch_exception_command_1 using the EX_EVENT_CATCH and + EX_EVENT_THROW values as parameters. + (clear_command): Additional comments + (delete_breakpoint): Handle exceptions. Check for additional + breakpoint enable settings: Shlib_disabled, call_disabled. + (delete_command): Hp folks are claiming that we should not delete + shlib_event breakpoints + (breakpoint_re_set_one): Moved call to check_duplicates. Add new + breakpoint types to switch statement. + (breakpoint_re_set_thread): New function + (enable_command): Account for new breakpoint types. + + (insertion_state_t): New enumerated type. + (remove_breakpoint): New param in funct prototype. + (insert_breakpoints): Check for bp_catch_fork and bp_catch_vfork. + (remove_breakpoints): Changed call to remove_breakpoint. + (detach_breakpoints): New function. + (remove_breakpoint): New parameter, is. Also changed the + way b->inserted is set. + (ep_is_catchpoint): New function. + (ep_is_shlib_catchpoint): New function. + (print_it_normal): Check for bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork, bp_catch_exec. Also new code + to print out catchpoints properly. + (bpstat_stop_status): Check for bp_catch_fork, bp_catch_vfork, + and bp_catch_exec. Also, some code to check for catching a + shared library load/unload. + (bpstat_what): Added catch_shlib_event to class enumeration. + Defined new macro, shlr. Expanded the bpstat_what_main_action + table. Add cases for bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork, and bp_catch_exec. + (bpstat_get_triggered_catchpoints): New function. + (breakpoint_1): Changes to bptypes definition. Also check for + bp_catch_load, bp_catch_unload, bp_catch_fork, bp_catch_vfork, + bp_catch_exec. Similar changes to the switch statement. + (set_raw_breakpoint): Initialize new breakpoint structure fields. + dll_pathname, triggered_dll_pathname, forked_inferior_pid, + exec_pathname. + (create_solib_load_unload_event_breakpoint): New function. + (create_solib_load_event_breakpoint): New function. + (create_solib_unload_event_breakpoint): New function. + (create_fork_vfork_event_catchpoint): New function. + (create_fork_event_catchpoint): New function. + (create_vfork_event_catchpoint): New function. + (mention): New cases for bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork, bp_catch_exec. + (ep_skip_leading_whitespace): New function. + (ep_find_event_name_end): New function. + (ep_parse_optional_if_clause): New function. + (ep_parse_optional_filename): New function. + (catch_fork_kind): New enumerated type. + (catch_fork_command_1): New function. + (catch_exec_command_1): New function. + (catch_load_command_1): New function. + (catch_unload_command_1): New function. + (catch_throw_command_1): New function. + (catch_command_1): Now calls catch_throw_command_1. + (tcatch_command): New function. + (delete_breakpoint): Changed call to remove_breakpoint. + Also free the new fields in the breakpoint structure. + (breakpoint_re_set_one): Handle bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork, bp_catch_exec. + (disable_command): Handle bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork, bp_catch_exec. + (enable_command): Handle bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork, bp_catch_exec. + (_initialize_breakpoint): Alter add_com call for catchpoints, + add add_com call for watchpoints. + + * breakpoint.h (enum bptype): New entries bp_catch_catch, + bp_catch_throw, and bp_none, bp_catch_load, bp_catch_unload, + bp_catch_fork, bp_catch_vfork,bp_catch_exec. Add declarations for + new functions bpstat_have_active_hw_watchpoints and + create_exec_event_catchpoint. + (tbreak_command): Add prototype. + (update_breakpoints_after_exec): Add prototype; update comments. + (reattach_breakpoints): New funct prototype declaration. + (enable): New enumerated value call_disabled. + (bpstat_find_step_resume_breakpoint): New funct decl. + (inf_context): New enumerated type. + (breakpoint_re_set_thread): New funct decl. + (breakpoint_init_inferior): New parameter. + (disable_watchpoints_before_interactive_call_start): New funct decl. + (enable_watchpoints_after_interactive_call_stop): New funct decl. + (disable_breakpoints_in_shlibs): New funct decl. + (struct breakpoint): New fields, dll_pathname,triggered_dll_pathname, + forked_inferior_pid,exec_pathname BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK. + (bpstat_get_triggered_catchpoints): New function. + (detach_breakpoints): New function. + (create_solib_load_event_breakpoint): New function. + (create_solib_unload_event_breakpoint) New function. + (create_fork_event_catchpoint): New function. + (create_vfork_event_catchpoint): New function. + (ep_is_catchpoint): New function. + (ep_is_shlib_catchpoint) New function. + (enum bpstat_what_main_action): New entry. + + * buildsym.c (finish_block): Get rid of processing_hp_compilation; + handle LOC_INDIRECT case. Set the BLOCK_GCC_COMPILED to the right + compiler. + (push_context): Add symbols for parameters to the context_stack. + (merge_symbol_lists): New function. Merges two symbol lists. + (struct context_stack): Add new field param. + + (processing_hp_compilation): New external var. + + * c-exp.y: Use external flag hp_som_som_object_present to decide + whether code was compiled by HP's compilers. Add two new C++ + tokens for true and false. + (yylex): Check for template name is done differently for the + HP/aCC compiler case; change some of the template processing code + for handling HP aCC templates. + + * c-lang.c (c_create_fundamental_type): Added case to handle + template args. Handle FT_BOOLEAN type. Set no sign flag for + FT_CHAR. + (cplus_builtin_types): New structure for c++ builtin types. + (cplus_language_defn): Use cplus_builtin_types instead of + c_builtin_types. + + * c-typeprint.c (c_type_print_base): Don't print 'privete' label + for a class if all members are private, similarly don't print + 'public' for a struct. Add support for sized enums (HP/aCC). get + rid of the 'static' keyword printed by the demangler for member + function, when printing the type of a class. 'static' will be + added by this function. If the demangled name is null, and the + method is not stubbed, get the signature by looking at the + information stored in the symbol structure. Remove printing of + 'const' and 'volatile' keywords for methods. This is now taken + care as part of the demangled member names. + (cp_type_print_method_args): New function. To print a C++ method + arguments and name to the output stream. + + (c_type_print_cv_qualifier): New function. Print out "const" and + "volatile" attributes. + (c_type_print_varspec_prefix): Print const or volatile qualifiers. + (c_type_print_args): Print 'void' for c++. + (c_type_print_varspec_suffix): Print 'void' for a no argument + function. + (c_type_print_base): Print const or volatile qualifiers. Do not + print 'unnamed union' if HP aCC compiler used. Distinguish + between struct and class based on the DECLARED_TYPE. Handle + HP/aCC compiler case for not printing vtable. Add Template + support. + + (cp_type_print_derivation_info): Print out 'protected' when + appropriate. This applies only to HP's compilers, not gcc. + + (c_val_print): Added parameter embedded_offset. Add + embedded_offset to valaddr in function calls; fix calls to + val_print and cp_print_value_fields. process TYPE_CODE_METHOD as + well. moved call to check_typedef out of conditional. added + embedded offset param to val_print call. + + (c_value_print): Add new parameter to call to val_print. + handle pointer to class case. Attempt to + determine the real type of the object to be printed. + ensure that const char *, const unsigned char * + come out without the type but the volatile variants + and the signed variants don't. + + * coff-solib.c (coff_solib_add): Add parameters to call + to symbol_file_add. + + * coff-solib.h: (Solib_REMOVE_INFERIOR_HOOK): New macro. defined + to 0. functionality not implemented for coff. + (SOLIB_CREATE_CATCH_LOAD_HOOK): New macro, generate error message + for coff. + (SOLIB_CREATE_CATCH_UNLOAD_HOOK): Ditto. + (SOLIB_HAVE_LOAD_EVENT): Ditto. + (SOLIB_LOADED_LIBRARY_PATHNAME): Ditto. + (SOLIB_HAVE_UNLOAD_EVENT): Ditto. + (SOLIB_UNLOADED_LIBRARY_PATHNAME): Ditto. + (SOLIB_IN_DYNAMIC_LINKER): Ditto. + (SOLIB_RESTART): Ditto. + + * command.c (find_cmd): New function. (lookup_cmd_1): Call it, + change parsing if tui_version or xdb_commands is set. + (_initialize_command): Install new alias if xdb_commands is set. + + * complaints.h: Add ifdef...endif pair at beginning and end of file. + + * config.in, configure: Regenerated. + + * config/pa/hppabsd.mh (NATDEPFILES): Added new files + hp-psymtab-read.o and hp-symtab-read.o. + * config/pa/hppahpux.mh (NATDEPFILES): Ditto. + + * config/pa/hppahpux.mh (TERMCAP): Use -lHcurses. + * config/pa/hppaosf.mh (NATDEPFILES): Ditto. + + * config/pa/hpux1020.mh (TERMCAP): Use -lHcurses. + (MH_CFLAGS): New flag, -D__HP_CURSES, this define + is used by HP's linker to find the correct curses library. + + * config/pa/hpux1020.mh: New file. + + * config/pa/hpux1020.mt: New file. + + * config/pa/hpux1100.mh (TERMCAP): Link against -lcurses, not + -lHcurses. The latter does not contain mvwaddstr, wscrl, or + wstbwlmkfzz. + + * config/pa/hpux1100.mh (TERMCAP): Use -lHcurses. + (MH_CFLAGS): New flag, -D__HP_CURSES, this define + is used by HP's linker to find the correct curses library. + + * config/pa/hpux1100.mh (TERMCAP): When hosting on hpux 11.00, use + -lHcurses rather than -lcurses. + + * config/pa/hpux1100.mh: New file. + + * config/pa/hpux1100.mt: New file. + + * config/pa/nm-hppah.h (CHILD_HAS_SYSCALL_EVENT): New macro + (CHILD_THREAD_ALIVE): New macro + (STOPPED_BY_WATCHPOINT): Add a condition to the macro, + ! stepped_after_stopped_by_watchpoint + (TARGET_ENABLE_HW_WATCHPOINTS): New macro + (hppa_enable_hw_watchpoints): New funct decl + (TARGET_DISABLE_HW_WATCHPOINTS): New macro + ( hppa_disable_hw_watchpoints): New funct decl + these are for HP's implementation of fast + watchpoints (via page protection). + (target_pid_to_str): New macro, calls hppa_pid_to_str + (target_tid_to_str): New macro, calls hppa_tid_to_str + + * config/pa/nm-hppah.h (CHILD_POST_WAIT): Delete; + (CHILD_CREATE_CATCH_FORK_HOOK): Replace with + CHILD_INSERT_FORK_CATCHPOINT and CHILD_REMOVE_FORK_CATCHPOINT. + (CHILD_CREATE_CATCH_VFORK_HOOK): Replace with + CHILD_INSERT_VFORK_CATCHPOINT and CHILD_REMOVE_VFORK_CATCHPOINT. + (CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC, + CHILD_INSERT_EXEC_CATCHPOINT, CHILD_REMOVE_EXEC_CATCHPOINT, + CHILD_HAS_EXECD, CHILD_REPORTED_EXEC_EVENTS_PER_EXEC_CALL, + CHILD_POST_ATTACH, TARGET_HAS_HARDWARE_WATCHPOINTS, + TARGET_CAN_USE_HARDWARE_WATCHPOINT, + TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT, + TARGET_RANGE_PROFITABLE_FOR_HW_WATCHPOINT, STOPPED_BY_WATCHPOINT, + HAVE_NONSTEPPABLE_WATCHPOINT, target_insert_watchpoint, + target_remote_watchpoint): New macros. + + * config/pa/nm-hppah.h (CHILD_XFER_MEMORY): Reinsert accidentally + deleted define. + + * config/pa/nm-hppah.h: + (PREPARE_TO_PROCEED): Defined macro to use + hppa_prepare_to_proceed. + (hppa_pid_to_str): Extern decl. + (hppa_tid_to_str): Extern decl. + (target_pid_or_tid_to_str): New macro definition. + (hppa_pid_or_tid_to_str): Extern decl. + (ENSURE_VFORKING_PARENT_REMAINS_STOPPED): New macro - for + handling events caused by a call to vfork. + (hppa_ensure_vforking_parent_remains_stopped): Extern decl. + (RESUME_EXECD_VFORKING_CHILD_TO_GET_PARENT_VFORK): New macro - + for handling events caused by a call to vfork. + (hppa_resume_execd_vforking_child_to_get_parent_vfork): Extern decl. + + * config/pa/nm-hppah.h: Fix PREPARE_TO_PROCEED macro. + + * config/pa/nm-hppah.h: Fix for gcc compile on HPUX, change + PT_RDUAREA to PT_RUAREA. + + * config/pa/nm-hppah.h: Introduced an HPUXHPPA define. + A bit of a hack so that I can ifdef some code that + only works for the HP wildebeest debugger. + + * config/pa/nm-hppah.h: Lots of new CHILD_ defines; + process_event_kind enum. + + * config/pa/tm-hppa.h (BREAKPOINT32): New define. + (CALL_DUMMY_HAS_COMPLETED): New define. + + * config/pa/tm-hppa.h (STACK_ALIGN): New macro. + (NO_EXTRA_ALIGNMENT_NEEDED): New macro. + (PC_REQUIRES_RUN_BEFORE_USE): New macro. + (REGISTER_NAMES): Formatting in file changed. + (CR27_REGNUM): Base register for thread local storage. + (USE_STRUCT_CONVENTION): New macro used to decide whether + a function returning a value of type type will + put it on the stack or into registers (based on the + PA risc calling conventions). + (EXTRACT_RETURN_VALUE): Fixed calculation for extracting return value. + (VALUE_RETURNED_FROM_STACK): New macro. + (TARGET_READ_PC): Declared the function used in the definition. + (SKIP_TRAMPOLINE_CODE): Declared the function used in the definition. + (TARGET_WRITE_PC): Declared the function used in the definition. + (TARGET_READ_FP): Declared the function used in the definition. + + * config/pa/tm-hppa.h (STRCAT_REGISTER): Define macro for + future use. + (pa_do_strcat_registers_info): Moved function decl from + defs.h to this HPUX specific .h file. + + * config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Type_LENGTH returns + bytes, not bits; fix off by 8 error. + + * config/pa/tm-hppa.h: + New comment for obj_unwind_info definition + New typedef, obj_private_struct + + * config/pa/tm-hppa.h: Delete most target_ macros -- use default + versions instead; remove extraneous comma from proc_wait macro. + + * config/pa/tm-hppa.h: Get rid of macro HP_COMPILED_TARGET. + + * config/pa/tm-hppa.h: Removed redefinitions of + USE_STRUCT_CONVENTION and STACK_ALIGN macros. + + * config/pa/tm-hppa.h: Some new definitions + New macros: Arg0_REGNUM, ARG1_REGNUM, ARG2_REGNUM, ARG3_REGNUM. + target_pid_to_exec_file, target_acknowledge_forked_child, + target_create_catch_fork_hook, target_create_catch_vfork_hook, + target_has_forked, target_has_vforked, require_attach, + require_detach, proc_wait + New funct decls: Hppa_pid_to_exec_file, + hppa_acknowledge_forked_child, hppa_create_catch_fork_hook, + hppa_create_catch_vfork_hook, hppa_target_has_forked, + hppa_target_has_vforked, hppa_require_attach, + hppa_require_detach, process_wait + (unwind_table_entry): Added comments to describe struct fields. + + * config/pa/tm-hppah.h (somsolib.h): Include it. + + * config/pa/tm-hppah.h: + (CHILD_ENABLE_EXCEPTION_CALLBACK): New define + (CHILD_GET_CURRENT_EXCEPTION_EVENT): New define + + * configure.host (hppa-*-hpux10.20, hppa-*-hpux11.0*): New configs. + + * configure.in (AC_CHECK_HEADERS): Add check for term.h. + + * configure.in: Add an --enable-tui argument. + + * configure.in: Construct tui/Makefile from tui/Makefile.in. + + * configure.in: Use AM_PROG_CC_STDC. If we have the GUI, then we + need this to process libgui.h. + + * convex-tdep.c (decout): Change FILE to GDB_FILE. + + * corefile.c: Include objfiles.h, symfile.h. + (core_file_command): Attempt to determine the name of the symbol + file from the core file. + (read_memory_string): New function. + + * corefile.c (core_file_command): Temporary hack to make non-hpux + work. For, non-hpux, t->to_core_file_to_sym_file does not have a + reasonable value. No target_ops vector on the stack gives it a + non-zero value. fix later. + + * corelow.c (core_file_to_sym_file): Added new local variable, + failing command, and do some explicit type castings. + (core_ops): Add three new fields: to_has_syscall_event, + to_enable_exception_callback, to_get_current_exception_event. + Necessary since we still have oldstyle initialization in + this file + + * corelow.c: Include unistd.h + (core_file_to_sym_file): New function + (core_file_thread_alive): New function + (core_ops): Added new target ops vector fields. see below. And + yes we definitiely need to initialize them here, as long as + we're using static initialization. + + * cxux-nat.c (add_shared_symbol_files): Additonal params for calls + to symbol_file_add. + + * defs.h (gdb_file_isatty): New function decl. + + * defs.h (GDB_FILE): If TUI is defined, define a structure rather + than making this an alias for FILE. + (gdb_stdout, gdb_stderr): If TUI is defined, then define these + as pointers to variables of type GDB_FILE rather than making them + be aliases for stdout and stderr. + + * defs.h (TUIDO): Add definition conditionalized on definition + (or lack thereof) of TUI. + + * defs.h (command_class): Add two additional values. + (precision_type): New enum. + + * defs.h (gdb_fclose): Add declaration. + + * defs.h (store_address): Change prototype to match function. + + * defs.h (tui_version, xdb_commands, dbx_commands): Add decl's. + + * defs.h (gdb_file_deallocate): New function declaration + + * defs.h: + (streamtype): New enumerated type to distinguish between + output to a FILE and output to a buffer. + (tui_stream): New struct type, named GDB_FILE. Contains, + streamtype, FILE, buffer, and bufferlength fields. + (gdb_stdout): Of type GDB_FILE, will pass this around gdb + rather than stdout. + (gdb_stderr): Of type GDB_FILE, will pass this around gdb + rather than stderr. + (fputs_unfiltered_hook): Change stream parameter from FILE to + GDB_FILE + (flush_hook): Change stream parameter from FILE to GDB_FILE + (gdb_fclose): Fix declaration for gdb_fclose; parameter is now of + type GDB_FILE ** + (gdb_file_adjust_strbuf): New function declaration. function lives in + utils.c. + (gdb_file_init_astring): New function declaration. function lives + in utils.c + (gdb_file_get_strbuf): New function declaration. function lives + in utils.c + + * defs.h: Additional include files included when TUI is defined. + + * defs.h: Funct decl source_full_path_of. + + * demangle.c: Add HP_DEMANGLING_STYLE_STRING. + + * demangle.c: Added new demangling style, EDG_DEMANGLING_STYLE_STRING, + to the demanglers structure. This is for support of + Kuck & Assoc.'s changes for demangling. + + * eval.c (evaluate_subexp_standard): C++ member function changes. + + * eval.c (evaluate_subexp_standard): Verify TYPE_TARGET_TYPE is + non NULL before dereferencing it. + + * eval.c (evaluate_subexp_standard): With HP/aCC compiler it is not possible + to perform inferior calls via function pointers. + Resolve calls to overloaded functions using find_overload_match. + We cannot handle HP/aCC pointers to member functions. + Deal with HP/aCC pointers to members in various kind of expressions. + + * f-lang.c (f_printchar): Change FILE to GDB_FILE. + (f_printstr): Ditto. + (emit_char): Ditto. + + * f-lang.c (f_printstr): Change stdout to gdb_stdout. + + * f-typeprint.c (f_print_type): Change FILE to GDB_FILE. + (f_type_print_varspec_prefix): Ditto. + (f_type_print_args): Ditto. + (f_type_print_varspec_suffix): Ditto. + (print_equivalent_f77_float_type): Ditto. + (f_type_print_base): Ditto. + + * findvar.c (): Hp snapshot 3 changes. (extract_address): Coerce + return value from extract_unsigned_integer to CORE_ADDR. + (store_address): Change val from CORE_ADDR to LONGEST; changes to + support machines where CORE_ADDR and LONGEST are different sizes. + (get_saved_register): Coerce arg to store_address to LONGEST. + (read_relative_register_raw_bytes): Cast last arg to + store_address to LONGEST. (read_register): Cast return from + extract_address to a CORE_ADDR. (write_register_pid): Change val + from LONGEST to CORE_ADDR. (read_pc_pid): Save and restore + inferior_pid if necessary. (write_pc_pid): Ditto. + (read_var_value): Cast arg to store_address. + + * findvar.c (read_relative_register_raw_bytes_for_frame): New + function. + (read_relative_register_raw_bytes): Call it. + + * findvar.c (symbol_read_needs_frame): Handle LOC_THREAD_LOCAL_STATIC and + LOC_INDIRECT. + + * fork-child.c (fork_inferior): Chenge fifth parameter to be a + function returning void. + + * fork-child.c (fork_inferior): Delete unused variable f. + + * fork-child.c: + (Startup_WITH_SHELL): New macro -- interim fix for a bug + (breakup_args): New function -- breaks up an argument string into + an argument suitable for passing into execvp(). + (fork_inferior): Handling problems with starting up gdb with a shell. + -- again, this appears to be an interim fix. + + * fork-child.c: + (fork_inferior): Added a comment + (clone_and_follow_inferior): New function. + (startup_inferior): Minor formatting changes. + + * fork-child.c: + (fork_inferior): Hp change is problematic. The -f option has + different meanings for different shells. It is particularly + inappropriate for bourne shells. + + * fork-child.c: + (fork_inferior): Added new parameter, pre_trace_fun. + pre_trace_fun is a function pointer. For some targets, + like HPUX, this function gets called to prepare for forking + a child. + + * fork-child.c: + (fork_inferior): Fixed call to init_trace_fun + + * fork-child.c: + Moved definition of STARTUP_WITH_SHELL to inferior.h + Added a DEBUGGING macro. Currently set to 0. May remove + later. + breakup_args: Add DEBUGGING ifdefs. more sophisticated + parsing to break up args. + (fork_inferior): Rename kshell variable to shell. new local + variable, tryname. Make use of STARTUP_WITH_SHELL macro. + More error processing if starting up with a shell. + (startup_inferior): Distinguish between starting up with a shell + and not doing so. + + * gdbthread.h: + Declarations for load_infrun_state and save_infrun_state take + an additional parameter. + + * gdbthread.h: Note that sometime between gdb 4.16 and 4.17, + thread.h was renamed gdbthread.h + (load_infrun_state): Additional parameters + (store_infrun_state): Additional parameters + + * gdbthread.h: Include breakpoint.h + + * hp-psymtab-read.c (QUICK_LOOK_UP): Redefine to be 0. + (hpread_build_psymtabs): Deal with enums. + (hpread_start_psymtab): Include section offset. + (hpread_end_psymtab): Take care of offset. + + * hp-psymtab-read.c (TRUE): Define. + (FALSE): Define. + (file_exists): New function. Checks for existance of file. + (hpread_pxdb_needed): Rewrite. + (hpread_quick_traverse): Use correct demangling style. + Handle F77 case. + (hpread_get_header): Rewrite. + (hpread_get_textlow): Add support for DOC_FUNCTION. + (hpread_build_psymtabs): Make sure we do the right thing + for pxdb and F77. + + * hp-psymtab-read.c (hpread_pxdb_check): Change parenthesis positions. + + * hp-psymtab-read.c (hpread_quick_traverse): Compare CORE_ADDR + variable end_addr to 0 instaed of NULL to get rif of gcc warning. + + * hp-psymtab-read.c: + (Hpread_get_textlow): Added param to function + Defined convennience macros and some datatypes and variables for + processing the quick lookup-tables. Looks like the code existed + before, but has been munged. + (hpread_pxdb_needed): Major rearrangements of code. Additional local + variables. Also, more extensive checking for various scenarios: + debug info for optimized code vs. unoptimized code, pxdb has been + run vs. pxdb has not been run. + (VALID_FILE): New macro + (VALID_MODULE): New macro + (VALID_PROC): New macro + (VALID_CLASS): New macro + (FILE_START): New macro + (MODULE_START): New macro + (PROC_START): New macro + (FILE_END): New macro + (MODULE_END): New macro + (PROC_END): New macro + (FILE_ISYM): New macro + (MODULE_ISYM): New macro + (PROC_ISYM): New macro + (VALID_CURR_FILE): New macro + (VALID_CURR_MODULE): New macro + (VALID_CURR_PROC): New macro + (VALID_CURR_CLASS): New macro + (CURR_FILE_START): New macro + (CURR_MODULE_START): New macro + (CURR_PROC_END): New macro + (CURR_FILE_ISYM): New macro + (CURR_MODULE_ISYM): New macro + (CURR_PROC_ISYM): New macro + (TELL_OBJFILE): New macro + (pst_syms_struct): New typedef to keep track of the start/end symbol + table (LNTT) indices of psymtabs created so far. + (pst_syms_count): New variable + (pst_syms_size): New variable + (told_objfile): New variable + (init_pst_syms): New function. sets up psymtab symbol index stuff. + (clear_pst_syms): New function. clean up psymtab symbol index stuff. + (record_pst_syms): New function. add info about newest psymtab to symbol + index table. + (find_next_pst_start): New function. Find a suitable symbol table index. + (find_next_file_isym): New function + (find_next_proc_isym): New function + (find_next_module_isym): New function + (scan_procs): New function. Scan and record partial symbols for all + functions starting from specified index and in a specified code range. + (hpread_quick_traverse: Major rearrangement of code. The function + now uses all the nifty macros. There are some new local variables. + Check for EDG_DEMANGLING style. ifdef out some code for handling F77. + Previously, the function looped over all the modules in the table. + Now, the function loops over all the files, modules, and procedures. + With HP aCC and CTTI, it is possible for a compiled object to have a + file and no module. + (hpread_build_psymtabs): Added a section of code ifdefed by + QUICK_LOOK_UP. It check to see whether or not there are any globals + in the executable. Fix number of params to hpread_start_psymtab call. + Some changes to the way DNTT_TYPE_MODULE is handled. + (hpread_get_textlow): Change in signature, minor code changes. The + function finds the low address associated with a specified symbol. + In looking for the address for the symbol avoid going of the end of + the LNTT file. + + * hp-psymtab-read.c: Change TRUE to 1 and FALSE to 0. Do some + reformatting. + + * hp-psymtab-read.c: Include demangle.h + (trans_lang): New function to let gdb know the correct language. + (hpread_quick_traverse): Use ARM style demangling. + Demangle procedures names. + Use gdb language names instead of hp language names. + Add symbol to list using its demangled name. + + * hp-psymtab-read.c: New file. + (hpread_call_pxdb): New function. Call PXDB to process our file. + (hpread_pxdb_check): New function. Return TRUE if the file needs + pre-processing by PXDB and we have thus called PXDB to do this + processing and the file needs to be re-loaded. + (hpread_quick_traverse): New function. Traverse the quick look-up + tables, building a set of psymtabs. + (hpread_get_header): New function. Get appropriate header from obj + file, based on pxdb type + (hpread_symfile_init): No change from hpread.c + (hpread_build_psymtabs): If there are quick lookup tables, read those, + then scan the global section LNTT. Otherwise, just scan the whole LNTT. + Changed: Add a global function entry to the global partial symbol list. + Handle end of symbols, for QLT case. + In case of TAGDEF, if it is a class or a template, add the name to the + var_namespace, so that it is known as a type by gdb. + In case of CONSTANT, and it is global, add it to the globals. + (hpread_symfile_finish): No change from hpread.c + (hpread_get_lntt): Make it not static + (hpread_get_gntt): No change from hpread.c + (hpread_get_slt): Make it not static + (hpread_get_textlow): No change from hpread.c + (hpread_start_psymtab): No change from hpread.c + (hpread_end_psymtab): No change from hpread.c + + * hp-symtab-read.c (hpread_get_scope_start): Renamed. It was + hpread_get_depth. + (hpread_type_translate): Distinguish between signed and unsigned char + types. + (hpread_psymtab_to_symtab): Set flag for hp compilation. + (hpread_read_function_type): Append symbols for parameters to local + list as well as to the global list. Get the parameters types from the + local list instead of the global list. + (hpread_read_struct_type): Add new field num_fn_fields to next_fn_field + structure. Rewrite handling of templates + (hpread_type_lookup): Change handling of dntt_type_modifier. + (hpread_process_one_debug_symbol): Call hpread_get_scope_start instea + of hpread_get_depth. Handle enum as well. + (hpread_get_scope_depth): New function. Get nesting depth for a + DNTT entry. + + * hp-symtab-read.c (hpread_psymtab_to_symtab): Set + processing_gcc_compilation to 0. + + * hp-symtab-read.c (hpread_psymtab_to_symtab_1): Change stdout to + gdb_stdout; change fflush to gdb_flush. + (hpread_psymtab_to_symtab): Change fflush to gdb_flush. + + * hp-symtab-read.c (hpread_read_enum_type): Declare variable. + (hpread_read_struct_type): Eliminate references + to 'args' member of fn_field. + + * hp-symtab-read.c (hpread_read_struct_type): A static member + is now indicated by the bitsize field, not the bitpos. + Initialize physname to empty. + (fix_static_member_physnames): Use new macros to deal with + physnames. + + * hp-symtab-read.c (hpread_read_struct_type): Change references + to bitpos member of struct field to use the FIELD_BITPOS macro. + + * hp-symtab-read.c (hpread_read_struct_type): Comment out reference to + obsolete field fn_field.args. + Add struct complaint definitions for complaints. + (hpread_read_struct_type): Change call to complain. + (hpread_read_array_type): Change call to complain. + (hpread_type_lookup): Change call to complain. + (hpread_process_one_debug_symbol): Change calls to complain. + (hpread_type_translate): Change calls to complain. + + * hp-symtab-read.c (hpread_read_struct_type): Make sure bitvector + has been allocated before calling has_vtable. + + * hp-symtab-read.c (hpread_read_struct_type): Revert change, + just check for vtable without checking for bitvectors too. + + * hp-symtab-read.c: + (Hpread_expand_symtab): Change name of local variable from + at_end_of_module to at_module_boundary. + Also, if demangling style is already EDG, do not reset it + to the HP demangling style. + Change at_end_of_module param to hpread_process_one_debug_symbol + call to at_module_boundary. + No longer break out of loop when reach end of module. With CTTI, + the compiler can generate function symbols which are not in + any module. Typically they show up after the end of one + module and before the start of the next module. + (hpread_read_struct_type): Check that the debug info for + a TEMPLATE_ARG is correct. + (hpread_process_one_debug_symbol): Change name of at_end_of_module_p + param to at_module_boundary_p. + Also set *at_module_boundary_p = -1 if missing a module end and set + it to 1 when finished expanding the debug info. + Handle TLS variable. + + * hp-symtab-read.c: Include defs.h, symtab.h, gdbtypes.h, complaints.h. + (fixup_class): New static variable. + (fixup_method): New static variable. + (hpread_get_location): Rewrite. + (hpread_has_name): Add cases for DNTT_TYPE_DOC_FUNCTION and + DNTT_TYPE_DOC_MEMFUNC + (hpread_expand_symtab): Use HP demangling style. + Set hp_som_som_object_present to 1. + (hpread_type_translate): Error out if not immediate. Issue warning + if there is an unhandled type code. + (error_in_hpread_type_translate_complaint): Remove this structure. + (hpread_read_enum_type): Don't assume size of enum is always 4 bytes. + (hpread_read_function_type): Add new parameter to indicate a new block. + Do not add the parameters to the symbol list. + If the type was read in earlier, do not modify the type structure. + If we are creating a new block, set the local symbol list to be the + param list. + Need to mark this type as preprocessed. + (hpread_read_doc_function_type): New function. Read and internalize + a native DOC function debug symbol. + (hpread_read_struct_type): A method can be of type doc_function and + doc_memfunc too. + Handle case in which a method is read before its class. Deal with + incomplete method types. + Handle cases in which HP/aCC compiler creates operator names w/o + the 'operator' keyword. Rewrite the loop over the fileds. + (fix_static_member_physnames): New function. Adjust the physnames for + each static member. + (fixup_class_method_type): New function. Fix-up the type structure for a + class. + (hpread_read_array_type): Change complaint to warning. + (hpread_type_lookup): Add case for DNTT_TYPE_DOC_FUNCTION. + For structures/classes set static member to point to strings with full + names. + Change calls to hpread_read_function_type to pass extra parameter. + (hpread_record_lines): Handle case for SLT_NORMAL_OFFSET. + (class_of): New function. Given a function "f" which is a member of a class, + find the classname that it is a member of. + (hpread_process_one_debug_symbol): Deal with possible alias field from the + som record for the Function or Entry type. + Do the demangling ourselves if the gdb demangler failed. + Add support for DOC functions. + For function types, add parameters to local list. + (hpread_get_scope_depth): Make this function a no-op. + (hpread_adjust_bitoffsets): New function. Adjust the bitoffsets for all + fields of an anonymous union. + (hpread_get_next_skip_over_anon_unions): New function. Skip over anonymous + unions. + + * hp-symtab-read.c: Include demangle.h + (hpread_expand_symtab): Ensure we are using ARM-style demangling. + (hpread_process_one_debug_symbol): Set the mangled and demangled + names for functions. + Record the class name to generate the demangled names of member + functions. + + * hp-symtab-read.c: New file. + (hpread_get_depth): No change from hpread.c + (hpread_get_line): No change from hpread.c + (hpread_get_location): No change from hpread.c + (hpread_has_name): Make it not static. Return 1 for DNTT_TYPE_BLOCKDATA + and DNTT_TYPE_MEMFUNC. Return 0 for CLASS_SCOPE, REFERENCE,PTRMEM, + PTRMEMFUNC, CLASS, GENFIELD, VFUNC, MEMACCESS, INHERITANCE, + FRIEND_CLASS, FRIEND_FUNC, MODIFIER, OBJECT_ID, TEMPLATE, TEMPLATE_ARG, + FUNC_TEMPLATE, LINK. + (hpread_psymtab_to_symtab_1): No changes from hpread.c + (hpread_psymtab_to_symtab): Make it a static function + (hpread_expand_symtab): Modified + (hpread_type_translate): If not typep.dntti.immediate do not abort, + but complain and return. Same for default action. Handle more HP_TYPEs. + (hpread_lookup_type): Initially allocate a correct-size type-vector. + (hpread_alloc_type): Reset type_addr only if a type was allocated. + (hpread_read_enum_type): If this has already a type associated, return. + (hpread_read_function_type): Do different things depending on whether + function is a MEMFUNC, a TEMPLATE, a FUNCTION som record. + Do not use the LOC_REGPARM_ADDR symbol class. + (hpread_read_struct_type): Handle classes and templates too. Major + rewrite. + (hpread_get_nth_template_arg): New function. + (hpread_read_templ_arg_type): New function. + (hpread_read_set_type): No change from hpread.c + (hpread_read_array_type): Modified + (hpread_read_subrange_type): Add handling of more DNTT entries. + added support for templates, classes, references, virtual functions. + (hpread_type_lookup): Handle DNNT_TYPE_MODULE. + (hpread_record_lines): No changes from hpread.c + (hpread_process_one_debug_symbol): Handle WITH, COMMON, + CLASS_SCOPE. Expand TAGDEF case to handle classes and templates. + + * hppa-tdep.c (pa_do_strcat_registers_info): Has a new parameter, + precision, which is passed into the call to pa_strcat_fp_reg to + indicate whether to display the floating point registers using + single or double preceision. + (pa_strcat_registers): Introduce local variable, precision, and + pass it into call to pa_strcat_fp_reg. + (pa_strcat_fp_reg): Modified function. New parameter, precision, + used by function to decide whether to use single or double + precision. Also added the code to put a double precision value + into a buffer. + + * hppa-tdep.c: Add'l includes , + , declare pa_register_look_aside, define is_pa_2. + (rp_saved): Check for where to read the return pointer from. + (pa_do_registers_info): Handle is_pa_2. (pa_register_look_aside): + new function. (pa_print_registers): Handle is_pa_2. + (in_solib_call_trampoline): Handle a compiler/linker error. + (skip_trampoline_code): Changes to some masks used in examining + instructions. (inst_saves_fr): Test for FSTWS instruction. + (skip_prologue): Renamed to skip_prologue_hard_way. + (after_prologue): New function. (skip_prologue): New function. + + * hppa-tdep.c (after_prologue): If f is NULL, don't dereference + it. + + * hppa-tdep.c (after_prologue): If no debug info, return zero + telling caller that we need to find the end of the prologue via + the hard way (instruction examination). + + * hppa-tdep.c (find_unwind_entry): Avoid dereferencing a null + pointer. + + * hppa-tdep.c (hppa_pid_to_exec_file): Deleted -- no longer used. + + * hppa-tdep.c (hppa_prepare_to_proceeed): Add prototype. + (read_unwind_info): Purecov comments, bug fixes. + (find_unwind_entry): Purecov comments, bug fixes. + (find_stub_with_shl_get): Purecov comments. + (frame_chain): Additional parens. + (hppa_push_arguments): Changes to commented out version of routine. + (hppa_fix_call_dummy): Purecov comments, fix location of end.o. + (in_solib_call_trampoline): Purecov comments. + (in_solib_return_trampoline): Purecov comments. + (setup_d_pid_in_inferior): Fix location of end.o. + (initialize_hp_cxx_exception_support): Fix location of end.o. + (child_enable_exception_callback): Purecov comments. + + * hppa-tdep.c: + (Pa_do_strcat_registers_info): New routine. called by + tui/tuiRegs.c:_tuiRegisterFormat to place a register name + and value into a string buffer. Interface may change in + future. Checking this in so that we have something + functional for HP. + (pa_strcat_registers): New routine, called by + pa_do_strcat_registers_info. Does same thing as + pa_print_registers except it takes a stream parameter. + This routine should disappear in future. Checking in + so that we have something functional to give HP + (pa_strcat_fp_reg): New routine, called by + pa_do_strcat_registers_info and pa_strvat_registers + to place a floating point register name and value into + a buffer. This interface may change in future. + Checking in so that we have something functional to give HP. + + * hppa-tdep.c: (Pa_print_fp_reg): Change prototype to match def'n. + (pa_register_look_aside): Fix comment immediately before function. + + * hppa-tdep.c: Changes to better support stack unwinding, + reading and writing registers for HPUX. The HP folks had + an advantage ... access to a runtime architecture spec ;-}. + New includes: Ptrace.h + (internalize_unwinds): Initialize new fields in table. + (read_unwind_info): Entries in the table are now more complex + structures. References of the form ...->table[index].stub_type + are now ...->table[index].stub_unwind.stub_type. + (find_proc_framesize): Added a check for pc == 0. + (rp_saved): Entries in the table are now more complex + structures. References of the form ...->table[index].stub_type + are now ...->table[index].stub_unwind.stub_type. + (frameless_function_invocation): Stub_type becomes + stub_unwind.stub_type + (saved_pc_after_call): Stub_type becomes stub_unwind.stub_type + (hppa_frame_saved_pc): Stub_type becomes stub_unwind.stub_type + (frame_chain_valid): Stub_type becomes stub_unwind.stub_type + (hppa_call_dummy): Stub_type becomes stub_unwind.stub_type + (pa_print_fp_reg): Additional params to call val_print + (in_solib_call_trampoline): Stub_type becomes stub_unwind.stub_type + (in_solib_return_trampoline): Stub_type becomes stub_unwind.stub_typ + (skip_trampoline_code): Additional code to handle external + dyncalls. Also stub_type becomes stub_unwind.stub_type + (hppa_pid_to_exec_file): New funct. FOr HPUX 10.0 and beyond there + is an explicit ptrace request for getting the pathname associated + with a process id (pid). + + * hppa-tdep.c: Fix for gcc compile on HPUX + (hppa_pid_to_exec_file): Remove unwanted param from + call to call_ptrace. Note, hppa_pid_to_exec_file goes + away in subsequent hp snapshots. + + * hppa-tdep.c: Include bfd.h. + include dl.h + (args_for_find_stub): New structure. + (find_unwind_entry): Deal with null input pc value. + (rp_saved): Ditto. + For the import stub, return -24 always. + (hppa_frame_saved_pc): Save old pc value, to detect we are in a loop. + (init_extra_frame_info): Use TARGET_READ_FP. + (frame_chain): Include thread support. + If the caller's pc is zero, we loose and return, just like stack bottom. + Disable warning about being unable to find unwind info. + (hppa_push_arguments): Rewrite. + (hppa_value_returned_from_stack): New function. Handles returning a value + larger that 64 bits, stored on the stack. + (find_stub_with_shl_get): New function. To look up symbols in shlibs. + (cover_find_stub_with_shl_get): New function. Cover routine for + find_stub_with_shl_get to pass to catch_errors. + (hppa_fix_call_dummy): Comment out old stub mechanism. Rewrite using dyncall. + (target_read_fp): New function. + (pa_do_registers_info): Floating point registers start at FP4. + (pa_print_registers): Use FP4_REGNUM instead of 72. + (skip_trampoline_code): Do machine instruction matching for PA2.0. + (setup_d_pid_in_inferior): New function. Exception handling support. + (initialize_hp_cxx_exception_support): Ditto. + (child_enable_exception_callback): Ditto. + (child_get_current_exception_event): Ditto. + + * hppah-nat.c (child_post_wait, child_post_follow_vfork, + child_post_follow_inferior_by_clone): New functions. + + * hppah-nat.c (child_xfer_memory): Make sure the call to ptrace really + fails before we give up. + (hppa_pid_to_str): New function. Format a process id. + (hppa_tid_to_str): New function. Format a thread id. + + * hppah-nat.c (child_xfer_memory): Use xmalloc, not alloca. + (child_post_wait): Delete. + (child_post_follow_vfork): Delete decl of child_ops; delete + large chunks of function -- let it be handled by the normal + mechanism that notices and handles exec events, in resume(). + + * hppah-nat.c (require_notification_of_exec_events): New function; + just notify of exec events, not all events, and just the specified + pid, don't include it's children (10.20 version). + (child_acknowledge_created_inferior): Call new function + require_notification_of_exec_events instead of + require_notification_of_events. + + * hppah-nat.c [!GDB_NATIVE_HPUX_11]: Move HPUX 10.x-specific + support code here from infptrace.c. + + * hppah-nat.c: Removed #define ptrace call_ptrace + replaced all calls to ptrace with calls to call_ptrace + (parent_attach_all): Removed call to ptrace + + * hpread.c (hpread_psymtab_to_symtab_1): Change fflush to + gdb_flush; change stdout to gdb_stdout. + (hpread_psymtab_to_symtab): Change fflush to gdb_flush. + + * hpread.h: New file. Includes all includes, struct defs, defines + from hpread.c. + + * infcmd.c + (attach_command): New local variable, exec_file, added code to + determine exec_file from pid if exec_file is not already known, + call new target operation, target_post_attach -- a no-op unless + on HPUXHPPA + (detach_command): After detaching, do a SOLIB_RESTART + + * infcmd.c (objfiles.h): Fix typo on include line. + + * infcmd.c (run_command): Only call SOLIB_RESTART if it's + defined. + (detach_command): Ditto. + + * infcmd.c: + (run_stack_dummy): Add calls to + disable_watchpoints_before_interactive_call_start and + enable_watchpoints_after_interactive_call_stops + (finish_command): Alter code handling the evaluation and printing + of the target function's return value. + (attach_command): When given a pid, but no exec file, try to determine + the exec file from the process. If the process does not record a + full path name, try to qualify the filename against the source path. + (_initialize_infcmd): Add some verbiage about how to use the attach command + + * infcmd.c: + Include objfiles.h + (run_command): If program has already been started, and decide + to restart it, then kill the target, flush the caches, + call init_wait_for_inferior. Also purge old solib objfiles. + + * infcmd.c: Changed calls to val_print, using a new macro, + SOLIB_RESTART + (run_command): Calls SOLIB_RESTART + (do_registers_info): Changed calls to val_print + + * infcmd.c: Made the symfile.h include preceed the + objfiles.h include. The other ordering caused a + compile problem (incompletely defined types). + + * inferior.h (REQUIRE_DETACH): Fix default definition. + * inftarg.c (child_post_attach): Fix declaration, make static. + (proc_wait): Make globally visible. + (child_insert_fork_catchpoint, etc): Fix return type. + + * inferior.h (STARTUP_WITH_SHELL): New define. + (START_INFERIOR_TRAPS_EXPECTED): New define + + * inferior.h (fork_inferior): Change fifth parameter to be a function + returning void. + + * inferior.h (proc_wait): Declare. + + * inferior.h: + (Require_ATTACH): New macro + (REQUIRE_DETACH): New macro + (detach): Definition is now an extern + (clone_and_follow_inferior): New definition, it's also an extern + + * inferior.h: + (Require_attach): Default definition for require_attach funct + (require_detach): Default definition for require_detach funct + (pre_fork_inferior): New funct decl for function defined in + infptrace.c + (fork_inferior): New parameter in funct decl. + + * inferior.h: + New variable decls: Inferior_ignoring_startup_exec_events, + inferior_ignoring_leading_exec_events -- these variables + are used when processing an exec call. + (CALL_DUMMY_HAS_COMPLETED): New default macro -- for targets + where PC in call dummy implies that call dummy has + completed. Note, that on HPUX this inference does not hold. + + * infptrace.c + (require_notification_of_events): New function + (child_acknowledge_created_inferior): Previously named + hppa_acknowledge_forked_child. Also calling + require_notification_of_events and clearing some semaphore + variables + (child_post_startup_inferior): New function + (child_create_catch_fork_hook): Previously named + hppa_create_catch_fork_hook + (child_create_catch_vfork_hook): Previously named + hppa_create_catch_vfork_hook + (child_has_forked): Previously named hppa_target_has_forked + (child_has_vforked): Previously named hppa_target_has_vforked + (process_wait): Changed to call target_post_wait + (attach): Add call to require_notification_of_events + (child_pid_to_exec_file): New function + (hppa_require_attach): New local variable, pt_status + (hppa_get_process_events): New function + + * infptrace.c (call_ptrace): Simplify control flow. + (proc_wait): Move here from inftarg.c, add target_post_wait call. + + * infptrace.c (call_ptrace): Add some debugging code. + + * infptrace.c (child_pid_to_exec_file): Declare variable. + + * infptrace.c (kill_inferior): Clean up call to proc_wait. + + * infptrace.c: + (Call_ptrace): When the ptrace request is PT_SETTRC, + call ptrace and then call parent_attach_all. + + * infptrace.c: + (Child_has_syscall_event): New function. only applicable + (for now) on HPUX 10.30 and beyond via the ttrace call. + In infptrace.c there is a default operation. + With ttrace, it is possible to tell the kernel to + notify the debugger that the target program is about to make + or return from a syscall. + (child_thread_alive): New function. a default function. + ptrace doesn't support kernel threads. + (hppa_enable_page_protection_events): Defualt function + (hppa_disable_page_protection_events): Default function + + * infptrace.c (child_pid_to_exec_file): Fix number of params to + cal_ptrace call. + + * infptrace.c (hppa_pid_or_tid_to_str): New function. + (hppa_switched_threads): New function. + (hppa_ensure_vforking_parent_remains_stopped): New function. + (hppa_resume_execd_vforking_child_to_get_parent_vfork): New function. + + * infptrace.c: Most of the changes found in infptrace.c should + be moved to hppah-nat.c + (PT_VERSION): A new define + (startup_semaphore_t): A new struct type. it is used to + coordinate the parent and child processes after a fork and + before an exec on HPUX. + (call_ptrace): Changes to determine whether the ptrace + request is for starting the tracing of the target process. + (parent_attach_all): New funct. used on HPUX for coordinating + the parent and child processes after a fork and before and exec. + (hppa_acknowledge_forked_child): New funct. prabably belongs + in hppah-nat.c + (hppa_enable_catch_fork): New funct. probably belongs in + hppah-nat.c + (hppa_disable_catch_fork): New funct. probably belongs in + hppah-nat.c + (hppa_create_catch_fork_hook): New funct. probably belongs in + hppah-nat.c + (hppa_enable_catch_vfork): New funct. probably belongs in + hppah-nat.c + (hppa_disable_catch_vfork): New funct. probably belongs in + hppah-nat.c + (hppa_create_catch_vfork_hook): New funct. probably belongs to + hppah-nat.c + (hppa_target_has_forked): New funct. probably belongs in + hppah-nat.c + (hppa_target_has_vforked): New funct. probably belongs in + hppah-nat.c + (process_wait): New funct. also ifdefed for proc_wait. + (kill_inferior): Call proc_wait rather than wait. this is + pretty hacky. + (pre_fork_inferior): New function. used only by HPUX. + probably should be defined elsewhere. + + * infrun.c (follow_inferior_fork): Only define on HP. + (wait_for_inferior): Only call SOLIB_IN_DYNAMIC_LINKER if we have + shared libraries; restore test of IN_SOLIB_DYNSYM_RESOLVE_CODE + removed by HP. + + * infrun.c (normal_stop): Add a call to the TUIDO + macro just before the annotate_stopped label. This + updates the windows after each program stop. + + * infrun.c (normal_stop): Verify stop_command is non-zero before + dereferencing it (it won't be set if dbx_commands is set). + + * infrun.c (resume): Add #ifdef HPPAHPUX around HPUX-specific + code. + + * infrun.c (resume): Add missing semicolon. + + * infrun.c (wait_for_inferior): Fix syntax error. + + * infrun.c (follow_fork_mode_kind_names): Removed "both" option. + (follow_fork): Added parameters. additional code for handling + following of parent, following of child + (resume): Added code for deciding how to resume in presence of + fork. Additional params to follow_fork call. + + * infrun.c (follow_exec): Ifdef for HPUXHPPA for the moment, the + code in here assumes the existance of the child_ops target + vector. This is incorrect for Solaris. + + * infrun.c (resume): Fixed ifdefs, HPPAHPUX -> HPUXHPPA. + + * infrun.c (wait_for_inferior): Fixed a matching parens problem -- + matching curly brace inside ifdefed code which is not being + compiled. Change local validFlag to be an 'int' rather than a + 'bool' and fixed the corresponding assignment statements. + + * infrun.c: + Two new global variables: Inferior_ignoring_startup_exec_events and + inferior_ignoring_leading_exec_events. + New static variables: Parent_of_vfork_trap_expected_and_ignorable, + step_resume_breakpoint, through_sigtramp_breakpoint, pending_follow, + follow_vfork_when_exec + (follow_inferior_fork): Does what follow_fork did! + (follow_fork): Is now a wrapper function for follow_inferior_fork + (follow_vfork): Is now a wrapper function for follow_inferior_fork + (follow_exec): New function, handles an exec event. + (resume): Remove 3 local variables: Child_pid, has_forked, has_vforked. + move and expand code that tries to follow a fork (i.e. also check + for vfork and exec + (init_wait_for_inferior): Initialize the new structure, pending_follow + (delete_breakpoint_current_contents): When deleting all the breakpoints also + set the breakpoint struct pointer to NULL. + (wait_for_inferior): A number of changes. + The step_resume_breakpoint and through_sigtramp_breakpoint local + variables are now visible in entire module. + Changed name of variable from child_inferior_pid to saved_inferior_pid. + Added several cases to the event processing switch statement: + Target_WAITKIND_FORKED, TARGET_WAITKIND_VFORKED, TARGET_WAITKIND_EXECD. + Also, for TARGET_WAITKIND_STOPPED, check to see if expecting a trap + from the parent of a vfork (ignorable) otherwise break as usual. + When determining the value of 'random_signal' (0 or 1), no longer check for + catchpoints. + When determining how to handle unexpected signals, must now take into + account fork, vfork, and exec. + Change call to PC_IN_CALL_DUMMY to a call to CALL_DUMMY_HAS_COMPLETED + At stop_stepping label, check to see if stopped for fork or + vfork event. + + * infrun.c: New code is related to threads and fork/vfork/exec. + New static variable: Thread_step_needed + Deleted static variable: Parent_of_vfork_trap_expected_and_ignorable + Altered the pending_follow and fork_event structs + (follow_inferior_fork): Before detaching from child and removing + all breakpoints form it -- but only if forking or following + vforks as soon as they happen. Also reset the solib inferior hook. + The same kind of logic applies to hitting step_resume_breakpoints + (calling breakpoint_re_set_thread) and to resetting and inserting + breakpoints. + (follow_exec): Forward decl + (follow_vfork): Check to see if gdb followed the child. If + the child exec'd before gdb saw the parent's vfork event + then call follow_exec. + (follow_exec): If the exec occured after a vfork, then follow + the vfork as well. Do it before following the exec. + Make sure to update breakpoints after and exec + (resume): New local variable, should_resume. + Change parameters in calls to follow_fork, follow_vfork, and + follow_exec. Some changes to the way various pending_follow.kind + situations are handled (there's TARGET_WAITKIND_FORKED, + TARGET_WAITKIND_VFORKED, ARGET_WAITKIND_EXECD. Some additional + conditions to check before deciding to resume the target (i.e. + should_resume=1, stepping?, thread_step_needed?i, regular + resume?) + (proceed): When proceeded at location that does not have a breakpoint + set thread_step_needed=0 to indicate that it is not necessary to + single step thread over breakpoint. SOme additional checks to see + if it is necessary to step thread over breakpoint. + (start_remote): Remove call to clear_proceed_status. + (init_wait_for_inferior): Initialize new fields in fork_event + structure and add a call to clear_proceed_status. + (wait_for_inferior): New local variable: New_thread_event. + Initialize thread_step_needed = 0. + Minor massaging of conditions for adding a new thread to the thread list. + No longer resuming execution after adding a new thread. Let user play with thread first. + Some changes in the way TARGET_WAITKIND_FORKED, ARGET_WAITKIND_VFORKED, + TARGET_WAITKIND_EXECD are handled -- this is all HPUX related. + Simplified TARGET_WAITKIND_STOPPED -- HP previously had some + more complicated code in here. + Moved the code to resume threads to after the large case statement that processes the events. + Additional processing for stop_signal=TARGET_SIGNAL_TRAP. + Cleanup code at process_event_stop_test label. + Set thread_step_needed when processing a BPSTAT_WHAT_SINGLE. + Minor massaging of fork/vfork/exec part of stop_stepping code. + (normal_stop): Minor changes. calling show_and_print_stack_frame. + (xdb_handle_command): New function + (_initialize_infrun): Handle xdb_commands. also handle dbx commands + + * infrun.c: Changes to support following forks, and handling + catchpoints. + (follow_fork_mode_kind_names): New array + (follow_fork): New function. implements the follow parent, + or child functionality. + (resume): Additions to check whether the target process + just forked and decide which process to follow. + (wait_for_inferior): Additional variables (child_inferior_pid, + stepping_through_solib_after_catch, + - stepping_through_solib_catchpoints. + - Altered CURRENTLY_STEPPING macro to check for stepping through + a shared library after hitting a catchpoint. + - Add parameters to save_infrun_state call + - Check for fork and vfork when deciding if event is a random + signal + - When considering stops due to breakpoints, check for + BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK + - Check for stop due to an explicit catchpoint + - When checking for single stepping event, also check for + stepping to get out of dynamic linker's hook after catching + a shlib event + (is_internal_shlib_eventpoint): New funct. check to see if + event type is bp_shlib_event. + (stopped_for_internal_shlib_event): New funct. check for shlib + events + (stopped_for_shlib_catchpoint): New funct. check for catchpoints. + (normal_stop): Additions to check for shlib event + (set_follow_fork_mode_command): New funct. handles the new follow + fork command. + (_initialize_infrun): Additions for follow-fork-mode command. + + * infrun.c: Ifdefing references to + switched_from_inferior_pid for HPUXHPPA. They don't seem + useful for Solaris (i.e. non-HPUX) + + * infrun.c: Included tuiData.h and tuiDataWin.h, ifdefed for TUI. + Included top.h. New static variables: Switched_from_inferior_pid, + number_of_threads_in_syscalls. + (follow_inferior_fork): If there is a step_resume breakpoint + explicitly reset the thread number. + (resume): For TARGET_WAITKIND_VFORKED, removed a check for getting + the vfork event to soon. + (init_wait_for_inferior): Added parameter to call to + breakpoint_init_inferior. Initialize number_of_threads_in_syscalls. + (wait_for_inferior): New local variables: Prev_sal, + enable_hw_watchpoints_after_wait, stepping_through_sigtramp, + stepped_after_stopped_by_watchpoint. Enable watchpoints after a wait. + Added cases for TARGET_WAITKIND_SYSCALL_ENTRY and + TARGET_WAITKIND_SYSCALL_RETURN. + Do additional processing if stop due to breakpoint, but breakpoint is + only valid for a thread other than the one currently running. Additional + parameters to save_infrun_state and load_infrun_state. Some additional + processing for BPSTAT_WHAT_STEP_RESUME. Some additional processing to + handle stepping over a function. + (normal_stop): Added notification of switching threads. ifdefing some + TUI changes and leaving out non-essential TUI changes. + (restore_selected_frame): Ifdefing some TUI changes + (restore_inferior_status): Ifdefing some TUI changes + + * infrun.c: Removed the TUI ifdefs and TUI code. Also removed + include for top.h. HP introduced this. I'm taking it out. + + * inftarg.c (child_detach_from_process): Declare. + (child_attach_to_process): Declare. + (child_stop): Make static to match declaration. + + * inftarg.c (ptrace_him): Change prototype back to return int. + + * inftarg.c (ptrace_me): Remove debug output, pass NULL to + fork_inferior if not HPUX. + + * inftarg.c: + (child_require_attach): New funct prototype and definition + (child_require_detach): New funct prototype and definition + (proc_wait): Funct prototype and definition are enclosed by + proc_wait ifndef + (child_attach_to_process): New function, does most of the + work that child_attach used to do and some additional + work to determine whether gdb is already attached to the + target how to react. + (child_attach): Altered. It's now a wrapper for + child_attach_to_process. + (child_require_attach): New function, called if should attach + even when gdb is already attached to target. + (child_detach_from_process): New function, does most of the + work that child_detach used to do and some additional work + to determine whether gdb is currently attached to the target. + (child_detach): Altered. It's now a wrapper for + child_detach_from_process. + (child_require_detach): New function, called if should try to + detach even when gdb is not attached to target. + (ptrace_him): Calls a new function, target_acknowledge_forked_child. + Currently, target_acknowledge_forked_child, is only defined to + do something for HPUX. + (child_create_inferior): Changed call to fork_inferior. + (child_ops): Added to_require_attach and to_require_detach fields + to the child_ops target ops vector. + + * inftarg.c: + Some hacks for ttrace work + (child_wait): Additional local variables, additional code in + while loop to check for: Process exited, process forked, + process vforked, process execd + (child_thread_alive): John B. seems to think that the kill + call is inapproapriate for HPUX. + (child_attach_to_process): Using strtol rather than atoi. + no longer check for case where there is no known exec file. + (child_post_attach): New function, a default, a no-op + (child_insert_fork_catchpoint): New function, a default, a no-op + (child_remove_fork_catchpoint): New function, a default, a no-op + (child_create_catch_fork_hook): Deleted + (child_create_catch_vfork_hook): Deleted + (child_insert_vfork_catchpoint): New function, a default, a no-op + (child_remove_vfork_catchpoint): New function, a default, a no-op + (child_can_follow_vfork_prior_to_exec ):new function, a default, + a no-op + (child_insert_exec_catchpoint): New function, a default, a no-op + (child_remove_exec_catchpoint): New function, a default, a no-op + (child_has_execd): New function, a default, returns 0 + (child_reported_exec_events_per_exec_call): New function, a + default, returns 1 + (child_has_exited): New function, a default. + (child_core_file_to_sym_file): New function, a default, returns NULL. + (child_ops): Initialize new target_ops vector fields to the + child* functions. + * infptrace.c: + (Call_ptrace): For HPUX, handle additional requests: Pt_CONTIN1, + PT_STEP1. + (require_notification_of_events): Add several signals to the + set of events requiring notification: Ptrace_SIGNAL, + PTRACE_EXEC, PTRACE_FORK, PTRACE_VFORK + (child_acknowledge_created_inferior): This function is only + defined if CHILD_ACKNOWLEDGE_CREATED_INFERIOR is defined. + (child_post_startup_inferior): Function is only defined if + CHILD_POST_STARTUP_INFERIOR is defiend. Also, now call + require_notification_of_events. + (child_create_catch_fork_hook): Deleted + (child_create_catch_vfork_hook): Deleted + (child_insert_fork_catchpoint): New function + (child_remove_fork_catchpoint): New function + (child_insert_vfork_catchpoint): New function + (child_remove_vfork_catchpoint): New function + (child_has_forked): Now enclosed by a CHILD_HAS_FORKED ifdef + (child_has_vforked): Now enclosed by CHILD_HAS_VFORKED ifdef + (child_can_follow_vfork_prior_to_exec): New function + (child_insert_exec_catchpoint): New function + (attach): Removed call to require_notification_of_events + (child_post_attach): New function, call to + require_notification_of_events moved here. + (child_pid_to_exec_file): New enclosed by CHILD_PID_TO_EXEC_FILE ifdef + introduced the concept of a saved_inferior_pid + (hppa_require_attach): Add some code to decide if gdb is already + attached to process. Can not figure this out via a ptrace call. + (hppa_insert_hw_watchpoint): New function + (hppa_remove_hw_watchpoint): New function + + * inftarg.c: + (child_attach_to_process): Change position in file + (child_detach_from_process): Change position in file + + * inftarg.c: + (child_attach_to_process): Changed parameter to child_wait call + + * inftarg.c: + (child_post_wait): New function declaration and definition + (ptrace_him): + - change return value to a void. + - change target_acknowledge_forked_child call to + target_acknowledge_created_inferior + - call target_post_startup_inferior rather than returning pid. + (child_attach_to_process): Change param name, fail_if_already_attached + -> after_fork. + Invert a couple of if-then-else statments. + Use REQUIRE_ATTACH macro + (child_attach): Change params in child_attach_to_process call + (child_require_attach): Change params in child_attach_to_process call + (child_detach_to_process): Change param name, + fail_if_already_attached -> after_fork. + Invert a couple of if-then-else statments. + Use REQUIRE_DETACH macro + (child_detach): Change params in child_detach_from_process call + (child_require_detach): Change params in child_detach_from_process + call + (child_post_startup_inferior): New function + (child_acknowledge_created_inferior): New function + (child_clone_and_follow_inferior): New function + (child_post_follow_inferior_by_clone): New function + (child_create_catch_fork_hook): New function + (child_create_catch_vfork_hook): New function + (child_has_forked): New function + (child_has_vforked): New function + (child_post_follow_vfork): New function + (child_stop): No longer a static function + (child_pid_to_exec_file): New function + + * inftarg.c: + (child_wait): Child_pid becomes related pid. return pid + rather than inferior_pid. Changes are in code handling fork + and vfork + + * inftarg.c: + Include gdb_stat.h and sys/unistd.h + (child_wait): New local variables. Check for live threads. + Check for syscall events + (child_thread_alive): No longer a static funct. + (ptrace_him): Remove some code inserted in snap3 + (child_create_inferior): Added a bunch of code to handle a + bad interaction between start-up-with-shell and the HP + catch-fork/catch-exec logic. I am ifdefing this for + HPUXHPPA for now. + (child_has_syscall_event): New default target_ops function + (child_enable_exception_callback): New default target_ops function + (child_get_current_exception_event): New default target_ops function + (child_ops): 3 new fields + + * inftarg.c: Remove HPUX_SNAP1 and HPUX_SNAP2 ifdefs + + * inftarg.c: Reverted previous change. + + * infttrace.c (hppa_remove_hw_watchpoint): Fix check for write + access hardware watchpoint. + + * infttrace.c (proc_wait): Rename from proc_wait. + + * infttrace.c (require_notification_of_exec_events): New function; + just notify of exec events, not all events, and just the specified + pid, don't include it's children. + (child_acknowledge_created_inferior): Call new function + require_notification_of_exec_events instead of + require_notification_of_events. + (child_post_startup_inferior): Call require_notification_of_events + + * infttrace.c: Changed all references to boolean to int. + Changed all references to TRUE and FALSE to 1 and 0. + + * irix5-nat.c (symbol_add_stub): Add params to call to + symbol_file_add. + + * jv-lang.c (get_dynamics_objfile): Add 2 more parameters to call + to allocate_objfile. + + * main.c (fputs_unfiltered): Changes to prevent cursor form + jumping around in the TUI. Altered where tuiTermUnsetup and + tuiTermSetup are called + + * main.c (fputs_unfiltered): Changed function so that it + checks to see if output is to a string buffer or to a + FILE stream and does the correct action (i.e. strcat or + fputs). Fixed params for fputs call. + + * main.c (fputs_unfiltered): Don't try to call the TUI's + CommandCharCount functions when the TUI isn't enabled. + + * main.c (fputs_unfiltered): Change FILE to GDB_FILE. + + * main.c (main): If the user gives the --version or --help flags, + disable the TUI. + + * main.c (tui_version, xdb_commands, dbx_commands): New variables. + (main): New command line arguments --tui, --xdb, --dbx; add call + to tyiCleanUp via tuiDo to main loop. + (fputs_unfiltered): Tui related changes. + + * main.c: Define 2 new global variables, gdb_stdout and gdb_stderr + of type GDB_FILE. + (main): Allocate space for and initialize gdb_stdout and gdb_stdin. + + * objfiles.c (find_pc_sect_section): Make end condition be less + than s->endaddr, not less than or equal to s->endaddr. + + * objfiles.c: + (allocate_objfile): 2 new parameters: User_loaded and is_solib. + When appropriate, record in the object file that it is user loaded. + The run command can use this information to purge object file + entries associated with the old inferior and keep user loaded + object files loaded via the add-symbol-file command. + (objfile_purge_solibs): New function. deletes all objectfile entries + that are not explicitly loaded by the user. + + * objfiles.c: + (objfile_relocate): Check for LOC_INDIRECT + (find_pc_sect_section): Change condition from + pc < s->endaddr to pc <= s->endaddr + + * objfiles.h: + New variables: User_loaded and is_solib + (OBJF_SHARED): New macro. used to distinguish objfile for + shared library from "vanilla" objfile. + (allocate_objfile): Add new parameters to function decl. + (objfile_purge_solibs): New function decl. + + * objfiles.h: Add some typedefs: Importentry, ExportEntry. + Add some new variables: Import_list, import_list_size, + export_list, export_list_size + + * osfsolib.c: + (symbol_add_stub): Added params to call to symbol_file_add + + * pa/hpux1020.mh (NATDEPFILES): Add corelow.o, symbol table and + solib files. + + * pa/hpux1100.mh (NAT_FILE): Use nm-hppah11.h. + (NATDEPFILES): Add symbol table and solib files. + + * pa/nm-hppah11.h: New file, HPUX11-only definitions. + + * pa/tm-hppa.h (proc_wait): Remove decl and macro. + + * parse.c (write_dollar_variable): Handle cases in which variables + besides the debugger ones start with $ and $$. + (parse_nested_classes_for_hpacc): New function. Parse a string that + is possibly a namespace / nested class specification. + (find_template_name_end): New function. + + * procfs.c: + (procfs_init_inferior): Return value is now a void. + + * procfs.c (procfs_ops): Initializing new target ops vector fields. see list below. + + * procfs.c: + (procfs_ops): Adding new target_ops vector fields and + removing a few. see list below + + * procfs.c: Added new fields to procfs_ops. + Necessary since we still have oldstyle initialization in + this file + + * pyr-tdep.c (pyr_do_registers_info): Change stdout to gdb_stdout. + (frame_locals_address): Change stderr to gdb_stderr. + (frame_args_addr): Ditto. + + * pyr-xdep.c (fetch_inferior_registers): Change stderr to + gdb_stderr. + + * serial.c (serial_close): Call gdb_fclose, not fclose on a + GDB_FILE. + + * serial.c (serial_logchar): Change chtype to ch_type. sigh. + + * solib.c (look_for_base): The parameter to file must be + of type FILE *. So cast exec_bfd -> iostream in the call + to fileno as a FILE *, not a GDB_FILE *. This will work because + exec_bfd -> iostream is declared and given a value in bdf and + bfd will continue to use FILE rather than GDB_FILE. + + * solib.c: + (solib_add): Remove references to exec_ops. + + * solib.c: + (solib_add): Update exec_ops.to_sections + + * solib.c: + (symbol_add_stub): Added params to call to symbol_file_add + + * solib.h: + (SOLIB_REMOVE_INFERIOR_HOOK): New macro. defined to 0. + functionality not implemented for this target. + + * solib.h: Added macro definitions. These macros generate + error messages for solaris?? + (SOLIB_CREATE_CATCH_LOAD_HOOK) + (SOLIB_CREATE_CATCH_UNLOAD_HOOK) + (SOLIB_HAVE_LOAD_EVENT) + (SOLIB_LOADED_LIBRARY_PATHNAME) + (SOLIB_HAVE_UNLOAD_EVENT) + (SOLIB_UNLOADED_LIBRARY_PATHNAME) + (SOLIB_IN_DYNAMIC_LINKER) + (SOLIB_RESTART) + + * somread.c (is_in_import_list): Ditto. + + * somread.c (som_symfile_read): Added some comments + + * somread.c (som_symfile_read): Read in import and export lists. + (som_symtab_read): Change test for dynamic executable. + (is_in_import_list): New function. Check if a given symbol name + is in the import list. + (init_import_symbols): New function. Read in and initialize the + som import list. + (init_export_symbols): New function. Read in and initialize the + som export list. + + * somread.c: + (som_symfile_read): Fix missing comment delimiters + + * somsolib.c (DLD_FLAGS_MAPPRIVATE): New macro. + Define bit of __dld_flags in HP-UX a.out files. + (DLD_FLAGS_HOOKVALID): Ditto. + (DLD_FLAGS_LISTVALID): Ditto. + (DLD_FLAGS_BOR_ENABLE): Ditto. + (som_solib_total_st_size): Cumulative size in bytes of the + symbol tables of all shared objects on the so_list_head list. + (som_solib_st_size_threshhold_exceeded): Threshold for adding symbols + for shlibs. + (som_solib_sizeof_symbol_table): New function. Computes size of + symbol table for a shlib. + (som_solib_load_symbols): New function. Load symbols from shlib. + (som_solib_add): Detect if __dld_list is not valid. + Record main program's symbol table size. + Load symbols if called from command line. + Keep threshold into account when loading shlib symbols. + (som_solib_create_inferior_hook): Use dld_flags macros. + (som_sharedlibrary_info_command): Let user know if symbols were + not loaded. + (som_solib_restart): Discard all the shlibs descriptors. + (_initialize_som_solib): Chenge help message for auto-solib-add + command. + Set threshold for symbol table to 50 megabytes. + + * somsolib.c (_initialize_som_solib): Added call to som_solib_restart. + (som_solib_restart): New function + (som_solib_in_dynamic_linker): New function + (som_solib_desire_dynamic_linker_symbols): New function + (som_solib_unloaded_library_pathname): New function + (som_solib_loaded_library_pathname): New function + (som_solib_library_pathname): New function + (som_solib_have_unload_event): New function + (som_solib_have_load_event): New function + (som_solib_create_catch_unload_hook): New function + (som_solib_create_catch_load_hook): New function + (som_solib_create_inferior_hook): Rewritten + dld_cache: New struct + addr_and_unwind_t: New struct + (find_unwind_entry) added prototype + + * somsolib.c (som_solib_create_inferior_hook): Introduce new local + msymbol2 and change some msymbol's to msymbol2's -- was clobbering + msymbol, passing a NULL to lookup_minimal_symbol_solib_trampoline, + and ultimately core dumping with a SEGV. + + * somsolib.c: + Include assert.h + (som_solib_mapped_entry): Additional comments for text_addr, + text_link_addr, text_end, and tsd_start_addr fields. Commenting + out 2 tsd fields, __data_start and __data_end. + (som_solib_add_solib_objfile): Add params to calls to symbol_file_add. + Add some code for distinguishing between a shared library and other + objfiles. This appears to be a prelude to thread local storage. + (som_solib_load_symbols): Changes to printf statement + enclosed by SOLIB_DEBUG ifdef. + (som_solib_add): Change comment to correctly specify path + to end.o -- /opt/langtools/lib/end.o. changes to printf statement + enclosed by SOLIB_DEBUG ifdef. + Removed several SOLIB_DEBUG ifdefs and the associated printfs. + Add code to find the start address for the object file's thread + local storage + (som_solib_create_inferior_hook): Fix warning messages use correct + path to end.o -- /opt/langtools/lib/end.o. Change control flow. + No longer user early returns from function is cases of error. + (reset_inferior_pid): New function + (som_solib_remove_inferior_hook): New function + (so_lib_thread_start_addr): New function. used for tsd. + + * somsolib.c: Removed references to ASSERT macro. + + * somsolib.c: Add debugging macro. + (struct som_solib_mapped_entry): Add new field tsd_start_addr. + (struct so_list): Added new field solib_addr. + (som_solib_add_solib_objfile): New function. + (som_solib_load_symbols): Rewritten. + (som_solib_add): Make sure we don't load the symbols in if the + threshold was exceeded. + (som_solib_get_solib_by_pc): New function. Return the address of + handle of the shared library. + (som_solib_restart): Disable breakpoints at restart. + (_initialize_som_solib): Set threshold to 100 megabytes. + + * somsolib.c: Add include of fcntl.h so that O_RDONLY is defined. + + * somsolib.h (DISABLE_UNSETTABLE_BREAK): New macro. + (PC_SOLIB): New macro. + + * somsolib.h: + (SOLIB_CREATE_CATCH_LOAD_HOOK): Define + (SOLIB_CREATE_CATCH_UNLOAD_HOOK): Define + (SOLIB_HAVE_LOAD_EVENT): Define + (SOLIB_LOADED_LIBRARY_PATHNAME): Define + (SOLIB_HAVE_UNLOAD_EVENT): Define + (SOLIB_UNLOADED_LIBRARY_PATHNAME): Define + (SOLIB_IN_DYNAMIC_LINKER): Define + (SOLIB_RESTART): Define + + * somsolib.h: + (SOLIB_REMOVE_INFERIOR_HOOK): New macro. defined to use + som_solib_remove_inferior_hook. + + * somsolib.h: + (som_solib_create_catch_load_hook) + (som_solib_create_catch_unload_hook) + (som_solib_have_load_event) + (som_solib_loaded_library_pathname) + (som_solib_have_unload_event) + (som_solib_unloaded_library_pathname) + (som_solib_in_dynamic_linker) + Fix prototypes to use type names, not parameter names. + + * source.c (find_source_lines): Make non static. + (open_source_file): Ditto. + (source_full_path_of): New function. + (print_source_lines): Rename to print_source_lines_base and make + static; formatting. + (print_source_lines): New function. + (forward_search_command): Tui changes. + (reverse_search_command): Tui changes. + (_initialize_source): Add xdb and dbx compatibility commands. + + * source.c (list_command): Handle case of odd number of source + lines to display. + + * source.c: + (source_full_path_of): New function. file was overlooked + in merge ;-/. + + * stack.c (func_command): Make high bound be <, not <=. + + * stack.c (_initialize_stack): For the backtrace command, delete + the help line about usage, since this has to be a valid help + message for the 'where' command too. + + * stack.c (current_frame_command): Add a check for the + existance of a stack. If there is no stack produce an + error message and exit. + + * stack.c (down_silently_base, up_silently_base, + args_plus_locals_info, print_frame_info_base, + print_stack_frame_base, print_stack_frame_base_stub): Declare. + (print_frame_local_vars): Add'l parameter. + (print_stack_frame_stub): New version created, old version renamed + to show_and_print_stack_frame_base_stub. + (print_stack_frame_base_stub, print_only_stack_frame_stub, + show_and_print_stack_frame, print_only_stack_frame, + stack_publish_stopped_with_no_frame, print_frame_info, + show_stack_frame, backtrace_full_command, args_plus_locals_info, + select_and_print_frame, select_and_maybe_print_frame, + current_frame_command, func_command): New functions. + (backtrace_command): New function, old renamed to + backtrace_command_1. + (print_block_frame_locals, print_frame_local_vars): Additional + parameter, number of tabs. + (up_silently_command): New function, old renamed to + up_silently_command_base. + (down_silently_command): New function, old renamed to + down_silently_base. + (_initialize_stack): Register new commands based on values of + xdb_commands and dbx_commands variables. + + * stack.c (func_command): Make high bound be <, not <=. + + * stack.c (parse_frame_specification): Fix prototype to match + function definition. + (show_and_print_stack_frame_stub): Fix name. + (select_and_print_frame): Change uncaught tuiDO call. + + * stack.c (up_silent_base): Rename from up_silently_command_base. + + * symfile.c (symbol_file_command): Only call SOLIB_RESTART if it's + defined. + + * symfile.c (add_psymbol_with_dem_name_to_list): New function. + Adds a symbol with a long value to a psymtab. Differs from + add_psymbol_to_list in taking both a mangled and a demangled name. + + * symfile.c (compare_psymbols): Call strcmp directly, instead of + using macro. + + * symfile.c (symbol_file_add): Reindent portions. + (symbol_file_command): Add call to tuiDo. + + * symfile.c (symbol_file_command): Only call SOLIB_RESTART if it's + defined. + + * symfile.c (symfile_bfd_open): Add code to call PXDB on hpux, if + the file has not already been processed by pxdb. + Added define USE_PXDB. + + * symfile.c (symfile_bfd_open): Change parenthesis positioning + around call to hpread_pxdb_check. + + * symfile.c (symfile_bfd_open): Make not static. + (RESET_HP_UX_GLOBALS): New macro. Resets globals when new symbol + file loaded. + (USE_PXDB): Not needed. Removed. + (symbol_file_add): Add HP specific code to deal with pxdb. + (symbol_file_command): Reset HP specific globals if new symbol file + loaded. + (symfile_bfd_open): Comment out checking for pxdb. + (reread_symbols): Reset HP specific globals. + + * symfile.c (symfile_bfd_open): Uncomment hpus specific code. + + * symfile.c: + (symbol_file_add): Add user_loaded and is_solib parameters. + fixed number of parameters in call to allocate_objfile + (symbol_file_command): Added call to SOLIB_RESTART macro. + fixed number of parameters in calls to symbol_file_add. + (add_symbol_file_command): Fixed number of parameters in calls to + symbol_file_add. + + * symfile.c: Added prototype for hpread_pxdb_check. + + * symfile.c: Changed HPUX_SNAP1 ifdef to HPUXHPPA. enclosed calls to + RESET_HP_UX_GLOBALS with an HPUXHPPA ifdef + + * symfile.h (symfile_bfd_open): Add protptype. + + * symfile.h: Add prototype for add_psymbol_with_dem_name_to_list. + + * symfile.h: Clarify purpose of auto_solib_add. + + * symmisc.c (maintenance_print_symbols): Call gdb_fclose, not + fclose on a GDB_FILE* during cleanup. + (maintenance_print_psymbols): Call gdb_fclose, not fclose on a + GDB_FILE* during cleanup. + (maintenance_print_msymbols): Call gdb_fclose, not fclose on a + GDB_FILE* during cleanup. + + * symmisc.c (maintenance_print_symbols): Gdb_fclose now takes a + GDB_FILE ** parameter. Fix the local GDB_FILE variables and the + call to make_cleanup. + (maintenance_print_psymbols): Ditto + (maintenance_print_msymbols): Ditto + + * symmisc.c (print_objfile_statistics): Close quotes in + output strings. + + * symmisc.c: + (Print_symbol): Add LOC_INDIRECT to switch statement + (print_partial_symbols): Add LOC_INDIRECT to switch statement + + * symtab.c (find_pc_sect_psymtab): High bounds should be <, not <=. + (find_pc_sect_symtab): Ditto. + + * symtab.c (hp_som_som_object_present): New flag to indicate HP + compiled code. + (find_pc_sect_psymtab): Change tests to make sure we are checking + the texthigh adress as well. + (lookup_transparent_type): New function. Look up a type name + in the struct_namespace. The type returned must not be opaque. + (find_pc_sect_symtab): Make sure we check the address 'pc' itself, + too. + (find_addr_symbol): Prepare to handle LOC_INDIRECT address class, but + leave it commented out. + (find_pc_sect_line): Return correct information if pc is in import + or export stub (trampoline). + (decode_line_1): Skip two chars, if they are '$$'. Like for HP's + $$dyncall. Handle cases in which varaible and function names can start + with $. + (overload_list_add_symbol): If cannot demangle name, use it as is. + Free string after use. + (make_symbol_overload_list): Initialize oload_name to NULL and + oload_name_len to 0. If demangle not successful, use name as it is. + Free string after use. + + * symtab.c (lookup_symbol): Changed call to find_pc_sect_symtab, + to the original find_pc_symtab, in HP added fragment. + + * symtab.c (lookup_symbol): Change HPUX_SNAP1 ifdef to a HPUXHPPA ifdef + + * symtab.c (lookup_symbol): Ifdef the searching of symbol in the + minimal symbol tables, for hpux we move this check at the end + of the function. + Before we error out if symbol is not found in the symtab, look + in the statics. + Before erroring out if static symbol not found look in the globals. + + * symtab.c (lookup_symbol): Return symbol as soon as found. + (decode_line_1): Check whether we have a conditional break. Temporarily + remove it from the line, to not confure perenthesis checking. + Handle namespaces. + (overload_list_add_symbol): New function. Overload + resolution support. + (make_symbol_overload_list): Ditto. + + * symtab.c: + (find_template_name_end): New prototype decl. + (lookup_symbol): When a global or static symbol shows up in the + psymtab table, but not the symtab table, tell the user that + the symbol may be an inlined function or a template function and + provide some guidance to the user about how to more fully + specify the symbol. + (lookup_transparent_type): When a global or static symbol shows up + in the psymtab table, but not the symtab table, tell the user that + the symbol may be an inlined function or a template function and + provide some guidance to the user about how to more fully + specify the symbol. + (decode_line_1): Handle template function specification when decoding a + line. May need to be ifdefed for HP's aCC? + (_initialize_symtab): Handle dbx commands. + + * symtab.h (address_class): Add new address calss for + LOC_THREAD_LOCAL_STATIC and LOC_INDIRECT. + (lookup_transparent_type): Add prototype. + (exception_event_kind): New enum for exception catchpoints. + (exception_event_record): New structure for exception catchpoints. + (CURRENT_EXCEPTION_KIND): New macro. + (CURRENT_EXCEPTION_CATCH_SAL): New macro. + (CURRENT_EXCEPTION_CATCH_LINE): New macro. + (CURRENT_EXCEPTION_CATCH_FILE): New macro. + (CURRENT_EXCEPTION_CATCH_PC): New macro. + (CURRENT_EXCEPTION_THROW_SAL): New macro. + (CURRENT_EXCEPTION_THROW_LINE): New macro. + (CURRENT_EXCEPTION_THROW_FILE) new macro.: + (Current_EXCEPTION_THROW_PC): New macro. + + * symtab.h(make_symbol_overload_list): Add prototype. + + * symtab.h: + (symbol_file_add): Add new params to function decl. + + * target.c (cleanup_target): Changed casting of default functions for + to_has_forked, to_has_vforked, to_pid_to_exec_file to get rid of + warnings. + + * target.c (cleanup_target): Changed the default functions for + to_pid_to_exec_file and to_core_file_to_sym_file + + * target.c (cleanup_target): Fixed PARAMS for to_has_syscall_event + + * target.c (cleanup_target): Syntax error, mismatched paranthesis. + + * target.c: + (Default_clone_and_follow_inferior): New funct prototype declaration + and function definition + (dummy_target): More target_ops vector changes for HPUX + new fields. ifdefed for HPUX_SNAP2. New fields are + to_post_wait, to_post_startup_inferior + to_acknowledge_created_inferior, to_clone_and_follow_inferior, + to_post_follow_inferior_by_clone, to_create_catch_fork_hook, + to_create_catch_vfork_hook, to_has_forked, to_has_vforked, + to_post_follow_vfork, to_pid_to_exec_file + (de_fault): Add new HPUX specific target_ops operations to + the de_fault macro + (INHERIT): Add new HPUX specific target_ops operations to the + INHERIT macro + (find_default_clone_and_follow_inferior): New funct definition + (debug_to_post_wait): New funct + (debug_to_post_startup_inferior): New funct + (debug_to_acknowledge_created_inferior): New funct + (debug_to_clone_and_follow_inferior): New funct + (debug_to_post_follow_inferior_by_clone): New funct + (debug_to_create_catch_fork_hook): New funct + (debug_to_create_catch_vfork_hook): New funct + (debug_to_has_forked): New funct + (debug_to_has_vforked): New funct + (debug_to_post_follow_vfork): New funct + (setup_target_debug): Initialize new target_ops vector fields. + + * target.c: + (Cleanup_target): Fixed the return type on a few of the + default function values. + + * target.c: + (Dummy_target): Add 3 new fields + (nosupport_runtime): New function, used in cleanup_target + (cleanup_target): Changes in the de_fault macro, both to + accomodate the new target_ops vector fields and to use + more accurate default functions. + (update_current_target): Add new target_ops vector fields to the + INHERIT macro + (generic_mourn_inferior): The call to breakpoint_init_inferior now takes a + parameter + (normal_pid_to_str): Adding a \0 to the end of buf. + (debug_to_has_syscall_event): New func + (debug_to_enable_exception_callback): New func + (debug_to_get_current_exception_event): New func + (setup_target_debug): Initialize the 3 new target_ops vector fields + + * target.c: + (Struct signals): Fix message associated with SIGRETRACT. + + * target.c: + (Dummy_target): Fix syntax error + (cleanup_target): Changed the default values for the new + target_ops vector fields. HP folks inappropriately set + most of them to noprocess(). They should be a mixture + of ignore() and return_zero(). + + * target.c: + (Dummy_target): Add new target_ops vector fields and their initializations + (cleanup_target): Added new new target_ops vector fields to the de_fault + macro definition. + (update_current_target): Added new new target_ops vector fields to the INHERIT + macro definition + (return_one): New function, used by the de_fault macro + (debug_to_post_attach): New function + (debug_to_wait): Added new cases: Target_WAITKIND_FORKED, TARGET_WAITKIND_VFORKED, + TARGET_WAITKIND_EXECD + (debug_to_insert_fork_catchpoint): New function + (debug_to_remove_fork_catchpoint): New function + (debug_to_insert_vfork_catchpoint): New function + (debug_to_remove_vfork_catchpoint): New function + (debug_to_can_follow_vfork_prior_to_exec): New function + (debug_to_insert_exec_catchpoint): New function + (debug_to_remove_exec_catchpoint): New function + (debug_to_core_file_to_sym_file): New function + (setup_target_debug): Give new fields in current_target target_ops vector values. + + * target.c: Hp merge, 4/15/98 snapshot + There are new target_ops fields that pertain only + to HPUX. All the changes relate to this. First, + new fields are added to the dummy_target target_ops + vector: To_require_attach, to_require_detach. + + * target.c: Remove HPUX_SNAP1 and HPUX_SNAP2 ifdefs + + * thread.c (info_threads_command): Call print_only_stack_frame + instead of print_stack_frame. + (_initialize_thread): Make t an alias for thread only if + xdb_commands is not set. + + * thread.c (thread_command): If no arguments, don't generate an + error, instead tell the user which thread is current. + (info_threads_commands): Don't lose the users position within the + current thread -- remember it and then restore it. + + * thread.c: + (struct thread_info): Add stepping_through_sigtramp field + (add_thread): Initialize stepping_through_sigtramp field + (load_infrun_state): Add stepping_through_sigtramp param and + make sure it gets assigned a value. + (save_infrun_state): Add stepping_through_sigtramp param and + make sure that the value gets saved. + (info_threads_command): Ifdefing some local variables and + code for HPUXHPPA. HP folks want print the tid rather than pid? + Also, looks like the HP folks solved the same thread switching + problem that 4.17 solves. Taking 4.17. + (restore_current_thread): Print out the current frame after + switching threads. + (thread_apply_all_command): Ifdefing a print statement for + HPUXHPPA. The HP folks want to print out a tid rather than pid? + (thread_apply_command): Ifdefing a print statement for + HPUXHPPA. The HP folks want to print out a tid rather than pid? + (thread_command): Decided not to take HP change. + + * thread.c: Fixing gdb core dump problem causing many testsuite + failures. + (add_thread): Remove call to bpstat_clear, initialize + tp->stepping_through_solib_catchpoints = NULL; + + * thread.c: Changes for catchpoints, shared libaries, + (thread_info): Additional fields in the thread_info struct + for stepping_through_solib_after_catch and + stepping_through_solib_catchpoints. + (add_thread): Initialize the new thread_info fields. + (load_infrun_state): Additional parameters for handling + catchpoints and shared libraries. + (save_infrun_state): Additional parameters for handling + catchpoints and shared libraries. + + * top.c (command_loop): Initialize space_at_cmd_start to 0. + (set_prompt): New function. + (togglelist, stoplist): New command lists. + (command_loop): Tui changes -- paranoia to make sure + insert mode is off when not editing. + (quit_force): Clean up tui on exit. + (init_main): Make definition of info status command dependent upon + dbx mode not being set. + (fputs_unfiltered_hook): Changed stream parameter from FILE + to GDB_FILE + (flush_hook): Changed stream parameter from FILE to GDB_FILE + + * top.h (set_prompt): Declare. + + * typeprint.c (whatis_exp): Decide real runtime type. For the vtable + case. + + * utils.c (query): Changes to prevent cursor from jumping around in the + TUI. Call tuiBufferGetc explicitly, rather than passing it + into tuiDo. The tuiDo function does some additional work + that is inappropriate when handling queries. + (GDB_FILE_ISATTY): New macro that takes a GDB_FILE param and + determines whether or not it's using a tty. + (gdb_file_isatty); called by the GDB_FILE_ISATTY macro. Does + the actual work + (init_page_info): Call GDB_FILE_ISATTY rather than ISATTY + (print_spaces): Fix parameter to fputc. fix call to + gdb_file_adjust_strbuf. + (gdb_file_init_astring): Fix parameter to xmalloc + (gdb_file_deallocate): New function to deallocate + a GDB_FILE object and possibly a string buffer + (gdb_file_init_astring): Initialize buffer as the empty + string. Indent GNU style. + (gdb_fopen): Gdb_fopen is called if the GDB_FILE object is + actually afile rather than astring. The routine now allocates space + for a GDB_FILE object and initializes its fields in addition to + performing an fopen. + (gdb_flush): Fix the parameter passed into fflush. It's now + stream->ts_filestream. + (gdb_fclose): Pass in an object of type GDB_FILE **. Fix parameter + to fclose. It's now tmpstream->ts_filestream. Make sure to free + the GDB_FILE object and set the GDB_FILE * object to NULL. + (gdb_adjust_strbuf): New function. Determine if the current + ts_strbuf field contains sufficient space to concatenate a string + of length n on the end. If not, then reallocate the ts_strbuf. + (print_spaces): Check to see if the GDB_FILE is afile or + astring. If it is astring, then adjust the size of the ts_strbuf + field and concatenate the correct number of spaces onto the end of + the buffer. Otherwise continue to use fputc. + (gdb_file_get_strbuf): New function. return a ptr to the ts_strbuf + field in a GDB_FILE object. + (gdb_file_init_astring): New function to allocate space for and + initialize a GDB_FILE object when it is an astring. + (set_width): Declare it. + (pagination_enabled): Define it. + (query): Tui changes. + (init_page_info, set_width): New functions. + (set_width_command): Call set_width. + (_initialize_utils): Replace termcap stuff with call to + init_page_info; if xdb_commands set, define am and sm commands; + define pagination as a set/show command. + (vfprintf_maybe_filtered): Change FILE to GDB_FILE. + (fputs_maybe_filtered): Ditto. + (print_spaces): Ditto. + (gdb_printchar): Ditto. + (gdb_flush): Ditto. + (fputs_filtered): Ditto. + (vfprintf_filtered): Ditto. + (vfprintf_unfiltered): Ditto. + (fprintf_filtered): Ditto. + (fprintf_unfiltered): Ditto. + (fprintfi_filtered): Ditto. + (print_spaces_filtered): Ditto. + (fprintf_symbol_filtered): Ditto. + (gdb_fclose): New function. + + * valops.c (call_function_by_hand): Assign to param_type only + if function has parameters. + + * valops.c (call_function_by_hand): Ifdef the + HP_COMPILED_TARGET stuff. + (value_arg_coerce): Ditto. + + * valops.c (call_function_by_hand): Make sure param_type is + initialized to NULL. + + * valops.c (find_rt_vbase_offset): Add parameter to value_at. + (value_rtti_type): Ditto. + (value_full_object): Ditto. + + * valops.c (search_struct_field_aux): Fixed mismatching parenths + + * valops.c (search_struct_field_aux): Make sure TYPE_TAG_NAME + is not null before copying it. + + + * valops.c (search_struct_field_aux): Set found_class_name to null + if class has no name (anon unions case). Adjust base_addr + computation. + + * valops.c (value_arg_coerce): Change final arg to int. + + * valops.c (value_arg_coerce): Remove the conditional on HP + compiled target, for doing coercion of float to double. Removed + third parameter, using_gcc. + (call_function_by_hand): Do not use HP_COMPILED_TARGET, just + use the gcc_compiled variable. + + * valops.c (value_cast): Take case of the enclosing_type and + pointer_to_offset fields. + (value_at): Use VALUE_CONTENTS_ALL_RAW + (value_fetch_lazy): Ditto + (value_assign): Handle enclosing_type, embedded_offset and + pointed_to_offset fields. + (value_repeat): Use VALUE_CONTENTS_ALL_RAW and VALUE_ENCLOSING_TYPE. + (value_ind): Set enclosing_type and embedded_offset correctly, + for a pointer value being dereferenced. Target memory bytes + corresponding to the size of the enclosing type are retreived. + (value_addr): Handle enclosing_type and pointed_to_offset. + (value_push): Use VALUE_CONTENTS_ALL and VALUE_ENCLOSING_TYPE. + (value_arg_coerce): Coerce floats to doubles only if gcc was not + used to compile the target. + (call_function_by_hand): Handle pointers to functions as paramters. + (value_array): Use VALUE_CONTENTS_ALL and VALUE_ENCLOSING_TYPE. + (search_struct_method): Produce more informative error message. + (find_rt_vbase_offset): Deal with negative offsets. + (value_find_oload_method_list): New function. Return the list of + overloaded methods of a specified name. + (find_method_list): New function. Search through the methods of an + object (and its bases) to find a specified method. + (value_full_object): New function. Given a value, check its real + run-time type. + (value_rtti_target_type): New function. Given a pointer value V, find + the real (RTTI) type of the object it points to. + (value_rtti_type): New function. Find the real run-time type of a + value using RTTI. + + * valops.c: Include gdbcmd.h + Set global overload_resolution to 0. + (find_function_in_inferior): Modify error message. + (value_allocate_space_in_inferior): Modify error message. + (value_cast): Deal with HP/aCC peculiarities. + (value_of_variable): Use SYMBOL_SOURCE_NAME instead of SYMBOL_NAME. + (value_addr): Modify address value by adding the embedded offset. + (value_ind): Modify the address of the object by the pointed_to_offset. + (call_function_by_hand): Do not do any extra alignment if not needed. + Fetch the return value from the stack rather then from the register, + for the hppa architecture. + (search_struct_field): Rewritten. Now this function uses + search_struct_field_aux to do all the work. + (search_struct_field_aux): New function. This is the old + search_struct_field rewritten. + (find_rt_vbase_offset): Give error if virtual table pointer is not good. + (find_overload_match): New function. Find the best function that + matches on the argument types according to the overload resolution + rules. + (_initialize_valops): Add new set/show command for overload-resolution. + + * value.h (VALUE_POINTED_TO_OFFSET): New macro. + Add field pointed_to_offset to value structure. + Add prototypes for new functions in valops.c. + + * value.h (write_register_pid): Change prototype to match + function. + + * value.h: Hp merge, 4/15/98 snapshot + Added parameter to val_print func decl. + Added new macro, VALUE_EMBEDDED_OFFSET, and + new func decl, find_rt_vbase_offset, for C++ + support. + + * values.c (allocate_value): Allocate also for value_embedded_offset + and value_enclosing_type. + (value_copy): Copy value_embedded_offset and value_enclosing_type too. + Use all_raw in copying the value itself. + (value_primitive_field): Add handling of base subobjects. + + * values.c (value_copy): Copy the pointed_to_offset as well. + (allocate_value): Allocate the pointed_to_offset as well. + (value_virtual_fn_field): Rewrite. + + * values.c (value_primitive_field): Adjust embedded offset and + offset calculation. + + * values.c (value_static_field): Take into consideration that static + data members can be minimal symbols too. + + * values.c (value_virtual_fn_field): Fix call to value_at. + + * win32-nat.c (handle_load_dll): Added params to call to symbol_file_add. + + Other changes have to do with XDB compatability. Leave oout + for now. + + defs.h (vfprintf_filtered): Change FILE to GDB_FILE in decl. + (fprintf_filtered): Ditto. + (fprintfi_filtered): Ditto. + (vfprintf_unfiltered): Ditto. + (fprintf_unfiltered): Ditto. + + infcmd.c (_initialize_infcmd): If xdb_commands is set, make S an + alias for next and define R, lr, g. Define go. + + pyr-tdep.c (pyr_print_insn): Change FILE to GDB_FILE. + + + * breakpoint.c (create_temp_exception_breakpoint): #If it out -- + nothing calls it. + (bpstat_stop_status): Don't call SOLIB_HAVE_LOAD_EVENT if it's not + defined; don't call SOLIB_HAVE_UNLOAD_EVENT if it's not defined. + (bpstat_get_triggered_catchpoints): If we don't have shared + library support, then don't call SOLIB_LOADED_LIBRARY_PATHNAME nor + SOLIB_UNLOADED_LIBRARY_PATHNAME. + (watch_command_1): Don't require a run before a watch command + unless we're on HP [it's an HP OS bug, not a generic limitation] + (catch_load_command_1): Don't define if no shared libraries. + (catch_command_1): Don't claim to support fork catchpoints unless + CHILD_INSERT_FORK_CATCHPOINT is defined, don't claim to support + vfork catchpoints unless CHILD_INSERT_VFORK_CATCHPOINT is defined, + don't clain to support shared library load catchpoints if shared + libraries aren't supported, and don't claim to support exec + catchpoints unless CHILD_INSERT_EXEC_CATCHPOINT is defined + + There are new target_ops vector fields that pertain + only to HPUX. Added the to_require_attach and + to_require_detach fields to exec_ops. These new + fields are ifdef'ed for HPUX_SNAP1. + + * breakpoint.h: + Fix compile error in enum bptype. + + * coff-solib.h: + Fixed a number of macro definitions. SOLIB_LOADED_LIBRARY_PATHNAME, + SOLIB_HAVE_LOAD_EVENT, SOLIB_HAVE_UNLOAD_EVENT, + SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_IN_DYNAMIC_LINKER. These + macros are only meaningful (for now) for SOM. So, all + the macros were defined as error(...), but were used in + conditions. This caused the compile to crap out. I redefined + these (for now) to be 0. + + * procfs.c: + (procfs_create_inferior): Fix call to fork_inferior -- need another + parameter. + + * solib.h: + Fixed a number of macro definitions. SOLIB_LOADED_LIBRARY_PATHNAME, + SOLIB_HAVE_LOAD_EVENT, SOLIB_HAVE_UNLOAD_EVENT, + SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_IN_DYNAMIC_LINKER. These + macros are only meaningful (for now) for SOM. So, all + the macros were defined as error(...), but were used in + conditions. This caused the compile to crap out. I redefined + these (for now) to be 0. + + * valops.c: + (search_struct_field): Undeclared local variable, "assigned". + (find_rt_vbase_offset): Fixed call to value_at + + * value.h: Fix signature for find_rt_vbase_offset funct decl + (missing a param) + +Wed Dec 30 17:48:12 1998 Stan Shebs + + From J.T. Conklin : + * i386-stub.c: Fix error string in last change. + +1998-12-30 Jason Molenda (jsm@bugshack.cygnus.com) + + * utils.c: instead of "readline/readline.h". + + * configure.in (TERM_LIB): Search for the appropriate term library + on the host system. + * configure: Regenerated. + * Makefile.in (TERMCAP): Set based on autoconf check. + * config/*/*.mh: Don't override TERMCAP setting. + +Wed Dec 30 17:23:14 1998 Mark Alexander + + * value.c (value_virtual_fn_field): Handle the situation where + vtbl is a pointer to a structure instead of a pointer to an array. + +Mon Dec 28 17:43:36 1998 David Taylor + + The following changes were made by Jim Blandy , + Edith Epstein , Elena Zannoni + Stan Shebs , and David + Taylor , as part of the project to merge in + changes originally made by HP; HP did not create ChangeLog + entries. + + * c-lang.h (cp_print_value_fields): Update prototype; fixed + prototype decl for c_val_print function -- it needed an + embedded_offset param; fixed prototype of cp_print_value_fields. + Include value.h. + (C_LANG_H): Define. + + * c-valprint.c (c_val_print): Add new parameter embedded_offset. + Add embedded_offset to valaddr in function calls. fix calls to + val_print, and cp_print_value_fields. Attempt to determine the + real type of the object to be printed. fixed call to + cp_print_value_fields. process TYPE_CODE_METHOD as well. moved + call to check_typedef out of conditional. add embedded offset + param to val_print call. + + (c_value_print): Add new parameter to call to val_print. Handle + pointer to class case. Ensure that const char *, const unsigned + char * come out without the type but the volatile variants and the + signed variants don't. + + * ch-lang.h (chill_val_print): Add parameter to decl. + + * ch-valprint.c: The various print routines have an additional + parameter. Currently, the new parameter is only used when printing + C++ expressions. So, in ch-valprint.c, the new parameter is always + 0. Changes in calls to val_print, chill_val_print, c_val_print + Affected functions are chill_val_print_array_elements, + chill_val_print, chill_print_value_fields, chill_value_print. + + * cp-valprint.c add vtable pointers names for aCC (HP) compiler. + (cp_print_class_method): Print message for HP/aCC case. + (cp_print_class_member): Add comments. + (cp_print_value): Adjust address computations for virtual base + classes. add new parameter 'offset'. Find correct offset for + base class in HP/aCC case. Change call to cp_print_value_fields + to have extra par. + (cp_print_value_fields): Do not print also if the only field is + the vtable pointer. Print out vtable ptr, for HP/aCC compiled + case. do not print leading '=' in case of anonymous union, or + struct. add new parameter 'offset'. Do not print the vtable + pointer as a member, in the HP aCC case. Changed calls to + val_print to have extra parameter. + (cp_print_hpacc_virtual_table_entries): New function. Print vtable + entries, in HP/aCC compiled case. + (cp_print_static_field): Change call to cp_print_value_fields, and + val_print. + + * d30v-tdep.c (d30v_print_register): Add embedded_offset param + to val_print call. + + * defs.h: Additional include files included when TUI is defined. + (gdb_file_isatty): New function decl. + (GDB_FILE): If TUI is defined, define a structure rather + than making this an alias for FILE. + (gdb_stdout, gdb_stderr): If TUI is defined, then define these + as pointers to variables of type GDB_FILE rather than making them + be aliases for stdout and stderr. + (TUIDO): Add definition conditionalized on definition + (or lack thereof) of TUI. + (command_class): Add two additional values. + (precision_type): New enum. + (gdb_fclose): Add decl. + (store_address): Change prototype to match function. + (tui_version, xdb_commands, dbx_commands): Add decls. + (gdb_file_deallocate): New function decl + (pa_do_strcat_registers_info): New function decl. + (streamtype): New enumerated type to distinguish between output to + a FILE and output to a buffer. + (tui_stream): New struct type, named GDB_FILE. + (gdb_stdout): Of type GDB_FILE, will pass this around gdb rather + than stdout. + (gdb_stderr): Of type GDB_FILE, will pass this around gdb rather + than stderr. + (fputs_unfiltered_hook): Change stream parameter from FILE to + GDB_FILE. + (flush_hook): Change stream parameter from FILE to GDB_FILE. + (gdb_fclose): Fix decl for gdb_fclose; parameter is now of + type GDB_FILE **. + (gdb_file_adjust_strbuf): New function decl. function lives + in utils.c. + (gdb_file_init_astring): New function decl. function lives + in utils.c. + (gdb_file_get_strbuf): New function decl. function lives in + utils.c. + (source_full_path_of): Declare. + + * exec.c (_initialize_exec): Make definition of file command be + dependent upon dbx_commands not being set. + (exec_file_attach): New function. + (exec_file_command): Call it. + (exec_ops): Add new target vector fields. + + * f-lang.h (f_print_type): Change FILE to GDB_FILE in decl. + (f_val_print): Ditto. + (f_val_print): Add parameter to the function decl. + + * f-valprint.c (_initialize_f_valprint): If xdb_commands is set, + define lc command. + (f77_create_arrayprint_offset_tbl): Change FILE to GDB_FILE. + (f77_print_array): Ditto. + (f77_print_array_1): Ditto. + (f_val_print): Ditto. + (f_val_print): Add a parameter; this new parameter is currently + only non-zero when handling C++ expressions. In this file its + value is always 0. changed fflush to gdb_flush. + + * gnu-nat.c: (init_gnu_ops): Add new target vector fields. + (gnu_create_inferior): Add param to fork_inferior call. + + * hppa-tdep.c (after_prologue): If f is NULL, don't dereference + it. if no debug info, return zero telling caller that we need to + find the end of the prologue via the hard way (instruction + examination). + (find_unwind_entry): Avoid dereferencing a null + pointer. + (hppa_pid_to_exec_file): Deleted -- no longer used. + (hppa_prepare_to_proceeed): Add prototype. + (read_unwind_info): Purecov comments, bug fixes. + (find_unwind_entry): Purecov comments, bug fixes. + (find_stub_with_shl_get): Purecov comments. + (frame_chain): Additional parens. + (hppa_push_arguments): Changes to commented out version of routine. + (hppa_fix_call_dummy): Purecov comments, fix location of end.o. + (in_solib_call_trampoline): Purecov comments. + (in_solib_return_trampoline): Purecov comments. + (setup_d_pid_in_inferior): Fix location of end.o. + (initialize_hp_cxx_exception_support): Fix location of end.o. + (child_enable_exception_callback): Purecov comments. + (pa_do_strcat_registers_info): Has a new parameter, precision, + which is passed into the call to pa_strcat_fp_reg to indicate + whether to display the floating point registers using + single or double preceision. + (pa_strcat_registers): Introduce local variable, precision, and + pass it into call to pa_strcat_fp_reg. + (pa_strcat_fp_reg): Modified function. New parameter, precision, + used by function to decide whether to use single or double + precision. Also add the code to put a double precision value + into a buffer. + (pa_do_strcat_registers_info): New routine. called by + tui/tuiRegs.c:_tuiRegisterFormat to place a register name + and value into a string buffer. Interface may change in + future. Checking this in so that we have something + functional for HP. + (pa_strcat_registers): New routine, called by + pa_do_strcat_registers_info. Does same thing as + pa_print_registers except it takes a stream parameter. + This routine should disappear in future. Checking in + so that we have something functional to give HP + (pa_strcat_fp_reg): New routine, called by + pa_do_strcat_registers_info and pa_strvat_registers + to place a floating point register name and value into + a buffer. This interface may change in future. + Checking in so that we have something functional to give HP. + (pa_print_fp_reg): Change prototype to match def'n. + (pa_register_look_aside): Fix comment immediately before function. + Changes to better support stack unwinding, reading and writing + registers for HPUX. New includes ptrace.h, bfd.h, dl.h. + (internalize_unwinds): Initialize new fields in table. + (read_unwind_info): Entries in the table are now more complex + structures. References of the form ...->table[index].stub_type are + now ...->table[index].stub_unwind.stub_type. + (find_proc_framesize): Add a check for pc == 0. + (rp_saved): Entries in the table are now more complex + structures. References of the form ...->table[index].stub_type are + now ...->table[index].stub_unwind.stub_type. + (frameless_function_invocation): Stub_type becomes + stub_unwind.stub_type + (saved_pc_after_call): Stub_type becomes stub_unwind.stub_type + (hppa_frame_saved_pc): Stub_type becomes stub_unwind.stub_type + (frame_chain_valid): Stub_type becomes stub_unwind.stub_type + (hppa_call_dummy): Stub_type becomes stub_unwind.stub_type + (pa_print_fp_reg): Additional params to call val_print + (in_solib_call_trampoline): Stub_type becomes + stub_unwind.stub_type + (in_solib_return_trampoline): Stub_type becomes + stub_unwind.stub_typ + (skip_trampoline_code): Additional code to handle external + dyncalls. Also stub_type becomes stub_unwind.stub_type + (hppa_pid_to_exec_file): New funct. FOr HPUX 10.0 and beyond there + is an explicit ptrace request for getting the pathname associated + with a process id (pid). + (hppa_pid_to_exec_file): Remove unwanted param from call to + call_ptrace. + (args_for_find_stub): New structure. + (find_unwind_entry): Deal with null input pc value. + (rp_saved): Ditto. + For the import stub, return -24 always. + (hppa_frame_saved_pc): Save old pc value, to detect we are in a loop. + (init_extra_frame_info): Use TARGET_READ_FP. + (frame_chain): Include thread support. + If the caller's pc is zero, we lose and return, just like stack + bottom. + Disable warning about being unable to find unwind info. + (hppa_push_arguments): Rewrite. + (hppa_value_returned_from_stack): New function. Handles returning + a value larger than 64 bits, stored on the stack. + (find_stub_with_shl_get): New function. To look up symbols in shlibs. + (cover_find_stub_with_shl_get): New function. Cover routine for + find_stub_with_shl_get to pass to catch_errors. + (hppa_fix_call_dummy): Comment out old stub mechanism. + Rewrite using dyncall. + (target_read_fp): New function. + (pa_do_registers_info): Floating point registers start at FP4. + (pa_print_registers): Use FP4_REGNUM instead of 72. + (skip_trampoline_code): Do machine instruction matching for PA2.0. + (setup_d_pid_in_inferior): New function. Exception handling support. + (initialize_hp_cxx_exception_support): Ditto. + (child_enable_exception_callback): Ditto. + (child_get_current_exception_event): Ditto. + + * hpux-thread.c (hpux_thread_ops): Add new target vector fields. + + * infcmd.c: Include objfiles.h. + (attach_command): New local variable, exec_file, add code to + determine exec_file from pid if exec_file is not already known, + call new target operation, target_post_attach -- a no-op unless + on HPUXHPPA. + (detach_command): After detaching, do a SOLIB_RESTART. + (objfiles.h): Fix typo on include line. + (run_command): Only call SOLIB_RESTART if it's defined. + (detach_command): Ditto. + (run_command): If program has already been started, and decide + to restart it, the kill the target, flush the caches, + call init_wait_for_inferior. Also purge old solib objfiles. + (run_stack_dummy): Add calls to + disable_watchpoints_before_interactive_call_start and + enable_watchpoints_after_interactive_call_stops. + (finish_command): Alter code handling the evaluation and printing + of the target function's return value. + (attach_command): When given a pid, but no exec file, try to + determine the exec file from the process. If the process does not + record a full path name, try to qualify the filename against the + source path. + (_initialize_infcmd): Add some verbiage about how to use the + attach command. + (do_registers_info): Changed calls to val_print + made the symfile.h include preceed the + objfiles.h include. The other ordering caused a + compile problem (incompletely defined types). + + * inftarg.c (child_post_attach): Fix decl, make static. + (proc_wait): Make globally visible. + (child_insert_fork_catchpoint, etc): Fix return type. + (child_detach_from_process): Declare. + (child_attach_to_process): Declare. + (child_stop): Make static to match decl. + (ptrace_him): Change prototype back to return int. + (ptrace_me): Remove debug output, pass NULL to fork_inferior if + not HPUX. + (proc_wait): function prototype and definition are enclosed by + proc_wait ifndef + (child_attach_to_process): New function, does most of the work + that child_attach used to do and some additional work to determine + whether gdb is already attached to the target how to react. + (child_attach): Altered. It's now a wrapper for + child_attach_to_process. + (child_require_attach): New function, called if should attach even + when gdb is already attached to target. + (child_detach_from_process): New function, does most of the work + that child_detach used to do and some additional work to determine + whether gdb is currently attached to the target. + (child_detach): Altered. It's now a wrapper for + child_detach_from_process. + (child_require_detach): New function, called if should try to + detach even when gdb is not attached to target. + (ptrace_him): Calls a new function, + target_acknowledge_forked_child. Currently, + target_acknowledge_forked_child, is only defined to do something + for HPUX. + (child_create_inferior): Changed call to fork_inferior. + (child_ops): Add to_require_attach and to_require_detach fields + to the child_ops target ops vector. + Some hacks for ttrace work: + (child_wait): Additional local variables, additional code in + while loop to check for process exited, process forked, + process vforked, process execd. + (child_thread_alive): John B. seems to think that the kill + call is inapproapriate for HPUX. + (child_attach_to_process): Using strtol rather than atoi. + no longer check for case where there is no known exec file. + (child_post_attach): New function, a default, a no-op. + (child_insert_fork_catchpoint): New function, a default, a no-op. + (child_remove_fork_catchpoint): New function, a default, a no-op. + (child_insert_vfork_catchpoint): New function, a default, a no-op. + (child_remove_vfork_catchpoint): New function, a default, a no-op. + (child_can_follow_vfork_prior_to_exec ):new function, a default, + a no-op. + (child_insert_exec_catchpoint): New function, a default, a no-op. + (child_remove_exec_catchpoint): New function, a default, a no-op. + (child_has_execd): New function, a default, returns 0. + (child_reported_exec_events_per_exec_call): New function, a + default, returns 1. + (child_has_exited): New function, a default. + (child_core_file_to_sym_file): New function, a default, returns NULL. + (child_ops): Initialize new target vector fields. + + * jv-lang.h: (Java_val_print): Add embedded_offset param to func + decl. + + * jv-valprint.c: Changing calls to val_print to accomodate new param. + (java_value_print): Add embedded_offset param to val_print call + (java_print_value_fields): Add embedded_offset param to val_print + call. + (java_val_print): Add embedded_offset param. alter call to + c_val_print to accomodate embedded_offset param. + + * language.c (lang_bool_type): Return builtin_type_bool in c++ + case. + (unk_lang_val_print): Add embedded_offset param to + prototype decl and definition. + + * language.h (LA_VAL_PRINT macro, la_val_print function decl): + altered to accomodate the new parameter to the various print + functions. + + * m2-lang.h (m2_val_print): Add a parameter to the function decl. + + * m2-valprint.c (m2_val_print): Add a parameter. + This parameter is currently only used when evaluating C++ + expressions. So, it is always 0 in this file. + + * m3-nat.c (m3_create_inferior): Add param to fork_inferior call + (m3_pid_to_exec_file): New function + (m3_ops): Add new target vector fields. + + * mac-nat.c (init_child_ops): Add new target vector fields. + + * mips-tdep.c: Chnages to accomodate additional parameter + to val_print. + (mips_print_register): Alter calls to val_print + + * monitor.c (monitor_write): Change stderr to gdb_stderr. + (monitor_remove_breakpoint): Ditto. + (init_base_monitor_ops): Add new target vector fields. + + * ppc-bdm.c (init_bdm_ppc_ops): Add new target vector fields. + + * printcmd.c (do_examine): When saving a value_ptr, remove it from + the list of value_ptr's to be freed automatically; when discarding + a previously saved value_ptr, free it. + (print_formatted): Update comments; add new comments. + (printf_command, print_insn): Purecov comments. + (_initialize_printcmd): Add assign as a command if dbx_commands is + set; create va as an alias for disassemble if xdb_commands is set. + (address_info): New cases LOC_INDIRECT and + LOC_THREAD_LOCAL_STATIC. + (display_command): If tui_version and exp starts with a '$', then + don't display it unless tui_vSetLayoutTo fails. + (disassemble_command): Add tuiDo calls. + (print_scalar_formatted): For integers that are long long, check + the print format and print out in binary octal, decimal, or + hex. Call the new print_*_chars functions in valprint.c + (print_frame_args): Altered calls to val_print, to reflect + additional parameter to val_print (case LOC_BASEREG_ARG). + + * procfs.c: (Procfs_init_inferior): Return value is now a void. + (procfs_ops): Add new target vector fields. + (procfs_create_inferior): Fix call to fork_inferior -- need another + parameter. + + * remote-adapt.c (adapt_open): Change stderr to gdb_stderr. + (adpat_insert_breakpoint): Ditto. + (init_adapt_ops): Add new target vector fields. + + * remote-array.c (array_wait): Change fflush to gdb_flush and + stdout to gdb_stdout. + (init_array_ops): Add new target vector fields. + + * remote-bug.c (bug_load): Change fflush to gdb_flush; stdout to + gdb_stdout. + (bug_wait): Change stderr to gdb_stderr. + (bug_insert_breakpoint): Ditto. + (init_bug_ops): Add new target vector fields. + + * remote-e7000.c + (init_e7000_ops): Add new target vector fields. + * remote-eb.c (init_eb_ops): Ditto. + * remote-es.c (init_es1800_ops): Ditto. + (init_es1800_child_ops): Ditto. + * remote-es.c (init_es1800_ops): Ditto. + (init_es1800_child_ops): Ditto. + * remote-hms.c (init_hms_ops): Ditto. + * remote-hms.c (init_hms_ops): Ditto. + * remote-nindy.c (init_nindy_ops): Ditto. + * remote-nrom.c (init_nrom_ops): Ditto. + * remote-os9k.c (init_rombug_ops): Ditto. + * remote-rdp.c (init_remote_rdp_ops): Ditto. + * remote-sds.c (init_sds_ops): Ditto. + * remote-sim.c (init_gdbsim_ops): Ditto. + * remote-st.c (init_st2000_ops): Ditto. + * remote-udi.c (init_udi_ops): Ditto. + * remote-vx.c (init_vx_ops): Ditto. + (init_vx_run_ops): Ditto. + * remote-vx.c: (Init_vx_ops): Ditto. + (init_vx_run_ops): Ditto. + + * remote-mips.c (mips_getstring): Change stderr to gdb_stderr. + (pmon_insert_breakpoint): Ditto. + (pmon_remove_breakpoint): Ditto. + (check_lsi_error): Ditto. + (common_breakpoint): Ditto. + (pmon_makeb64): Ditto. + + * remote-mips.c (mips_xfer_memory): Change fflush to gdb_flush; + change stdout to gdb_stdout. + + * remote-mm.c (mm_open): Change stderr to gdb_stderr. + (init_mm_ops): Add new target vector fields. + (mm_load): Fixed params in commented out call to symbol_file_add. + + * remote-nindy.c (instream): Change decl to FILE. + + * remote-udi.c (udi_load): Fixed params in call to symbol_file_add. + + * remote-vx.c (vx_add_symbols): Fixed params in call to + symbol_file_add. + + * remote.c (init_remote_ops): Cosmetic change to match expected + test output. + + * rs6000-nat.c (add_vmap): Add params to call to allocate_objfile. + + * scm-lang.h: Add parameter to scm_val_print function decl. + + * scm-valprint.c (scm_scmval_print): Cast svalue to (int); new + parameter. This parameter is currently only used when evaluating + C++ expressions. So, it is always 0 in this file. + (c_val_print): Fixed prototype decl; it needed an embedded_offset + param. + + * sol-thread.c (sol_core_ops): Add new target vector fields. + (sol_thread_ops): Ditto. + + * somsolib.c (DLD_FLAGS_MAPPRIVATE): New macro. + Define bit of __dld_flags in HP-UX a.out files. + (DLD_FLAGS_HOOKVALID): Ditto. + (DLD_FLAGS_LISTVALID): Ditto. + (DLD_FLAGS_BOR_ENABLE): Ditto. + (som_solib_total_st_size): Cumulative size in bytes of the + symbol tables of all shared objects on the so_list_head list. + (som_solib_st_size_threshhold_exceeded): Threshold for adding symbols + for shlibs. + (som_solib_sizeof_symbol_table): New function. Computes size of + symbol table for a shlib. + (som_solib_load_symbols): New function. Load symbols from shlib. + (som_solib_add): Detect if __dld_list is not valid. + Record main program's symbol table size. + Load symbols if called from command line. + Keep threshold into account when loading shlib symbols. + (som_solib_create_inferior_hook): Use dld_flags macros. + (som_sharedlibrary_info_command): Let user know if symbols were + not loaded. + (som_solib_restart): Discard all the shlibs descriptors. + (_initialize_som_solib): Chenge help message for auto-solib-add + command. + Set threshold for symbol table to 50 megabytes. + (_initialize_som_solib): Add call to som_solib_restart. + (som_solib_restart): New function + (som_solib_in_dynamic_linker): New function + (som_solib_desire_dynamic_linker_symbols): New function + (som_solib_unloaded_library_pathname): New function + (som_solib_loaded_library_pathname): New function + (som_solib_library_pathname): New function + (som_solib_have_unload_event): New function + (som_solib_have_load_event): New function + (som_solib_create_catch_unload_hook): New function + (som_solib_create_catch_load_hook): New function + (som_solib_create_inferior_hook): Rewritten + dld_cache: New struct + addr_and_unwind_t: New struct + (find_unwind_entry) add prototype + Include assert.h, remove references to ASSERT macro, + add include of fcntl.h so that O_RDONLY is defined. + (som_solib_create_inferior_hook): Introduce new local + msymbol2 and change some msymbol's to msymbol2's -- was clobbering + msymbol, passing a NULL to lookup_minimal_symbol_solib_trampoline, + and ultimately core dumping with a SEGV. + (som_solib_mapped_entry): Additional comments for text_addr, + text_link_addr, text_end, and tsd_start_addr fields. Commenting + out 2 tsd fields, __data_start and __data_end. + (som_solib_add_solib_objfile): Add params to calls to symbol_file_add. + Add some code for distinguishing between a shared library and other + objfiles. This appears to be a prelude to thread local storage. + (som_solib_load_symbols): Changes to printf statement + enclosed by SOLIB_DEBUG ifdef. + (som_solib_add): Change comment to correctly specify path + to end.o -- /opt/langtools/lib/end.o. changes to printf statement + enclosed by SOLIB_DEBUG ifdef. + Removed several SOLIB_DEBUG ifdefs and the associated printfs. + Add code to find the start address for the object file's thread + local storage + (som_solib_create_inferior_hook): Fix warning messages use correct + path to end.o -- /opt/langtools/lib/end.o. Change control flow. + No longer user early returns from function is cases of error. + (reset_inferior_pid): New function + (som_solib_remove_inferior_hook): New function + (so_lib_thread_start_addr): New function. used for tsd. + (struct som_solib_mapped_entry): Add new field tsd_start_addr. + (struct so_list): Add new field solib_addr. + (som_solib_add_solib_objfile): New function. + (som_solib_load_symbols): Rewritten. + (som_solib_add): Make sure we don't load the symbols in if the + threshold was exceeded. + (som_solib_get_solib_by_pc): New function. Return the address of + handle of the shared library. + (som_solib_restart): Disable breakpoints at restart. + + * sparcl-tdep.c (init_sparclite_ops): Add new target vector fields. + + * target.c (cleanup_target): Changed casting of default functions + for to_has_forked, to_has_vforked, to_pid_to_exec_file to get rid + of warnings. Fixed PARAMS for to_has_syscall_event. Fixed the + return type on a few of the default function values. + (cleanup_target): Changes in the de_fault macro, both to + accomodate the new target_ops vector fields and to use + more accurate default functions. + (debug_to_open): Change stderr to gdb_stderr. + (debug_to_close): Ditto. + (debug_to_attach): Ditto. + (debug_to_post_attach): Ditto. + (debug_to_require_attach): Ditto. + (debug_to_detach): Ditto. + (debug_to_require_detach): Ditto. + (debug_to_resume): Ditto. + (debug_to_wait): Ditto. + (debug_to_post_wait): Ditto. + (debug_to_fetch_registers): Ditto. + (debug_to_store_registers): Ditto. + (debug_to_prepare_to_store): Ditto. + (debug_to_xfer_memory): Ditto. + (debug_to_files_info): Ditto. + (debug_to_insert_breakpoint): Ditto. + (debug_to_remove_breakpoint): Ditto. + (debug_to_terminal_init): Ditto. + (debug_to_terminal_inferior): Ditto. + (debug_to_terminal_ours_for_output): Ditto. + (debug_to_terminal_ours): Ditto. + (debug_to_terminal_info): Ditto. + (debug_to_kill): Ditto. + (debug_to_load): Ditto. + (debug_to_lookup_symbol): Ditto. + (debug_to_create_inferior): Ditto. + (debug_to_post_startup_inferior): Ditto. + (debug_to_acknowledge_created_inferior): Ditto. + (debug_to_clone_and_follow_inferior): Ditto. + (debug_to_post_follow_inferior_by_clone): Ditto. + (debug_to_insert_fork_catchpoint): Ditto. + (debug_to_remove_fork_catchpoint): Ditto. + (debug_to_insert_vfork_catchpoint): Ditto. + (debug_to_remove_vfork_catchpoint): Ditto. + (debug_to_has_forked): Ditto. + (debug_to_has_vforked): Ditto. + (debug_to_can_follow_vfork_prior_to_exec): Ditto. + (debug_to_post_follow_vfork): Ditto. + (debug_to_insert_exec_catchpoint): Ditto. + (debug_to_remove_exec_catchpoint): Ditto. + (debug_to_has_execd): Ditto. + (debug_to_reported_exec_events_per_exec_call): Ditto. + (debug_to_has_syscall_event): Ditto. + (debug_to_has_exited): Ditto. + (debug_to_mourn_inferior): Ditto. + (debug_to_can_run): Ditto. + (debug_to_notice_signals): Ditto. + (debug_to_thread_alive): Ditto. + (debug_to_stop): Ditto. + (debug_to_enable_exception_callback): Ditto. + (debug_to_get_current_exception_event): Ditto. + (debug_to_pid_to_exec_file): Ditto. + (debug_to_core_file_to_sym_file): Ditto. + (default_clone_and_follow_inferior): New function prototype + decl and function definition. + (dummy_target): Add new target_ops vector fields and their + initializations. More target_ops vector changes for HPUX new + fields. + (de_fault): Add new HPUX specific target_ops operations to the + de_fault macro + (INHERIT): Add new HPUX specific target_ops operations. + (debug_to_post_wait): New function. + (debug_to_post_startup_inferior): Ditto. + (debug_to_acknowledge_created_inferior): Ditto. + (debug_to_clone_and_follow_inferior): Ditto. + (debug_to_post_follow_inferior_by_clone): Ditto. + (debug_to_create_catch_fork_hook): Ditto. + (debug_to_create_catch_vfork_hook): Ditto. + (debug_to_has_forked): Ditto. + (debug_to_has_vforked): Ditto. + (debug_to_post_follow_vfork): Ditto. + (setup_target_debug): Initialize new target_ops vector fields. + (nosupport_runtime): New function, used in cleanup_target + (update_current_target): Add new new target_ops vector fields to + the INHERIT macro definition. + (generic_mourn_inferior): The call to breakpoint_init_inferior now + takes a parameter. + (normal_pid_to_str): Add a \0 to the end of buf. + (debug_to_has_syscall_event): New function. + (debug_to_enable_exception_callback): New function. + (debug_to_get_current_exception_event): New function. + (setup_target_debug): Initialize the 3 new target_ops vector fields + (struct signals): Fix message associated with SIGRETRACT. + (return_one): New function, used by the de_fault macro + (debug_to_post_attach): New function. + (debug_to_wait): Add new cases TARGET_WAITKIND_FORKED, + TARGET_WAITKIND_VFORKED, TARGET_WAITKIND_EXECD. + (debug_to_insert_fork_catchpoint): New function. + (debug_to_remove_fork_catchpoint): Ditto. + (debug_to_insert_vfork_catchpoint): Ditto. + (debug_to_remove_vfork_catchpoint): Ditto. + (debug_to_can_follow_vfork_prior_to_exec): Ditto. + (debug_to_insert_exec_catchpoint): Ditto. + (debug_to_remove_exec_catchpoint): Ditto. + (debug_to_core_file_to_sym_file): Ditto. + (setup_target_debug): Give new fields in current_target target_ops + vector values. + + * target.h: Include symtab.h. + (target_waitkind): New enumerated values + TARGET_WAITKIND_SYSCALL_ENTRY, TARGET_WAITKIND_SYSCALL_RETURN, + TARGET_WAITKIND_FORKED, TARGET_WAITKIND_VFORKED, + TARGET_WAITKIND_EXECD. + (target_waitstatus): Add a syscall_id field to structure. + (child_has_syscall_event): New decl. + (child_thread_alive): New decl. + (target_ops): Add 3 new fields: To_has_syscall_event, + to_enable_exception_callback, to_get_current_exception_event + (target_enable_exception_callback): New macro. + (target_has_syscall_event): New macro. + (target_get_current_exception_event): New macro. + (TARGET_DISABLE_HW_WATCHPOINTS): New macro. + (TARGET_ENABLE_HW_WATCHPOINTS): New macro. + (PC_REQUIRES_RUN_BEFORE_USE): New macro. + (target_tid_to_str): New macro. + (target_waitstatus): Additional fields in struct to keep track + of child pid and pathname to execd file. + (target_ops): Add in the new target_ops function pointer fields. + New macros to go along with new target_ops fields. + In target_waitstatus.value, change name of child_pid field to + related_pid. + (target_pid_or_tid_to_str): Define default macro. + Add missing #endif after PC_REQUIRES_RUN_BEFORE_USE definition + (ENSURE_VFORKING_PARENT_REMAINS_STOPPED): Define default macro. + (RESUME_EXECD_VFORKING_CHILD_TO_GET_PARENT_VFORK): Define default + macro. + There are new function decls for to_require_attach + and to_require_detach. There are also new macros, + target_require_attach and target_require_detach. There are + also new function decls for find_default_require_detach + and find_default_require_attach. + (target_ops): New fields to_post_wait, to_post_startup_inferior + to_acknowledge_created_inferior, to_clone_and_follow_inferior, + to_post_follow_inferior_by_clone, to_create_catch_fork_hook, + to_create_catch_vfork_hook, to_has_forked, to_has_vforked, + to_post_follow_vfork, to_pid_to_exec_file. + New function definitions child_pid_to_exec_file, child_post_wait, + child_post_startup_inferior, child_acknowledge_created_inferior, + child_clone_and_follow_inferior, + child_post_follow_inferior_by_clone, child_create_catch_fork_hook, + child_create_catch_vfork_hook, child_has_forked, + child_has_vforked, child_acknowledge_created_inferior, + child_post_follow_vfork. + New macros target_post_startup_inferior, + target_acknowledge_created_inferior, + target_clone_and_follow_inferior, + target_post_follow_inferior_by_clone, + target_create_catch_fork_hook, target_create_catch_vfork_hook, + target_pid_to_exec_file. + (find_default_clone_and_follow_inferior): New function prototype. + + + * v850ice.c (init_850ice_ops): Init new target vector fields. + + * valprint.c (print_binary_chars): Print out long long as + a binary number. + (print_octal_chars): Print out long long as an octal number + (print_decimal_chars): Print out long long as a decimal number + (strcat_longest): Define it. + * valprint.c: Hp merge, 4/15/98 snapshot + Add parameter to val_print. This is used for + evaluating C++ expressions. + + * value.h (VALUE_POINTED_TO_OFFSET): New macro. + Add field pointed_to_offset to value structure. + Add prototypes for new functions in valops.c. + (write_register_pid): Change prototype to match + function. + (val_print function decl): Additional parameter. + (VALUE_EMBEDDED_OFFSET): New macro. + (find_rt_vbase_offset): New function decl -- for C++ support. + +Wed Dec 23 15:03:42 1998 Per Bothner + + * Makefile.in (READLINE_CFLAGS): Search $(READLINE_SRC)/.. rather + than $(READLINE_SRC) so #include will work. + * top.c: #include instead of "history.h". + * tracepoint.c: Likewise. + * mac-xdep.c: Likewise. + +Wed Dec 23 12:32:00 1998 Andrew Cagney + + * defs.h (TARGET_FLOAT_FORMAT, TARGET_DOUBLE_FORMAT): Define using + TARGET_BYTE_ORDER and not target_byte_order. + +Tue Dec 22 10:51:33 1998 Elena Zannoni + + * config/i386/cygwin.mh (TERMCAP): define. + (from Chris Faylor, cgf@cygnus.com) + + * top.c: specify directory name for including readline.h + + * tracepoint.c: ditto. + + * utils.c: ditto. + +Mon Dec 21 13:30:34 1998 Mark Alexander + + * value.c (value_virtual_fn_field): Handle the situation where + vtbl is a pointer to a structure instead of a pointer to an array. + +Mon Dec 21 10:38:11 1998 Andrew Cagney + + * mips-tdep.c: (MIPS_DEFAULT_FPU_TYPE): Default to + MIPS_FPU_DOUBLE. + +1998-12-17 J.T. Conklin + + * blockframe.c (get_frame_saved_regs): If the saved_regs_addr ptr + is null, ensure that saved registers are copied from the local + variable that was used to obtain them. + +Sat Dec 19 09:55:09 1998 Stu Grossman + + * mips-tdep.c (mips32_heuristic_proc_desc): Clear temp_saved_regs + on restart. Fixes problem with backtracing through functions that + use virtual frame pointers. + +Fri Dec 18 14:23:34 1998 Andrew Cagney + + * mips-tdep.c (mips_push_arguments): Don't left-shift small + structs being passed in a register when an O64 target. + + * config/mips/tm-mips.h (enum mips_fpu_type, mips_fpu): Move to + mips-tdep.c. + + * mips-tdep.c (mips_fpu_string): Delete variable. + (mips_fpu_type_auto): New variable. + (mips_fpu_type): Rename mips_fpu. + (_initialize_mips_tdep): Delete initialization of mips_fpu et.al. + Rewrite ``set mipsfpu'' command set. + (set_mipsfpu_command, show_mipsfpu_command, + set_mipsfpu_single_command, set_mipsfpu_double_command, + set_mipsfpu_none_command, set_mipsfpu_auto_command): New + functions, handle commands. + (mips_push_arguments, mips_push_dummy_frame, mips_pop_frame, + mips_extract_return_value): Update. + +Thu Dec 17 02:15:40 1998 Andrew Cagney + + * configure.tgt (gdb_target): Identify mips64*vr4100*-*-elf* as + vr4100. + +Thu Dec 17 01:34:36 1998 Andrew Cagney + + * gdbtypes.c (build_gdbtypes): New function. + (_initialize_gdbtypes): Call. + +Wed Dec 16 11:47:00 1998 Andrew Cagney + + * gdbarch.c (show_architecture): Use TARGET_ARCHITECTURE. + * gdbarch.h, gdbarch.c: Fix typo's. Use struct's in preference to + types. + * gdbarch.h, gdbarch.c (gdbarch_debug): Add ``set archdebug'' to + command set. + +Tue Dec 15 23:46:40 1998 Andrew Cagney + + * config/mips/tm-*.h: (TARGET_BYTE_ORDER_DEFAULT, + TARGET_BYTE_ORDER_SELECTABLE_P): Replace TARGET_BYTE_ORDER and + TARGET_BYTE_ORDER_SELECTABLE. + +1998-12-14 Anthony Thompson (athompso@cambridge.arm.com) + + * remote-rdp.c (rdp_init): Don't discard first character on reset. + (translate_open_mode): Define table. + (exec_swi): Handle SWI_Clock. SWI_Open now handles stdin/stdout. + SWI_Write returns number of bytes not written. SWI_Read does the + same. SWI_Seek should return success/failure flag. Fix SWI_Flen. + +1998-12-14 J.T. Conklin + + * config/i386/nbsd.mh, config/m68k/nbsd.mh, config/ns32k/nbsd.mh + (XDEPFILES): Add ser-tcp.o. + +Mon Dec 14 14:46:13 1998 Andrew Cagney + + * monitor.c (monitor_expect, monitor_printf_noecho, + monitor_printf): Always compile EXTRA_RDEBUG code. + (RDEBUG): Ditto. + + From Michael Meissner : + * ppcbug-rom.c (init_ppc_cmds): Cleanup formatting. + +1998-12-08 Michael Meissner + + * monitor.c (monitor_printable_string): New function to convert a + string into a printable representation. + (monitor_error): Call error after converting string into printable + format. + (monitor_printf{,_noecho}): If EXTRA_RDEBUG is defined, convert + string into printable form before printing. + (monitor_expect): Ditto. + (monitor_read_memory{,_single}): Call monitor_error, not error. + (monitor_read_memory): Return immediately if length is 0. + + * ppcbug-rom.c (init_ppc_cmds): Fill in dump_registers field, + which is now required. + +Mon Dec 14 11:01:39 1998 Andrew Cagney + + * gdbarch.h, gdbarch.c: Consolidate the semi-dynamic target system + dependant GDB parameters. + (set_gdbarch_from_file): Combine set_architecture_from_file and + set_byte_order_from_file. + * top.c, defs.h, printcmd.c: Delete them from here. + * Makefile.in: Add gdbarch.[ch]. + * exec.c (exec_file_command): Call set_gdbarch_from_file. + +Sun Dec 13 09:52:51 1998 Andrew Cagney + + * defs.h (TARGET_PRINT_INSN_INFO, TARGET_PRINT_INSN): Define. + (TARGET_ARCHITECTURE, TARGET_ARCHITECTURE_AUTO): Define. + (TARGET_BYTE_ORDER_AUTO): Define. + (TARGET_BYTE_ORDER_SELECTABLE_P): Provide default. Replaces + TARGET_BYTE_ORDER_SELECTABLE. Handle compat issues. + (BITS_BIG_ENDIAN): Simplify. + (TARGET_FLOAT_FORMAT): Ditto. + (TARGET_DOUBLE_FORMAT): + + * remote-e7000.c, sh-tdep.c, printcmd.c, remote-sim.c, + remote-rdi.c, sparc-tdep.c: Update. + + * config/powerpc/tm-ppcle-eabi.h, config/rs6000/tm-rs6000.h, + config/powerpc/tm-ppc-eabi.h, config/mn10300/tm-mn10300.h: + Convert. + +Sat Dec 12 09:28:13 1998 Andrew Cagney + + * frame.h (struct frame_info): Add CORE_ADDR *saved_regs and + struct frame_extra_info *extra_info. + (frame_obstack_alloc, frame_saved_regs_zalloc): Prototype. + (SIZEOF_FRAME_SAVED_REGS): Provide default. + (FRAME_INIT_SAVED_REGS): Provide default. + (struct frame_saved_regs): Deprecate. + (EXTRA_FRAME_INFO): Deprecate. + + * blockframe.c (frame_obstack_alloc, frame_saved_regs_zalloc): New + function. + (generic_get_saved_register): Use FRAME_INIT_SAVED_REGS and + frame->saved_regs. + (frame_cache_obstack): Make static. + (get_frame_saved_regs): Deprecate. Copy the saved regs into the + frame buffer. + + * stack.c (frame_info): Rewrite using frame->saved_regs and + FRAME_INIT_SAVED_REGS. + * findvar.c (find_saved_register): Ditto. + + * config/mn10300/tm-mn10300.h (EXTRA_FRAME_INFO): Delete. + (FRAME_FIND_SAVED_REGS): Replace with FRAME_INIT_SAVED_REGS. No-op. + * mn10300-tdep.c: Update. + (analyze_dummy_frame): New function. + (struct frame_extra_info): Define. + (mn10300_init_extra_frame_info): Update. + + * config/rs6000/tm-rs6000.h: (EXTRA_FRAME_INFO): Delete. + (FRAME_FIND_SAVED_REGS): Replace with FRAME_INIT_SAVED_REGS. + (FRAME_ARGS_ADDRESS): Replace with function. + + * rs6000-tdep.c (frame_get_saved_regs): Rename from + frame_get_cache_fsr. + (rs6000_init_extra_frame_info): New function. + (rs6000_frame_init_saved_regs): Call frame_get_saved_regs. + (FUNCTION_START_OFFSET): Delete references, was ZERO. + (rs6000_frame_args_address): New function. + (frame_initial_stack_address): Update + + * config/mips/tm-mips.h (EXTRA_FRAME_INFO): Remove saved_regs. + (FRAME_INIT_SAVED_REGS): Rename FRAME_FIND_SAVED_REGS, update. + * mips-tdep.c (mips_find_saved_regs, read_next_frame_reg, + init_extra_frame_info, mips_pop_frame): Update. + * config/alpha/tm-alpha.h (FRAME_INIT_SAVED_REGS, + EXTRA_FRAME_INFO), alpha-tdep.c (alpha_find_saved_regs, + alpha_pop_frame, init_extra_frame_info): Ditto. + + * i960-tdep.c, m88k-tdep.c, h8300-tdep.c: Update. + * config/sparc/tm-sparc.h, config/a29k/tm-a29k.h: Define + FRAME_INIT_SAVED_REGS as no-op. + + * z8k-tdep.c (z8k_init_frame_saved_regs): Rename + get_frame_saved_regs. + (examine_frame, z8k_skip_prologue): Update. + * config/z8k/tm-z8k.h (FRAME_INIT_SAVED_REGS): Define. + +1998-12-11 Fernando Nasser + + From J.T. Conklin : + * i386-stub.c (handle_exception): Add support for 'P' command. + (NUMREGS): New macro. + +Fri Dec 11 09:07:05 1998 Andrew Cagney + + * i386b-nat.c: Include "expression.h". + + * symtab.h: Don't include "gnu-regex.h". + + * solib.c (solib_add_common_symbols): Cast parameters passed to + make_cleanup to use the new make_cleanup_func typedef. + + * inftarg.c: Include "wait.h" after, rather than before, . + "wait.h" was defining all WIF* macro's instead of filling in those + that missed. + +Fri Dec 11 09:52:04 1998 Andrew Cagney + + * mipsm3-nat.c, hppah-nat.c, infptrace.c, i386gnu-nat.c, + hppab-nat.c, core-aout.c, arm-xdep.c, alpha-nat.c, altos-xdep.c, + pyr-xdep.c, remote-st.c, remote-os9k.c, tahoe-tdep.c, pyr-tdep.c, + vax-tdep.c: Replace reg_name with REGISTER_NAME. + +Thu Dec 10 15:19:40 1998 David Taylor + + The following changes were made by Jim Blandy , + Edith Epstein , Elena Zannoni + Stan Shebs , and David + Taylor , as part of the project to merge in + changes originally made by HP; HP did not create ChangeLog + entries. + + * annotate.c (annotate_catchpoint): New function. + + * annotate.h (annotate_catchpoint): declare it; add new includes + (symtab.h and gdbtypes.h). + + * buildsym.h: add external var processing_hp_compilation. + + * coff-solib.h: + (SOLIB_REMOVE_INFERIOR_HOOK): new macro. defined to 0. + functionality not implemented for coff. + (SOLIB_CREATE_CATCH_LOAD_HOOK): New macro; generate error msg for coff. + (SOLIB_CREATE_CATCH_UNLOAD_HOOK): ditto. + (SOLIB_HAVE_LOAD_EVENT): ditto. + (SOLIB_LOADED_LIBRARY_PATHNAME): ditto. + (SOLIB_HAVE_UNLOAD_EVENT): ditto. + (SOLIB_UNLOADED_LIBRARY_PATHNAME): ditto. + (SOLIB_IN_DYNAMIC_LINKER): ditto. + (SOLIB_RESTART): ditto. + + * complaints.h: add ifdef...endif pair at beginning and end of file. + + * dstread.c (dst_symfile_read): the parameter to fileno + must be of type FILE *. So cast abfd->iostream in the + call to fileno must be cast as a FILE *, not a GDB_FILE *. + This will work because abfd->iostream is declared and + given a value in bdf and bfd will continue to use FILE + rather than GDB_FILE. + + * dwarf2read.c (dwarf_bool_name): change parameter from bool + to mybool. sigh. + + * expression.h: include symtab.h + + * frame.h (print_only_stack_frame, show_stack_frame, + show_frame_info): add prototypes. + + * gdbcmd.h (togglelist, stoplist): declare. + + * gdbcore.h (read_memory_string): declare it. + (exec_file_attach): add prototype. + + * inflow.c (terminal_is_ours): make non static. + + * minsyms.c: minor spacing change. + + * parser-defs.h (parse_nested_classes_for_hpacc): add prototype. + (find_template_name_end): add prototype. + + * scm-lang.c (scm_unpack): cast svalue to (int). + + * top.h: declare it. + + * valprint.h (print_binary_chars): new prototype definition. + (print_octal_chars): new prototype definition. + (print_decimal_chars): new prototype definition. + +Thu Dec 10 07:14:56 1998 Andrew Cagney + + * config/arm/tm-arm.h, arm-tdep.c: Replace REGISTER_NAMES with + REGISTER_NAME. + * mn10300-tdep.c, config/mn10300/tm-mn10300.h: Ditto. + * sh-tdep.c, config/sh/tm-sh.h: Ditto. + + * defs.h (REGISTER_NAME): Provide default for old targets. + * defs.h, infcmd.c: Rename reg_names to gdb_register_names. + + * tracepoint.c, target.c, parse.c, infcmd.c, remote-udi.c, + expprint.c, infcmd.c, printcmd.c, eval.c, stack.c, findvar.c, + remote-udi.c, config/alpha/tm-alpha.h, remote-sim.c, d30v-tdep.c, + config/mips/tm-mips.h, hppa-tdep.c: Use REGISTER_NAME. + +1998-12-08 James E Wilson + + * config/i960/mon960.mt (SIM_OBJS, SIM): Define. + +Tue Dec 8 16:49:24 1998 Stan Shebs + + * NEWS: Add mentions of newly-added configurations. + +1998-12-08 Philippe De Muyter + + * config/xm-aix4.h (SIGWINCH_HANDLER): Function `aix_resize_window' + must accept a signal number as parameter. + * config/rs6000/xm-rs6000.h (SIGWINCH_HANDLER): Ditto. + * utils.c (initialize_utils): Give a parameter to `SIGWINCH_HANDLER'. + + * inferior.h (register_valid): Variable's type is `SIGNED char', not + `char'. + * findvar.c (register_valid): Ditto. + + * defs.h (make_cleanup_func): Protect parameter list by `PARAMS'. + * gdbthread.h (unbind_target_thread_vector): Likewise. + +Tue Dec 8 15:09:44 1998 Edith Epstein + + Merged in m68k-linux patch from Andreas Schwab + + 1998-12-01 Andreas Schwab + + * Makefile.in, configure.host, configure.tgt: Add support for + m68k-linux. + * config/m68k/linux.mh: New file. + * config/m68k/linux.mt: New file. + * config/m68k/nm-linux.h: New file. + * config/m68k/tm-linux.h: New file. + * config/m68k/xm-linux.h: New file. + * gdb/m68klinux-nat.c: New file. + * gdbserver/low-linux.c: Add support for m68k-linux. + * gdb/config/m68k/tm-m68k.h (NUM_FREGS): New macro. + +1998-12-07 Jason Molenda (jsm@bugshack.cygnus.com) + + * config/i386/xm-cygwin.h: Remove REQUEST_QUIT definition. + * config/powerpc/xm-cygwin.h: Ditto. + +1998-12-07 Jim Blandy + + * rs6000-tdep.c (pop_frame): Correctly find the registers saved in + the stack frame. Their offset from the previous stack frame is in + fdata.gpr_offset and fdata.fpr_offset, not fdata.offset. + (gdb.base/return.exp) + * config/rs6000/tm-rs6000.h: Doc fixes. + +1998-12-03 Jason Molenda (jsm@bugshack.cygnus.com) + + * monitor.c (monitor_read_memory): Zero out pattern buffers + before calling re_search. + (parse_register_dump): Ditto. + +Thu Dec 3 10:37:22 EST 1998 Zdenek Radouch (radouch@cygnus.com) + + FR30 updates - still very preliminary. + * configure.tgt + * fr30-tdep.c + * config/fr30/tm-fr30.h + +Thu Dec 3 16:30:35 1998 Andrew Cagney + + * ax-gdb.c: Include target.h. + +Tue Dec 3 10:59:00 1998 Andrew Cagney + + * ax-gdb.c (_initialize_ax_gdb), i960-tdep.c (pop_frame), + monitor.c (flush_monitor_dcache, longlongendswap), remote-array.c + (hexword2ascii), w89k-rom.c (init_w89k_cmds), z8k-tdep.c + (init_frame_pc, extract_return_value): Make return type void. + * monitor.c (monitor_write_even_block): Make return type explicit. + (monotor_read_memory_block): Delete function. + * monitor.h: Update. + * remote.c (remote_get_threadlist, remote_update_threads), + remote-array.c (array_get_packet), remote-rdi.c (Fail): Always + return a value. + * m32r-tdep.c (m32r_fix_call_dummy): From Michael Snyder, void + function. + * jv-valprint.c (java_val_print): From Stu Grossman. Return 0 by + default. + +Wed Dec 2 15:11:38 1998 Michael Snyder + + * tracepoint.c: Move default definition of + TARGET_VIRTUAL_FRAME_POINTER from here to target.h. + * target.h: Add default definition of TARGET_VIRTUAL_FRAME_POINTER. + * ax-gdb.c (gen_frame_args_address, gen_frame_locals_address): + use TARGET_VIRTUAL_FRAME_POINTER to determine frame pointer. + (gen_trace_for_expr): new argument, address of tracepoint, + gets passed to new_agent_expr and added to struct agent_expr. + (is_nontrivial_conversion): call to new_agent_expr now requires + a dummy argument. (agent_command): use get_current_frame() to + get current PC scope; pass it to gen_trace_for_expr. + * ax-general.c (new_agent_expr): new argument, address of + tracepoint; store it in new field of struct agent_expr. + * ax.h (struct agent_expr): add new field for tracepoint address. + * ax-gdb.h: change prototypes to match above changes. + + * m32r-tdep.c (decode_prologue): If no branch or push fp is found, + but there's a stack adjust, then use that as the end of prologue. + (m32r_skip_prologue): don't skip past the first line if there is + line info. (m32r_virtual_frame_pointer): new function. + (m32r_fix_call_dummy): no return value needed. + +Tue Dec 1 10:59:00 1998 Andrew Cagney + + * ocd.c (remote_timeout), (BDM_BREAKPOINT), monitor.c (readchar), + remote.c: Cleanup closing of open comments. + +Mon Nov 30 16:04:03 1998 Doug Evans + + * config/fr30/tm-fr30.h (INNER_THAN): Add parameters. + +Mon Nov 30 11:18:48 1998 Andrew Cagney + + * frame.h (FRAME_CHAIN_VALID): Default to + default_frame_chain_valid. + * blockframe.c (default_frame_chain_valid): New function. + + * frame.h (FRAME_CHAIN_VALID_ALTERNATIVE): Delete references + * blockframe.c (alternate_frame_chain_valid): New function. + * config/mips/tm-mipsv4.h, config/m88k/tm-delta88v4.h, + config/m68k/tm-monitor.h, config/m68k/tm-m68kv4.h, + config/i386/tm-i386v4.h, config/i386/tm-i386nw.h, + config/h8300/tm-h8300.h: Update. + + * blockframe.c (nonnull_frame_chain_valid): New function. + * config/m68k/tm-os68k.h, config/m68k/tm-vx68.h, + config/m68k/tm-apollo68b.h, config/i960/tm-vx960.h, + config/arc/tm-arc.h: Update FRAME_CHAIN_VALID. + + * hppa-tdep.c (frame_chain_valid, hppa_frame_chain_valid), + remote-vx29k.c (get_fp_contents, vx29k_frame_chain_valid), + arm-tdep.c (frame_chain_valid, arm_frame_chain_valid): Rename + functions so that they are name space clean. + * config/pa/tm-hppa.h, config/a29k/tm-vx29k.h, + config/arm/tm-arm.h: Update FRAME_CHAIN_VALID. + + * gould-tdep.c (gould_frame_chain_valid), d30v-tdep.c + (d30v_frame_chain_valid), d10v-tdep.c (d10v_frame_chain_valid): + New functions. + * config/gould/tm-np1.h, config/gould/tm-pn.h, + config/d30v/tm-d30v.h, config/d10v/tm-d10v.h: Update + FRAME_CHAIN_VALID. + +Sun Nov 29 11:18:37 1998 Andrew Cagney + + * z8k-tdep.c (z8k_addr_bits_remove), w65-tdep.c + (w65_addr_bits_remove), h8500-tdep.c (h8500_addr_bits_remove), + m88k-tdep.c (m88k_addr_bits_remove): Function to clean up an + address. + * config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/m88k/tm-m88k.h, + config/h8500/tm-h8500.h: Define ADDR_BITS_REMOVE to call targets + corresponding function. + * z8k-tdep.c (saved_pc_after_call): Update. + +Sat Nov 28 12:24:31 1998 Andrew Cagney + + * config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/vax/tm-vax.h, + config/v850/tm-v850.h, config/tahoe/tm-tahoe.h, + config/sparc/tm-sparc.h, config/sh/tm-sh.h, + config/rs6000/tm-rs6000.h, config/pyr/tm-pyr.h, + config/pa/tm-hppa.h, config/ns32k/tm-umax.h, + config/ns32k/tm-merlin.h, config/none/tm-none.h, + config/mn10300/tm-mn10300.h, config/mn10200/tm-mn10200.h, + config/mips/tm-mips.h, config/m88k/tm-m88k.h, + config/m68k/tm-m68k.h, config/m32r/tm-m32r.h, + config/i960/tm-i960.h, config/i386/tm-i386.h, + config/h8500/tm-h8500.h, config/h8300/tm-h8300.h, + config/gould/tm-pn.h, config/gould/tm-np1.h, config/arm/tm-arm.h, + config/convex/tm-convex.h, config/d10v/tm-d10v.h, + config/alpha/tm-alpha.h, config/a29k/tm-a29k.h: Add parameters to + macro INNER_THAN. + + * valops.c (push_word, value_push, call_function_by_hand), + breakpoint.c (bpstat_stop_status), blockframe.c + (generic_push_dummy_frame, generic_frame_chain_valid), inferior.h + (PC_IN_CALL_DUMMY), infrun.c (wait_for_inferior): Update use of + INNER_THAN. + +Fri Nov 27 11:00:25 1998 Andrew Cagney + + * target.h (one_stepped): Move global from here. + * infrun.c (singlestep_breakpoints_inserted_p): To here. Rename. + Make static. + (wait_for_inferior): Update. + (resume): Update. Set variable after call to SOFTWARE_SINGLE_STEP. + + * target.h (NO_SINGLE_STEP): Replace with SOFTWARE_SINGLE_STEP_P + and SOFTWARE_SINGLE_STEP. + * config/sparc/tm-sparc.h, config/rs6000/tm-rs6000.h, + config/arc/tm-arc.h: Update. + * rs6000-tdep.c (rs6000_software_single_step), sparc-tdep.c + (sparc_software_single_step), arc-tdep.c (arc_single_step): New + functions. Replace function single_step. + + * config/mips/tm-mips.h (STEP_SKIPS_DELAY_P): Define. + * infrun.c (proceed): Cleanup. + +Thu Nov 26 11:19:15 1998 Andrew Cagney + + * config/alpha/tm-alpha.h (ABOUT_TO_RETURN): Replace macro. + * alpha-tdep.c (alpha_about_to_return): With new function. + (heuristic_proc_start): Update. + * config/mips/tm-mips.h (ABOUT_TO_RETURN), mips-tdep.c + (heuristic_proc_start, mips_about_to_return): Ditto. + * config/ns32k/tm-merlin.h (ABOUT_TO_RETURN), + config/ns32k/tm-umax.h (ABOUT_TO_RETURN), ns32k-tdep.c + (ns32k_about_to_return, ns32k_get_enter_addr): Ditto. + + * config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/vax/tm-vax.h, + config/tahoe/tm-tahoe.h, config/sparc/tm-sparc.h, + config/sh/tm-sh.h, config/rs6000/tm-rs6000.h, config/pyr/tm-pyr.h, + config/pa/tm-hppa.h, config/m88k/tm-m88k.h, config/m68k/tm-m68k.h, + config/i960/tm-i960.h, config/i386/tm-i386.h, + config/h8500/tm-h8500.h, config/h8300/tm-h8300.h, + config/gould/tm-pn.h, config/gould/tm-np1.h, + config/convex/tm-convex.h, config/arm/tm-arm.h, + config/arc/tm-arc.h, config/a29k/tm-a29k.h: Delete macro + ABOUT_TO_RETURN. + * config/w65/tm-w65.h (RTL, RTS): Delete macros. + * h8500-tdep.c (about_to_return): Delete function. + +Thu Nov 26 11:19:15 1998 Andrew Cagney + + * rs6000-tdep.c (rs6000_breakpoint_from_pc): Change big_breakpoint + and little_breakpoint to char[] from char*. + * remote-array.c (array_insert_breakpoint): Change bp_addr to + CORE_ADDR type. + +Wed Nov 25 00:13:06 1998 Andrew Cagney + + * vx-share/xdr_ld.c (xdr_ldtabl): Cast second arg to char** + instead of char*. + + * configure.tgt (v850): Only build v850ice when cygwin and gui. + * configure.in: Add parameter to --enable-build-warnings. + * configure: Re-build. + + * c-exp.y (parse_number): Rewrite shift to pacify GCC. + + * config/i960/tm-i960.h (BREAKPOINT): Delete definition - simply + wrong. + + * monitor.c (compile_pattern): Make val const char*. + (monitor_wait_cleanup): Make old_timeout void*, pointing at + old_timeout. + (monitor_wait): Update. + + * remote-udi.c, remote-sim.c, remote-e7000.c, hppa-tdep.c, + remote-mips.c, sparcl-tdep.c, xcoffread.c: Cast parameters passed + to make_cleanup to use the new make_cleanup_func typedef. + + * alpha-tdep.c (MASK): Use LONGEST to avoid arithmetic overflow. + + * config/a29k/tm-a29k.h (TRANSPARENT): Rename macro to + TRANSPARENT_FRAME. Avoid name-space clash. + * a29k-tdep.c (init_frame_info): Update. + +Wed Nov 25 20:37:00 1998 Andrew Cagney + + * rs6000-tdep.c (rs6000_breakpoint_from_pc): Change big_breakpoint + and little_breakpoint to char[] from char*. + * mem-break.c (memory_insert_breakpoint, + memory_remove_breakpoint): Pass address of bplen. + * remote-array.c (array_insert_breakpoint): Change bp_addr to + CORE_ADDR type. + +Tue Nov 24 15:46:33 1998 Michael Snyder + + * config/mn10300/tm-mn10300.h (TARGET_VIRTUAL_FRAME_POINTER): + new target macro. + * mn10300-tdep.c (mn10300_virtual_frame_pointer): new function. + * tracepoint.c (encode_actions): Use the new target macro to + determine the virtual frame pointer, for collecting locals/args. + (add_local_symbols, collect_symbol): add a register/offset pair of + arguments so that the virtual frame pointer can be passed in. + +1998-11-24 Felix Lee + + * procfs.c (procfs_wait): handle syscall events first. + + * procfs.c (GDB_GREGSET_TYPE, GDB_FPREGSET_TYPE): new macros. + * config/sparc/xm-sun4sol2.h: use them. + * core-sol2.c: don't #undef gregset_t and fpregset_t. + * sol-thread.c: ditto. + * sparc-tdep.c: ditto. + +Tue Nov 24 14:13:10 1998 Andrew Cagney + + * breakpoint.c (memory_breakpoint_size): Delete global. + (read_memory_nobpt): Determine real breakpoint address and size + using BREAKPOINT_FROM_PC. + + * defs.h (breakpoint_from_pc_fn): BREAKPOINT_FROM_PC function + template. + * target.h, mem-break.c (memory_breakpoint_from_pc): + Rewrite. Always define. Return NULL when memory breakpoints are + not supported. + (memory_insert_breakpoint, memory_remove_breakpoint): Call + BREAKPOINT_FROM_PC. + * target.h (BREAKPOINT_FROM_PC): Provide default. + * gdbint.texinfo (BREAKPOINT_FROM_PC): Document. + + * config/rs6000/tm-rs6000.h (BREAKPOINT): Delete macro. + (BREAKPOINT_FROM_PC): Define. + ({BIG,LITTLE}_BREAKPOINT): Move macros from here. + * rs6000-tdep.c: To here. + (rs6000_breakpoint_from_pc): New function. + + * config/mn10300/tm-mn10300.h (BREAKPOINT): Delete macro. + (BREAKPOINT_FROM_PC): Define, call. + * mn10300-tdep.c (mn10300_breakpoint_from_pc): New function. + + * config/mips/tm-mips.h ({BIG,LITTLE}_BREAKPOINT, + IDT_{BIG,LITTLE}_BREAKPOINT, PMON_{BIG,LITTLE}_BREAKPOINT, + MIPS16_{BIG,LITTLE}_BREAKPOINT): Move macros from here. + * mips-tdep.c: To here. + + * config/arm/tm-arm.h ({BIG,LITTLE}_BREAKPOINT): Delete macros. + ({ARM,THUMB}_{BE,LE}_BREAKPOINT): Move macros from here. + * arm-tdep.c: To here. + + * remote-array.c (memory_breakpoint_size): Delete variable. + (array_insert_breakpoint): Obtain breakpoint size using + BREAKPOINT_FROM_PC. + * remote-st.c (memory_breakpoint_size, st2000_insert_breakpoint): + Ditto. + * remote-os9k.c (memory_breakpoint_size, + rombug_insert_breakpoint): Ditto. + * remote-e7000.c (memory_breakpoint_size): Ditto. + +Mon Nov 23 11:38:40 1998 Michael Snyder + + * symfile.c (deduce_language_from_filename): rewrite so as to + work from a table of filename extensions, modifiable by the user. + (filename_language_table): new data structure. + (set_ext_lang_command): new function for new command, "set + extension-language". (info_extension_language_command): new + function for new command "info extension-languages". + (add_filename_language, init_filename_language_table): new + support functions for the above. + * language.c (language_enum): new function. Support for above. + +Mon Nov 23 10:47:54 1998 Andrew Cagney + + * config/sh/tm-sh.h, config/mn10200/tm-mn10200.h, + config/m32r/tm-m32r.h, config/arm/tm-arm.h, config/i960/tm-i960.h, + config/gould/tm-np1.h, config/d10v/tm-d10v.h, + config/v850/tm-v850.h, config/pa/tm-hppa.h, config/a29k/tm-a29k.h, + config/mn10300/tm-mn10300.h, config/mips/tm-mips.h + (USE_STRUCT_CONVENTION): Cleanup, define macro as function. + + * sh-tdep.c (sh_use_struct_convention), mn10200-tdep.c + (mn10200_use_struct_convention), i960-tdep.c + (i960_use_struct_convention), gould-tdep.c + (gould_use_struct_convention), d10v-tdep.c + (d10v_use_struct_convention), v850-tdep.c + (v850_use_struct_convention), hppa-tdep.c + (hpha_use_struct_convention), m32r-tdep.c + (m32r_use_struct_convention), arm-tdep.c + (arm_use_struct_convention), mn10300-tdep.c + (mn10300_use_struct_convention), a29k-tdep.c + (a29k_use_struct_convention), mips-tdep.c + (mips_use_struct_convention): New functions + + * value.h, values.c (generic_use_struct_convention): New function, + replace macro. + * values.c (USE_STRUCT_CONVENTION): Macro defaults to function + generic_use_struct_convention. + +Sat Nov 21 17:15:40 1998 Philippe De Muyter + + * breakpoint.c (bpstat_stop_status): Do not increment hit_count + of breakpoint if condition is not true. + + * coffread.c (coff_symtab_read): Discard C_LABEL's that are not + function entry points, to avoid getting them in the stack dump + instead of the actual function. + + * config/m68k/delta68.mh (NAT_FILE): Undo 1998-08-18 change; + without NAT_FILE definition, configure will assume that GDB cannot + run native. + * config/m68k/nm-delta68.h (KERNEL_U_SIZE): New macro. + * delta68-nat.c (kernel_u_size): New function. + +Fri Nov 20 10:13:03 1998 Andrew Cagney + + * buildsym.c (end_symtab): Cleanup PROCESS_LINENUMBER_HOOK. + +Thu Nov 19 15:21:04 1998 Geoffrey Noer + + * rdi-share/host.h: if compiling under Cygwin, make sure new + preprocessor define is defined. Define it if not. + * rdi-share/hostchan.h: ditto + * rdi-share/aclocal.m4: regenerate + * rdi-share/configure: regenerate + +Thu Nov 19 14:43:44 1998 Geoffrey Noer + + * configure.in: switch back to checking __CYGWIN32__ + * configure: regenerate + +Thu Nov 19 09:53:00 1998 Andrew Cagney + + * exec.c (exec_file_command): Cleanup. Replace #if + NEED_TEXT_START_END with if(). + * config/pa/nm-hppah.h (NEED_TEXT_START_END): Redefine to be 1. + * config/convex/tm-convex.h (NEED_TEXT_START_END): Ditto. + * config/gould/tm-np1.h (NEED_TEXT_START_END): Ditto. + * config/a29k/tm-a29k.h (NEED_TEXT_START_END): Ditto. + +Thu Nov 19 13:06:22 1998 Geoffrey Noer + + * main.c: Wait until more time has passed before calling + new cygwin_ funcs, revert back to the cygwin32_ ones for now. + * win32-nat.c: Ditto. + +Wed Nov 18 15:03:17 1998 Andrew Cagney + + * 29k-share/udi/udip2soc.c (UDIConnect): Replace sys_errlist with + strerror. + +Mon Nov 16 14:17:05 1998 Geoffrey Noer + + * defs.h: if compiling under Cygwin, define __CYGWIN__ if + __CYGWIN32__ is defined and __CYGWIN__ isn't for backwards + compatibility. + +Fri Nov 13 00:15:08 1998 Geoffrey Noer + + Changes to account for name change from cygwin32 to cygwin and + clean up Win32-related ifdefs. + + * configure.tgt: check for cygwin* instead of cygwin32. + New cygwin gdb_target variable loses the "32". + * configure.host: check for cygwin* instead of cygwin32. + New cygwin gdb_host variable loses the "32". + * configure.in: test __CYGWIN__ instead of __CYGWIN32__, + rename gdb_cv_os_cygwin32 variable to drop the "32". Call + AM_EXEEXT instead of AC_EXEEXT since that isn't in a released + autoconf yet. + * configure: regenerate. + + * main.c: drop "32" from cygwin_ funcs, include sys/cygwin.h where + cygwin path conv protos live, instead of adding a proto here for + them here. + * {main.c, ser-tcp.c, ser-unix.c, top.c}: check __CYGWIN__ + instead of __CYGWIN32__. + * source.c: thoughout, check _WIN32 instead of WIN32. + + * config/i386/cygwin32.mh: delete. + * config/i386/cygwin.mh: new file, was cygwin32.mh. + * config/i386/cygwin32.mt: delete. + * config/i386/cygwin.mt: new file, was cygwin32.mt. + * config/i386/tm-cygwin32.h: delete. + * config/i386/tm-cygwin.h: new file, was tm-cygwin32.h. + * config/i386/xm-cygwin32.h: delete. + * config/i386/xm-cygwin.h: new file, was xm-cygwin32.h. + * config/i386/xm-windows.h: #include xm-cygwin.h now. + * config/powerpc/cygwin32.mh: delete. + * config/powerpc/cygwin.mh: new file, was cygwin32.mh. + * config/powerpc/cygwin32.mt: delete. + * config/powerpc/cygwin.mt: new file, was cygwin32.mt. + * config/powerpc/tm-cygwin32.h: delete. + * config/powerpc/tm-cygwin.h: new file, was tm-cygwin32.h. + * config/powerpc/xm-cygwin32.h: delete. + * config/powerpc/xm-cygwin.h: new file, was xm-cygwin32.h. + + * rdi-share/aclocal.m4: regenerate with aclocal. + * rdi-share/configure: regenerate with autoconf. + * rdi-share/{host.h, hostchan.c, hostchan.h, serdrv.c, serpardr.c, + unixcomm.c}: check __CYGWIN__ instead of __CYGWIN32__. + +Thu Nov 12 17:19:43 1998 John Metzler + + * remote.c (remote_get_threadinfo): Support for remote + multithread debugging. + (remote_get_threadlist): get a partial list of threads + (remote_threadlist_iterator): Step through all the threads + (init_remote_threadtests): Optional builtin unit test commands. + + * thread.c (bind_target_thread_vector): Implementa a more dynamic + way of accessing target specific thread info functions than + FIND_NEW_THREADS. + (target_thread_info): Function to get extended thread information. + + * gdbthread.h: Export internal data structures corresponding to + external detailed thread info response. This is more like a 'ps' + command than what might be expected of host based threads. This + is for embedded systems. + +Wed Nov 11 15:47:00 1998 Michael Snyder + + * procfs.c (proc_set_exec_trap): don't set PR_ASYNC or PR_FORK + in the child process for UnixWare (causes processes forked by + the debuggee to hang). + +Mon Nov 9 12:00:36 1998 Dave Brolley + + * config/fr30/fr30.mt: New file. + * config/fr30/tm-fr30.h: New file. + +1998-11-05 Jim Wilson + + * remote-vx.c (net_read_registers, net_write_registers, + vx_xver_memory, vx_resume, vx_attach, vx_detach, vx_kill): + Change errno to errno_num. + * vx-share/xdr_ptrace.c (xdr_ptrace_return): Likewise. + * vx-share/xdr_ptrace.h (struct ptrace_return): Likewise. + +Thu Nov 5 08:41:33 1998 Christopher Faylor + + * top.c (gdb_readline): Allow CRLF line termination on systems + which define CRLF_SOURCE_FILES. + * win32-nat.c: 1) Add thread support, 2) fix ability to attach to + a running process, and 3) implement limited support for cygwin + signals. + (thread_rec): New function. + (child_add_thread): Ditto. + (child_init_thread_list): Ditto. + (child_delete_thread): Ditto. + (do_child_fetch_inferior_registers): Ditto. + (do_child_store_inferior_registers): Ditto. + (handle_output_debug_string): Ditto. + (child_fetch_inferior_registers): Use do_* function to perform + operation. + (child_store_inferior_registers): Ditto. + (child_continue): Ditto. + (child_thread_alive): Ditto. + (cygwin_pid_to_str): Ditto. + (handle_load_dll): Reorganize, add first attempt at reading + dll names from attached processes. Change info messages to provide + more information when dll is already loaded. + (handle_exception): Changes mandated by new thread-aware structures. + (child_wait): Track thread creation/destruction. Handle cygwin + signals. + (child_create_inferior): Ditto. + (child_resume): Ditto. + (child_kill_inferior): Ditto. Close child process handle to avoid a + handle leak. + (child_ops): Fill out child_ops fields that deal with threads. + * config/i386/tm-cygwin32.h: Declare function and macro needed + for converting a cygwin "pid" to a string. + * config/i386/xm-cygwin32.h: define HAVE_SIGSETMASK as 0 since + sigsetmask is not defined in cygwin. + +Thu Nov 5 08:38:18 1998 Christopher Faylor + + * win32-nat.c: Remove obsolete PPC conditionals. + +Wed Nov 4 18:44:31 1998 Dave Brolley + + * configure.tgt: Add fr30-*-elf*. + +1998-11-03 Jim Wilson + + * c-exp.y (parse_number): Check TARGET_LONG_LONG_BIT when setting + high_bit to avoid undefined negative shift. + +Mon Nov 2 15:26:33 1998 Geoffrey Noer + + * configure.in: Check cygwin* instead of cygwin32*. + * configure: regenerate + +Thu Oct 29 10:04:20 1998 Michael Snyder + + [Support for trace debugging: registers that were not collected.] + * remote.c (remote_fetch_registers): accept 'xxxx' in the register + packet, with the meaning "register value is not available". + Set register_valid to -1, which will connote "no value available". + * findvar.c (read_relative_register_raw_bytes): return failure if + register_valid == -1. (value_of_register): return failure if + register_valid == -1. (read_var_value): return error if + value_of_register fails for a register variable. + (value_from_register): return failure if register_valid == -1. + * eval.c (evaluate_subexp_standard): return error if + value_of_register fails for a register used in an expression. + * infcmd.c (do_registers_info): display "value not available" + for registers for which register_valid == -1. + + * tracepoint.c (set_raw_tracepoint): just save the filename as is + from the symbol table, rather than trying to prepend the dir name. + Also save the bfd section. (tracepoints_info): use the section + when looking up the function name. + * tracepoint.h: add section field to tracepoint struct. + +Wed Oct 28 08:01:38 1998 Mark Alexander + + * sparcl-tdep.c (send_resp, sparclite_serial_start, + sparclite_serial_write): Use remote_timeout instead of hardcoded + two second timeout. + (download): Fix adjustment of a.out load addresses. + +Wed Oct 28 12:32:58 1998 Andrew Cagney + + * configure.in (--enable-build-warnings): Finish rename from + --enable-warnings. + (enable-build-warnings): Add -Wpointer-arth, allow =* for + sim/common compatibility. + * configure: Re-generate. + +Wed Oct 21 08:44:30 1998 Andrew Cagney + + * 29k-share/udi/udip2soc.c: Replace sys_errlist with strerror(). + +Thu Oct 22 09:56:55 1998 Andrew Cagney + + * config/rs6000/aix4.mh (NATDEPFILES): Move xcoffread.o from here. + * config/rs6000/aix4.mt (TDEPFILES): To here. + +Wed Oct 21 10:02:31 1998 Andrew Cagney + + * rdi-share/unixcomm.c: Provide definitions of SERPORT and PARPORT + on BSD hosts. + +1998-10-19 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in (AM_EXEEXT): Use AC_EXEEXT instead. + * configure: Regenerated. + +Sat Oct 17 17:39:23 1998 Felix Lee + + * core-sol2.c: #include , for sol2.7 weirdness. + +Fri Oct 16 15:31:38 1998 Michael Snyder + + * m32r-tdep.c (decode_prologue): Return failure if we reach + the end of the function without finding the end of the prologue. + +1998-10-16 Jason Molenda (jsm@bugshack.cygnus.com) + + * command.c copying.c copying.awk core-aout.c core-regset.c + corelow.c dcache.c i386-tdep.c i386v4-nat.c i387-tdep.c + infcmd.c infptrace.c infrun.c remote.c solib.c symfile.c + symmisc.c valarith.c: Add prototypes. + + * defs.h: Add prototype for utils.c::do_run_cleanups. + + * gdbtypes.c: Add prototypes. + (make_pointer_type): Add braces to remove nested if-else ambiguity. + (make_reference_type): Ditto. + + * printcmd.c (printf_command): Initialize 'f' and 'string' at + function startup to suppress possibly-used-before-initialized warning. + + * remote-utils.c: Add prototypes. + (sr_pollchar): Add braces to remove nested if-else ambiguity. + + * ser-tcp.c: Add prototypes. + (wait_for): Add braces to remove nested if-else ambiguity. + (tcp_readchar): Ditto. + + * ser-unix.c: Add prototypes. + (get_tty_state): Don't define errno here. + (hardwire_readchar): Only define 't' if we are compiling in a Cygwin + environment. + + * symtab.c: Add prototypes. + (find_methods): Add braces to remove nested if-else ambiguity. + (search_symbols): Set 'i' to an initial value to suppress a + possibly-used-before-initialized warning. + + * valops.c: Add prototypes. + (value_cast): Set 'eltype2' to an initial value to suppress a + possibly-used-before-initialized warning. + (value_of_variable): Add braces to remove nested if-else ambiguity. + (value_of_this): Ditto. + + * valprint.c: Add prototypes. + (print_floating): Add braces to remove nested if-else ambiguity. + +Thu Oct 15 19:50:48 1998 Stan Shebs + + * tm-sp64.h (SETUP_ARBITRARY_FRAME, FRAME_SPECIFICATION_DYADIC): + Remove, nevermore used. + +Thu Oct 15 16:55:00 1998 Andrew Cagney + + * command.c: Include "wait.h" after, rather than before, . + "wait.h" was defining all WIF* macro's instead of filling in those + that missed. + +1998-10-14 Jason Molenda (jsm@bugshack.cygnus.com) + + * defs.h: Move _initialize_printcmd, _initialize_stack, + _initialize_blockframe out of here and in to their respective .c + files. + * blockframe.c: Move _initialize_blockframe prototype to here. + * printcmd.c: Move _initialize_printcmd prototype to here. + * stack.c: Move _initialize_stack prototype to here. + + * source.c, symtab.h: Move _initialize_source prototype to the .c + file. + * values.c, value.h: Move _initialize_values prototype to the .c file. + * gdbthread.h, thread.c: Move _initialize_thread prototype to the .c + file. + * breakpoint.c, breakpoint.h: Move _initialize_breakpoint prototype + to the .c file. + + * abug-rom.c alpha-nat.c alpha-tdep.c annotate.c ax-gdb.c bcache.c: + Standardize comments for the prototype section of these files. + + * configure.in: Look in libc for wctype before looking for it in libc. + +Tue Oct 13 18:56:51 1998 Felix Lee + + * sol-thread.c (ps_pstop, etc): simple test for proc_service.h + version didn't work for sol2.6; pushed it to autoconf. + * configure.in (gdb_cv_proc_service_is_old): new test. + * acconfig.h (PROC_SERVICE_IS_OLD): new define. + * configure, config.in: regenerate. + +1998-10-13 Jason Molenda (jsm@bugshack.cygnus.com) + + * blockframe.c (find_pc_sect_partial_function): Add braces to avoid + possible nested-if confusion. + * breakpoint.c (breakpoint_here_p): Ditto. + (breakpoint_inserted_here_p): Ditto. + (breakpoint_thread_match): Ditto. + + * gnu-regex.c: Define _REGEX_RE_COMP only if it isn't already defined. + * gnu-regex.h: Define _REGEX_RE_COMP to pick up old compatability + prototypes. + + * symtab.h: Add prototype for _initialize_source. + * value.h: Add prototype for _initialize_value. + + * defs.h: Include sys/types.h or stddef.h to get size_t. + (make_cleanup): Add make_cleanup_func typedef and switch to using + a prototype for this function. + (mfree): Add prototypes for mmalloc, mrealloc, mfree if we aren't + using mmalloc. + + * ax-gdb.c breakpoint.c coffread.c corelow.c dbxread.c + dwarf2read.c dwarfread.c elfread.c eval.c exec.c infcmd.c infrun.c + mipsread.c nlmread.c os9kread.c parse.c printcmd.c symfile.c + symmisc.c symtab.c thread.c top.c tracepoint.c typeprint.c + valops.c: Cast parameters passed to make_cleanup to use the new + make_cleanup_func typedef. + +Tue Oct 13 00:51:48 1998 Felix Lee + + * sol-thread.c (ps_pstop, etc): different solaris versions have + slightly different prototypes in proc_service.h; compensate. + +1998-10-12 Jason Molenda (jsm@bugshack.cygnus.com) + + * Makefile.in (AWK): Unused; remove. + * configure.in: Remove unused autoconf checks for MINIX, memcpy, + poll, select, strings.h. + * config.in: Regenerated. + * configure: Regenerated. + +1998-10-12 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Check for sys/debugreg.h, asm/debugreg.h. + * i386v-nat.c: Include asm/debugreg.h, sys/debugreg.h if it is not + present. + +Sun Oct 11 12:08:07 1998 Peter Schauer + + * dwarf2read.c (dwarf2_build_psymtabs_hard): Do not adjust the + address range of a compilation unit without children. + + * mdebugread.c (parse_partial_symbols): Fix handling of stabs + continuations, use xmalloc and xrealloc. + +Fri Oct 9 18:14:43 1998 Mark Alexander + + * rs6000-tdep.c: Don't include tm.h twice. + +1998-10-08 Keith Seitz + + * main.c (main): Remove calls to {pre,post}_add_symbol_hooks. + There should be sufficient information/hooks now to eliminate + this hack. + + * exec.c (file_command): Add a new hook here to inform ui's + when the exec file has changed. Adding it here allows the + ui to be informed after symbol reading. + + * gdbcore.h: Add declaration of file_changed_hook. + +Thu Oct 8 08:40:42 1998 Mark Alexander + + * rs6000-tdep.c (get_saved_register): Define only if + USE_GENERIC_DUMMY_FRAMES is defined. + +1998-10-06 Jason Molenda (jsm@bugshack.cygnus.com) + + Eliminate a few warnings from the compiler. + * breakpoint.h: Add prototype. + * breakpoint.c (do_enable_breakpoint): cast mem_cnt, i to (void). + * configure.in: Check if strdup declaration is necessary. + * configure: Regenerated. + * defs.h: Add prototypes. + * gdb_string.h: Only define strdup if necessary. + * gdbthread.h: Add prototypes. + * printcmd.c: Add prototyptes. + (disassemble_command): Remove unused variable 'section'. + * symtab.c: Add prototypes. + * symtab.h: Include gnu-regex.h, add prototype. + * thread.c: Add prototype. + +Mon Oct 5 19:44:39 1998 Stan Shebs + + From David Purves : + * stabsread.c (rs6000_builtin_type): Create a complex float instead + of an error. + (read_sun_floating_type): Similarly. + (read_range_type): Create a complex float if self_subrange is + true. + +Fri Oct 2 19:42:31 1998 Stu Grossman + + * c-lang.c (emit_char c_printchar c_printstr), c-lang.h (c_printstr) + ch-lang.c (chill_printstr chill_printchar) c-valprint.c (c_val_print) + ch-valprint.c (chill_val_print) expprint.c (print_subexp) f-lang.c + (f_printstr f_printchar emit_char) f-valprint.c (f_val_print) + jv-lang.c (java_printchar java_emit_char) jv-valprint.c + (java_value_print java_val_print) language.c (unk_lang_printchar + unk_lang_printstr unk_lang_emit_char) language.h (struct + language_defn LA_PRINT_STRING LA_EMIT_CHAR) m2-lang.c (m2_printstr + m2_printchar emit_char) printcmd.c (print_formatted) scm-lang.c + (scm_printstr) valprint.c (val_print_string) value.h + (val_print_string): Add emit_char routines to language_desc struct + to allow finer control over language specific character output issues. + Add character width arg to printstr routines to allow handling of + wchar_t/Unicode strings. Fix c_printstr to handle wide characters. + Supply width argument to LA_PRINT_STRING and val_print_string. + + * jv-lang.c (java_object_type dynamics_objfile java_link_class_type + get_dynamics_objfile get_java_object_type) jv-lang.h + (get_java_object_type): Make lots of things static. + + * expprint.c (dump_prefix_expression dump_subexp): Move opcode name + printing to common routine (op_name). + * (dump_subexp): Add support for OP_SCOPE. + +Fri Oct 2 16:25:54 1998 Stan Shebs + + * configure.host (i[3456]86-*-windows): Remove, no longer used. + * mswin: Remove directory, no longer used. + +Fri Oct 2 18:52:20 1998 Fernando Nasser + + * sol-thread.c: Fixed prototypes and calls to supply_fpregset and + fill_fpregset + +1998-10-02 Keith Seitz + + * remote.c (remote_interrupt): Rewrite to use remote_stop. + (remote_interrupt_twice): Remove. remote_stop now handles it. + (remote_stop): New function which handles interrupting the + remote target so that CLUI and GUI use the same core functions + to achieve the same goal. + (remote_wait): Change to handle remote_stop properly. + [interrupted_already]: New static global to help remote_stop. + [remote_ops, extended_remote_ops]: Add remote_stop for to_stop member. + + * target.c: Rename static function "ignore" to "target_ignore" and + export it so that gdb can determin if some target vector member is + actually not defined. Replace all occurances of ignore. + + * target.h: Export target_ignore. + +Fri Oct 2 03:51:48 1998 Peter Schauer + + * target.c (target_xfer_memory): Handle requests with zero + transfer length right away. + + * values.c (unpack_double): Set up code, length and signedness of + type _after_ checking for typedef. + +Thu Oct 1 15:39:27 EDT 1998 Frank Ch. Eigler + + * breakpoint.c (bpstat_stop_status): Do not consider an + untripped watchpoint as a "hit". + +Thu Oct 1 20:52:39 1998 Andrew Cagney + + * exec.c (exec_file_command), convex-tdep.c (exec_file_command), + arm-xdep.c (exec_file_command), remote-rdp.c + (remote_rdp_create_inferior), remote-os9k.c + (rombug_create_inferior), remote-mm.c (mm_create_inferior), + remote-eb.c (eb_create_inferior), remote-es.c + (es1800_create_inferior), remote-rdi.c (arm_rdi_create_inferior), + remote-sim.c (gdbsim_create_inferior), remote-utils.c + (gr_create_inferior), remote-st.c (st2000_create_inferior), + remote-nindy.c (nindy_create_inferior), remote-hms.c + (hms_create_inferior), remote-e7000.c (e7000_create_inferior), + remote-array.c (array_create_inferior), remote-adapt.c + (adapt_create_inferior): Replace "exec" with "executable" in + messages. + +1998-09-25 Keith Seitz + + * rdi-share/unixcomm.c: If using cygwin32, also use the SERPORT and + PARPORT defines for win32. + (Unix_MatchValidSerialDevice): For cygwin32, valid serial port names + start with "com", not "/dev/tty". + (Unix_OpenSerial): Do not use O_NONBLOCK on cygwin32. + + * rdi-share/devsw.c (DevSW_Close): Free the device's state + (SwitcherState) so that the device may be reopened. + + * remote-rdi.c (mywritec): Send all output through gdb's *_unfiltered + functions, ignoring non-ASCII chars, so that non-tty UI's can snarf + the output from fputs_hook. + (mywrite): Ditto. + (arm_rdi_open): Set inferior_pid. + (arm_rdi_detach): Pop the target off the target stack so that + users can attach and detach multiple times. + (arm_rdi_close): Close the opened device and reset inferior_pid, too. + +1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Change --enable-warnings to --enable-build-warnings. + * configure: Updated. + +1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in (WARN_CFLAGS): Add -Wmissing-prototypes. + * configure: Regenerated. + +1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Add --enable-warnings. + Adjust whitespace of other --with and --enable options so that + configure --help lines up correctly. + * aclocal.m4: Ditto. + * Makefile.in (WARN_CFLAGS): Add. Set by configure. + * configure: Regenerated. + +Thu Sep 24 15:44:34 1998 Stan Shebs + + * remote-rdi.c: Fix formatting, remove some commented-out code. + (init_rdi_ops): Omit needless initializations. + +Wed Sep 23 18:21:03 1998 Andrew Cagney + + * remote.c (remote_address_masked): New function - mask address + according to REMOTE_ADDRESS_SIZE. + (remote_address_size): New global. + (hexnumstr): New function - convert arbitrary unsigned to hex. + (remote_write_bytes, remote_read_bytes): Use hexnumstr to + construct packet address. Mask address when necessary. + (_initialize_remote): Add "set remoteaddresssize" command, set + REMOTE_ADDRESS_SIZE variable. + + * NEWS: Update. + +Wed Sep 23 18:08:52 1998 Andrew Cagney + + * remote.c (_initialize_remote, packet_command, print_packet): + Pretty print code. + +Wed Sep 23 12:32:54 1998 + + * remote.c (packet_command): Test REMOTE_DESC to determine if + remote connection is open. + +Tue Sep 22 22:27:24 1998 Mark Alexander + + Patch from Dawn Perchik : + * rs6000-tdep.c (pop_frame): Handle generic dummy frames. + (push_arguments): Likewise. + (frame_saved_pc): Likewise. + (rs6000_frame_chain): Likewise. + (ppc_push_return_address): New function. + (get_saved_register): New function. + * config/powerpc/tm-ppc-eabi.h: Add generic dummy frame macros. + +Mon Sep 21 19:29:32 1998 Stu Grossman + + * defs.h utils.c (fputc_filtered): New function. Does the obvious... + * jv-lang.c (java_printchar): Fix output of chars > 0xff. Fold + java_emit_char into java_printchar. + * language.h (PRINT_LITERAL_FORM): Reformat for readability. + +Mon Sep 21 14:38:03 1998 Catherine Moore + + * config/arm/tm-arm.h (*_BREAKPOINT): Define both little endian + and big endian breakpoint patterns. + + * arm-tdep.c (arm_break_point_from_pc): Insert either big endian + or little endian breakpoints depending upon target byte order. + +Fri Sep 18 07:53:08 1998 Peter Schauer + + * sol-thread.c (sol_thread_notice_signals): Use PIDGET when + passing pid down to procfs_notice_signals. + +Wed Sep 16 14:57:14 1998 Stu Grossman + + * stabsread.c (resolve_symbol_reference): Return 1 on success, 0 on + failure. + * (define_symbol): Check return value from resolve_symbol_reference, + and drop symbol if it fails. + +Tue Sep 15 15:24:16 1998 Stu Grossman + + * stabsread.c: Make all complaints static. + * Fix formatting of live range splitting code. + * (resolve_symbol_reference define_symbol resolve_live_range): Change + errors to complaints so that bad live range symbols won't abort the + entire symbol table. Handle errors by aborting just the current + symbol. + * (ref_init): Goes away. Folded into ref_add(). + * (REF_MAP_SIZE): Put parens around parameter so that args like + `1 + 2' get handled correctly (yes, this was a real bug). + * (ref_add): Remove check for allocation failures. Not necessary + when using xrealloc(). Fix pointer arithmetic problem when clearing + memory. This and the previous patch prevent random SEGV's when there + are lots of live range symbols. + +Tue Sep 15 14:02:01 1998 Nick Clifton + + * remote-rdi.c: Prevent multiple attempts to close the remote + connection. + +Tue Sep 15 10:24:17 1998 Andrew Cagney + + * printcmd.c (examine_i_type): New static - type for instructions. + (do_examine): For "i" format, specify examine_i_type. + (do_examine): Call value_at_lazy instead of value_at so that + examine data is only fetched if it is used. + (x_command): If examine data was not fetched, set convenience + variable "__" to void. + (_initialize_printcmd): Initialize examine_i_type. + +Sun Sep 13 01:34:59 1998 Michael Snyder + + * blockframe.c (find_pc_sect_partial_function): use bfd section + of msymbol for end of section comparison. + +Fri Sep 11 14:02:49 1998 Michael Snyder + + * tracepoint.c: clean up several unused variables and such. + +Fri Sep 11 12:38:34 EDT 1998 Zdenek Radouch (radouch@cygnus.com) + + * arm-tdep.c (arm_push_arguments): fixed frame construction + +Thu Sep 10 20:51:23 1998 Michael Snyder + + * mn10300-tdep.c (mn10300_analyze_prologue): guard against NULL. + +Wed Sep 9 19:37:36 1998 Stan Shebs + + * dbxread.c (IGNORE_SYMBOL): Remove definition, is never used. + * os9kread.c: Remove comment mentioning IGNORE_SYMBOL. + +Wed Sep 9 11:39:05 1998 Ron Unrau + + * blockframe.c(find_pc_sect_partial_function): look for min syms in + the same section when trying to guess the end of a function. + * symfile.c(list_overlays_command): use print_address_numeric + * remote-sim.c: export simulator_command + +1998-09-08 Jason Molenda (jsm@bugshack.cygnus.com) + + * breakpoint.c (bpstat_stop_status): Declare a bp match if the + current fp matches the bp->fp OR if the current fp is less than + the bp->fp if we're looking at a bp_step_resume breakpoint. + +Tue Sep 8 19:42:58 1998 Stan Shebs + + * symtab.h (struct symtab): Remove EXTRA_SYMTAB_INFO hook, + not currently used. + * symfile.c (allocate_symtab): Deprecate use of + INIT_EXTRA_SYMTAB_INFO here. + +Fri Sep 4 15:33:25 1998 Stan Shebs + + * README: Update remote debugging and testsuite info. + +Thu Sep 3 13:50:20 1998 Mark Alexander + + * config/mn10300/tm-mn10300.h (FP_REGNUM): Redefine to be a + pseudo-register, not the same as a3. + (D2_REGNUM, D3_REGNUM, A2_REGNUM, A3_REGNUM): Define. + * mn10300-tdep.c (fix_frame_pointer): New function. + (set_movm_offsets): Use register number macros instead of + hard-coded constants. + (mn10300_analyze_prologue): Fix to handle redefinition of FP_REGNUM. + (mn10300_frame_chain): Fix to handle redefinition of FP_REGNUM; + use register number macros instead of hard-coded constants; + add missing parameter to call of mn10300_analyze_prologue. + (mn10300_frame_saved_pc): Use register number macros instead of + hard-coded constants. + +Tue Sep 1 12:04:57 EDT 1998 Zdenek Radouch (radouch@cygnus.com) + + Changes to support/fix ARM/ELF port. Use MAKE_MSYMBOL_SPECIAL for + both ELF and COFF; + * elfread.c (elf_symtab_read): use ELF specific macro + * coffread.c (coff_symtab_read): use COFF_MAKE_MSYMBOL_SPECIAL() + * arm-tdep.c: separate COFF and ELF thumb processing + disable --mapcs-float processing + * dwarf2read.c: Disabled building of minimal symbols + * config/arm/tm-arm.h: new macros for distinguishing arm/thumb + * config/mips/tm-mips.h: use ELF specific macro + +Mon Aug 31 15:42:10 1998 Tom Tromey + + * top.c (context_hook): Define. + +Tue Aug 25 13:21:58 1998 Michael Snyder + + * ax-gdb.c (gen_var_ref): Allow for typedef types. + (gen_cast, gen_bitfield_ref, gen_expr, gen_deref): ditto. + +Mon Aug 24 18:29:03 1998 Michael Snyder + + * tracepoint.c (collect_symbol): Handle register doubles that + are stored in two registers. + +Mon Aug 24 14:39:08 1998 Mark Alexander + + * sh-stub.c (undoSStep): Improve comment. + * sparc-tdep.c (sparc_extract_struct_value_address): Simplify to use + same method on both 32-bit and 64-bit machines. + * sparcl-tdep.c (sparclite_check_watch_resources): Simulator doesn't + support hardware breakpoints. + * config/sparc/tm-sparc.h (CALL_DUMMY): Improve comments. + +1998-08-20 Jason Molenda (jsm@bugshack.cygnus.com) + + * rdi-share/Makefile.am (INCLUDES): Fix typeo. + * rdi-share/Makefile.in: Regenerated. + +1998-08-19 Jason Molenda (jsm@bugshack.cygnus.com) + + * rdi-share/Makefile.am: Use just `INCLUDES' not `libname_INCLUDES'. + * rdi-share/Makefile.in: Regenerated. + +1998-08-19 Keith Seitz + + * v850ice.c (v850ice_stop): New function to stop the ICE. + (v850ice_load) Pass filename to ICE DLL. + (ice_stepi, ice_nexti, ice_cont): Do not directly call the gdb + commands -- let the GUI do it so that it can retain control + of the display. + +Wed Aug 19 15:53:52 1998 Anthony Green + + * i386v4-nat.c: Include sys/reg.h if present. + +Wed Aug 19 03:07:53 1998 Richard Henderson + + * config/alpha/alpha-linux (XDEPFILES): Build ser-tcp. + +1998-08-18 Fernando Nasser + + * symtab.c (decode_line_1): For minimal symbol, SKIP_PROLOG to + make sure we stop after the frame pointer is locaded and backtrace + prints an accurate stack. Complements changes made on Mon Jul 27 + 10:45:56 1998 + (decode_line_2): Replaced the whitespace after ">" in a prompt + which has been taken away by changes made on Sun Jul 19 02:11:45 + 1998 + +1998-08-18 Keith Seitz + + * stack.c: Define new hook, selected_frame_level_changed_hook, which + will be called whenever the selected stack level changes. + (select_frame): Call the selected_frame_level_changed_hook. + +Tue Aug 18 18:03:42 1998 Stan Shebs + + * remote-rdi.c (arm_rdi_open): Pass serial device name to + Adp_OpenDevice, and include it in error reports. + +1998-08-18 Jason Molenda (jsm@bugshack.cygnus.com) + + * configure.in: Add more header files to AC_CHECK_HEADERS. + * configure: Regenerated. + + * command.c: Include wait.h or sys/wait.h if present. + * inftarg.c: Ditto. + * core-aout.c: Include ptrace.h or sys/ptrace.h if present, based + on autoconf test. + * infptrace.c: Ditto. + + * expprint.c: Include ctype.h for isprint prototype. + * i386aix-nat.c: Include sys/reg.h if autoconf says it is present. + * i386v-nat.c: Include ptrace.h, sys/ptrace.h, and sys/reg.h if + present, based on autoconf test. + + * utils.c: Include curses.h and term.h if present. + (puts_debug): Change 'carriage_return' local variable to return_p + to avoid name clash. + + * config/m68k/nm-apollo68b.h: Don't define PTRACE_IN_WRONG_PLACE, + determine it with autoconf. + * config/i386/nm-linux.h: Don't define NO_SYS_REG_H, determine it + with autoconf. + * config/i386/nm-i386sco.h: Don't define NO_PTRACE_H, determine it + with autoconf. + * config/i386/nm-i386v.h: Ditto. + * config/i386/nm-symmetry.h: Ditto. + * config/m88k/xm-cxux.h: Ditto. + * config/m88k/xm-dgux.h: Ditto. + + * config/m68k/delta68.mh (NAT_FILE): nm-delta68.h no longer necessary. + * config/m68k/nm-delta68.h: Removed. + +Fri Aug 14 11:14:03 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300-tdep.c (set_movm_offsets): Change second argument to + be the actual args to movm itself. All callers changed. Only set + fi->fsr.regs[x] if reg X is saved by the movm instruction. + +Fri Aug 14 04:18:23 1998 Peter Schauer + + * sol-thread.c (lwp_to_thread): Fix error message for failing + td_ta_map_lwp2thr call. + (ps_lgetLDT): Mask off upper bits in GS register when comparing + with selector. + +Wed Aug 12 16:30:01 1998 Frank Ch. Eigler + + * remote-sim.c (simulator_command): Reset register cache after + simulator command. + +Wed Aug 12 09:00:26 1998 Stu Grossman + + * expprint.c (dump_prefix/postfix_expression): Don't try to print + type expressions. + +Tue Aug 11 11:33:25 1998 Stu Grossman + + * c-typeprint.c (c_print_type): Don't crash if varstring is null. + * expprint.c expression.h (dump_expression): Rename to + dump_prefix_expression. + * Print out the expression in normal form. Call print_longest + instead of trying to do it ourselves. + * (dump_postfix_expression): New function, prints out the expression + with indentation and better formatting and interpretation. + * parse.c (parse_exp_1): Put calls to dump expressions under ifdef + MAINTENANCE_CMDS and expressiondebug variable. + +Thu Aug 6 13:20:02 1998 Ron Unrau + + * infrun.c (wait_for_inferior): use stop_func_name instead of + stop_func_start to decide that no debug info exists. + +Thu Jul 30 13:53:50 1998 Mark Alexander + + * mips-tdep.c (mask_address_p): New variable. + (mips_addr_bits_remove): Test mask_address_p to decide whether + to mask off the upper 32 bits of addresses. + (_initialize_mips_tdep): Add command to set mask_address_p. + (mips_call_dummy_address): New function. + * config/mips/tm-mips.h (CALL_DUMMY_ADDRESS): Redefine to + call mips_call_dummy_address. + +1998-07-29 Fernando Nasser + + * symfile.c (add_symbol_file_command): Test for the from_tty + parameter and avoid query when not interactive. + +Mon Jul 27 16:11:42 1998 Michael Snyder + + * tracepoint.c (remote_set_transparent_ranges): new function. + Send the start and end addresses of all loadable read-only + sections down to the trace target, so that it can treat them + as "transparent" (ie. don't care if they were collected or not). + +Mon Jul 27 15:38:07 1998 Mark Alexander + + * mn10300-tdep.c (mn10300_analyze_prologue): Undo previous fix + for setting frame address in optimized code; made unnecessary + by compiler fixes. + +Mon Jul 27 10:45:56 1998 Martin M. Hunt + + * symtab.c (decode_line_1): For minimal symbol, call + find_pc_sect_line() to make sure the line number gets set + properly. + (print_symbol_info): Redeclare function void. + +1998-07-27 Jason Molenda (jsm@bugshack.cygnus.com) + + * config/d10v/tm-d10v.h (REGISTER_NAMES): sp -> r15. The + stack pointer et al are synthesized from the SP_REGNUM (etc) + defines and should not be mentioned in REGISTER_NAMES. + +Fri Jul 24 14:41:19 1998 Michael Snyder + + * tracepoint.c (encode_actions): Treat register names and simple + variable names as special cases and don't convert them to byte- + codes: these things can be collected far more efficiently + without invoking the bytecode interpreter. + +Fri Jul 24 13:32:46 1998 Mark Alexander + + * config/i386/tm-i386.h (STORE_STRUCT_RETURN): Make it + work on hosts of any endianness. + * config/i386/tm-i386v.h: Ditto. + +Fri Jul 24 07:41:12 1998 Mark Alexander + + * mn10300-tdep.c (set_movm_offsets): New helper function + for mn10300_analyze_prologue. + (mn10300_analyze_prologue): Simplify by factoring out common code. + Fix bugs in setting frame address for optimized code. + Use read_memory_nobpt instead of target_read_memory. + +Thu Jul 23 17:01:17 1998 Michael Snyder + + * tracepoint.c (collect_symbol): handle LOC_ARG case. + +Thu Jul 23 15:07:40 1998 Dawn Perchik + + * sparc-tdep.c (sparc_init_extra_frame_info): Recognize when we're + in a function prologue before the SAVE instruction. + (sparc_frame_saved_pc): Ditto. + * config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): Add in_prologue flag. + +Thu Jul 23 14:58:09 1998 Dawn Perchik + + * i386-tdep.c (i386_get_frame_setup): Recognize function + prologues in code compiled with -fcheck-stack. + +Thu Jul 23 14:49:27 1998 Dawn Perchik + + * remote-mips.c (remote_mips_insert_hw_breakpoint, + remote_mips_remove_hw_breakpoint): New functions for hardware + breakpoints on LSI targets. + * config/mips/tm-embed.h (target_remove_hw_breakpoint, + target_insert_hw_breakpoint): Define to call + remote_mips_insert_hw_breakpoint and remote_mips_remove_hw_breakpoint, + respectively. + +1998-07-21 Fernando Nasser + + * source.c (print_source_lines): Print "No such file or directory" + just once. + (directory_command): same as above; resets if user issues dir. + +Sun Jul 19 02:11:45 1998 Martin M. Hunt + + * symtab.c (decode_line_2): Instead of printing a prompt + and calling command_line_input() without a prompt, just + call it with the proper args. This makes the GUI work too. + +Fri Jul 17 9:26:50 1998 Ron Unrau + + * blockframe.c (find_pc_sect_partial_function): allow for the possi- + bility of multiple symbols at the same address when finding high. + * breakpoint.c (resolve_sal_pc): if the function based section lookup + fails, try getting the section from the minimal symbol table. + * parse.c (write_exp_msymbol): use symbol_overlayed_address to get + the LMA of a minimal symbol if unmapped. + * symtab.c (find_line_symtab): change interface to return symtab + containing the best linetable found. + (decode_line_1): use find_line_symtab to set val.symtab. This should + improve support for source files with multiple symtabs. + +Wed Jul 15 11:51:33 1998 Keith Seitz + + * main.c (main): Fix violations of GNU coding standard. + + * breakpoint.c: Export delete_command. + + * infcmd.c: Export continue_command, stepi_command, and nexti_command. + + * Makefile.in: Add target for v850ice.o. + + * configure.tgt: Add cygwin32 dependencies for v850 ice. + +Wed Jul 15 10:58:29 1998 Nick Clifton + + * tracepoint.c (set_raw_tracepoint): Cope with symbols that do not + have an associated directory. + +Mon Jul 13 15:21:04 1998 Mark Alexander + + * utils.c (puts_debug): Display non-printable characters in hex + instead of octal. + +Thu Jul 9 16:16:47 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300-tdep.c (mn10300_generic_register_names): New variable. + (set_machine_hook): New function. Copy the appropriate register + names into reg_names. + (_initialize_mn10300_tdep): Set up to call set_machine_hook. + * tm-mn10300 (NUM_REGS): Bump to 32. + (REGISTER_NAMES): Updated accordingly. + + +Tue Jul 7 7:40:13 1998 Ron Unrau + + * symtab.c (find_pc_sect_psymbol): allow case where textlow is 0 + +Thu Jul 2 15:57:58 1998 Frank Ch. Eigler + + * breakpoint.c (resolve_sal_pc): Accept absence of innermost + Lexical block for breakpoint resolution. + +Thu Jul 2 10:22:00 1998 Dawn Perchik + + * mdebugread.c (parse_partial_symbols): Go ahead and read the .mdebug + section, but just don't add a 2nd minimal symbol if this is an .mdebug + section in an ELF file. + +1998-07-01 Jim Blandy + + * Makefile.in (ax-general.o): Depend on $(defs_h) too. + (ax_h): Bother to define this. + +Mon Jun 29 19:01:18 1998 Jim Wilson + + * gnu-regex.c (re_comp): Add cast to char * before gettext calls. + +Sun Jun 28 11:35:48 1998 Peter Schauer + + Improve support for SunPro F77. + * dbxread.c (end_psymtab, process_one_symbol): Handle minimal + symbols with trailing underscore names. + * minsyms.c (find_stab_function_addr): Ditto. + * dbxread.c (process_one_symbol): Ignore N_ALIAS for now. + * partial-stab.h (case N_ALIAS): Ditto. + * stabsread.c (read_sun_builtin_type): Handle boolean types. + +Fri Jun 26 14:03:01 1998 Keith Seitz + + * symtab.h (enum namespace): Add new namespaces FUNCTIONS_NAMESPACE, + TYPES_NAMESPACE, METHODS_NAMESPACE, and VARIABLES_NAMESPACE used by + new search_symbols. + Add prototype for search_symbols and free_search_symbols. + + * symtab.c (list_symbols): Rewrite to use new search_symbols. + (file_matches): New helper function for search_symbols. + (free_search_symbols): New function which frees data returned from + search_symbols. + (print_symbol_info): New helper function which prints info about a + matched symbol to stdout. Extracted from old list_symbols. + (print_msymbol_info): New helper function which prints info about + a matched msymbol to stdout. Extracted from old list_symbols. + (symtab_symbol_info): Extracted from old list_symbols. + (variables_info): Use symtab_symbol_info. + (functions_info): Use symtab_symbol_info. + (types_info): Use symtab_symbol_info. + (rbreak_command): Rewrite to use new search_symbols. + +Thu Jun 25 22:38:32 1998 Frank Ch. Eigler + + * mips-tdep.c (mips_push_arguments): Use 128-bit stack frame + alignment for inferior calls. + +Wed Jun 24 23:17:12 1998 Mark Alexander + + * mn10200-tdep.c (mn10200_analyze_prologue): Fix calculation + of jsr target address. + +Tue Jun 23 19:37:46 1998 Mark Alexander + + * config/mn10200/tm-mn10200.h (SAVED_PC_AFTER_CALL): Don't + zero upper byte of address. + +Tue Jun 23 17:32:26 1998 Michael Snyder + + * rs6000-tdep.c (pop_dummy_frame): use memcpy. + (push_arguments): use memset. + (various other places): fix up indentation and long lines. + +Tue Jun 23 11:58:35 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * configure.in: s/lXext/-lXext/ for Jillian's change. + +Tue Jun 23 11:14:04 1998 Michael Snyder + + * source.c (find_source_lines): fix indentation. + + * config/mips/tm-irix5.h: Modify to work better on irix 6, by + making FP registers 8 bytes instead of 4. + REGISTER_BYTES: redefine. REGISTER_BYTE(): redefine. + REGISTER_VIRTUAL_TYPE: redefine. MIPS_LAST_ARG_REGNUM: redefine. + * irix5-nat.c (fetch_core_registers): read 8 bytes per FP register. + * mips-tdep.c (FP_REGISTER_DOUBLE): new macro to distinguish + targets with 8-byte FP registers (don't use TARGET_MIPS64). + (STACK_ARGSIZE): new macro, how much space is taken up on the + stack for each function argument (don't use TARGET_MIPS64). + (mips_push_arguments): modify logic to work better on Irix 6 + (n32 ABI). + +Tue Jun 23 12:29:53 1998 Jillian Ye + + * configure.in: Add -lXext to mips_extra_libs + * configure: Regenerated. + +Sun Jun 21 09:31:12 1998 Ron Unrau (runrau@cygnus.com) + + * symtab.c (find_line_pc): assumed that a PC of 0 is illegal. + Changed to pass PC as arg and return 1 if valid (0 otherwise). + * symtab.h: Change prototype to match. + * symtab.c (find_line_pc_range): Use new interface. + * breakpoint.c (resolve_sal_pc): Ditto. + +Wed Jun 17 15:50:00 1998 Ron Unrau (runrau@cygnus.com) + + * parse.c (target_map_name_to_register): Check target specific + aliases *first* so that it can over-ride architectural names + +Wed Jun 17 17:13:38 1998 Said Ziouani (saidz@park-street.cygnus.com) + + * remote-sds.c (sds_start_remote): Fix printf call. + +Tue Jun 16 16:32:08 1998 Mark Alexander + + * mn10200-tdep.c (mn10200_analyze_prologue): Fix null pointer + crash when in "start". + +Tue Jun 16 14:38:40 1998 Ron Unrau (runrau@cygnus.com) + + * dbxread.c: reset function_start_offset after a finishing N_FUN + is seen. + * remote-sim.c: allow TARGET_REDEFINE_DEFAULT_OPS to override + target vectors as needed. + +Sun Jun 14 08:46:25 1998 Ron Unrau (runrau@cygnus.com) + + * partial-stab.h: 'F' and 'f' type N_FUN psymbols should pass + CUR_SYMBOL_VALUE as CORE_ADDR instead of long + * buildsym.[ch]: export pending_blocks list + +Sat Jun 13 13:02:32 1998 Dawn Perchik (dawn@cygnus.com) + + * remote.c: Fix remote help string to match that of help.exp. + +Fri Jun 12 14:22:55 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * configure.in (LIBS): Add -lw to the list of libraries if needed. + +Thu Jun 11 15:05:10 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * btowc.c: Removed. + * configure.in: Don't see if we need to replace btowc(). + * Makefile.in: Don't include LIBOBJS. + * configure: Regenerated. + * gnu-regex.c (regex_compile): Only support i18n [:foo:] if + we have btowc(). + +Wed Jun 10 15:39:14 1998 Stu Grossman + + * c-exp.y: Fix problems with parsing "'foo.bar'::func". + Some languages allow symbols with dots. + + * gdbtypes.c (check_stub_method): Cosmetic. Use more descriptive + names for parameters. + + * jv-exp.y: Parser now accepts primitive types. + * (parse_number): Use correct ifdef for scanf long double support. + * jv-lang.c (java_array_type): Initial cut at array support. + + * language.c language.h (set_language): Now returns previous language. + + * symtab.c (find_methods): Make static. Cosmetic changes, including + indentation, and adding descriptive comments. Move local variable + defs into the block they are used in. + * Don't call check_stub_method any more. Use gdb_mangle_name to + generate the full method name. find_method doesn't need all the other + goobldegook that check_stub_method does. + * (gdb_mangle_name): Use more descriptive names for parameters. Fix + comment. + * (lookup_partial_symbol lookup_block_symbol): Check for java to + ensure we can find mangled names. + * (decode_line_1): Move local variable defs into the block they are + used in. (Improves code readability.) + +Wed Jun 10 18:04:35 1998 Frank Ch. Eigler + + * gdbtypes.c (get_discrete_bounds): Assign unsigned type flag for + all-positive enum. + (create_set_type): Ditto for all-positive set values. + * values.c (unpack_field_as_long): Check for typedef in struct + field unpacking. + +Wed Jun 10 14:06:05 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * configure.in: Add some tests for gnu-regex.c's benefit. + See if btowc() function is provided in C library. + * configure, config.in: Regenerated. + * Makefile.in (CLIBS, CDEPS): Add @LIBOBJS@ to build btowc.c + if necessary. + * btowc.c: New file. + + * gnu-regex.c: Reorder wchar.h and wctype.h includes for Solaris' + benefit. + Drop namespace preserving defines for now. + +Wed Jun 10 11:53:42 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * gnu-regex.c: Include "gnu-regex.h", not "regex.h". + +Wed Jun 10 11:34:07 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * gnu-regex.c, gnu-regex.h: Change LGPL license to GPL license + to stay consistent with the rest of GDB. + +Wed Jun 10 11:27:39 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * gnu-regex.c, gnu-regex.h: Update to current FSF (glibc) versions. + +Wed Jun 10 10:58:18 1998 Michael Snyder + + * printcmd.c (disassemble_command): move overlay mapping code + "up" into find_pc_partial_function. + * blockframe.c (find_pc_partial_function): adjust start address + and end address for overlays (mapped vs. unmapped addresses), + so that all callers of this function may benefit. + * m32r-tdep.c (m32r_skip_prologue): adjust indentation. + +Mon Jun 8 16:08:10 1998 Ron Unrau + + * objfiles.c (add_to_objfile_sections): All targets to define + TARGET_KEEP_SECTION to permit them to retain bfd sections that + GDB would otherwise have discarded. + +Fri Jun 5 13:56:19 1998 Doug Evans + + * dbxread.c (read_dbx_symtab): Don't lower texthigh for last psymtab. + +Thu Jun 4 18:35:04 1998 Stan Shebs + + * remote.c (init_extended_remote_ops): Make extended_remote_ops + by copying from remote_ops, move it and init_remote_ops to + usual place at end of file, remove "void" from arg lists. + +Thu Jun 4 17:51:06 1998 Mark Alexander + + * sparc-tdep.c (sparc_fix_call_dummy): Byte-swap the call dummy + on bi-endian machines. + (sparc_extract_return_value): Handle values smaller than int on + machines with little-endian data. + (sparc_target_architecture_hook): Set bi_endian flag. + +Thu Jun 4 12:14:48 1998 Michael Snyder + + * printcmd.c (disassemble_command): Fix off-by-one error for + disassembling functions in unmapped overlay sections. + +Thu Jun 4 10:15:03 1998 Elena Zannoni + + * remote.c: merged. + + - Jim Blandy + (print_packet, remote_packet_command): New functions. + (_initialize_remote): Register the remote-packet command. + - David Taylor + (_initialize_remote): remote-compare is now + compare-sections. + - Elena Zannoni + (remote_compare_command): added warning, issued in case + of mismatch only. + +Thu Jun 4 08:25:38 1998 Michael Snyder + + * remote.c (remote_compare_command): New function, new command. + Compare object file binary image with corresponding memory on + remote target. Report differences. + +Tue Jun 2 19:05:04 1998 Mark Alexander + + * sparc-tdep.c (sparc_target_architecture_hook): Set target + byte order only when it's selectable. + +Tue Jun 2 02:01:56 1998 Mark Alexander + + * sparc-tdep.c (sparc_target_architecture_hook): New function to + set endianness based on machine type. + (_initialize_sparc_tdep): Initialize target_architecture_hook. + (sparc_print_register_hook): Print PSR and FPSR in fancy format + on 32-bit machines. + * config/sparc/tm-sparc.h (PRINT_REGISTER_HOOK): Redefine to + call sparc_print_register_hook instead of using inline code. + * config/sparc/tm-sp64.h (PRINT_REGISTER_HOOK): Remove. + +Thu May 28 17:19:14 1998 Keith Seitz + + * main.c (main): Check for NULL from getenv on CYGWIN32. + +Thu May 28 09:41:44 1998 Nick Clifton + + * monitor.c (monitor_vsprintf): Handle %%. Patch courtesy of + Felix Lee (flee@cygnus.com) + +Thu May 28 00:27:35 1998 Peter Schauer + + * mips-tdep.c (mips_push_dummy_frame): Fix calculation of + PROC_REG_OFFSET and PROC_FREG_OFFSET. + +Mon Apr 27 14:37:49 1998 Andrew Cagney + + * config/v850/tm-v850.h (REGISTER_BYTE): FP_REGNUM and + FP_RAW_REGNUM use the same register location. + + * v850-tdep.c (v850_scan_prologue): Use FP_RAW_REGNUM instead of + FP_REGNUM. + (v850_frame_chain): Ditto. + + * config/v850/tm-v850.h (REGISTER_NAMES): Add "fp". + (NUM_REGS): Update. + (FP_REGNUM): Update. + (FP_RAW_REGNUM): Define. + +Wed May 27 14:22:31 1998 Keith Seitz + + * main.c (main): Convert the path returned from getenv to a posix + path on cygwin32 hosts. + +Mon May 25 13:31:27 1998 Keith Seitz + + * remote.c (remote_open_1): If an error occurs starting the remote, + pop the target AND return. + +Sat May 23 02:23:09 1998 Peter Schauer + + * dwarf2read.c (read_subroutine_type): Set TYPE_FLAG_PROTOTYPED + on C++ functions. + * valops.c (value_arg_coerce): Add new argument to indicate whether + the function has a prototype, handle integer and float promotions + accordingly. + (call_function_by_hand): Always call value_arg_coerce, pass down + prototype information. + +Fri May 22 10:56:36 1998 John Metzler + + * remote.c (_initialize_remote): Typo extended__remote + +Thu May 21 13:14:25 1998 John Metzler + + * gnu-nat.c (init_gnu_ops): Initialization of target ops by assignment. + (_initialize_gnu_nat): Call new init + * mac-nat.c (init_child_ops): Ditto. + (_initialize_mac_nat): Ditto. + * monitor.c (init_base_monitor_ops): Ditto. + (_initialize_remote_monitors): Ditto. + * ppc-bdm.c (init_bdm_ppc_ops): Ditto. + (_initialize_bdm_ppc): Ditto. + * remote-adapt.c (init_adapt_ops): Ditto. + (_initialize_remote_adapt): Ditto. + * remote-array.c (init_array_ops): Ditto. + (_initialize_array): Ditto. + * remote-bug (init_bug_ops): Ditto. + (_initialize_remote_bug): Ditto. + * remote-e7000.c (init_e7000_ops): Ditto. + (_initialize_remote_e7000): Ditto. + * remote-eb.c (init_eb_ops): Ditto. + (_initialize_remote_eb): Ditto. + * remote-es.c (init_es1800_ops): Ditto. + (init_es1800_child_ops): Ditto. + (_initialize_es1800): Ditto. + * remote-hms.c (init_hms_ops): Ditto. + (_initialize_remote_hms): Ditto. + * remote-mm.c (init_mm_ops): Ditto. + (_initialize_remote_mm): Ditto. + * remote-nindy.c (init_nindy_ops): Ditto. + (_initialize_nindy): Ditto. + * remote_nrom.c (init_nrom_ops): Ditto. + (_initialize_remote_nrom): Ditto. + * remote-os9k (init_rombug_ops): Ditto. + (_initialize_remote_os9k): Ditto. + * remote-rdi.c (init_rdi_ops): Ditto. + (_initialize_remote_rdi): Ditto. + * remote-rdp.c (init_remote_rdp_ops): Ditto. + (_initialize_remote_rdp): Ditto. + * remote-sds.c (init_sds_ops): Ditto. + (_initialize_remote_sds): Ditto. + * remote-sim.c (init_gdbsim_ops): Ditto. + (_initialize_remote_sim): Ditto. + * remote-st.c (init_st2000_ops): Ditto. + (_initialize_remote_st2000): Ditto. + * remote-udi.c (init_udi_ops): Ditto. + (_initialize_remote_udi): Ditto. + * remote-vx.c (init_vx_ops): Ditto. + (init_vx_run_ops): Ditto. + (_initialize_vx): Ditto. + * remote.c (init_remote_ops): Ditto. + (init_extended_remote_ops): Ditto. + (_initialize_remote): Ditto. + * sparcl-tdep.c (init_sparclite_ops): Ditto. + (_initialize_sparcl_tdep): Ditto. + * v850ice.c (init_850ice_ops): Ditto. + (_initialize_v850ice): Ditto. + * win32-nat.c (init_child_ops): Ditto. + (_initialize_inftarg): Ditto. + +1998-05-21 Jim Blandy + + * ax-gdb.c (const_var_ref): Don't handle function names. I don't + want to implement all the "usual unary conversion" rules for + constants. + (gen_usual_unary): Turn "function" values into "pointer to + function" values, in accordance with ANSI. + (gen_deref): Don't do the usual unary conversions here. Let the + caller do it. Note that dereferencing a function pointer yields + a function designator, which we call an rvalue, not an lvalue. + (gen_address_of): Handle functions specially. + (gen_struct_ref): Perform the usual unary conversions before + calling gen_deref. + (gen_expr): In case for the prefix '*' operator, call + gen_usual_unary manually. + +Wed May 20 15:29:41 1998 Gavin Koch + + * mips/tm-tx39.h (MIPS_DEFAULT_FPU_TYPE): Defined as MIPS_FPU_NONE. + * mips/tm-tx39l.h: Same. + +Wed May 20 10:12:11 1998 John Metzler + + * m32r-tdep.c (decode_prologue): Handle frames compiled with -Os. + Split out as separate function called by skip prologue and scan + prologue. new formula handles optimization in which the prologue + is interleaved with the body of the function. Also recognizes new + variations of prologue encoding. Use of frame pointer is + essential to debugging, -fno-omit-frame-pointer + (m32r_skip_prologue): Call decode prologue, ignore line info + (m32r_scan_prologue): Call decode prologue, ignore line info. + +Tue May 19 17:23:54 1998 John Metzler + + * w89k-rom.c (_initialize_w89k): Call new init function + (init_w89k_cmds): Convert to dynamic initialization of monitor_ops + data structure for forward compatability with additions to the + data structure. + * dbug-rom.c (_initialize_dbug_rom): ditto + (init_dbug_cmds): ditto + * m32r-rom.c (_initialize_m32r_rom): ditto + (init_m32r_cmds): ditto + +Tue May 19 14:54:11 1998 Michael Snyder + + * tracepoint.c (memrange_cmp): use const void * args to avoid + ANSI compiler warnings. + +1998-05-19 Jim Blandy + + * ax-gdb.c (gen_fetch, gen_var_ref, gen_deref, find_field, + gen_bitfield_ref, gen_expr): Call error, not abort. + * ax-general.c (read_const, generic_ext, ax_trace_quick, + ax_label, ax_const_d, ax_reg, ax_print): Same. + + * tracepoint.c: Remove the $(...) syntax for memranges. + (validate_actionline, encode_actions, trace_dump_command): Remove + clauses for the $(...) syntax. + (parse_and_eval_memrange): Function deleted. + (_initialize_tracepoint): Update function description. + + * ax-gdb.c (_initialize_ax_gdb): Make the "agent" command a + subcommand of "maintenance", as it should have been from the + beginning. #include "gdbcmd.h", to get the declaration for + maintenancelist. + * Makefile.in: Document that dependency. + +Tue May 19 12:00:58 1998 Elena Zannoni + + * tracepoint.c (get_tracepoint_by_number): new function, to access + traceframe_number for use of the GUI. + + * tracepoint.h: added prototype for get_traceframe_number. + +Mon May 18 13:34:27 1998 Keith Seitz + + * dbxread.c (process_one_symbol): If block addresses are relative to + function start addresses, reset function_start_address whenever a new + source file is seen. + +Mon May 18 13:04:27 1998 Michael Snyder + + * tracepoint.c (get_tracepoint_by_number): make sure to advance + arg pointer even if we fail to parse a useful number. Otherwise, + since this function is called in a loop, it may loop forever! + Also change strtol call to allow arbitrary radix. + (map_args_over_tracepoints (and other places)): add QUIT; call + to loop, to allow breakout using control-C. Not all loops were + analyzed to make sure they could terminate cleanly, but even + terminating with a messed-up tracepoint list would be better + than not terminating at all! + (tdump_command): check to see if we're connected to a trace- + capable target (currently only "remote") before doing anything + else. + +Sat May 16 22:21:48 1998 Frank Ch. Eigler + + * config/d30v/tm-d30v.h (INIT_FRAME_PC_FIRST): Fill in PC into + frame struct before extracting saved register offsets. + +Fri May 15 22:47:45 1998 Michael Snyder + + * tracepoint.c (encode_actions): fix typo in printf format string. + +1998-05-15 Jim Blandy + + Implement a few more tracing operators: ^ | & ~ ! + * ax-gdb.c (gen_integral_promotions, gen_logical_not, + gen_complement): New functions. + (gen_binop): New argument MAY_CARRY, indicating whether we need to + correct the upper bits of the value after performing the + operation. Callers changed. + (gen_expr): Handle BINOP_BITWISE_AND, BINOP_BITWISE_IOR, and + BINOP_BITWISE_XOR here as well, by calling gen_binop. Handle + UNOP_LOGICAL_NOT, UNOP_COMPLEMENT. + + * ax-gdb.c (gen_conversion): Reworked to avoid some unnecessary + sign extension. + + * ax-gdb.c (gen_usual_arithmetic): Renamed from gen_usual_binary, + to match the ANSI C standard better. Callers changed. + + * ax-gdb.c (gen_traced_pop): Add prototyped declaration. + +Fri May 15 18:18:38 1998 David Taylor + + * tracepoint.c (stringify_collections_list): return a collection + of strings rather than a single string. + (free_actions_list): new function. + (encode_actions): process collection of strings returned by + stringify_collections_list. + +1998-05-15 Jim Blandy + + * ax-gdb.c (gen_traced_pop): New function. + (gen_expr): Call it for comma operator. + (gen_trace_for_expr): Call it, instead of writing it out. + + Add facilities for sending arbitrary packets to the remote agent. + There are a bunch of improvements to make (make it generic; handle + 'O' replies properly), but I just want to get this onto the branch. + * remote.c (print_packet, remote_packet_command): New functions. + (_initialize_remote): Register the remote-packet command. + +Thu May 14 17:52:31 1998 Elena Zannoni + + * tracepoint.c: move actionline_type definition to tracepoint.h. + (validate_actionline): make non static. + + * tracepoint.h: move actioline_type definition from tracepoint.c. + (validate_actionline) moved prototype from tracepoint.c. + +Thu May 14 11:49:18 1998 David Taylor + + * tracepoint.c (validate_actionline): add additional error + checking, remove some dead code. + (encode_actions): additional cleanups. + (trace_find_command): remove some dead code. + (trace_find_pc_command): ditto. + (trace_find_tracepoint_command): ditto. + (trace_find_line_command): ditto. + (trace_find_range_command): ditto. + (trace_find_outside_command): ditto. + +Thu May 14 5:51:00 1998 Ron Unrau + + * symtab.c (decode_line_1): set section for "break *" + +Wed May 13 20:58:02 1998 Mark Alexander + + * corefile.c (reopen_exec_file): Reopen the exec file if + it has changed. + +Wed May 13 15:22:02 1998 Mark Alexander + + * sparc-tdep.c (fetch_instruction): New function. + (single_step, sparc_init_extra_frame_info, examine_prologue): + Use fetch_instruction instead of read_memory_integer + to ensure that instructions are always read as big-endian. + +Wed May 13 14:42:21 1998 Ian Lance Taylor + + * configure.in: Add AC_FUNC_ALLOCA. + * defs.h: Check HAVE_ALLOCA_H rather than sparc. Add _AIX pragma + alloca. + * configure: Rebuild. + * Makefile.in (jv-lang.o, jv-typeprint.o, jv-valprint.o): New + targets. + +Wed May 13 11:19:08 1998 Michael Snyder + + * tracepoint.c (trace_command): Remove old diagnostic code that was + preventing tracepoints from being defined with a full-path filename. + +Tue May 12 13:17:35 1998 Frank Ch. Eigler + + * stabsread.c (read_one_struct_field): Check for typedef in type + tree before clearing bitfield information. + +1998-05-11 Jim Blandy + + * ax-gdb.c (gen_binop): New function, based on gen_mul, to replace + gen_mul and gen_div, and handle `%' op as well. Correctly tests + type of arguments. + (gen_expr): Factor out common code in binary arithmetic operators. + Add support for `%'. + (gen_mul, gen_div): Removed. + +Thu May 7 14:49:38 1998 Bob Manson + + * config/sparc/tm-sp64.h (CALL_DUMMY): Store and retrieve + %o0-%o5 as 64-bit values; compensate for stack bias. + (USE_STRUCT_CONVENTION): We only pass pointers to structs + if they're larger than 32 bytes. + (REG_STRUCT_HAS_ADDR): Ditto. + + * sparc-tdep.c (sparc_init_extra_frame_info): Use read_sp() + instead of read_register. If the target is a sparc64 and the frame + pointer is odd, compensate for the stack bias. + (get_saved_register): Use read_sp(). + (DUMMY_STACK_REG_BUF_SIZE): Use FP_REGISTER_BYTES. + (sparc_push_dummy_frame): Use read_sp()/write_sp(). On sparc64, + save the PC, NPC, CCR, FSR, FPRS, Y and ASI registers. + (sparc_frame_find_saved_regs): Use read_sp(). Read the PC, NPC, + CCR, FSR, FPRS, Y and ASI registers from the frame, if it's a + dummy frame. + (sparc_pop_frame): Use write_sp(). If the target is a sparc64 and + the FP is odd, compensate for stack bias. + (sparc_store_return_value): Right-justify the return value before + writing it to %o0. + (sparc_fix_call_dummy): Don't NOP out part of the call dummy on + sparc64. + (sparc64_read_sp, sparc64_read_fp, sparc64_write_sp, + sparc64_write_fp, sp64_push_arguments, + sparc64_extract_return_value): New functions to support the + sparc64 ABI. + + * dwarfread.c (handle_producer): Set processing_gcc_compilation to + the right version number. + + * dwarf2read.c (read_file_scope): Assume we're processing + GCC2 output. + +Wed May 6 16:34:03 1998 Jeffrey A Law (law@cygnus.com) + + * somsolib.c: Include gdb_stat.h. + +Mon May 4 18:34:01 1998 David Taylor + + * ax-gdb.c (gen_mul): new function; (gen_div): new function; + (gen_expr): add support for * and / operators, call gen_mul and + gen_div as appropriate. + +Mon May 4 16:24:22 1998 Mark Alexander + + * defs.h (make_run_cleanup): Declare. + * solib.c (find_solib): Pass correct number of arguments to + make_run_cleanup. + +Mon May 4 07:08:25 1998 Michael Snyder + + * tracepoint.c (trace_actions_command): actions command must set + step_count to zero (in case previous actions have set it but the + new set does not). + +Sat May 2 09:35:07 1998 Stu Grossman + + * ocd.h: Add new flags, function codes, and processor types to + support new Wiggler capabilities. + * (ocd_write_bytes_size): New function to allow atomic writes of + memory in sizes larger than a byte. + + * ser-unix.c (baudtab): Add 57600, 115200, 230400, and 460800 baud. + +Fri May 1 19:51:32 1998 Frank Ch. Eigler + + * stabsread.c (read_one_struct_field): Do not override supplied + bitfield size for a range type value. + + * gdbtypes.c (create_range_type): For a range with positive + lower limit, declare range type as unsigned. + +Fri May 1 10:58:34 1998 John Metzler + + * monitor.c: Turn off debug + +Fri May 1 09:29:56 1998 Peter Schauer + + * breakpoint.c (delete_command): Skip internal breakpoints when + all breakpoints are requested. + + * stabsread.c (define_symbol): Record parameter types from Sunpro + function stabs in the TYPE_FIELDS of the function type. + +Thu Apr 30 15:59:54 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * Makefile.in (config-check-targets, config-check-hosts): Removed. + +1998-04-30 Paul Eggert + + * Makefile.in (maintainer-clean): + Don't get ahead of yourself and delete Makefile + before running `make'. + (local-maintainer-clean, do-maintainer-clean): New rules. + +Wed Apr 29 14:02:59 1998 David Taylor + + * ax-gdb.c (gen_add): when adding a pointer and an int, use + the size of the pointer, not the int (typo) to decide how + to extend the result. + +Wed Apr 29 10:20:40 1998 John Metzler + + * monitor.h: Defined additional hooks for dmpregs, configure_hooks + and wait_filter. These additions require that all ROM monitor + interfaces be recoded to initialize monitor ops using assignments + rather than static structure initialization. Added new bits to + flags MO_EXACT_DUMPADDR, MO_HAS_BLOCKWRITES. + + * monitor.c (RDEBUG): Conditional tracing throughout the file. + (fromhex): Now recognized upper cse hex digits + (monitor_printf_noecho): + (monitor_readchar): Tracing interferes with input timing. + (monitor_open): Register different memory write functions with + dcache_init if MO_HAS_BLOCKWRITES. + (flush_monior_dcache): Added as an additional utilty. + (monitor-resume): Call continue hook if one has been supplied. + (monitor_wait_filter): New function Factored out of monitor wait + and used if alternate wait-filter has not been provided. + (monitor_wait): call alternate wait filter if provided. Call + monitor_dump_regs, a new function factored out from inline code. + (monitor_dump_block): A new function used as a utility when + monitors must dump several blocks of registers using different + commands. + (monitor_dump_regs): Call alternate function if provided. Uses new + hook in monitor.h. + (monitor_write_memory): Engage previouly added hook + MO_FILL_USES_ADDR. + (monitor_write_even_block): new function supports writing long + blocks of 4byte words. + (longlongendswap): new internal function + (monitor_write_memory_longlongs): new function writes large blocks + using command to enter a long long. + (monitor_write-memory_block): new Function figures out which block + mod to use. + (monitor_read_memory): Can now handle dump formats in which the bytes + preceeding the requested data is not printed. + +Tue Apr 28 19:41:33 1998 Tom Tromey + + * tracepoint.c (memrange_cmp): Another typo fix; `memrbnge' -> + `memrange'. + + * tracepoint.c (memrange_cmp): Fixed typo in function intro. + +Tue Apr 28 17:41:20 1998 Philippe De Muyter + + * symfile.c (overlay_auto_command): Add forgotten parameter + definitions. + (overlay_manual_command, overlay_off_command): Likewise. + (overlay_load_command): Likewise. + * tracepoint.c (memrange_cmp): Parameters have type void *, not + struct memrange *. + +Tue Apr 28 11:08:25 1998 John Metzler + + * rom68k-rom.c (_initialize_rom68k): Fix unresolved init_rom_68kcmds. + +Mon Apr 27 14:32:21 1998 Mark Alexander + + * config/sparc/tm-sparc.h (CALL_DUMMY): Shorten it drastically, + make it work on the simulator. + (FIX_CALL_DUMMY): Convert to function call instead of inline code. + (sparc_fix_call_dummy): Declare. + * sparc-tdep.c (sparc_fix_call_dummy): New function, taken from + old FIX_CALL_DUMMY macro, with additional fixes for simulator. + (sparc_push_dummy_frame): Set registers differently on simulator + to prevent corrupted register window save areas. + +Mon Apr 27 13:46:40 1998 John Metzler + + * rom68k-rom.c (_initialize_rom68k, init_rom68k_cmds): + Convert all static initializations of monitor ops structures to + executable initializations in order that additions to the data + structure definition can me made without repeating this editing + exercise. + * abug-rom.c (_initialize_abug_rom, init_abug-cmds): Ditto. + * cpu32bug-rom.c (_initialize_cpu32bug_rom, init_cpu32bug_cmds): Ditto. + * mon960-rom.c (initialize_mon960, init_mon960_cmds): Ditto. + * op50-rom.c (initialize_op50n, init_op50n_cmds): Ditto. + * ppcbug-rom.c (_initialize_ppcbug_rom, init_ppc_cmds): Ditto. + * sh3-rom.c (_initialize_sh3_rom, init_sh3_cmds): Ditto. + * sparclet-rom.c (_initialize_sparclet, init_sparclet_cmds): Ditto. + * remote-est.c (_initialize_est, init_est_cmds): Ditto. + * remote-hms.c ( _initialize_remote_hms, init_hms_cmds): Ditto. + +Mon Apr 27 10:43:04 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * gdb_string.h (strdup): Don't specify arguments in prototype. + +Sun Apr 26 07:57:21 1998 Peter Schauer + + * rs6000-nat.c (vmap_ldinfo): Issue warning instead of error if + fstat on ldinfo_fd fails. Use objfile->obfd instead of vp->bfd + to check for reference to the same file. + + * target.c (target_read_string): Handle string transfers at the + end of a memory section gracefully. + +Fri Apr 24 17:18:56 1998 Geoffrey Noer + + * Makefile.in: enable EXEEXT setting + +Fri Apr 24 11:53:49 1998 David Taylor + + * tracepoint.c (add_local_symbols): change type of type from + char to int so that type shows up as 'A' or 'L' not 0. + +Thu Apr 23 16:37:20 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * README: Minor changes for 4.17 release. + +Thu Apr 23 15:44:39 1998 Per Bothner + + * symfile.c (deduce_language_from_filename): .class implies java. + +Thu Apr 23 12:52:21 1998 Philippe De Muyter + + * configure.in (strerror): Check if function must be declared. + * acconfig.h (NEED_DECLARATION_STRERROR): New define slot. + * gdb_string.h (strerror): Function declaration issued if + NEED_DECLARATION_STRERROR. + * configure, config.in: Files regenerated. + +Thu Apr 23 12:27:43 1998 Philippe De Muyter + + * symfile.c (simple_overlay_update_1): Do not prefix array address + by `&'. + * bcache.h (BCACHE_DATA_ALIGNMENT): Ditto. + * tracepoint.c (encode_actions): Ditto. + * language.c, complaints.c, utils.c (varargs.h): Do not include that + file here, it is already included indirectly by defs.h. + * dbxread.c (dbx_symfile_init, process_one_symbol): Cast xmalloc return + value to the appropriate pointer type. + * utils.c (floatformat_from_doublest): Ditto. + * tracepoint.c (read_actions, _initialize_tracepoint): Ditto. + (add_memrange): Likewise with xrealloc return value. + * stabsread.c (ref_add): Ditto. + * coffread.c (coff_symfile_init): Likewise for xmmalloc return value. + * elfread.c (elf_symfile_read): Ditto. + * os9kread.c (os9k_symfile_init): Ditto. + +Thu Apr 23 00:32:08 1998 Tom Tromey + + * config.in: Rebuilt. + * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_STPCPY, HAVE_GETTEXT, + HAVE_LC_MESSAGES): Define. + +Wed Apr 22 15:38:56 1998 Tom Tromey + + * configure: Rebuilt. + * configure.in: Call CY_GNU_GETTEXT. + * Makefile.in (top_builddir): New macro. + (INTL): Define to @INTLLIBS@. + (INTL_DEPS): New macro. + (CDEPS): Reference INTL_DEPS, not INTL. + +Wed Apr 22 12:58:23 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + Handle missing shared libraries during the examination of a core + dump gracefully. + * solib.c (find_solib): Use catch_errors around call to + solib_map_sections. Use warning instead of error if reading of + the shared library name fails. + (solib_map_sections): Change return and argument types to make + it callable from catch_errors. + (symbol_add_stub): Avoid GDB core dump if solib->abfd is NULL. + * irix5-nat.c, osfsolib.c (xfer_link_map_member, solib_map_sections, + symbol_add_stub): Ditto. + +Wed Apr 22 14:34:49 1998 Michael Meissner + + * Makefile.in (INTL*): Add support to link in the intl library, + and to add -I options to its source and object directories. + (INTERNAL_CFLAGS): Ditto. + (C{LIBS,DEPS}): Ditto. + +Tue Apr 21 11:20:54 1998 Frank Ch. Eigler + + * mips-tdep.c (gdb_print_insn_mips): Disassemble MIPS instructions + with subtarget-specific `mach', rather than fixed default. + * config/mips/tm-mips.h (TM_PRINT_INSN_MACH): New macro, default + disassembly `mach'. + +Mon Apr 20 15:35:03 1998 Philippe De Muyter + + * coffread.c (decode_base_type): Treat a long field with size greater + than TARGET_LONG_BIT as long long. + * values.c (value_from_longest): Print code value in error message. + +Mon Apr 20 15:32:21 1998 Mark Kettenis + + * gdb/gdb_string.h (strdup): Declare only if not defined as a + macro. + +Mon Apr 20 14:18:45 1998 J. Kean Johnston + + * procfs.c: Added replacement macros for LWP stuff. Fixed support + for UnixWare / SVR4.2MP targets and any targets which use + multi-file /proc entries. Fixed support for hardware watchpoints. + * solib.c: SCO needs some of the same code as SunOS. Change + preprocessor conditionals. + + * config/i386/i386sco5.mt: New file. + * config/i386/tm-i386sco5.h: New file. + * config/i386/i386sco5.mh (NATDEPFILES): add i386v-nat.o. + * config/i386/nm-i386v42mp.h + (TARGET_HAS_HARDWARE_WATCHPOINTS): define. + Add other macros for hardware assisted watchpoints. + * config/i386/nm-i386sco5.h: Correct attributions. + (TARGET_HAS_HARDWARE_WATCHPOINTS): define. + * config/i386/nm-linux.h (target_remote_watchpoint): Pass + 'type' through to i386_insert_watchpoint. + +Mon Apr 20 14:12:30 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * infrun.c (wait_for_inferior): Don't add signalled processes + as new threads. + * procfs.c (wait_fd): Note if LWP has exited. + (procfs_wait): use GETPID to get process ID. + +Sat Apr 18 15:21:04 1998 Stan Cox + + * configure.tgt: Added sparc86x support. + +Thu Apr 16 13:13:24 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * rdi-share/etherdrv.c (EthernetWrite): Use strerror to get + error string if in an ANSI C-ish environment. + +Wed Apr 15 18:59:48 1998 Mark Alexander + + * sparc-tdep.c (SPARC_HAS_FPU): Define. + (sparc_extract_return_value): New function, required to handle + machines without floating point. + (sparc_store_return_value): Ditto. + * config/sparc/tm-sparc.h (EXTRACT_RETURN_VALUE): Call + sparc_extract_return_value instead of using inline code. + (sparc_extract_return_value): Declare. + (STORE_RETURN_VALUE): Call sparc_store_return_value instead + of using inline code. + (sparc_store_return_value): Declare. + +Wed Apr 15 12:19:42 1998 Martin M. Hunt + + * solib.c (enable_break): Only call warning once + instead of three times. + +Tue Apr 14 16:52:59 1998 Mark Alexander + + * sparc-tdep.c (sparc_extract_struct_value_address): Make it + work correctly on little-endian hosts. + (sparc_push_arguments): New function. + (gdb_print_insn_sparc): New function. + (_initialize_sparc_tdep): Make gdb_print_insn_sparc the default + disassembler, so that SPARClite-specific instructions will + be recognized. + * sparcl-tdep.c (readchar): Print debugging information. + (debug_serial_write): New function, a replacement for SERIAL_WRITE + that prints debugging information. + * config/sparc/tm-sparc.h (PUSH_ARGUMENTS): Define. + (sparc_push_arguments): Declare. + +Tue Apr 14 15:43:49 1998 John Metzler + + * gdbcfgxref (xref_menu): Call new regex and wild card searches + Now you can type in a specific triple like mips64-vr4300-elf or + somthing like mips*.h + (triple_search, wildcardsearch): The new functions + +Mon Apr 13 16:28:07 1998 Elena Zannoni + + * utils.c (warning): added call to warning_hook + + * source.c (find_source_lines): modified to call warning in case + of source vs. executable time stamp mismatch. Simplified object + file check. Initialized mtime to 0. + + * defs.h: added warning_hook prototype + + * top.c: added warning_hook prototype. + +Mon Apr 13 09:54:08 1998 Keith Seitz + + * config/sparc/tm-sun4os4.h (IS_STATIC_TRANSFORM_NAME): Add missing + definition. + +Fri Apr 10 22:36:28 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + Update support for x86 Solaris 2. + * config/i386/tm-i386sol2.h, nm-i386sol2.h: New configuration + files for x86 Solaris 2. + * config/i386/i386sol2.mt, i386sol2.mh: Use them. + * config/sparc/tm-sun4sol2.h (PROCFS_GET_CARRY): New macro, extract + carry flag from a given regset. + (IS_STATIC_TRANSFORM_NAME): New macro, check if a symbol name + is a SunPro transformed name. + * i386-tdep.c (sunpro_static_transform_name): New function to + extract the source name from a SunPro transformed name. + * inferior.h (procfs_first_available, procfs_get_pid_fd): + Add prototypes. + * infrun.c (wait_for_inferior): Handle breakpoint hit in + signal handler without intervening stop in sigtramp. + * procfs.c (procfs_lwp_creation_handler): Use PROCFS_GET_CARRY + instead of direct access to the status register. + (procfs_get_pid_fd): New function, returns procfs fd for a given pid. + * sol-thread.c (ps_lgetLDT): New function, returns LDT for a given + lwpid. + (sol_find_new_threads): Handle failed libthread_db initialization + gracefully. + * stabsread.c (define_symbol): Use IS_STATIC_TRANSFORM_NAME + to check for a SunPro transformed symbol name. + +Fri Apr 10 10:35:35 1998 John Metzler + + * utils.c (fmthex): A formatting function for hexdumps + + * mips-tdep.c (unpack_mips16): Fixed instruction decoding, lots of + bit pattern interpretations. mips_fetch_instruction does not work + for 16 bit instructions. Some confusion remains about sign + extension in backward branches. + (mips32_relative_offset): Sign extension + (mips32_next_pc): Major debugging, bit pattern interpretation + (print_unpack): debugging printf + (fetch_mips_16): new funtion, key on PC low bit, not symbol table + (mips16_next_16): Initial major debugging of this function. Lots + of bit pattern mistakes. + (mips_next_pc): key on low bit of PC, not symbol table. + * symfile.c (generic_load): Added a download verification which + reads back the loaded code. Download chunk size is now a defined + macro. Fixed a bug in which downloading slips into loading one + byte at a time. Lower level functions in monitor.c can load long + sequences of bytes and make use of these fixups. Referencing + bfd-start_address directly was incorrectly getting zero for start. + +Thu Apr 9 19:20:32 1998 Ian Lance Taylor + + * mips-tdep.c (do_fp_register_row): Use alloca rather than arrays + with dynamic size. + +Wed Apr 8 19:21:42 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * top.c (print_gdb_version): Print 1998 now. + +Wed Apr 8 16:57:22 1998 Philippe De Muyter + + * source.c: Remove obsolete decl of strstr(). + +Wed Apr 8 16:47:33 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * solib.c (solib_create_inferior_hook): Remove Ulrich Drepper's + patch of March 23 1998. + * breakpoint.c (breakpoint_re_set_one): Remove Ulrich Drepper's + patch of March 23 1998. + +Sat Apr 4 10:05:00 1998 Dawn Perchik + + * mdebugread.c (parse_partial_symbols): If this is an .mdebug + section in an ELF file, override a symbol's ECOFF section with its + ELF section. Also, fix stabs continuation where a stabs string + continues for more than one continuation. + +Mon Apr 6 09:17:48 1998 Andrew Cagney + + * mips-tdep.c (mips_push_arguments): Specify dimention of valbuf + using MAX_REGISTER_RAW_SIZE. + +Sat Apr 4 10:05:00 1998 Dawn Perchik + + * infrun.c: Fix prototype of signals_info to match static funtion. + +Thu Apr 2 12:47:41 1998 Frank Ch. Eigler + + * sol-thread.c (sol_thread_store_registers): Save & restore new + value of single updated register to prevent accidental clobbering. + +Wed Apr 1 22:01:09 1998 Mark Alexander + + * config/sparc/tm-sparclite.h (TARGET_BYTE_ORDER_SELECTABLE): Define. + * config/sparc/sparclite.mt: Link in the erc32 simulator. + +Wed Apr 1 16:30:49 1998 Ian Dall + + * ns32k-tdep.c (flip_bytes, ns32k_localcount, + ns32k_get_enter_addr, sign_extend): Restore functions mysteriously + deleted. + + * ns32knbsd-nat.c: New (?) file to support fetching and storing + registers on NetBSD hosts. + + * nbsd.mh (NATDEPFILES): put ns32knbsd-nat.o instead of + ns32k-nat.o + + * ns32km3-nat.c (reg_offset): Get order of floating point + registers correct. Add extra 32382 register offsets. + (REG_ADDRESS): define to point at correct part of thread + state. Use calls to "warning" instead of "message". + + * tm-nbsd.h, tm-ns32km3.h (REGISTER_NAMES, NUM_REGS, + REGISTER_BYTES, REGISTER_BYTE): redefine allowing for 32382 + fpu registers. + +Wed Apr 1 13:43:07 1998 Philippe De Muyter + + * NEWS: m68k-motorola-sysv host support added. + * coffread.c (coff_start_symtab): Accept the filename as an argument, + set it here. Callers updated. + +Wed Apr 1 23:13:23 1998 Andrew Cagney + + * config/mips/tm-mips.h (REGISTER_VIRTUAL_TYPE): Handle 32 bit SR, + FSR and FIR registers. + (REGISTER_VIRTUAL_SIZE): Compute using REGISTER_VIRTUAL_TYPE. + (REGISTER_RAW_SIZE): Define using REGISTER_VIRTUAL_SIZE. + + * config/mips/tm-mips64.h: Ditto. + +Tue Mar 31 21:30:39 1998 Nick Clifton + + * arm-tdep.c (gdb_print_insn_arm): Attach a fake Thumb symbol + vector to the info structure when disassembling thumb + instructions. + + * coffread.c (coff_symtab_read, read_one_sym, + process_coff_symbol): Support Thumb symbol types. + + * dbxread.c (process_one_symbol): Call SMASH_TEXT_ADDRESS (if it + is defined) for function symbols. + +Tue Mar 31 16:39:28 1998 Michael Snyder + + * tracepoint.c (get_tracepoint_by_number): change warning to note. + (delete_trace_command): suppress y/n query if no tracepoints, or + if not from_tty. (trace_pass_command): reject junk at end of args. + (read_actions): an action list consisting only of "end" is discarded. + (validate_actionline (for collect command)): an argument beginning + with a dollar_sign but not recognized as a special argument is + parsed like any other expression -- if it isn't a register name, + it's rejected. Also reject an empty argument to while-stepping. + (trace_find_command): reject a negative frame number argument. + (_initialize_tracepoint): set $traceframe initially to -1. + +Mon Mar 30 16:42:12 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * rdi-share/Makefile.am, rdi-share/aclocal.m4, + rdi-share/configure: New files. + * rdi-share/configure.in: Rewritten to be an autoconf input file. + * rdi-share/Makefile.in, rdi-share/configure: Generated by + automake/autoconf. + * rdi-share/dbg_hif.h, etherdrv.c, hostchan.c: Use autoconf tests + to check environment. + +Sun Mar 29 15:17:16 1998 Keith Seitz + + * tracepoint.c (trace_start_command): Set trace_running_p. + (trace_stop_command): Clear trace_running_p. + +Sat Mar 28 15:19:48 1998 Stan Shebs + + * NEWS: Update for 4.17 release. + +Fri Mar 27 10:15:50 1998 David Taylor + + * tracepoint.c (parse_and_eval_memrange): Fix memory leaks. + (encode_actions): Use the new gen_trace_for_expr function + instead of expr_to_address_and_size; collect registers when + using expressions. (clear_collection_list): Fix memory leak. + +1998-03-26 Jim Blandy + + * ax-gdb.h (gen_trace_for_expr): Add prototype. + +Thu Mar 26 17:24:23 1998 David Taylor + + * tracepoint.c (validate_actionline): Fix memory leak. + (encode_actions): Fix memory leak. + +Thu Mar 26 16:16:55 1998 David Taylor + + * tracepoint.c (trace_mention): New function. + (trace_command): Call it. + +1998-03-26 Jim Blandy + + * ax-general.c (ax_reqs): New function. + * ax.h (enum agent_flaws, struct agent_reqs): New types. + (agent_reqs): New extern prototype. Well, actually, this was + there before, due to a premature checkin. + (struct aop_map): Add new `data_size' member. + * ax-general.c (aop_map): Supply its value. + * ax-gdb.c (agent_command): Call ax_reqs, for testing. + + * ax-general.c (ax_print): If we encounter an invalid or + incomplete opcode, don't abort; just print an error message. + + * ax-gdb.c: Generate trace bytecodes, as appropriate. + (trace_kludge): New variable. + (gen_fetch, gen_bitfield_ref): Emit trace bytecodes, if asked + nicely. + (expr_to_agent): Ask for no trace bytecodes. + (gen_trace_for_expr): New function. + (agent_command): Call it, and display the result appropriately --- + no struct axs_value, so no type or kind information. + + * ax-gdb.c: Use TARGET_CHAR_BIT throughout, not HOST_CHAR_BIT. + +Thu Mar 26 22:29:28 1998 Elena Zannoni + + * tracepoint.c (trace_status_command): Recognize a boolean return + value from the stub to indicate whether trace experiment is + running. Export this value as a global state variable. + (trace_running_p) for use by the GUI. (from Michael Snyder) + (trace_pass_command) added call to modify_tracepoint_hook. + + * tracepoint.h export trace_running_p. + +Thu Mar 26 13:08:01 1998 David Taylor + + * tracepoint.c (validate_actionline): do not error out if + exp->elts[0].opcode is not on short line -- let + expr_to_address_and_size handle it. + +1998-03-26 Jim Blandy + + * tracepoint.c: Include "ax.h", not "agentexpr.h". + + * tracepoint.c (encode_actions): Call expr_to_address_and_size, + not simply expr_to_agent. + + * ax-general.c: Comment out code in progress, so everyone else can + at least compile. + + * gdbtypes.c: Doc fix. + + * ax.h, ax-gdb.h, ax-general.c, ax-gdb.c: New files. + * Makefile.in (REMOTE_OBJS): Add ax-general.o and ax-gdb.o. + (SFILES): Add ax-general.c, ax-gdb.c. + (ax_h): New variable. + (ax-general.o, ax-gdb.o): New rules. + + +Tue Mar 24 16:22:40 1998 Stu Grossman + + * Makefile.in: Derive SHELL from configure. + * config/d10v/d10v.mt config/m32r/m32r.mt + config/mn10200/mn10200.mt config/mn10300/mn10300.mt + config/d30v/d30v.mt: Remove -lm from SIM. This prevents + dependency checking of -lm (under NT native builds). (It is + automatically added by configure if it exists.) + * doc/configure mswin/configure nlm/configure + testsuite/gdb.base/configure testsuite/gdb.c++/configure + testsuite/gdb.chill/configure testsuite/gdb.disasm/configure + testsuite/gdb.stabs/configure testsuite/gdb.threads/configure: + Regenerate with autoconf 2.12.1 to fix shell issues for NT native + builds. + +Mon Mar 23 18:10:57 1998 Ulrich Drepper (drepper@cygnus.com) + + * solib.c (solib_create_inferior_hook): Rewrite previous + change to check the type of file via BFD. + +Mon Mar 23 13:52:28 1998 Ulrich Drepper (drepper@cygnus.com) + + * breakpoint.c (breakpoint_re_set_one): Treat bp_shlib_events + like bp_breakpoints. + * solib.c (solib_create_inferior_hook): Relocate section addresses + if the alleged start address doesn't agree with the PC. + +Sat Mar 21 19:34:49 1998 Elena Zannoni + + merged changes from Foundry (list follows by file/author): + + - Tom Tromey + * Makefile.in (gdbres.o): New target. + (WINDRES): New define. + * configure: Rebuilt. + * configure.in (WINDRES): Define. + (CONFIG_OBS): Include gdbres.o on Windows. + * gdbtool.ico: New file. + * gdb.rc: New file. + + * ser-unix.c + - Keith Seitz + (wait_for): Don't reset the timeout_remaining for CYGWIN32, + since we now effectively poll the serial port. + Don't reset the current_timeout, either, since this member is used + by hardwire_readchar to track the timeout and call the ui_loop_hook. + (hardwire_readchar): Poll the serial port for Cygwin32. We timeout + every second, update the UI, and loop around doing this until we + have hit the real timeout or we get data or an error. This will + allow the UI to stay active while gdb is "blocked" talking to the + target. + - Martin M. Hunt + (wait_for): Do reset current_timeout because it is only used to + keep track of what the current timeout for the scb is. + + * top.c + - Martin M. Hunt + (quit_confirm): Change exit message again + for GUI. + (pc_changed_hook): Add prototype. + - Tom Tromey + (quit_confirm): Added missing `else'. + (quit_confirm): Special-case message if init_ui_hook is + set. + + * symtab.c + - Martin M. Hunt + (find_pc_sect_line): If no symbol information + is found, return correct pc anyway. + (find_methods): Comment out an apparently + bogus error message because it messes up Foundry. + + * serial.c + - Martin M. Hunt + (_initialize_serial): Add a description of + "set remotelogbase". + + * findvar.c + - Martin M. Hunt + (write_register_gen): Add call to + pc_changed_hook if the PC is being changed. + + * defs.h + - Martin M. Hunt + (pc_changed_hook): Define. + + * command.c + - Martin M. Hunt + (do_setshow_command): If no arguments are supplied, + don't dump core, instead print out an error message. + + * breakpoint.c + - Martin M. Hunt + Make set_raw_breakpoint, set_breakpoint_count, + and breakpoint_count non-static so they are accessible from + elsewhere. + (enable_breakpoint): Enable breakpoint + with same disposition instead of changing all breakpoints + to donttouch. + + * annotate.h + - Keith Seitz + Add declarations for annotation hooks. + + * annotate.c + - Keith Seitz + Add hooks: annotate_starting_hook, annotate_stopped_hook, + annotate_signalled_hook, annotate_exited_hook. + (annotate_starting): If hook exists, call it instead. + (annotate_stopped): If hook exists, call it instead. + (annotate_exited): If hook exists, call it instead. + (annotate_signalled): If hook exists, call it instead. + +Fri Mar 20 14:45:36 1998 Michael Snyder + + * gdbserver/Makefile.in: add dependency on XM_CLIBS. + * gdbserver/low-sim.c (registers) force into alignment. + (create_inferior): Fix typo on new_argv; add abfd arg to + sim_open, sim_create_inferior. Add reg_size arg to + sim_fetch_register, sim_store_register. Make simulator + take a single-step to get into a known running state. + * gdbserver/gdbreplay.c: include fcntl.h for def'n of F_SETFL. + * gdbserver/server.c: Add remote_debug variable to control + debug output. + * gdbserver/server.h: Add prototypes for enable/disable_async_io. + * gdbserver/remote-utils.c: add verbose debugging output controlled + by "remote_debug" variable. Add call to "disable_async_io()" + to avoid being killed by async SIGIO signals. + * config/m32r/m32r.mt: define GDBSERVER_(LIBS and DEPFILES), + so that gdbserver can be built with the m32r simulator. + +Fri Mar 20 09:04:06 1998 Andrew Cagney + + * gdbtypes.h (builtin_type_{,u}int{8,16,32,64}): New gdb builtin + types. + + * gdbtypes.c (_initialize_gdbtypes): Initialize new types. + + * mips-tdep.c (do_gp_register_row): Pad register value when GP + register is smaller than MIPS_REGSIZE. + + * findvar.c (value_of_register): When raw and virtual register + values identical, check that sizes are consistent. + +Thu Mar 19 11:32:15 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * minsyms.c (compare_minimal_symbols): If addresses are identical, + then compare on names. Sorted list should have symbols with + identical addresses AND names adjacent, so dups can be discarded. + +Wed Mar 18 12:50:17 1998 Jeff Law (law@cygnus.com) + + * stabsread.c (define_symbol): Don't look for ',' as a LRS + indicator. + +Wed Mar 18 10:34:51 1998 Nick Clifton + + * rdi-share/etherdrv.c: Set sys_errlist[] as char * not const char *. + +Fri Mar 13 15:43:53 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/mips/xm-mips.h (CC_HAS_LONG_LONG): Undefine for Ultrix + when compiling with native cc, the compiler has broken long long + support. + +Fri Mar 13 15:37:02 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * config/m68k/xm-sun3os4.h: Remove malloc declarations, they + are handled via autoconf now. + * remote.c (remote_ops, extended_remote_ops): Replace static + forward declaration by moving the static definition to the top of + the file, for old K&R compilers. + * tracepoint.c (collect_symbol, trace_start_command): + Replace ANSI string concatenation with K&R compatible simple string. + +1998-03-11 Fred Fish + + * source.c (select_source_symtab): Don't reach error if we have + a current_source_symtab from reading in partial symbol table. + +Fri Mar 6 13:10:27 1998 Fred Fish + + * utils.c (quit): Call SERIAL_DRAIN_OUTPUT rather than + SERIAL_FLUSH_OUTPUT. + * serial.h (struct serial_ops): Add drain_output, pointer to + function that waits for output to drain. + (SERIAL_DRAIN_OUTPUT): Macro to wait for output to drain. + * ser-unix.c (hardwire_drain_output): New function and prototype. + + * ser-unix.c (hardwire_ops): Add entry for drain_output function. + * ser-tcp.c (tcp_ops): Ditto. + * ser-ocd.c (ocd_ops): Ditto. + * ser-mac.c (mac_ops): Ditto. + * ser-go32.c (dos_ops): Ditto. + * ser-e7kpc.c (e7000pc_ops): Ditto. + +Thu Mar 5 16:07:41 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * sparcl-tdep.c: fix #endif comments + +Thu Mar 5 15:10:35 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * Makefile.in (BISON): Configure substitutes in @YACC@, not @BISON@. + +Thu Mar 5 14:42:41 1998 Keith Seitz + + * ocd.c (ocd_open): If we fail ocd_start_remote, make sure we + error () so that we abort out of bdm_ppc_open. + +Wed Mar 4 16:53:52 1998 Martin M. Hunt + + * serial.c (_initialize_serial): Add a description of + "set remotelogbase". + + * command.c (do_setshow_command): If no arguments are supplied, + don't dump core, instead print out an error message. + +Wed Mar 4 01:39:08 1998 Ron Unrau + + * elfread.c (elf_symtab_read): merge SYMBOL_IS_SPECIAL into + MAKE_MSYMBOL_SPECIAL + * config/mips/tm-mips.h: ditto + +Tue Mar 3 17:19:08 1998 John Metzler + + * dwarfread.c (read_tag_pointer_type): Pointer sizes now come from + TARGET_PTR_BIT rather from sizeof(char *) on host. + +Tue Mar 3 14:37:02 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * alpha-nat.c (fetch_osf_core_registers): Renamed from + fetch_aout_core_registers. + (alpha_osf_core_fns): Renamed from alpha_aout_core_fns, change + flavour to bfd_target_unknown_flavour for OSF core files. + +Mon Mar 2 17:44:13 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * breakpoint.c (_initialize_breakpoint): Make "en" an alias + for "enable" (so that it doesn't conflict with "end"). + +Mon Mar 2 17:04:25 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * Makefile (VERSION): Bump to 4.17.1. + +Mon Mar 2 16:59:15 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * rdi-share/etherdrv.c (sys_errlist): Add correct decl for Linux. + +Mon Mar 2 16:51:44 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * Makefile.in (YYFILES): Remove in maintainer-clean, not distclean. + +Mon Mar 2 16:47:11 1998 Philippe De Muyter + + * Makefile.in (distclean): Add `rm $(YYFILES)'. + +Mon Mar 2 16:45:48 1998 Philippe De Muyter + + * coffread.c (coff_read_enum_type): Set TYPE_FLAG_UNSIGNED if enum + is unsigned. + +Sun Mar 2 15:16:13 1998 Richard Henderson + + * configure.host, configure.tgt: Add sparc-linux. + * sparc-nat.c: Include not for Linux. + * config/sparc/*linux*: New files. + +Mon Mar 2 12:12:41 1998 Anthony Thompson (athompso@cambridge.arm.com) + + * arm-tdep.c (gdb_print_insn_arm): Call print_insn_big_arm + if we're big endian; else call print_insn_little_arm. + +Mon Feb 24 11:24:57 1998 Richard Henderson + + * Makefile.in (BISON): Don't even pretend to use yacc. + (c-exp.tab.o): Use bison -o to use a unique intermediate file. + (f-exp.tab.o, m2-exp.tab.o): Likewise. + (jv-exp.tab.o): Likewise. + +Tue Feb 24 03:32:59 1998 Andrew Cagney + + * remote-sim.c (gdbsim_fetch_register): Don't abort when the + register size is wrong. + +Thu Feb 19 16:49:48 1998 John Metzler + + * target.c (debug_to_fetch_registers,debug_to_store_registers, + debug-to_insert_breakpoint,debug_to_remove_breakpoint): tracing + 64 bit targets crashed long long printfs. + +Tue Feb 17 16:36:22 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * symfile.c (read_target_int_array): rename read_target_long_array + and force the sizeof an ovly_table element to sizeof(long), + instead of sizeof(int). + +Tue Feb 17 18:05:05 1998 Frank Ch. Eigler + + * remote-mips.c (mips_request): Use unsigned long during parsing + returned value from monitor, to prevent accidental sign extension. + +Tue Feb 17 14:28:33 1998 Peter Schauer + + * acconfig.h: FORCE_MMCHECK changed to MMCHECK_FORCE. + * configure.in: Ditto. + * configure: Regenerated. + +Tue Feb 17 14:07:34 1998 Peter Schauer + + * gdbtypes.c (check_typedef): Do not try to resolve the length of + a type which has TYPE_FLAG_TARGET_STUB set, if the target type has + set TYPE_FLAG_TARGET_STUB as well. + +Tue Feb 17 14:32:18 1998 Andrew Cagney + + * remote-sim.c (gdbsim_fetch_register, gdbsim_store_register): + Pass register size to sim_{fetch,store}_register. Check nr of + register bytes transfered is correct. + +Mon Feb 16 14:05:54 1998 Andrew Cagney + + * remote-d10v.c (remote_d10v_open): Call push_remote_target + instead of open_remote_target. + + * remote.c (remote_xfer_memory): Use REMOTE_TRANSLATE_XFER_ADDRESS + to translate addr/size when defined. + (open_remote_target): Delete. + + * target.h (open_remote_target): Delete. + + * config/d10v/tm-d10v.h (REMOTE_TRANSLATE_XFER_ADDRESS): Define. + +Mon Feb 16 14:05:54 1998 Andrew Cagney + + * d10v-tdep.c (d10v_extract_return_value): Wierd. GCC wants to + return odd sized register quantities with only half of the first + register used! + + * config/d10v/tm-d10v.h (USE_STRUCT_CONVENTION): Use stack when + size > 8. + +Mon Feb 16 14:05:54 1998 Andrew Cagney + + * config/d10v/tm-d10v.h (USE_STRUCT_CONVENTION): Define. True when + sizeof type > 1. + +Sun Feb 15 16:10:50 1998 Ron Unrau + + * parse.c (write_dollar_variable): call new function + target_map_name_to_register to allow targets to define their own + register name aliases. + * infcmd.c (registers_info): use target_map_name_to_register so that + "print $reg" and "info reg $reg" use the same register name aliases. + +Fri Feb 13 16:40:30 1998 Stan Shebs + + * config/i386/i386mk.mt (OBJFORMATS): Delete, no longer used. + * config/i386/xm-i386mk.h: Fix an include. + * config/pyr/tm-pyr.h (PC_INNER_THAN): Remove, never used. + +Thu Feb 12 16:12:07 1998 Frank Ch. Eigler + + * remote-mips.c (mips_enter_debug): Sleep before sending CR to + monitor. + (mips_exit_debug): Accept any whitespace / verbiage before monitor + prompt reappears. + +Thu Feb 12 18:25:42 1998 Andrew Cagney + + * d10v-tdep.c (show_regs): Avoid use of %llx when printing 8 byte + accumulators. + +Thu Feb 12 17:10:22 1998 Andrew Cagney + + * valops.c (value_at): For d10v, make read pointers with + read_target_unsigned_integer, keep addresses unsigned. + (value_fetch_lazy): Ditto. + +Thu Feb 12 12:14:02 1998 Andrew Cagney + + * remote-d10v.c: New file. Layer the d10v GDB->remote memory map + on top of the remote serial memory transfer functions. + + * config/d10v/d10v.mt (TDEPFILES): Add remote-d10v.o + + * Makefile.in (remote-d10v.o): Add dependencies. + + * remote.c (remote_open_1): Add arg extended_p, engage extended + protocol when extended_p. + (remote_open, extended_remote_open): Pass !extended_p / + extended_p to remote_open_1. + + * remote.c (open_remote_target), target.h: New function. + +Wed Feb 11 08:41:15 1998 Andrew Cagney + + * config/i386/fbsd.mh (XDEPFILES): Add ser-tcp.o. + +Tue Feb 10 17:50:37 1998 Keith Seitz + + * tracepoint.c (tracepoint_operation): Call the modify_tracepoint_hook + if it exists. + Remove static declaration of free_actions. + + * tracepoint.h: Add declaration of free_actions. + +Tue Feb 10 12:17:13 1998 Fred Fish + + * symtab.c (decode_line_1): Revert change that mistakenly + removed assignment of sals[0].pc field. + +Mon Feb 10 12:37:47 1998 Philippe De Muyter + + * m68k/tm-delta68.h (EXTRACT_RETURN_VALUE): Type argument for + `REGISTER_CONVERT_TO_VIRTUAL is `TYPE', not + `REGISTER_VIRTUAL_TYPE (FP0_REGNUM)'; + (STORE_RETURN_VALUE): Ditto, and offset for `write_register_bytes' + is `REGISTER_BYTE (FP0_REGNUM)', not `FP0_REGNUM'. + (FRAME_NUM_ARGS): New macro. + * m68k/tm-news.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Ditto. + * delta68-nat.c (clear_insn_cache): New function, forgotten in previous + patch. + +Mon Feb 9 11:10:06 1998 Andrew Cagney + + * d10v-tdep.c: Replace references to IMEM_ADDR and DMEM_ADDR with + D10V_MAKE_[DI]ADDR and D10V_CONVERT_[ID]ADDR_TO_RAW macros. + + * config/d10v/tm-d10v.h (IMEM_START): Move to 0x01...... + (DMEM_START): Move to 0x00...... + (STACK_START): Move to 0x00..7ffe. + (D10V_MAKE_IADDR, D10V_MAKE_DADDR): Translate unconditionally. + + * d10v-tdep.c (d10v_xlate_addr): Delete function. + +Mon Feb 9 15:10:21 1998 Fred Fish + + * symtab.c (fixup_psymbol_section): Move forward declaration to + top of file with other such decls. Make it a static function. + * symtab.h: Minor formatting tweaks. + +Mon Feb 9 13:14:12 1998 Stan Shebs + + * config/a29k-udi.mt, config/i960/vxworks960.mt (REMOTE_OBS): + Remove redefinition. + * config/i960/tm-i960.h (BREAKPOINT): Define. + +Mon Feb 9 15:35:38 1998 Ian Lance Taylor + + * Makefile.in (init.c): Ignore errors when making init.c. Seems + necessary to work around bug in Solaris make. + +Sun Feb 6 02:44:28 1998 Philippe De Muyter + + * m68k/tm-delta68.h (CPLUS_MARKER): Macro deleted. + (EXTRACT_STRUCT_VALUE_ADDRESS): Macro defined. + (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Macros modified + because floating-point values return via %fp0. + (CLEAR_INSN_CACHE): New macro. + * m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL): Macro fixed + to use DOUBLEST. + (REGISTER_CONVERT_TO_RAW): Ditto. + * infptrace.c (child_xfer_memory): If CLEAR_INSN_CACHE is defined, + call it after having written in child process's memory. + * inflow.c (PROCESS_GROUP_TYPE): Macro defined if HAVE_TERMIO. + (gdb_has_a_terminal, terminal_ours_1): Functions fixed for HAVE_TERMIO. + +Fri Feb 6 16:17:30 1998 Jeffrey A Law (law@cygnus.com) + + * config/mips/tm-mips64.h (TARGET_LONG_BIT): Allow final target to + override. + (TARGET_LONG_LONG_BIT): Likewise. + (TARGET_PTR_BIT): Likewise. + +Fri Feb 6 17:42:22 1998 Andrew Cagney + + * config/d10v/tm-d10v.h (D10V_CONVERT_IADDR_TO_RAW, + D10V_CONVERT_DADDR_TO_RAW): Define. + + * d10v-tdep.c (d10v_push_arguments): Re-write. Pass arguments in + registers, regardless of their size, when they fit. + +Thu Feb 5 13:16:36 1998 Andrew Cagney + + * d10v-tdep.c (d10v_extract_return_value): For function pointers + translate address to IMAP area. + + * config/d10v/tm-d10v.h (EXTRA_FRAME_INFO): Delete dummy from + struct. + (POP_FRAME): Point at generic_pop_current_frame. + + * d10v-tdep.c (d10v_pop_frame): Delete code handling dummy frames, + handled earlier. + (d10v_push_return_address): New function. + (d10v_pop_dummy_frame): Delete. + (d10v_fix_call_dummy): Delete. + (d10v_call_dummy_address): Delete. + + * d10v-tdep.c (d10v_init_extra_frame_info): Clear dummy and + frameless. + + * d10v-tdep.c (d10v_push_arguments): Keep stack word aligned. + + * config/d10v/tm-d10v.h (EXTRACT_STRUCT_VALUE_ADDRESS): Extract + address of structure from first ARG1_REGNUM. + + * d10v-tdep.c (d10v_push_arguments): Force 4 byte args into + even-odd register pair. Store 1 and 2 byte args in registers. + + * valops.c (value_fetch_lazy): Ensure that a D10V function pointer + is fetched in the correct byte order. + (value_at): Ditto. Also ensure data pointers are mapped to data + segment. + + * config/d10v/tm-d10v.h (D10V_DADDR_P, D10V_IADDR_P): + + * d10v-tdep.c: Replace 2 with REGISTER_RAW_SIZE. + (d10v_pop_frame): Replace R13 with LR_REGNUM. + (d10v_push_arguments): Replace R2 with ARG1_REGNUM. + (d10v_push_arguments): Replace 6 with ARGN_REGNUM. + (d10v_extract_return_value): Access return value with RET1_REGNUM. + + * config/d10v/tm-d10v.h (ARG1_REGNUM, ARGN_REGNUM, RET1_REGNUM): + Define. + (STORE_RETURN_VALUE): Specify return register using RET1_REGNUM. + (STORE_STRUCT_RETURN): Specify ARG1_REGNUM as the struct ptr + location. + +Thu Feb 5 13:16:36 1998 Andrew Cagney + + * blockframe.c (generic_pop_dummy_frame): Flush the frame, no + longer valid. + + * blockframe.c (generic_pop_current_frame), frames.h: New + function. + +Thu Feb 5 17:18:16 1998 Andrew Cagney + + * remote-sim.c (gdbsim_create_inferior): clear_proceed_status + before /re/starting the simulator. + +Thu Feb 5 15:55:31 1998 C. M. Heard (heard@vvnet.com) + + * top.c (do_nothing): Remove signal handler after signal is caught. + +Thu Feb 5 11:57:06 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c (tracepoint_operation): call free_actions instead + of free. (free_actions): eliminate some memory leaks for actions. + (validate_actionline): pass string arg by reference, so we can + change the pointer. Change all memrange collection arguments to + canonical form (literal address and size), to enforce early + evaluation. Accept UNOP_MEMVAL (assembly variables) for + trace collection. (parse_and_eval_memrange): accept expressions + for the address and size fields of a memrange (and evaluate + them immediately). (several places): use -1 instead of zero + to distinguish an absolute memrange from a register-relative one. + (encode_actions): add handling for UNOP_MEMVAL (assembly variable). + +Wed Feb 4 17:40:21 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * Makefile.in (SFILES): add tracepoint.c. + (LINTFILES): add @CONFIG_SRCS@. + (SOURCES): Ditto. + * configure.in (CONFIG_SRCS): Mirror use of CONFIG_OBS. + * configure: Regenerated. + +Tue Feb 3 16:12:32 1998 Gordon W. Ross (gwr@mc.com) + + * infptrace.c (child_resume): Don't try to step if + NO_SINGLE_STEP is defined. + +Mon Feb 2 19:06:13 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * Makefile.in (VERSION): Bump to 4.16.2. + +Mon Feb 2 17:18:25 1998 Richard Henderson + + * alpha-nat.c (fetch_aout_core_registers): Rename from + fetch_core_registers. + (fetch_elf_core_registers): New function. + (supply_gregset): Use ALPHA_REGSET_BASE. + (supply_fpregset): Likewise. + (fill_fpregset): Likewise. + (alpha_aout_core_fns): Rename from alpha_core_fns. + (alpha_elf_core_fns): New. + * config/alpha/alpha-linux.mh (NATDEPFILES): solib.o not osfsolib.o. + Disable MMALLOC. + * config/alpha/nm-linux.h (SVR4_SHARED_LIBS): Define if ELF. + (TARGET_ELF64): Likewise. + (ALPHA_REGSET_BASE): New. + * config/alpha/nm-osf.h (ALPHA_REGSET_BASE): New. + * config/alpha/tm-alphalinux.h: Include tm-sysv4.h. + + * solib.c (elf_locate_base): Add TARGET_ELF64 support. + (info_sharedlibary_command): Likewise. + + * configure.host: Match alpha*. + * configure.tgt: Likewise. + +Fri Jan 30 15:11:38 1998 David Taylor + + Changes by + * infrun.c (IN_SOLIB_DYNSYM_RESOLVE_CODE): new macro for detecting + whether we are in the dynamic symbol resolution code + (wait_for_inferior): invoke it. + * solib.c (in_svr4_dynsym_resolve_code): new function + (enable_break): record start and end of the dynamic linker + text and plt sections for use in in_svr4_dynsym_resolve_code. + * solib.h (IN_SOLIB_DYNSYM_RESOLVE_CODE): add svr4 definition; + (in_svr4_dynsym_resolve_code): declare it. + * config/nm-gnu.h (solib.h): move inclusion to after definition + of SVR4_SHARED_LIBS. + * config/nm-sysv4.h (solib.h): ditto. + * config/i386/nm-i386sco5.h (solib.h): ditto. + * config/i386/nm-linux.h (solib.h): ditto. + * config/mips/nm-irix5.h (IN_SOLIB_DYNSYM_RESOLVE_CODE): undefine. + +Thu Jan 29 19:39:31 1998 Stan Shebs + + * coffread.c (coff_symtab_read) [SEM]: Remove code, macro can + never be defined. + * dbxread.c (process_one_symbol) [BLOCK_ADDRESS_ABSOLUTE]: + Remove, no longer needed. + * hppa-tdep.c (N_SET_MAGIC): Remove, no longer used. + * config/pa/xm-hppab.h (SEEK_SET, SEEK_CUR, SEEK_END): Ditto. + * config/mips/tm-mipsm3.h (NUMERIC_REG_NAMES): Ditto. + * config/mips/mipsm3.mt (TDEPFILES): Remove mipsread.o. + +Wed Jan 28 14:46:52 1998 Stan Shebs + + Suggested by Chris Walter : + * dwarfread.c (set_cu_language): Recognize Fortran. + * dwarf2read.c (set_cu_language): Ditto. + (read_array_type): Fix language test. + +Wed Jan 28 12:51:08 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * blockframe.c (generic_frame_chain_valid): A frame pointer may + be valid if it is equal to the frame pointer of its caller (ie. + not necessarily strictly INNER_THAN). Allows frameless functions. + +Wed Jan 28 11:23:25 1998 Mark Alexander + + * monitor.c (monitor_vsprintf): New function to handle + printing of large addresses using %A format specifier. + (monitor_printf_noecho, monitor_printf): Use monitor_vsprintf + instead of vsprintf. + * dve3900-rom.c (_initialize_r3900_rom): Use %A instead of %Lx + to print addresses. + +Tue Jan 27 16:14:23 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * configure.in (CONFIG_LDFLAGS): Only add -export-dynamic + when using GNU ld. + +Mon Jan 26 19:07:46 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * config/alpha/tm-alphalinux.h (alpha_linux_sigtramp_offset): + Add closing parenthesis. From HJ Lu. + +Mon Jan 26 17:54:45 1998 Mark Alexander + + * dve3900-rom.c: Improve performance by using memory commands + that print less fluff. Minor cosmetic changes. + Eliminate compiler warnings. + +Sat Jan 24 23:44:43 1998 Martin M. Hunt + + * breakpoint.c (enable_breakpoint): Preserve breakpoint + disposition when enabling a breakpoint. + + * symtab.c (find_pc_sect_line): If no symbol information + is found, return correct pc anyway. + +Fri Jan 23 17:26:22 1998 Stan Shebs + + * configure.host (i[3456]86-*-osf1mk*, mips-*-mach3*, + ns32k-*-mach3*): Fix file names. + (i[3456]86-*-os9k, m88*-*-mach3*, w65-*-*): Remove config + recognition, no source files for these. + * configure.tgt (powerpc-*-aix4*): Remove config, now identical + to powerpc-*-aix*. + * config/powerpc/{aix4.mh,aix4.mt,tm-ppc-aix4.h}: Remove files, + no longer needed. + +Fri Jan 23 16:49:41 1998 Mark Alexander + + * monitor.c (monitor_write, monitor_readchar): New functions. + * monitor.h (monitor_write, monitor_readchar): Declare. + * dve3900-rom.c: Add support for fast loading on ethernet connections. + +Fri Jan 23 07:47:06 1998 Fred Fish + + * config/d10v/tm-d10v.h (CALL_DUMMY): Define as "{ 0 }". + (TARGET_READ_FP): Define to d10v_read_fp rather than d10v_read_sp. + (TARGET_WRITE_FP): Define to d10v_write_fp rather than d10v_write_sp. + (d10v_write_fp, d10v_read_fp): Add prototypes. + * symtab.c (decode_line_1): Remove assignment of sals[0].pc field. + * symfile.c (simple_overlay_update, simple_overlay_update_1): + Ignore the size of overlay sections. This check is redundant anyway. + * printcmd.c (print_frame_args): Ditto. + * valops.c (value_fetch_lazy): Ditto. + * values.c (unpack_long): Ditto. + * d10v-tdep.c (d10v_frame_chain, d10v_frame_find_saved_regs, + d10v_init_extra_frame_info): Fix some minor bugs so the finish command + works properly. + (show_regs): Change num1 and num2 types from "long long" to "LONGEST". + (d10v_read_fp, d10v_write_fp): New functions. + (d10v_push_arguments): Remove unneeded assigns to "val" and "contents". + (d10v_push_arguments): Fix for pointers and structs. + (d10v_extract_return_value): Fix for pointers and chars. + +Tue Jan 20 18:53:18 1998 Stan Shebs + + * configure.tgt (i386-*-mach*, m88*-*-mach3*): Remove config + recognition, no source files for these (note that the i386 Mach + config is for pre-Mach 3). + (mips*-*-mach3*, ns32k-*-mach3*): Fix file names. + * config/mips/mipsel64.mt: Remove, never referenced. + +Mon Jan 19 14:01:28 1998 Stan Shebs + + * top.c (print_gdb_version): Restore to original message. + +Mon Jan 19 13:34:40 1998 Ian Lance Taylor + + From cgf@bbc.com (Chris Faylor): + * win32-nat.c (child_mourn_inferior): Call ContinueDebugEvent to + let the child exit. + (child_kill_inferior): Respond to all debug events as the child is + terminating. + + * Makefile.in (all): Change gdb dependency to gdb$(EXEEXT). + (uninstall): Add $(EXEEXT) to file name to remove. + (gdb$(EXEEXT)): Rename target from plain gdb. + (gdb1$(EXEEXT)): Rename target from plain gdb1. + (clean, mostlyclean): Add $(EXEEXT) to binary names to remove. + +1998-01-16 Felix Lee + + * top.c (print_gdb_version): delete stutter. + +Thu Jan 15 12:29:13 1998 Nick Clifton + + * remote-rdi.c (arm_rdi_open): Patch from Tony.Thompson@arm.com + to prevent spurous error messages on non-ICE targets. + +Wed Jan 14 19:27:02 1998 Stan Shebs + + * config/mips/{r3900.mt,r3900l.mt,tm-r3900.h,tm-r3900l.h}: + Remove, no longer used. + +Wed Jan 14 18:11:26 1998 Michael Meissner + + Patch from Jim Wilson. + * d30v-tdep.c (d30v_frame_find_saved_regs_offsets): Properly + declare void function before use. + + * config/d30v/tm-d30v.h (CALL_DUMMY): Initialize as { 0 }, not {}. + +Tue Jan 13 16:38:48 1998 Fred Fish + + * configure.in (--with-mmalloc): Add new configure arg to use the + mmalloc package. Default is to not use it. + (START_INFERIOR_TRAPS_EXPECTED): Define to the integer 2, not + the string "2". + * acconfig.h (USE_MMALLOC, FORCE_MMCHECK): Add #undef. + * configure: Regenerated. + * config.in: Regenerated. + * Makefile.in (MMALLOC_DIR, MMALLOC_SRC): Remove. + (MMALLOC): Set using configure. + (MMALLOC_CFLAGS): Set using configure. + + * config/i386/tm-linux.h (sys_quotactl): Define to 1 rather + than just defining it. + * mpw-make.sed: Undefine USE_MMALLOC rather than defining NO_MMALLOC. + * utils.c (NO_MMALLOC): Use USE_MMALLOC instead. + * objfiles.c: ditto. + * defs.h: ditto. + + * config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Remove. + * config/m68k/sun3os4.mh (MMALLOC_CFLAGS): Remove. + * config/i386/cygwin32.mh (MMALLOC_CFLAGS): Remove. + * config/alpha/alpha-osf3.mh (MMALLOC_CFLAGS): Remove. + * config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Remove. + * gdbserver/Makefile.in (MMALLOC_*): Remove. + * config/rs6000/rs6000.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/rs6000/aix4.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/powerpc/aix4.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/powerpc/aix.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/ns32k/ns32km3.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/mips/mipsm3.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/mips/decstation.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/m88k/cxux.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/i386/xm-windows.h (NO_MMALLOC, NO_MMCHECK): Remove. + * config/i386/i386mk.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/i386/i386m3.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/i386/i386gnu.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/alpha/alpha-osf1.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + * config/alpha/alpha-linux.mh (MMALLOC, MMALLOC_CFLAGS): Remove. + +Mon Jan 12 11:46:51 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * config/m68k/tm-m68k.h (REGISTER_VIRTUAL_TYPE): make A0 thru A7 + default to void pointer type (so that their default radix is hex). + + * symtab.c: move rbreak_command from no_class to class_breakpoint + so it will be listed under "help breakpoints". + +Sat Jan 10 14:58:04 1998 Stan Shebs + + * rdi-share/hostchan.c: Remove gettimeofday declaration. + +Thu Jan 8 11:03:59 1998 Nick Clifton + + * remote-rdp.c: Applied patches submitted by Tony.Thompson@arm.com + to implement the Angel remote debugging interface. + + * Makefile.in: Add build rules for remote-rdi.c and + rdi-share/libangsd.a. + + * configure.tgt: Updated from source on branch. + * config/arm/tm-arm.h: Updated from source on branch. + * arm-tdep.c: Updated from source on branch. + + * rdi-share: New directory, RDI library contributed by ARM. + +Mon Jan 5 20:21:59 1998 Mark Alexander + + * monitor.h (MO_PRINT_PROGRAM_OUTPUT): Define. + * monitor.c (monitor_wait): Echo program output. + * dve3900-rom.c (_initialize_r3900_rom): Remove MO_HANDLE_NL flag, + add MO_PRINT_PROGRAM_OUTPUT flag. + +Mon Jan 5 18:21:11 1998 David Taylor + + * top.h (HAVE_SIGSETJMP): define SIGJMP_BUF, SIGSETJMP, and + SIGLONGJMP appropriately based on whether HAVE_SIGSETJMP is + defined. + * top.c (return_to_top_level, catch_errors): use the new macros + * main.c (SET_TOP_LEVEL): ditto. + * config/xm-sysv4.h (HAVE_SIGSETJMP): Define. + +Fri Jan 2 18:48:58 1998 Mark Alexander + + * configure.in: Double up brackets in shell case pattern. + +Fri Jan 2 17:06:05 1998 Michael Snyder (msnyder@cleaver.cygnus.com) + + * tracepoint.c (finish_tfind_command): improved algorithm for + deciding when we've "stepped" into a new stack frame. + (map_args_over_tracepoints): loop over tracepoint list "safely", + since list elements may be deleted during loop. + (read_actions): add actions to history list. + +For older changes see ChangeLog-97 + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/gdb/Makefile.in b/gdb/Makefile.in new file mode 100644 index 0000000000..2c6dfb5cde --- /dev/null +++ b/gdb/Makefile.in @@ -0,0 +1,1619 @@ +# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998 +# Free Software Foundation, Inc. + +# This file is part of GDB. + +# 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. + +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +host_alias = @host_alias@ +target_alias = @target_alias@ +program_transform_name = @program_transform_name@ +bindir = @bindir@ +libdir = @libdir@ +tooldir = $(libdir)/$(target_alias) + +datadir = @datadir@ +mandir = @mandir@ +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +infodir = @infodir@ +includedir = @includedir@ + +# This can be referenced by `INTLDEPS' as computed by CY_GNU_GETTEXT. +top_builddir = . + +SHELL = @SHELL@ +EXEEXT = @EXEEXT@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + +AR = @AR@ +AR_FLAGS = qv +RANLIB = @RANLIB@ +DLLTOOL = @DLLTOOL@ +WINDRES = @WINDRES@ + +# If the user configured GDB to include the TUI, the name of the tui +# library goes here. +TUI_LIBRARY = @TUI_LIBRARY@ + +# If the user configured GDB to include the TUI, the all-tui +# target goes here. +BUILD_TUI = @BUILD_TUI@ + +# Flags that describe where you can find the termcap library. +# This can be overridden in the host Makefile fragment file. +TERMCAP = @TERM_LIB@ + +# If you are compiling with GCC, make sure that either 1) You have the +# fixed include files where GCC can reach them, or 2) You use the +# -traditional flag. Otherwise the ioctl calls in inflow.c +# will be incorrectly compiled. The "fixincludes" script in the gcc +# distribution will fix your include files up. +CC=@CC@ + +# Directory containing source files. +srcdir = @srcdir@ +VPATH = @srcdir@ + +YACC=@YACC@ + +YLWRAP = $(srcdir)/../ylwrap + +# where to find makeinfo, preferably one designed for texinfo-2 +MAKEINFO=makeinfo + +# Set this up with gcc if you have gnu ld and the loader will print out +# line numbers for undefined references. +#CC_LD=gcc -static +CC_LD=$(CC) + +# Where is our "include" directory? Typically $(srcdir)/../include. +# This is essentially the header file directory for the library +# routines in libiberty. +INCLUDE_DIR = $(srcdir)/../include +INCLUDE_CFLAGS = -I$(INCLUDE_DIR) + +# Where is the "-liberty" library? Typically in ../libiberty. +LIBIBERTY = ../libiberty/libiberty.a + +# Configured by the --with-mmalloc option to configure. +MMALLOC = @MMALLOC@ +MMALLOC_CFLAGS = @MMALLOC_CFLAGS@ + +# Where is the BFD library? Typically in ../bfd. +BFD_DIR = ../bfd +BFD = $(BFD_DIR)/libbfd.a +BFD_SRC = $(srcdir)/$(BFD_DIR) +BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC) + +# Where is the READLINE library? Typically in ../readline. +READLINE_DIR = ../readline +READLINE = $(READLINE_DIR)/libreadline.a +READLINE_SRC = $(srcdir)/$(READLINE_DIR) +READLINE_CFLAGS = -I$(READLINE_SRC)/.. + +WARN_CFLAGS = @WARN_CFLAGS@ + +# Where is the INTL library? Typically in ../intl. +INTL_DIR = ../intl +INTL = @INTLLIBS@ +INTL_DEPS = @INTLDEPS@ +INTL_SRC = $(srcdir)/$(INTL_DIR) +INTL_CFLAGS = -I$(INTL_DIR) -I$(INTL_SRC) + +# Where is the TUI library? Typically in tui/. +TUI_DIR=tui +TUI_SRC = $(srcdir)/$(TUI_DIR) +TUI_CFLAGS= -I$(TUI_SRC) + +# Opcodes currently live in one of two places. Either they are in the +# opcode library, typically ../opcodes, or they are in a header file +# in INCLUDE_DIR. +# Where is the "-lopcodes" library, with (some of) the opcode tables and +# disassemblers? +OPCODES = ../opcodes/libopcodes.a +# Where are the other opcode tables which only have header file +# versions? +OP_INCLUDE = $(INCLUDE_DIR)/opcode +OPCODES_CFLAGS = -I$(OP_INCLUDE) + +# The simulator is usually nonexistent; targets that include one +# should set this to list all the .o or .a files to be linked in. +SIM = + + +ENABLE_CFLAGS= @ENABLE_CFLAGS@ + +# -I. for config files. +# -I$(srcdir) for gdb internal headers and possibly for gnu-regex.h also. +# -I$(srcdir)/config for more generic config files. + +# It is also possible that you will need to add -I/usr/include/sys if +# your system doesn't have fcntl.h in /usr/include (which is where it +# should be according to Posix). +DEFS = @DEFS@ +GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config $(DEFS) + +# M{H,T}_CFLAGS, if defined, have host- and target-dependent CFLAGS +# from the config directory. +GLOBAL_CFLAGS = $(MT_CFLAGS) $(MH_CFLAGS) +#PROFILE_CFLAGS = -pg + +# CFLAGS is specifically reserved for setting from the command line +# when running make. I.E. "make CFLAGS=-Wmissing-prototypes". +CFLAGS = -g + +# Need to pass this to testsuite for "make check". Probably should be +# consistent with top-level Makefile.in and gdb/testsuite/Makefile.in +# so "make check" has the same result no matter where it is run. +CXXFLAGS = -g -O + +# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. +INTERNAL_CFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \ + $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \ + $(BFD_CFLAGS) $(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) \ + $(INTL_CFLAGS) $(TUI_CFLAGS) $(ENABLE_CFLAGS) $(WARN_CFLAGS) + +# LDFLAGS is specifically reserved for setting from the command line +# when running make. + +# Profiling options need to go here to work. +# I think it's perfectly reasonable for a user to set -pg in CFLAGS +# and have it work; that's why CFLAGS is here. +INTERNAL_LDFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) $(LDFLAGS) @CONFIG_LDFLAGS@ @HLDFLAGS@ +HLDENV = @HLDENV@ + +# We are using our own version of REGEX now to be consistent across +# machines. +REGEX = gnu-regex.o +REGEX1 = gnu-regex.o + +# If your system is missing alloca(), or, more likely, it's there but +# it doesn't work, then refer to libiberty. + +# Libraries and corresponding dependencies for compiling gdb. +# {X,T}M_CLIBS, defined in *config files, have host- and target-dependent libs. +# TERMCAP comes after readline, since readline depends on it. +# MMALLOC comes after anything else that might want an allocation function. +# LIBIBERTY appears twice on purpose. +# If you have the Cygnus libraries installed, +# you can use 'CLIBS=$(INSTALLED_LIBS)' 'CDEPS=' +INSTALLED_LIBS=-lbfd -lreadline -lopcodes -liberty \ + $(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \ + -lmmalloc -lintl -liberty +CLIBS = $(SIM) $(BFD) $(READLINE) $(OPCODES) $(INTL) $(LIBIBERTY) \ + $(TERMCAP) $(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \ + $(MMALLOC) $(LIBIBERTY) $(WIN32LIBS) +CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \ + $(OPCODES) $(MMALLOC) $(INTL_DEPS) $(LIBIBERTY) @CONFIG_DEPS@ + +ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) +ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) + +VERSION=4.18 +DIST=gdb + +LINT=/usr/5bin/lint +LINTFLAGS= $(BFD_CFLAGS) + +RUNTEST = `if [ -f $${rootsrc}/../dejagnu/runtest ] ; then \ + echo $${rootsrc}/../dejagnu/runtest ; else echo runtest; \ + fi` + +RUNTESTFLAGS= + +# This is ser-unix.o for any system which supports a v7/BSD/SYSV/POSIX +# interface to the serial port. Hopefully if get ported to OS/2, VMS, +# etc., then there will be (as part of the C library or perhaps as +# part of libiberty) a POSIX interface. But at least for now the +# host-dependent makefile fragment might need to use something else +# besides ser-unix.o +SER_HARDWIRE = ser-unix.o + +# The `remote' debugging target is supported for most architectures, +# but not all (e.g. 960) +REMOTE_OBS = remote.o dcache.o remote-utils.o tracepoint.o ax-general.o ax-gdb.o + +# This is remote-sim.o if a simulator is to be linked in. +SIM_OBS = + +ANNOTATE_OBS = annotate.o + +# Host and target-dependent makefile fragments come in here. +@host_makefile_frag@ +@target_makefile_frag@ +# End of host and target-dependent makefile fragments + +FLAGS_TO_PASS = \ + "prefix=$(prefix)" \ + "exec_prefix=$(exec_prefix)" \ + "against=$(against)" \ + "AR=$(AR)" \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC=$(CC)" \ + "CFLAGS=$(CFLAGS)" \ + "CHILLFLAGS=$(CHILLFLAGS)" \ + "CHILL=$(CHILL)" \ + "CHILL_LIB=$(CHILL_LIB)" \ + "CXX=$(CXX)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "DLLTOOL=$(DLLTOOL)" \ + "RANLIB=$(RANLIB)" \ + "MAKEINFO=$(MAKEINFO)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" + +# Flags that we pass when building the testsuite. + +# empty for native, $(target_alias)/ for cross +target_subdir = @target_subdir@ + +CC_FOR_TARGET = ` \ + if [ -f $${rootme}/../gcc/xgcc ] ; then \ + if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \ + echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \ + else \ + echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \ + fi; \ + else \ + if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ + echo $(CC); \ + else \ + t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ + fi; \ + fi` + +CXX = gcc +CXX_FOR_TARGET = ` \ + if [ -f $${rootme}/../gcc/xgcc ] ; then \ + if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \ + echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \ + else \ + echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \ + fi; \ + else \ + if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ + echo $(CXX); \ + else \ + t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ + fi; \ + fi` + +CHILLFLAGS = $(CFLAGS) +CHILL = gcc +CHILL_FOR_TARGET = ` \ + if [ -f $${rootme}/../gcc/Makefile ] ; then \ + echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -L$${rootme}/../gcc/ch/runtime/; \ + else \ + if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ + echo $(CC); \ + else \ + t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ + fi; \ + fi` +CHILL_LIB = ` \ + if [ -f $${rootme}/../gcc/ch/runtime/libchill.a ] ; then \ + echo $${rootme}/../gcc/ch/runtime/chillrt0.o \ + $${rootme}/../gcc/ch/runtime/libchill.a; \ + else \ + echo -lchill; \ + fi` + +# The use of $$(x_FOR_TARGET) reduces the command line length by not +# duplicating the lengthy definition. +TARGET_FLAGS_TO_PASS = \ + "prefix=$(prefix)" \ + "exec_prefix=$(exec_prefix)" \ + "against=$(against)" \ + 'CC=$$(CC_FOR_TARGET)' \ + "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ + "CFLAGS=$(CFLAGS)" \ + "CHILLFLAGS=$(CHILLFLAGS)" \ + 'CHILL=$$(CHILL_FOR_TARGET)' \ + "CHILL_FOR_TARGET=$(CHILL_FOR_TARGET)" \ + "CHILL_LIB=$(CHILL_LIB)" \ + 'CXX=$$(CXX_FOR_TARGET)' \ + "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "MAKEINFO=$(MAKEINFO)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" + +# All source files that go into linking GDB. +# Links made at configuration time should not be specified here, since +# SFILES is used in building the distribution archive. + +SFILES = ax-general.c ax-gdb.c bcache.c blockframe.c breakpoint.c \ + buildsym.c c-exp.y c-lang.c c-typeprint.c c-valprint.c \ + ch-exp.c ch-lang.c ch-typeprint.c ch-valprint.c coffread.c \ + command.c complaints.c corefile.c cp-valprint.c dbxread.c \ + demangle.c dwarfread.c dwarf2read.c elfread.c environ.c eval.c \ + expprint.c f-exp.y f-lang.c f-typeprint.c f-valprint.c \ + findvar.c gdbarch.c gdbtypes.c infcmd.c inflow.c infrun.c language.c \ + jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \ + m2-exp.y m2-lang.c m2-typeprint.c m2-valprint.c main.c maint.c \ + mem-break.c minsyms.c mipsread.c nlmread.c objfiles.c parse.c \ + printcmd.c remote.c remote-nrom.c scm-exp.c scm-lang.c \ + scm-valprint.c source.c stabsread.c stack.c symfile.c \ + symmisc.c symtab.c target.c thread.c top.c tracepoint.c \ + typeprint.c utils.c valarith.c valops.c valprint.c values.c \ + serial.c ser-unix.c mdebugread.c os9kread.c \ + tui/tui.c tui/tui.h tui/tuiCommand.c tui/tuiCommand.h \ + tui/tuiData.c tui/tuiData.h tui/tuiDataWin.c tui/tuiDataWin.h \ + tui/tuiDisassem.c tui/tuiDisassem.h tui/tuiGeneralWin.c \ + tui/tuiGeneralWin.h tui/tuiIO.c tui/tuiIO.h tui/tuiLayout.c \ + tui/tuiLayout.h tui/tuiRegs.c tui/tuiRegs.h tui/tuiSource.c \ + tui/tuiSource.h tui/tuiSourceWin.c tui/tuiSourceWin.h \ + tui/tuiStack.c tui/tuiStack.h tui/tuiWin.c tui/tuiWin.h + +LINTFILES = $(SFILES) $(YYFILES) @CONFIG_SRCS@ init.c + +# "system" headers. Using these in dependencies is a rather personal +# choice. (-rich, summer 1993) +# (Why would we not want to depend on them? If one of these changes in a +# non-binary-compatible way, it is a real pain to remake the right stuff +# without these dependencies -kingdon, 13 Mar 1994) +getopt_h = $(INCLUDE_DIR)/getopt.h +floatformat_h = $(INCLUDE_DIR)/floatformat.h +bfd_h = $(BFD_DIR)/bfd.h +wait_h = $(INCLUDE_DIR)/wait.h +dis-asm_h = $(INCLUDE_DIR)/dis-asm.h +remote-sim_h = $(INCLUDE_DIR)/remote-sim.h + +dcache_h = dcache.h +remote_utils_h = $(dcache_h) serial.h target.h remote-utils.h $(remote-sim_h) + + +readline_headers = \ + $(READLINE_SRC)/chardefs.h \ + $(READLINE_SRC)/history.h \ + $(READLINE_SRC)/keymaps.h \ + $(READLINE_SRC)/readline.h + +udiheaders = \ + $(srcdir)/29k-share/udi/udiproc.h \ + $(srcdir)/29k-share/udi/udiphcfg.h \ + $(srcdir)/29k-share/udi/udiphunix.h \ + $(srcdir)/29k-share/udi/udiptcfg.h \ + $(srcdir)/29k-share/udi/udipt29k.h \ + $(srcdir)/29k-share/udi/udisoc.h + +gdbcore_h = gdbcore.h $(bfd_h) + +frame_h = frame.h +symtab_h = symtab.h bcache.h +gdbtypes_h = gdbtypes.h +expression_h = expression.h +value_h = value.h $(symtab_h) $(gdbtypes_h) $(expression_h) + +breakpoint_h = breakpoint.h $(frame_h) $(value_h) + +command_h = command.h +gdbcmd_h = gdbcmd.h $(command_h) + +defs_h = defs.h xm.h tm.h nm.h config.status config.h gdbarch.h + +inferior_h = inferior.h $(breakpoint_h) +tracepoint_h = tracepoint.h +ax_h = ax.h + +# Header files that need to have srcdir added. Note that in the cases +# where we use a macro like $(gdbcmd_h), things are carefully arranged +# so that each .h file is listed exactly once (M-x tags-search works +# wrong if TAGS has files twice). Because this is tricky to get +# right, it is probably easiest just to list .h files here directly. + +HFILES_NO_SRCDIR = bcache.h buildsym.h call-cmds.h coff-solib.h defs.h \ + dst.h environ.h $(gdbcmd_h) gdbcore.h \ + gdb-stabs.h hpread.h $(inferior_h) language.h minimon.h monitor.h \ + objfiles.h parser-defs.h partial-stab.h serial.h signals.h solib.h \ + symfile.h stabsread.h target.h terminal.h typeprint.h xcoffsolib.h \ + c-lang.h ch-lang.h f-lang.h \ + jv-lang.h \ + m2-lang.h \ + complaints.h valprint.h \ + 29k-share/udi/udiids.h 29k-share/udi_soc nindy-share/b.out.h \ + nindy-share/block_io.h nindy-share/coff.h \ + nindy-share/env.h nindy-share/stop.h \ + vx-share/dbgRpcLib.h vx-share/ptrace.h vx-share/vxTypes.h \ + vx-share/vxWorks.h vx-share/wait.h vx-share/xdr_ld.h \ + vx-share/xdr_ptrace.h vx-share/xdr_rdb.h gdbthread.h \ + dcache.h remote-utils.h top.h somsolib.h + +# Header files that already have srcdir in them, or which are in objdir. + +HFILES_WITH_SRCDIR = $(udiheaders) ../bfd/bfd.h + + +# GDB "info" files, which should be included in their entirety +INFOFILES = gdb.info* + +REMOTE_EXAMPLES = m68k-stub.c i386-stub.c sparc-stub.c rem-multi.shar + +POSSLIBS = gnu-regex.c gnu-regex.h + +# {X,T,NAT}DEPFILES are something of a pain in that it's hard to +# default their values the way we do for SER_HARDWIRE; in the future +# maybe much of the stuff now in {X,T,NAT}DEPFILES will go into other +# variables analogous to SER_HARDWIRE which get defaulted in this +# Makefile.in + +DEPFILES = $(TDEPFILES) $(XDEPFILES) $(SER_HARDWIRE) $(NATDEPFILES) \ + $(REMOTE_OBS) $(SIM_OBS) @CONFIG_OBS@ + +SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES) @CONFIG_SRCS@ +# Don't include YYFILES (*.tab.c) because we already include *.y in SFILES, +# and it's more useful to see it in the .y file. +TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_NO_SRCDIR) $(ALLDEPFILES) \ + $(POSSLIBS) +TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR) + +COMMON_OBS = version.o blockframe.o breakpoint.o findvar.o stack.o thread.o \ + source.o values.o eval.o valops.o valarith.o valprint.o printcmd.o \ + symtab.o symfile.o symmisc.o infcmd.o infrun.o command.o \ + expprint.o environ.o gdbarch.o gdbtypes.o copying.o $(DEPFILES) \ + mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.o \ + exec.o bcache.o objfiles.o minsyms.o maint.o demangle.o \ + dbxread.o coffread.o elfread.o \ + dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o \ + c-lang.o ch-exp.o ch-lang.o f-lang.o \ + jv-lang.o jv-valprint.o jv-typeprint.o \ + m2-lang.o \ + scm-exp.o scm-lang.o scm-valprint.o complaints.o typeprint.o \ + c-typeprint.o ch-typeprint.o f-typeprint.o m2-typeprint.o \ + c-valprint.o cp-valprint.o ch-valprint.o f-valprint.o m2-valprint.o \ + nlmread.o serial.o mdebugread.o os9kread.o top.o utils.o + +OBS = $(COMMON_OBS) $(ANNOTATE_OBS) main.o + +LIBGDB_OBS = + +TSOBS = inflow.o + +NTSOBS = standalone.o + +NTSSTART = kdb-start.o + +SUBDIRS = doc \ + testsuite \ + nlm + +# For now, shortcut the "configure GDB for fewer languages" stuff. +YYFILES = c-exp.tab.c \ + jv-exp.tab.c \ + f-exp.tab.c m2-exp.tab.c +YYOBJ = c-exp.tab.o \ + jv-exp.tab.o \ + f-exp.tab.o m2-exp.tab.o + +# Things which need to be built when making a distribution. + +DISTSTUFF = $(YYFILES) + +# Prevent Sun make from putting in the machine type. Setting +# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1. +.c.o: + $(CC) -c $(INTERNAL_CFLAGS) $< + +all: gdb$(EXEEXT) + @$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do + +installcheck: + +# The check target can not use subdir_do, because subdir_do does not +# use TARGET_FLAGS_TO_PASS. +check: force + @if [ -f testsuite/Makefile ]; then \ + rootme=`pwd`; export rootme; \ + rootsrc=`cd $(srcdir); pwd`; export rootsrc; \ + cd testsuite; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check; \ + else true; fi + +info dvi install-info clean-info: force + @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do + +gdb.z:gdb.1 + nroff -man $(srcdir)/gdb.1 | col -b > gdb.t + pack gdb.t ; rm -f gdb.t + mv gdb.t.z gdb.z + +# Traditionally "install" depends on "all". But it may be useful +# not to; for example, if the user has made some trivial change to a +# source file and doesn't care about rebuilding or just wants to save the +# time it takes for make to check that all is up to date. +# install-only is intended to address that need. +install: all install-only +install-only: + transformed_name=`t='$(program_transform_name)'; \ + echo gdb | sed -e $$t` ; \ + if test "x$$transformed_name" = x; then \ + transformed_name=gdb ; \ + else \ + true ; \ + fi ; \ + $(INSTALL_PROGRAM) gdb$(EXEEXT) $(bindir)/$$transformed_name$(EXEEXT) ; \ + $(INSTALL_DATA) $(srcdir)/gdb.1 $(man1dir)/$$transformed_name.1 + @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do + +uninstall: force + transformed_name=`t='$(program_transform_name)'; \ + echo gdb | sed -e $$t` ; \ + if test "x$$transformed_name" = x; then \ + transformed_name=gdb ; \ + else \ + true ; \ + fi ; \ + rm -f $(bindir)/$$transformed_name$(EXEEXT) $(man1dir)/$$transformed_name.1 + @$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do + +# We do this by grepping through sources. If that turns out to be too slow, +# maybe we could just require every .o file to have an initialization routine +# of a given name (remote-udi.o -> _initialize_remote_udi, etc.). +# +# Formatting conventions: The name of the _initialize_* routines must start +# in column zero, and must not be inside #if. +# +# Note that the set of files with init functions might change, or the names +# of the functions might change, so this files needs to depend on all the +# object files that will be linked into gdb. + +init.c: $(OBS) $(TSOBS) + @echo Making init.c + @rm -f init.c-tmp + @echo '/* Do not modify this file. */' >init.c-tmp + @echo '/* It is created automatically by the Makefile. */'>>init.c-tmp + @echo '#include "ansidecl.h"' >>init.c-tmp + @echo 'extern void initialize_all_files PARAMS ((void));' >>init.c-tmp + @echo 'void initialize_all_files PARAMS ((void)) {' >>init.c-tmp + @-echo $(OBS) $(TSOBS) | \ + tr ' ' '\012' | \ + sed -e '/^Onindy.o/d' \ + -e '/^nindy.o/d' \ + -e '/ttyflush.o/d' \ + -e '/xdr_ld.o/d' \ + -e '/xdr_ptrace.o/d' \ + -e '/xdr_rdb.o/d' \ + -e '/udr.o/d' \ + -e '/udip2soc.o/d' \ + -e '/udi2go32.o/d' \ + -e '/version.o/d' \ + -e '/^[a-z0-9A-Z_]*_[SU].o/d' \ + -e '/[a-z0-9A-Z_]*-exp.tab.o/d' \ + -e 's/\.o/.c/' \ + -e 's|\([^ ][^ ]*\)|$(srcdir)/\1|g' | \ + while read f; do grep '^_initialize_[a-z_0-9A-Z]* *(' $$f 2>/dev/null; done | \ + sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 PARAMS ((void)); \1 ();}/' >>init.c-tmp + @echo '}' >>init.c-tmp + @mv init.c-tmp init.c + +.PRECIOUS: init.c + +# Removing the old gdb first works better if it is running, at least on SunOS. +gdb$(EXEEXT): $(OBS) $(BUILD_TUI) $(TSOBS) $(ADD_DEPS) $(CDEPS) init.o + rm -f gdb$(EXEEXT) + $(HLDENV) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) -o gdb$(EXEEXT) \ + init.o $(OBS) $(TSOBS) $(TUI_LIBRARY) $(ADD_FILES) $(CLIBS) $(LOADLIBES) + +nlm: force + rootme=`pwd`; export rootme; $(MAKE) $(TARGET_FLAGS_TO_PASS) DO=all DODIRS=nlm subdir_do + +libgdb: libgdb-files $(LIBGDB_OBS) + +# libproc is not listed here because all-libproc is a dependency of all-gui, +# not all-gdb, and thus might be built after us. +LIBGDBDEPS=$(COMMON_OBS) $(LIBGDB_OBS) $(TSOBS) $(ADD_DEPS) $(CDEPS) init.o +# libproc needs to be before libiberty for alloca. +LIBGDBFILES=$(COMMON_OBS) $(LIBGDB_OBS) $(TSOBS) ../libproc/libproc.a \ + $(ADD_DEPS) $(CDEPS) init.o + +libgdb-files: $(LIBGDBDEPS) Makefile.in + -rm -f libgdb-files + for i in $(LIBGDBFILES); do\ + echo $$i >> libgdb-files;\ + done + +saber_gdb: $(SFILES) $(DEPFILES) copying.c version.c + #setopt load_flags $(CFLAGS) $(BFD_CFLAGS) -DHOST_SYS=SUN4_SYS + #load ./init.c $(SFILES) + #unload $(srcdir)/c-exp.y + #unload $(srcdir)/jv-exp.y + #unload $(srcdir)/m2-exp.y + #unload vx-share/*.h + #unload nindy-share/[A-Z]* + #load c-exp.tab.c + #load jv-exp.tab.c + #load m2-exp.tab.c + #load copying.c version.c + #load ../opcodes/libopcodes.a + #load ../libiberty/libiberty.a + #load ../bfd/libbfd.a + #load ../readline/libreadline.a + #load ../mmalloc/libmmalloc.a + #load ../intl/libintl.a + #load -ltermcap + #load `echo " "$(DEPFILES) | sed -e 's/\.o/.c/g' -e 's, , ../,g'` + echo "Load .c corresponding to:" $(DEPFILES) + + +# A Mach 3.0 program to force gdb back to command level + +stop-gdb: stop-gdb.o + ${CC_LD} $(GLOBAL_CFLAGS) $(LDFLAGS) -o stop-gdb \ + stop-gdb.o $(CLIBS) $(LOADLIBES) + +# This is useful when debugging GDB, because some Unix's don't let you run GDB +# on itself without copying the executable. So "make gdb1" will make +# gdb and put a copy in gdb1, and you can run it with "gdb gdb1". +# Removing gdb1 before the copy is the right thing if gdb1 is open +# in another process. +gdb1$(EXEEXT): gdb$(EXEEXT) + rm -f gdb1$(EXEEXT) + cp gdb$(EXEEXT) gdb1$(EXEEXT) + +# FIXME. These are not generated by "make depend" because they only are there +# for some machines. +# But these rules don't do what we want; we want to hack the foo.o: tm.h +# dependency to do the right thing. +tm-isi.h tm-sun3.h tm-news.h tm-hp300bsd.h tm-altos.h: tm-m68k.h +tm-hp300hpux.h tm-sun2.h tm-3b1.h: tm-m68k.h +xm-news1000.h: xm-news.h +xm-i386-sv32.h: xm-i386.h +tm-i386gas.h: tm-i386.h +xm-sun4os4.h: xm-sparc.h +tm-sun4os4.h: tm-sparc.h +xm-vaxult.h: xm-vax.h +xm-vaxbsd.h: xm-vax.h + +kdb: $(NTSSTART) $(OBS) $(NTSOBS) $(ADD_DEPS) $(CDEPS) + ld -o kdb $(NTSSTART) $(OBS) $(NTSOBS) init.o $(ADD_FILES) \ + -lc $(CLIBS) + +# Have the TUI library depend on a phony target, so we'll always +# recurse and make sure it's up to date. If it is, then the file will +# be unchanged, and we won't rebuild it. +# .PHONY: check-tui +all-tui: + @(cd tui; ${MAKE} ${FLAGS_TO_PASS} all) + +# Put the proper machine-specific files first, so M-. on a machine +# specific routine gets the one for the correct machine. (FIXME: those +# files go in twice; we should be removing them from the main list). + +# TAGS depends on all the files that go into it so you can rebuild TAGS +# with `make TAGS' and not have to say `rm TAGS' first. + +TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR) + @echo Making TAGS + @etags $(srcdir)/$(TM_FILE) \ + $(srcdir)/$(XM_FILE) \ + $(srcdir)/$(NAT_FILE) \ + `(for i in $(DEPFILES) $(TAGFILES_NO_SRCDIR); do \ + echo $(srcdir)/$$i ; \ + done ; for i in $(TAGFILES_WITH_SRCDIR); do \ + echo $$i ; \ + done) | sed -e 's/\.o$$/\.c/'` \ + `find $(srcdir)/config -name '*.h' -print` + +tags: TAGS + +clean mostlyclean: + @$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(SUBDIRS)" subdir_do + rm -f *.o *.a $(ADD_FILES) *~ init.c-tmp + rm -f init.c version.c + rm -f gdb$(EXEEXT) core make.log libgdb-files + rm -f gdb[0-9]$(EXEEXT) + +# This used to depend on c-exp.tab.c m2-exp.tab.c TAGS +# I believe this is wrong; the makefile standards for distclean just +# describe removing files; the only sort of "re-create a distribution" +# functionality described is if the distributed files are unmodified. +distclean: clean + @$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(SUBDIRS)" subdir_do + rm -f nm.h tm.h xm.h config.status config.h stamp-h .gdbinit + rm -f y.output yacc.acts yacc.tmp y.tab.h + rm -f config.log config.cache + rm -f Makefile + +maintainer-clean: local-maintainer-clean do-maintainer-clean distclean +realclean: maintainer-clean + +local-maintainer-clean: + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f c-exp.tab.c \ + jv-exp.tab \ + f-exp.tab.c m2-exp.tab.c + rm -f TAGS $(INFOFILES) + rm -f $(YYFILES) + rm -f nm.h tm.h xm.h config.status + +do-maintainer-clean: + @$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(SUBDIRS)" \ + subdir_do + +diststuff: $(DISTSTUFF) + cd doc; $(MAKE) $(MFLAGS) all-doc + +subdir_do: force + @for i in $(DODIRS); do \ + if [ -f ./$$i/Makefile ] ; then \ + if (cd ./$$i; \ + $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \ + else exit 1 ; fi ; \ + else true ; fi ; \ + done + +Makefile: Makefile.in config.status @frags@ + $(SHELL) config.status + +config.h: stamp-h ; @true +stamp-h: config.in config.status + CONFIG_HEADERS=config.h:config.in $(SHELL) config.status + +config.status: configure + $(SHELL) config.status --recheck + +force: + +# Documentation! +# GDB QUICK REFERENCE (TeX dvi file, CM fonts) +doc/refcard.dvi: + cd doc; $(MAKE) refcard.dvi $(FLAGS_TO_PASS) + +# GDB QUICK REFERENCE (PostScript output, common PS fonts) +doc/refcard.ps: + cd doc; $(MAKE) refcard.ps $(FLAGS_TO_PASS) + +# GDB MANUAL: TeX dvi file +doc/gdb.dvi: + cd doc; $(MAKE) gdb.dvi $(FLAGS_TO_PASS) + +# GDB MANUAL: info file +doc/gdb.info: + cd doc; $(MAKE) gdb.info $(FLAGS_TO_PASS) + +# Make copying.c from COPYING +copying.c: COPYING copying.awk + awk -f $(srcdir)/copying.awk < $(srcdir)/COPYING > copying.c + +version.c: Makefile + echo 'char *version = "$(VERSION)";' >version.c + echo 'char *host_name = "$(host_alias)";' >> version.c + echo 'char *target_name = "$(target_alias)";' >> version.c + +# c-exp.tab.c is generated in objdir from c-exp.y if it doesn't exist +# in srcdir, then compiled in objdir to c-exp.tab.o. + +# If we said c-exp.tab.c rather than ./c-exp.tab.c some makes +# would sometimes re-write it into $(srcdir)/c-exp.tab.c. + +# Remove bogus decls for malloc/realloc/free which conflict with everything +# else. Strictly speaking c-exp.tab.c should therefore depend on +# Makefile.in, but that was a pretty big annoyance. +c-exp.tab.o: c-exp.tab.c +c-exp.tab.c: c-exp.y + $(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/c-exp.y y.tab.c c-exp.tmp -- $(YFLAGS) + -sed -e '/extern.*malloc/d' \ + -e '/extern.*realloc/d' \ + -e '/extern.*free/d' \ + -e '/include.*malloc.h/d' \ + -e 's/malloc/xmalloc/g' \ + -e 's/realloc/xrealloc/g' \ + -e '/^#line.*y.tab.c/d' \ + < c-exp.tmp > c-exp.new + -rm c-exp.tmp + mv c-exp.new ./c-exp.tab.c + +jv-exp.tab.o: jv-exp.tab.c +jv-exp.tab.c: jv-exp.y + $(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/jv-exp.y y.tab.c jv-exp.tmp -- $(YFLAGS) + -sed -e '/extern.*malloc/d' \ + -e '/extern.*realloc/d' \ + -e '/extern.*free/d' \ + -e '/include.*malloc.h/d' \ + -e 's/malloc/xmalloc/g' \ + -e 's/realloc/xrealloc/g' \ + -e '/^#line.*y.tab.c/d' \ + < jv-exp.tmp > jv-exp.new + -rm jv-exp.tmp + mv jv-exp.new ./jv-exp.tab.c + +f-exp.tab.o: f-exp.tab.c +f-exp.tab.c: f-exp.y c-exp.tab.c + $(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/f-exp.y y.tab.c f-exp.tmp -- $(YFLAGS) + -sed -e '/extern.*malloc/d' \ + -e '/extern.*realloc/d' \ + -e '/extern.*free/d' \ + -e '/include.*malloc.h/d' \ + -e 's/malloc/xmalloc/g' \ + -e 's/realloc/xrealloc/g' \ + -e '/^#line.*y.tab.c/d' \ + < f-exp.tmp > f-exp.new + -rm f-exp.tmp + mv f-exp.new ./f-exp.tab.c + +# m2-exp.tab.c is generated in objdir from m2-exp.y if it doesn't exist +# in srcdir, then compiled in objdir to m2-exp.tab.o. +# Remove bogus decls for malloc/realloc/free which conflict with everything +# else. +m2-exp.tab.o: m2-exp.tab.c +m2-exp.tab.c: m2-exp.y + $(SHELL) $(YLWRAP) "$(YACC)" $(srcdir)/m2-exp.y y.tab.c m2-exp.tmp -- $(YFLAGS) + -sed -e '/extern.*malloc/d' \ + -e '/extern.*realloc/d' \ + -e '/extern.*free/d' \ + -e '/include.*malloc.h/d' \ + -e 's/malloc/xmalloc/g' \ + -e 's/realloc/xrealloc/g' \ + -e '/^#line.*y.tab.c/d' \ + < m2-exp.tmp > m2-exp.new + -rm m2-exp.tmp + mv m2-exp.new ./m2-exp.tab.c + +# These files are updated atomically, so make never has to remove them +.PRECIOUS: m2-exp.tab.c f-exp.tab.c c-exp.tab.c +.PRECIOUS: jv-exp.tab.c + +lint: $(LINTFILES) + $(LINT) $(INCLUDE_CFLAGS) $(LINTFLAGS) $(LINTFILES) \ + `echo $(DEPFILES) | sed 's/\.o /\.c /g'` + +gdb.cxref: $(SFILES) + cxref -I. $(SFILES) >gdb.cxref + +force_update: + +# GNU Make has an annoying habit of putting *all* the Makefile variables +# into the environment, unless you include this target as a circumvention. +# Rumor is that this will be fixed (and this target can be removed) +# in GNU Make 4.0. +.NOEXPORT: + +# GNU Make 3.63 has a different problem: it keeps tacking command line +# overrides onto the definition of $(MAKE). This variable setting +# will remove them. +MAKEOVERRIDES= + +## This is ugly, but I don't want GNU make to put these variables in +## the environment. Older makes will see this as a set of targets +## with no dependencies and no actions. +unexport CHILLFLAGS CHILL_LIB CHILL_FOR_TARGET : + +ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \ + 29k-share/udi/udi2go32.c \ + a29k-tdep.c a68v-nat.c alpha-nat.c alpha-tdep.c \ + altos-xdep.c arm-convert.s \ + arm-tdep.c arm-xdep.c coff-solib.c \ + convex-tdep.c convex-xdep.c \ + core-sol2.c core-regset.c core-aout.c corelow.c \ + dcache.c delta68-nat.c dpx2-nat.c dstread.c exec.c fork-child.c \ + go32-xdep.c gould-tdep.c gould-xdep.c h8300-tdep.c h8500-tdep.c \ + hp300ux-nat.c hppa-tdep.c hppab-nat.c hppah-nat.c \ + hp-psymtab-read.c hp-symtab-read.c \ + i386-tdep.c i386b-nat.c i386mach-nat.c i386v-nat.c \ + i386aix-nat.c i386m3-nat.c i386v4-nat.c i386ly-tdep.c \ + i387-tdep.c \ + i960-tdep.c \ + infptrace.c inftarg.c irix4-nat.c irix5-nat.c isi-xdep.c \ + lynx-nat.c m3-nat.c \ + m68k-tdep.c \ + m88k-nat.c m88k-tdep.c mac-nat.c mips-nat.c \ + mips-tdep.c mipsm3-nat.c mipsv4-nat.c news-xdep.c \ + nindy-share/Onindy.c nindy-share/nindy.c \ + nindy-share/ttyflush.c nindy-tdep.c \ + ns32k-tdep.c ns32km3-nat.c osfsolib.c \ + somread.c somsolib.c $(HPREAD_SOURCE) \ + procfs.c pyr-tdep.c pyr-xdep.c \ + remote-adapt.c remote-array.c remote-bug.c remote-e7000.c remote-eb.c \ + remote-es.c remote-hms.c remote-mips.c \ + remote-mm.c remote-nindy.c remote-os9k.c remote-rdp.c remote-sim.c \ + remote-st.c remote-utils.c dcache.c \ + remote-udi.c remote-vx.c remote-vx29k.c \ + rs6000-nat.c rs6000-tdep.c \ + ser-go32.c ser-ocd.c ser-tcp.c sh-tdep.c solib.c sparc-nat.c \ + sparc-tdep.c sparcl-tdep.c sun3-nat.c sun386-nat.c \ + symm-tdep.c symm-nat.c \ + tahoe-tdep.c ultra3-nat.c ultra3-xdep.c umax-xdep.c \ + vax-tdep.c \ + vx-share/xdr_ld.c vx-share/xdr_ptrace.c vx-share/xdr_rdb.c \ + win32-nat.c \ + xcoffread.c xcoffsolib.c z8k-tdep.c + +udip2soc.o: $(srcdir)/29k-share/udi/udip2soc.c $(udiheaders) + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/29k-share/udi/udip2soc.c + +udi2go32.o: $(srcdir)/29k-share/udi/udi2go32.c $(udiheaders) + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/29k-share/udi/udi2go32.c + +udr.o: $(srcdir)/29k-share/udi/udr.c $(udiheaders) + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/29k-share/udi/udr.c + +a29k-tdep.o: a29k-tdep.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) + +a68v-nat.o: a68v-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +alpha-nat.o: alpha-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h + +alpha-tdep.o: alpha-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) $(symtab_h) $(dis-asm.h) gdb_string.h + +altos-xdep.o: altos-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +annotate.o: annotate.c $(defs_h) annotate.h $(value_h) target.h $(gdbtypes_h) + +arm-tdep.o: arm-tdep.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \ + $(gdbcore_h) + +bcache.o: bcache.c bcache.h $(defs_h) + +blockframe.o: blockframe.c $(defs_h) $(gdbcore_h) $(inferior_h) \ + objfiles.h symfile.h target.h + +breakpoint.o: breakpoint.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) language.h target.h gdbthread.h gdb_string.h + +buildsym.o: buildsym.c $(bfd_h) buildsym.h complaints.h $(defs_h) \ + objfiles.h symfile.h $(symtab_h) gdb_string.h + +c-lang.o: c-lang.c c-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h parser-defs.h $(symtab_h) + +c-typeprint.o: c-typeprint.c c-lang.h $(defs_h) $(expression_h) \ + $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) \ + target.h typeprint.h $(value_h) gdb_string.h + +c-valprint.o: c-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h $(symtab_h) valprint.h $(value_h) + +f-lang.o: f-lang.c f-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h parser-defs.h $(symtab_h) gdb_string.h + +f-typeprint.o: f-typeprint.c f-lang.h $(defs_h) $(expression_h) \ + $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) \ + target.h typeprint.h $(value_h) gdb_string.h + +f-valprint.o: f-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h $(symtab_h) valprint.h $(value_h) gdb_string.h + +ch-exp.o: ch-exp.c ch-lang.h $(defs_h) language.h parser-defs.h $(bfd_h) symfile.h objfiles.h $(value_h) + +ch-lang.o: ch-lang.c ch-lang.h $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h parser-defs.h $(symtab_h) + +ch-typeprint.o: ch-typeprint.c ch-lang.h $(defs_h) $(expression_h) \ + $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) \ + target.h $(value_h) typeprint.h gdb_string.h + +ch-valprint.o: ch-valprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h $(symtab_h) valprint.h $(value_h) c-lang.h + +coff-solib.o: coff-solib.c $(defs_h) + +coffread.o: coffread.c $(bfd_h) $(breakpoint_h) buildsym.h \ + complaints.h $(defs_h) $(expression_h) $(gdbtypes_h) objfiles.h \ + symfile.h $(symtab_h) gdb-stabs.h stabsread.h target.h \ + gdb_string.h + +command.o: command.c $(defs_h) $(expression_h) $(gdbcmd_h) \ + $(gdbtypes_h) $(symtab_h) $(value_h) gdb_string.h $(wait_h) + +complaints.o: complaints.c complaints.h $(defs_h) $(gdbcmd_h) + +convex-tdep.o: convex-tdep.c $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(gdbcore_h) $(inferior_h) + +convex-xdep.o: convex-xdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) + +copying.o: copying.c $(defs_h) $(gdbcmd_h) + +core-aout.o: core-aout.c $(defs_h) $(gdbcore_h) $(value_h) $(inferior_h) + +core-sol2.o: core-sol2.c $(command_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) target.h gdb_string.h + +core-regset.o: core-regset.c $(command_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) target.h gdb_string.h + +corefile.o: corefile.c $(dis-asm_h) $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) target.h language.h gdb_string.h + +corelow.o: corelow.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \ + target.h gdbthread.h gdb_string.h + +cp-valprint.o: cp-valprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \ + $(gdbtypes_h) $(symtab_h) $(value_h) gdb_string.h + +dcache.o: dcache.c $(dcache_h) $(defs_h) $(gdbcmd_h) gdb_string.h $(gdbcore_h) + +dbxread.o: dbxread.c $(breakpoint_h) buildsym.h $(command_h) \ + complaints.h $(defs_h) $(expression_h) gdb-stabs.h $(gdbcore_h) \ + $(gdbtypes_h) language.h objfiles.h partial-stab.h stabsread.h \ + symfile.h $(symtab_h) target.h gdb_string.h + +delta68-nat.o: delta68-nat.c $(defs_h) + +demangle.o: demangle.c $(defs_h) $(gdbcmd_h) gdb_string.h + +dink32-rom.o: dink32-rom.c monitor.h $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h serial.h terminal.h + +dpx2-nat.o: dpx2-nat.c $(defs_h) $(gdbcore_h) gdb_string.h + +dstread.o: dstread.c gdb_string.h + +dwarfread.o: dwarfread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \ + $(expression_h) $(gdbtypes_h) language.h objfiles.h symfile.h \ + $(symtab_h) gdb_string.h + +dwarf2read.o: dwarf2read.c $(bfd_h) buildsym.h $(defs_h) \ + $(expression_h) $(gdbtypes_h) language.h objfiles.h symfile.h \ + $(symtab_h) gdb_string.h + +elfread.o: elfread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \ + gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h \ + $(BFD_SRC)/elf-bfd.h $(INCLUDE_DIR)/elf/mips.h + +environ.o: environ.c $(defs_h) environ.h $(gdbcore_h) gdb_string.h + +eval.o: eval.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \ + $(gdbtypes_h) language.h $(symtab_h) target.h $(value_h) \ + gdb_string.h + +exec.o: exec.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \ + target.h language.h gdb_string.h + +expprint.o: expprint.c $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h parser-defs.h $(symtab_h) $(value_h) + +findvar.o: findvar.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h \ + gdb_string.h + +fork-child.o: fork-child.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) target.h terminal.h gdbthread.h gdb_string.h + +tracepoint.o: tracepoint.c $(defs_h) $(symtab_h) $(frame_h) $(tracepoint_h) \ + $(gdbtypes_h) $(expression_h) $(gdbcmd_h) $(value_h) target.h \ + language.h gdb_string.h $(readline_headers) + +gdbarch.o: gdbarch.c $(defs_h) $(bfd_h) $(gdbcmd_h) + +gdbtypes.o: gdbtypes.c $(bfd_h) complaints.h $(defs_h) $(expression_h) \ + $(gdbtypes_h) language.h objfiles.h symfile.h $(symtab_h) target.h \ + $(value_h) gdb_string.h + +gnu-nat.o: process_reply_S.h exc_request_S.h notify_S.h msg_reply_S.h \ + exc_request_U.h msg_U.h gnu-nat.h + +go32-xdep.o: go32-xdep.c + +# OBSOLETE gould-tdep.o: gould-tdep.c $(OP_INCLUDE)/np1.h $(defs_h) $(frame_h) \ +# OBSOLETE $(gdbcore_h) $(symtab_h) + +# OBSOLETE gould-xdep.o: gould-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +h8300-tdep.o: h8300-tdep.c $(defs_h) $(frame_h) $(symtab_h) + +h8500-tdep.o: h8500-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h) \ + $(expression_h) $(frame_h) $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) \ + $(value_h) + +hp300ux-nat.o: hp300ux-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +hppa-tdep.o: hppa-tdep.c $(wait_h) $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) objfiles.h symfile.h target.h + +hppab-nat.o: hppab-nat.c $(bfd_h) $(defs_h) $(inferior_h) target.h + +hppah-nat.o: hppah-nat.c $(bfd_h) $(defs_h) $(inferior_h) target.h + +i386gnu-nat.o: gnu-nat.h + +i386-tdep.o: i386-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h \ + gdb_string.h + +i386aix-nat.o: i386aix-nat.c $(defs_h) $(frame_h) $(inferior_h) \ + language.h $(gdbcore_h) $(floatformat_h) target.h + +i386b-nat.o: i386b-nat.c $(defs_h) + +i386ly-nat.o: i386ly-nat.c $(defs_h) $(frame_h) $(inferior_h) target.h + +i386ly-tdep.o: i386ly-tdep.c $(defs_h) $(inferior_h) target.h $(gdbcore_h) + +i386m3-nat.o: i386m3-nat.c $(defs_h) $(inferior_h) $(floatformat_h) target.h + +i386mach-nat.o: i386mach-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +i386v-nat.o: i386v-nat.c $(floatformat_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) language.h target.h + +i386v4-nat.o: i386v4-nat.c $(defs_h) + +i387-tdep.o: i387-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) language.h + +i960-tdep.o: i960-tdep.c $(floatformat_h) $(defs_h) $(expression_h) \ + $(frame_h) $(gdbtypes_h) $(symtab_h) $(value_h) $(gdbcore_h) + +infcmd.o: infcmd.c $(defs_h) environ.h $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) target.h language.h gdb_string.h + +inflow.o: inflow.c $(bfd_h) $(command_h) $(defs_h) $(inferior_h) \ + signals.h target.h terminal.h gdbthread.h gdb_string.h + +infptrace.o: infptrace.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h \ + gdb_string.h $(wait_h) $(command_h) + +infrun.o: infrun.c $(wait_h) $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) target.h gdbthread.h gdb_string.h + +inftarg.o: inftarg.c $(wait_h) $(defs_h) $(gdbcore_h) $(inferior_h) \ + target.h terminal.h $(command_h) + +irix4-nat.o: irix4-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) +irix5-nat.o: irix5-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) target.h \ + $(symtab_h) symfile.h objfiles.h $(command_h) $(frame_h) gnu-regex.h \ + language.h gdb_string.h + +isi-xdep.o: isi-xdep.c + +jv-lang.o: jv-lang.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \ + $(expression_h) parser-defs.h language.h symfile.h objfiles.h \ + gdb_string.h $(value_h) c-lang.h jv-lang.h $(gdbcore_h) + +jv-typeprint.o: jv-typeprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \ + $(value_h) $(INCLUDE_DIR)/demangle.h jv-lang.h gdb_string.h \ + typeprint.h + +jv-valprint.o: jv-valprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \ + $(expression_h) $(value_h) $(INCLUDE_DIR)/demangle.h valprint.h \ + language.h jv-lang.h c-lang.h + +language.o: language.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \ + $(gdbcmd_h) $(gdbtypes_h) language.h parser-defs.h $(symtab_h) \ + target.h $(value_h) gdb_string.h + +lynx-nat.o: lynx-nat.c $(defs_h) $(frame_h) $(inferior_h) $(gdbcore_h) \ + target.h + +m2-lang.o: m2-lang.c $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h m2-lang.h parser-defs.h $(symtab_h) + +m2-typeprint.o: m2-typeprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \ + $(gdbcore_h) $(gdbtypes_h) language.h m2-lang.h $(symtab_h) target.h \ + $(value_h) gdb_string.h + +m2-valprint.o: m2-valprint.c $(defs_h) $(gdbtypes_h) $(symtab_h) \ + valprint.h m2-lang.h + +m3-nat.o: m3-nat.c $(defs_h) $(inferior_h) $(value_h) language.h target.h \ + $(wait_h) $(gdbcmd_h) $(gdbcore_h) + +m68k-tdep.o: m68k-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(value_h) \ + $(gdbcore_h) gdb_string.h + +m68kly-nat.o: m68kly-nat.c $(defs_h) $(frame_h) $(inferior_h) target.h + +m68klinux-nat.o: m68klinux-nat.c $(defs_h) $(frame_h) $(inferior_h) \ + $(language_h) $(gdbcore_h) $(floatformat_h) target.h + +m88k-nat.o: m88k-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +m88k-tdep.o: m88k-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +mac-nat.o: mac-nat.c $(defs_h) gdb_string.h + +main.o: main.c top.h $(defs_h) gdb_string.h + +maint.o: maint.c $(defs_h) $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) language.h \ + $(expression_h) objfiles.h symfile.h + +mdebugread.o: mdebugread.c buildsym.h complaints.h $(bfd_h) $(defs_h) \ + $(expression_h) gdb-stabs.h $(gdbcore_h) $(gdbtypes_h) language.h \ + objfiles.h partial-stab.h stabsread.h symfile.h $(symtab_h) \ + gdb_string.h + +mipsm3-nat.o: mipsm3-nat.c $(defs_h) $(inferior_h) + +os9kread.o: os9kread.c buildsym.h complaints.h $(bfd_h) $(defs_h) \ + $(expression_h) gdb-stabs.h $(gdbcore_h) $(gdbtypes_h) language.h \ + objfiles.h stabsread.h symfile.h $(symtab_h) \ + target.h gdb_string.h + +mem-break.o: mem-break.c $(defs_h) + +minsyms.o: minsyms.c $(bfd_h) $(defs_h) objfiles.h symfile.h \ + $(symtab_h) gdb_string.h + +mips-nat.o: mips-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +mips-tdep.o: mips-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) language.h objfiles.h symfile.h gdb_string.h + +mipsread.o: mipsread.c buildsym.h complaints.h $(bfd_h) $(defs_h) \ + $(expression_h) gdb-stabs.h $(gdbcore_h) $(gdbtypes_h) language.h \ + objfiles.h partial-stab.h stabsread.h symfile.h $(symtab_h) \ + gdb_string.h + +mipsv4-nat.o: mipsv4-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h + +monitor.o: monitor.c monitor.h $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h serial.h terminal.h gdb_string.h + +news-xdep.o: news-xdep.c + +Onindy.o: nindy-share/Onindy.c $(wait_h) nindy-share/block_io.h \ + nindy-share/env.h + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/Onindy.c + +nindy.o: nindy-share/nindy.c $(wait_h) nindy-share/block_io.h \ + nindy-share/env.h + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/nindy.c + +nlmread.o: nlmread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \ + gdb-stabs.h objfiles.h symfile.h $(symtab_h) stabsread.h \ + gdb_string.h + +ns32km3-nat.o: ns32km3-nat.c $(defs_h) $(inferior_h) + +ttyflush.o: nindy-share/ttyflush.c + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/ttyflush.c + +nindy-tdep.o: nindy-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(gdbcore_h) + +ns32k-tdep.o: ns32k-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h) + +objfiles.o: objfiles.c $(bfd_h) $(defs_h) objfiles.h symfile.h \ + $(symtab_h) gdb_string.h + +osfsolib.o: osfsolib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \ + objfiles.h gnu-regex.h symfile.h target.h language.h gdb_string.h + +somread.o: somread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \ + gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h + +somsolib.o: somsolib.c $(defs_h) + +hpux-thread.o: hpux-thread.c $(defs_h) gdbthread.h target.h inferior.h + $(CC) -c $(INTERNAL_CFLAGS) -I$(srcdir)/osf-share \ + -I$(srcdir)/osf-share/HP800 -I/usr/include/dce $(srcdir)/hpux-thread.c + +# FIXME!!! +hpread.o: hpread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \ + gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h + +hp-psymtab-read.o: hp-psymtab-read.c hpread.h $(bfd_h) buildsym.h complaints.h \ + $(defs_h) gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h + +hp-symtab-read.o: hp-symtab-read.c hpread.h $(bfd_h) buildsym.h complaints.h \ + $(defs_h) gdb-stabs.h objfiles.h symfile.h $(symtab_h) gdb_string.h +# END FIXME!!! + +parse.o: parse.c $(command_h) $(defs_h) $(expression_h) $(frame_h) \ + $(gdbtypes_h) language.h parser-defs.h $(symtab_h) $(value_h) \ + gdb_string.h + +ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) gdb_string.h $(frame_h) \ + $(inferior_h) $(bfd_h) symfile.h target.h $(wait_h) $(gdbcmd_h) \ + objfiles.h gdb-stabs.h serial.h ocd.h + +ppcbug-rom.o: ppcbug-rom.c monitor.h $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h serial.h terminal.h + +printcmd.o: printcmd.c $(breakpoint_h) $(defs_h) $(expression_h) \ + $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) language.h objfiles.h \ + symfile.h $(symtab_h) target.h gdb_string.h + +procfs.o: procfs.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \ + target.h gdb_string.h + +pyr-tdep.o: pyr-tdep.c $(defs_h) + +pyr-xdep.o: pyr-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +gnu-regex.o: gnu-regex.c gnu-regex.h $(defs_h) gdb_string.h + +remote-adapt.o: remote-adapt.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) target.h terminal.h gdb_string.h + +remote-array.o: remote-array.c $(wait_h) $(defs_h) $(gdbcore_h) target.h \ + gdb_string.h $(command_h) serial.h monitor.h $(remote_utils_h) + +remote-rdi.o: remote-rdi.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) gdb_string.h + +rdi-share/libangsd.a: force + @dir=rdi-share; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + srcroot=`cd $(srcdir); pwd`; export srcroot; \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ + else \ + true; \ + fi + +remote-d10v.o: remote-d10v.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) $(remote_utils_h) symfile.h terminal.h gdb_string.h + +remote-rdp.o: remote-rdp.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) gdb_string.h + +remote-bug.o: remote-bug.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) target.h terminal.h $(remote_utils_h) gdb_string.h + +remote-e7000.o: remote-e7000.c $(defs_h) $(gdbcore_h) target.h \ + $(wait_h) serial.h gdb_string.h + +remote-eb.o: remote-eb.c $(wait_h) $(srcdir)/config/a29k/tm-a29k.h \ + $(defs_h) $(gdbcore_h) $(inferior_h) symfile.h target.h terminal.h \ + gdb_string.h + +remote-es.o: remote-es.c $(bfd_h) $(wait_h) $(command_h) $(defs_h) \ + $(inferior_h) $(remote_utils_h) terminal.h gdb_string.h + +remote-hms.o: remote-hms.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) serial.h target.h terminal.h gdb_string.h + +remote-mips.o: remote-mips.c $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(gdbcore_h) $(inferior_h) serial.h symfile.h target.h + +remote-mm.o: remote-mm.c $(bfd_h) $(wait_h) $(defs_h) $(inferior_h) \ + minimon.h target.h terminal.h gdb_string.h + +remote-nindy.o: remote-nindy.c $(floatformat_h) $(wait_h) $(command_h) \ + $(defs_h) $(gdbcore_h) $(inferior_h) \ + nindy-share/env.h nindy-share/stop.h $(remote_utils_h) \ + symfile.h + +remote-os9k.o: remote-os9k.c $(defs_h) $(gdbcore_h) $(wait_h) \ + $(command_h) monitor.h $(remote_utils_h) $(symtab_h) symfile.h \ + objfiles.h gdb-stabs.h gdb_string.h + +remote-sds.o: remote-sds.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) $(remote_utils_h) symfile.h terminal.h gdb_string.h + +remote-sim.o: remote-sim.c $(wait_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) target.h terminal.h gdb_string.h \ + $(INCLUDE_DIR)/callback.h + +remote-st.o: remote-st.c $(wait_h) $(defs_h) $(gdbcore_h) serial.h \ + target.h gdb_string.h + +remote-udi.o: remote-udi.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h terminal.h $(udiheaders) gdb_string.h + +remote-vx.o: remote-vx.c $(wait_h) complaints.h $(defs_h) $(gdbcmd_h) \ + $(gdbcore_h) $(inferior_h) target.h vx-share/dbgRpcLib.h \ + vx-share/ptrace.h vx-share/xdr_ld.h vx-share/xdr_ptrace.h \ + vx-share/xdr_rdb.h gdb-stabs.h objfiles.h symfile.h $(bfd_h) \ + gdb_string.h + +remote-vx29k.o: remote-vx29k.c $(wait_h) complaints.h $(defs_h) $(gdbcmd_h) \ + $(gdbcore_h) $(inferior_h) target.h vx-share/dbgRpcLib.h \ + vx-share/ptrace.h vx-share/xdr_ld.h vx-share/xdr_ptrace.h \ + vx-share/xdr_rdb.h gdb_string.h + +ocd.o: ocd.c ocd.h $(gdbcore_h) gdb_string.h $(frame_h) $(inferior_h) \ + $(bfd_h) symfile.h target.h $(wait_h) $(gdbcmd_h) objfiles.h \ + gdb-stabs.h $(dcache_h) serial.h + +remote-utils.o: remote-utils.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ + $(inferior_h) $(remote_utils_h) gdb_string.h + +remote.o: remote.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) $(remote_utils_h) symfile.h terminal.h gdb_string.h + +remote-nrom.o: remote-nrom.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) $(remote_utils_h) symfile.h terminal.h + +rom68k-rom.o: rom68k-rom.c monitor.h $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h serial.h terminal.h + +rs6000-nat.o: rs6000-nat.c $(bfd_h) $(defs_h) $(inferior_h) target.h \ + xcoffsolib.h + +rs6000-tdep.o: rs6000-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \ + target.h xcoffsolib.h + +scm-exp.o: $(defs_h) $(value_h) parser-defs.h language.h c-lang.h \ + scm-lang.h scm-tags.h + +scm-lang.o: $(defs_h) $(value_h) parser-defs.h language.h c-lang.h \ + scm-lang.h scm-tags.h gdb_string.h $(gdbcore_h) + +scm-valprint.o: $(defs_h) $(value_h) parser-defs.h language.h \ + scm-lang.h valprint.h $(gdbcore_h) + +ser-go32.o: ser-go32.c $(defs_h) serial.h + +ser-mac.o: ser-mac.c $(defs_h) serial.h signals.h + +ser-ocd.o: ser-ocd.c $(defs_h) serial.h signals.h gdb_string.h + +ser-tcp.o: ser-tcp.c $(defs_h) serial.h signals.h gdb_string.h + +ser-unix.o: ser-unix.c $(defs_h) serial.h + +serial.o: serial.c $(defs_h) serial.h gdb_string.h + +sh-tdep.o: sh-tdep.c $(bfd_h) $(dis-asm_h) \ + $(srcdir)/../opcodes/sh-opc.h $(defs_h) $(expression_h) $(frame_h) \ + $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) $(value_h) + +sh3-rom.o: sh3-rom.c monitor.h $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h serial.h terminal.h + +mon960-rom.o: mon960-rom.c monitor.h $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \ + $(inferior_h) target.h serial.h terminal.h + +solib.o: solib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \ + objfiles.h gnu-regex.h symfile.h target.h gdb_string.h + +source.o: source.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \ + $(gdbcore_h) language.h objfiles.h gnu-regex.h symfile.h $(symtab_h) \ + gdb_string.h + +sparc-nat.o: sparc-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(gdbcore_h) \ + target.h + +sparc-tdep.o: sparc-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \ + $(inferior_h) objfiles.h symfile.h target.h gdb_string.h + +sparcl-tdep.o: sparcl-tdep.c $(defs_h) $(gdbcore_h) target.h + +dsrec.o: dsrec.c $(defs_h) srec.h + +stabsread.o: stabsread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \ + $(INCLUDE_DIR)/aout/stab_gnu.h buildsym.h complaints.h $(defs_h) \ + $(gdbtypes_h) objfiles.h stabsread.h symfile.h $(symtab_h) \ + gdb_string.h + +stack.o: stack.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \ + language.h target.h gdb_string.h + +ax-general.o: ax-general.c $(ax_h) $(defs_h) +ax-gdb.o: ax-gdb.c $(defs_h) $(symtab_h) symfile.h $(gdbtypes_h) \ + $(value_h) $(expression_h) $(command_h) $(ax_h) $(gdbcmd_h) ax-gdb.h + +sun3-nat.o: sun3-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +sun386-nat.o: sun386-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) + +symfile.o: symfile.c $(breakpoint_h) complaints.h $(defs_h) \ + $(expression_h) $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) \ + language.h objfiles.h symfile.h $(symtab_h) target.h \ + gdb_string.h + +symm-tdep.o: symm-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +symm-nat.o: symm-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +symmisc.o: symmisc.c $(bfd_h) $(breakpoint_h) $(command_h) $(defs_h) \ + $(expression_h) $(gdbtypes_h) language.h objfiles.h symfile.h \ + $(symtab_h) gdb_string.h + +symtab.o: symtab.c call-cmds.h $(defs_h) $(expression_h) $(frame_h) \ + $(gdbcmd_h) $(gdbcore_h) $(gdbtypes_h) language.h objfiles.h \ + gnu-regex.h symfile.h $(symtab_h) target.h $(value_h) \ + gdb_string.h + +tahoe-tdep.o: tahoe-tdep.c $(OP_INCLUDE)/tahoe.h $(defs_h) \ + $(symtab_h) + +target.o: target.c $(bfd_h) $(defs_h) $(gdbcmd_h) $(inferior_h) \ + objfiles.h symfile.h target.h gdb_string.h + +thread.o: thread.c $(defs_h) gdbthread.h $(gdbcmd_h) + +top.o: top.c top.h $(bfd_h) $(getopt_h) $(readline_headers) call-cmds.h \ + $(defs_h) $(gdbcmd_h) $(inferior_h) language.h signals.h \ + $(remote_utils_h) gdb_string.h + +typeprint.o: typeprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \ + $(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) target.h \ + $(value_h) gdb_string.h + +ultra3-nat.o: ultra3-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) + +ultra3-xdep.o: ultra3-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +umax-xdep.o: umax-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h) + +utils.o: utils.c $(bfd_h) $(defs_h) $(expression_h) $(gdbcmd_h) \ + language.h signals.h target.h terminal.h $(readline_headers) \ + gdb_string.h + +valarith.o: valarith.c $(bfd_h) $(defs_h) $(expression_h) \ + $(gdbtypes_h) language.h $(symtab_h) target.h $(value_h) \ + gdb_string.h + +valops.o: valops.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h \ + gdb_string.h + +valprint.o: valprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \ + $(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) target.h \ + $(value_h) gdb_string.h valprint.h + +values.o: values.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \ + $(gdbcore_h) $(gdbtypes_h) $(symtab_h) target.h $(value_h) \ + gdb_string.h scm-lang.h + +vax-tdep.o: vax-tdep.c $(OP_INCLUDE)/vax.h $(defs_h) $(symtab_h) + +w65-tdep.o : w65-tdep.c $(gdbcore_h) + +win32-nat.o: win32-nat.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \ + gdb_string.h + +xdr_ld.o: vx-share/xdr_ld.c $(defs_h) vx-share/vxTypes.h \ + vx-share/vxWorks.h vx-share/xdr_ld.h + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/vx-share/xdr_ld.c + +xdr_ptrace.o: vx-share/xdr_ptrace.c $(defs_h) vx-share/vxTypes.h \ + vx-share/vxWorks.h vx-share/xdr_ptrace.h + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/vx-share/xdr_ptrace.c + +xdr_rdb.o: vx-share/xdr_rdb.c $(defs_h) vx-share/vxTypes.h \ + vx-share/vxWorks.h vx-share/xdr_rdb.h + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/vx-share/xdr_rdb.c + +xcoffread.o: xcoffread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \ + $(INCLUDE_DIR)/aout/stab_gnu.h $(INCLUDE_DIR)/coff/internal.h \ + $(INCLUDE_DIR)/coff/rs6000.h $(BFD_SRC)/libcoff.h buildsym.h \ + complaints.h $(defs_h) $(gdbtypes_h) objfiles.h stabsread.h symfile.h \ + $(symtab_h) partial-stab.h gdb_string.h + +xcoffsolib.o: xcoffsolib.c $(bfd_h) $(defs_h) xcoffsolib.h + +z8k-tdep.o: z8k-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h) $(frame_h) \ + $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) $(gdbcore_h) + +c-exp.tab.o: c-exp.tab.c c-lang.h $(defs_h) $(expression_h) \ + $(gdbtypes_h) language.h parser-defs.h $(symtab_h) $(value_h) \ + $(bfd_h) objfiles.h symfile.h + +jv-exp.tab.o: jv-exp.tab.c jv-lang.h $(defs_h) $(expression_h) \ + $(gdbtypes_h) language.h parser-defs.h $(symtab_h) $(value_h) \ + $(bfd_h) objfiles.h symfile.h + +f-exp.tab.o: f-exp.tab.c f-lang.h $(defs_h) $(expression_h) \ + language.h parser-defs.h $(value_h) $(bfd_h) objfiles.h symfile.h + +m2-exp.tab.o: m2-exp.tab.c $(defs_h) $(expression_h) $(gdbtypes_h) \ + language.h m2-lang.h parser-defs.h $(symtab_h) $(value_h) \ + $(bfd_h) objfiles.h symfile.h + +### end of the gdb Makefile.in. diff --git a/gdb/NEWS b/gdb/NEWS new file mode 100644 index 0000000000..e6aaba318a --- /dev/null +++ b/gdb/NEWS @@ -0,0 +1,1611 @@ + What has changed in GDB? + (Organized release by release) + +*** Changes in GDB-4.18: + +* New native configurations + +HP-UX 10.20 hppa*-*-hpux10.20 +HP-UX 11.x hppa*-*-hpux11.0* +M68K Linux m68*-*-linux* + +* New targets + +Fujitsu FR30 fr30-*-elf* +Intel StrongARM strongarm-*-* +Mitsubishi D30V d30v-*-* + +* OBSOLETE configurations + +Gould PowerNode, NP1 np1-*-*, pn-*-* + +Configurations that have been declared obsolete will be commented out, +but the code will be left in place. If there is no activity to revive +these configurations before the next release of GDB, the sources will +be permanently REMOVED. + +* ANSI/ISO C + +As a compatibility experiment, GDB's source files buildsym.h and +buildsym.c have been converted to pure standard C, no longer +containing any K&R compatibility code. We believe that all systems in +use today either come with a standard C compiler, or have a GCC port +available. If this is not true, please report the affected +configuration to bug-gdb@gnu.org immediately. See the README file for +information about getting a standard C compiler if you don't have one +already. + +* Readline 2.2 + +GDB now uses readline 2.2. + +* set extension-language + +You can now control the mapping between filename extensions and source +languages by using the `set extension-language' command. For instance, +you can ask GDB to treat .c files as C++ by saying + set extension-language .c c++ +The command `info extensions' lists all of the recognized extensions +and their associated languages. + +* Setting processor type for PowerPC and RS/6000 + +When GDB is configured for a powerpc*-*-* or an rs6000*-*-* target, +you can use the `set processor' command to specify what variant of the +PowerPC family you are debugging. The command + + set processor NAME + +sets the PowerPC/RS6000 variant to NAME. GDB knows about the +following PowerPC and RS6000 variants: + + ppc-uisa PowerPC UISA - a PPC processor as viewed by user-level code + rs6000 IBM RS6000 ("POWER") architecture, user-level view + 403 IBM PowerPC 403 + 403GC IBM PowerPC 403GC + 505 Motorola PowerPC 505 + 860 Motorola PowerPC 860 or 850 + 601 Motorola PowerPC 601 + 602 Motorola PowerPC 602 + 603 Motorola/IBM PowerPC 603 or 603e + 604 Motorola PowerPC 604 or 604e + 750 Motorola/IBM PowerPC 750 or 750 + +At the moment, this command just tells GDB what to name the +special-purpose processor registers. Since almost all the affected +registers are inaccessible to user-level programs, this command is +only useful for remote debugging in its present form. + +* HP-UX support + +Thanks to a major code donation from Hewlett-Packard, GDB now has much +more extensive support for HP-UX. Added features include shared +library support, kernel threads and hardware watchpoints for 11.00, +support for HP's ANSI C and C++ compilers, and a compatibility mode +for xdb and dbx commands. + +* Catchpoints + +HP's donation includes the new concept of catchpoints, which is a +generalization of the old catch command. On HP-UX, it is now possible +to catch exec, fork, and vfork, as well as library loading. + +This means that the existing catch command has changed; its first +argument now specifies the type of catch to be set up. See the +output of "help catch" for a list of catchpoint types. + +* Debugging across forks + +On HP-UX, you can choose which process to debug when a fork() happens +in the inferior. + +* TUI + +HP has donated a curses-based terminal user interface (TUI). To get +it, build with --enable-tui. Although this can be enabled for any +configuration, at present it only works for native HP debugging. + +* GDB remote protocol additions + +A new protocol packet 'X' that writes binary data is now available. +Default behavior is to try 'X', then drop back to 'M' if the stub +fails to respond. The settable variable `remotebinarydownload' +allows explicit control over the use of 'X'. + +For 64-bit targets, the memory packets ('M' and 'm') can now contain a +full 64-bit address. The command + + set remoteaddresssize 32 + +can be used to revert to the old behaviour. For existing remote stubs +the change should not be noticed, as the additional address information +will be discarded. + +In order to assist in debugging stubs, you may use the maintenance +command `packet' to send any text string to the stub. For instance, + + maint packet heythere + +sends the packet "$heythere#". Note that it is very easy to +disrupt a debugging session by sending the wrong packet at the wrong +time. + +The compare-sections command allows you to compare section data on the +target to what is in the executable file without uploading or +downloading, by comparing CRC checksums. + +* Tracing can collect general expressions + +You may now collect general expressions at tracepoints. This requires +further additions to the target-side stub; see tracepoint.c and +doc/agentexpr.texi for further details. + +* mask-address variable for Mips + +For Mips targets, you may control the zeroing of the upper 32 bits of +a 64-bit address by entering `set mask-address on'. This is mainly +of interest to users of embedded R4xxx and R5xxx processors. + +* Higher serial baud rates + +GDB's serial code now allows you to specify baud rates 57600, 115200, +230400, and 460800 baud. (Note that your host system may not be able +to achieve all of these rates.) + +* i960 simulator + +The i960 configuration now includes an initial implementation of a +builtin simulator, contributed by Jim Wilson. + + +*** Changes in GDB-4.17: + +* New native configurations + +Alpha GNU/Linux alpha*-*-linux* +Unixware 2.x i[3456]86-unixware2* +Irix 6.x mips*-sgi-irix6* +PowerPC GNU/Linux powerpc-*-linux* +PowerPC Solaris powerpcle-*-solaris* +Sparc GNU/Linux sparc-*-linux* +Motorola sysV68 R3V7.1 m68k-motorola-sysv + +* New targets + +Argonaut Risc Chip (ARC) arc-*-* +Hitachi H8/300S h8300*-*-* +Matsushita MN10200 w/simulator mn10200-*-* +Matsushita MN10300 w/simulator mn10300-*-* +MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf* +MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf* +MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf* +Mitsubishi D10V w/simulator d10v-*-* +Mitsubishi M32R/D w/simulator m32r-*-elf* +Tsqware Sparclet sparclet-*-* +NEC V850 w/simulator v850-*-* + +* New debugging protocols + +ARM with RDI protocol arm*-*-* +M68K with dBUG monitor m68*-*-{aout,coff,elf} +DDB and LSI variants of PMON protocol mips*-*-* +PowerPC with DINK32 monitor powerpc{,le}-*-eabi +PowerPC with SDS protocol powerpc{,le}-*-eabi +Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi + +* DWARF 2 + +All configurations can now understand and use the DWARF 2 debugging +format. The choice is automatic, if the symbol file contains DWARF 2 +information. + +* Java frontend + +GDB now includes basic Java language support. This support is +only useful with Java compilers that produce native machine code. + +* solib-absolute-prefix and solib-search-path + +For SunOS and SVR4 shared libraries, you may now set the prefix for +loading absolute shared library symbol files, and the search path for +locating non-absolute shared library symbol files. + +* Live range splitting + +GDB can now effectively debug code for which GCC has performed live +range splitting as part of its optimization. See gdb/doc/LRS for +more details on the expected format of the stabs information. + +* Hurd support + +GDB's support for the GNU Hurd, including thread debugging, has been +updated to work with current versions of the Hurd. + +* ARM Thumb support + +GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit +instruction set. ARM GDB automatically detects when Thumb +instructions are in use, and adjusts disassembly and backtracing +accordingly. + +* MIPS16 support + +GDB's MIPS target configurations now handle the MIP16 16-bit +instruction set. + +* Overlay support + +GDB now includes support for overlays; if an executable has been +linked such that multiple sections are based at the same address, GDB +will decide which section to use for symbolic info. You can choose to +control the decision manually, using overlay commands, or implement +additional target-side support and use "overlay load-target" to bring +in the overlay mapping. Do "help overlay" for more detail. + +* info symbol + +The command "info symbol
" displays information about +the symbol at the specified address. + +* Trace support + +The standard remote protocol now includes an extension that allows +asynchronous collection and display of trace data. This requires +extensive support in the target-side debugging stub. Tracing mode +includes a new interaction mode in GDB and new commands: see the +file tracepoint.c for more details. + +* MIPS simulator + +Configurations for embedded MIPS now include a simulator contributed +by Cygnus Solutions. The simulator supports the instruction sets +of most MIPS variants. + +* Sparc simulator + +Sparc configurations may now include the ERC32 simulator contributed +by the European Space Agency. The simulator is not built into +Sparc targets by default; configure with --enable-sim to include it. + +* set architecture + +For target configurations that may include multiple variants of a +basic architecture (such as MIPS and SH), you may now set the +architecture explicitly. "set arch" sets, "info arch" lists +the possible architectures. + +*** Changes in GDB-4.16: + +* New native configurations + +Windows 95, x86 Windows NT i[345]86-*-cygwin32 +M68K NetBSD m68k-*-netbsd* +PowerPC AIX 4.x powerpc-*-aix* +PowerPC MacOS powerpc-*-macos* +PowerPC Windows NT powerpcle-*-cygwin32 +RS/6000 AIX 4.x rs6000-*-aix4* + +* New targets + +ARM with RDP protocol arm-*-* +I960 with MON960 i960-*-coff +MIPS VxWorks mips*-*-vxworks* +MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf* +PowerPC with PPCBUG monitor powerpc{,le}-*-eabi* +Hitachi SH3 sh-*-* +Matra Sparclet sparclet-*-* + +* PowerPC simulator + +The powerpc-eabi configuration now includes the PSIM simulator, +contributed by Andrew Cagney, with assistance from Mike Meissner. +PSIM is a very elaborate model of the PowerPC, including not only +basic instruction set execution, but also details of execution unit +performance and I/O hardware. See sim/ppc/README for more details. + +* Solaris 2.5 + +GDB now works with Solaris 2.5. + +* Windows 95/NT native + +GDB will now work as a native debugger on Windows 95 and Windows NT. +To build it from source, you must use the "gnu-win32" environment, +which uses a DLL to emulate enough of Unix to run the GNU tools. +Further information, binaries, and sources are available at +ftp.cygnus.com, under pub/gnu-win32. + +* dont-repeat command + +If a user-defined command includes the command `dont-repeat', then the +command will not be repeated if the user just types return. This is +useful if the command is time-consuming to run, so that accidental +extra keystrokes don't run the same command many times. + +* Send break instead of ^C + +The standard remote protocol now includes an option to send a break +rather than a ^C to the target in order to interrupt it. By default, +GDB will send ^C; to send a break, set the variable `remotebreak' to 1. + +* Remote protocol timeout + +The standard remote protocol includes a new variable `remotetimeout' +that allows you to set the number of seconds before GDB gives up trying +to read from the target. The default value is 2. + +* Automatic tracking of dynamic object loading (HPUX and Solaris only) + +By default GDB will automatically keep track of objects as they are +loaded and unloaded by the dynamic linker. By using the command `set +stop-on-solib-events 1' you can arrange for GDB to stop the inferior +when shared library events occur, thus allowing you to set breakpoints +in shared libraries which are explicitly loaded by the inferior. + +Note this feature does not work on hpux8. On hpux9 you must link +/usr/lib/end.o into your program. This feature should work +automatically on hpux10. + +* Irix 5.x hardware watchpoint support + +Irix 5 configurations now support the use of hardware watchpoints. + +* Mips protocol "SYN garbage limit" + +When debugging a Mips target using the `target mips' protocol, you +may set the number of characters that GDB will ignore by setting +the `syn-garbage-limit'. A value of -1 means that GDB will ignore +every character. The default value is 1050. + +* Recording and replaying remote debug sessions + +If you set `remotelogfile' to the name of a file, gdb will write to it +a recording of a remote debug session. This recording may then be +replayed back to gdb using "gdbreplay". See gdbserver/README for +details. This is useful when you have a problem with GDB while doing +remote debugging; you can make a recording of the session and send it +to someone else, who can then recreate the problem. + +* Speedups for remote debugging + +GDB includes speedups for downloading and stepping MIPS systems using +the IDT monitor, fast downloads to the Hitachi SH E7000 emulator, +and more efficient S-record downloading. + +* Memory use reductions and statistics collection + +GDB now uses less memory and reports statistics about memory usage. +Try the `maint print statistics' command, for example. + +*** Changes in GDB-4.15: + +* Psymtabs for XCOFF + +The symbol reader for AIX GDB now uses partial symbol tables. This +can greatly improve startup time, especially for large executables. + +* Remote targets use caching + +Remote targets now use a data cache to speed up communication with the +remote side. The data cache could lead to incorrect results because +it doesn't know about volatile variables, thus making it impossible to +debug targets which use memory mapped I/O devices. `set remotecache +off' turns the the data cache off. + +* Remote targets may have threads + +The standard remote protocol now includes support for multiple threads +in the target system, using new protocol commands 'H' and 'T'. See +gdb/remote.c for details. + +* NetROM support + +If GDB is configured with `--enable-netrom', then it will include +support for the NetROM ROM emulator from XLNT Designs. The NetROM +acts as though it is a bank of ROM on the target board, but you can +write into it over the network. GDB's support consists only of +support for fast loading into the emulated ROM; to debug, you must use +another protocol, such as standard remote protocol. The usual +sequence is something like + + target nrom + load + target remote :1235 + +* Macintosh host + +GDB now includes support for the Apple Macintosh, as a host only. It +may be run as either an MPW tool or as a standalone application, and +it can debug through the serial port. All the usual GDB commands are +available, but to the target command, you must supply "serial" as the +device type instead of "/dev/ttyXX". See mpw-README in the main +directory for more information on how to build. The MPW configuration +scripts */mpw-config.in support only a few targets, and only the +mips-idt-ecoff target has been tested. + +* Autoconf + +GDB configuration now uses autoconf. This is not user-visible, +but does simplify configuration and building. + +* hpux10 + +GDB now supports hpux10. + +*** Changes in GDB-4.14: + +* New native configurations + +x86 FreeBSD i[345]86-*-freebsd +x86 NetBSD i[345]86-*-netbsd +NS32k NetBSD ns32k-*-netbsd +Sparc NetBSD sparc-*-netbsd + +* New targets + +A29K VxWorks a29k-*-vxworks +HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro* +CPU32 EST-300 emulator m68*-*-est* +PowerPC ELF powerpc-*-elf +WDC 65816 w65-*-* + +* Alpha OSF/1 support for procfs + +GDB now supports procfs under OSF/1-2.x and higher, which makes it +possible to attach to running processes. As the mounting of the /proc +filesystem is optional on the Alpha, GDB automatically determines +the availability of /proc during startup. This can lead to problems +if /proc is unmounted after GDB has been started. + +* Arguments to user-defined commands + +User commands may accept up to 10 arguments separated by whitespace. +Arguments are accessed within the user command via $arg0..$arg9. A +trivial example: +define adder + print $arg0 + $arg1 + $arg2 + +To execute the command use: +adder 1 2 3 + +Defines the command "adder" which prints the sum of its three arguments. +Note the arguments are text substitutions, so they may reference variables, +use complex expressions, or even perform inferior function calls. + +* New `if' and `while' commands + +This makes it possible to write more sophisticated user-defined +commands. Both commands take a single argument, which is the +expression to evaluate, and must be followed by the commands to +execute, one per line, if the expression is nonzero, the list being +terminated by the word `end'. The `if' command list may include an +`else' word, which causes the following commands to be executed only +if the expression is zero. + +* Fortran source language mode + +GDB now includes partial support for Fortran 77. It will recognize +Fortran programs and can evaluate a subset of Fortran expressions, but +variables and functions may not be handled correctly. GDB will work +with G77, but does not yet know much about symbols emitted by other +Fortran compilers. + +* Better HPUX support + +Most debugging facilities now work on dynamic executables for HPPAs +running hpux9 or later. You can attach to running dynamically linked +processes, but by default the dynamic libraries will be read-only, so +for instance you won't be able to put breakpoints in them. To change +that behavior do the following before running the program: + + adb -w a.out + __dld_flags?W 0x5 + control-d + +This will cause the libraries to be mapped private and read-write. +To revert to the normal behavior, do this: + + adb -w a.out + __dld_flags?W 0x4 + control-d + +You cannot set breakpoints or examine data in the library until after +the library is loaded if the function/data symbols do not have +external linkage. + +GDB can now also read debug symbols produced by the HP C compiler on +HPPAs (sorry, no C++, Fortran or 68k support). + +* Target byte order now dynamically selectable + +You can choose which byte order to use with a target system, via the +commands "set endian big" and "set endian little", and you can see the +current setting by using "show endian". You can also give the command +"set endian auto", in which case GDB will use the byte order +associated with the executable. Currently, only embedded MIPS +configurations support dynamic selection of target byte order. + +* New DOS host serial code + +This version uses DPMI interrupts to handle buffered I/O, so you +no longer need to run asynctsr when debugging boards connected to +a PC's serial port. + +*** Changes in GDB-4.13: + +* New "complete" command + +This lists all the possible completions for the rest of the line, if it +were to be given as a command itself. This is intended for use by emacs. + +* Trailing space optional in prompt + +"set prompt" no longer adds a space for you after the prompt you set. This +allows you to set a prompt which ends in a space or one that does not. + +* Breakpoint hit counts + +"info break" now displays a count of the number of times the breakpoint +has been hit. This is especially useful in conjunction with "ignore"; you +can ignore a large number of breakpoint hits, look at the breakpoint info +to see how many times the breakpoint was hit, then run again, ignoring one +less than that number, and this will get you quickly to the last hit of +that breakpoint. + +* Ability to stop printing at NULL character + +"set print null-stop" will cause GDB to stop printing the characters of +an array when the first NULL is encountered. This is useful when large +arrays actually contain only short strings. + +* Shared library breakpoints + +In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set +breakpoints in shared libraries before the executable is run. + +* Hardware watchpoints + +There is a new hardware breakpoint for the watch command for sparclite +targets. See gdb/sparclite/hw_breakpoint.note. + +Hardware watchpoints are also now supported under Linux. + +* Annotations + +Annotations have been added. These are for use with graphical interfaces, +and are still experimental. Currently only gdba.el uses these. + +* Improved Irix 5 support + +GDB now works properly with Irix 5.2. + +* Improved HPPA support + +GDB now works properly with the latest GCC and GAS. + +* New native configurations + +Sequent PTX4 i[34]86-sequent-ptx4 +HPPA running OSF/1 hppa*-*-osf* +Atari TT running SVR4 m68*-*-sysv4* +RS/6000 LynxOS rs6000-*-lynxos* + +* New targets + +OS/9000 i[34]86-*-os9k +MIPS R4000 mips64*{,el}-*-{ecoff,elf} +Sparc64 sparc64-*-* + +* Hitachi SH7000 and E7000-PC ICE support + +There is now support for communicating with the Hitachi E7000-PC ICE. +This is available automatically when GDB is configured for the SH. + +* Fixes + +As usual, a variety of small fixes and improvements, both generic +and configuration-specific. See the ChangeLog for more detail. + +*** Changes in GDB-4.12: + +* Irix 5 is now supported + +* HPPA support + +GDB-4.12 on the HPPA has a number of changes which make it unable +to debug the output from the currently released versions of GCC and +GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release +of GCC and GAS, versions of these tools designed to work with GDB-4.12 +can be retrieved via anonymous ftp from jaguar.cs.utah.edu:/dist. + + +*** Changes in GDB-4.11: + +* User visible changes: + +* Remote Debugging + +The "set remotedebug" option is now consistent between the mips remote +target, remote targets using the gdb-specific protocol, UDI (AMD's +debug protocol for the 29k) and the 88k bug monitor. It is now an +integer specifying a debug level (normally 0 or 1, but 2 means more +debugging info for the mips target). + +* DEC Alpha native support + +GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable +debug info, but GDB works fairly well with the DEC compiler and should +work with a future GCC release. See the README file for a few +Alpha-specific notes. + +* Preliminary thread implementation + +GDB now has preliminary thread support for both SGI/Irix and LynxOS. + +* LynxOS native and target support for 386 + +This release has been hosted on LynxOS 2.2, and also can be configured +to remotely debug programs running under LynxOS (see gdb/gdbserver/README +for details). + +* Improvements in C++ mangling/demangling. + +This release has much better g++ debugging, specifically in name +mangling/demangling, virtual function calls, print virtual table, +call methods, ...etc. + +*** Changes in GDB-4.10: + + * User visible changes: + +Remote debugging using the GDB-specific (`target remote') protocol now +supports the `load' command. This is only useful if you have some +other way of getting the stub to the target system, and you can put it +somewhere in memory where it won't get clobbered by the download. + +Filename completion now works. + +When run under emacs mode, the "info line" command now causes the +arrow to point to the line specified. Also, "info line" prints +addresses in symbolic form (as well as hex). + +All vxworks based targets now support a user settable option, called +vxworks-timeout. This option represents the number of seconds gdb +should wait for responses to rpc's. You might want to use this if +your vxworks target is, perhaps, a slow software simulator or happens +to be on the far side of a thin network line. + + * DEC alpha support + +This release contains support for using a DEC alpha as a GDB host for +cross debugging. Native alpha debugging is not supported yet. + + +*** Changes in GDB-4.9: + + * Testsuite + +This is the first GDB release which is accompanied by a matching testsuite. +The testsuite requires installation of dejagnu, which should be available +via ftp from most sites that carry GNU software. + + * C++ demangling + +'Cfront' style demangling has had its name changed to 'ARM' style, to +emphasize that it was written from the specifications in the C++ Annotated +Reference Manual, not necessarily to be compatible with AT&T cfront. Despite +disclaimers, it still generated too much confusion with users attempting to +use gdb with AT&T cfront. + + * Simulators + +GDB now uses a standard remote interface to a simulator library. +So far, the library contains simulators for the Zilog Z8001/2, the +Hitachi H8/300, H8/500 and Super-H. + + * New targets supported + +H8/300 simulator h8300-hitachi-hms or h8300hms +H8/500 simulator h8500-hitachi-hms or h8500hms +SH simulator sh-hitachi-hms or sh +Z8000 simulator z8k-zilog-none or z8ksim +IDT MIPS board over serial line mips-idt-ecoff + +Cross-debugging to GO32 targets is supported. It requires a custom +version of the i386-stub.c module which is integrated with the +GO32 memory extender. + + * New remote protocols + +MIPS remote debugging protocol. + + * New source languages supported + +This version includes preliminary support for Chill, a Pascal like language +used by telecommunications companies. Chill support is also being integrated +into the GNU compiler, but we don't know when it will be publically available. + + +*** Changes in GDB-4.8: + + * HP Precision Architecture supported + +GDB now supports HP PA-RISC machines running HPUX. A preliminary +version of this support was available as a set of patches from the +University of Utah. GDB does not support debugging of programs +compiled with the HP compiler, because HP will not document their file +format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS +(as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z). + +Many problems in the preliminary version have been fixed. + + * Faster and better demangling + +We have improved template demangling and fixed numerous bugs in the GNU style +demangler. It can now handle type modifiers such as `static' or `const'. Wide +character types (wchar_t) are now supported. Demangling of each symbol is now +only done once, and is cached when the symbol table for a file is read in. +This results in a small increase in memory usage for C programs, a moderate +increase in memory usage for C++ programs, and a fantastic speedup in +symbol lookups. + +`Cfront' style demangling still doesn't work with AT&T cfront. It was written +from the specifications in the Annotated Reference Manual, which AT&T's +compiler does not actually implement. + + * G++ multiple inheritance compiler problem + +In the 2.3.2 release of gcc/g++, how the compiler resolves multiple +inheritance lattices was reworked to properly discover ambiguities. We +recently found an example which causes this new algorithm to fail in a +very subtle way, producing bad debug information for those classes. +The file 'gcc.patch' (in this directory) can be applied to gcc to +circumvent the problem. A future GCC release will contain a complete +fix. + +The previous G++ debug info problem (mentioned below for the gdb-4.7 +release) is fixed in gcc version 2.3.2. + + * Improved configure script + +The `configure' script will now attempt to guess your system type if +you don't supply a host system type. The old scheme of supplying a +host system triplet is preferable over using this. All the magic is +done in the new `config.guess' script. Examine it for details. + +We have also brought our configure script much more in line with the FSF's +version. It now supports the --with-xxx options. In particular, +`--with-minimal-bfd' can be used to make the GDB binary image smaller. +The resulting GDB will not be able to read arbitrary object file formats -- +only the format ``expected'' to be used on the configured target system. +We hope to make this the default in a future release. + + * Documentation improvements + +There's new internal documentation on how to modify GDB, and how to +produce clean changes to the code. We implore people to read it +before submitting changes. + +The GDB manual uses new, sexy Texinfo conditionals, rather than arcane +M4 macros. The new texinfo.tex is provided in this release. Pre-built +`info' files are also provided. To build `info' files from scratch, +you will need the latest `makeinfo' release, which will be available in +a future texinfo-X.Y release. + +*NOTE* The new texinfo.tex can cause old versions of TeX to hang. +We're not sure exactly which versions have this problem, but it has +been seen in 3.0. We highly recommend upgrading to TeX version 3.141 +or better. If that isn't possible, there is a patch in +`texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work +around this problem. + + * New features + +GDB now supports array constants that can be used in expressions typed in by +the user. The syntax is `{element, element, ...}'. Ie: you can now type +`print {1, 2, 3}', and it will build up an array in memory malloc'd in +the target program. + +The new directory `gdb/sparclite' contains a program that demonstrates +how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor. + + * New native hosts supported + +HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux +386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4 + + * New targets supported + +AMD 29k family via UDI a29k-amd-udi or udi29k + + * New file formats supported + +BFD now supports reading HP/PA-RISC executables (SOM file format?), +HPUX core files, and SCO 3.2v2 core files. + + * Major bug fixes + +Attaching to processes now works again; thanks for the many bug reports. + +We have also stomped on a bunch of core dumps caused by +printf_filtered("%s") problems. + +We eliminated a copyright problem on the rpc and ptrace header files +for VxWorks, which was discovered at the last minute during the 4.7 +release. You should now be able to build a VxWorks GDB. + +You can now interrupt gdb while an attached process is running. This +will cause the attached process to stop, and give control back to GDB. + +We fixed problems caused by using too many file descriptors +for reading symbols from object files and libraries. This was +especially a problem for programs that used many (~100) shared +libraries. + +The `step' command now only enters a subroutine if there is line number +information for the subroutine. Otherwise it acts like the `next' +command. Previously, `step' would enter subroutines if there was +any debugging information about the routine. This avoids problems +when using `cc -g1' on MIPS machines. + + * Internal improvements + +GDB's internal interfaces have been improved to make it easier to support +debugging of multiple languages in the future. + +GDB now uses a common structure for symbol information internally. +Minimal symbols (derived from linkage symbols in object files), partial +symbols (from a quick scan of debug information), and full symbols +contain a common subset of information, making it easier to write +shared code that handles any of them. + + * New command line options + +We now accept --silent as an alias for --quiet. + + * Mmalloc licensing + +The memory-mapped-malloc library is now licensed under the GNU Library +General Public License. + +*** Changes in GDB-4.7: + + * Host/native/target split + +GDB has had some major internal surgery to untangle the support for +hosts and remote targets. Now, when you configure GDB for a remote +target, it will no longer load in all of the support for debugging +local programs on the host. When fully completed and tested, this will +ensure that arbitrary host/target combinations are possible. + +The primary conceptual shift is to separate the non-portable code in +GDB into three categories. Host specific code is required any time GDB +is compiled on that host, regardless of the target. Target specific +code relates to the peculiarities of the target, but can be compiled on +any host. Native specific code is everything else: it can only be +built when the host and target are the same system. Child process +handling and core file support are two common `native' examples. + +GDB's use of /proc for controlling Unix child processes is now cleaner. +It has been split out into a single module under the `target_ops' vector, +plus two native-dependent functions for each system that uses /proc. + + * New hosts supported + +HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd +386 CPUs running various BSD ports i386-unknown-bsd or 386bsd +386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco + + * New targets supported + +Fujitsu SPARClite sparclite-fujitsu-none or sparclite +68030 and CPU32 m68030-*-*, m68332-*-* + + * New native hosts supported + +386 CPUs running various BSD ports i386-unknown-bsd or 386bsd + (386bsd is not well tested yet) +386 CPUs running SCO Unix i386-unknown-scosysv322 or sco + + * New file formats supported + +BFD now supports COFF files for the Zilog Z8000 microprocessor. It +supports reading of `a.out.adobe' object files, which are an a.out +format extended with minimal information about multiple sections. + + * New commands + +`show copying' is the same as the old `info copying'. +`show warranty' is the same as `info warrantee'. +These were renamed for consistency. The old commands continue to work. + +`info handle' is a new alias for `info signals'. + +You can now define pre-command hooks, which attach arbitrary command +scripts to any command. The commands in the hook will be executed +prior to the user's command. You can also create a hook which will be +executed whenever the program stops. See gdb.texinfo. + + * C++ improvements + +We now deal with Cfront style name mangling, and can even extract type +info from mangled symbols. GDB can automatically figure out which +symbol mangling style your C++ compiler uses. + +Calling of methods and virtual functions has been improved as well. + + * Major bug fixes + +The crash that occured when debugging Sun Ansi-C compiled binaries is +fixed. This was due to mishandling of the extra N_SO stabs output +by the compiler. + +We also finally got Ultrix 4.2 running in house, and fixed core file +support, with help from a dozen people on the net. + +John M. Farrell discovered that the reason that single-stepping was so +slow on all of the Mips based platforms (primarily SGI and DEC) was +that we were trying to demangle and lookup a symbol used for internal +purposes on every instruction that was being stepped through. Changing +the name of that symbol so that it couldn't be mistaken for a C++ +mangled symbol sped things up a great deal. + +Rich Pixley sped up symbol lookups in general by getting much smarter +about when C++ symbol mangling is necessary. This should make symbol +completion (TAB on the command line) much faster. It's not as fast as +we'd like, but it's significantly faster than gdb-4.6. + + * AMD 29k support + +A new user controllable variable 'call_scratch_address' can +specify the location of a scratch area to be used when GDB +calls a function in the target. This is necessary because the +usual method of putting the scratch area on the stack does not work +in systems that have separate instruction and data spaces. + +We integrated changes to support the 29k UDI (Universal Debugger +Interface), but discovered at the last minute that we didn't have all +of the appropriate copyright paperwork. We are working with AMD to +resolve this, and hope to have it available soon. + + * Remote interfaces + +We have sped up the remote serial line protocol, especially for targets +with lots of registers. It now supports a new `expedited status' ('T') +message which can be used in place of the existing 'S' status message. +This allows the remote stub to send only the registers that GDB +needs to make a quick decision about single-stepping or conditional +breakpoints, eliminating the need to fetch the entire register set for +each instruction being stepped through. + +The GDB remote serial protocol now implements a write-through cache for +registers, only re-reading the registers if the target has run. + +There is also a new remote serial stub for SPARC processors. You can +find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the +Fujitsu SPARClite processor, but will run on any stand-alone SPARC +processor with a serial port. + + * Configuration + +Configure.in files have become much easier to read and modify. A new +`table driven' format makes it more obvious what configurations are +supported, and what files each one uses. + + * Library changes + +There is a new opcodes library which will eventually contain all of the +disassembly routines and opcode tables. At present, it only contains +Sparc and Z8000 routines. This will allow the assembler, debugger, and +disassembler (binutils/objdump) to share these routines. + +The libiberty library is now copylefted under the GNU Library General +Public License. This allows more liberal use, and was done so libg++ +can use it. This makes no difference to GDB, since the Library License +grants all the rights from the General Public License. + + * Documentation + +The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete +reference to the stabs symbol info used by the debugger. It is (as far +as we know) the only published document on this fascinating topic. We +encourage you to read it, compare it to the stabs information on your +system, and send improvements on the document in general (to +bug-gdb@prep.ai.mit.edu). + +And, of course, many bugs have been fixed. + + +*** Changes in GDB-4.6: + + * Better support for C++ function names + +GDB now accepts as input the "demangled form" of C++ overloaded function +names and member function names, and can do command completion on such names +(using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of +single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'. +Make use of command completion, it is your friend. + +GDB also now accepts a variety of C++ mangled symbol formats. They are +the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style. +You can tell GDB which format to use by doing a 'set demangle-style {gnu, +lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo' +for the list of formats. + + * G++ symbol mangling problem + +Recent versions of gcc have a bug in how they emit debugging information for +C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this +directory) can be applied to gcc to fix the problem. Alternatively, if you +can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The +usual symptom is difficulty with setting breakpoints on methods. GDB complains +about the method being non-existent. (We believe that version 2.2.2 of GCC has +this problem.) + + * New 'maintenance' command + +All of the commands related to hacking GDB internals have been moved out of +the main command set, and now live behind the 'maintenance' command. This +can also be abbreviated as 'mt'. The following changes were made: + + dump-me -> maintenance dump-me + info all-breakpoints -> maintenance info breakpoints + printmsyms -> maintenance print msyms + printobjfiles -> maintenance print objfiles + printpsyms -> maintenance print psymbols + printsyms -> maintenance print symbols + +The following commands are new: + + maintenance demangle Call internal GDB demangler routine to + demangle a C++ link name and prints the result. + maintenance print type Print a type chain for a given symbol + + * Change to .gdbinit file processing + +We now read the $HOME/.gdbinit file before processing the argv arguments +(e.g. reading symbol files or core files). This allows global parameters to +be set, which will apply during the symbol reading. The ./.gdbinit is still +read after argv processing. + + * New hosts supported + +Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2 + +Linux support i386-unknown-linux or linux + +We are also including code to support the HP/PA running BSD and HPUX. This +is almost guaranteed not to work, as we didn't have time to test or build it +for this release. We are including it so that the more adventurous (or +masochistic) of you can play with it. We also had major problems with the +fact that the compiler that we got from HP doesn't support the -g option. +It costs extra. + + * New targets supported + +Hitachi H8/300 h8300-hitachi-hms or h8300hms + + * More smarts about finding #include files + +GDB now remembers the compilation directory for all include files, and for +all files from which C is generated (like yacc and lex sources). This +greatly improves GDB's ability to find yacc/lex sources, and include files, +especially if you are debugging your program from a directory different from +the one that contains your sources. + +We also fixed a bug which caused difficulty with listing and setting +breakpoints in include files which contain C code. (In the past, you had to +try twice in order to list an include file that you hadn't looked at before.) + + * Interesting infernals change + +GDB now deals with arbitrary numbers of sections, where the symbols for each +section must be relocated relative to that section's landing place in the +target's address space. This work was needed to support ELF with embedded +stabs used by Solaris-2.0. + + * Bug fixes (of course!) + +There have been loads of fixes for the following things: + mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k, + i960, stabs, DOS(GO32), procfs, etc... + +See the ChangeLog for details. + +*** Changes in GDB-4.5: + + * New machines supported (host and target) + +IBM RS6000 running AIX rs6000-ibm-aix or rs6000 + +SGI Irix-4.x mips-sgi-irix4 or iris4 + + * New malloc package + +GDB now uses a new memory manager called mmalloc, based on gmalloc. +Mmalloc is capable of handling mutiple heaps of memory. It is also +capable of saving a heap to a file, and then mapping it back in later. +This can be used to greatly speedup the startup of GDB by using a +pre-parsed symbol table which lives in a mmalloc managed heap. For +more details, please read mmalloc/mmalloc.texi. + + * info proc + +The 'info proc' command (SVR4 only) has been enhanced quite a bit. See +'help info proc' for details. + + * MIPS ecoff symbol table format + +The code that reads MIPS symbol table format is now supported on all hosts. +Thanks to MIPS for releasing the sym.h and symconst.h files to make this +possible. + + * File name changes for MS-DOS + +Many files in the config directories have been renamed to make it easier to +support GDB on MS-DOSe systems (which have very restrictive file name +conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32 +environment) is close to working but has some remaining problems. Note +that debugging of DOS programs is not supported, due to limitations +in the ``operating system'', but it can be used to host cross-debugging. + + * Cross byte order fixes + +Many fixes have been made to support cross debugging of Sparc and MIPS +targets from hosts whose byte order differs. + + * New -mapped and -readnow options + +If memory-mapped files are available on your system through the 'mmap' +system call, you can use the -mapped option on the `file' or +`symbol-file' commands to cause GDB to write the symbols from your +program into a reusable file. If the program you are debugging is +called `/path/fred', the mapped symbol file will be `./fred.syms'. +Future GDB debugging sessions will notice the presence of this file, +and will quickly map in symbol information from it, rather than reading +the symbol table from the executable program. Using the '-mapped' +option in a GDB `file' or `symbol-file' command has the same effect as +starting GDB with the '-mapped' command-line option. + +You can cause GDB to read the entire symbol table immediately by using +the '-readnow' option with any of the commands that load symbol table +information (or on the GDB command line). This makes the command +slower, but makes future operations faster. + +The -mapped and -readnow options are typically combined in order to +build a `fred.syms' file that contains complete symbol information. +A simple GDB invocation to do nothing but build a `.syms' file for future +use is: + + gdb -batch -nx -mapped -readnow programname + +The `.syms' file is specific to the host machine on which GDB is run. +It holds an exact image of GDB's internal symbol table. It cannot be +shared across multiple host platforms. + + * longjmp() handling + +GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and +siglongjmp() without losing control. This feature has not yet been ported to +all systems. It currently works on many 386 platforms, all MIPS-based +platforms (SGI, DECstation, etc), and Sun3/4. + + * Solaris 2.0 + +Preliminary work has been put in to support the new Solaris OS from Sun. At +this time, it can control and debug processes, but it is not capable of +reading symbols. + + * Bug fixes + +As always, many many bug fixes. The major areas were with g++, and mipsread. +People using the MIPS-based platforms should experience fewer mysterious +crashes and trashed symbol tables. + +*** Changes in GDB-4.4: + + * New machines supported (host and target) + +SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco + (except core files) +BSD Reno on Vax vax-dec-bsd +Ultrix on Vax vax-dec-ultrix + + * New machines supported (target) + +AMD 29000 embedded, using EBMON a29k-none-none + + * C++ support + +GDB continues to improve its handling of C++. `References' work better. +The demangler has also been improved, and now deals with symbols mangled as +per the Annotated C++ Reference Guide. + +GDB also now handles `stabs' symbol information embedded in MIPS +`ecoff' symbol tables. Since the ecoff format was not easily +extensible to handle new languages such as C++, this appeared to be a +good way to put C++ debugging info into MIPS binaries. This option +will be supported in the GNU C compiler, version 2, when it is +released. + + * New features for SVR4 + +GDB now handles SVR4 shared libraries, in the same fashion as SunOS +shared libraries. Debugging dynamically linked programs should present +only minor differences from debugging statically linked programs. + +The `info proc' command will print out information about any process +on an SVR4 system (including the one you are debugging). At the moment, +it prints the address mappings of the process. + +If you bring up GDB on another SVR4 system, please send mail to +bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any). + + * Better dynamic linking support in SunOS + +Reading symbols from shared libraries which contain debugging symbols +now works properly. However, there remain issues such as automatic +skipping of `transfer vector' code during function calls, which +make it harder to debug code in a shared library, than to debug the +same code linked statically. + + * New Getopt + +GDB is now using the latest `getopt' routines from the FSF. This +version accepts the -- prefix for options with long names. GDB will +continue to accept the old forms (-option and +option) as well. +Various single letter abbreviations for options have been explicity +added to the option table so that they won't get overshadowed in the +future by other options that begin with the same letter. + + * Bugs fixed + +The `cleanup_undefined_types' bug that many of you noticed has been squashed. +Many assorted bugs have been handled. Many more remain to be handled. +See the various ChangeLog files (primarily in gdb and bfd) for details. + + +*** Changes in GDB-4.3: + + * New machines supported (host and target) + +Amiga 3000 running Amix m68k-cbm-svr4 or amix +NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000 +Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 + + * Almost SCO Unix support + +We had hoped to support: +SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco +(except for core file support), but we discovered very late in the release +that it has problems with process groups that render gdb unusable. Sorry +about that. I encourage people to fix it and post the fixes. + + * Preliminary ELF and DWARF support + +GDB can read ELF object files on System V Release 4, and can handle +debugging records for C, in DWARF format, in ELF files. This support +is preliminary. If you bring up GDB on another SVR4 system, please +send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were +reqired (if any). + + * New Readline + +GDB now uses the latest `readline' library. One user-visible change +is that two tabs will list possible command completions, which previously +required typing M-? (meta-question mark, or ESC ?). + + * Bugs fixed + +The `stepi' bug that many of you noticed has been squashed. +Many bugs in C++ have been handled. Many more remain to be handled. +See the various ChangeLog files (primarily in gdb and bfd) for details. + + * State of the MIPS world (in case you wondered): + +GDB can understand the symbol tables emitted by the compilers +supplied by most vendors of MIPS-based machines, including DEC. These +symbol tables are in a format that essentially nobody else uses. + +Some versions of gcc come with an assembler post-processor called +mips-tfile. This program is required if you want to do source-level +debugging of gcc-compiled programs. I believe FSF does not ship +mips-tfile with gcc version 1, but it will eventually come with gcc +version 2. + +Debugging of g++ output remains a problem. g++ version 1.xx does not +really support it at all. (If you're lucky, you should be able to get +line numbers and stack traces to work, but no parameters or local +variables.) With some work it should be possible to improve the +situation somewhat. + +When gcc version 2 is released, you will have somewhat better luck. +However, even then you will get confusing results for inheritance and +methods. + +We will eventually provide full debugging of g++ output on +DECstations. This will probably involve some kind of stabs-in-ecoff +encapulation, but the details have not been worked out yet. + + +*** Changes in GDB-4.2: + + * Improved configuration + +Only one copy of `configure' exists now, and it is not self-modifying. +Porting BFD is simpler. + + * Stepping improved + +The `step' and `next' commands now only stop at the first instruction +of a source line. This prevents the multiple stops that used to occur +in switch statements, for-loops, etc. `Step' continues to stop if a +function that has debugging information is called within the line. + + * Bug fixing + +Lots of small bugs fixed. More remain. + + * New host supported (not target) + +Intel 386 PC clone running Mach i386-none-mach + + +*** Changes in GDB-4.1: + + * Multiple source language support + +GDB now has internal scaffolding to handle several source languages. +It determines the type of each source file from its filename extension, +and will switch expression parsing and number formatting to match the +language of the function in the currently selected stack frame. +You can also specifically set the language to be used, with +`set language c' or `set language modula-2'. + + * GDB and Modula-2 + +GDB now has preliminary support for the GNU Modula-2 compiler, +currently under development at the State University of New York at +Buffalo. Development of both GDB and the GNU Modula-2 compiler will +continue through the fall of 1991 and into 1992. + +Other Modula-2 compilers are currently not supported, and attempting to +debug programs compiled with them will likely result in an error as the +symbol table is read. Feel free to work on it, though! + +There are hooks in GDB for strict type checking and range checking, +in the `Modula-2 philosophy', but they do not currently work. + + * set write on/off + +GDB can now write to executable and core files (e.g. patch +a variable's value). You must turn this switch on, specify +the file ("exec foo" or "core foo"), *then* modify it, e.g. +by assigning a new value to a variable. Modifications take +effect immediately. + + * Automatic SunOS shared library reading + +When you run your program, GDB automatically determines where its +shared libraries (if any) have been loaded, and reads their symbols. +The `share' command is no longer needed. This also works when +examining core files. + + * set listsize + +You can specify the number of lines that the `list' command shows. +The default is 10. + + * New machines supported (host and target) + +SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris +Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news +Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3 + + * New hosts supported (not targets) + +IBM RT/PC: romp-ibm-aix or rtpc + + * New targets supported (not hosts) + +AMD 29000 embedded with COFF a29k-none-coff +AMD 29000 embedded with a.out a29k-none-aout +Ultracomputer remote kernel debug a29k-nyu-kern + + * New remote interfaces + +AMD 29000 Adapt +AMD 29000 Minimon + + +*** Changes in GDB-4.0: + + * New Facilities + +Wide output is wrapped at good places to make the output more readable. + +Gdb now supports cross-debugging from a host machine of one type to a +target machine of another type. Communication with the target system +is over serial lines. The ``target'' command handles connecting to the +remote system; the ``load'' command will download a program into the +remote system. Serial stubs for the m68k and i386 are provided. Gdb +also supports debugging of realtime processes running under VxWorks, +using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger +stub on the target system. + +New CPUs supported include the AMD 29000 and Intel 960. + +GDB now reads object files and symbol tables via a ``binary file'' +library, which allows a single copy of GDB to debug programs of multiple +object file types such as a.out and coff. + +There is now a GDB reference card in "doc/refcard.tex". (Make targets +refcard.dvi and refcard.ps are available to format it). + + + * Control-Variable user interface simplified + +All variables that control the operation of the debugger can be set +by the ``set'' command, and displayed by the ``show'' command. + +For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>. +``Show prompt'' produces the response: +Gdb's prompt is new-gdb=>. + +What follows are the NEW set commands. The command ``help set'' will +print a complete list of old and new set commands. ``help set FOO'' +will give a longer description of the variable FOO. ``show'' will show +all of the variable descriptions and their current settings. + +confirm on/off: Enables warning questions for operations that are + hard to recover from, e.g. rerunning the program while + it is already running. Default is ON. + +editing on/off: Enables EMACS style command line editing + of input. Previous lines can be recalled with + control-P, the current line can be edited with control-B, + you can search for commands with control-R, etc. + Default is ON. + +history filename NAME: NAME is where the gdb command history + will be stored. The default is .gdb_history, + or the value of the environment variable + GDBHISTFILE. + +history size N: The size, in commands, of the command history. The + default is 256, or the value of the environment variable + HISTSIZE. + +history save on/off: If this value is set to ON, the history file will + be saved after exiting gdb. If set to OFF, the + file will not be saved. The default is OFF. + +history expansion on/off: If this value is set to ON, then csh-like + history expansion will be performed on + command line input. The default is OFF. + +radix N: Sets the default radix for input and output. It can be set + to 8, 10, or 16. Note that the argument to "radix" is interpreted + in the current radix, so "set radix 10" is always a no-op. + +height N: This integer value is the number of lines on a page. Default + is 24, the current `stty rows'' setting, or the ``li#'' + setting from the termcap entry matching the environment + variable TERM. + +width N: This integer value is the number of characters on a line. + Default is 80, the current `stty cols'' setting, or the ``co#'' + setting from the termcap entry matching the environment + variable TERM. + +Note: ``set screensize'' is obsolete. Use ``set height'' and +``set width'' instead. + +print address on/off: Print memory addresses in various command displays, + such as stack traces and structure values. Gdb looks + more ``symbolic'' if you turn this off; it looks more + ``machine level'' with it on. Default is ON. + +print array on/off: Prettyprint arrays. New convenient format! Default + is OFF. + +print demangle on/off: Print C++ symbols in "source" form if on, + "raw" form if off. + +print asm-demangle on/off: Same, for assembler level printouts + like instructions. + +print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF. + + + * Support for Epoch Environment. + +The epoch environment is a version of Emacs v18 with windowing. One +new command, ``inspect'', is identical to ``print'', except that if you +are running in the epoch environment, the value is printed in its own +window. + + + * Support for Shared Libraries + +GDB can now debug programs and core files that use SunOS shared libraries. +Symbols from a shared library cannot be referenced +before the shared library has been linked with the program (this +happens after you type ``run'' and before the function main() is entered). +At any time after this linking (including when examining core files +from dynamically linked programs), gdb reads the symbols from each +shared library when you type the ``sharedlibrary'' command. +It can be abbreviated ``share''. + +sharedlibrary REGEXP: Load shared object library symbols for files + matching a unix regular expression. No argument + indicates to load symbols for all shared libraries. + +info sharedlibrary: Status of loaded shared libraries. + + + * Watchpoints + +A watchpoint stops execution of a program whenever the value of an +expression changes. Checking for this slows down execution +tremendously whenever you are in the scope of the expression, but is +quite useful for catching tough ``bit-spreader'' or pointer misuse +problems. Some machines such as the 386 have hardware for doing this +more quickly, and future versions of gdb will use this hardware. + +watch EXP: Set a watchpoint (breakpoint) for an expression. + +info watchpoints: Information about your watchpoints. + +delete N: Deletes watchpoint number N (same as breakpoints). +disable N: Temporarily turns off watchpoint number N (same as breakpoints). +enable N: Re-enables watchpoint number N (same as breakpoints). + + + * C++ multiple inheritance + +When used with a GCC version 2 compiler, GDB supports multiple inheritance +for C++ programs. + + * C++ exception handling + +Gdb now supports limited C++ exception handling. Besides the existing +ability to breakpoint on an exception handler, gdb can breakpoint on +the raising of an exception (before the stack is peeled back to the +handler's context). + +catch FOO: If there is a FOO exception handler in the dynamic scope, + set a breakpoint to catch exceptions which may be raised there. + Multiple exceptions (``catch foo bar baz'') may be caught. + +info catch: Lists all exceptions which may be caught in the + current stack frame. + + + * Minor command changes + +The command ``call func (arg, arg, ...)'' now acts like the print +command, except it does not print or save a value if the function's result +is void. This is similar to dbx usage. + +The ``up'' and ``down'' commands now always print the frame they end up +at; ``up-silently'' and `down-silently'' can be used in scripts to change +frames without printing. + + * New directory command + +'dir' now adds directories to the FRONT of the source search path. +The path starts off empty. Source files that contain debug information +about the directory in which they were compiled can be found even +with an empty path; Sun CC and GCC include this information. If GDB can't +find your source file in the current directory, type "dir .". + + * Configuring GDB for compilation + +For normal use, type ``./configure host''. See README or gdb.texinfo +for more details. + +GDB now handles cross debugging. If you are remotely debugging between +two different machines, type ``./configure host -target=targ''. +Host is the machine where GDB will run; targ is the machine +where the program that you are debugging will run. diff --git a/gdb/README b/gdb/README new file mode 100644 index 0000000000..fd791ced52 --- /dev/null +++ b/gdb/README @@ -0,0 +1,618 @@ + README for gdb-4.18 release + Updated 4 Apr 1999 by Jim Blandy + +This is GDB, the GNU source-level debugger. +A summary of new features is in the file `NEWS'. + +See the GDB home page at http://www.cygnus.com/gdb/ for up to date +release information, mailing list links and archives, etc. + + +Unpacking and Installation -- quick overview +========================== + +In this release, the GDB debugger sources, the generic GNU include +files, the BFD ("binary file description") library, the readline +library, and other libraries all have directories of their own +underneath the gdb-4.18 directory. The idea is that a variety of GNU +tools can share a common copy of these things. Be aware of variation +over time--for example don't try to build gdb with a copy of bfd from +a release other than the gdb release (such as a binutils or gas +release), especially if the releases are more than a few weeks apart. +Configuration scripts and makefiles exist to cruise up and down this +directory tree and automatically build all the pieces in the right +order. + +When you unpack the gdb-4.18.tar.gz file, you'll find a directory +called `gdb-4.18', which contains: + + COPYING config.sub* libiberty/ opcodes/ + COPYING.LIB configure* mmalloc/ readline/ + Makefile.in configure.in move-if-change* sim/ + README etc/ mpw-README texinfo/ + bfd/ gdb/ mpw-build.in utils/ + config/ include/ mpw-config.in + config.guess* install.sh* mpw-configure + +To build GDB, you can just do: + + cd gdb-4.18 + ./configure + make + cp gdb/gdb /usr/local/bin/gdb (or wherever you want) + +This will configure and build all the libraries as well as GDB. +If `configure' can't determine your system type, specify one as its +argument, e.g., sun4 or decstation. + +If you get compiler warnings during this stage, see the `Reporting Bugs' +section below; there are a few known problems. + +GDB requires an ANSI C compiler. If you do not have an ANSI C +compiler for your system, you may be able to download and install the +GNU CC compiler. It is available via anonymous FTP from ftp.gnu.org, +in /pub/gnu/gcc (as a URL, that's ftp://ftp.gnu.org/pub/gnu/gcc). + +GDB can be used as a cross-debugger, running on a machine of one type +while debugging a program running on a machine of another type. See below. + + +More Documentation +****************** + + All the documentation for GDB comes as part of the machine-readable +distribution. The documentation is written in Texinfo format, which is +a documentation system that uses a single source file to produce both +on-line information and a printed manual. You can use one of the Info +formatting commands to create the on-line version of the documentation +and TeX (or `texi2roff') to typeset the printed version. + + GDB includes an already formatted copy of the on-line Info version of +this manual in the `gdb/doc' subdirectory. The main Info file is +`gdb-4.18/gdb/doc/gdb.info', and it refers to subordinate files matching +`gdb.info*' in the same directory. If necessary, you can print out +these files, or read them with any editor; but they are easier to read +using the `info' subsystem in GNU Emacs or the standalone `info' program, +available as part of the GNU Texinfo distribution. + + If you want to format these Info files yourself, you need one of the +Info formatting programs, such as `texinfo-format-buffer' or +`makeinfo'. + + If you have `makeinfo' installed, and are in the top level GDB +source directory (`gdb-4.18', in the case of version 4.18), you can make +the Info file by typing: + + cd gdb/doc + make info + + If you want to typeset and print copies of this manual, you need +TeX, a program to print its DVI output files, and `texinfo.tex', the +Texinfo definitions file. This file is included in the GDB +distribution, in the directory `gdb-4.18/texinfo'. + + TeX is a typesetting program; it does not print files directly, but +produces output files called DVI files. To print a typeset document, +you need a program to print DVI files. If your system has TeX +installed, chances are it has such a program. The precise command to +use depends on your system; `lpr -d' is common; another (for PostScript +devices) is `dvips'. The DVI print command may require a file name +without any extension or a `.dvi' extension. + + TeX also requires a macro definitions file called `texinfo.tex'. +This file tells TeX how to typeset a document written in Texinfo +format. On its own, TeX cannot read, much less typeset a Texinfo file. + `texinfo.tex' is distributed with GDB and is located in the +`gdb-4.18/texinfo' directory. + + If you have TeX and a DVI printer program installed, you can typeset +and print this manual. First switch to the the `gdb' subdirectory of +the main source directory (for example, to `gdb-4.18/gdb') and then type: + + make gdb.dvi + + +Installing GDB +************** + + GDB comes with a `configure' script that automates the process of +preparing GDB for installation; you can then use `make' to build the +`gdb' program. + + The GDB distribution includes all the source code you need for GDB in +a single directory, whose name is usually composed by appending the +version number to `gdb'. + + For example, the GDB version 4.18 distribution is in the `gdb-4.18' +directory. That directory contains: + +`gdb-4.18/{COPYING,COPYING.LIB}' + Standard GNU license files. Please read them. + +`gdb-4.18/bfd' + source for the Binary File Descriptor library + +`gdb-4.18/config*' + script for configuring GDB, along with other support files + +`gdb-4.18/gdb' + the source specific to GDB itself + +`gdb-4.18/include' + GNU include files + +`gdb-4.18/libiberty' + source for the `-liberty' free software library + +`gdb-4.18/mmalloc' + source for the GNU memory-mapped malloc package + +`gdb-4.18/opcodes' + source for the library of opcode tables and disassemblers + +`gdb-4.18/readline' + source for the GNU command-line interface + +`gdb-4.18/sim' + source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc) + +`gdb-4.18/intl' + source for the GNU gettext library, for internationalization. + This is slightly modified from the standalone gettext + distribution you can get from GNU. + +`gdb-4.18/texinfo' + The `texinfo.tex' file, which you need in order to make a printed + manual using TeX. + +`gdb-4.18/etc' + Coding standards, useful files for editing GDB, and other + miscellanea. + +`gdb-4.18/utils' + A grab bag of random utilities. + + + The simplest way to configure and build GDB is to run `configure' +from the `gdb-VERSION-NUMBER' source directory, which in this example +is the `gdb-4.18' directory. + + First switch to the `gdb-VERSION-NUMBER' source directory if you are +not already in it; then run `configure'. + + For example: + + cd gdb-4.18 + ./configure + make + + Running `configure' followed by `make' builds the `bfd', +`readline', `mmalloc', and `libiberty' libraries, then `gdb' itself. +The configured source files, and the binaries, are left in the +corresponding source directories. + + `configure' is a Bourne-shell (`/bin/sh') script; if your system +does not recognize this automatically when you run a different shell, +you may need to run `sh' on it explicitly: + + sh configure + + If you run `configure' from a directory that contains source +directories for multiple libraries or programs, such as the `gdb-4.18' +source directory for version 4.18, `configure' creates configuration +files for every directory level underneath (unless you tell it not to, +with the `--norecursion' option). + + You can run the `configure' script from any of the subordinate +directories in the GDB distribution, if you only want to configure that +subdirectory; but be sure to specify a path to it. + + For example, with version 4.18, type the following to configure only +the `bfd' subdirectory: + + cd gdb-4.18/bfd + ../configure + + You can install `gdb' anywhere; it has no hardwired paths. However, +you should make sure that the shell on your path (named by the `SHELL' +environment variable) is publicly readable. Remember that GDB uses the +shell to start your program--some systems refuse to let GDB debug child +processes whose programs are not readable. + + +Compiling GDB in another directory +================================== + + If you want to run GDB versions for several host or target machines, +you need a different `gdb' compiled for each combination of host and +target. `configure' is designed to make this easy by allowing you to +generate each configuration in a separate subdirectory, rather than in +the source directory. If your `make' program handles the `VPATH' +feature correctly (GNU `make' and SunOS 'make' are two that should), +running `make' in each of these directories builds the `gdb' program +specified there. + + To build `gdb' in a separate directory, run `configure' with the +`--srcdir' option to specify where to find the source. (You also need +to specify a path to find `configure' itself from your working +directory. If the path to `configure' would be the same as the +argument to `--srcdir', you can leave out the `--srcdir' option; it +will be assumed.) + + For example, with version 4.18, you can build GDB in a separate +directory for a Sun 4 like this: + + cd gdb-4.18 + mkdir ../gdb-sun4 + cd ../gdb-sun4 + ../gdb-4.18/configure sun4 + make + + When `configure' builds a configuration using a remote source +directory, it creates a tree for the binaries with the same structure +(and using the same names) as the tree under the source directory. In +the example, you'd find the Sun 4 library `libiberty.a' in the +directory `gdb-sun4/libiberty', and GDB itself in `gdb-sun4/gdb'. + + One popular reason to build several GDB configurations in separate +directories is to configure GDB for cross-compiling (where GDB runs on +one machine--the host--while debugging programs that run on another +machine--the target). You specify a cross-debugging target by giving +the `--target=TARGET' option to `configure'. + + When you run `make' to build a program or library, you must run it +in a configured directory--whatever directory you were in when you +called `configure' (or one of its subdirectories). + + The `Makefile' that `configure' generates in each source directory +also runs recursively. If you type `make' in a source directory such +as `gdb-4.18' (or in a separate configured directory configured with +`--srcdir=PATH/gdb-4.18'), you will build all the required libraries, +and then build GDB. + + When you have multiple hosts or targets configured in separate +directories, you can run `make' on them in parallel (for example, if +they are NFS-mounted on each of the hosts); they will not interfere +with each other. + + +Specifying names for hosts and targets +====================================== + + The specifications used for hosts and targets in the `configure' +script are based on a three-part naming scheme, but some short +predefined aliases are also supported. The full naming scheme encodes +three pieces of information in the following pattern: + + ARCHITECTURE-VENDOR-OS + + For example, you can use the alias `sun4' as a HOST argument or in a +`--target=TARGET' option. The equivalent full name is +`sparc-sun-sunos4'. + + The `configure' script accompanying GDB does not provide any query +facility to list all supported host and target names or aliases. +`configure' calls the Bourne shell script `config.sub' to map +abbreviations to full names; you can read the script, if you wish, or +you can use it to test your guesses on abbreviations--for example: + + % sh config.sub sun4 + sparc-sun-sunos4.1.1 + % sh config.sub sun3 + m68k-sun-sunos4.1.1 + % sh config.sub decstation + mips-dec-ultrix4.2 + % sh config.sub hp300bsd + m68k-hp-bsd + % sh config.sub i386v + i386-pc-sysv + % sh config.sub i786v + Invalid configuration `i786v': machine `i786v' not recognized + +`config.sub' is also distributed in the GDB source directory +(`gdb-4.18', for version 4.18). + + +`configure' options +=================== + + Here is a summary of the `configure' options and arguments that are +most often useful for building GDB. `configure' also has several other +options not listed here. *note : (configure.info)What Configure Does, +for a full explanation of `configure'. + + configure [--help] + [--prefix=DIR] + [--srcdir=PATH] + [--norecursion] [--rm] + [--enable-build-warnings] + [--target=TARGET] + [--host=HOST] + [HOST] + +You may introduce options with a single `-' rather than `--' if you +prefer; but you may abbreviate option names if you use `--'. + +`--help' + Display a quick summary of how to invoke `configure'. + +`-prefix=DIR' + Configure the source to install programs and files under directory + `DIR'. + +`--srcdir=PATH' + *Warning: using this option requires GNU `make', or another `make' + that compatibly implements the `VPATH' feature.* + Use this option to make configurations in directories separate + from the GDB source directories. Among other things, you can use + this to build (or maintain) several configurations simultaneously, + in separate directories. `configure' writes configuration + specific files in the current directory, but arranges for them to + use the source in the directory PATH. `configure' will create + directories under the working directory in parallel to the source + directories below PATH. + +`--norecursion' + Configure only the directory level where `configure' is executed; + do not propagate configuration to subdirectories. + +`--rm' + Remove the configuration that the other arguments specify. + +`--enable-build-warnings' + When building the GDB sources, ask the compiler to warn about any + code which looks even vaguely suspicious. You should only using + this feature if you're compiling with GNU CC. It passes the + following flags: + -Wall + -Wpointer-arith + -Wstrict-prototypes + -Wmissing-prototypes + -Wmissing-declarations + +`--target=TARGET' + Configure GDB for cross-debugging programs running on the specified + TARGET. Without this option, GDB is configured to debug programs + that run on the same machine (HOST) as GDB itself. + + There is no convenient way to generate a list of all available + targets. + +`--host=HOST' + Configure GDB to run on the specified HOST. + + There is no convenient way to generate a list of all available + hosts. + +`HOST ...' + Same as `--host=HOST'. If you omit this, GDB will guess; it's + quite accurate. + +`configure' accepts other options, for compatibility with configuring +other GNU tools recursively; but these are the only options that affect +GDB or its supporting libraries. + + +Languages other than C +======================= + +See the GDB manual (gdb/doc/gdb.texinfo) for information on this. + + +Kernel debugging +================= + +I have't done this myself so I can't really offer any advice. +Remote debugging over serial lines works fine, but the kernel debugging +code in here has not been tested in years. Van Jacobson has +better kernel debugging, but the UC lawyers won't let FSF have it. + + +Remote debugging +================= + +The files m68k-stub.c, i386-stub.c, and sparc-stub.c are examples of +remote stubs to be used with remote.c. They are designed to run +standalone on an m68k, i386, or SPARC cpu and communicate properly with +the remote.c stub over a serial line. + +The directory gdb/gdbserver/ contains `gdbserver', a program that +allows remote debugging for Unix applications. gdbserver is only +supported for some native configurations, including Sun 3, Sun 4, +and Linux. + +There are a number of remote interfaces for talking to existing ROM +monitors and other hardware: + + remote-adapt.c AMD 29000 "Adapt" + remote-array.c Array Tech RAID controller + remote-bug.c Motorola BUG monitor + remote-d10v.c GDB protocol, talking to a d10v chip + remote-e7000.c Hitachi E7000 ICE + remote-eb.c AMD 29000 "EBMON" + remote-es.c Ericsson 1800 monitor + remote-est.c EST emulator + remote-hms.c Hitachi Micro Systems H8/300 monitor + remote-mips.c MIPS remote debugging protocol + remote-mm.c AMD 29000 "minimon" + remote-nindy.c Intel 960 "Nindy" + remote-nrom.c NetROM ROM emulator + remote-os9k.c PC running OS/9000 + remote-rdi.c ARM with Angel monitor + remote-rdp.c ARM with Demon monitor + remote-sds.c PowerPC SDS monitor + remote-sim.c Generalized simulator protocol + remote-st.c Tandem ST-2000 monitor + remote-udi.c AMD 29000 using the AMD "Universal Debug Interface" + remote-vx.c VxWorks realtime kernel + +Remote-vx.c and the vx-share subdirectory contain a remote interface for the +VxWorks realtime kernel, which communicates over TCP using the Sun +RPC library. This would be a useful starting point for other remote- +via-ethernet back ends. + +Remote-udi.c and the 29k-share subdirectory contain a remote interface +for AMD 29000 programs, which uses the AMD "Universal Debug Interface". +This allows GDB to talk to software simulators, emulators, and/or bare +hardware boards, via network or serial interfaces. Note that GDB only +provides an interface that speaks UDI, not a complete solution. You +will need something on the other end that also speaks UDI. + + +Reporting Bugs +=============== + +The correct address for reporting bugs found in gdb is +"bug-gdb@gnu.org". Please email all bugs, and all requests for +help with GDB, to that address. Please include the GDB version number +(e.g., gdb-4.18), and how you configured it (e.g., "sun4" or "mach386 +host, i586-intel-synopsys target"). Since GDB now supports so many +different configurations, it is important that you be precise about this. +If at all possible, you should include the actual banner that GDB prints +when it starts up, or failing that, the actual configure command that +you used when configuring GDB. + +For more information on how/whether to report bugs, see the GDB Bugs +section of the GDB manual (gdb/doc/gdb.texinfo). + +Known bugs: + + * Under Ultrix 4.2 (DECstation-3100) or Alphas under OSF/1, we have + seen problems with backtraces after interrupting the inferior out + of a read(). The problem is caused by ptrace() returning an + incorrect value for the frame pointer register (register 15 or + 30). As far as we can tell, this is a kernel problem. Any help + with this would be greatly appreciated. + + * Under Ultrix 4.4 (DECstation-3100), setting the TERMCAP environment + variable to a string without a trailing ':' can cause GDB to dump + core upon startup. Although the core file makes it look as though + GDB code failed, the crash actually occurs within a call to the + termcap library function tgetent(). The problem can be solved by + using the GNU Termcap library. + + Alphas running OSF/1 (versions 1.0 through 2.1) have the same buggy + termcap code, but GDB behaves strangely rather than crashing. + + * On DECstations there are warnings about shift counts out of range in + various BFD modules. None of them is a cause for alarm, they are actually + a result of bugs in the DECstation compiler. + + * Notes for the DEC Alpha using OSF/1: + The debugging output of native cc has two known problems; we view these + as compiler bugs. + The linker miscompacts symbol tables, which causes gdb to confuse the + type of variables or results in `struct ' type outputs. + dbx has the same problems with those executables. A workaround is to + specify -Wl,-b when linking, but that will increase the executable size + considerably. + If a structure has incomplete type in one file (e.g., "struct foo *" + without a definition for "struct foo"), gdb will be unable to find the + structure definition from another file. + It has been reported that the Ultrix 4.3A compiler on decstations has the + same problems. + + * Notes for Solaris 2.x, using the SPARCworks cc compiler: + You have to compile your program with the -xs option of the SPARCworks + compiler to be able to debug your program with gdb. + Under Solaris 2.3 you also need patch 101409-03 (Jumbo linker patch). + Under Solaris 2.2, if you have patch 101052 installed, make sure + that it is at least at revision 101052-06. + + * Under Irix 5 for SGIs, you must have installed the `compiler_dev.hdr' + subsystem that is on the IDO CD, otherwise you will get complaints + that certain files such as `/usr/include/syms.h' cannot be found. + + * Notes for BSD/386: + To compile gdb-4.18 on BSD/386, you must run the configure script and + its subscripts with bash. Here is an easy way to do this: + + bash -c 'CONFIG_SHELL=/bin/bash ./configure' + + (configure will report i386-unknown-bsd). Then, compile with the + standard "make" command. + +GDB can produce warnings about symbols that it does not understand. By +default, these warnings are disabled. You can enable them by executing +`set complaint 10' (which you can put in your ~/.gdbinit if you like). +I recommend doing this if you are working on a compiler, assembler, +linker, or GDB, since it will point out problems that you may be able +to fix. Warnings produced during symbol reading indicate some mismatch +between the object file and GDB's symbol reading code. In many cases, +it's a mismatch between the specs for the object file format, and what +the compiler actually outputs or the debugger actually understands. + + +X Windows versus GDB +===================== + +You should check out DDD, the Data Display Debugger. Here's the blurb +from the DDD web site, http://www.cs.tu-bs.de/softech/ddd: + + The Data Display Debugger (DDD) is a popular graphical user + interface for command-line debuggers such as GDB, DBX, JDB, WDB, + XDB, the Perl debugger, and the Python debugger. Besides ``usual'' + front-end features such as viewing source texts, DDD has become + famous through its interactive graphical data display, where data + structures are displayed as graphs. A simple mouse click + dereferences pointers or views structure contents, updated each + time the program stops. Using DDD, you can reason about your + application by watching its data, not just by viewing it execute + lines of source code. + +Emacs users will very likely enjoy the Grand Unified Debugger mode; +try typing `M-x gdb RET'. + +Those interested in experimenting with a new kind of gdb-mode +should load gdb/gdba.el into GNU Emacs 19.25 or later. Comments +on this mode are also welcome. + + +Writing Code for GDB +===================== + +There is a lot of information about writing code for GDB in the +internals manual, distributed with GDB in gdb/doc/gdbint.texinfo. You +can read it by hand, print it by using TeX and texinfo, or process it +into an `info' file for use with Emacs' info mode or the standalone +`info' program. + +If you are pondering writing anything but a short patch, especially +take note of the information about copyrights in the node Submitting +Patches. It can take quite a while to get all the paperwork done, so +we encourage you to start that process as soon as you decide you are +planning to work on something, or at least well ahead of when you +think you will be ready to submit the patches. + + +GDB Testsuite +============= + +There is a DejaGNU based testsuite available for testing your newly +built GDB, or for regression testing GDBs with local modifications. + +Running the testsuite requires the prior installation of DejaGNU, +which is generally available via ftp; you'll need a pretty recent +release. Once DejaGNU is installed, you can run the tests in one of +two ways: + + (1) cd gdb-4.18/gdb (assuming you also unpacked gdb) + make check + +or + + (2) cd gdb-4.18/gdb/testsuite + make site.exp (builds the site specific file) + runtest -tool gdb GDB=../gdb (or GDB= as appropriate) + +The second method gives you slightly more control in case of problems with +building one or more test executables or if you are using the testsuite +'standalone', without it being part of the GDB source tree. + +See the DejaGNU documentation for further details. + + +(this is for editing this file with GNU emacs) +Local Variables: +mode: text +End: diff --git a/gdb/TODO b/gdb/TODO new file mode 100644 index 0000000000..fcbcd16bea --- /dev/null +++ b/gdb/TODO @@ -0,0 +1,471 @@ +If you find inaccuracies in this list, please send mail to +bug-gdb@prep.ai.mit.edu. If you would like to work on any of these, +you should consider sending mail to the same address, to find out +whether anyone else is working on it. + +General To Do List +------------------ + +This list is probably not up to date, and opinions vary about the +importance or even desirability of some of the items. + +Add an "info bfd" command that displays supported object formats, +similarly to objdump -i. + +START_INFERIOR_TRAPS_EXPECTED need never be defined to 2, since that +is its default value. Clean this up. + +It should be possible to use symbols from shared libraries before we know +exactly where the libraries will be loaded. E.g. "b perror" before running +the program. This could maybe be done as an extension of the "breakpoint +re-evaluation" after new symbols are loaded. + +Make single_step() insert and remove breakpoints in one operation. + +Speed up single stepping by avoiding extraneous ptrace calls. + +Speed up single stepping by not inserting and removing breakpoints +each time the inferior starts and stops. + +Breakpoints should not be inserted and deleted all the time. Only the +one(s) there should be removed when we have to step over one. Support +breakpoints that don't have to be removed to step over them. + +Update gdbint.texinfo to include doc on the directory structure and +the various tricks of building gdb. + +Do a tutorial in gdb.texinfo on how to do simple things in gdb. +E.g. how to set a breakpoint that just prints something and continues. +How to break on aborts. Etc. + +Provide "voodoo" debugging of core files. This creates a zombie +process as a child of the debugger, and loads it up with the data, +stack, and regs of the core file. This allows you to call functions +in the executable, to manipulate the data in the core file. + +GDB reopens the source file on every line, as you "next" through it. + +Referencing the vtbl member of a struct doesn't work. It prints OK +if you print the struct, but it gets 0 if you try to deref it. + +Persistent command history: A feature where you could save off a list +of the commands you did, so you can edit it into something that will bring +the target to the same place every time you source it. +This would also be useful for automated fast watchpointing; if you go +past the place where it watchpoints, you just start it over again and +do it more carefully. + +Deal with the SunOS 4.0 and 4.1.1 ptrace bug that loses the registers if +the stack is paged out. + +Finish the C++ exception handling stub routines. Lint points them out +as unused statics functions. + +Perhaps "i source" should take an argument like that of "list". + +See if core-aout.c's fetch_core_registers can be used on more machines. +E.g. MIPS (mips-xdep.c). + +unpack_double() does not handle IEEE float on the target unless the host +is also IEEE. Death on a vax. + +Set up interface between GDB and INFO so that you can hop into interactive +INFO and back out again. When running under Emacs, should use Emacs +info, else fork the info program. Installation of GDB should install +its texinfo files into the info tree automagically, including the readline +texinfo files. + +"help address" ought to find the "help set print address" entry. + +Remove the VTBL internal guts from printouts of C++ structs, unless +vtblprint is set. + +Remove "at 0xnnnn" from the "b foo" response, if `print address off' and if +it matches the source line indicated. + +The prompt at end of screen should accept space as well as CR. + +Check STORE_RETURN_VALUE on all architectures. Check near it in tm-sparc.h +for other bogosities. + +Check for storage leaks in GDB, I'm sure there are a lot! + +vtblprint of a vtbl should demangle the names it's printing. + +Backtrace should point out what the currently selected frame is, in +its display, perhaps showing "@3 foo (bar, ...)" or ">3 foo (bar, +...)" rather than "#3 foo (bar, ...)". + +"i program" should work for core files, and display more info, like what +actually caused it to die. + +"x/10i" should shorten the long name, if any, on subsequent lines. + +Check through the code for FIXME comments and fix them. dbxread.c, +blockframe.c, and plenty more. (I count 634 as of 940621 - sts) + +"next" over a function that longjumps, never stops until next time you happen +to get to that spot by accident. E.g. "n" over execute_command which has +an error. + +"set zeroprint off", don't bother printing members of structs which +are entirely zero. Useful for those big structs with few useful +members. + +GDB does four ioctl's for every command, probably switching terminal modes +to/from inferior or for readline or something. + +terminal_ours versus terminal_inferior: cache state. Switch should be a noop +if the state is the same, too. + +ptype $i6 = void??! + +Clean up invalid_float handling so gdb doesn't coredump when it tries to +access a NaN. While this might work on SPARC, other machines are not +configured right. + +"b value_at ; commands ; continue ; end" stops EVERY OTHER TIME! +Then once you enter a command, it does the command, runs two more +times, and then stops again! Bizarre... (This behaviour has been +modified, but it is not yet 100% predictable when e.g. the commands +call functions in the child, and while there, the child is interrupted +with a signal, or hits a breakpoint.) + +help completion, help history should work. + +Check that we can handle stack trace through varargs AND alloca in same +function, on 29K. + +wait_for_inferior loops forever if wait() gives it an error. + +"i frame" shows wrong "arglist at" location, doesn't show where the args +should be found, only their actual values. + +There should be a way for "set" commands to validate the new setting +before it takes effect. + +A mess of floating point opcodes are missing from sparc-opcode.h. +Also, a little program should test the table for bits that are +overspecified or underspecified. E.g. if the must-be-ones bits +and the must-be-zeroes bits leave some fields unexamined, and the format +string leaves them unprinted, then point this out. If multiple +non-alias patterns match, point this out too. Finally, there should +be a sparc-optest.s file that tries each pattern out. This file +should end up coming back the same (modulo transformation comments) +if fed to "gas" then the .o is fed to gdb for disassembly. + +Eliminate all the core_file_command's in all the xdep files. +Eliminate separate declarations of registers[] everywhere. + +"ena d" is ambiguous, why? "ena delete" seems to think it is a command! + +Perhaps move the tdep, xdep, and nat files, into the config +subdirectories. If not, at least straighten out their names so that +they all start with the machine name. + +inferior_status should include stop_print_frame. It won't need to be +reset in wait_for_inferior after bpstat_stop_status call, then. + +i line VAR produces "Line number not known for symbol ``var''.". I +thought we were stashing that info now! + +We should be able to write to random files at hex offsets like adb. + +Make "target xxx" command interruptible. + +Handle add_file with separate text, data, and bss addresses. Maybe +handle separate addresses for each segment in the object file? + +Handle free_named_symtab to cope with multiply-loaded object files +in a dynamic linking environment. Should remember the last copy loaded, +but not get too snowed if it finds references to the older copy. + +Generalize and Standardize the RPC interface to a target program, +improve it beyond the "ptrace" interface, and see if it can become a +standard for remote debugging. (This is talking about the vxworks +interface. Seems unlikely to me that there will be "a standard" for +remote debugging anytime soon --kingdon, 8 Nov 1994). + +Remove all references to: + text_offset + data_offset + text_data_start + text_end + exec_data_offset + ... +now that we have BFD. All remaining are in machine dependent files. + +When quitting with a running program, if a core file was previously +examined, you get "Couldn't read float regs from core file"...if +indeed it can't. generic_mourn_inferior... + +Have remote targets give a warning on a signal argument to +target_resume. Or better yet, extend the protocols so that it works +like it does on the Unix-like systems. + +Sort help and info output. + +Re-organize help categories into things that tend to fit on a screen +and hang together. + +renote-nindy.c handles interrupts poorly; it error()s out of badly +chosen places, e.g. leaving current_frame zero, which causes core dumps +on the next command. + +Add in commands like ADB's for searching for patterns, etc. We should +be able to examine and patch raw unsymboled binaries as well in gdb as +we can in adb. (E.g. increase the timeout in /bin/login without source). + +Those xdep files that call register_addr without defining it are +probably simply broken. When reconfiguring this part of gdb, I could +only make guesses about how to redo some of those files, and I +probably guessed wrong, or left them "for later" when I have a +machine that can attempt to build them. + +When doing "step" or "next", if a few lines of source are skipped between +the previous line and the current one, print those lines, not just the +last line of a multiline statement. + +When searching for C++ superclasses in value_cast in valops.c, we must +not search the "fields", only the "superclasses". There might be a +struct with a field name that matches the superclass name. This can +happen when the struct was defined before the superclass (before the +name became a typedef). + +Handling of "&" address-of operator needs some serious overhaul +for ANSI C and consistency on arrays and functions. + For "float point[15];": +ptype &point[4] ==> Attempt to take address of non-lvalue. + For "char *malloc();": +ptype malloc ==> "char *()"; should be same as +ptype &malloc ==> "char *(*)()" +call printf ("%x\n", malloc) ==> weird value, should be same as +call printf ("%x\n", &malloc) ==> correct value + +Fix dbxread.c symbol reading in the presence of interrupts. It +currently leaves a cleanup to blow away the entire symbol table when a +QUIT occurs. (What's wrong with that? -kingdon, 28 Oct 1993). + +Mipsread.c reads include files depth-first, because the dependencies +in the psymtabs are way too inclusive (it seems to me). Figure out what +really depends on what, to avoid recursing 20 or 30 times while reading +real symtabs. + +value_add() should be subtracting the lower bound of arrays, if known, +and possibly checking against the upper bound for error reporting. + +mipsread.c symbol table allocation and deallocation should be checked. +My suspicion is that it's full of memory leaks. + +SunOS should have a target_lookup_symbol() for common'd things allocated +by the shared library linker ld.so. + +When listing source lines, check for a preceding \n, to verify that +the file hasn't changed out from under us. + +When listing source lines, eat leading whitespace corresponding to the +line-number prefix we print. This avoids long lines wrapping. + +mipsread.c needs to check for old symtabs and psymtabs for the same +files, the way it happens for dbxread.c and coffread.c, for VxWorks +incremental symbol table reloading. + +Get all the remote systems (where the protocol allows it) to be able to +stop the remote system when the GDB user types ^C (like remote.c +does). For ebmon, use ^Ak. + +Possible feature: A version of the "disassemble" command which shows +both source and assembly code ("set symbol-filename on" is a partial +solution). + +investigate "x/s 0" (right now stops early) (I think maybe GDB is +using a 0 address for bad purposes internally). + +Make "info path" and path_command work again (but independent of the +environment either of gdb or that we'll pass to the inferior). + +Make GDB understand the GCC feature for putting octal constants in +enums. Make it so overflow on an enum constant does not error_type +the whole type. Allow arbitrarily large enums with type attributes. +Put all this stuff in the testsuite. + +Make TYPE_CODE_ERROR with a non-zero TYPE_LENGTH more useful (print +the value in hex; process type attributes). Add this to the +testsuite. This way future compilers can add new types and old +versions of GDB can do something halfway reasonable. + +Clean up formatting of "info registers" on MIPS and 88k. See if it +is possible to do this generically across all target architectures. + +GDB gets bfd/corefile.c and gdb/corefile.c confused (this should be easy to +repeat even with something more recent than GDB 4.9). + +Check that unmatched RBRAC doesn't abort(). + +Fix mdebugread.c:parse_type to do fundamental types right (see +rs6000_builtin_type in stabsread.c for what "right" is--the point is +that the debug format fixes the sizes of these things and it shouldn't +depend on stuff like TARGET_PTR_BIT and so on. For mdebug, there seem +to be separate bt* codes for 64 bit and 32 bit things, and GDB should +be aware of that). Also use a switch statement for clarity and speed. + +Investigate adding symbols in target_load--some targets do, some +don't. + +Put dirname in psymtabs and change lookup*symtab to use dirname (so +/foo/bar.c works whether compiled by cc /foo/bar.c, or cd /foo; cc +bar.c). + +Merge xcoffread.c and coffread.c. Use breakpoint_re_set instead of +fixup_breakpoints. + +Fix byte order and int size sins in tm-a29k.h +(EXTRACT_RETURN_VALUE). Perhaps should reproduce bug and verify fix +(or perhaps should just fix it...). + +Make a watchpoint on a constant expression an error (or warning +perhaps) + +Make a watchpoint which contains a function call an error (it is +broken now, making it work is probably not worth the effort). + +Re-do calls to signal() in remote.c, and inflow.c (set_sigint_trap and +so on) to be independent of the debugging target, using target_stop to +stop the inferior. Probably the part which is now handled by +interrupt_query in remote.c can be done without any new features in +the debugging target. + +New test case based on weird.exp but in which type numbers are not +renumbered (thus multiply defining a type). This currently causes an +infinite loop on "p v_comb". + +Nuke baseclass_addr. + +Nuke USG define. + +"source file more recent" loses on re-read + +Fix 386 floating point so that floating point registers are real +registers (but code can deal at run-time if they are missing, like +mips and 68k). This would clean up "info float" and related stuff. + +Look at Solaris bug in interrupt.exp. Can get out of syscall with +PRSABORT (syscall will return EINTR) but merely doing that leads to a +"can't read memory" error. + +gcc -g -c enummask.c then gdb enummask.o, then "p v". GDB complains +about not being able to access memory location 0. + +-------------------- enummask.c +enum mask +{ + ANIMAL = 0, + VEGETABLE = 1, + MINERAL = 2, + BASIC_CATEGORY = 3, + + WHITE = 0, + BLUE = 4, + GREEN = 8, + BLACK = 0xc, + COLOR = 0xc, + + ALIVE = 0x10, + + LARGE = 0x20 +} v; + +If try to modify value in file with "set write off" should give +appropriate error not "cannot access memory at address 0x65e0". + +Why do we allow a target to omit standard register names (NO_STD_REGS +in tm-z8k.h)? I thought the standard register names were supposed to +be just that, standard. + +Make DEBUG_EXPRESSIONS a maintenance command, dependent on +MAINTENANCE_COMMANDS. + +Allow core file without exec file on RS/6000. + +Make sure "shell" with no arguments works right on DOS. + +Make gdb.ini (as well as .gdbinit) be checked on all platforms, so +the same directory can be NFS-mounted on unix or DOS, and work the +same way. + +cd ~/tmp/ causes infinite loop (where ~/tmp is a directory). + +Get SECT_OFF_TEXT stuff out of objfile_relocate (might be needed to +get RS/6000 to work right, might not be immediately relevant). + +Clean up add_toc_to_loadinfo + +Think about attached processes and sharing terminal. + +John sez in reference to ignoring errors from tcsegpgrp if attach_flag: +set_tty_state should not have any trouble with attached processes. +Instead, the tty handling should leave the pgrp of the tty alone when +attaching to processes (perhaps pass terminal_init_inferior a flag +saying whether we're attaching). + +PAGE_SIZE redefined warnings on AIX. Probably should be using +BFD_PAGE_SIZE throughout BFD. + +Rewrite proceed, wait_for_inferior, and normal_stop to clean them up. +Suggestions: + + 1) Make each test in wait_for_inferior a seperate subroutine + call. + 2) Combine wait_for_inferior and normal_stop to clean up + communication via global variables. + 3) See if you can find some way to clean up the global + variables that are used; possibly group them by data flow + and information content? + +Work out some kind of way to allow running the inferior to be done as +a sub-execution of, eg. breakpoint command lists. Currently running +the inferior interupts any command list execution. This would require +some rewriting of wait_for_inferior & friends, and hence should +probably be done in concert with the above. + +Add function arguments to gdb user defined functions. + +Add convenience variables that refer to exec file, symbol file, +selected frame source file, selected frame function, selected frame +line number, etc. + +Add a "suspend" subcommand of the "continue" command to suspend gdb +while continuing execution of the subprocess. Useful when you are +debugging servers and you want to dodge out and initiate a connection +to a server running under gdb. + +Add stab information to allow reasonable debugging of inline functions +(possibly they should show up on a stack backtrace? With a note +indicating that they weren't "real"?). + +Modify the naked "until" command to step until past the current source +line, rather than past the current pc value. This is tricky simply +because the low level routines have no way of specifying a multi-line +step range, and there is no way of saying "don't print stuff when we +stop" from above (otherwise could just call step many times). + +Modify the handling of symbols grouped through BINCL/EINCL stabs to +allocate a partial symtab for each BINCL/EINCL grouping. This will +seriously decrease the size of inter-psymtab dependencies and hence +lessen the amount that needs to be read in when a new source file is +accessed. + +Do an "x/i $pc" after each stepi or nexti. + +Modify all of the disassemblers to use printf_filtered to get correct +more filtering. + +Modify gdb to work correctly with Pascal. + +Add a command for searching memory, a la adb. It specifies size, +mask, value, start address. ADB searches until it finds it or hits +an error (or is interrupted). + +# Local Variables: +# mode: text +# End: diff --git a/gdb/a29k-tdep.c b/gdb/a29k-tdep.c new file mode 100644 index 0000000000..b3c056723a --- /dev/null +++ b/gdb/a29k-tdep.c @@ -0,0 +1,1040 @@ +/* Target-machine dependent code for the AMD 29000 + Copyright 1990, 1991, 1992, 1993, 1994, 1995 + Free Software Foundation, Inc. + Contributed by Cygnus Support. Written by Jim Kingdon. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "gdbcore.h" +#include "frame.h" +#include "value.h" +#include "symtab.h" +#include "inferior.h" +#include "gdbcmd.h" + +/* If all these bits in an instruction word are zero, it is a "tag word" + which precedes a function entry point and gives stack traceback info. + This used to be defined as 0xff000000, but that treated 0x00000deb as + a tag word, while it is really used as a breakpoint. */ +#define TAGWORD_ZERO_MASK 0xff00f800 + +extern CORE_ADDR text_start; /* FIXME, kludge... */ + +/* The user-settable top of the register stack in virtual memory. We + won't attempt to access any stored registers above this address, if set + nonzero. */ + +static CORE_ADDR rstack_high_address = UINT_MAX; + + +/* Should call_function allocate stack space for a struct return? */ +/* On the a29k objects over 16 words require the caller to allocate space. */ +int +a29k_use_struct_convention (gcc_p, type) + int gcc_p; + struct type *type; +{ + return (TYPE_LENGTH (type) > 16 * 4); +} + + +/* Structure to hold cached info about function prologues. */ + +struct prologue_info +{ + CORE_ADDR pc; /* First addr after fn prologue */ + unsigned rsize, msize; /* register stack frame size, mem stack ditto */ + unsigned mfp_used : 1; /* memory frame pointer used */ + unsigned rsize_valid : 1; /* Validity bits for the above */ + unsigned msize_valid : 1; + unsigned mfp_valid : 1; +}; + +/* Examine the prologue of a function which starts at PC. Return + the first addess past the prologue. If MSIZE is non-NULL, then + set *MSIZE to the memory stack frame size. If RSIZE is non-NULL, + then set *RSIZE to the register stack frame size (not including + incoming arguments and the return address & frame pointer stored + with them). If no prologue is found, *RSIZE is set to zero. + If no prologue is found, or a prologue which doesn't involve + allocating a memory stack frame, then set *MSIZE to zero. + + Note that both msize and rsize are in bytes. This is not consistent + with the _User's Manual_ with respect to rsize, but it is much more + convenient. + + If MFP_USED is non-NULL, *MFP_USED is set to nonzero if a memory + frame pointer is being used. */ + +CORE_ADDR +examine_prologue (pc, rsize, msize, mfp_used) + CORE_ADDR pc; + unsigned *msize; + unsigned *rsize; + int *mfp_used; +{ + long insn; + CORE_ADDR p = pc; + struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (pc); + struct prologue_info *mi = 0; + + if (msymbol != NULL) + mi = (struct prologue_info *) msymbol -> info; + + if (mi != 0) + { + int valid = 1; + if (rsize != NULL) + { + *rsize = mi->rsize; + valid &= mi->rsize_valid; + } + if (msize != NULL) + { + *msize = mi->msize; + valid &= mi->msize_valid; + } + if (mfp_used != NULL) + { + *mfp_used = mi->mfp_used; + valid &= mi->mfp_valid; + } + if (valid) + return mi->pc; + } + + if (rsize != NULL) + *rsize = 0; + if (msize != NULL) + *msize = 0; + if (mfp_used != NULL) + *mfp_used = 0; + + /* Prologue must start with subtracting a constant from gr1. + Normally this is sub gr1,gr1,. */ + insn = read_memory_integer (p, 4); + if ((insn & 0xffffff00) != 0x25010100) + { + /* If the frame is large, instead of a single instruction it + might be a pair of instructions: + const , + sub gr1,gr1, + */ + int reg; + /* Possible value for rsize. */ + unsigned int rsize0; + + if ((insn & 0xff000000) != 0x03000000) + { + p = pc; + goto done; + } + reg = (insn >> 8) & 0xff; + rsize0 = (((insn >> 8) & 0xff00) | (insn & 0xff)); + p += 4; + insn = read_memory_integer (p, 4); + if ((insn & 0xffffff00) != 0x24010100 + || (insn & 0xff) != reg) + { + p = pc; + goto done; + } + if (rsize != NULL) + *rsize = rsize0; + } + else + { + if (rsize != NULL) + *rsize = (insn & 0xff); + } + p += 4; + + /* Next instruction ought to be asgeu V_SPILL,gr1,rab. + * We don't check the vector number to allow for kernel debugging. The + * kernel will use a different trap number. + * If this insn is missing, we just keep going; Metaware R2.3u compiler + * generates prologue that intermixes initializations and puts the asgeu + * way down. + */ + insn = read_memory_integer (p, 4); + if ((insn & 0xff00ffff) == (0x5e000100|RAB_HW_REGNUM)) + { + p += 4; + } + + /* Next instruction usually sets the frame pointer (lr1) by adding + from gr1. However, this can (and high C does) be + deferred until anytime before the first function call. So it is + OK if we don't see anything which sets lr1. + To allow for alternate register sets (gcc -mkernel-registers) the msp + register number is a compile time constant. */ + + /* Normally this is just add lr1,gr1,. */ + insn = read_memory_integer (p, 4); + if ((insn & 0xffffff00) == 0x15810100) + p += 4; + else + { + /* However, for large frames it can be + const , + add lr1,gr1, + */ + int reg; + CORE_ADDR q; + + if ((insn & 0xff000000) == 0x03000000) + { + reg = (insn >> 8) & 0xff; + q = p + 4; + insn = read_memory_integer (q, 4); + if ((insn & 0xffffff00) == 0x14810100 + && (insn & 0xff) == reg) + p = q; + } + } + + /* Next comes "add lr{},msp,0", but only if a memory + frame pointer is in use. We just check for add lr,msp,0; + we don't check this rsize against the first instruction, and + we don't check that the trace-back tag indicates a memory frame pointer + is in use. + To allow for alternate register sets (gcc -mkernel-registers) the msp + register number is a compile time constant. + + The recommended instruction is actually "sll lr,msp,0". + We check for that, too. Originally Jim Kingdon's code seemed + to be looking for a "sub" instruction here, but the mask was set + up to lose all the time. */ + insn = read_memory_integer (p, 4); + if (((insn & 0xff80ffff) == (0x15800000|(MSP_HW_REGNUM<<8))) /* add */ + || ((insn & 0xff80ffff) == (0x81800000|(MSP_HW_REGNUM<<8)))) /* sll */ + { + p += 4; + if (mfp_used != NULL) + *mfp_used = 1; + } + + /* Next comes a subtraction from msp to allocate a memory frame, + but only if a memory frame is + being used. We don't check msize against the trace-back tag. + + To allow for alternate register sets (gcc -mkernel-registers) the msp + register number is a compile time constant. + + Normally this is just + sub msp,msp, + */ + insn = read_memory_integer (p, 4); + if ((insn & 0xffffff00) == + (0x25000000|(MSP_HW_REGNUM<<16)|(MSP_HW_REGNUM<<8))) + { + p += 4; + if (msize != NULL) + *msize = insn & 0xff; + } + else + { + /* For large frames, instead of a single instruction it might + be + + const , + consth , ; optional + sub msp,msp, + */ + int reg; + unsigned msize0; + CORE_ADDR q = p; + + if ((insn & 0xff000000) == 0x03000000) + { + reg = (insn >> 8) & 0xff; + msize0 = ((insn >> 8) & 0xff00) | (insn & 0xff); + q += 4; + insn = read_memory_integer (q, 4); + /* Check for consth. */ + if ((insn & 0xff000000) == 0x02000000 + && (insn & 0x0000ff00) == reg) + { + msize0 |= (insn << 8) & 0xff000000; + msize0 |= (insn << 16) & 0x00ff0000; + q += 4; + insn = read_memory_integer (q, 4); + } + /* Check for sub msp,msp,. */ + if ((insn & 0xffffff00) == + (0x24000000|(MSP_HW_REGNUM<<16)|(MSP_HW_REGNUM<<8)) + && (insn & 0xff) == reg) + { + p = q + 4; + if (msize != NULL) + *msize = msize0; + } + } + } + + /* Next instruction might be asgeu V_SPILL,gr1,rab. + * We don't check the vector number to allow for kernel debugging. The + * kernel will use a different trap number. + * Metaware R2.3u compiler + * generates prologue that intermixes initializations and puts the asgeu + * way down after everything else. + */ + insn = read_memory_integer (p, 4); + if ((insn & 0xff00ffff) == (0x5e000100|RAB_HW_REGNUM)) + { + p += 4; + } + + done: + if (msymbol != NULL) + { + if (mi == 0) + { + /* Add a new cache entry. */ + mi = (struct prologue_info *)xmalloc (sizeof (struct prologue_info)); + msymbol -> info = (char *)mi; + mi->rsize_valid = 0; + mi->msize_valid = 0; + mi->mfp_valid = 0; + } + /* else, cache entry exists, but info is incomplete. */ + mi->pc = p; + if (rsize != NULL) + { + mi->rsize = *rsize; + mi->rsize_valid = 1; + } + if (msize != NULL) + { + mi->msize = *msize; + mi->msize_valid = 1; + } + if (mfp_used != NULL) + { + mi->mfp_used = *mfp_used; + mi->mfp_valid = 1; + } + } + return p; +} + +/* Advance PC across any function entry prologue instructions + to reach some "real" code. */ + +CORE_ADDR +skip_prologue (pc) + CORE_ADDR pc; +{ + return examine_prologue (pc, NULL, NULL, NULL); +} + +/* + * Examine the one or two word tag at the beginning of a function. + * The tag word is expect to be at 'p', if it is not there, we fail + * by returning 0. The documentation for the tag word was taken from + * page 7-15 of the 29050 User's Manual. We are assuming that the + * m bit is in bit 22 of the tag word, which seems to be the agreed upon + * convention today (1/15/92). + * msize is return in bytes. + */ + +static int /* 0/1 - failure/success of finding the tag word */ +examine_tag (p, is_trans, argcount, msize, mfp_used) + CORE_ADDR p; + int *is_trans; + int *argcount; + unsigned *msize; + int *mfp_used; +{ + unsigned int tag1, tag2; + + tag1 = read_memory_integer (p, 4); + if ((tag1 & TAGWORD_ZERO_MASK) != 0) /* Not a tag word */ + return 0; + if (tag1 & (1<<23)) /* A two word tag */ + { + tag2 = read_memory_integer (p-4, 4); + if (msize) + *msize = tag2 * 2; + } + else /* A one word tag */ + { + if (msize) + *msize = tag1 & 0x7ff; + } + if (is_trans) + *is_trans = ((tag1 & (1<<21)) ? 1 : 0); + /* Note that this includes the frame pointer and the return address + register, so the actual number of registers of arguments is two less. + argcount can be zero, however, sometimes, for strange assembler + routines. */ + if (argcount) + *argcount = (tag1 >> 16) & 0x1f; + if (mfp_used) + *mfp_used = ((tag1 & (1<<22)) ? 1 : 0); + return 1; +} + +/* Initialize the frame. In addition to setting "extra" frame info, + we also set ->frame because we use it in a nonstandard way, and ->pc + because we need to know it to get the other stuff. See the diagram + of stacks and the frame cache in tm-a29k.h for more detail. */ + +static void +init_frame_info (innermost_frame, frame) + int innermost_frame; + struct frame_info *frame; +{ + CORE_ADDR p; + long insn; + unsigned rsize; + unsigned msize; + int mfp_used, trans; + struct symbol *func; + + p = frame->pc; + + if (innermost_frame) + frame->frame = read_register (GR1_REGNUM); + else + frame->frame = frame->next->frame + frame->next->rsize; + +#if 0 /* CALL_DUMMY_LOCATION == ON_STACK */ + This wont work; +#else + if (PC_IN_CALL_DUMMY (p, 0, 0)) +#endif + { + frame->rsize = DUMMY_FRAME_RSIZE; + /* This doesn't matter since we never try to get locals or args + from a dummy frame. */ + frame->msize = 0; + /* Dummy frames always use a memory frame pointer. */ + frame->saved_msp = + read_register_stack_integer (frame->frame + DUMMY_FRAME_RSIZE - 4, 4); + frame->flags |= (TRANSPARENT_FRAME|MFP_USED); + return; + } + + func = find_pc_function (p); + if (func != NULL) + p = BLOCK_START (SYMBOL_BLOCK_VALUE (func)); + else + { + /* Search backward to find the trace-back tag. However, + do not trace back beyond the start of the text segment + (just as a sanity check to avoid going into never-never land). */ +#if 1 + while (p >= text_start + && ((insn = read_memory_integer (p, 4)) & TAGWORD_ZERO_MASK) != 0) + p -= 4; +#else /* 0 */ + char pat[4] = {0, 0, 0, 0}; + char mask[4]; + char insn_raw[4]; + store_unsigned_integer (mask, 4, TAGWORD_ZERO_MASK); + /* Enable this once target_search is enabled and tested. */ + target_search (4, pat, mask, p, -4, text_start, p+1, &p, &insn_raw); + insn = extract_unsigned_integer (insn_raw, 4); +#endif /* 0 */ + + if (p < text_start) + { + /* Couldn't find the trace-back tag. + Something strange is going on. */ + frame->saved_msp = 0; + frame->rsize = 0; + frame->msize = 0; + frame->flags = TRANSPARENT_FRAME; + return; + } + else + /* Advance to the first word of the function, i.e. the word + after the trace-back tag. */ + p += 4; + } + + /* We've found the start of the function. + Try looking for a tag word that indicates whether there is a + memory frame pointer and what the memory stack allocation is. + If one doesn't exist, try using a more exhaustive search of + the prologue. */ + + if (examine_tag(p-4,&trans,(int *)NULL,&msize,&mfp_used)) /* Found good tag */ + examine_prologue (p, &rsize, 0, 0); + else /* No tag try prologue */ + examine_prologue (p, &rsize, &msize, &mfp_used); + + frame->rsize = rsize; + frame->msize = msize; + frame->flags = 0; + if (mfp_used) + frame->flags |= MFP_USED; + if (trans) + frame->flags |= TRANSPARENT_FRAME; + if (innermost_frame) + { + frame->saved_msp = read_register (MSP_REGNUM) + msize; + } + else + { + if (mfp_used) + frame->saved_msp = + read_register_stack_integer (frame->frame + rsize - 4, 4); + else + frame->saved_msp = frame->next->saved_msp + msize; + } +} + +void +init_extra_frame_info (frame) + struct frame_info *frame; +{ + if (frame->next == 0) + /* Assume innermost frame. May produce strange results for "info frame" + but there isn't any way to tell the difference. */ + init_frame_info (1, frame); + else { + /* We're in get_prev_frame_info. + Take care of everything in init_frame_pc. */ + ; + } +} + +void +init_frame_pc (fromleaf, frame) + int fromleaf; + struct frame_info *frame; +{ + frame->pc = (fromleaf ? SAVED_PC_AFTER_CALL (frame->next) : + frame->next ? FRAME_SAVED_PC (frame->next) : read_pc ()); + init_frame_info (fromleaf, frame); +} + +/* Local variables (i.e. LOC_LOCAL) are on the memory stack, with their + offsets being relative to the memory stack pointer (high C) or + saved_msp (gcc). */ + +CORE_ADDR +frame_locals_address (fi) + struct frame_info *fi; +{ + if (fi->flags & MFP_USED) + return fi->saved_msp; + else + return fi->saved_msp - fi->msize; +} + +/* Routines for reading the register stack. The caller gets to treat + the register stack as a uniform stack in memory, from address $gr1 + straight through $rfb and beyond. */ + +/* Analogous to read_memory except the length is understood to be 4. + Also, myaddr can be NULL (meaning don't bother to read), and + if actual_mem_addr is non-NULL, store there the address that it + was fetched from (or if from a register the offset within + registers). Set *LVAL to lval_memory or lval_register, depending + on where it came from. The contents written into MYADDR are in + target format. */ +void +read_register_stack (memaddr, myaddr, actual_mem_addr, lval) + CORE_ADDR memaddr; + char *myaddr; + CORE_ADDR *actual_mem_addr; + enum lval_type *lval; +{ + long rfb = read_register (RFB_REGNUM); + long rsp = read_register (RSP_REGNUM); + + /* If we don't do this 'info register' stops in the middle. */ + if (memaddr >= rstack_high_address) + { + /* a bogus value */ + static char val[] = {~0, ~0, ~0, ~0}; + /* It's in a local register, but off the end of the stack. */ + int regnum = (memaddr - rsp) / 4 + LR0_REGNUM; + if (myaddr != NULL) + { + /* Provide bogusness */ + memcpy (myaddr, val, 4); + } + supply_register(regnum, val); /* More bogusness */ + if (lval != NULL) + *lval = lval_register; + if (actual_mem_addr != NULL) + *actual_mem_addr = REGISTER_BYTE (regnum); + } + /* If it's in the part of the register stack that's in real registers, + get the value from the registers. If it's anywhere else in memory + (e.g. in another thread's saved stack), skip this part and get + it from real live memory. */ + else if (memaddr < rfb && memaddr >= rsp) + { + /* It's in a register. */ + int regnum = (memaddr - rsp) / 4 + LR0_REGNUM; + if (regnum > LR0_REGNUM + 127) + error ("Attempt to read register stack out of range."); + if (myaddr != NULL) + read_register_gen (regnum, myaddr); + if (lval != NULL) + *lval = lval_register; + if (actual_mem_addr != NULL) + *actual_mem_addr = REGISTER_BYTE (regnum); + } + else + { + /* It's in the memory portion of the register stack. */ + if (myaddr != NULL) + read_memory (memaddr, myaddr, 4); + if (lval != NULL) + *lval = lval_memory; + if (actual_mem_addr != NULL) + *actual_mem_addr = memaddr; + } +} + +/* Analogous to read_memory_integer + except the length is understood to be 4. */ +long +read_register_stack_integer (memaddr, len) + CORE_ADDR memaddr; + int len; +{ + char buf[4]; + read_register_stack (memaddr, buf, NULL, NULL); + return extract_signed_integer (buf, 4); +} + +/* Copy 4 bytes from GDB memory at MYADDR into inferior memory + at MEMADDR and put the actual address written into in + *ACTUAL_MEM_ADDR. */ +static void +write_register_stack (memaddr, myaddr, actual_mem_addr) + CORE_ADDR memaddr; + char *myaddr; + CORE_ADDR *actual_mem_addr; +{ + long rfb = read_register (RFB_REGNUM); + long rsp = read_register (RSP_REGNUM); + /* If we don't do this 'info register' stops in the middle. */ + if (memaddr >= rstack_high_address) + { + /* It's in a register, but off the end of the stack. */ + if (actual_mem_addr != NULL) + *actual_mem_addr = 0; + } + else if (memaddr < rfb) + { + /* It's in a register. */ + int regnum = (memaddr - rsp) / 4 + LR0_REGNUM; + if (regnum < LR0_REGNUM || regnum > LR0_REGNUM + 127) + error ("Attempt to read register stack out of range."); + if (myaddr != NULL) + write_register (regnum, *(long *)myaddr); + if (actual_mem_addr != NULL) + *actual_mem_addr = 0; + } + else + { + /* It's in the memory portion of the register stack. */ + if (myaddr != NULL) + write_memory (memaddr, myaddr, 4); + if (actual_mem_addr != NULL) + *actual_mem_addr = memaddr; + } +} + +/* Find register number REGNUM relative to FRAME and put its + (raw) contents in *RAW_BUFFER. Set *OPTIMIZED if the variable + was optimized out (and thus can't be fetched). If the variable + was fetched from memory, set *ADDRP to where it was fetched from, + otherwise it was fetched from a register. + + The argument RAW_BUFFER must point to aligned memory. */ + +void +get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp) + char *raw_buffer; + int *optimized; + CORE_ADDR *addrp; + struct frame_info *frame; + int regnum; + enum lval_type *lvalp; +{ + struct frame_info *fi; + CORE_ADDR addr; + enum lval_type lval; + + if (!target_has_registers) + error ("No registers."); + + /* Probably now redundant with the target_has_registers check. */ + if (frame == 0) + return; + + /* Once something has a register number, it doesn't get optimized out. */ + if (optimized != NULL) + *optimized = 0; + if (regnum == RSP_REGNUM) + { + if (raw_buffer != NULL) + { + store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), frame->frame); + } + if (lvalp != NULL) + *lvalp = not_lval; + return; + } + else if (regnum == PC_REGNUM && frame->next != NULL) + { + if (raw_buffer != NULL) + { + store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), frame->pc); + } + + /* Not sure we have to do this. */ + if (lvalp != NULL) + *lvalp = not_lval; + + return; + } + else if (regnum == MSP_REGNUM) + { + if (raw_buffer != NULL) + { + if (frame->next != NULL) + { + store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), + frame->next->saved_msp); + } + else + read_register_gen (MSP_REGNUM, raw_buffer); + } + /* The value may have been computed, not fetched. */ + if (lvalp != NULL) + *lvalp = not_lval; + return; + } + else if (regnum < LR0_REGNUM || regnum >= LR0_REGNUM + 128) + { + /* These registers are not saved over procedure calls, + so just print out the current values. */ + if (raw_buffer != NULL) + read_register_gen (regnum, raw_buffer); + if (lvalp != NULL) + *lvalp = lval_register; + if (addrp != NULL) + *addrp = REGISTER_BYTE (regnum); + return; + } + + addr = frame->frame + (regnum - LR0_REGNUM) * 4; + if (raw_buffer != NULL) + read_register_stack (addr, raw_buffer, &addr, &lval); + if (lvalp != NULL) + *lvalp = lval; + if (addrp != NULL) + *addrp = addr; +} + + +/* Discard from the stack the innermost frame, + restoring all saved registers. */ + +void +pop_frame () +{ + struct frame_info *frame = get_current_frame (); + CORE_ADDR rfb = read_register (RFB_REGNUM); + CORE_ADDR gr1 = frame->frame + frame->rsize; + CORE_ADDR lr1; + CORE_ADDR original_lr0; + int must_fix_lr0 = 0; + int i; + + /* If popping a dummy frame, need to restore registers. */ + if (PC_IN_CALL_DUMMY (read_register (PC_REGNUM), + read_register (SP_REGNUM), + FRAME_FP (frame))) + { + int lrnum = LR0_REGNUM + DUMMY_ARG/4; + for (i = 0; i < DUMMY_SAVE_SR128; ++i) + write_register (SR_REGNUM (i + 128),read_register (lrnum++)); + for (i = 0; i < DUMMY_SAVE_SR160; ++i) + write_register (SR_REGNUM(i+160), read_register (lrnum++)); + for (i = 0; i < DUMMY_SAVE_GREGS; ++i) + write_register (RETURN_REGNUM + i, read_register (lrnum++)); + /* Restore the PCs and prepare to restore LR0. */ + write_register(PC_REGNUM, read_register (lrnum++)); + write_register(NPC_REGNUM, read_register (lrnum++)); + write_register(PC2_REGNUM, read_register (lrnum++)); + original_lr0 = read_register (lrnum++); + must_fix_lr0 = 1; + } + + /* Restore the memory stack pointer. */ + write_register (MSP_REGNUM, frame->saved_msp); + /* Restore the register stack pointer. */ + write_register (GR1_REGNUM, gr1); + + /* If we popped a dummy frame, restore lr0 now that gr1 has been restored. */ + if (must_fix_lr0) + write_register (LR0_REGNUM, original_lr0); + + /* Check whether we need to fill registers. */ + lr1 = read_register (LR0_REGNUM + 1); + if (lr1 > rfb) + { + /* Fill. */ + int num_bytes = lr1 - rfb; + int i; + long word; + + write_register (RAB_REGNUM, read_register (RAB_REGNUM) + num_bytes); + write_register (RFB_REGNUM, lr1); + for (i = 0; i < num_bytes; i += 4) + { + /* Note: word is in host byte order. */ + word = read_memory_integer (rfb + i, 4); + write_register (LR0_REGNUM + ((rfb - gr1) % 0x80) + i / 4, word); + } + } + flush_cached_frames (); +} + +/* Push an empty stack frame, to record the current PC, etc. */ + +void +push_dummy_frame () +{ + long w; + CORE_ADDR rab, gr1; + CORE_ADDR msp = read_register (MSP_REGNUM); + int lrnum, i; + CORE_ADDR original_lr0; + + /* Read original lr0 before changing gr1. This order isn't really needed + since GDB happens to have a snapshot of all the regs and doesn't toss + it when gr1 is changed. But it's The Right Thing To Do. */ + original_lr0 = read_register (LR0_REGNUM); + + /* Allocate the new frame. */ + gr1 = read_register (GR1_REGNUM) - DUMMY_FRAME_RSIZE; + write_register (GR1_REGNUM, gr1); + +#ifdef VXWORKS_TARGET + /* We force re-reading all registers to get the new local registers set + after gr1 has been modified. This fix is due to the lack of single + register read/write operation in the RPC interface between VxGDB and + VxWorks. This really must be changed ! */ + + vx_read_register (-1); + +#endif /* VXWORK_TARGET */ + + rab = read_register (RAB_REGNUM); + if (gr1 < rab) + { + /* We need to spill registers. */ + int num_bytes = rab - gr1; + CORE_ADDR rfb = read_register (RFB_REGNUM); + int i; + long word; + + write_register (RFB_REGNUM, rfb - num_bytes); + write_register (RAB_REGNUM, gr1); + for (i = 0; i < num_bytes; i += 4) + { + /* Note: word is in target byte order. */ + read_register_gen (LR0_REGNUM + i / 4, (char *) &word); + write_memory (rfb - num_bytes + i, (char *) &word, 4); + } + } + + /* There are no arguments in to the dummy frame, so we don't need + more than rsize plus the return address and lr1. */ + write_register (LR0_REGNUM + 1, gr1 + DUMMY_FRAME_RSIZE + 2 * 4); + + /* Set the memory frame pointer. */ + write_register (LR0_REGNUM + DUMMY_FRAME_RSIZE / 4 - 1, msp); + + /* Allocate arg_slop. */ + write_register (MSP_REGNUM, msp - 16 * 4); + + /* Save registers. */ + lrnum = LR0_REGNUM + DUMMY_ARG/4; + for (i = 0; i < DUMMY_SAVE_SR128; ++i) + write_register (lrnum++, read_register (SR_REGNUM (i + 128))); + for (i = 0; i < DUMMY_SAVE_SR160; ++i) + write_register (lrnum++, read_register (SR_REGNUM (i + 160))); + for (i = 0; i < DUMMY_SAVE_GREGS; ++i) + write_register (lrnum++, read_register (RETURN_REGNUM + i)); + /* Save the PCs and LR0. */ + write_register (lrnum++, read_register (PC_REGNUM)); + write_register (lrnum++, read_register (NPC_REGNUM)); + write_register (lrnum++, read_register (PC2_REGNUM)); + + /* Why are we saving LR0? What would clobber it? (the dummy frame should + be below it on the register stack, no?). */ + write_register (lrnum++, original_lr0); +} + + + +/* + This routine takes three arguments and makes the cached frames look + as if these arguments defined a frame on the cache. This allows the + rest of `info frame' to extract the important arguments without much + difficulty. Since an individual frame on the 29K is determined by + three values (FP, PC, and MSP), we really need all three to do a + good job. */ + +struct frame_info * +setup_arbitrary_frame (argc, argv) + int argc; + CORE_ADDR *argv; +{ + struct frame_info *frame; + + if (argc != 3) + error ("AMD 29k frame specifications require three arguments: rsp pc msp"); + + frame = create_new_frame (argv[0], argv[1]); + + if (!frame) + fatal ("internal: create_new_frame returned invalid frame id"); + + /* Creating a new frame munges the `frame' value from the current + GR1, so we restore it again here. FIXME, untangle all this + 29K frame stuff... */ + frame->frame = argv[0]; + + /* Our MSP is in argv[2]. It'd be intelligent if we could just + save this value in the FRAME. But the way it's set up (FIXME), + we must save our caller's MSP. We compute that by adding our + memory stack frame size to our MSP. */ + frame->saved_msp = argv[2] + frame->msize; + + return frame; +} + +int +gdb_print_insn_a29k (memaddr, info) + bfd_vma memaddr; + disassemble_info *info; +{ + if (TARGET_BYTE_ORDER == BIG_ENDIAN) + return print_insn_big_a29k (memaddr, info); + else + return print_insn_little_a29k (memaddr, info); +} + +enum a29k_processor_types processor_type = a29k_unknown; + +void +a29k_get_processor_type () +{ + unsigned int cfg_reg = (unsigned int) read_register (CFG_REGNUM); + + /* Most of these don't have freeze mode. */ + processor_type = a29k_no_freeze_mode; + + switch ((cfg_reg >> 28) & 0xf) + { + case 0: + fprintf_filtered (gdb_stderr, "Remote debugging an Am29000"); + break; + case 1: + fprintf_filtered (gdb_stderr, "Remote debugging an Am29005"); + break; + case 2: + fprintf_filtered (gdb_stderr, "Remote debugging an Am29050"); + processor_type = a29k_freeze_mode; + break; + case 3: + fprintf_filtered (gdb_stderr, "Remote debugging an Am29035"); + break; + case 4: + fprintf_filtered (gdb_stderr, "Remote debugging an Am29030"); + break; + case 5: + fprintf_filtered (gdb_stderr, "Remote debugging an Am2920*"); + break; + case 6: + fprintf_filtered (gdb_stderr, "Remote debugging an Am2924*"); + break; + case 7: + fprintf_filtered (gdb_stderr, "Remote debugging an Am29040"); + break; + default: + fprintf_filtered (gdb_stderr, "Remote debugging an unknown Am29k\n"); + /* Don't bother to print the revision. */ + return; + } + fprintf_filtered (gdb_stderr, " revision %c\n", 'A' + ((cfg_reg >> 24) & 0x0f)); +} + +#ifdef GET_LONGJMP_TARGET +/* Figure out where the longjmp will land. We expect that we have just entered + longjmp and haven't yet setup the stack frame, so the args are still in the + output regs. lr2 (LR2_REGNUM) points at the jmp_buf structure from which we + extract the pc (JB_PC) that we will land at. The pc is copied into ADDR. + This routine returns true on success */ + +int +get_longjmp_target(pc) + CORE_ADDR *pc; +{ + CORE_ADDR jb_addr; + char buf[sizeof(CORE_ADDR)]; + + jb_addr = read_register(LR2_REGNUM); + + if (target_read_memory(jb_addr + JB_PC * JB_ELEMENT_SIZE, (char *) buf, + sizeof(CORE_ADDR))) + return 0; + + *pc = extract_address ((PTR) buf, sizeof(CORE_ADDR)); + return 1; +} +#endif /* GET_LONGJMP_TARGET */ + +void +_initialize_a29k_tdep () +{ + extern CORE_ADDR text_end; + + tm_print_insn = gdb_print_insn_a29k; + + /* FIXME, there should be a way to make a CORE_ADDR variable settable. */ + add_show_from_set + (add_set_cmd ("rstack_high_address", class_support, var_uinteger, + (char *)&rstack_high_address, + "Set top address in memory of the register stack.\n\ +Attempts to access registers saved above this address will be ignored\n\ +or will produce the value -1.", &setlist), + &showlist); + + /* FIXME, there should be a way to make a CORE_ADDR variable settable. */ + add_show_from_set + (add_set_cmd ("call_scratch_address", class_support, var_uinteger, + (char *)&text_end, +"Set address in memory where small amounts of RAM can be used\n\ +when making function calls into the inferior.", &setlist), + &showlist); +} diff --git a/gdb/a68v-nat.c b/gdb/a68v-nat.c new file mode 100644 index 0000000000..95bb3c8371 --- /dev/null +++ b/gdb/a68v-nat.c @@ -0,0 +1,123 @@ +/* Host-dependent code for Apollo-68ks for GDB, the GNU debugger. + Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "inferior.h" + +#ifndef _ISP__M68K +#define _ISP__M68K 1 +#endif + +#include + +extern int errno; + +void +fetch_inferior_registers (ignored) + int ignored; +{ + struct ptrace_$data_regs_m68k inferior_registers; + struct ptrace_$floating_regs_m68k inferior_fp_registers; + struct ptrace_$control_regs_m68k inferior_control_registers; + extern char registers[]; + + ptrace_$init_control(&inferior_control_registers); + inferior_fp_registers.size = sizeof(inferior_fp_registers); + + registers_fetched (); + + ptrace (PTRACE_GETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_registers, + ptrace_$data_set, + (PTRACE_ARG3_TYPE) &inferior_registers, + ptrace_$data_set); + + ptrace (PTRACE_GETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_fp_registers, + ptrace_$floating_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_fp_registers, + ptrace_$floating_set_m68k); + + ptrace (PTRACE_GETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_control_registers, + ptrace_$control_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_control_registers, + ptrace_$control_set_m68k); + + bcopy (&inferior_registers, registers, 16 * 4); + bcopy (&inferior_fp_registers, ®isters[REGISTER_BYTE (FP0_REGNUM)], + sizeof inferior_fp_registers.regs); + *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = inferior_control_registers.sr; + *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = inferior_control_registers.pc; +} + +/* Store our register values back into the inferior. + If REGNO is -1, do this for all registers. + Otherwise, REGNO specifies which register (so we can save time). */ + +void +store_inferior_registers (regno) + int regno; +{ + struct ptrace_$data_regs_m68k inferior_registers; + struct ptrace_$floating_regs_m68k inferior_fp_registers; + struct ptrace_$control_regs_m68k inferior_control_registers; + extern char registers[]; + + ptrace_$init_control(&inferior_control_registers); + inferior_fp_registers.size = sizeof(inferior_fp_registers); + + ptrace (PTRACE_GETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_fp_registers, + ptrace_$floating_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_fp_registers, + ptrace_$floating_set_m68k); + + ptrace (PTRACE_GETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_control_registers, + ptrace_$control_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_control_registers, + ptrace_$control_set_m68k); + + bcopy (registers, &inferior_registers, sizeof(inferior_registers)); + + bcopy (®isters[REGISTER_BYTE (FP0_REGNUM)], inferior_fp_registers.regs, + sizeof inferior_fp_registers.regs); + + inferior_control_registers.sr = *(int *)®isters[REGISTER_BYTE (PS_REGNUM)]; + inferior_control_registers.pc = *(int *)®isters[REGISTER_BYTE (PC_REGNUM)]; + + ptrace (PTRACE_SETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_registers, + ptrace_$data_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_registers, + ptrace_$data_set_m68k); + + ptrace (PTRACE_SETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_fp_registers, + ptrace_$floating_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_fp_registers, + ptrace_$floating_set_m68k); + + ptrace (PTRACE_SETREGS, inferior_pid, + (PTRACE_ARG3_TYPE) &inferior_control_registers, + ptrace_$control_set_m68k, + (PTRACE_ARG3_TYPE) &inferior_control_registers, + ptrace_$control_set_m68k); +} diff --git a/gdb/abug-rom.c b/gdb/abug-rom.c new file mode 100644 index 0000000000..97ff0f8d32 --- /dev/null +++ b/gdb/abug-rom.c @@ -0,0 +1,169 @@ +/* Remote debugging interface for ABug Rom monitor for GDB, the GNU debugger. + Copyright 1995, 1996, 1998 Free Software Foundation, Inc. + + Written by Rob Savoye of Cygnus Support + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "gdbcore.h" +#include "target.h" +#include "monitor.h" +#include "serial.h" + +/* Prototypes for local functions. */ + +static void abug_open PARAMS ((char *args, int from_tty)); + +static void +abug_supply_register (regname, regnamelen, val, vallen) + char *regname; + int regnamelen; + char *val; + int vallen; +{ + int regno; + + if (regnamelen != 2) + return; + + switch (regname[0]) + { + case 'S': + if (regname[1] != 'R') + return; + regno = PS_REGNUM; + break; + case 'P': + if (regname[1] != 'C') + return; + regno = PC_REGNUM; + break; + case 'D': + if (regname[1] < '0' || regname[1] > '7') + return; + regno = regname[1] - '0' + D0_REGNUM; + break; + case 'A': + if (regname[1] < '0' || regname[1] > '7') + return; + regno = regname[1] - '0' + A0_REGNUM; + break; + default: + return; + } + + monitor_supply_register (regno, val); +} + +/* + * This array of registers needs to match the indexes used by GDB. The + * whole reason this exists is because the various ROM monitors use + * different names than GDB does, and don't support all the + * registers either. So, typing "info reg sp" becomes an "A7". + */ + +static char *abug_regnames[NUM_REGS] = +{ + "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", + "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", + "PC", +}; + +/* + * Define the monitor command strings. Since these are passed directly + * through to a printf style function, we need can include formatting + * strings. We also need a CR or LF on the end. + */ + +static struct target_ops abug_ops; + +static char *abug_inits[] = {"\r", NULL}; + +static struct monitor_ops abug_cmds ; + +static void +init_abug_cmds(void) +{ + abug_cmds.flags = MO_CLR_BREAK_USES_ADDR; + abug_cmds.init = abug_inits; /* Init strings */ + abug_cmds.cont = "g\r"; /* continue command */ + abug_cmds.step = "t\r"; /* single step */ + abug_cmds.stop = NULL; /* interrupt command */ + abug_cmds.set_break = "br %x\r"; /* set a breakpoint */ + abug_cmds.clr_break = "nobr %x\r"; /* clear a breakpoint */ + abug_cmds.clr_all_break = "nobr\r"; /* clear all breakpoints */ + abug_cmds.fill = "bf %x:%x %x;b\r"; /* fill (start count val) */ + abug_cmds.setmem.cmdb = "ms %x %02x\r"; /* setmem.cmdb (addr, value) */ + abug_cmds.setmem.cmdw = "ms %x %04x\r"; /* setmem.cmdw (addr, value) */ + abug_cmds.setmem.cmdl = "ms %x %08x\r"; /* setmem.cmdl (addr, value) */ + abug_cmds.setmem.cmdll = NULL; /* setmem.cmdll (addr, value) */ + abug_cmds.setmem.resp_delim = NULL; /* setreg.resp_delim */ + abug_cmds.setmem.term = NULL; /* setreg.term */ + abug_cmds.setmem.term_cmd = NULL; /* setreg.term_cmd */ + abug_cmds.getmem.cmdb = "md %x:%x;b\r"; /* getmem.cmdb (addr, len) */ + abug_cmds.getmem.cmdw = "md %x:%x;b\r"; /* getmem.cmdw (addr, len) */ + abug_cmds.getmem.cmdl = "md %x:%x;b\r"; /* getmem.cmdl (addr, len) */ + abug_cmds.getmem.cmdll = NULL; /* getmem.cmdll (addr, len) */ + abug_cmds.getmem.resp_delim = " "; /* getmem.resp_delim */ + abug_cmds.getmem.term = NULL; /* getmem.term */ + abug_cmds.getmem.term_cmd = NULL; /* getmem.term_cmd */ + abug_cmds.setreg.cmd = "rm %s %x\r"; /* setreg.cmd (name, value) */ + abug_cmds.setreg.resp_delim = "="; /* setreg.resp_delim */ + abug_cmds.setreg.term = "? "; /* setreg.term */ + abug_cmds.setreg.term_cmd = ".\r" ; /* setreg.term_cmd */ + abug_cmds.getreg.cmd = "rm %s\r"; /* getreg.cmd (name) */ + abug_cmds.getreg.resp_delim = "="; /* getreg.resp_delim */ + abug_cmds.getreg.term = "? "; /* getreg.term */ + abug_cmds.getreg.term_cmd = ".\r" ; /* getreg.term_cmd */ + abug_cmds.dump_registers = "rd\r"; /* dump_registers */ + abug_cmds.register_pattern = "\\(\\w+\\) +=\\([0-9a-fA-F]+\\b\\)"; /* register_pattern */ + abug_cmds.supply_register = abug_supply_register; /* supply_register */ + abug_cmds.load_routine = NULL; /* load_routine (defaults to SRECs) */ + abug_cmds.load = "lo 0\r"; /* download command */ + abug_cmds.loadresp = "\n"; /* load response */ + abug_cmds.prompt = "135Bug>"; /* monitor command prompt */ + abug_cmds.line_term = "\r"; /* end-of-line terminator */ + abug_cmds.cmd_end = NULL; /* optional command terminator */ + abug_cmds.target = &abug_ops; /* target operations */ + abug_cmds.stopbits = SERIAL_1_STOPBITS; /* number of stop bits */ + abug_cmds.regnames = abug_regnames; /* registers names */ + abug_cmds.magic = MONITOR_OPS_MAGIC ; /* magic */ +}; + +static void +abug_open(args, from_tty) + char *args; + int from_tty; +{ + monitor_open (args, &abug_cmds, from_tty); +} + +void +_initialize_abug_rom () +{ + init_abug_cmds() ; + init_monitor_ops (&abug_ops); + + abug_ops.to_shortname = "abug"; + abug_ops.to_longname = "ABug monitor"; + abug_ops.to_doc = "Debug via the ABug monitor.\n\ +Specify the serial device it is connected to (e.g. /dev/ttya)."; + abug_ops.to_open = abug_open; + + add_target (&abug_ops); +} diff --git a/gdb/acconfig.h b/gdb/acconfig.h new file mode 100644 index 0000000000..9ad502094f --- /dev/null +++ b/gdb/acconfig.h @@ -0,0 +1,95 @@ + +/* Whether malloc must be declared even if is included. */ +#undef NEED_DECLARATION_MALLOC + +/* Whether realloc must be declared even if is included. */ +#undef NEED_DECLARATION_REALLOC + +/* Whether free must be declared even if is included. */ +#undef NEED_DECLARATION_FREE + +/* Whether strerror must be declared even if is included. */ +#undef NEED_DECLARATION_STRERROR +@TOP@ + +/* Define if pstatus_t type is available */ +#undef HAVE_PSTATUS_T + +/* Define if prrun_t type is available */ +#undef HAVE_PRRUN_T + +/* Define if fpregset_t type is available. */ +#undef HAVE_FPREGSET_T + +/* Define if gregset_t type is available. */ +#undef HAVE_GREGSET_T + +/* Define if ioctl argument PIOCSET is available. */ +#undef HAVE_PROCFS_PIOCSET + +/* /proc PID entries are directories containing the files + ctl as map status */ +#undef HAVE_MULTIPLE_PROC_FDS + +/* Define if the `long long' type works. */ +#undef CC_HAS_LONG_LONG + +/* Define if the "ll" format works to print long long ints. */ +#undef PRINTF_HAS_LONG_LONG + +/* Define if the "%Lg" format works to print long doubles. */ +#undef PRINTF_HAS_LONG_DOUBLE + +/* Define if the "%Lg" format works to scan long doubles. */ +#undef SCANF_HAS_LONG_DOUBLE + +/* Define if using Solaris thread debugging. */ +#undef HAVE_THREAD_DB_LIB + +/* Define on a GNU/Linux system to work around problems in sys/procfs.h. */ +#undef START_INFERIOR_TRAPS_EXPECTED +#undef sys_quotactl + +/* Define if you have HPUX threads */ +#undef HAVE_HPUX_THREAD_SUPPORT + +/* Define if you want to use the memory mapped malloc package (mmalloc). */ +#undef USE_MMALLOC + +/* Define if the runtime uses a routine from mmalloc before gdb has a chance + to initialize mmalloc, and we want to force checking to be used anyway. + This may cause spurious memory corruption messages if the runtime tries + to explicitly deallocate that memory when gdb calls exit. */ +#undef MMCHECK_FORCE + +/* Define to 1 if NLS is requested. */ +#undef ENABLE_NLS + +/* Define as 1 if you have catgets and don't want to use GNU gettext. */ +#undef HAVE_CATGETS + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +#undef HAVE_GETTEXT + +/* Define as 1 if you have the stpcpy function. */ +#undef HAVE_STPCPY + +/* Define if your locale.h file contains LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define if you want to use the full-screen terminal user interface. */ +#undef TUI + +/* Define if on solaris uses int instead of + size_t, and assorted other type changes. */ +#undef PROC_SERVICE_IS_OLD + +/* If you want to specify a default CPU variant, define this to be its + name, as a C string. */ +#undef TARGET_CPU_DEFAULT + +/* Set to true if the save_state_t structure is present */ +#define HAVE_STRUCT_SAVE_STATE_T 0 + +/* Set to true if the save_state_t structure has the ss_wide member */ +#define HAVE_STRUCT_MEMBER_SS_WIDE 0 diff --git a/gdb/acinclude.m4 b/gdb/acinclude.m4 new file mode 100644 index 0000000000..43a0b0d57e --- /dev/null +++ b/gdb/acinclude.m4 @@ -0,0 +1,861 @@ +dnl written by Rob Savoye for Cygnus Support +dnl major rewriting for Tcl 7.5 by Don Libes + +dnl gdb/configure.in uses BFD_NEED_DECLARATION, so get its definition. +sinclude(../bfd/acinclude.m4) + +dnl This gets the standard macros, like the TCL, TK, etc ones. +sinclude(../config/acinclude.m4) + +dnl CYGNUS LOCAL: This gets the right posix flag for gcc +AC_DEFUN(CY_AC_TCL_LYNX_POSIX, +[AC_REQUIRE([AC_PROG_CC])AC_REQUIRE([AC_PROG_CPP]) +AC_MSG_CHECKING([if running LynxOS]) +AC_CACHE_VAL(ac_cv_os_lynx, +[AC_EGREP_CPP(yes, +[/* + * The old Lynx "cc" only defines "Lynx", but the newer one uses "__Lynx__" + */ +#if defined(__Lynx__) || defined(Lynx) +yes +#endif +], ac_cv_os_lynx=yes, ac_cv_os_lynx=no)]) +# +if test "$ac_cv_os_lynx" = "yes" ; then + AC_MSG_RESULT(yes) + AC_DEFINE(LYNX) + AC_MSG_CHECKING([whether -mposix or -X is available]) + AC_CACHE_VAL(ac_cv_c_posix_flag, + [AC_TRY_COMPILE(,[ + /* + * This flag varies depending on how old the compiler is. + * -X is for the old "cc" and "gcc" (based on 1.42). + * -mposix is for the new gcc (at least 2.5.8). + */ + #if defined(__GNUC__) && __GNUC__ >= 2 + choke me + #endif + ], ac_cv_c_posix_flag=" -mposix", ac_cv_c_posix_flag=" -X")]) + CC="$CC $ac_cv_c_posix_flag" + AC_MSG_RESULT($ac_cv_c_posix_flag) + else + AC_MSG_RESULT(no) +fi +]) + +# +# Sometimes the native compiler is a bogus stub for gcc or /usr/ucb/cc. This +# makes configure think it's cross compiling. If --target wasn't used, then +# we can't configure, so something is wrong. We don't use the cache +# here cause if somebody fixes their compiler install, we want this to work. +AC_DEFUN(CY_AC_C_WORKS, +[# If we cannot compile and link a trivial program, we can't expect anything to work +AC_MSG_CHECKING(whether the compiler ($CC) actually works) +AC_TRY_COMPILE(, [/* don't need anything here */], + c_compiles=yes, c_compiles=no) + +AC_TRY_LINK(, [/* don't need anything here */], + c_links=yes, c_links=no) + +if test x"${c_compiles}" = x"no" ; then + AC_MSG_ERROR(the native compiler is broken and won't compile.) +fi + +if test x"${c_links}" = x"no" ; then + AC_MSG_ERROR(the native compiler is broken and won't link.) +fi +AC_MSG_RESULT(yes) +]) + +AC_DEFUN(CY_AC_PATH_TCLH, [ +# +# Ok, lets find the tcl source trees so we can use the headers +# Warning: transition of version 9 to 10 will break this algorithm +# because 10 sorts before 9. We also look for just tcl. We have to +# be careful that we don't match stuff like tclX by accident. +# the alternative search directory is involked by --with-tclinclude +# + +no_tcl=true +AC_MSG_CHECKING(for Tcl private headers. dir=${configdir}) +AC_ARG_WITH(tclinclude, [ --with-tclinclude=DIR Directory where tcl private headers are], with_tclinclude=${withval}) +AC_CACHE_VAL(ac_cv_c_tclh,[ +# first check to see if --with-tclinclude was specified +if test x"${with_tclinclude}" != x ; then + if test -f ${with_tclinclude}/tclInt.h ; then + ac_cv_c_tclh=`(cd ${with_tclinclude}; pwd)` + elif test -f ${with_tclinclude}/generic/tclInt.h ; then + ac_cv_c_tclh=`(cd ${with_tclinclude}/generic; pwd)` + else + AC_MSG_ERROR([${with_tclinclude} directory doesn't contain private headers]) + fi +fi + +# next check if it came with Tcl configuration file +if test x"${ac_cv_c_tclconfig}" = x ; then + if test -f $ac_cv_c_tclconfig/../generic/tclInt.h ; then + ac_cv_c_tclh=`(cd $ac_cv_c_tclconfig/..; pwd)` + fi +fi + +# next check in private source directory +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tclh}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[7-9]]* 2>/dev/null` \ + ${srcdir}/../../tcl \ + `ls -dr ${srcdir}/../../tcl[[7-9]]* 2>/dev/null` \ + ${srcdir}/../../../tcl \ + `ls -dr ${srcdir}/../../../tcl[[7-9]]* 2>/dev/null ` ; do + if test -f $i/generic/tclInt.h ; then + ac_cv_c_tclh=`(cd $i/generic; pwd)` + break + fi + done +fi +# finally check in a few common install locations +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tclh}" = x ; then + for i in \ + `ls -dr /usr/local/src/tcl[[7-9]]* 2>/dev/null` \ + `ls -dr /usr/local/lib/tcl[[7-9]]* 2>/dev/null` \ + /usr/local/src/tcl \ + /usr/local/lib/tcl \ + ${prefix}/include ; do + if test -f $i/generic/tclInt.h ; then + ac_cv_c_tclh=`(cd $i/generic; pwd)` + break + fi + done +fi +# see if one is installed +if test x"${ac_cv_c_tclh}" = x ; then + AC_HEADER_CHECK(tclInt.h, ac_cv_c_tclh=installed, ac_cv_c_tclh="") +fi +]) +if test x"${ac_cv_c_tclh}" = x ; then + TCLHDIR="# no Tcl private headers found" + AC_MSG_ERROR([Can't find Tcl private headers]) +fi +if test x"${ac_cv_c_tclh}" != x ; then + no_tcl="" + if test x"${ac_cv_c_tclh}" = x"installed" ; then + AC_MSG_RESULT([is installed]) + TCLHDIR="" + else + AC_MSG_RESULT([found in ${ac_cv_c_tclh}]) + # this hack is cause the TCLHDIR won't print if there is a "-I" in it. + TCLHDIR="-I${ac_cv_c_tclh}" + fi +fi + +AC_SUBST(TCLHDIR) +]) + + +AC_DEFUN(CY_AC_PATH_TCLCONFIG, [ +# +# Ok, lets find the tcl configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-tclconfig +# + +if test x"${no_tcl}" = x ; then + # we reset no_tcl in case something fails here + no_tcl=true + AC_ARG_WITH(tclconfig, [ --with-tclconfig=DIR Directory containing tcl configuration (tclConfig.sh)], + with_tclconfig=${withval}) + AC_MSG_CHECKING([for Tcl configuration]) + AC_CACHE_VAL(ac_cv_c_tclconfig,[ + + # First check to see if --with-tclconfig was specified. + if test x"${with_tclconfig}" != x ; then + if test -f "${with_tclconfig}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` + else + AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) + fi + fi + + # then check for a private Tcl installation + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ../tcl \ + `ls -dr ../tcl[[7-9]]* 2>/dev/null` \ + ../../tcl \ + `ls -dr ../../tcl[[7-9]]* 2>/dev/null` \ + ../../../tcl \ + `ls -dr ../../../tcl[[7-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[7-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tclconfig}" = x ; then + TCLCONFIG="# no Tcl configs found" + AC_MSG_WARN(Can't find Tcl configuration definitions) + else + no_tcl= + TCLCONFIG=${ac_cv_c_tclconfig}/tclConfig.sh + AC_MSG_RESULT(found $TCLCONFIG) + fi +fi +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_TCLCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_TCLCONFIG, [ + . $TCLCONFIG + + AC_SUBST(TCL_VERSION) + AC_SUBST(TCL_MAJOR_VERSION) + AC_SUBST(TCL_MINOR_VERSION) + AC_SUBST(TCL_CC) + AC_SUBST(TCL_DEFS) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_LIB_FILE) + +dnl don't export, not used outside of configure +dnl AC_SUBST(TCL_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_EXEC_PREFIX) + + AC_SUBST(TCL_SHLIB_CFLAGS) + AC_SUBST(TCL_SHLIB_LD) +dnl don't export, not used outside of configure + AC_SUBST(TCL_SHLIB_LD_LIBS) + AC_SUBST(TCL_SHLIB_SUFFIX) +dnl not used, don't export to save symbols + AC_SUBST(TCL_DL_LIBS) + AC_SUBST(TCL_LD_FLAGS) +dnl don't export, not used outside of configure + AC_SUBST(TCL_LD_SEARCH_FLAGS) + AC_SUBST(TCL_COMPAT_OBJS) + AC_SUBST(TCL_RANLIB) + AC_SUBST(TCL_BUILD_LIB_SPEC) + AC_SUBST(TCL_LIB_SPEC) + AC_SUBST(TCL_LIB_VERSIONS_OK) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_SHARED_LIB_SUFFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_UNSHARED_LIB_SUFFIX) +]) + +# Warning: Tk definitions are very similar to Tcl definitions but +# are not precisely the same. There are a couple of differences, +# so don't do changes to Tcl thinking you can cut and paste it do +# the Tk differences and later simply substitute "Tk" for "Tcl". +# Known differences: +# - Acceptable Tcl major version #s is 7-9 while Tk is 4-9 +# - Searching for Tcl includes looking for tclInt.h, Tk looks for tk.h +# - Computing major/minor versions is different because Tk depends on +# headers to Tcl, Tk, and X. +# - Symbols in tkConfig.sh are different than tclConfig.sh +# - Acceptable for Tk to be missing but not Tcl. + +AC_DEFUN(CY_AC_PATH_TKH, [ +# +# Ok, lets find the tk source trees so we can use the headers +# If the directory (presumably symlink) named "tk" exists, use that one +# in preference to any others. Same logic is used when choosing library +# and again with Tcl. The search order is the best place to look first, then in +# decreasing significance. The loop breaks if the trigger file is found. +# Note the gross little conversion here of srcdir by cd'ing to the found +# directory. This converts the path from a relative to an absolute, so +# recursive cache variables for the path will work right. We check all +# the possible paths in one loop rather than many seperate loops to speed +# things up. +# the alternative search directory is involked by --with-tkinclude +# +no_tk=true +AC_MSG_CHECKING(for Tk private headers) +AC_ARG_WITH(tkinclude, [ --with-tkinclude=DIR Directory where tk private headers are], with_tkinclude=${withval}) +AC_CACHE_VAL(ac_cv_c_tkh,[ +# first check to see if --with-tkinclude was specified +if test x"${with_tkinclude}" != x ; then + if test -f ${with_tkinclude}/tk.h ; then + ac_cv_c_tkh=`(cd ${with_tkinclude}; pwd)` + elif test -f ${with_tkinclude}/generic/tk.h ; then + ac_cv_c_tkh=`(cd ${with_tkinclude}/generic; pwd)` + else + AC_MSG_ERROR([${with_tkinclude} directory doesn't contain private headers]) + fi +fi + +# next check if it came with Tk configuration file +if test x"${ac_cv_c_tkconfig}" = x ; then + if test -f $ac_cv_c_tkconfig/../generic/tk.h ; then + ac_cv_c_tkh=`(cd $ac_cv_c_tkconfig/..; pwd)` + fi +fi + +# next check in private source directory +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tkh}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[4-9]]* 2>/dev/null` \ + ${srcdir}/../../tk \ + `ls -dr ${srcdir}/../../tk[[4-9]]* 2>/dev/null` \ + ${srcdir}/../../../tk \ + `ls -dr ${srcdir}/../../../tk[[4-9]]* 2>/dev/null ` ; do + if test -f $i/generic/tk.h ; then + ac_cv_c_tkh=`(cd $i/generic; pwd)` + break + fi + done +fi +# finally check in a few common install locations +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tkh}" = x ; then + for i in \ + `ls -dr /usr/local/src/tk[[4-9]]* 2>/dev/null` \ + `ls -dr /usr/local/lib/tk[[4-9]]* 2>/dev/null` \ + /usr/local/src/tk \ + /usr/local/lib/tk \ + ${prefix}/include ; do + if test -f $i/generic/tk.h ; then + ac_cv_c_tkh=`(cd $i/generic; pwd)` + break + fi + done +fi +# see if one is installed +if test x"${ac_cv_c_tkh}" = x ; then + AC_HEADER_CHECK(tk.h, ac_cv_c_tkh=installed, ac_cv_c_tkh="") +fi +]) +if test x"${ac_cv_c_tkh}" != x ; then + no_tk="" + if test x"${ac_cv_c_tkh}" = x"installed" ; then + AC_MSG_RESULT([is installed]) + TKHDIR="" + else + AC_MSG_RESULT([found in ${ac_cv_c_tkh}]) + # this hack is cause the TKHDIR won't print if there is a "-I" in it. + TKHDIR="-I${ac_cv_c_tkh}" + fi +else + TKHDIR="# no Tk directory found" + AC_MSG_WARN([Can't find Tk private headers]) + no_tk=true +fi + +AC_SUBST(TKHDIR) +]) + + +AC_DEFUN(CY_AC_PATH_TKCONFIG, [ +# +# Ok, lets find the tk configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-tkconfig +# + +if test x"${no_tk}" = x ; then + # we reset no_tk in case something fails here + no_tk=true + AC_ARG_WITH(tkconfig, [ --with-tkconfig=DIR Directory containing tk configuration (tkConfig.sh)], + with_tkconfig=${withval}) + AC_MSG_CHECKING([for Tk configuration]) + AC_CACHE_VAL(ac_cv_c_tkconfig,[ + + # First check to see if --with-tkconfig was specified. + if test x"${with_tkconfig}" != x ; then + if test -f "${with_tkconfig}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` + else + AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) + fi + fi + + # then check for a private Tk library + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ../tk \ + `ls -dr ../tk[[4-9]]* 2>/dev/null` \ + ../../tk \ + `ls -dr ../../tk[[4-9]]* 2>/dev/null` \ + ../../../tk \ + `ls -dr ../../../tk[[4-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[4-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tkconfig}" = x ; then + TKCONFIG="# no Tk configs found" + AC_MSG_WARN(Can't find Tk configuration definitions) + else + no_tk= + TKCONFIG=${ac_cv_c_tkconfig}/tkConfig.sh + AC_MSG_RESULT(found $TKCONFIG) + fi +fi + +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_TKCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_TKCONFIG, [ + if test -f "$TKCONFIG" ; then + . $TKCONFIG + fi + + AC_SUBST(TK_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(TK_MAJOR_VERSION) +dnl AC_SUBST(TK_MINOR_VERSION) + AC_SUBST(TK_DEFS) + +dnl not used, don't export to save symbols + dnl AC_SUBST(TK_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(TK_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(TK_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TK_EXEC_PREFIX) + + AC_SUBST(TK_BUILD_INCLUDES) + AC_SUBST(TK_XINCLUDES) + AC_SUBST(TK_XLIBSW) + AC_SUBST(TK_BUILD_LIB_SPEC) + AC_SUBST(TK_LIB_SPEC) +]) + +# check for Itcl headers. + +AC_DEFUN(CY_AC_PATH_ITCLCONFIG, [ +# +# Ok, lets find the itcl configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-itclconfig +# + +if test x"${no_itcl}" = x ; then + # we reset no_itcl in case something fails here + no_itcl=true + AC_ARG_WITH(itclconfig, [ --with-itclconfig directory containing itcl configuration (itclConfig.sh)], + with_itclconfig=${withval}) + AC_MSG_CHECKING([for Itcl configuration]) + AC_CACHE_VAL(ac_cv_c_itclconfig,[ + + # First check to see if --with-itclconfig was specified. + if test x"${with_itclconfig}" != x ; then + if test -f "${with_itclconfig}/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd ${with_itclconfig}; pwd)` + else + AC_MSG_ERROR([${with_itclconfig} directory doesn't contain itclConfig.sh]) + fi + fi + + # then check for a private Itcl library + if test x"${ac_cv_c_itclconfig}" = x ; then + for i in \ + ../itcl/itcl \ + `ls -dr ../itcl[[4-9]]*/itcl 2>/dev/null` \ + ../../itcl \ + `ls -dr ../../itcl[[4-9]]*/itcl 2>/dev/null` \ + ../../../itcl \ + `ls -dr ../../../itcl[[4-9]]*/itcl 2>/dev/null` ; do + if test -f "$i/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_itclconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_itclconfig}" = x ; then + for i in \ + ${srcdir}/../itcl/itcl \ + `ls -dr ${srcdir}/../itcl[[4-9]]*/itcl 2>/dev/null` ; do + if test -f "$i/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd $i; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_itclconfig}" = x ; then + ITCLCONFIG="# no Itcl configs found" + AC_MSG_WARN(Can't find Itcl configuration definitions) + else + no_itcl= + ITCLCONFIG=${ac_cv_c_itclconfig}/itclConfig.sh + AC_MSG_RESULT(found $ITCLCONFIG) + fi +fi +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_ITCLCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_ITCLCONFIG, [ + if test -f "$ITCLCONFIG" ; then + . $ITCLCONFIG + fi + + AC_SUBST(ITCL_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(ITCL_MAJOR_VERSION) +dnl AC_SUBST(ITCL_MINOR_VERSION) + AC_SUBST(ITCL_DEFS) + +dnl not used, don't export to save symbols + dnl AC_SUBST(ITCL_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(ITCL_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(ITCL_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(ITCL_EXEC_PREFIX) + + AC_SUBST(ITCL_BUILD_INCLUDES) + AC_SUBST(ITCL_BUILD_LIB_SPEC) + AC_SUBST(ITCL_LIB_SPEC) +]) + +# check for Itcl headers. + +AC_DEFUN(CY_AC_PATH_ITCLH, [ +AC_MSG_CHECKING(for Itcl private headers. srcdir=${srcdir}) +if test x"${ac_cv_c_itclh}" = x ; then + for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itcl; do + if test -f $i/generic/itcl.h ; then + ac_cv_c_itclh=`(cd $i/generic; pwd)` + break + fi + done +fi +if test x"${ac_cv_c_itclh}" = x ; then + ITCLHDIR="# no Itcl private headers found" + AC_MSG_ERROR([Can't find Itcl private headers]) +fi +if test x"${ac_cv_c_itclh}" != x ; then + ITCLHDIR="-I${ac_cv_c_itclh}" +fi +# should always be here +# ITCLLIB="../itcl/itcl/unix/libitcl.a" +AC_SUBST(ITCLHDIR) +#AC_SUBST(ITCLLIB) +]) + + +AC_DEFUN(CY_AC_PATH_ITKCONFIG, [ +# +# Ok, lets find the itk configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-itkconfig +# + +if test x"${no_itk}" = x ; then + # we reset no_itk in case something fails here + no_itk=true + AC_ARG_WITH(itkconfig, [ --with-itkconfig directory containing itk configuration (itkConfig.sh)], + with_itkconfig=${withval}) + AC_MSG_CHECKING([for Itk configuration]) + AC_CACHE_VAL(ac_cv_c_itkconfig,[ + + # First check to see if --with-itkconfig was specified. + if test x"${with_itkconfig}" != x ; then + if test -f "${with_itkconfig}/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd ${with_itkconfig}; pwd)` + else + AC_MSG_ERROR([${with_itkconfig} directory doesn't contain itkConfig.sh]) + fi + fi + + # then check for a private Itk library + if test x"${ac_cv_c_itkconfig}" = x ; then + for i in \ + ../itcl/itk \ + `ls -dr ../itcl[[4-9]]*/itk 2>/dev/null` \ + ../../itk \ + `ls -dr ../../itcl[[4-9]]*/itk 2>/dev/null` \ + ../../../itk \ + `ls -dr ../../../itcl[[4-9]]*/itk 2>/dev/null` ; do + if test -f "$i/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_itkconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_itkconfig}" = x ; then + for i in \ + ${srcdir}/../itcl/itk \ + `ls -dr ${srcdir}/../itcl[[4-9]]*/itk 2>/dev/null` ; do + if test -f "$i/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd $i; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_itkconfig}" = x ; then + ITKCONFIG="# no Itk configs found" + AC_MSG_WARN(Can't find Itk configuration definitions) + else + no_itk= + ITKCONFIG=${ac_cv_c_itkconfig}/itkConfig.sh + AC_MSG_RESULT(found $ITKCONFIG) + fi +fi + +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_ITKCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_ITKCONFIG, [ + if test -f "$ITKCONFIG" ; then + . $ITKCONFIG + fi + + AC_SUBST(ITK_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(ITK_MAJOR_VERSION) +dnl AC_SUBST(ITK_MINOR_VERSION) + AC_SUBST(ITK_DEFS) + +dnl not used, don't export to save symbols + dnl AC_SUBST(ITK_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(ITK_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(ITK_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(ITK_EXEC_PREFIX) + + AC_SUBST(ITK_BUILD_INCLUDES) + AC_SUBST(ITK_BUILD_LIB_SPEC) + AC_SUBST(ITK_LIB_SPEC) +]) + +AC_DEFUN(CY_AC_PATH_ITKH, [ +AC_MSG_CHECKING(for Itk private headers. srcdir=${srcdir}) +if test x"${ac_cv_c_itkh}" = x ; then + for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itk; do + if test -f $i/generic/itk.h ; then + ac_cv_c_itkh=`(cd $i/generic; pwd)` + break + fi + done +fi +if test x"${ac_cv_c_itkh}" = x ; then + ITKHDIR="# no Itk private headers found" + AC_MSG_ERROR([Can't find Itk private headers]) +fi +if test x"${ac_cv_c_itkh}" != x ; then + ITKHDIR="-I${ac_cv_c_itkh}" +fi +# should always be here +# ITKLIB="../itcl/itk/unix/libitk.a" +AC_SUBST(ITKHDIR) +#AC_SUBST(ITKLIB) +]) + +# check for Tix headers. + +AC_DEFUN(CY_AC_PATH_TIXH, [ +AC_MSG_CHECKING(for Tix private headers. srcdir=${srcdir}) +if test x"${ac_cv_c_tixh}" = x ; then + for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do + if test -f $i/generic/tix.h ; then + ac_cv_c_tixh=`(cd $i/generic; pwd)` + break + fi + done +fi +if test x"${ac_cv_c_tixh}" = x ; then + TIXHDIR="# no Tix private headers found" + AC_MSG_ERROR([Can't find Tix private headers]) +fi +if test x"${ac_cv_c_tixh}" != x ; then + TIXHDIR="-I${ac_cv_c_tixh}" +fi +AC_SUBST(TIXHDIR) +]) + +AC_DEFUN(CY_AC_PATH_TIXCONFIG, [ +# +# Ok, lets find the tix configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-itkconfig +# + +if test x"${no_tix}" = x ; then + # we reset no_tix in case something fails here + no_tix=true + AC_ARG_WITH(tixconfig, [ --with-tixconfig directory containing tix configuration (tixConfig.sh)], + with_tixconfig=${withval}) + AC_MSG_CHECKING([for Tix configuration]) + AC_CACHE_VAL(ac_cv_c_tixconfig,[ + + # First check to see if --with-tixconfig was specified. + if test x"${with_tixconfig}" != x ; then + if test -f "${with_tixconfig}/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd ${with_tixconfig}; pwd)` + else + AC_MSG_ERROR([${with_tixconfig} directory doesn't contain tixConfig.sh]) + fi + fi + + # then check for a private Tix library + if test x"${ac_cv_c_tixconfig}" = x ; then + for i in \ + ../tix \ + `ls -dr ../tix 2>/dev/null` \ + ../../tix \ + `ls -dr ../../tix 2>/dev/null` \ + ../../../tix \ + `ls -dr ../../../tix 2>/dev/null` ; do + echo "**** Looking at $i - with ${configdir}" + if test -f "$i/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tixconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + echo "**** Looking at $i" + if test -f "$i/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + echo "**** Other private locations" + if test x"${ac_cv_c_tixconfig}" = x ; then + for i in \ + ${srcdir}/../tix \ + `ls -dr ${srcdir}/../tix 2>/dev/null` ; do + echo "**** Looking at $i - with ${configdir}" + if test -f "$i/${configdir}/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tixconfig}" = x ; then + TIXCONFIG="# no Tix configs found" + AC_MSG_WARN(Can't find Tix configuration definitions) + else + no_tix= + TIXCONFIG=${ac_cv_c_tixconfig}/tixConfig.sh + AC_MSG_RESULT(found $TIXCONFIG) + fi +fi + +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_TIXCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_TIXCONFIG, [ + if test -f "$TIXCONFIG" ; then + . $TIXCONFIG + fi + + AC_SUBST(TIX_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(TIX_MAJOR_VERSION) +dnl AC_SUBST(TIX_MINOR_VERSION) +dnl AC_SUBST(TIX_DEFS) + +dnl not used, don't export to save symbols +dnl dnl AC_SUBST(TIX_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(TIX_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(TIX_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TIX_EXEC_PREFIX) + +dnl AC_SUBST(TIX_BUILD_INCLUDES) + AC_SUBST(TIX_BUILD_LIB_SPEC) +dnl AC_SUBST(TIX_LIB_SPEC) +]) diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4 new file mode 100644 index 0000000000..4fd3658dd6 --- /dev/null +++ b/gdb/aclocal.m4 @@ -0,0 +1,1307 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl written by Rob Savoye for Cygnus Support +dnl major rewriting for Tcl 7.5 by Don Libes + +dnl gdb/configure.in uses BFD_NEED_DECLARATION, so get its definition. +sinclude(../bfd/acinclude.m4) + +dnl This gets the standard macros, like the TCL, TK, etc ones. +sinclude(../config/acinclude.m4) + +dnl CYGNUS LOCAL: This gets the right posix flag for gcc +AC_DEFUN(CY_AC_TCL_LYNX_POSIX, +[AC_REQUIRE([AC_PROG_CC])AC_REQUIRE([AC_PROG_CPP]) +AC_MSG_CHECKING([if running LynxOS]) +AC_CACHE_VAL(ac_cv_os_lynx, +[AC_EGREP_CPP(yes, +[/* + * The old Lynx "cc" only defines "Lynx", but the newer one uses "__Lynx__" + */ +#if defined(__Lynx__) || defined(Lynx) +yes +#endif +], ac_cv_os_lynx=yes, ac_cv_os_lynx=no)]) +# +if test "$ac_cv_os_lynx" = "yes" ; then + AC_MSG_RESULT(yes) + AC_DEFINE(LYNX) + AC_MSG_CHECKING([whether -mposix or -X is available]) + AC_CACHE_VAL(ac_cv_c_posix_flag, + [AC_TRY_COMPILE(,[ + /* + * This flag varies depending on how old the compiler is. + * -X is for the old "cc" and "gcc" (based on 1.42). + * -mposix is for the new gcc (at least 2.5.8). + */ + #if defined(__GNUC__) && __GNUC__ >= 2 + choke me + #endif + ], ac_cv_c_posix_flag=" -mposix", ac_cv_c_posix_flag=" -X")]) + CC="$CC $ac_cv_c_posix_flag" + AC_MSG_RESULT($ac_cv_c_posix_flag) + else + AC_MSG_RESULT(no) +fi +]) + +# +# Sometimes the native compiler is a bogus stub for gcc or /usr/ucb/cc. This +# makes configure think it's cross compiling. If --target wasn't used, then +# we can't configure, so something is wrong. We don't use the cache +# here cause if somebody fixes their compiler install, we want this to work. +AC_DEFUN(CY_AC_C_WORKS, +[# If we cannot compile and link a trivial program, we can't expect anything to work +AC_MSG_CHECKING(whether the compiler ($CC) actually works) +AC_TRY_COMPILE(, [/* don't need anything here */], + c_compiles=yes, c_compiles=no) + +AC_TRY_LINK(, [/* don't need anything here */], + c_links=yes, c_links=no) + +if test x"${c_compiles}" = x"no" ; then + AC_MSG_ERROR(the native compiler is broken and won't compile.) +fi + +if test x"${c_links}" = x"no" ; then + AC_MSG_ERROR(the native compiler is broken and won't link.) +fi +AC_MSG_RESULT(yes) +]) + +AC_DEFUN(CY_AC_PATH_TCLH, [ +# +# Ok, lets find the tcl source trees so we can use the headers +# Warning: transition of version 9 to 10 will break this algorithm +# because 10 sorts before 9. We also look for just tcl. We have to +# be careful that we don't match stuff like tclX by accident. +# the alternative search directory is involked by --with-tclinclude +# + +no_tcl=true +AC_MSG_CHECKING(for Tcl private headers. dir=${configdir}) +AC_ARG_WITH(tclinclude, [ --with-tclinclude=DIR Directory where tcl private headers are], with_tclinclude=${withval}) +AC_CACHE_VAL(ac_cv_c_tclh,[ +# first check to see if --with-tclinclude was specified +if test x"${with_tclinclude}" != x ; then + if test -f ${with_tclinclude}/tclInt.h ; then + ac_cv_c_tclh=`(cd ${with_tclinclude}; pwd)` + elif test -f ${with_tclinclude}/generic/tclInt.h ; then + ac_cv_c_tclh=`(cd ${with_tclinclude}/generic; pwd)` + else + AC_MSG_ERROR([${with_tclinclude} directory doesn't contain private headers]) + fi +fi + +# next check if it came with Tcl configuration file +if test x"${ac_cv_c_tclconfig}" = x ; then + if test -f $ac_cv_c_tclconfig/../generic/tclInt.h ; then + ac_cv_c_tclh=`(cd $ac_cv_c_tclconfig/..; pwd)` + fi +fi + +# next check in private source directory +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tclh}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[7-9]]* 2>/dev/null` \ + ${srcdir}/../../tcl \ + `ls -dr ${srcdir}/../../tcl[[7-9]]* 2>/dev/null` \ + ${srcdir}/../../../tcl \ + `ls -dr ${srcdir}/../../../tcl[[7-9]]* 2>/dev/null ` ; do + if test -f $i/generic/tclInt.h ; then + ac_cv_c_tclh=`(cd $i/generic; pwd)` + break + fi + done +fi +# finally check in a few common install locations +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tclh}" = x ; then + for i in \ + `ls -dr /usr/local/src/tcl[[7-9]]* 2>/dev/null` \ + `ls -dr /usr/local/lib/tcl[[7-9]]* 2>/dev/null` \ + /usr/local/src/tcl \ + /usr/local/lib/tcl \ + ${prefix}/include ; do + if test -f $i/generic/tclInt.h ; then + ac_cv_c_tclh=`(cd $i/generic; pwd)` + break + fi + done +fi +# see if one is installed +if test x"${ac_cv_c_tclh}" = x ; then + AC_HEADER_CHECK(tclInt.h, ac_cv_c_tclh=installed, ac_cv_c_tclh="") +fi +]) +if test x"${ac_cv_c_tclh}" = x ; then + TCLHDIR="# no Tcl private headers found" + AC_MSG_ERROR([Can't find Tcl private headers]) +fi +if test x"${ac_cv_c_tclh}" != x ; then + no_tcl="" + if test x"${ac_cv_c_tclh}" = x"installed" ; then + AC_MSG_RESULT([is installed]) + TCLHDIR="" + else + AC_MSG_RESULT([found in ${ac_cv_c_tclh}]) + # this hack is cause the TCLHDIR won't print if there is a "-I" in it. + TCLHDIR="-I${ac_cv_c_tclh}" + fi +fi + +AC_SUBST(TCLHDIR) +]) + + +AC_DEFUN(CY_AC_PATH_TCLCONFIG, [ +# +# Ok, lets find the tcl configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-tclconfig +# + +if test x"${no_tcl}" = x ; then + # we reset no_tcl in case something fails here + no_tcl=true + AC_ARG_WITH(tclconfig, [ --with-tclconfig=DIR Directory containing tcl configuration (tclConfig.sh)], + with_tclconfig=${withval}) + AC_MSG_CHECKING([for Tcl configuration]) + AC_CACHE_VAL(ac_cv_c_tclconfig,[ + + # First check to see if --with-tclconfig was specified. + if test x"${with_tclconfig}" != x ; then + if test -f "${with_tclconfig}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` + else + AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) + fi + fi + + # then check for a private Tcl installation + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ../tcl \ + `ls -dr ../tcl[[7-9]]* 2>/dev/null` \ + ../../tcl \ + `ls -dr ../../tcl[[7-9]]* 2>/dev/null` \ + ../../../tcl \ + `ls -dr ../../../tcl[[7-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_tclconfig}" = x ; then + for i in \ + ${srcdir}/../tcl \ + `ls -dr ${srcdir}/../tcl[[7-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tclConfig.sh" ; then + ac_cv_c_tclconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tclconfig}" = x ; then + TCLCONFIG="# no Tcl configs found" + AC_MSG_WARN(Can't find Tcl configuration definitions) + else + no_tcl= + TCLCONFIG=${ac_cv_c_tclconfig}/tclConfig.sh + AC_MSG_RESULT(found $TCLCONFIG) + fi +fi +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_TCLCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_TCLCONFIG, [ + . $TCLCONFIG + + AC_SUBST(TCL_VERSION) + AC_SUBST(TCL_MAJOR_VERSION) + AC_SUBST(TCL_MINOR_VERSION) + AC_SUBST(TCL_CC) + AC_SUBST(TCL_DEFS) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_LIB_FILE) + +dnl don't export, not used outside of configure +dnl AC_SUBST(TCL_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_EXEC_PREFIX) + + AC_SUBST(TCL_SHLIB_CFLAGS) + AC_SUBST(TCL_SHLIB_LD) +dnl don't export, not used outside of configure + AC_SUBST(TCL_SHLIB_LD_LIBS) + AC_SUBST(TCL_SHLIB_SUFFIX) +dnl not used, don't export to save symbols + AC_SUBST(TCL_DL_LIBS) + AC_SUBST(TCL_LD_FLAGS) +dnl don't export, not used outside of configure + AC_SUBST(TCL_LD_SEARCH_FLAGS) + AC_SUBST(TCL_COMPAT_OBJS) + AC_SUBST(TCL_RANLIB) + AC_SUBST(TCL_BUILD_LIB_SPEC) + AC_SUBST(TCL_LIB_SPEC) + AC_SUBST(TCL_LIB_VERSIONS_OK) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_SHARED_LIB_SUFFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TCL_UNSHARED_LIB_SUFFIX) +]) + +# Warning: Tk definitions are very similar to Tcl definitions but +# are not precisely the same. There are a couple of differences, +# so don't do changes to Tcl thinking you can cut and paste it do +# the Tk differences and later simply substitute "Tk" for "Tcl". +# Known differences: +# - Acceptable Tcl major version #s is 7-9 while Tk is 4-9 +# - Searching for Tcl includes looking for tclInt.h, Tk looks for tk.h +# - Computing major/minor versions is different because Tk depends on +# headers to Tcl, Tk, and X. +# - Symbols in tkConfig.sh are different than tclConfig.sh +# - Acceptable for Tk to be missing but not Tcl. + +AC_DEFUN(CY_AC_PATH_TKH, [ +# +# Ok, lets find the tk source trees so we can use the headers +# If the directory (presumably symlink) named "tk" exists, use that one +# in preference to any others. Same logic is used when choosing library +# and again with Tcl. The search order is the best place to look first, then in +# decreasing significance. The loop breaks if the trigger file is found. +# Note the gross little conversion here of srcdir by cd'ing to the found +# directory. This converts the path from a relative to an absolute, so +# recursive cache variables for the path will work right. We check all +# the possible paths in one loop rather than many seperate loops to speed +# things up. +# the alternative search directory is involked by --with-tkinclude +# +no_tk=true +AC_MSG_CHECKING(for Tk private headers) +AC_ARG_WITH(tkinclude, [ --with-tkinclude=DIR Directory where tk private headers are], with_tkinclude=${withval}) +AC_CACHE_VAL(ac_cv_c_tkh,[ +# first check to see if --with-tkinclude was specified +if test x"${with_tkinclude}" != x ; then + if test -f ${with_tkinclude}/tk.h ; then + ac_cv_c_tkh=`(cd ${with_tkinclude}; pwd)` + elif test -f ${with_tkinclude}/generic/tk.h ; then + ac_cv_c_tkh=`(cd ${with_tkinclude}/generic; pwd)` + else + AC_MSG_ERROR([${with_tkinclude} directory doesn't contain private headers]) + fi +fi + +# next check if it came with Tk configuration file +if test x"${ac_cv_c_tkconfig}" = x ; then + if test -f $ac_cv_c_tkconfig/../generic/tk.h ; then + ac_cv_c_tkh=`(cd $ac_cv_c_tkconfig/..; pwd)` + fi +fi + +# next check in private source directory +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tkh}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[4-9]]* 2>/dev/null` \ + ${srcdir}/../../tk \ + `ls -dr ${srcdir}/../../tk[[4-9]]* 2>/dev/null` \ + ${srcdir}/../../../tk \ + `ls -dr ${srcdir}/../../../tk[[4-9]]* 2>/dev/null ` ; do + if test -f $i/generic/tk.h ; then + ac_cv_c_tkh=`(cd $i/generic; pwd)` + break + fi + done +fi +# finally check in a few common install locations +# +# since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_c_tkh}" = x ; then + for i in \ + `ls -dr /usr/local/src/tk[[4-9]]* 2>/dev/null` \ + `ls -dr /usr/local/lib/tk[[4-9]]* 2>/dev/null` \ + /usr/local/src/tk \ + /usr/local/lib/tk \ + ${prefix}/include ; do + if test -f $i/generic/tk.h ; then + ac_cv_c_tkh=`(cd $i/generic; pwd)` + break + fi + done +fi +# see if one is installed +if test x"${ac_cv_c_tkh}" = x ; then + AC_HEADER_CHECK(tk.h, ac_cv_c_tkh=installed, ac_cv_c_tkh="") +fi +]) +if test x"${ac_cv_c_tkh}" != x ; then + no_tk="" + if test x"${ac_cv_c_tkh}" = x"installed" ; then + AC_MSG_RESULT([is installed]) + TKHDIR="" + else + AC_MSG_RESULT([found in ${ac_cv_c_tkh}]) + # this hack is cause the TKHDIR won't print if there is a "-I" in it. + TKHDIR="-I${ac_cv_c_tkh}" + fi +else + TKHDIR="# no Tk directory found" + AC_MSG_WARN([Can't find Tk private headers]) + no_tk=true +fi + +AC_SUBST(TKHDIR) +]) + + +AC_DEFUN(CY_AC_PATH_TKCONFIG, [ +# +# Ok, lets find the tk configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-tkconfig +# + +if test x"${no_tk}" = x ; then + # we reset no_tk in case something fails here + no_tk=true + AC_ARG_WITH(tkconfig, [ --with-tkconfig=DIR Directory containing tk configuration (tkConfig.sh)], + with_tkconfig=${withval}) + AC_MSG_CHECKING([for Tk configuration]) + AC_CACHE_VAL(ac_cv_c_tkconfig,[ + + # First check to see if --with-tkconfig was specified. + if test x"${with_tkconfig}" != x ; then + if test -f "${with_tkconfig}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` + else + AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) + fi + fi + + # then check for a private Tk library + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ../tk \ + `ls -dr ../tk[[4-9]]* 2>/dev/null` \ + ../../tk \ + `ls -dr ../../tk[[4-9]]* 2>/dev/null` \ + ../../../tk \ + `ls -dr ../../../tk[[4-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_tkconfig}" = x ; then + for i in \ + ${srcdir}/../tk \ + `ls -dr ${srcdir}/../tk[[4-9]]* 2>/dev/null` ; do + if test -f "$i/${configdir}/tkConfig.sh" ; then + ac_cv_c_tkconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tkconfig}" = x ; then + TKCONFIG="# no Tk configs found" + AC_MSG_WARN(Can't find Tk configuration definitions) + else + no_tk= + TKCONFIG=${ac_cv_c_tkconfig}/tkConfig.sh + AC_MSG_RESULT(found $TKCONFIG) + fi +fi + +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_TKCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_TKCONFIG, [ + if test -f "$TKCONFIG" ; then + . $TKCONFIG + fi + + AC_SUBST(TK_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(TK_MAJOR_VERSION) +dnl AC_SUBST(TK_MINOR_VERSION) + AC_SUBST(TK_DEFS) + +dnl not used, don't export to save symbols + dnl AC_SUBST(TK_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(TK_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(TK_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TK_EXEC_PREFIX) + + AC_SUBST(TK_BUILD_INCLUDES) + AC_SUBST(TK_XINCLUDES) + AC_SUBST(TK_XLIBSW) + AC_SUBST(TK_BUILD_LIB_SPEC) + AC_SUBST(TK_LIB_SPEC) +]) + +# check for Itcl headers. + +AC_DEFUN(CY_AC_PATH_ITCLCONFIG, [ +# +# Ok, lets find the itcl configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-itclconfig +# + +if test x"${no_itcl}" = x ; then + # we reset no_itcl in case something fails here + no_itcl=true + AC_ARG_WITH(itclconfig, [ --with-itclconfig directory containing itcl configuration (itclConfig.sh)], + with_itclconfig=${withval}) + AC_MSG_CHECKING([for Itcl configuration]) + AC_CACHE_VAL(ac_cv_c_itclconfig,[ + + # First check to see if --with-itclconfig was specified. + if test x"${with_itclconfig}" != x ; then + if test -f "${with_itclconfig}/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd ${with_itclconfig}; pwd)` + else + AC_MSG_ERROR([${with_itclconfig} directory doesn't contain itclConfig.sh]) + fi + fi + + # then check for a private Itcl library + if test x"${ac_cv_c_itclconfig}" = x ; then + for i in \ + ../itcl/itcl \ + `ls -dr ../itcl[[4-9]]*/itcl 2>/dev/null` \ + ../../itcl \ + `ls -dr ../../itcl[[4-9]]*/itcl 2>/dev/null` \ + ../../../itcl \ + `ls -dr ../../../itcl[[4-9]]*/itcl 2>/dev/null` ; do + if test -f "$i/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_itclconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_itclconfig}" = x ; then + for i in \ + ${srcdir}/../itcl/itcl \ + `ls -dr ${srcdir}/../itcl[[4-9]]*/itcl 2>/dev/null` ; do + if test -f "$i/itclConfig.sh" ; then + ac_cv_c_itclconfig=`(cd $i; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_itclconfig}" = x ; then + ITCLCONFIG="# no Itcl configs found" + AC_MSG_WARN(Can't find Itcl configuration definitions) + else + no_itcl= + ITCLCONFIG=${ac_cv_c_itclconfig}/itclConfig.sh + AC_MSG_RESULT(found $ITCLCONFIG) + fi +fi +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_ITCLCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_ITCLCONFIG, [ + if test -f "$ITCLCONFIG" ; then + . $ITCLCONFIG + fi + + AC_SUBST(ITCL_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(ITCL_MAJOR_VERSION) +dnl AC_SUBST(ITCL_MINOR_VERSION) + AC_SUBST(ITCL_DEFS) + +dnl not used, don't export to save symbols + dnl AC_SUBST(ITCL_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(ITCL_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(ITCL_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(ITCL_EXEC_PREFIX) + + AC_SUBST(ITCL_BUILD_INCLUDES) + AC_SUBST(ITCL_BUILD_LIB_SPEC) + AC_SUBST(ITCL_LIB_SPEC) +]) + +# check for Itcl headers. + +AC_DEFUN(CY_AC_PATH_ITCLH, [ +AC_MSG_CHECKING(for Itcl private headers. srcdir=${srcdir}) +if test x"${ac_cv_c_itclh}" = x ; then + for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itcl; do + if test -f $i/generic/itcl.h ; then + ac_cv_c_itclh=`(cd $i/generic; pwd)` + break + fi + done +fi +if test x"${ac_cv_c_itclh}" = x ; then + ITCLHDIR="# no Itcl private headers found" + AC_MSG_ERROR([Can't find Itcl private headers]) +fi +if test x"${ac_cv_c_itclh}" != x ; then + ITCLHDIR="-I${ac_cv_c_itclh}" +fi +# should always be here +# ITCLLIB="../itcl/itcl/unix/libitcl.a" +AC_SUBST(ITCLHDIR) +#AC_SUBST(ITCLLIB) +]) + + +AC_DEFUN(CY_AC_PATH_ITKCONFIG, [ +# +# Ok, lets find the itk configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-itkconfig +# + +if test x"${no_itk}" = x ; then + # we reset no_itk in case something fails here + no_itk=true + AC_ARG_WITH(itkconfig, [ --with-itkconfig directory containing itk configuration (itkConfig.sh)], + with_itkconfig=${withval}) + AC_MSG_CHECKING([for Itk configuration]) + AC_CACHE_VAL(ac_cv_c_itkconfig,[ + + # First check to see if --with-itkconfig was specified. + if test x"${with_itkconfig}" != x ; then + if test -f "${with_itkconfig}/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd ${with_itkconfig}; pwd)` + else + AC_MSG_ERROR([${with_itkconfig} directory doesn't contain itkConfig.sh]) + fi + fi + + # then check for a private Itk library + if test x"${ac_cv_c_itkconfig}" = x ; then + for i in \ + ../itcl/itk \ + `ls -dr ../itcl[[4-9]]*/itk 2>/dev/null` \ + ../../itk \ + `ls -dr ../../itcl[[4-9]]*/itk 2>/dev/null` \ + ../../../itk \ + `ls -dr ../../../itcl[[4-9]]*/itk 2>/dev/null` ; do + if test -f "$i/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_itkconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + if test -f "$i/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + if test x"${ac_cv_c_itkconfig}" = x ; then + for i in \ + ${srcdir}/../itcl/itk \ + `ls -dr ${srcdir}/../itcl[[4-9]]*/itk 2>/dev/null` ; do + if test -f "$i/itkConfig.sh" ; then + ac_cv_c_itkconfig=`(cd $i; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_itkconfig}" = x ; then + ITKCONFIG="# no Itk configs found" + AC_MSG_WARN(Can't find Itk configuration definitions) + else + no_itk= + ITKCONFIG=${ac_cv_c_itkconfig}/itkConfig.sh + AC_MSG_RESULT(found $ITKCONFIG) + fi +fi + +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_ITKCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_ITKCONFIG, [ + if test -f "$ITKCONFIG" ; then + . $ITKCONFIG + fi + + AC_SUBST(ITK_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(ITK_MAJOR_VERSION) +dnl AC_SUBST(ITK_MINOR_VERSION) + AC_SUBST(ITK_DEFS) + +dnl not used, don't export to save symbols + dnl AC_SUBST(ITK_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(ITK_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(ITK_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(ITK_EXEC_PREFIX) + + AC_SUBST(ITK_BUILD_INCLUDES) + AC_SUBST(ITK_BUILD_LIB_SPEC) + AC_SUBST(ITK_LIB_SPEC) +]) + +AC_DEFUN(CY_AC_PATH_ITKH, [ +AC_MSG_CHECKING(for Itk private headers. srcdir=${srcdir}) +if test x"${ac_cv_c_itkh}" = x ; then + for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ${srcdir}/../itcl/itk; do + if test -f $i/generic/itk.h ; then + ac_cv_c_itkh=`(cd $i/generic; pwd)` + break + fi + done +fi +if test x"${ac_cv_c_itkh}" = x ; then + ITKHDIR="# no Itk private headers found" + AC_MSG_ERROR([Can't find Itk private headers]) +fi +if test x"${ac_cv_c_itkh}" != x ; then + ITKHDIR="-I${ac_cv_c_itkh}" +fi +# should always be here +# ITKLIB="../itcl/itk/unix/libitk.a" +AC_SUBST(ITKHDIR) +#AC_SUBST(ITKLIB) +]) + +# check for Tix headers. + +AC_DEFUN(CY_AC_PATH_TIXH, [ +AC_MSG_CHECKING(for Tix private headers. srcdir=${srcdir}) +if test x"${ac_cv_c_tixh}" = x ; then + for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do + if test -f $i/generic/tix.h ; then + ac_cv_c_tixh=`(cd $i/generic; pwd)` + break + fi + done +fi +if test x"${ac_cv_c_tixh}" = x ; then + TIXHDIR="# no Tix private headers found" + AC_MSG_ERROR([Can't find Tix private headers]) +fi +if test x"${ac_cv_c_tixh}" != x ; then + TIXHDIR="-I${ac_cv_c_tixh}" +fi +AC_SUBST(TIXHDIR) +]) + +AC_DEFUN(CY_AC_PATH_TIXCONFIG, [ +# +# Ok, lets find the tix configuration +# First, look for one uninstalled. +# the alternative search directory is invoked by --with-itkconfig +# + +if test x"${no_tix}" = x ; then + # we reset no_tix in case something fails here + no_tix=true + AC_ARG_WITH(tixconfig, [ --with-tixconfig directory containing tix configuration (tixConfig.sh)], + with_tixconfig=${withval}) + AC_MSG_CHECKING([for Tix configuration]) + AC_CACHE_VAL(ac_cv_c_tixconfig,[ + + # First check to see if --with-tixconfig was specified. + if test x"${with_tixconfig}" != x ; then + if test -f "${with_tixconfig}/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd ${with_tixconfig}; pwd)` + else + AC_MSG_ERROR([${with_tixconfig} directory doesn't contain tixConfig.sh]) + fi + fi + + # then check for a private Tix library + if test x"${ac_cv_c_tixconfig}" = x ; then + for i in \ + ../tix \ + `ls -dr ../tix 2>/dev/null` \ + ../../tix \ + `ls -dr ../../tix 2>/dev/null` \ + ../../../tix \ + `ls -dr ../../../tix 2>/dev/null` ; do + echo "**** Looking at $i - with ${configdir}" + if test -f "$i/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few common install locations + if test x"${ac_cv_c_tixconfig}" = x ; then + for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do + echo "**** Looking at $i" + if test -f "$i/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd $i; pwd)` + break + fi + done + fi + # check in a few other private locations + echo "**** Other private locations" + if test x"${ac_cv_c_tixconfig}" = x ; then + for i in \ + ${srcdir}/../tix \ + `ls -dr ${srcdir}/../tix 2>/dev/null` ; do + echo "**** Looking at $i - with ${configdir}" + if test -f "$i/${configdir}/tixConfig.sh" ; then + ac_cv_c_tixconfig=`(cd $i/${configdir}; pwd)` + break + fi + done + fi + ]) + if test x"${ac_cv_c_tixconfig}" = x ; then + TIXCONFIG="# no Tix configs found" + AC_MSG_WARN(Can't find Tix configuration definitions) + else + no_tix= + TIXCONFIG=${ac_cv_c_tixconfig}/tixConfig.sh + AC_MSG_RESULT(found $TIXCONFIG) + fi +fi + +]) + +# Defined as a separate macro so we don't have to cache the values +# from PATH_TIXCONFIG (because this can also be cached). +AC_DEFUN(CY_AC_LOAD_TIXCONFIG, [ + if test -f "$TIXCONFIG" ; then + . $TIXCONFIG + fi + + AC_SUBST(TIX_VERSION) +dnl not actually used, don't export to save symbols +dnl AC_SUBST(TIX_MAJOR_VERSION) +dnl AC_SUBST(TIX_MINOR_VERSION) +dnl AC_SUBST(TIX_DEFS) + +dnl not used, don't export to save symbols +dnl dnl AC_SUBST(TIX_LIB_FILE) + +dnl not used outside of configure +dnl AC_SUBST(TIX_LIBS) +dnl not used, don't export to save symbols +dnl AC_SUBST(TIX_PREFIX) + +dnl not used, don't export to save symbols +dnl AC_SUBST(TIX_EXEC_PREFIX) + +dnl AC_SUBST(TIX_BUILD_INCLUDES) + AC_SUBST(TIX_BUILD_LIB_SPEC) +dnl AC_SUBST(TIX_LIB_SPEC) +]) + + +# serial 1 + +# @defmac AC_PROG_CC_STDC +# @maindex PROG_CC_STDC +# @ovindex CC +# If the C compiler in not in ANSI C mode by default, try to add an option +# to output variable @code{CC} to make it so. This macro tries various +# options that select ANSI C on some system or another. It considers the +# compiler to be in ANSI C mode if it handles function prototypes correctly. +# +# If you use this macro, you should check after calling it whether the C +# compiler has been set to accept ANSI C; if not, the shell variable +# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source +# code in ANSI C, you can make an un-ANSIfied copy of it by using the +# program @code{ansi2knr}, which comes with Ghostscript. +# @end defmac + +AC_DEFUN(AM_PROG_CC_STDC, +[AC_REQUIRE([AC_PROG_CC]) +AC_BEFORE([$0], [AC_C_INLINE]) +AC_BEFORE([$0], [AC_C_CONST]) +dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require +dnl a magic option to avoid problems with ANSI preprocessor commands +dnl like #elif. +dnl FIXME: can't do this because then AC_AIX won't work due to a +dnl circular dependency. +dnl AC_BEFORE([$0], [AC_PROG_CPP]) +AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) +AC_CACHE_VAL(am_cv_prog_cc_stdc, +[am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + AC_TRY_COMPILE( +[#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +], [ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +if test -z "$am_cv_prog_cc_stdc"; then + AC_MSG_RESULT([none needed]) +else + AC_MSG_RESULT($am_cv_prog_cc_stdc) +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + +# This file is derived from `gettext.m4'. The difference is that the +# included macros assume Cygnus-style source and build trees. + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 3 + +AC_DEFUN(CY_WITH_NLS, + [AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) + + USE_INCLUDED_LIBINTL=no + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if NLS is requested]) + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If gettext or catgets are available (in this order) we + dnl use this. Else we have to fall back to GNU NLS library. + dnl catgets is only used if permitted by option --with-catgets. + nls_cv_header_intl= + nls_cv_header_libgt= + CATOBJEXT=NONE + + AC_CHECK_HEADER(libintl.h, + [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc, + [AC_TRY_LINK([#include ], [return (int) gettext ("")], + gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)]) + + if test "$gt_cv_func_gettext_libc" != "yes"; then + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CACHE_CHECK([for gettext in libintl], + gt_cv_func_gettext_libintl, + [AC_TRY_LINK([], [return (int) gettext ("")], + gt_cv_func_gettext_libintl=yes, + gt_cv_func_gettext_libintl=no)])]) + fi + + if test "$gt_cv_func_gettext_libc" = "yes" \ + || test "$gt_cv_func_gettext_libintl" = "yes"; then + AC_DEFINE(HAVE_GETTEXT, 1, + [Define as 1 if you have gettext and don't want to use GNU gettext.]) + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + AC_CHECK_FUNCS(dcgettext) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + INSTOBJEXT=.mo + fi + fi + ]) + + dnl In the standard gettext, we would now check for catgets. + dnl However, we never want to use catgets for our releases. + + if test "$CATOBJEXT" = "NONE"; then + dnl Neither gettext nor catgets in included in the C library. + dnl Fall back on GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + INTLOBJS="\$(GETTOBJS)" + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_SUBST(MSGFMT) + USE_INCLUDED_LIBINTL=yes + CATOBJEXT=.gmo + INSTOBJEXT=.mo + DATADIRNAME=share + INTLDEPS='$(top_builddir)/../intl/libintl.a' + INTLLIBS=$INTLDEPS + LIBS=`echo $LIBS | sed -e 's/-lintl//'` + nls_cv_header_intl=libintl.h + nls_cv_header_libgt=libgettext.h + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + else + DATADIRNAME=share + nls_cv_header_intl=libintl.h + nls_cv_header_libgt=libgettext.h + fi + + # If this is used in GNU gettext we have to set USE_NLS to `yes' + # because some of the sources are only built for this goal. + if test "$PACKAGE" = gettext; then + USE_NLS=yes + USE_INCLUDED_LIBINTL=yes + fi + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLDEPS) + AC_SUBST(INTLLIBS) + AC_SUBST(INTLOBJS) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +AC_DEFUN(CY_GNU_GETTEXT, + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ +unistd.h values.h sys/param.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + if test "${ac_cv_func_stpcpy+set}" != "set"; then + AC_CHECK_FUNCS(stpcpy) + fi + if test "${ac_cv_func_stpcpy}" = "yes"; then + AC_DEFINE(HAVE_STPCPY, 1, [Define if you have the stpcpy function]) + fi + + AM_LC_MESSAGES + CY_WITH_NLS + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl The reference to in the installed file + dnl must be resolved because we cannot expect the users of this + dnl to define HAVE_LOCALE_H. + if test $ac_cv_header_locale_h = yes; then + INCLUDE_LOCALE_H="#include " + else + INCLUDE_LOCALE_H="\ +/* The system does not provide the header . Take care yourself. */" + fi + AC_SUBST(INCLUDE_LOCALE_H) + + dnl Determine which catalog format we have (if any is needed) + dnl For now we know about two different formats: + dnl Linux libc-5 and the normal X/Open format + if test -f $srcdir/po2tbl.sed.in; then + if test "$CATOBJEXT" = ".cat"; then + AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) + + dnl Transform the SED scripts while copying because some dumb SEDs + dnl cannot handle comments. + sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sed + fi + dnl po2tbl.sed is always needed. + sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ + $srcdir/po2tbl.sed.in > po2tbl.sed + fi + + dnl In the intl/Makefile.in we have a special dependency which makes + dnl only sense for gettext. We comment this out for non-gettext + dnl packages. + if test "$PACKAGE" = "gettext"; then + GT_NO="#NO#" + GT_YES= + else + GT_NO= + GT_YES="#YES#" + fi + AC_SUBST(GT_NO) + AC_SUBST(GT_YES) + + MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs" + AC_SUBST(MKINSTALLDIRS) + + dnl *** For now the libtool support in intl/Makefile is not for real. + l= + AC_SUBST(l) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. But only do this if the po directory + dnl exists in srcdir. + if test -d $srcdir/po; then + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + fi + ]) + +# Search path for a program which passes the given test. +# Ulrich Drepper , 1996. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN(AM_PATH_PROG_WITH_TEST, +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# Check whether LC_MESSAGES is available in . +# Ulrich Drepper , 1995. +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. + +# serial 1 + +AC_DEFUN(AM_LC_MESSAGES, + [if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your locale.h file contains LC_MESSAGES.]) + fi + fi]) + diff --git a/gdb/alpha-nat.c b/gdb/alpha-nat.c new file mode 100644 index 0000000000..59bd0d887e --- /dev/null +++ b/gdb/alpha-nat.c @@ -0,0 +1,297 @@ +/* Low level Alpha interface, for GDB when running native. + Copyright 1993, 1995, 1996, 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "inferior.h" +#include "gdbcore.h" +#include "target.h" +#include +#ifdef __linux__ +# include +# include +#else +# include +#endif +#include + +/* Prototypes for local functions. */ + +static void fetch_osf_core_registers PARAMS ((char *, + unsigned, int, CORE_ADDR)); +static void fetch_elf_core_registers PARAMS ((char *, + unsigned, int, CORE_ADDR)); + +/* Size of elements in jmpbuf */ + +#define JB_ELEMENT_SIZE 8 + +/* The definition for JB_PC in machine/reg.h is wrong. + And we can't get at the correct definition in setjmp.h as it is + not always available (eg. if _POSIX_SOURCE is defined which is the + default). As the defintion is unlikely to change (see comment + in , define the correct value here. */ + +#undef JB_PC +#define JB_PC 2 + +/* Figure out where the longjmp will land. + We expect the first arg to be a pointer to the jmp_buf structure from which + we extract the pc (JB_PC) that we will land at. The pc is copied into PC. + This routine returns true on success. */ + +int +get_longjmp_target (pc) + CORE_ADDR *pc; +{ + CORE_ADDR jb_addr; + char raw_buffer[MAX_REGISTER_RAW_SIZE]; + + jb_addr = read_register(A0_REGNUM); + + if (target_read_memory(jb_addr + JB_PC * JB_ELEMENT_SIZE, raw_buffer, + sizeof(CORE_ADDR))) + return 0; + + *pc = extract_address (raw_buffer, sizeof(CORE_ADDR)); + return 1; +} + +/* Extract the register values out of the core file and store + them where `read_register' will find them. + + CORE_REG_SECT points to the register values themselves, read into memory. + CORE_REG_SIZE is the size of that area. + WHICH says which set of registers we are handling (0 = int, 2 = float + on machines where they are discontiguous). + REG_ADDR is the offset from u.u_ar0 to the register values relative to + core_reg_sect. This is used with old-fashioned core files to + locate the registers in a large upage-plus-stack ".reg" section. + Original upage address X is at location core_reg_sect+x+reg_addr. + */ + +static void +fetch_osf_core_registers (core_reg_sect, core_reg_size, which, reg_addr) + char *core_reg_sect; + unsigned core_reg_size; + int which; + CORE_ADDR reg_addr; +{ + register int regno; + register int addr; + int bad_reg = -1; + + /* Table to map a gdb regnum to an index in the core register section. + The floating point register values are garbage in OSF/1.2 core files. */ + static int core_reg_mapping[NUM_REGS] = + { +#define EFL (EF_SIZE / 8) + EF_V0, EF_T0, EF_T1, EF_T2, EF_T3, EF_T4, EF_T5, EF_T6, + EF_T7, EF_S0, EF_S1, EF_S2, EF_S3, EF_S4, EF_S5, EF_S6, + EF_A0, EF_A1, EF_A2, EF_A3, EF_A4, EF_A5, EF_T8, EF_T9, + EF_T10, EF_T11, EF_RA, EF_T12, EF_AT, EF_GP, EF_SP, -1, + EFL+0, EFL+1, EFL+2, EFL+3, EFL+4, EFL+5, EFL+6, EFL+7, + EFL+8, EFL+9, EFL+10, EFL+11, EFL+12, EFL+13, EFL+14, EFL+15, + EFL+16, EFL+17, EFL+18, EFL+19, EFL+20, EFL+21, EFL+22, EFL+23, + EFL+24, EFL+25, EFL+26, EFL+27, EFL+28, EFL+29, EFL+30, EFL+31, + EF_PC, -1 + }; + static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; + + for (regno = 0; regno < NUM_REGS; regno++) + { + if (CANNOT_FETCH_REGISTER (regno)) + { + supply_register (regno, zerobuf); + continue; + } + addr = 8 * core_reg_mapping[regno]; + if (addr < 0 || addr >= core_reg_size) + { + if (bad_reg < 0) + bad_reg = regno; + } + else + { + supply_register (regno, core_reg_sect + addr); + } + } + if (bad_reg >= 0) + { + error ("Register %s not found in core file.", REGISTER_NAME (bad_reg)); + } +} + +static void +fetch_elf_core_registers (core_reg_sect, core_reg_size, which, reg_addr) + char *core_reg_sect; + unsigned core_reg_size; + int which; + CORE_ADDR reg_addr; +{ + if (core_reg_size < 32*8) + { + error ("Core file register section too small (%u bytes).", core_reg_size); + return; + } + + if (which == 2) + { + /* The FPU Registers. */ + memcpy (®isters[REGISTER_BYTE (FP0_REGNUM)], core_reg_sect, 31*8); + memset (®isters[REGISTER_BYTE (FP0_REGNUM+31)], 0, 8); + memset (®ister_valid[FP0_REGNUM], 1, 32); + } + else + { + /* The General Registers. */ + memcpy (®isters[REGISTER_BYTE (V0_REGNUM)], core_reg_sect, 31*8); + memcpy (®isters[REGISTER_BYTE (PC_REGNUM)], core_reg_sect+31*8, 8); + memset (®isters[REGISTER_BYTE (ZERO_REGNUM)], 0, 8); + memset (®ister_valid[V0_REGNUM], 1, 32); + register_valid[PC_REGNUM] = 1; + } +} + + +/* Map gdb internal register number to a ptrace ``address''. + These ``addresses'' are defined in */ + +#define REGISTER_PTRACE_ADDR(regno) \ + (regno < FP0_REGNUM ? GPR_BASE + (regno) \ + : regno == PC_REGNUM ? PC \ + : regno >= FP0_REGNUM ? FPR_BASE + ((regno) - FP0_REGNUM) \ + : 0) + +/* Return the ptrace ``address'' of register REGNO. */ + +CORE_ADDR +register_addr (regno, blockend) + int regno; + CORE_ADDR blockend; +{ + return REGISTER_PTRACE_ADDR (regno); +} + +int +kernel_u_size () +{ + return (sizeof (struct user)); +} + +#if defined(USE_PROC_FS) || defined(HAVE_GREGSET_T) +#include + +/* + * See the comment in m68k-tdep.c regarding the utility of these functions. + */ + +void +supply_gregset (gregsetp) + gregset_t *gregsetp; +{ + register int regi; + register long *regp = ALPHA_REGSET_BASE (gregsetp); + static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; + + for (regi = 0; regi < 31; regi++) + supply_register (regi, (char *)(regp + regi)); + + supply_register (PC_REGNUM, (char *)(regp + 31)); + + /* Fill inaccessible registers with zero. */ + supply_register (ZERO_REGNUM, zerobuf); + supply_register (FP_REGNUM, zerobuf); +} + +void +fill_gregset (gregsetp, regno) + gregset_t *gregsetp; + int regno; +{ + int regi; + register long *regp = ALPHA_REGSET_BASE (gregsetp); + + for (regi = 0; regi < 31; regi++) + if ((regno == -1) || (regno == regi)) + *(regp + regi) = *(long *) ®isters[REGISTER_BYTE (regi)]; + + if ((regno == -1) || (regno == PC_REGNUM)) + *(regp + 31) = *(long *) ®isters[REGISTER_BYTE (PC_REGNUM)]; +} + +/* + * Now we do the same thing for floating-point registers. + * Again, see the comments in m68k-tdep.c. + */ + +void +supply_fpregset (fpregsetp) + fpregset_t *fpregsetp; +{ + register int regi; + register long *regp = ALPHA_REGSET_BASE (fpregsetp); + + for (regi = 0; regi < 32; regi++) + supply_register (regi + FP0_REGNUM, (char *)(regp + regi)); +} + +void +fill_fpregset (fpregsetp, regno) + fpregset_t *fpregsetp; + int regno; +{ + int regi; + register long *regp = ALPHA_REGSET_BASE (fpregsetp); + + for (regi = FP0_REGNUM; regi < FP0_REGNUM + 32; regi++) + { + if ((regno == -1) || (regno == regi)) + { + *(regp + regi - FP0_REGNUM) = + *(long *) ®isters[REGISTER_BYTE (regi)]; + } + } +} +#endif + + +/* Register that we are able to handle alpha core file formats. */ + +static struct core_fns alpha_osf_core_fns = +{ + /* This really is bfd_target_unknown_flavour. */ + + bfd_target_unknown_flavour, + fetch_osf_core_registers, + NULL +}; + +static struct core_fns alpha_elf_core_fns = +{ + bfd_target_elf_flavour, + fetch_elf_core_registers, + NULL +}; + +void +_initialize_core_alpha () +{ + add_core_fns (&alpha_osf_core_fns); + add_core_fns (&alpha_elf_core_fns); +} diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c new file mode 100644 index 0000000000..02010160b9 --- /dev/null +++ b/gdb/alpha-tdep.c @@ -0,0 +1,1410 @@ +/* Target-dependent code for the ALPHA architecture, for GDB, the GNU Debugger. + Copyright 1993, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "frame.h" +#include "inferior.h" +#include "symtab.h" +#include "value.h" +#include "gdbcmd.h" +#include "gdbcore.h" +#include "dis-asm.h" +#include "symfile.h" +#include "objfiles.h" +#include "gdb_string.h" + +/* FIXME: Some of this code should perhaps be merged with mips-tdep.c. */ + +/* Prototypes for local functions. */ + +static alpha_extra_func_info_t push_sigtramp_desc PARAMS ((CORE_ADDR low_addr)); + +static CORE_ADDR read_next_frame_reg PARAMS ((struct frame_info *, int)); + +static CORE_ADDR heuristic_proc_start PARAMS ((CORE_ADDR)); + +static alpha_extra_func_info_t heuristic_proc_desc PARAMS ((CORE_ADDR, + CORE_ADDR, + struct frame_info *)); + +static alpha_extra_func_info_t find_proc_desc PARAMS ((CORE_ADDR, + struct frame_info *)); + +#if 0 +static int alpha_in_lenient_prologue PARAMS ((CORE_ADDR, CORE_ADDR)); +#endif + +static void reinit_frame_cache_sfunc PARAMS ((char *, int, + struct cmd_list_element *)); + +static CORE_ADDR after_prologue PARAMS ((CORE_ADDR pc, + alpha_extra_func_info_t proc_desc)); + +static int alpha_in_prologue PARAMS ((CORE_ADDR pc, + alpha_extra_func_info_t proc_desc)); + +/* Heuristic_proc_start may hunt through the text section for a long + time across a 2400 baud serial line. Allows the user to limit this + search. */ +static unsigned int heuristic_fence_post = 0; + +/* Layout of a stack frame on the alpha: + + | | + pdr members: | 7th ... nth arg, | + | `pushed' by caller. | + | | +----------------|-------------------------------|<-- old_sp == vfp + ^ ^ ^ ^ | | + | | | | | | + | |localoff | Copies of 1st .. 6th | + | | | | | argument if necessary. | + | | | v | | + | | | --- |-------------------------------|<-- FRAME_LOCALS_ADDRESS + | | | | | + | | | | Locals and temporaries. | + | | | | | + | | | |-------------------------------| + | | | | | + |-fregoffset | Saved float registers. | + | | | | F9 | + | | | | . | + | | | | . | + | | | | F2 | + | | v | | + | | -------|-------------------------------| + | | | | + | | | Saved registers. | + | | | S6 | + |-regoffset | . | + | | | . | + | | | S0 | + | | | pdr.pcreg | + | v | | + | ----------|-------------------------------| + | | | + frameoffset | Argument build area, gets | + | | 7th ... nth arg for any | + | | called procedure. | + v | | + -------------|-------------------------------|<-- sp + | | +*/ + +#define PROC_LOW_ADDR(proc) ((proc)->pdr.adr) /* least address */ +#define PROC_HIGH_ADDR(proc) ((proc)->pdr.iline) /* upper address bound */ +#define PROC_DUMMY_FRAME(proc) ((proc)->pdr.iopt) /* frame for CALL_DUMMY */ +#define PROC_FRAME_OFFSET(proc) ((proc)->pdr.frameoffset) +#define PROC_FRAME_REG(proc) ((proc)->pdr.framereg) +#define PROC_REG_MASK(proc) ((proc)->pdr.regmask) +#define PROC_FREG_MASK(proc) ((proc)->pdr.fregmask) +#define PROC_REG_OFFSET(proc) ((proc)->pdr.regoffset) +#define PROC_FREG_OFFSET(proc) ((proc)->pdr.fregoffset) +#define PROC_PC_REG(proc) ((proc)->pdr.pcreg) +#define PROC_LOCALOFF(proc) ((proc)->pdr.localoff) +#define PROC_SYMBOL(proc) (*(struct symbol**)&(proc)->pdr.isym) +#define _PROC_MAGIC_ 0x0F0F0F0F +#define PROC_DESC_IS_DUMMY(proc) ((proc)->pdr.isym == _PROC_MAGIC_) +#define SET_PROC_DESC_IS_DUMMY(proc) ((proc)->pdr.isym = _PROC_MAGIC_) + +struct linked_proc_info +{ + struct alpha_extra_func_info info; + struct linked_proc_info *next; +} *linked_proc_desc_table = NULL; + + +/* Under GNU/Linux, signal handler invocations can be identified by the + designated code sequence that is used to return from a signal + handler. In particular, the return address of a signal handler + points to the following sequence (the first instruction is quadword + aligned): + + bis $30,$30,$16 + addq $31,0x67,$0 + call_pal callsys + + Each instruction has a unique encoding, so we simply attempt to + match the instruction the pc is pointing to with any of the above + instructions. If there is a hit, we know the offset to the start + of the designated sequence and can then check whether we really are + executing in a designated sequence. If not, -1 is returned, + otherwise the offset from the start of the desingated sequence is + returned. + + There is a slight chance of false hits: code could jump into the + middle of the designated sequence, in which case there is no + guarantee that we are in the middle of a sigreturn syscall. Don't + think this will be a problem in praxis, though. +*/ + +long +alpha_linux_sigtramp_offset (CORE_ADDR pc) +{ + unsigned int i[3], w; + long off; + + if (read_memory_nobpt(pc, (char *) &w, 4) != 0) + return -1; + + off = -1; + switch (w) + { + case 0x47de0410: off = 0; break; /* bis $30,$30,$16 */ + case 0x43ecf400: off = 4; break; /* addq $31,0x67,$0 */ + case 0x00000083: off = 8; break; /* call_pal callsys */ + default: return -1; + } + pc -= off; + if (pc & 0x7) + { + /* designated sequence is not quadword aligned */ + return -1; + } + + if (read_memory_nobpt(pc, (char *) i, sizeof(i)) != 0) + return -1; + + if (i[0] == 0x47de0410 && i[1] == 0x43ecf400 && i[2] == 0x00000083) + return off; + + return -1; +} + + +/* Under OSF/1, the __sigtramp routine is frameless and has a frame + size of zero, but we are able to backtrace through it. */ +CORE_ADDR +alpha_osf_skip_sigtramp_frame (frame, pc) + struct frame_info *frame; + CORE_ADDR pc; +{ + char *name; + find_pc_partial_function (pc, &name, (CORE_ADDR *)NULL, (CORE_ADDR *)NULL); + if (IN_SIGTRAMP (pc, name)) + return frame->frame; + else + return 0; +} + + +/* Dynamically create a signal-handler caller procedure descriptor for + the signal-handler return code starting at address LOW_ADDR. The + descriptor is added to the linked_proc_desc_table. */ + +static alpha_extra_func_info_t +push_sigtramp_desc (low_addr) + CORE_ADDR low_addr; +{ + struct linked_proc_info *link; + alpha_extra_func_info_t proc_desc; + + link = (struct linked_proc_info *) + xmalloc (sizeof (struct linked_proc_info)); + link->next = linked_proc_desc_table; + linked_proc_desc_table = link; + + proc_desc = &link->info; + + proc_desc->numargs = 0; + PROC_LOW_ADDR (proc_desc) = low_addr; + PROC_HIGH_ADDR (proc_desc) = low_addr + 3 * 4; + PROC_DUMMY_FRAME (proc_desc) = 0; + PROC_FRAME_OFFSET (proc_desc) = 0x298; /* sizeof(struct sigcontext_struct) */ + PROC_FRAME_REG (proc_desc) = SP_REGNUM; + PROC_REG_MASK (proc_desc) = 0xffff; + PROC_FREG_MASK (proc_desc) = 0xffff; + PROC_PC_REG (proc_desc) = 26; + PROC_LOCALOFF (proc_desc) = 0; + SET_PROC_DESC_IS_DYN_SIGTRAMP (proc_desc); + return (proc_desc); +} + + +/* Guaranteed to set frame->saved_regs to some values (it never leaves it + NULL). */ + +void +alpha_find_saved_regs (frame) + struct frame_info *frame; +{ + int ireg; + CORE_ADDR reg_position; + unsigned long mask; + alpha_extra_func_info_t proc_desc; + int returnreg; + + frame_saved_regs_zalloc (frame); + + /* If it is the frame for __sigtramp, the saved registers are located + in a sigcontext structure somewhere on the stack. __sigtramp + passes a pointer to the sigcontext structure on the stack. + If the stack layout for __sigtramp changes, or if sigcontext offsets + change, we might have to update this code. */ +#ifndef SIGFRAME_PC_OFF +#define SIGFRAME_PC_OFF (2 * 8) +#define SIGFRAME_REGSAVE_OFF (4 * 8) +#define SIGFRAME_FPREGSAVE_OFF (SIGFRAME_REGSAVE_OFF + 32 * 8 + 8) +#endif + if (frame->signal_handler_caller) + { + CORE_ADDR sigcontext_addr; + + sigcontext_addr = SIGCONTEXT_ADDR (frame); + for (ireg = 0; ireg < 32; ireg++) + { + reg_position = sigcontext_addr + SIGFRAME_REGSAVE_OFF + ireg * 8; + frame->saved_regs[ireg] = reg_position; + } + for (ireg = 0; ireg < 32; ireg++) + { + reg_position = sigcontext_addr + SIGFRAME_FPREGSAVE_OFF + ireg * 8; + frame->saved_regs[FP0_REGNUM + ireg] = reg_position; + } + frame->saved_regs[PC_REGNUM] = sigcontext_addr + SIGFRAME_PC_OFF; + return; + } + + proc_desc = frame->proc_desc; + if (proc_desc == NULL) + /* I'm not sure how/whether this can happen. Normally when we can't + find a proc_desc, we "synthesize" one using heuristic_proc_desc + and set the saved_regs right away. */ + return; + + /* Fill in the offsets for the registers which gen_mask says + were saved. */ + + reg_position = frame->frame + PROC_REG_OFFSET (proc_desc); + mask = PROC_REG_MASK (proc_desc); + + returnreg = PROC_PC_REG (proc_desc); + + /* Note that RA is always saved first, regardless of its actual + register number. */ + if (mask & (1 << returnreg)) + { + frame->saved_regs[returnreg] = reg_position; + reg_position += 8; + mask &= ~(1 << returnreg); /* Clear bit for RA so we + don't save again later. */ + } + + for (ireg = 0; ireg <= 31 ; ++ireg) + if (mask & (1 << ireg)) + { + frame->saved_regs[ireg] = reg_position; + reg_position += 8; + } + + /* Fill in the offsets for the registers which float_mask says + were saved. */ + + reg_position = frame->frame + PROC_FREG_OFFSET (proc_desc); + mask = PROC_FREG_MASK (proc_desc); + + for (ireg = 0; ireg <= 31 ; ++ireg) + if (mask & (1 << ireg)) + { + frame->saved_regs[FP0_REGNUM+ireg] = reg_position; + reg_position += 8; + } + + frame->saved_regs[PC_REGNUM] = frame->saved_regs[returnreg]; +} + +static CORE_ADDR +read_next_frame_reg(fi, regno) + struct frame_info *fi; + int regno; +{ + for (; fi; fi = fi->next) + { + /* We have to get the saved sp from the sigcontext + if it is a signal handler frame. */ + if (regno == SP_REGNUM && !fi->signal_handler_caller) + return fi->frame; + else + { + if (fi->saved_regs == NULL) + alpha_find_saved_regs (fi); + if (fi->saved_regs[regno]) + return read_memory_integer(fi->saved_regs[regno], 8); + } + } + return read_register(regno); +} + +CORE_ADDR +alpha_frame_saved_pc(frame) + struct frame_info *frame; +{ + alpha_extra_func_info_t proc_desc = frame->proc_desc; + /* We have to get the saved pc from the sigcontext + if it is a signal handler frame. */ + int pcreg = frame->signal_handler_caller ? PC_REGNUM : frame->pc_reg; + + if (proc_desc && PROC_DESC_IS_DUMMY(proc_desc)) + return read_memory_integer(frame->frame - 8, 8); + + return read_next_frame_reg(frame, pcreg); +} + +CORE_ADDR +alpha_saved_pc_after_call (frame) + struct frame_info *frame; +{ + CORE_ADDR pc = frame->pc; + CORE_ADDR tmp; + alpha_extra_func_info_t proc_desc; + int pcreg; + + /* Skip over shared library trampoline if necessary. */ + tmp = SKIP_TRAMPOLINE_CODE (pc); + if (tmp != 0) + pc = tmp; + + proc_desc = find_proc_desc (pc, frame->next); + pcreg = proc_desc ? PROC_PC_REG (proc_desc) : RA_REGNUM; + + if (frame->signal_handler_caller) + return alpha_frame_saved_pc (frame); + else + return read_register (pcreg); +} + + +static struct alpha_extra_func_info temp_proc_desc; +static struct frame_saved_regs temp_saved_regs; + +/* Nonzero if instruction at PC is a return instruction. "ret + $zero,($ra),1" on alpha. */ + +static int +alpha_about_to_return (pc) + CORE_ADDR pc; +{ + return read_memory_integer (pc, 4) == 0x6bfa8001; +} + + + +/* This fencepost looks highly suspicious to me. Removing it also + seems suspicious as it could affect remote debugging across serial + lines. */ + +static CORE_ADDR +heuristic_proc_start(pc) + CORE_ADDR pc; +{ + CORE_ADDR start_pc = pc; + CORE_ADDR fence = start_pc - heuristic_fence_post; + + if (start_pc == 0) return 0; + + if (heuristic_fence_post == UINT_MAX + || fence < VM_MIN_ADDRESS) + fence = VM_MIN_ADDRESS; + + /* search back for previous return */ + for (start_pc -= 4; ; start_pc -= 4) + if (start_pc < fence) + { + /* It's not clear to me why we reach this point when + stop_soon_quietly, but with this test, at least we + don't print out warnings for every child forked (eg, on + decstation). 22apr93 rich@cygnus.com. */ + if (!stop_soon_quietly) + { + static int blurb_printed = 0; + + if (fence == VM_MIN_ADDRESS) + warning("Hit beginning of text section without finding"); + else + warning("Hit heuristic-fence-post without finding"); + + warning("enclosing function for address 0x%lx", pc); + if (!blurb_printed) + { + printf_filtered ("\ +This warning occurs if you are debugging a function without any symbols\n\ +(for example, in a stripped executable). In that case, you may wish to\n\ +increase the size of the search with the `set heuristic-fence-post' command.\n\ +\n\ +Otherwise, you told GDB there was a function where there isn't one, or\n\ +(more likely) you have encountered a bug in GDB.\n"); + blurb_printed = 1; + } + } + + return 0; + } + else if (alpha_about_to_return (start_pc)) + break; + + start_pc += 4; /* skip return */ + return start_pc; +} + +static alpha_extra_func_info_t +heuristic_proc_desc(start_pc, limit_pc, next_frame) + CORE_ADDR start_pc, limit_pc; + struct frame_info *next_frame; +{ + CORE_ADDR sp = read_next_frame_reg (next_frame, SP_REGNUM); + CORE_ADDR cur_pc; + int frame_size; + int has_frame_reg = 0; + unsigned long reg_mask = 0; + int pcreg = -1; + + if (start_pc == 0) + return NULL; + memset (&temp_proc_desc, '\0', sizeof(temp_proc_desc)); + memset (&temp_saved_regs, '\0', sizeof(struct frame_saved_regs)); + PROC_LOW_ADDR (&temp_proc_desc) = start_pc; + + if (start_pc + 200 < limit_pc) + limit_pc = start_pc + 200; + frame_size = 0; + for (cur_pc = start_pc; cur_pc < limit_pc; cur_pc += 4) + { + char buf[4]; + unsigned long word; + int status; + + status = read_memory_nobpt (cur_pc, buf, 4); + if (status) + memory_error (status, cur_pc); + word = extract_unsigned_integer (buf, 4); + + if ((word & 0xffff0000) == 0x23de0000) /* lda $sp,n($sp) */ + { + if (word & 0x8000) + frame_size += (-word) & 0xffff; + else + /* Exit loop if a positive stack adjustment is found, which + usually means that the stack cleanup code in the function + epilogue is reached. */ + break; + } + else if ((word & 0xfc1f0000) == 0xb41e0000 /* stq reg,n($sp) */ + && (word & 0xffff0000) != 0xb7fe0000) /* reg != $zero */ + { + int reg = (word & 0x03e00000) >> 21; + reg_mask |= 1 << reg; + temp_saved_regs.regs[reg] = sp + (short)word; + + /* Starting with OSF/1-3.2C, the system libraries are shipped + without local symbols, but they still contain procedure + descriptors without a symbol reference. GDB is currently + unable to find these procedure descriptors and uses + heuristic_proc_desc instead. + As some low level compiler support routines (__div*, __add*) + use a non-standard return address register, we have to + add some heuristics to determine the return address register, + or stepping over these routines will fail. + Usually the return address register is the first register + saved on the stack, but assembler optimization might + rearrange the register saves. + So we recognize only a few registers (t7, t9, ra) within + the procedure prologue as valid return address registers. + If we encounter a return instruction, we extract the + the return address register from it. + + FIXME: Rewriting GDB to access the procedure descriptors, + e.g. via the minimal symbol table, might obviate this hack. */ + if (pcreg == -1 + && cur_pc < (start_pc + 80) + && (reg == T7_REGNUM || reg == T9_REGNUM || reg == RA_REGNUM)) + pcreg = reg; + } + else if ((word & 0xffe0ffff) == 0x6be08001) /* ret zero,reg,1 */ + pcreg = (word >> 16) & 0x1f; + else if (word == 0x47de040f) /* bis sp,sp fp */ + has_frame_reg = 1; + } + if (pcreg == -1) + { + /* If we haven't found a valid return address register yet, + keep searching in the procedure prologue. */ + while (cur_pc < (limit_pc + 80) && cur_pc < (start_pc + 80)) + { + char buf[4]; + unsigned long word; + + if (read_memory_nobpt (cur_pc, buf, 4)) + break; + cur_pc += 4; + word = extract_unsigned_integer (buf, 4); + + if ((word & 0xfc1f0000) == 0xb41e0000 /* stq reg,n($sp) */ + && (word & 0xffff0000) != 0xb7fe0000) /* reg != $zero */ + { + int reg = (word & 0x03e00000) >> 21; + if (reg == T7_REGNUM || reg == T9_REGNUM || reg == RA_REGNUM) + { + pcreg = reg; + break; + } + } + else if ((word & 0xffe0ffff) == 0x6be08001) /* ret zero,reg,1 */ + { + pcreg = (word >> 16) & 0x1f; + break; + } + } + } + + if (has_frame_reg) + PROC_FRAME_REG(&temp_proc_desc) = GCC_FP_REGNUM; + else + PROC_FRAME_REG(&temp_proc_desc) = SP_REGNUM; + PROC_FRAME_OFFSET(&temp_proc_desc) = frame_size; + PROC_REG_MASK(&temp_proc_desc) = reg_mask; + PROC_PC_REG(&temp_proc_desc) = (pcreg == -1) ? RA_REGNUM : pcreg; + PROC_LOCALOFF(&temp_proc_desc) = 0; /* XXX - bogus */ + return &temp_proc_desc; +} + +/* This returns the PC of the first inst after the prologue. If we can't + find the prologue, then return 0. */ + +static CORE_ADDR +after_prologue (pc, proc_desc) + CORE_ADDR pc; + alpha_extra_func_info_t proc_desc; +{ + struct symtab_and_line sal; + CORE_ADDR func_addr, func_end; + + if (!proc_desc) + proc_desc = find_proc_desc (pc, NULL); + + if (proc_desc) + { + if (PROC_DESC_IS_DYN_SIGTRAMP (proc_desc)) + return PROC_LOW_ADDR (proc_desc); /* "prologue" is in kernel */ + + /* If function is frameless, then we need to do it the hard way. I + strongly suspect that frameless always means prologueless... */ + if (PROC_FRAME_REG (proc_desc) == SP_REGNUM + && PROC_FRAME_OFFSET (proc_desc) == 0) + return 0; + } + + if (!find_pc_partial_function (pc, NULL, &func_addr, &func_end)) + return 0; /* Unknown */ + + sal = find_pc_line (func_addr, 0); + + if (sal.end < func_end) + return sal.end; + + /* The line after the prologue is after the end of the function. In this + case, tell the caller to find the prologue the hard way. */ + + return 0; +} + +/* Return non-zero if we *might* be in a function prologue. Return zero if we + are definitively *not* in a function prologue. */ + +static int +alpha_in_prologue (pc, proc_desc) + CORE_ADDR pc; + alpha_extra_func_info_t proc_desc; +{ + CORE_ADDR after_prologue_pc; + + after_prologue_pc = after_prologue (pc, proc_desc); + + if (after_prologue_pc == 0 + || pc < after_prologue_pc) + return 1; + else + return 0; +} + +static alpha_extra_func_info_t +find_proc_desc (pc, next_frame) + CORE_ADDR pc; + struct frame_info *next_frame; +{ + alpha_extra_func_info_t proc_desc; + struct block *b; + struct symbol *sym; + CORE_ADDR startaddr; + + /* Try to get the proc_desc from the linked call dummy proc_descs + if the pc is in the call dummy. + This is hairy. In the case of nested dummy calls we have to find the + right proc_desc, but we might not yet know the frame for the dummy + as it will be contained in the proc_desc we are searching for. + So we have to find the proc_desc whose frame is closest to the current + stack pointer. */ + + if (PC_IN_CALL_DUMMY (pc, 0, 0)) + { + struct linked_proc_info *link; + CORE_ADDR sp = read_next_frame_reg (next_frame, SP_REGNUM); + alpha_extra_func_info_t found_proc_desc = NULL; + long min_distance = LONG_MAX; + + for (link = linked_proc_desc_table; link; link = link->next) + { + long distance = (CORE_ADDR) PROC_DUMMY_FRAME (&link->info) - sp; + if (distance > 0 && distance < min_distance) + { + min_distance = distance; + found_proc_desc = &link->info; + } + } + if (found_proc_desc != NULL) + return found_proc_desc; + } + + b = block_for_pc(pc); + + find_pc_partial_function (pc, NULL, &startaddr, NULL); + if (b == NULL) + sym = NULL; + else + { + if (startaddr > BLOCK_START (b)) + /* This is the "pathological" case referred to in a comment in + print_frame_info. It might be better to move this check into + symbol reading. */ + sym = NULL; + else + sym = lookup_symbol (MIPS_EFI_SYMBOL_NAME, b, LABEL_NAMESPACE, + 0, NULL); + } + + /* If we never found a PDR for this function in symbol reading, then + examine prologues to find the information. */ + if (sym && ((mips_extra_func_info_t) SYMBOL_VALUE (sym))->pdr.framereg == -1) + sym = NULL; + + if (sym) + { + /* IF this is the topmost frame AND + * (this proc does not have debugging information OR + * the PC is in the procedure prologue) + * THEN create a "heuristic" proc_desc (by analyzing + * the actual code) to replace the "official" proc_desc. + */ + proc_desc = (alpha_extra_func_info_t)SYMBOL_VALUE(sym); + if (next_frame == NULL) + { + if (PROC_DESC_IS_DUMMY (proc_desc) || alpha_in_prologue (pc, proc_desc)) + { + alpha_extra_func_info_t found_heuristic = + heuristic_proc_desc (PROC_LOW_ADDR (proc_desc), + pc, next_frame); + if (found_heuristic) + { + PROC_LOCALOFF (found_heuristic) = + PROC_LOCALOFF (proc_desc); + PROC_PC_REG (found_heuristic) = PROC_PC_REG (proc_desc); + proc_desc = found_heuristic; + } + } + } + } + else + { + long offset; + + /* Is linked_proc_desc_table really necessary? It only seems to be used + by procedure call dummys. However, the procedures being called ought + to have their own proc_descs, and even if they don't, + heuristic_proc_desc knows how to create them! */ + + register struct linked_proc_info *link; + for (link = linked_proc_desc_table; link; link = link->next) + if (PROC_LOW_ADDR(&link->info) <= pc + && PROC_HIGH_ADDR(&link->info) > pc) + return &link->info; + + /* If PC is inside a dynamically generated sigtramp handler, + create and push a procedure descriptor for that code: */ + offset = DYNAMIC_SIGTRAMP_OFFSET (pc); + if (offset >= 0) + return push_sigtramp_desc (pc - offset); + + /* If heuristic_fence_post is non-zero, determine the procedure + start address by examining the instructions. + This allows us to find the start address of static functions which + have no symbolic information, as startaddr would have been set to + the preceding global function start address by the + find_pc_partial_function call above. */ + if (startaddr == 0 || heuristic_fence_post != 0) + startaddr = heuristic_proc_start (pc); + + proc_desc = + heuristic_proc_desc (startaddr, pc, next_frame); + } + return proc_desc; +} + +alpha_extra_func_info_t cached_proc_desc; + +CORE_ADDR +alpha_frame_chain(frame) + struct frame_info *frame; +{ + alpha_extra_func_info_t proc_desc; + CORE_ADDR saved_pc = FRAME_SAVED_PC(frame); + + if (saved_pc == 0 || inside_entry_file (saved_pc)) + return 0; + + proc_desc = find_proc_desc(saved_pc, frame); + if (!proc_desc) + return 0; + + cached_proc_desc = proc_desc; + + /* Fetch the frame pointer for a dummy frame from the procedure + descriptor. */ + if (PROC_DESC_IS_DUMMY(proc_desc)) + return (CORE_ADDR) PROC_DUMMY_FRAME(proc_desc); + + /* If no frame pointer and frame size is zero, we must be at end + of stack (or otherwise hosed). If we don't check frame size, + we loop forever if we see a zero size frame. */ + if (PROC_FRAME_REG (proc_desc) == SP_REGNUM + && PROC_FRAME_OFFSET (proc_desc) == 0 + /* The previous frame from a sigtramp frame might be frameless + and have frame size zero. */ + && !frame->signal_handler_caller) + return FRAME_PAST_SIGTRAMP_FRAME (frame, saved_pc); + else + return read_next_frame_reg(frame, PROC_FRAME_REG(proc_desc)) + + PROC_FRAME_OFFSET(proc_desc); +} + +void +init_extra_frame_info (frame) + struct frame_info *frame; +{ + /* Use proc_desc calculated in frame_chain */ + alpha_extra_func_info_t proc_desc = + frame->next ? cached_proc_desc : find_proc_desc(frame->pc, frame->next); + + frame->saved_regs = NULL; + frame->localoff = 0; + frame->pc_reg = RA_REGNUM; + frame->proc_desc = proc_desc == &temp_proc_desc ? 0 : proc_desc; + if (proc_desc) + { + /* Get the locals offset and the saved pc register from the + procedure descriptor, they are valid even if we are in the + middle of the prologue. */ + frame->localoff = PROC_LOCALOFF(proc_desc); + frame->pc_reg = PROC_PC_REG(proc_desc); + + /* Fixup frame-pointer - only needed for top frame */ + + /* Fetch the frame pointer for a dummy frame from the procedure + descriptor. */ + if (PROC_DESC_IS_DUMMY(proc_desc)) + frame->frame = (CORE_ADDR) PROC_DUMMY_FRAME(proc_desc); + + /* This may not be quite right, if proc has a real frame register. + Get the value of the frame relative sp, procedure might have been + interrupted by a signal at it's very start. */ + else if (frame->pc == PROC_LOW_ADDR (proc_desc) + && !PROC_DESC_IS_DYN_SIGTRAMP (proc_desc)) + frame->frame = read_next_frame_reg (frame->next, SP_REGNUM); + else + frame->frame = read_next_frame_reg (frame->next, PROC_FRAME_REG (proc_desc)) + + PROC_FRAME_OFFSET (proc_desc); + + if (proc_desc == &temp_proc_desc) + { + char *name; + + /* Do not set the saved registers for a sigtramp frame, + alpha_find_saved_registers will do that for us. + We can't use frame->signal_handler_caller, it is not yet set. */ + find_pc_partial_function (frame->pc, &name, + (CORE_ADDR *)NULL,(CORE_ADDR *)NULL); + if (!IN_SIGTRAMP (frame->pc, name)) + { + frame->saved_regs = (CORE_ADDR*) + frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS); + memcpy (frame->saved_regs, temp_saved_regs.regs, SIZEOF_FRAME_SAVED_REGS); + frame->saved_regs[PC_REGNUM] + = frame->saved_regs[RA_REGNUM]; + } + } + } +} + +/* ALPHA stack frames are almost impenetrable. When execution stops, + we basically have to look at symbol information for the function + that we stopped in, which tells us *which* register (if any) is + the base of the frame pointer, and what offset from that register + the frame itself is at. + + This presents a problem when trying to examine a stack in memory + (that isn't executing at the moment), using the "frame" command. We + don't have a PC, nor do we have any registers except SP. + + This routine takes two arguments, SP and PC, and tries to make the + cached frames look as if these two arguments defined a frame on the + cache. This allows the rest of info frame to extract the important + arguments without difficulty. */ + +struct frame_info * +setup_arbitrary_frame (argc, argv) + int argc; + CORE_ADDR *argv; +{ + if (argc != 2) + error ("ALPHA frame specifications require two arguments: sp and pc"); + + return create_new_frame (argv[0], argv[1]); +} + +/* The alpha passes the first six arguments in the registers, the rest on + the stack. The register arguments are eventually transferred to the + argument transfer area immediately below the stack by the called function + anyway. So we `push' at least six arguments on the stack, `reload' the + argument registers and then adjust the stack pointer to point past the + sixth argument. This algorithm simplifies the passing of a large struct + which extends from the registers to the stack. + If the called function is returning a structure, the address of the + structure to be returned is passed as a hidden first argument. */ + +CORE_ADDR +alpha_push_arguments (nargs, args, sp, struct_return, struct_addr) + int nargs; + value_ptr *args; + CORE_ADDR sp; + int struct_return; + CORE_ADDR struct_addr; +{ + register i; + int accumulate_size = struct_return ? 8 : 0; + int arg_regs_size = ALPHA_NUM_ARG_REGS * 8; + struct alpha_arg { char *contents; int len; int offset; }; + struct alpha_arg *alpha_args = + (struct alpha_arg*)alloca (nargs * sizeof (struct alpha_arg)); + register struct alpha_arg *m_arg; + char raw_buffer[sizeof (CORE_ADDR)]; + int required_arg_regs; + + for (i = 0, m_arg = alpha_args; i < nargs; i++, m_arg++) + { + value_ptr arg = args[i]; + struct type *arg_type = check_typedef (VALUE_TYPE (arg)); + /* Cast argument to long if necessary as the compiler does it too. */ + switch (TYPE_CODE (arg_type)) + { + case TYPE_CODE_INT: + case TYPE_CODE_BOOL: + case TYPE_CODE_CHAR: + case TYPE_CODE_RANGE: + case TYPE_CODE_ENUM: + if (TYPE_LENGTH (arg_type) < TYPE_LENGTH (builtin_type_long)) + { + arg_type = builtin_type_long; + arg = value_cast (arg_type, arg); + } + break; + default: + break; + } + m_arg->len = TYPE_LENGTH (arg_type); + m_arg->offset = accumulate_size; + accumulate_size = (accumulate_size + m_arg->len + 7) & ~7; + m_arg->contents = VALUE_CONTENTS(arg); + } + + /* Determine required argument register loads, loading an argument register + is expensive as it uses three ptrace calls. */ + required_arg_regs = accumulate_size / 8; + if (required_arg_regs > ALPHA_NUM_ARG_REGS) + required_arg_regs = ALPHA_NUM_ARG_REGS; + + /* Make room for the arguments on the stack. */ + if (accumulate_size < arg_regs_size) + accumulate_size = arg_regs_size; + sp -= accumulate_size; + + /* Keep sp aligned to a multiple of 16 as the compiler does it too. */ + sp &= ~15; + + /* `Push' arguments on the stack. */ + for (i = nargs; m_arg--, --i >= 0; ) + write_memory(sp + m_arg->offset, m_arg->contents, m_arg->len); + if (struct_return) + { + store_address (raw_buffer, sizeof (CORE_ADDR), struct_addr); + write_memory (sp, raw_buffer, sizeof (CORE_ADDR)); + } + + /* Load the argument registers. */ + for (i = 0; i < required_arg_regs; i++) + { + LONGEST val; + + val = read_memory_integer (sp + i * 8, 8); + write_register (A0_REGNUM + i, val); + write_register (FPA0_REGNUM + i, val); + } + + return sp + arg_regs_size; +} + +void +alpha_push_dummy_frame() +{ + int ireg; + struct linked_proc_info *link; + alpha_extra_func_info_t proc_desc; + CORE_ADDR sp = read_register (SP_REGNUM); + CORE_ADDR save_address; + char raw_buffer[MAX_REGISTER_RAW_SIZE]; + unsigned long mask; + + link = (struct linked_proc_info *) xmalloc(sizeof (struct linked_proc_info)); + link->next = linked_proc_desc_table; + linked_proc_desc_table = link; + + proc_desc = &link->info; + + /* + * The registers we must save are all those not preserved across + * procedure calls. + * In addition, we must save the PC and RA. + * + * Dummy frame layout: + * (high memory) + * Saved PC + * Saved F30 + * ... + * Saved F0 + * Saved R29 + * ... + * Saved R0 + * Saved R26 (RA) + * Parameter build area + * (low memory) + */ + +/* MASK(i,j) == (1<>= 1) + if (mask & 1) + { + if (ireg == RA_REGNUM) + continue; + store_address (raw_buffer, 8, read_register (ireg)); + write_memory (save_address, raw_buffer, 8); + save_address += 8; + } + + store_address (raw_buffer, 8, read_register (PC_REGNUM)); + write_memory (sp - 8, raw_buffer, 8); + + /* Save floating point registers. */ + save_address = sp + PROC_FREG_OFFSET(proc_desc); + mask = PROC_FREG_MASK(proc_desc) & 0xffffffffL; + for (ireg = 0; mask; ireg++, mask >>= 1) + if (mask & 1) + { + store_address (raw_buffer, 8, read_register (ireg + FP0_REGNUM)); + write_memory (save_address, raw_buffer, 8); + save_address += 8; + } + + /* Set and save the frame address for the dummy. + This is tricky. The only registers that are suitable for a frame save + are those that are preserved across procedure calls (s0-s6). But if + a read system call is interrupted and then a dummy call is made + (see testsuite/gdb.t17/interrupt.exp) the dummy call hangs till the read + is satisfied. Then it returns with the s0-s6 registers set to the values + on entry to the read system call and our dummy frame pointer would be + destroyed. So we save the dummy frame in the proc_desc and handle the + retrieval of the frame pointer of a dummy specifically. The frame register + is set to the virtual frame (pseudo) register, it's value will always + be read as zero and will help us to catch any errors in the dummy frame + retrieval code. */ + PROC_DUMMY_FRAME(proc_desc) = sp; + PROC_FRAME_REG(proc_desc) = FP_REGNUM; + PROC_FRAME_OFFSET(proc_desc) = 0; + sp += PROC_REG_OFFSET(proc_desc); + write_register (SP_REGNUM, sp); + + PROC_LOW_ADDR(proc_desc) = CALL_DUMMY_ADDRESS (); + PROC_HIGH_ADDR(proc_desc) = PROC_LOW_ADDR(proc_desc) + 4; + + SET_PROC_DESC_IS_DUMMY(proc_desc); + PROC_PC_REG(proc_desc) = RA_REGNUM; +} + +void +alpha_pop_frame() +{ + register int regnum; + struct frame_info *frame = get_current_frame (); + CORE_ADDR new_sp = frame->frame; + + alpha_extra_func_info_t proc_desc = frame->proc_desc; + + write_register (PC_REGNUM, FRAME_SAVED_PC(frame)); + if (frame->saved_regs == NULL) + alpha_find_saved_regs (frame); + if (proc_desc) + { + for (regnum = 32; --regnum >= 0; ) + if (PROC_REG_MASK(proc_desc) & (1 << regnum)) + write_register (regnum, + read_memory_integer (frame->saved_regs[regnum], + 8)); + for (regnum = 32; --regnum >= 0; ) + if (PROC_FREG_MASK(proc_desc) & (1 << regnum)) + write_register (regnum + FP0_REGNUM, + read_memory_integer (frame->saved_regs[regnum + FP0_REGNUM], 8)); + } + write_register (SP_REGNUM, new_sp); + flush_cached_frames (); + + if (proc_desc && (PROC_DESC_IS_DUMMY(proc_desc) + || PROC_DESC_IS_DYN_SIGTRAMP (proc_desc))) + { + struct linked_proc_info *pi_ptr, *prev_ptr; + + for (pi_ptr = linked_proc_desc_table, prev_ptr = NULL; + pi_ptr != NULL; + prev_ptr = pi_ptr, pi_ptr = pi_ptr->next) + { + if (&pi_ptr->info == proc_desc) + break; + } + + if (pi_ptr == NULL) + error ("Can't locate dummy extra frame info\n"); + + if (prev_ptr != NULL) + prev_ptr->next = pi_ptr->next; + else + linked_proc_desc_table = pi_ptr->next; + + free (pi_ptr); + } +} + +/* To skip prologues, I use this predicate. Returns either PC itself + if the code at PC does not look like a function prologue; otherwise + returns an address that (if we're lucky) follows the prologue. If + LENIENT, then we must skip everything which is involved in setting + up the frame (it's OK to skip more, just so long as we don't skip + anything which might clobber the registers which are being saved. + Currently we must not skip more on the alpha, but we might the lenient + stuff some day. */ + +CORE_ADDR +alpha_skip_prologue (pc, lenient) + CORE_ADDR pc; + int lenient; +{ + unsigned long inst; + int offset; + CORE_ADDR post_prologue_pc; + char buf[4]; + +#ifdef GDB_TARGET_HAS_SHARED_LIBS + /* Silently return the unaltered pc upon memory errors. + This could happen on OSF/1 if decode_line_1 tries to skip the + prologue for quickstarted shared library functions when the + shared library is not yet mapped in. + Reading target memory is slow over serial lines, so we perform + this check only if the target has shared libraries. */ + if (target_read_memory (pc, buf, 4)) + return pc; +#endif + + /* See if we can determine the end of the prologue via the symbol table. + If so, then return either PC, or the PC after the prologue, whichever + is greater. */ + + post_prologue_pc = after_prologue (pc, NULL); + + if (post_prologue_pc != 0) + return max (pc, post_prologue_pc); + + /* Can't determine prologue from the symbol table, need to examine + instructions. */ + + /* Skip the typical prologue instructions. These are the stack adjustment + instruction and the instructions that save registers on the stack + or in the gcc frame. */ + for (offset = 0; offset < 100; offset += 4) + { + int status; + + status = read_memory_nobpt (pc + offset, buf, 4); + if (status) + memory_error (status, pc + offset); + inst = extract_unsigned_integer (buf, 4); + + /* The alpha has no delay slots. But let's keep the lenient stuff, + we might need it for something else in the future. */ + if (lenient && 0) + continue; + + if ((inst & 0xffff0000) == 0x27bb0000) /* ldah $gp,n($t12) */ + continue; + if ((inst & 0xffff0000) == 0x23bd0000) /* lda $gp,n($gp) */ + continue; + if ((inst & 0xffff0000) == 0x23de0000) /* lda $sp,n($sp) */ + continue; + else if ((inst & 0xfc1f0000) == 0xb41e0000 + && (inst & 0xffff0000) != 0xb7fe0000) + continue; /* stq reg,n($sp) */ + /* reg != $zero */ + else if ((inst & 0xfc1f0000) == 0x9c1e0000 + && (inst & 0xffff0000) != 0x9ffe0000) + continue; /* stt reg,n($sp) */ + /* reg != $zero */ + else if (inst == 0x47de040f) /* bis sp,sp,fp */ + continue; + else + break; + } + return pc + offset; +} + +#if 0 +/* Is address PC in the prologue (loosely defined) for function at + STARTADDR? */ + +static int +alpha_in_lenient_prologue (startaddr, pc) + CORE_ADDR startaddr; + CORE_ADDR pc; +{ + CORE_ADDR end_prologue = alpha_skip_prologue (startaddr, 1); + return pc >= startaddr && pc < end_prologue; +} +#endif + +/* The alpha needs a conversion between register and memory format if + the register is a floating point register and + memory format is float, as the register format must be double + or + memory format is an integer with 4 bytes or less, as the representation + of integers in floating point registers is different. */ +void +alpha_register_convert_to_virtual (regnum, valtype, raw_buffer, virtual_buffer) + int regnum; + struct type *valtype; + char *raw_buffer; + char *virtual_buffer; +{ + if (TYPE_LENGTH (valtype) >= REGISTER_RAW_SIZE (regnum)) + { + memcpy (virtual_buffer, raw_buffer, REGISTER_VIRTUAL_SIZE (regnum)); + return; + } + + if (TYPE_CODE (valtype) == TYPE_CODE_FLT) + { + double d = extract_floating (raw_buffer, REGISTER_RAW_SIZE (regnum)); + store_floating (virtual_buffer, TYPE_LENGTH (valtype), d); + } + else if (TYPE_CODE (valtype) == TYPE_CODE_INT && TYPE_LENGTH (valtype) <= 4) + { + ULONGEST l; + l = extract_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum)); + l = ((l >> 32) & 0xc0000000) | ((l >> 29) & 0x3fffffff); + store_unsigned_integer (virtual_buffer, TYPE_LENGTH (valtype), l); + } + else + error ("Cannot retrieve value from floating point register"); +} + +void +alpha_register_convert_to_raw (valtype, regnum, virtual_buffer, raw_buffer) + struct type *valtype; + int regnum; + char *virtual_buffer; + char *raw_buffer; +{ + if (TYPE_LENGTH (valtype) >= REGISTER_RAW_SIZE (regnum)) + { + memcpy (raw_buffer, virtual_buffer, REGISTER_RAW_SIZE (regnum)); + return; + } + + if (TYPE_CODE (valtype) == TYPE_CODE_FLT) + { + double d = extract_floating (virtual_buffer, TYPE_LENGTH (valtype)); + store_floating (raw_buffer, REGISTER_RAW_SIZE (regnum), d); + } + else if (TYPE_CODE (valtype) == TYPE_CODE_INT && TYPE_LENGTH (valtype) <= 4) + { + ULONGEST l; + if (TYPE_UNSIGNED (valtype)) + l = extract_unsigned_integer (virtual_buffer, TYPE_LENGTH (valtype)); + else + l = extract_signed_integer (virtual_buffer, TYPE_LENGTH (valtype)); + l = ((l & 0xc0000000) << 32) | ((l & 0x3fffffff) << 29); + store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum), l); + } + else + error ("Cannot store value in floating point register"); +} + +/* Given a return value in `regbuf' with a type `valtype', + extract and copy its value into `valbuf'. */ + +void +alpha_extract_return_value (valtype, regbuf, valbuf) + struct type *valtype; + char regbuf[REGISTER_BYTES]; + char *valbuf; +{ + if (TYPE_CODE (valtype) == TYPE_CODE_FLT) + alpha_register_convert_to_virtual (FP0_REGNUM, valtype, + regbuf + REGISTER_BYTE (FP0_REGNUM), + valbuf); + else + memcpy (valbuf, regbuf + REGISTER_BYTE (V0_REGNUM), TYPE_LENGTH (valtype)); +} + +/* Given a return value in `regbuf' with a type `valtype', + write its value into the appropriate register. */ + +void +alpha_store_return_value (valtype, valbuf) + struct type *valtype; + char *valbuf; +{ + char raw_buffer[MAX_REGISTER_RAW_SIZE]; + int regnum = V0_REGNUM; + int length = TYPE_LENGTH (valtype); + + if (TYPE_CODE (valtype) == TYPE_CODE_FLT) + { + regnum = FP0_REGNUM; + length = REGISTER_RAW_SIZE (regnum); + alpha_register_convert_to_raw (valtype, regnum, valbuf, raw_buffer); + } + else + memcpy (raw_buffer, valbuf, length); + + write_register_bytes (REGISTER_BYTE (regnum), raw_buffer, length); +} + +/* Just like reinit_frame_cache, but with the right arguments to be + callable as an sfunc. */ + +static void +reinit_frame_cache_sfunc (args, from_tty, c) + char *args; + int from_tty; + struct cmd_list_element *c; +{ + reinit_frame_cache (); +} + +/* This is the definition of CALL_DUMMY_ADDRESS. It's a heuristic that is used + to find a convenient place in the text segment to stick a breakpoint to + detect the completion of a target function call (ala call_function_by_hand). + */ + +CORE_ADDR +alpha_call_dummy_address () +{ + CORE_ADDR entry; + struct minimal_symbol *sym; + + entry = entry_point_address (); + + if (entry != 0) + return entry; + + sym = lookup_minimal_symbol ("_Prelude", NULL, symfile_objfile); + + if (!sym || MSYMBOL_TYPE (sym) != mst_text) + return 0; + else + return SYMBOL_VALUE_ADDRESS (sym) + 4; +} + +void +_initialize_alpha_tdep () +{ + struct cmd_list_element *c; + + tm_print_insn = print_insn_alpha; + + /* Let the user set the fence post for heuristic_proc_start. */ + + /* We really would like to have both "0" and "unlimited" work, but + command.c doesn't deal with that. So make it a var_zinteger + because the user can always use "999999" or some such for unlimited. */ + c = add_set_cmd ("heuristic-fence-post", class_support, var_zinteger, + (char *) &heuristic_fence_post, + "\ +Set the distance searched for the start of a function.\n\ +If you are debugging a stripped executable, GDB needs to search through the\n\ +program for the start of a function. This command sets the distance of the\n\ +search. The only need to set it is when debugging a stripped executable.", + &setlist); + /* We need to throw away the frame cache when we set this, since it + might change our ability to get backtraces. */ + c->function.sfunc = reinit_frame_cache_sfunc; + add_show_from_set (c, &showlist); +} diff --git a/gdb/altos-xdep.c b/gdb/altos-xdep.c new file mode 100644 index 0000000000..5727332cf6 --- /dev/null +++ b/gdb/altos-xdep.c @@ -0,0 +1,164 @@ +/* Low level interface to ptrace, for GDB when running under m68k SVR2 Unix + on Altos 3068. Report bugs to Jyrki Kuoppala + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "frame.h" +#include "inferior.h" + +#ifdef USG +#include +#endif + +#include +#include +#include +#include +#include +#ifdef USG +#include +#ifdef ALTOS +#include +#include +#endif +#endif + +#include "gdbcore.h" +#include /* After a.out.h */ +#include +#include "gdb_stat.h" + + +/* Work with core dump and executable files, for GDB. + This code would be in corefile.c if it weren't machine-dependent. */ + +void +core_file_command (filename, from_tty) + char *filename; + int from_tty; +{ + int val; + extern char registers[]; + + /* Discard all vestiges of any previous core file + and mark data and stack spaces as empty. */ + + if (corefile) + free (corefile); + corefile = 0; + + if (corechan >= 0) + close (corechan); + corechan = -1; + + data_start = 0; + data_end = 0; + stack_start = STACK_END_ADDR; + stack_end = STACK_END_ADDR; + + /* Now, if a new core file was specified, open it and digest it. */ + + if (filename) + { + filename = tilde_expand (filename); + make_cleanup (free, filename); + + if (have_inferior_p ()) + error ("To look at a core file, you must kill the program with \"kill\"."); + corechan = open (filename, O_RDONLY, 0); + if (corechan < 0) + perror_with_name (filename); + /* 4.2-style (and perhaps also sysV-style) core dump file. */ + { + struct user u; + + unsigned int reg_offset; + + val = myread (corechan, &u, sizeof u); + if (val < 0) + perror_with_name ("Not a core file: reading upage"); + if (val != sizeof u) + error ("Not a core file: could only read %d bytes", val); + data_start = exec_data_start; + +#if !defined (NBPG) +#define NBPG NBPP +#endif +#if !defined (UPAGES) +#define UPAGES USIZE +#endif + + data_end = data_start + NBPG * u.u_dsize; + stack_start = stack_end - NBPG * u.u_ssize; + data_offset = NBPG * UPAGES + exec_data_start % NBPG /* Not sure about this //jkp */; + stack_offset = NBPG * (UPAGES + u.u_dsize); + + /* Some machines put an absolute address in here and some put + the offset in the upage of the regs. */ + reg_offset = (int) u.u_state; + if (reg_offset > NBPG * UPAGES) + reg_offset -= KERNEL_U_ADDR; + + memcpy (&core_aouthdr, &u.u_exdata, sizeof (AOUTHDR)); + printf_unfiltered ("Core file is from \"%s\".\n", u.u_comm); + + /* I don't know where to find this info. + So, for now, mark it as not available. */ + N_SET_MAGIC (core_aouthdr, 0); + + /* Read the register values out of the core file and store + them where `read_register' will find them. */ + + { + register int regno; + + for (regno = 0; regno < NUM_REGS; regno++) + { + char buf[MAX_REGISTER_RAW_SIZE]; + + val = lseek (corechan, register_addr (regno, reg_offset), 0); + if (val < 0 + || (val = myread (corechan, buf, sizeof buf)) < 0) + { + char * buffer = (char *) alloca (strlen (REGISTER_NAME (regno)) + + 30); + strcpy (buffer, "Reading register "); + strcat (buffer, REGISTER_NAME (regno)); + + perror_with_name (buffer); + } + + supply_register (regno, buf); + } + } + } + if (filename[0] == '/') + corefile = savestring (filename, strlen (filename)); + else + { + corefile = concat (current_directory, "/", filename, NULL); + } + + flush_cached_frames (); + select_frame (get_current_frame (), 0); + validate_files (); + } + else if (from_tty) + printf_unfiltered ("No core file now.\n"); +} diff --git a/gdb/annotate.c b/gdb/annotate.c new file mode 100644 index 0000000000..ec3e4245c9 --- /dev/null +++ b/gdb/annotate.c @@ -0,0 +1,577 @@ +/* Annotation routines for GDB. + Copyright 1986, 89, 90, 91, 92, 95, 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "annotate.h" +#include "value.h" +#include "target.h" +#include "gdbtypes.h" +#include "breakpoint.h" + + +/* Prototypes for local functions. */ + +static void print_value_flags PARAMS ((struct type *)); + +static void breakpoint_changed PARAMS ((struct breakpoint *)); + +void (*annotate_starting_hook) PARAMS ((void)); +void (*annotate_stopped_hook) PARAMS ((void)); +void (*annotate_signalled_hook) PARAMS ((void)); +void (*annotate_exited_hook) PARAMS ((void)); + +static void +print_value_flags (t) + struct type *t; +{ + if (can_dereference (t)) + printf_filtered ("*"); + else + printf_filtered ("-"); +} + +void +breakpoints_changed () +{ + if (annotation_level > 1) + { + target_terminal_ours (); + printf_unfiltered ("\n\032\032breakpoints-invalid\n"); + } +} + +void +annotate_breakpoint (num) + int num; +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032breakpoint %d\n", num); +} + +void +annotate_catchpoint (num) + int num; +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032catchpoint %d\n", num); +} + +void +annotate_watchpoint (num) + int num; +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032watchpoint %d\n", num); +} + +void +annotate_starting () +{ + + if (annotate_starting_hook) + annotate_starting_hook (); + else + { + if (annotation_level > 1) + { + printf_filtered ("\n\032\032starting\n"); + } + } +} + +void +annotate_stopped () +{ + if (annotate_stopped_hook) + annotate_stopped_hook (); + else + { + if (annotation_level > 1) + printf_filtered ("\n\032\032stopped\n"); + } +} + +void +annotate_exited (exitstatus) + int exitstatus; +{ + if (annotate_exited_hook) + annotate_exited_hook (); + else + { + if (annotation_level > 1) + printf_filtered ("\n\032\032exited %d\n", exitstatus); + } +} + +void +annotate_signalled () +{ + if (annotate_signalled_hook) + annotate_signalled_hook (); + + if (annotation_level > 1) + printf_filtered ("\n\032\032signalled\n"); +} + +void +annotate_signal_name () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032signal-name\n"); +} + +void +annotate_signal_name_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032signal-name-end\n"); +} + +void +annotate_signal_string () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032signal-string\n"); +} + +void +annotate_signal_string_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032signal-string-end\n"); +} + +void +annotate_signal () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032signal\n"); +} + +void +annotate_breakpoints_headers () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032breakpoints-headers\n"); +} + +void +annotate_field (num) + int num; +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032field %d\n", num); +} + +void +annotate_breakpoints_table () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032breakpoints-table\n"); +} + +void +annotate_record () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032record\n"); +} + +void +annotate_breakpoints_table_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032breakpoints-table-end\n"); +} + +void +annotate_frames_invalid () +{ + if (annotation_level > 1) + { + target_terminal_ours (); + printf_unfiltered ("\n\032\032frames-invalid\n"); + } +} + +void +annotate_field_begin (type) + struct type *type; +{ + if (annotation_level > 1) + { + printf_filtered ("\n\032\032field-begin "); + print_value_flags (type); + printf_filtered ("\n"); + } +} + +void +annotate_field_name_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032field-name-end\n"); +} + +void +annotate_field_value () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032field-value\n"); +} + +void +annotate_field_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032field-end\n"); +} + +void +annotate_quit () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032quit\n"); +} + +void +annotate_error () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032error\n"); +} + +void +annotate_error_begin () +{ + if (annotation_level > 1) + fprintf_filtered (gdb_stderr, "\n\032\032error-begin\n"); +} + +void +annotate_value_history_begin (histindex, type) + int histindex; + struct type *type; +{ + if (annotation_level > 1) + { + printf_filtered ("\n\032\032value-history-begin %d ", histindex); + print_value_flags (type); + printf_filtered ("\n"); + } +} + +void +annotate_value_begin (type) + struct type *type; +{ + if (annotation_level > 1) + { + printf_filtered ("\n\032\032value-begin "); + print_value_flags (type); + printf_filtered ("\n"); + } +} + +void +annotate_value_history_value () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032value-history-value\n"); +} + +void +annotate_value_history_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032value-history-end\n"); +} + +void +annotate_value_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032value-end\n"); +} + +void +annotate_display_begin () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-begin\n"); +} + +void +annotate_display_number_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-number-end\n"); +} + +void +annotate_display_format () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-format\n"); +} + +void +annotate_display_expression () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-expression\n"); +} + +void +annotate_display_expression_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-expression-end\n"); +} + +void +annotate_display_value () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-value\n"); +} + +void +annotate_display_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032display-end\n"); +} + +void +annotate_arg_begin () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032arg-begin\n"); +} + +void +annotate_arg_name_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032arg-name-end\n"); +} + +void +annotate_arg_value (type) + struct type *type; +{ + if (annotation_level > 1) + { + printf_filtered ("\n\032\032arg-value "); + print_value_flags (type); + printf_filtered ("\n"); + } +} + +void +annotate_arg_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032arg-end\n"); +} + +void +annotate_source (filename, line, character, mid, pc) + char *filename; + int line; + int character; + int mid; + CORE_ADDR pc; +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032source "); + else + printf_filtered ("\032\032"); + + printf_filtered ("%s:%d:%d:%s:0x", filename, + line, character, + mid ? "middle" : "beg"); + print_address_numeric (pc, 0, gdb_stdout); + printf_filtered ("\n"); +} + +void +annotate_frame_begin (level, pc) + int level; + CORE_ADDR pc; +{ + if (annotation_level > 1) + { + printf_filtered ("\n\032\032frame-begin %d 0x", level); + print_address_numeric (pc, 0, gdb_stdout); + printf_filtered ("\n"); + } +} + +void +annotate_function_call () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032function-call\n"); +} + +void +annotate_signal_handler_caller () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032signal-handler-caller\n"); +} + +void +annotate_frame_address () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-address\n"); +} + +void +annotate_frame_address_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-address-end\n"); +} + +void +annotate_frame_function_name () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-function-name\n"); +} + +void +annotate_frame_args () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-args\n"); +} + +void +annotate_frame_source_begin () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-source-begin\n"); +} + +void +annotate_frame_source_file () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-source-file\n"); +} + +void +annotate_frame_source_file_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-source-file-end\n"); +} + +void +annotate_frame_source_line () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-source-line\n"); +} + +void +annotate_frame_source_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-source-end\n"); +} + +void +annotate_frame_where () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-where\n"); +} + +void +annotate_frame_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032frame-end\n"); +} + +void +annotate_array_section_begin (index, elttype) + int index; + struct type *elttype; +{ + if (annotation_level > 1) + { + printf_filtered ("\n\032\032array-section-begin %d ", index); + print_value_flags (elttype); + printf_filtered ("\n"); + } +} + +void +annotate_elt_rep (repcount) + unsigned int repcount; +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032elt-rep %u\n", repcount); +} + +void +annotate_elt_rep_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032elt-rep-end\n"); +} + +void +annotate_elt () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032elt\n"); +} + +void +annotate_array_section_end () +{ + if (annotation_level > 1) + printf_filtered ("\n\032\032array-section-end\n"); +} + +static void +breakpoint_changed (b) + struct breakpoint *b; +{ + breakpoints_changed (); +} + +void +_initialize_annotate () +{ + if (annotation_level > 1) + { + delete_breakpoint_hook = breakpoint_changed; + modify_breakpoint_hook = breakpoint_changed; + } +} diff --git a/gdb/annotate.h b/gdb/annotate.h new file mode 100644 index 0000000000..59739db68d --- /dev/null +++ b/gdb/annotate.h @@ -0,0 +1,104 @@ +/* Annotation routines for GDB. + Copyright 1986, 1989, 1990, 1991, 1992 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "symtab.h" +#include "gdbtypes.h" + +extern void breakpoints_changed PARAMS ((void)); + +extern void annotate_breakpoint PARAMS ((int)); +extern void annotate_catchpoint PARAMS ((int)); +extern void annotate_watchpoint PARAMS ((int)); +extern void annotate_starting PARAMS ((void)); +extern void annotate_stopped PARAMS ((void)); +extern void annotate_exited PARAMS ((int)); +extern void annotate_signalled PARAMS ((void)); +extern void annotate_signal_name PARAMS ((void)); +extern void annotate_signal_name_end PARAMS ((void)); +extern void annotate_signal_string PARAMS ((void)); +extern void annotate_signal_string_end PARAMS ((void)); +extern void annotate_signal PARAMS ((void)); + +extern void annotate_breakpoints_headers PARAMS ((void)); +extern void annotate_field PARAMS ((int)); +extern void annotate_breakpoints_table PARAMS ((void)); +extern void annotate_record PARAMS ((void)); +extern void annotate_breakpoints_table_end PARAMS ((void)); + +extern void annotate_frames_invalid PARAMS ((void)); + +#ifdef __STDC__ +struct type; +#endif + +extern void annotate_field_begin PARAMS ((struct type *)); +extern void annotate_field_name_end PARAMS ((void)); +extern void annotate_field_value PARAMS ((void)); +extern void annotate_field_end PARAMS ((void)); + +extern void annotate_quit PARAMS ((void)); +extern void annotate_error PARAMS ((void)); +extern void annotate_error_begin PARAMS ((void)); + +extern void annotate_value_history_begin PARAMS ((int, struct type *)); +extern void annotate_value_begin PARAMS ((struct type *)); +extern void annotate_value_history_value PARAMS ((void)); +extern void annotate_value_history_end PARAMS ((void)); +extern void annotate_value_end PARAMS ((void)); + +extern void annotate_display_begin PARAMS ((void)); +extern void annotate_display_number_end PARAMS ((void)); +extern void annotate_display_format PARAMS ((void)); +extern void annotate_display_expression PARAMS ((void)); +extern void annotate_display_expression_end PARAMS ((void)); +extern void annotate_display_value PARAMS ((void)); +extern void annotate_display_end PARAMS ((void)); + +extern void annotate_arg_begin PARAMS ((void)); +extern void annotate_arg_name_end PARAMS ((void)); +extern void annotate_arg_value PARAMS ((struct type *)); +extern void annotate_arg_end PARAMS ((void)); + +extern void annotate_source PARAMS ((char *, int, int, int, CORE_ADDR)); + +extern void annotate_frame_begin PARAMS ((int, CORE_ADDR)); +extern void annotate_function_call PARAMS ((void)); +extern void annotate_signal_handler_caller PARAMS ((void)); +extern void annotate_frame_address PARAMS ((void)); +extern void annotate_frame_address_end PARAMS ((void)); +extern void annotate_frame_function_name PARAMS ((void)); +extern void annotate_frame_args PARAMS ((void)); +extern void annotate_frame_source_begin PARAMS ((void)); +extern void annotate_frame_source_file PARAMS ((void)); +extern void annotate_frame_source_file_end PARAMS ((void)); +extern void annotate_frame_source_line PARAMS ((void)); +extern void annotate_frame_source_end PARAMS ((void)); +extern void annotate_frame_where PARAMS ((void)); +extern void annotate_frame_end PARAMS ((void)); + +extern void annotate_array_section_begin PARAMS ((int, struct type *)); +extern void annotate_elt_rep PARAMS ((unsigned int)); +extern void annotate_elt_rep_end PARAMS ((void)); +extern void annotate_elt PARAMS ((void)); +extern void annotate_array_section_end PARAMS ((void)); + +extern void (*annotate_starting_hook) PARAMS ((void)); +extern void (*annotate_stopped_hook) PARAMS ((void)); +extern void (*annotate_signalled_hook) PARAMS ((void)); +extern void (*annotate_exited_hook) PARAMS ((void)); diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c new file mode 100644 index 0000000000..92957700f9 --- /dev/null +++ b/gdb/arc-tdep.c @@ -0,0 +1,733 @@ +/* ARC target-dependent stuff. + Copyright (C) 1995, 1997 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "frame.h" +#include "inferior.h" +#include "gdbcore.h" +#include "target.h" +#include "floatformat.h" +#include "symtab.h" +#include "gdbcmd.h" + +/* Current CPU, set with the "set cpu" command. */ +static int arc_bfd_mach_type; +char *arc_cpu_type; +char *tmp_arc_cpu_type; + +/* Table of cpu names. */ +struct { + char *name; + int value; +} arc_cpu_type_table[] = { + { "base", bfd_mach_arc_base }, + { NULL, 0 } +}; + +/* Used by simulator. */ +int display_pipeline_p; +int cpu_timer; +/* This one must have the same type as used in the emulator. + It's currently an enum so this should be ok for now. */ +int debug_pipeline_p; + +#define ARC_CALL_SAVED_REG(r) ((r) >= 16 && (r) < 24) + +#define OPMASK 0xf8000000 + +/* Instruction field accessor macros. + See the Programmer's Reference Manual. */ +#define X_OP(i) (((i) >> 27) & 0x1f) +#define X_A(i) (((i) >> 21) & 0x3f) +#define X_B(i) (((i) >> 15) & 0x3f) +#define X_C(i) (((i) >> 9) & 0x3f) +#define X_D(i) ((((i) & 0x1ff) ^ 0x100) - 0x100) +#define X_L(i) (((((i) >> 5) & 0x3ffffc) ^ 0x200000) - 0x200000) +#define X_N(i) (((i) >> 5) & 3) +#define X_Q(i) ((i) & 0x1f) + +/* Return non-zero if X is a short immediate data indicator. */ +#define SHIMM_P(x) ((x) == 61 || (x) == 63) + +/* Return non-zero if X is a "long" (32 bit) immediate data indicator. */ +#define LIMM_P(x) ((x) == 62) + +/* Build a simple instruction. */ +#define BUILD_INSN(op, a, b, c, d) \ + ((((op) & 31) << 27) \ + | (((a) & 63) << 21) \ + | (((b) & 63) << 15) \ + | (((c) & 63) << 9) \ + | ((d) & 511)) + +/* Codestream stuff. */ +static void codestream_read PARAMS ((unsigned int *, int)); +static void codestream_seek PARAMS ((CORE_ADDR)); +static unsigned int codestream_fill PARAMS ((int)); + +#define CODESTREAM_BUFSIZ 16 +static CORE_ADDR codestream_next_addr; +static CORE_ADDR codestream_addr; +static unsigned int codestream_buf[CODESTREAM_BUFSIZ]; +static int codestream_off; +static int codestream_cnt; + +#define codestream_tell() \ + (codestream_addr + codestream_off * sizeof (codestream_buf[0])) +#define codestream_peek() \ + (codestream_cnt == 0 \ + ? codestream_fill (1) \ + : codestream_buf[codestream_off]) +#define codestream_get() \ + (codestream_cnt-- == 0 \ + ? codestream_fill (0) \ + : codestream_buf[codestream_off++]) + +static unsigned int +codestream_fill (peek_flag) + int peek_flag; +{ + codestream_addr = codestream_next_addr; + codestream_next_addr += CODESTREAM_BUFSIZ * sizeof (codestream_buf[0]); + codestream_off = 0; + codestream_cnt = CODESTREAM_BUFSIZ; + read_memory (codestream_addr, (char *) codestream_buf, + CODESTREAM_BUFSIZ * sizeof (codestream_buf[0])); + /* FIXME: check return code? */ + + /* Handle byte order differences. */ + if (HOST_BYTE_ORDER != TARGET_BYTE_ORDER) + { + register unsigned int i, j, n = sizeof (codestream_buf[0]); + register char tmp, *p; + for (i = 0, p = (char *) codestream_buf; i < CODESTREAM_BUFSIZ; + ++i, p += n) + for (j = 0; j < n / 2; ++j) + tmp = p[j], p[j] = p[n - 1 - j], p[n - 1 - j] = tmp; + } + + if (peek_flag) + return codestream_peek (); + else + return codestream_get (); +} + +static void +codestream_seek (place) + CORE_ADDR place; +{ + codestream_next_addr = place / CODESTREAM_BUFSIZ; + codestream_next_addr *= CODESTREAM_BUFSIZ; + codestream_cnt = 0; + codestream_fill (1); + while (codestream_tell () != place) + codestream_get (); +} + +/* This function is currently unused but leave in for now. */ + +static void +codestream_read (buf, count) + unsigned int *buf; + int count; +{ + unsigned int *p; + int i; + p = buf; + for (i = 0; i < count; i++) + *p++ = codestream_get (); +} + +/* Set up prologue scanning and return the first insn. */ + +static unsigned int +setup_prologue_scan (pc) + CORE_ADDR pc; +{ + unsigned int insn; + + codestream_seek (pc); + insn = codestream_get (); + + return insn; +} + +/* + * Find & return amount a local space allocated, and advance codestream to + * first register push (if any). + * If entry sequence doesn't make sense, return -1, and leave + * codestream pointer random. + */ + +static long +arc_get_frame_setup (pc) + CORE_ADDR pc; +{ + unsigned int insn; + /* Size of frame or -1 if unrecognizable prologue. */ + int frame_size = -1; + /* An initial "sub sp,sp,N" may or may not be for a stdarg fn. */ + int maybe_stdarg_decr = -1; + + insn = setup_prologue_scan (pc); + + /* The authority for what appears here is the home-grown ABI. + The most recent version is 1.2. */ + + /* First insn may be "sub sp,sp,N" if stdarg fn. */ + if ((insn & BUILD_INSN (-1, -1, -1, -1, 0)) + == BUILD_INSN (10, SP_REGNUM, SP_REGNUM, SHIMM_REGNUM, 0)) + { + maybe_stdarg_decr = X_D (insn); + insn = codestream_get (); + } + + if ((insn & BUILD_INSN (-1, 0, -1, -1, -1)) /* st blink,[sp,4] */ + == BUILD_INSN (2, 0, SP_REGNUM, BLINK_REGNUM, 4)) + { + insn = codestream_get (); + /* Frame may not be necessary, even though blink is saved. + At least this is something we recognize. */ + frame_size = 0; + } + + if ((insn & BUILD_INSN (-1, 0, -1, -1, -1)) /* st fp,[sp] */ + == BUILD_INSN (2, 0, SP_REGNUM, FP_REGNUM, 0)) + { + insn = codestream_get (); + if ((insn & BUILD_INSN (-1, -1, -1, -1, 0)) + != BUILD_INSN (12, FP_REGNUM, SP_REGNUM, SP_REGNUM, 0)) + return -1; + + /* Check for stack adjustment sub sp,sp,N. */ + insn = codestream_peek (); + if ((insn & BUILD_INSN (-1, -1, -1, 0, 0)) + == BUILD_INSN (10, SP_REGNUM, SP_REGNUM, 0, 0)) + { + if (LIMM_P (X_C (insn))) + frame_size = codestream_get (); + else if (SHIMM_P (X_C (insn))) + frame_size = X_D (insn); + else + return -1; + if (frame_size < 0) + return -1; + + codestream_get (); + + /* This sequence is used to get the address of the return + buffer for a function that returns a structure. */ + insn = codestream_peek (); + if (insn & OPMASK == 0x60000000) + codestream_get (); + } + /* Frameless fn. */ + else + { + frame_size = 0; + } + } + + /* If we found a "sub sp,sp,N" and nothing else, it may or may not be a + stdarg fn. The stdarg decrement is not treated as part of the frame size, + so we have a dilemma: what do we return? For now, if we get a + "sub sp,sp,N" and nothing else assume this isn't a stdarg fn. One way + to fix this completely would be to add a bit to the function descriptor + that says the function is a stdarg function. */ + + if (frame_size < 0 && maybe_stdarg_decr > 0) + return maybe_stdarg_decr; + return frame_size; +} + +/* Given a pc value, skip it forward past the function prologue by + disassembling instructions that appear to be a prologue. + + If FRAMELESS_P is set, we are only testing to see if the function + is frameless. If it is a frameless function, return PC unchanged. + This allows a quicker answer. */ + +CORE_ADDR +skip_prologue (pc, frameless_p) + CORE_ADDR pc; + int frameless_p; +{ + unsigned int insn; + int i, frame_size; + + if ((frame_size = arc_get_frame_setup (pc)) < 0) + return (pc); + + if (frameless_p) + return frame_size == 0 ? pc : codestream_tell (); + + /* Skip over register saves. */ + for (i = 0; i < 8; i++) + { + insn = codestream_peek (); + if ((insn & BUILD_INSN (-1, 0, -1, 0, 0)) + != BUILD_INSN (2, 0, SP_REGNUM, 0, 0)) + break; /* not st insn */ + if (! ARC_CALL_SAVED_REG (X_C (insn))) + break; + codestream_get (); + } + + return codestream_tell (); +} + +/* Return the return address for a frame. + This is used to implement FRAME_SAVED_PC. + This is taken from frameless_look_for_prologue. */ + +CORE_ADDR +arc_frame_saved_pc (frame) + struct frame_info *frame; +{ + CORE_ADDR func_start; + unsigned int insn; + + func_start = get_pc_function_start (frame->pc) + FUNCTION_START_OFFSET; + if (func_start == 0) + { + /* Best guess. */ + return ARC_PC_TO_REAL_ADDRESS (read_memory_integer (FRAME_FP (frame) + 4, 4)); + } + + /* The authority for what appears here is the home-grown ABI. + The most recent version is 1.2. */ + + insn = setup_prologue_scan (func_start); + + /* First insn may be "sub sp,sp,N" if stdarg fn. */ + if ((insn & BUILD_INSN (-1, -1, -1, -1, 0)) + == BUILD_INSN (10, SP_REGNUM, SP_REGNUM, SHIMM_REGNUM, 0)) + insn = codestream_get (); + + /* If the next insn is "st blink,[sp,4]" we can get blink from there. + Otherwise this is a leaf function and we can use blink. Note that + this still allows for the case where a leaf function saves/clobbers/ + restores blink. */ + + if ((insn & BUILD_INSN (-1, 0, -1, -1, -1)) /* st blink,[sp,4] */ + != BUILD_INSN (2, 0, SP_REGNUM, BLINK_REGNUM, 4)) + return ARC_PC_TO_REAL_ADDRESS (read_register (BLINK_REGNUM)); + else + return ARC_PC_TO_REAL_ADDRESS (read_memory_integer (FRAME_FP (frame) + 4, 4)); +} + +/* + * Parse the first few instructions of the function to see + * what registers were stored. + * + * The startup sequence can be at the start of the function. + * 'st blink,[sp+4], st fp,[sp], mov fp,sp' + * + * Local space is allocated just below by sub sp,sp,nnn. + * Next, the registers used by this function are stored (as offsets from sp). + */ + +void +frame_find_saved_regs (fip, fsrp) + struct frame_info *fip; + struct frame_saved_regs *fsrp; +{ + long locals; + unsigned int insn; + CORE_ADDR dummy_bottom; + CORE_ADDR adr; + int i, regnum, offset; + + memset (fsrp, 0, sizeof *fsrp); + + /* If frame is the end of a dummy, compute where the beginning would be. */ + dummy_bottom = fip->frame - 4 - REGISTER_BYTES - CALL_DUMMY_LENGTH; + + /* Check if the PC is in the stack, in a dummy frame. */ + if (dummy_bottom <= fip->pc && fip->pc <= fip->frame) + { + /* all regs were saved by push_call_dummy () */ + adr = fip->frame; + for (i = 0; i < NUM_REGS; i++) + { + adr -= REGISTER_RAW_SIZE (i); + fsrp->regs[i] = adr; + } + return; + } + + locals = arc_get_frame_setup (get_pc_function_start (fip->pc)); + + if (locals >= 0) + { + /* Set `adr' to the value of `sp'. */ + adr = fip->frame - locals; + for (i = 0; i < 8; i++) + { + insn = codestream_get (); + if ((insn & BUILD_INSN (-1, 0, -1, 0, 0)) + != BUILD_INSN (2, 0, SP_REGNUM, 0, 0)) + break; + regnum = X_C (insn); + offset = X_D (insn); + fsrp->regs[regnum] = adr + offset; + } + } + + fsrp->regs[PC_REGNUM] = fip->frame + 4; + fsrp->regs[FP_REGNUM] = fip->frame; +} + +void +push_dummy_frame () +{ + CORE_ADDR sp = read_register (SP_REGNUM); + int regnum; + char regbuf[MAX_REGISTER_RAW_SIZE]; + + read_register_gen (PC_REGNUM, regbuf); + write_memory (sp+4, regbuf, REGISTER_SIZE); + read_register_gen (FP_REGNUM, regbuf); + write_memory (sp, regbuf, REGISTER_SIZE); + write_register (FP_REGNUM, sp); + for (regnum = 0; regnum < NUM_REGS; regnum++) + { + read_register_gen (regnum, regbuf); + sp = push_bytes (sp, regbuf, REGISTER_RAW_SIZE (regnum)); + } + sp += (2*REGISTER_SIZE); + write_register (SP_REGNUM, sp); +} + +void +pop_frame () +{ + struct frame_info *frame = get_current_frame (); + CORE_ADDR fp; + int regnum; + struct frame_saved_regs fsr; + char regbuf[MAX_REGISTER_RAW_SIZE]; + + fp = FRAME_FP (frame); + get_frame_saved_regs (frame, &fsr); + for (regnum = 0; regnum < NUM_REGS; regnum++) + { + CORE_ADDR adr; + adr = fsr.regs[regnum]; + if (adr) + { + read_memory (adr, regbuf, REGISTER_RAW_SIZE (regnum)); + write_register_bytes (REGISTER_BYTE (regnum), regbuf, + REGISTER_RAW_SIZE (regnum)); + } + } + write_register (FP_REGNUM, read_memory_integer (fp, 4)); + write_register (PC_REGNUM, read_memory_integer (fp + 4, 4)); + write_register (SP_REGNUM, fp + 8); + flush_cached_frames (); +} + +/* Simulate single-step. */ + +typedef enum +{ + NORMAL4, /* a normal 4 byte insn */ + NORMAL8, /* a normal 8 byte insn */ + BRANCH4, /* a 4 byte branch insn, including ones without delay slots */ + BRANCH8, /* an 8 byte branch insn, including ones with delay slots */ +} insn_type; + +/* Return the type of INSN and store in TARGET the destination address of a + branch if this is one. */ +/* ??? Need to verify all cases are properly handled. */ + +static insn_type +get_insn_type (insn, pc, target) + unsigned long insn; + CORE_ADDR pc, *target; +{ + unsigned long limm; + + switch (insn >> 27) + { + case 0 : case 1 : case 2 : /* load/store insns */ + if (LIMM_P (X_A (insn)) + || LIMM_P (X_B (insn)) + || LIMM_P (X_C (insn))) + return NORMAL8; + return NORMAL4; + case 4 : case 5 : case 6 : /* branch insns */ + *target = pc + 4 + X_L (insn); + /* ??? It isn't clear that this is always the right answer. + The problem occurs when the next insn is an 8 byte insn. If the + branch is conditional there's no worry as there shouldn't be an 8 + byte insn following. The programmer may be cheating if s/he knows + the branch will never be taken, but we don't deal with that. + Note that the programmer is also allowed to play games by putting + an insn with long immediate data in the delay slot and then duplicate + the long immediate data at the branch target. Ugh! */ + if (X_N (insn) == 0) + return BRANCH4; + return BRANCH8; + case 7 : /* jump insns */ + if (LIMM_P (X_B (insn))) + { + limm = read_memory_integer (pc + 4, 4); + *target = ARC_PC_TO_REAL_ADDRESS (limm); + return BRANCH8; + } + if (SHIMM_P (X_B (insn))) + *target = ARC_PC_TO_REAL_ADDRESS (X_D (insn)); + else + *target = ARC_PC_TO_REAL_ADDRESS (read_register (X_B (insn))); + if (X_Q (insn) == 0 && X_N (insn) == 0) + return BRANCH4; + return BRANCH8; + default : /* arithmetic insns, etc. */ + if (LIMM_P (X_A (insn)) + || LIMM_P (X_B (insn)) + || LIMM_P (X_C (insn))) + return NORMAL8; + return NORMAL4; + } +} + +/* single_step() is called just before we want to resume the inferior, if we + want to single-step it but there is no hardware or kernel single-step + support. We find all the possible targets of the coming instruction and + breakpoint them. + + single_step is also called just after the inferior stops. If we had + set up a simulated single-step, we undo our damage. */ + +void +arc_software_single_step (ignore, insert_breakpoints_p) + enum target_signal ignore; /* sig but we don't need it */ + int insert_breakpoints_p; +{ + static CORE_ADDR next_pc, target; + static int brktrg_p; + typedef char binsn_quantum[BREAKPOINT_MAX]; + static binsn_quantum break_mem[2]; + + if (insert_breakpoints_p) + { + insn_type type; + CORE_ADDR pc; + unsigned long insn; + + pc = read_register (PC_REGNUM); + insn = read_memory_integer (pc, 4); + type = get_insn_type (insn, pc, &target); + + /* Always set a breakpoint for the insn after the branch. */ + next_pc = pc + ((type == NORMAL8 || type == BRANCH8) ? 8 : 4); + target_insert_breakpoint (next_pc, break_mem[0]); + + brktrg_p = 0; + + if ((type == BRANCH4 || type == BRANCH8) + /* Watch out for branches to the following location. + We just stored a breakpoint there and another call to + target_insert_breakpoint will think the real insn is the + breakpoint we just stored there. */ + && target != next_pc) + { + brktrg_p = 1; + target_insert_breakpoint (target, break_mem[1]); + } + + } + else + { + /* Remove breakpoints. */ + target_remove_breakpoint (next_pc, break_mem[0]); + + if (brktrg_p) + target_remove_breakpoint (target, break_mem[1]); + + /* Fix the pc. */ + stop_pc -= DECR_PC_AFTER_BREAK; + write_pc (stop_pc); + } +} + +#ifdef GET_LONGJMP_TARGET +/* Figure out where the longjmp will land. Slurp the args out of the stack. + We expect the first arg to be a pointer to the jmp_buf structure from which + we extract the pc (JB_PC) that we will land at. The pc is copied into PC. + This routine returns true on success. */ + +int +get_longjmp_target(pc) + CORE_ADDR *pc; +{ + char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT]; + CORE_ADDR sp, jb_addr; + + sp = read_register (SP_REGNUM); + + if (target_read_memory (sp + SP_ARG0, /* Offset of first arg on stack */ + buf, + TARGET_PTR_BIT / TARGET_CHAR_BIT)) + return 0; + + jb_addr = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT); + + if (target_read_memory (jb_addr + JB_PC * JB_ELEMENT_SIZE, buf, + TARGET_PTR_BIT / TARGET_CHAR_BIT)) + return 0; + + *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT); + + return 1; +} +#endif /* GET_LONGJMP_TARGET */ + +/* Disassemble one instruction. */ + +static int +arc_print_insn (vma, info) + bfd_vma vma; + disassemble_info *info; +{ + static int current_mach; + static int current_endian; + static disassembler_ftype current_disasm; + + if (current_disasm == NULL + || arc_bfd_mach_type != current_mach + || TARGET_BYTE_ORDER != current_endian) + { + current_mach = arc_bfd_mach_type; + current_endian = TARGET_BYTE_ORDER; + current_disasm = arc_get_disassembler (current_mach, + current_endian == BIG_ENDIAN); + } + + return (*current_disasm) (vma, info); +} + +/* Command to set cpu type. */ + +void +arc_set_cpu_type_command (args, from_tty) + char *args; + int from_tty; +{ + int i; + + if (tmp_arc_cpu_type == NULL || *tmp_arc_cpu_type == '\0') + { + printf_unfiltered ("The known ARC cpu types are as follows:\n"); + for (i = 0; arc_cpu_type_table[i].name != NULL; ++i) + printf_unfiltered ("%s\n", arc_cpu_type_table[i].name); + + /* Restore the value. */ + tmp_arc_cpu_type = strsave (arc_cpu_type); + + return; + } + + if (!arc_set_cpu_type (tmp_arc_cpu_type)) + { + error ("Unknown cpu type `%s'.", tmp_arc_cpu_type); + /* Restore its value. */ + tmp_arc_cpu_type = strsave (arc_cpu_type); + } +} + +static void +arc_show_cpu_type_command (args, from_tty) + char *args; + int from_tty; +{ +} + +/* Modify the actual cpu type. + Result is a boolean indicating success. */ + +int +arc_set_cpu_type (str) + char *str; +{ + int i, j; + + if (str == NULL) + return 0; + + for (i = 0; arc_cpu_type_table[i].name != NULL; ++i) + { + if (strcasecmp (str, arc_cpu_type_table[i].name) == 0) + { + arc_cpu_type = str; + arc_bfd_mach_type = arc_cpu_type_table[i].value; + return 1; + } + } + + return 0; +} + +void +_initialize_arc_tdep () +{ + struct cmd_list_element *c; + + c = add_set_cmd ("cpu", class_support, var_string_noescape, + (char *) &tmp_arc_cpu_type, + "Set the type of ARC cpu in use.\n\ +This command has two purposes. In a multi-cpu system it lets one\n\ +change the cpu being debugged. It also gives one access to\n\ +cpu-type-specific registers and recognize cpu-type-specific instructions.\ +", + &setlist); + c->function.cfunc = arc_set_cpu_type_command; + c = add_show_from_set (c, &showlist); + c->function.cfunc = arc_show_cpu_type_command; + + /* We have to use strsave here because the `set' command frees it before + setting a new value. */ + tmp_arc_cpu_type = strsave (DEFAULT_ARC_CPU_TYPE); + arc_set_cpu_type (tmp_arc_cpu_type); + + c = add_set_cmd ("displaypipeline", class_support, var_zinteger, + (char *) &display_pipeline_p, + "Set pipeline display (simulator only).\n\ +When enabled, the state of the pipeline after each cycle is displayed.", + &setlist); + c = add_show_from_set (c, &showlist); + + c = add_set_cmd ("debugpipeline", class_support, var_zinteger, + (char *) &debug_pipeline_p, + "Set pipeline debug display (simulator only).\n\ +When enabled, debugging information about the pipeline is displayed.", + &setlist); + c = add_show_from_set (c, &showlist); + + c = add_set_cmd ("cputimer", class_support, var_zinteger, + (char *) &cpu_timer, + "Set maximum cycle count (simulator only).\n\ +Control will return to gdb if the timer expires.\n\ +A negative value disables the timer.", + &setlist); + c = add_show_from_set (c, &showlist); + + tm_print_insn = arc_print_insn; +} diff --git a/gdb/arm-convert.s b/gdb/arm-convert.s new file mode 100644 index 0000000000..416132b77c --- /dev/null +++ b/gdb/arm-convert.s @@ -0,0 +1,16 @@ + .text + .global _convert_from_extended + +_convert_from_extended: + + ldfe f0,[a1] + stfd f0,[a2] + movs pc,lr + + .global _convert_to_extended + +_convert_to_extended: + + ldfd f0,[a1] + stfe f0,[a2] + movs pc,lr diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c new file mode 100644 index 0000000000..607dc8fb5a --- /dev/null +++ b/gdb/arm-tdep.c @@ -0,0 +1,1626 @@ +/* Target-dependent code for the Acorn Risc Machine, for GDB, the GNU Debugger. + Copyright (C) 1988, 1989, 1991, 1992, 1993, 1995, 1996, 1998, 1999 + Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "frame.h" +#include "inferior.h" +#include "gdbcmd.h" +#include "gdbcore.h" +#include "symfile.h" +#include "gdb_string.h" +#include "coff/internal.h" /* Internal format of COFF symbols in BFD */ + +/* + The following macros are actually wrong. Neither arm nor thumb can + or should set the lsb on addr. + The thumb addresses are mod 2, so (addr & 2) would be a good heuristic + to use when checking for thumb (see arm_pc_is_thumb() below). + Unfortunately, something else depends on these (incorrect) macros, so + fixing them actually breaks gdb. I didn't have time to investigate. Z.R. +*/ +/* Thumb function addresses are odd (bit 0 is set). Here are some + macros to test, set, or clear bit 0 of addresses. */ +#define IS_THUMB_ADDR(addr) ((addr) & 1) +#define MAKE_THUMB_ADDR(addr) ((addr) | 1) +#define UNMAKE_THUMB_ADDR(addr) ((addr) & ~1) + +/* Macros to round N up or down to the next A boundary; A must be + a power of two. */ +#define ROUND_DOWN(n,a) ((n) & ~((a) - 1)) +#define ROUND_UP(n,a) (((n) + (a) - 1) & ~((a) - 1)) + +/* Should call_function allocate stack space for a struct return? */ +/* The system C compiler uses a similar structure return convention to gcc */ +int +arm_use_struct_convention (gcc_p, type) + int gcc_p; + struct type *type; +{ + return (TYPE_LENGTH (type) > 4); +} + +int +arm_frame_chain_valid (chain, thisframe) + CORE_ADDR chain; + struct frame_info *thisframe; +{ +#define LOWEST_PC 0x20 /* the first 0x20 bytes are the trap vectors. */ + return (chain != 0 && (FRAME_SAVED_PC (thisframe) >= LOWEST_PC)); +} + +/* Set to true if the 32-bit mode is in use. */ + +int arm_apcs_32 = 1; + +/* Flag set by arm_fix_call_dummy that tells whether the target function + is a Thumb function. This flag is checked by arm_push_arguments. + FIXME: Change the PUSH_ARGUMENTS macro (and its use in valops.c) to + pass the function address as an additional parameter. */ + +static int target_is_thumb; + +/* Flag set by arm_fix_call_dummy that tells whether the calling function + is a Thumb function. This flag is checked by arm_pc_is_thumb + and arm_call_dummy_breakpoint_offset. */ + +static int caller_is_thumb; + +/* Tell if the program counter value in MEMADDR is in a Thumb function. */ + +int +arm_pc_is_thumb (memaddr) + bfd_vma memaddr; +{ + struct minimal_symbol * sym; + CORE_ADDR sp; + + /* If bit 0 of the address is set, assume this is a Thumb address. */ + if (IS_THUMB_ADDR (memaddr)) + return 1; + + /* Thumb function have a "special" bit set in minimal symbols */ + sym = lookup_minimal_symbol_by_pc (memaddr); + if (sym) + { + return (MSYMBOL_IS_SPECIAL(sym)); + } + else + return 0; +} + +/* Tell if the program counter value in MEMADDR is in a call dummy that + is being called from a Thumb function. */ + +int +arm_pc_is_thumb_dummy (memaddr) + bfd_vma memaddr; +{ + CORE_ADDR sp = read_sp(); + + if (PC_IN_CALL_DUMMY (memaddr, sp, sp+64)) + return caller_is_thumb; + else + return 0; +} + +CORE_ADDR +arm_addr_bits_remove (val) + CORE_ADDR val; +{ + if (arm_pc_is_thumb (val)) + return (val & (arm_apcs_32 ? 0xfffffffe : 0x03fffffe)); + else + return (val & (arm_apcs_32 ? 0xfffffffc : 0x03fffffc)); +} + +CORE_ADDR +arm_saved_pc_after_call (frame) + struct frame_info *frame; +{ + return ADDR_BITS_REMOVE (read_register (LR_REGNUM)); +} + +/* A typical Thumb prologue looks like this: + push {r7, lr} + add sp, sp, #-28 + add r7, sp, #12 + Sometimes the latter instruction may be replaced by: + mov r7, sp +*/ + +static CORE_ADDR +thumb_skip_prologue (pc) + CORE_ADDR pc; +{ + CORE_ADDR current_pc; + + for (current_pc = pc; current_pc < pc + 20; current_pc += 2) + { + unsigned short insn = read_memory_unsigned_integer (current_pc, 2); + + if ( (insn & 0xfe00) != 0xb400 /* push {..., r7, lr} */ + && (insn & 0xff00) != 0xb000 /* add sp, #simm */ + && (insn & 0xff00) != 0xaf00 /* add r7, sp, #imm */ + && insn != 0x466f /* mov r7, sp */ + && (insn & 0xffc0) != 0x4640) /* mov r0-r7, r8-r15 */ + break; + } + + return current_pc; +} + +/* APCS (ARM procedure call standard) defines the following prologue: + + mov ip, sp + [stmfd sp!, {a1,a2,a3,a4}] + stmfd sp!, {...,fp,ip,lr,pc} + [stfe f7, [sp, #-12]!] + [stfe f6, [sp, #-12]!] + [stfe f5, [sp, #-12]!] + [stfe f4, [sp, #-12]!] + sub fp, ip, #nn // nn == 20 or 4 depending on second ins +*/ + +CORE_ADDR +arm_skip_prologue (pc) + CORE_ADDR pc; +{ + unsigned long inst; + CORE_ADDR skip_pc; + CORE_ADDR func_addr, func_end; + struct symtab_and_line sal; + + /* See what the symbol table says. */ + if (find_pc_partial_function (pc, NULL, & func_addr, & func_end)) + { + sal = find_pc_line (func_addr, 0); + if (sal.line != 0 && sal.end < func_end) + return sal.end; + } + + /* Check if this is Thumb code. */ + if (arm_pc_is_thumb (pc)) + return thumb_skip_prologue (pc); + + /* Can't find the prologue end in the symbol table, try it the hard way + by disassembling the instructions. */ + skip_pc = pc; + inst = read_memory_integer (skip_pc, 4); + if (inst != 0xe1a0c00d) /* mov ip, sp */ + return pc; + + skip_pc += 4; + inst = read_memory_integer (skip_pc, 4); + if ((inst & 0xfffffff0) == 0xe92d0000) /* stmfd sp!,{a1,a2,a3,a4} */ + { + skip_pc += 4; + inst = read_memory_integer (skip_pc, 4); + } + + if ((inst & 0xfffff800) != 0xe92dd800) /* stmfd sp!,{...,fp,ip,lr,pc} */ + return pc; + + skip_pc += 4; + inst = read_memory_integer (skip_pc, 4); + + /* Any insns after this point may float into the code, if it makes + for better instruction scheduling, so we skip them only if + we find them, but still consdier the function to be frame-ful */ + + /* We may have either one sfmfd instruction here, or several stfe insns, + depending on the version of floating point code we support. */ + if ((inst & 0xffbf0fff) == 0xec2d0200) /* sfmfd fn, , [sp]! */ + { + skip_pc += 4; + inst = read_memory_integer (skip_pc, 4); + } + else + { + while ((inst & 0xffff8fff) == 0xed6d0103) /* stfe fn, [sp, #-12]! */ + { + skip_pc += 4; + inst = read_memory_integer (skip_pc, 4); + } + } + + if ((inst & 0xfffff000) == 0xe24cb000) /* sub fp, ip, #nn */ + skip_pc += 4; + + return skip_pc; +} + + + +/* Function: thumb_scan_prologue (helper function for arm_scan_prologue) + This function decodes a Thumb function prologue to determine: + 1) the size of the stack frame + 2) which registers are saved on it + 3) the offsets of saved regs + 4) the offset from the stack pointer to the frame pointer + This information is stored in the "extra" fields of the frame_info. + + A typical Thumb function prologue might look like this: + push {r7, lr} + sub sp, #28, + add r7, sp, #12 + Which would create this stack frame (offsets relative to FP) + old SP -> 24 stack parameters + 20 LR + 16 R7 + R7 -> 0 local variables (16 bytes) + SP -> -12 additional stack space (12 bytes) + The frame size would thus be 36 bytes, and the frame offset would be + 12 bytes. The frame register is R7. */ + +static void +thumb_scan_prologue (fi) + struct frame_info * fi; +{ + CORE_ADDR prologue_start; + CORE_ADDR prologue_end; + CORE_ADDR current_pc; + int saved_reg[16]; /* which register has been copied to register n? */ + int i; + + if (find_pc_partial_function (fi->pc, NULL, & prologue_start, & prologue_end)) + { + struct symtab_and_line sal = find_pc_line (prologue_start, 0); + + if (sal.line == 0) /* no line info, use current PC */ + prologue_end = fi->pc; + else if (sal.end < prologue_end) /* next line begins after fn end */ + prologue_end = sal.end; /* (probably means no prologue) */ + } + else + prologue_end = prologue_start + 40; /* We're in the boondocks: allow for */ + /* 16 pushes, an add, and "mv fp,sp" */ + + prologue_end = min (prologue_end, fi->pc); + + /* Initialize the saved register map. When register H is copied to + register L, we will put H in saved_reg[L]. */ + for (i = 0; i < 16; i++) + saved_reg[i] = i; + + /* Search the prologue looking for instructions that set up the + frame pointer, adjust the stack pointer, and save registers. */ + + fi->framesize = 0; + for (current_pc = prologue_start; current_pc < prologue_end; current_pc += 2) + { + unsigned short insn; + int regno; + int offset; + + insn = read_memory_unsigned_integer (current_pc, 2); + + if ((insn & 0xfe00) == 0xb400) /* push { rlist } */ + { + /* Bits 0-7 contain a mask for registers R0-R7. Bit 8 says + whether to save LR (R14). */ + int mask = (insn & 0xff) | ((insn & 0x100) << 6); + + /* Calculate offsets of saved R0-R7 and LR. */ + for (regno = LR_REGNUM; regno >= 0; regno--) + if (mask & (1 << regno)) + { + fi->framesize += 4; + fi->fsr.regs[saved_reg[regno]] = -(fi->framesize); + saved_reg[regno] = regno; /* reset saved register map */ + } + } + else if ((insn & 0xff00) == 0xb000) /* add sp, #simm */ + { + offset = (insn & 0x7f) << 2; /* get scaled offset */ + if (insn & 0x80) /* is it signed? */ + offset = -offset; + fi->framesize -= offset; + } + else if ((insn & 0xff00) == 0xaf00) /* add r7, sp, #imm */ + { + fi->framereg = THUMB_FP_REGNUM; + fi->frameoffset = (insn & 0xff) << 2; /* get scaled offset */ + } + else if (insn == 0x466f) /* mov r7, sp */ + { + fi->framereg = THUMB_FP_REGNUM; + fi->frameoffset = 0; + saved_reg[THUMB_FP_REGNUM] = SP_REGNUM; + } + else if ((insn & 0xffc0) == 0x4640) /* mov r0-r7, r8-r15 */ + { + int lo_reg = insn & 7; /* dest. register (r0-r7) */ + int hi_reg = ((insn >> 3) & 7) + 8; /* source register (r8-15) */ + saved_reg[lo_reg] = hi_reg; /* remember hi reg was saved */ + } + else + break; /* anything else isn't prologue */ + } +} + +/* Function: check_prologue_cache + Check if prologue for this frame's PC has already been scanned. + If it has, copy the relevant information about that prologue and + return non-zero. Otherwise do not copy anything and return zero. + + The information saved in the cache includes: + * the frame register number; + * the size of the stack frame; + * the offsets of saved regs (relative to the old SP); and + * the offset from the stack pointer to the frame pointer + + The cache contains only one entry, since this is adequate + for the typical sequence of prologue scan requests we get. + When performing a backtrace, GDB will usually ask to scan + the same function twice in a row (once to get the frame chain, + and once to fill in the extra frame information). +*/ + +static struct frame_info prologue_cache; + +static int +check_prologue_cache (fi) + struct frame_info * fi; +{ + int i; + + if (fi->pc == prologue_cache.pc) + { + fi->framereg = prologue_cache.framereg; + fi->framesize = prologue_cache.framesize; + fi->frameoffset = prologue_cache.frameoffset; + for (i = 0; i <= NUM_REGS; i++) + fi->fsr.regs[i] = prologue_cache.fsr.regs[i]; + return 1; + } + else + return 0; +} + + +/* Function: save_prologue_cache + Copy the prologue information from fi to the prologue cache. +*/ + +static void +save_prologue_cache (fi) + struct frame_info * fi; +{ + int i; + + prologue_cache.pc = fi->pc; + prologue_cache.framereg = fi->framereg; + prologue_cache.framesize = fi->framesize; + prologue_cache.frameoffset = fi->frameoffset; + + for (i = 0; i <= NUM_REGS; i++) + prologue_cache.fsr.regs[i] = fi->fsr.regs[i]; +} + + +/* Function: arm_scan_prologue + This function decodes an ARM function prologue to determine: + 1) the size of the stack frame + 2) which registers are saved on it + 3) the offsets of saved regs + 4) the offset from the stack pointer to the frame pointer + This information is stored in the "extra" fields of the frame_info. + + A typical Arm function prologue might look like this: + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #16 + Which would create this stack frame (offsets relative to FP): + IP -> 4 (caller's stack) + FP -> 0 PC (points to address of stmfd instruction + 12 in callee) + -4 LR (return address in caller) + -8 IP (copy of caller's SP) + -12 FP (caller's FP) + SP -> -28 Local variables + The frame size would thus be 32 bytes, and the frame offset would be + 28 bytes. */ + +static void +arm_scan_prologue (fi) + struct frame_info * fi; +{ + int regno, sp_offset, fp_offset; + CORE_ADDR prologue_start, prologue_end, current_pc; + + /* Check if this function is already in the cache of frame information. */ + if (check_prologue_cache (fi)) + return; + + /* Assume there is no frame until proven otherwise. */ + fi->framereg = SP_REGNUM; + fi->framesize = 0; + fi->frameoffset = 0; + + /* Check for Thumb prologue. */ + if (arm_pc_is_thumb (fi->pc)) + { + thumb_scan_prologue (fi); + save_prologue_cache (fi); + return; + } + + /* Find the function prologue. If we can't find the function in + the symbol table, peek in the stack frame to find the PC. */ + if (find_pc_partial_function (fi->pc, NULL, &prologue_start, &prologue_end)) + { + /* Assume the prologue is everything between the first instruction + in the function and the first source line. */ + struct symtab_and_line sal = find_pc_line (prologue_start, 0); + + if (sal.line == 0) /* no line info, use current PC */ + prologue_end = fi->pc; + else if (sal.end < prologue_end) /* next line begins after fn end */ + prologue_end = sal.end; /* (probably means no prologue) */ + } + else + { + /* Get address of the stmfd in the prologue of the callee; the saved + PC is the address of the stmfd + 12. */ + prologue_start = (read_memory_integer (fi->frame, 4) & 0x03fffffc) - 12; + prologue_end = prologue_start + 40; /* FIXME: should be big enough */ + } + + /* Now search the prologue looking for instructions that set up the + frame pointer, adjust the stack pointer, and save registers. */ + + sp_offset = fp_offset = 0; + for (current_pc = prologue_start; current_pc < prologue_end; current_pc += 4) + { + unsigned int insn = read_memory_unsigned_integer (current_pc, 4); + + if ((insn & 0xffff0000) == 0xe92d0000) /* stmfd sp!, {..., r7, lr} */ + { + int mask = insn & 0xffff; + + /* Calculate offsets of saved registers. */ + for (regno = PC_REGNUM; regno >= 0; regno--) + if (mask & (1 << regno)) + { + sp_offset -= 4; + fi->fsr.regs[regno] = sp_offset; + } + } + else if ((insn & 0xfffff000) == 0xe24cb000) /* sub fp, ip #n */ + { + unsigned imm = insn & 0xff; /* immediate value */ + unsigned rot = (insn & 0xf00) >> 7; /* rotate amount */ + imm = (imm >> rot) | (imm << (32-rot)); + fp_offset = -imm; + fi->framereg = FP_REGNUM; + } + else if ((insn & 0xfffff000) == 0xe24dd000) /* sub sp, sp #n */ + { + unsigned imm = insn & 0xff; /* immediate value */ + unsigned rot = (insn & 0xf00) >> 7; /* rotate amount */ + imm = (imm >> rot) | (imm << (32-rot)); + sp_offset -= imm; + } + else if ((insn & 0xffff7fff) == 0xed6d0103) /* stfe f?, [sp, -#c]! */ + { + sp_offset -= 12; + regno = F0_REGNUM + ((insn >> 12) & 0x07); + fi->fsr.regs[regno] = sp_offset; + } + else if (insn == 0xe1a0c00d) /* mov ip, sp */ + continue; + else + break; /* not a recognized prologue instruction */ + } + + /* The frame size is just the negative of the offset (from the original SP) + of the last thing thing we pushed on the stack. The frame offset is + [new FP] - [new SP]. */ + fi->framesize = -sp_offset; + fi->frameoffset = fp_offset - sp_offset; + + save_prologue_cache (fi); +} + + +/* Function: find_callers_reg + Find REGNUM on the stack. Otherwise, it's in an active register. One thing + we might want to do here is to check REGNUM against the clobber mask, and + somehow flag it as invalid if it isn't saved on the stack somewhere. This + would provide a graceful failure mode when trying to get the value of + caller-saves registers for an inner frame. */ + +static CORE_ADDR +arm_find_callers_reg (fi, regnum) + struct frame_info * fi; + int regnum; +{ + for (; fi; fi = fi->next) + +#if 0 /* FIXME: enable this code if we convert to new call dummy scheme. */ + if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame)) + return generic_read_register_dummy (fi->pc, fi->frame, regnum); + else +#endif + if (fi->fsr.regs[regnum] != 0) + return read_memory_integer (fi->fsr.regs[regnum], + REGISTER_RAW_SIZE(regnum)); + return read_register (regnum); +} + + +/* Function: frame_chain + Given a GDB frame, determine the address of the calling function's frame. + This will be used to create a new GDB frame struct, and then + INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame. + For ARM, we save the frame size when we initialize the frame_info. + + The original definition of this function was a macro in tm-arm.h: + { In the case of the ARM, the frame's nominal address is the FP value, + and 12 bytes before comes the saved previous FP value as a 4-byte word. } + + #define FRAME_CHAIN(thisframe) \ + ((thisframe)->pc >= LOWEST_PC ? \ + read_memory_integer ((thisframe)->frame - 12, 4) :\ + 0) +*/ + +CORE_ADDR +arm_frame_chain (fi) + struct frame_info * fi; +{ +#if 0 /* FIXME: enable this code if we convert to new call dummy scheme. */ + CORE_ADDR fn_start, callers_pc, fp; + + /* is this a dummy frame? */ + if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame)) + return fi->frame; /* dummy frame same as caller's frame */ + + /* is caller-of-this a dummy frame? */ + callers_pc = FRAME_SAVED_PC(fi); /* find out who called us: */ + fp = arm_find_callers_reg (fi, FP_REGNUM); + if (PC_IN_CALL_DUMMY (callers_pc, fp, fp)) + return fp; /* dummy frame's frame may bear no relation to ours */ + + if (find_pc_partial_function (fi->pc, 0, &fn_start, 0)) + if (fn_start == entry_point_address ()) + return 0; /* in _start fn, don't chain further */ +#endif + CORE_ADDR caller_pc, fn_start; + struct frame_info caller_fi; + int framereg = fi->framereg; + + if (fi->pc < LOWEST_PC) + return 0; + + /* If the caller is the startup code, we're at the end of the chain. */ + caller_pc = FRAME_SAVED_PC (fi); + if (find_pc_partial_function (caller_pc, 0, &fn_start, 0)) + if (fn_start == entry_point_address ()) + return 0; + + /* If the caller is Thumb and the caller is ARM, or vice versa, + the frame register of the caller is different from ours. + So we must scan the prologue of the caller to determine its + frame register number. */ + if (arm_pc_is_thumb (caller_pc) != arm_pc_is_thumb (fi->pc)) + { + memset (& caller_fi, 0, sizeof (caller_fi)); + caller_fi.pc = caller_pc; + arm_scan_prologue (& caller_fi); + framereg = caller_fi.framereg; + } + + /* If the caller used a frame register, return its value. + Otherwise, return the caller's stack pointer. */ + if (framereg == FP_REGNUM || framereg == THUMB_FP_REGNUM) + return arm_find_callers_reg (fi, framereg); + else + return fi->frame + fi->framesize; +} + +/* Function: init_extra_frame_info + This function actually figures out the frame address for a given pc and + sp. This is tricky because we sometimes don't use an explicit + frame pointer, and the previous stack pointer isn't necessarily recorded + on the stack. The only reliable way to get this info is to + examine the prologue. */ + +void +arm_init_extra_frame_info (fi) + struct frame_info * fi; +{ + int reg; + + if (fi->next) + fi->pc = FRAME_SAVED_PC (fi->next); + + memset (fi->fsr.regs, '\000', sizeof fi->fsr.regs); + +#if 0 /* FIXME: enable this code if we convert to new call dummy scheme. */ + if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame)) + { + /* We need to setup fi->frame here because run_stack_dummy gets it wrong + by assuming it's always FP. */ + fi->frame = generic_read_register_dummy (fi->pc, fi->frame, SP_REGNUM); + fi->framesize = 0; + fi->frameoffset = 0; + return; + } + else +#endif + { + arm_scan_prologue (fi); + + if (!fi->next) /* this is the innermost frame? */ + fi->frame = read_register (fi->framereg); + else /* not the innermost frame */ + /* If we have an FP, the callee saved it. */ + if (fi->framereg == FP_REGNUM || fi->framereg == THUMB_FP_REGNUM) + if (fi->next->fsr.regs[fi->framereg] != 0) + fi->frame = read_memory_integer (fi->next->fsr.regs[fi->framereg], + 4); + + /* Calculate actual addresses of saved registers using offsets determined + by arm_scan_prologue. */ + for (reg = 0; reg < NUM_REGS; reg++) + if (fi->fsr.regs[reg] != 0) + fi->fsr.regs[reg] += fi->frame + fi->framesize - fi->frameoffset; + } +} + + +/* Function: frame_saved_pc + Find the caller of this frame. We do this by seeing if LR_REGNUM is saved + in the stack anywhere, otherwise we get it from the registers. + + The old definition of this function was a macro: + #define FRAME_SAVED_PC(FRAME) \ + ADDR_BITS_REMOVE (read_memory_integer ((FRAME)->frame - 4, 4)) +*/ + +CORE_ADDR +arm_frame_saved_pc (fi) + struct frame_info * fi; +{ +#if 0 /* FIXME: enable this code if we convert to new call dummy scheme. */ + if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame)) + return generic_read_register_dummy (fi->pc, fi->frame, PC_REGNUM); + else +#endif + { + CORE_ADDR pc = arm_find_callers_reg (fi, LR_REGNUM); + return IS_THUMB_ADDR (pc) ? UNMAKE_THUMB_ADDR (pc) : pc; + } +} + + +/* Return the frame address. On ARM, it is R11; on Thumb it is R7. + Examine the Program Status Register to decide which state we're in. */ + +CORE_ADDR +arm_target_read_fp () +{ + if (read_register (PS_REGNUM) & 0x20) /* Bit 5 is Thumb state bit */ + return read_register (THUMB_FP_REGNUM); /* R7 if Thumb */ + else + return read_register (FP_REGNUM); /* R11 if ARM */ +} + + +/* Calculate the frame offsets of the saved registers (ARM version). */ +void +arm_frame_find_saved_regs (fi, regaddr) + struct frame_info *fi; + struct frame_saved_regs *regaddr; +{ + memcpy (regaddr, &fi->fsr, sizeof (struct frame_saved_regs)); +} + + +void +arm_push_dummy_frame () +{ + CORE_ADDR old_sp = read_register (SP_REGNUM); + CORE_ADDR sp = old_sp; + CORE_ADDR fp, prologue_start; + int regnum; + + /* Push the two dummy prologue instructions in reverse order, + so that they'll be in the correct low-to-high order in memory. */ + /* sub fp, ip, #4 */ + sp = push_word (sp, 0xe24cb004); + /* stmdb sp!, {r0-r10, fp, ip, lr, pc} */ + prologue_start = sp = push_word (sp, 0xe92ddfff); + + /* push a pointer to the dummy prologue + 12, because when + stm instruction stores the PC, it stores the address of the stm + instruction itself plus 12. */ + fp = sp = push_word (sp, prologue_start + 12); + sp = push_word (sp, read_register (PC_REGNUM)); /* FIXME: was PS_REGNUM */ + sp = push_word (sp, old_sp); + sp = push_word (sp, read_register (FP_REGNUM)); + + for (regnum = 10; regnum >= 0; regnum --) + sp = push_word (sp, read_register (regnum)); + + write_register (FP_REGNUM, fp); + write_register (THUMB_FP_REGNUM, fp); + write_register (SP_REGNUM, sp); +} + +/* Fix up the call dummy, based on whether the processor is currently + in Thumb or ARM mode, and whether the target function is Thumb + or ARM. There are three different situations requiring three + different dummies: + + * ARM calling ARM: uses the call dummy in tm-arm.h, which has already + been copied into the dummy parameter to this function. + * ARM calling Thumb: uses the call dummy in tm-arm.h, but with the + "mov pc,r4" instruction patched to be a "bx r4" instead. + * Thumb calling anything: uses the Thumb dummy defined below, which + works for calling both ARM and Thumb functions. + + All three call dummies expect to receive the target function address + in R4, with the low bit set if it's a Thumb function. +*/ + +void +arm_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p) + char * dummy; + CORE_ADDR pc; + CORE_ADDR fun; + int nargs; + value_ptr * args; + struct type * type; + int gcc_p; +{ + static short thumb_dummy[4] = + { + 0xf000, 0xf801, /* bl label */ + 0xdf18, /* swi 24 */ + 0x4720, /* label: bx r4 */ + }; + static unsigned long arm_bx_r4 = 0xe12fff14; /* bx r4 instruction */ + + /* Set flag indicating whether the current PC is in a Thumb function. */ + caller_is_thumb = arm_pc_is_thumb (read_pc()); + + /* If the target function is Thumb, set the low bit of the function address. + And if the CPU is currently in ARM mode, patch the second instruction + of call dummy to use a BX instruction to switch to Thumb mode. */ + target_is_thumb = arm_pc_is_thumb (fun); + if (target_is_thumb) + { + fun |= 1; + if (!caller_is_thumb) + store_unsigned_integer (dummy + 4, sizeof (arm_bx_r4), arm_bx_r4); + } + + /* If the CPU is currently in Thumb mode, use the Thumb call dummy + instead of the ARM one that's already been copied. This will + work for both Thumb and ARM target functions. */ + if (caller_is_thumb) + { + int i; + char *p = dummy; + int len = sizeof (thumb_dummy) / sizeof (thumb_dummy[0]); + + for (i = 0; i < len; i++) + { + store_unsigned_integer (p, sizeof (thumb_dummy[0]), thumb_dummy[i]); + p += sizeof (thumb_dummy[0]); + } + } + + /* Put the target address in r4; the call dummy will copy this to the PC. */ + write_register (4, fun); +} + + +/* Return the offset in the call dummy of the instruction that needs + to have a breakpoint placed on it. This is the offset of the 'swi 24' + instruction, which is no longer actually used, but simply acts + as a place-holder now. + + This implements the CALL_DUMMY_BREAK_OFFSET macro. +*/ + +int +arm_call_dummy_breakpoint_offset () +{ + if (caller_is_thumb) + return 4; + else + return 8; +} + + +CORE_ADDR +arm_push_arguments(nargs, args, sp, struct_return, struct_addr) + int nargs; + value_ptr * args; + CORE_ADDR sp; + int struct_return; + CORE_ADDR struct_addr; +{ + int argreg; + int float_argreg; + int argnum; + int stack_offset; + struct stack_arg { + char *val; + int len; + int offset; + }; + struct stack_arg *stack_args = + (struct stack_arg*)alloca (nargs * sizeof (struct stack_arg)); + int nstack_args = 0; + + + /* Initialize the integer and float register pointers. */ + argreg = A1_REGNUM; + float_argreg = F0_REGNUM; + + /* the struct_return pointer occupies the first parameter-passing reg */ + if (struct_return) + write_register (argreg++, struct_addr); + + /* The offset onto the stack at which we will start copying parameters + (after the registers are used up) begins at 16 in the old ABI. + This leaves room for the "home" area for register parameters. */ + stack_offset = REGISTER_SIZE * 4; + + /* Process args from left to right. Store as many as allowed in + registers, save the rest to be pushed on the stack */ + for(argnum = 0; argnum < nargs; argnum++) + { + char * val; + value_ptr arg = args[argnum]; + struct type * arg_type = check_typedef (VALUE_TYPE (arg)); + struct type * target_type = TYPE_TARGET_TYPE (arg_type); + int len = TYPE_LENGTH (arg_type); + enum type_code typecode = TYPE_CODE (arg_type); + CORE_ADDR regval; + int newarg; + + val = (char *) VALUE_CONTENTS (arg); + + /* If the argument is a pointer to a function, and it's a Thumb + function, set the low bit of the pointer. */ + if (typecode == TYPE_CODE_PTR + && target_type != NULL + && TYPE_CODE (target_type) == TYPE_CODE_FUNC) + { + regval = extract_address (val, len); + if (arm_pc_is_thumb (regval)) + store_address (val, len, MAKE_THUMB_ADDR (regval)); + } + +#define MAPCS_FLOAT 0 /* --mapcs-float not implemented by the compiler yet */ +#if MAPCS_FLOAT + /* Up to four floating point arguments can be passed in floating + point registers on ARM (not on Thumb). */ + if (typecode == TYPE_CODE_FLT + && float_argreg <= ARM_LAST_FP_ARG_REGNUM + && !target_is_thumb) + { + /* This is a floating point value that fits entirely + in a single register. */ + regval = extract_address (val, len); + write_register (float_argreg++, regval); + } + else +#endif + { + /* Copy the argument to general registers or the stack in + register-sized pieces. Large arguments are split between + registers and stack. */ + while (len > 0) + { + if (argreg <= ARM_LAST_ARG_REGNUM) + { + int partial_len = len < REGISTER_SIZE ? len : REGISTER_SIZE; + regval = extract_address (val, partial_len); + + /* It's a simple argument being passed in a general + register. */ + write_register (argreg, regval); + argreg++; + len -= partial_len; + val += partial_len; + } + else + { + /* keep for later pushing */ + stack_args[nstack_args].val = val; + stack_args[nstack_args++].len = len; + break; + } + } + } + } + /* now do the real stack pushing, process args right to left */ + while(nstack_args--) + { + sp -= stack_args[nstack_args].len; + write_memory(sp, stack_args[nstack_args].val, + stack_args[nstack_args].len); + } + + /* Return adjusted stack pointer. */ + return sp; +} + +void +arm_pop_frame () +{ + struct frame_info *frame = get_current_frame(); + int regnum; + + for (regnum = 0; regnum < NUM_REGS; regnum++) + if (frame->fsr.regs[regnum] != 0) + write_register (regnum, + read_memory_integer (frame->fsr.regs[regnum], 4)); + + write_register (PC_REGNUM, FRAME_SAVED_PC (frame)); + write_register (SP_REGNUM, read_register (frame->framereg)); + + flush_cached_frames (); +} + +static void +print_fpu_flags (flags) + int flags; +{ + if (flags & (1 << 0)) fputs ("IVO ", stdout); + if (flags & (1 << 1)) fputs ("DVZ ", stdout); + if (flags & (1 << 2)) fputs ("OFL ", stdout); + if (flags & (1 << 3)) fputs ("UFL ", stdout); + if (flags & (1 << 4)) fputs ("INX ", stdout); + putchar ('\n'); +} + +void +arm_float_info () +{ + register unsigned long status = read_register (FPS_REGNUM); + int type; + + type = (status >> 24) & 127; + printf ("%s FPU type %d\n", + (status & (1<<31)) ? "Hardware" : "Software", + type); + fputs ("mask: ", stdout); + print_fpu_flags (status >> 16); + fputs ("flags: ", stdout); + print_fpu_flags (status); +} + +static char *original_register_names[] = +{ "a1", "a2", "a3", "a4", /* 0 1 2 3 */ + "v1", "v2", "v3", "v4", /* 4 5 6 7 */ + "v5", "v6", "sl", "fp", /* 8 9 10 11 */ + "ip", "sp", "lr", "pc", /* 12 13 14 15 */ + "f0", "f1", "f2", "f3", /* 16 17 18 19 */ + "f4", "f5", "f6", "f7", /* 20 21 22 23 */ + "fps","ps" } /* 24 25 */; + +/* These names are the ones which gcc emits, and + I find them less confusing. Toggle between them + using the `othernames' command. */ +static char *additional_register_names[] = +{ "r0", "r1", "r2", "r3", /* 0 1 2 3 */ + "r4", "r5", "r6", "r7", /* 4 5 6 7 */ + "r8", "r9", "sl", "fp", /* 8 9 10 11 */ + "ip", "sp", "lr", "pc", /* 12 13 14 15 */ + "f0", "f1", "f2", "f3", /* 16 17 18 19 */ + "f4", "f5", "f6", "f7", /* 20 21 22 23 */ + "fps","ps" } /* 24 25 */; + +char **arm_register_names = original_register_names; + + +static void +arm_othernames () +{ + static int toggle; + arm_register_names = (toggle + ? additional_register_names + : original_register_names); + toggle = !toggle; +} + +/* FIXME: Fill in with the 'right thing', see asm + template in arm-convert.s */ + +void +convert_from_extended (ptr, dbl) + void * ptr; + double * dbl; +{ + *dbl = *(double*)ptr; +} + +void +convert_to_extended (dbl, ptr) + void * ptr; + double * dbl; +{ + *(double*)ptr = *dbl; +} + +static int +condition_true (cond, status_reg) + unsigned long cond; + unsigned long status_reg; +{ + if (cond == INST_AL || cond == INST_NV) + return 1; + + switch (cond) + { + case INST_EQ: + return ((status_reg & FLAG_Z) != 0); + case INST_NE: + return ((status_reg & FLAG_Z) == 0); + case INST_CS: + return ((status_reg & FLAG_C) != 0); + case INST_CC: + return ((status_reg & FLAG_C) == 0); + case INST_MI: + return ((status_reg & FLAG_N) != 0); + case INST_PL: + return ((status_reg & FLAG_N) == 0); + case INST_VS: + return ((status_reg & FLAG_V) != 0); + case INST_VC: + return ((status_reg & FLAG_V) == 0); + case INST_HI: + return ((status_reg & (FLAG_C | FLAG_Z)) == FLAG_C); + case INST_LS: + return ((status_reg & (FLAG_C | FLAG_Z)) != FLAG_C); + case INST_GE: + return (((status_reg & FLAG_N) == 0) == ((status_reg & FLAG_V) == 0)); + case INST_LT: + return (((status_reg & FLAG_N) == 0) != ((status_reg & FLAG_V) == 0)); + case INST_GT: + return (((status_reg & FLAG_Z) == 0) && + (((status_reg & FLAG_N) == 0) == ((status_reg & FLAG_V) == 0))); + case INST_LE: + return (((status_reg & FLAG_Z) != 0) || + (((status_reg & FLAG_N) == 0) != ((status_reg & FLAG_V) == 0))); + } + return 1; +} + +#define submask(x) ((1L << ((x) + 1)) - 1) +#define bit(obj,st) (((obj) >> (st)) & 1) +#define bits(obj,st,fn) (((obj) >> (st)) & submask ((fn) - (st))) +#define sbits(obj,st,fn) \ + ((long) (bits(obj,st,fn) | ((long) bit(obj,fn) * ~ submask (fn - st)))) +#define BranchDest(addr,instr) \ + ((CORE_ADDR) (((long) (addr)) + 8 + (sbits (instr, 0, 23) << 2))) +#define ARM_PC_32 1 + +static unsigned long +shifted_reg_val (inst, carry, pc_val, status_reg) + unsigned long inst; + int carry; + unsigned long pc_val; + unsigned long status_reg; +{ + unsigned long res, shift; + int rm = bits (inst, 0, 3); + unsigned long shifttype = bits (inst, 5, 6); + + if (bit(inst, 4)) + { + int rs = bits (inst, 8, 11); + shift = (rs == 15 ? pc_val + 8 : read_register (rs)) & 0xFF; + } + else + shift = bits (inst, 7, 11); + + res = (rm == 15 + ? ((pc_val | (ARM_PC_32 ? 0 : status_reg)) + + (bit (inst, 4) ? 12 : 8)) + : read_register (rm)); + + switch (shifttype) + { + case 0: /* LSL */ + res = shift >= 32 ? 0 : res << shift; + break; + + case 1: /* LSR */ + res = shift >= 32 ? 0 : res >> shift; + break; + + case 2: /* ASR */ + if (shift >= 32) shift = 31; + res = ((res & 0x80000000L) + ? ~((~res) >> shift) : res >> shift); + break; + + case 3: /* ROR/RRX */ + shift &= 31; + if (shift == 0) + res = (res >> 1) | (carry ? 0x80000000L : 0); + else + res = (res >> shift) | (res << (32-shift)); + break; + } + + return res & 0xffffffff; +} + + +/* Return number of 1-bits in VAL. */ + +static int +bitcount (val) + unsigned long val; +{ + int nbits; + for (nbits = 0; val != 0; nbits++) + val &= val - 1; /* delete rightmost 1-bit in val */ + return nbits; +} + + +static CORE_ADDR +thumb_get_next_pc (pc) + CORE_ADDR pc; +{ + unsigned long pc_val = ((unsigned long)pc) + 4; /* PC after prefetch */ + unsigned short inst1 = read_memory_integer (pc, 2); + CORE_ADDR nextpc = pc + 2; /* default is next instruction */ + unsigned long offset; + + if ((inst1 & 0xff00) == 0xbd00) /* pop {rlist, pc} */ + { + CORE_ADDR sp; + + /* Fetch the saved PC from the stack. It's stored above + all of the other registers. */ + offset = bitcount (bits (inst1, 0, 7)) * REGISTER_SIZE; + sp = read_register (SP_REGNUM); + nextpc = (CORE_ADDR) read_memory_integer (sp + offset, 4); + nextpc = ADDR_BITS_REMOVE (nextpc); + if (nextpc == pc) + error ("Infinite loop detected"); + } + else if ((inst1 & 0xf000) == 0xd000) /* conditional branch */ + { + unsigned long status = read_register (PS_REGNUM); + unsigned long cond = bits (inst1, 8, 11); + if (cond != 0x0f && condition_true (cond, status)) /* 0x0f = SWI */ + nextpc = pc_val + (sbits (inst1, 0, 7) << 1); + } + else if ((inst1 & 0xf800) == 0xe000) /* unconditional branch */ + { + nextpc = pc_val + (sbits (inst1, 0, 10) << 1); + } + else if ((inst1 & 0xf800) == 0xf000) /* long branch with link */ + { + unsigned short inst2 = read_memory_integer (pc + 2, 2); + offset = (sbits (inst1, 0, 10) << 12) + (bits (inst2, 0, 10) << 1); + nextpc = pc_val + offset; + } + + return nextpc; +} + + +CORE_ADDR +arm_get_next_pc (pc) + CORE_ADDR pc; +{ + unsigned long pc_val; + unsigned long this_instr; + unsigned long status; + CORE_ADDR nextpc; + + if (arm_pc_is_thumb (pc)) + return thumb_get_next_pc (pc); + + pc_val = (unsigned long) pc; + this_instr = read_memory_integer (pc, 4); + status = read_register (PS_REGNUM); + nextpc = (CORE_ADDR) (pc_val + 4); /* Default case */ + + if (condition_true (bits (this_instr, 28, 31), status)) + { + switch (bits (this_instr, 24, 27)) + { + case 0x0: case 0x1: /* data processing */ + case 0x2: case 0x3: + { + unsigned long operand1, operand2, result = 0; + unsigned long rn; + int c; + + if (bits (this_instr, 12, 15) != 15) + break; + + if (bits (this_instr, 22, 25) == 0 + && bits (this_instr, 4, 7) == 9) /* multiply */ + error ("Illegal update to pc in instruction"); + + /* Multiply into PC */ + c = (status & FLAG_C) ? 1 : 0; + rn = bits (this_instr, 16, 19); + operand1 = (rn == 15) ? pc_val + 8 : read_register (rn); + + if (bit (this_instr, 25)) + { + unsigned long immval = bits (this_instr, 0, 7); + unsigned long rotate = 2 * bits (this_instr, 8, 11); + operand2 = ((immval >> rotate) | (immval << (32-rotate))) + & 0xffffffff; + } + else /* operand 2 is a shifted register */ + operand2 = shifted_reg_val (this_instr, c, pc_val, status); + + switch (bits (this_instr, 21, 24)) + { + case 0x0: /*and*/ + result = operand1 & operand2; + break; + + case 0x1: /*eor*/ + result = operand1 ^ operand2; + break; + + case 0x2: /*sub*/ + result = operand1 - operand2; + break; + + case 0x3: /*rsb*/ + result = operand2 - operand1; + break; + + case 0x4: /*add*/ + result = operand1 + operand2; + break; + + case 0x5: /*adc*/ + result = operand1 + operand2 + c; + break; + + case 0x6: /*sbc*/ + result = operand1 - operand2 + c; + break; + + case 0x7: /*rsc*/ + result = operand2 - operand1 + c; + break; + + case 0x8: case 0x9: case 0xa: case 0xb: /* tst, teq, cmp, cmn */ + result = (unsigned long) nextpc; + break; + + case 0xc: /*orr*/ + result = operand1 | operand2; + break; + + case 0xd: /*mov*/ + /* Always step into a function. */ + result = operand2; + break; + + case 0xe: /*bic*/ + result = operand1 & ~operand2; + break; + + case 0xf: /*mvn*/ + result = ~operand2; + break; + } + nextpc = (CORE_ADDR) ADDR_BITS_REMOVE (result); + + if (nextpc == pc) + error ("Infinite loop detected"); + break; + } + + case 0x4: case 0x5: /* data transfer */ + case 0x6: case 0x7: + if (bit (this_instr, 20)) + { + /* load */ + if (bits (this_instr, 12, 15) == 15) + { + /* rd == pc */ + unsigned long rn; + unsigned long base; + + if (bit (this_instr, 22)) + error ("Illegal update to pc in instruction"); + + /* byte write to PC */ + rn = bits (this_instr, 16, 19); + base = (rn == 15) ? pc_val + 8 : read_register (rn); + if (bit (this_instr, 24)) + { + /* pre-indexed */ + int c = (status & FLAG_C) ? 1 : 0; + unsigned long offset = + (bit (this_instr, 25) + ? shifted_reg_val (this_instr, c, pc_val) + : bits (this_instr, 0, 11)); + + if (bit (this_instr, 23)) + base += offset; + else + base -= offset; + } + nextpc = (CORE_ADDR) read_memory_integer ((CORE_ADDR) base, + 4); + + nextpc = ADDR_BITS_REMOVE (nextpc); + + if (nextpc == pc) + error ("Infinite loop detected"); + } + } + break; + + case 0x8: case 0x9: /* block transfer */ + if (bit (this_instr, 20)) + { + /* LDM */ + if (bit (this_instr, 15)) + { + /* loading pc */ + int offset = 0; + + if (bit (this_instr, 23)) + { + /* up */ + unsigned long reglist = bits (this_instr, 0, 14); + offset = bitcount (reglist) * 4; + if (bit (this_instr, 24)) /* pre */ + offset += 4; + } + else if (bit (this_instr, 24)) + offset = -4; + + { + unsigned long rn_val = + read_register (bits (this_instr, 16, 19)); + nextpc = + (CORE_ADDR) read_memory_integer ((CORE_ADDR) (rn_val + + offset), + 4); + } + nextpc = ADDR_BITS_REMOVE (nextpc); + if (nextpc == pc) + error ("Infinite loop detected"); + } + } + break; + + case 0xb: /* branch & link */ + case 0xa: /* branch */ + { + nextpc = BranchDest (pc, this_instr); + + nextpc = ADDR_BITS_REMOVE (nextpc); + if (nextpc == pc) + error ("Infinite loop detected"); + break; + } + + case 0xc: case 0xd: + case 0xe: /* coproc ops */ + case 0xf: /* SWI */ + break; + + default: + fprintf (stderr, "Bad bit-field extraction\n"); + return (pc); + } + } + + return nextpc; +} + +#include "bfd-in2.h" +#include "libcoff.h" + +static int +gdb_print_insn_arm (memaddr, info) + bfd_vma memaddr; + disassemble_info * info; +{ + if (arm_pc_is_thumb (memaddr)) + { + static asymbol * asym; + static combined_entry_type ce; + static struct coff_symbol_struct csym; + static struct _bfd fake_bfd; + static bfd_target fake_target; + + if (csym.native == NULL) + { + /* Create a fake symbol vector containing a Thumb symbol. This is + solely so that the code in print_insn_little_arm() and + print_insn_big_arm() in opcodes/arm-dis.c will detect the presence + of a Thumb symbol and switch to decoding Thumb instructions. */ + + fake_target.flavour = bfd_target_coff_flavour; + fake_bfd.xvec = & fake_target; + ce.u.syment.n_sclass = C_THUMBEXTFUNC; + csym.native = & ce; + csym.symbol.the_bfd = & fake_bfd; + csym.symbol.name = "fake"; + asym = (asymbol *) & csym; + } + + memaddr = UNMAKE_THUMB_ADDR (memaddr); + info->symbols = & asym; + } + else + info->symbols = NULL; + + if (TARGET_BYTE_ORDER == BIG_ENDIAN) + return print_insn_big_arm (memaddr, info); + else + return print_insn_little_arm (memaddr, info); +} + +/* Sequence of bytes for breakpoint instruction. */ +#define ARM_LE_BREAKPOINT {0xFE,0xDE,0xFF,0xE7} /* Recognized illegal opcodes */ +#define ARM_BE_BREAKPOINT {0xE7,0xFF,0xDE,0xFE} +#define THUMB_LE_BREAKPOINT {0xfe,0xdf} +#define THUMB_BE_BREAKPOINT {0xdf,0xfe} + +/* The following has been superseded by BREAKPOINT_FOR_PC, but + is defined merely to keep mem-break.c happy. */ +#define LITTLE_BREAKPOINT ARM_LE_BREAKPOINT +#define BIG_BREAKPOINT ARM_BE_BREAKPOINT + +/* This function implements the BREAKPOINT_FROM_PC macro. It uses the program + counter value to determine whether a 16- or 32-bit breakpoint should be + used. It returns a pointer to a string of bytes that encode a breakpoint + instruction, stores the length of the string to *lenptr, and adjusts pc + (if necessary) to point to the actual memory location where the + breakpoint should be inserted. */ + +unsigned char * +arm_breakpoint_from_pc (pcptr, lenptr) + CORE_ADDR * pcptr; + int * lenptr; +{ + if (arm_pc_is_thumb (*pcptr) || arm_pc_is_thumb_dummy (*pcptr)) + { + if (TARGET_BYTE_ORDER == BIG_ENDIAN) + { + static char thumb_breakpoint[] = THUMB_BE_BREAKPOINT; + *pcptr = UNMAKE_THUMB_ADDR (*pcptr); + *lenptr = sizeof (thumb_breakpoint); + return thumb_breakpoint; + } + else + { + static char thumb_breakpoint[] = THUMB_LE_BREAKPOINT; + *pcptr = UNMAKE_THUMB_ADDR (*pcptr); + *lenptr = sizeof (thumb_breakpoint); + return thumb_breakpoint; + } + } + else + { + if (TARGET_BYTE_ORDER == BIG_ENDIAN) + { + static char arm_breakpoint[] = ARM_BE_BREAKPOINT; + *lenptr = sizeof (arm_breakpoint); + return arm_breakpoint; + } + else + { + static char arm_breakpoint[] = ARM_LE_BREAKPOINT; + *lenptr = sizeof (arm_breakpoint); + return arm_breakpoint; + } + } +} +/* Return non-zero if the PC is inside a call thunk (aka stub or trampoline). + This implements the IN_SOLIB_CALL_TRAMPOLINE macro. */ + +int +arm_in_call_stub (pc, name) + CORE_ADDR pc; + char * name; +{ + CORE_ADDR start_addr; + + /* Find the starting address of the function containing the PC. If the + caller didn't give us a name, look it up at the same time. */ + if (find_pc_partial_function (pc, name ? NULL : &name, &start_addr, NULL) == 0) + return 0; + + return strncmp (name, "_call_via_r", 11) == 0; +} + + +/* If PC is in a Thumb call or return stub, return the address of the target + PC, which is in a register. The thunk functions are called _called_via_xx, + where x is the register name. The possible names are r0-r9, sl, fp, ip, + sp, and lr. */ + +CORE_ADDR +arm_skip_stub (pc) + CORE_ADDR pc; +{ + char * name; + CORE_ADDR start_addr; + + /* Find the starting address and name of the function containing the PC. */ + if (find_pc_partial_function (pc, &name, &start_addr, NULL) == 0) + return 0; + + /* Call thunks always start with "_call_via_". */ + if (strncmp (name, "_call_via_", 10) == 0) + { + /* Use the name suffix to determine which register contains + the target PC. */ + static char *table[15] = + { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", + "r8", "r9", "sl", "fp", "ip", "sp", "lr" + }; + int regno; + + for (regno = 0; regno <= 14; regno++) + if (strcmp (&name[10], table[regno]) == 0) + return read_register (regno); + } + return 0; /* not a stub */ +} + + +void +_initialize_arm_tdep () +{ + tm_print_insn = gdb_print_insn_arm; + + add_com ("othernames", class_obscure, arm_othernames, + "Switch to the other set of register names."); + + /* ??? Maybe this should be a boolean. */ + add_show_from_set (add_set_cmd ("apcs32", no_class, + var_zinteger, (char *)&arm_apcs_32, + "Set usage of ARM 32-bit mode.\n", &setlist), + & showlist); + +} + +/* Test whether the coff symbol specific value corresponds to a Thumb function */ +int +coff_sym_is_thumb(int val) +{ + return (val == C_THUMBEXT || + val == C_THUMBSTAT || + val == C_THUMBEXTFUNC || + val == C_THUMBSTATFUNC || + val == C_THUMBLABEL); +} diff --git a/gdb/arm-xdep.c b/gdb/arm-xdep.c new file mode 100644 index 0000000000..f0d806e82e --- /dev/null +++ b/gdb/arm-xdep.c @@ -0,0 +1,559 @@ +/* Acorn Risc Machine host machine support. + Copyright (C) 1988, 1989, 1991 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "frame.h" +#include "inferior.h" +#include "arm-opcode.h" + +#include +#include +#include +#include +#include +#include + +#define N_TXTADDR(hdr) 0x8000 +#define N_DATADDR(hdr) (hdr.a_text + 0x8000) + +#include "gdbcore.h" + +#include /* After a.out.h */ +#include +#include "gdb_stat.h" + +#include + +void +fetch_inferior_registers (regno) + int regno; /* Original value discarded */ +{ + register unsigned int regaddr; + char buf[MAX_REGISTER_RAW_SIZE]; + register int i; + + struct user u; + unsigned int offset = (char *) &u.u_ar0 - (char *) &u; + offset = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0) + - KERNEL_U_ADDR; + + registers_fetched (); + + for (regno = 0; regno < 16; regno++) + { + regaddr = offset + regno * 4; + *(int *)&buf[0] = ptrace (PT_READ_U, inferior_pid, + (PTRACE_ARG3_TYPE) regaddr, 0); + if (regno == PC_REGNUM) + *(int *)&buf[0] = GET_PC_PART(*(int *)&buf[0]); + supply_register (regno, buf); + } + *(int *)&buf[0] = ptrace (PT_READ_U, inferior_pid, + (PTRACE_ARG3_TYPE) (offset + PC*4), 0); + supply_register (PS_REGNUM, buf); /* set virtual register ps same as pc */ + + /* read the floating point registers */ + offset = (char *) &u.u_fp_regs - (char *)&u; + *(int *)buf = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0); + supply_register (FPS_REGNUM, buf); + for (regno = 16; regno < 24; regno++) { + regaddr = offset + 4 + 12 * (regno - 16); + for (i = 0; i < 12; i += sizeof(int)) + *(int *) &buf[i] = ptrace (PT_READ_U, inferior_pid, + (PTRACE_ARG3_TYPE) (regaddr + i), 0); + supply_register (regno, buf); + } +} + +/* Store our register values back into the inferior. + If REGNO is -1, do this for all registers. + Otherwise, REGNO specifies which register (so we can save time). */ + +void +store_inferior_registers (regno) + int regno; +{ + register unsigned int regaddr; + char buf[80]; + + struct user u; + unsigned long value; + unsigned int offset = (char *) &u.u_ar0 - (char *) &u; + offset = ptrace (PT_READ_U, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0) + - KERNEL_U_ADDR; + + if (regno >= 0) { + if (regno >= 16) return; + regaddr = offset + 4 * regno; + errno = 0; + value = read_register(regno); + if (regno == PC_REGNUM) + value = SET_PC_PART(read_register (PS_REGNUM), value); + ptrace (PT_WRITE_U, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, value); + if (errno != 0) + { + sprintf (buf, "writing register number %d", regno); + perror_with_name (buf); + } + } + else for (regno = 0; regno < 15; regno++) + { + regaddr = offset + regno * 4; + errno = 0; + value = read_register(regno); + if (regno == PC_REGNUM) + value = SET_PC_PART(read_register (PS_REGNUM), value); + ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr, value); + if (errno != 0) + { + sprintf (buf, "writing all regs, number %d", regno); + perror_with_name (buf); + } + } +} + +/* Work with core dump and executable files, for GDB. + This code would be in corefile.c if it weren't machine-dependent. */ + +/* Structure to describe the chain of shared libraries used + by the execfile. + e.g. prog shares Xt which shares X11 which shares c. */ + +struct shared_library { + struct exec_header header; + char name[SHLIBLEN]; + CORE_ADDR text_start; /* CORE_ADDR of 1st byte of text, this file */ + long data_offset; /* offset of data section in file */ + int chan; /* file descriptor for the file */ + struct shared_library *shares; /* library this one shares */ +}; +static struct shared_library *shlib = 0; + +/* Hook for `exec_file_command' command to call. */ + +extern void (*exec_file_display_hook) (); + +static CORE_ADDR unshared_text_start; + +/* extended header from exec file (for shared library info) */ + +static struct exec_header exec_header; + +void +core_file_command (filename, from_tty) + char *filename; + int from_tty; +{ + int val; + extern char registers[]; + + /* Discard all vestiges of any previous core file + and mark data and stack spaces as empty. */ + + if (corefile) + free (corefile); + corefile = 0; + + if (corechan >= 0) + close (corechan); + corechan = -1; + + data_start = 0; + data_end = 0; + stack_start = STACK_END_ADDR; + stack_end = STACK_END_ADDR; + + /* Now, if a new core file was specified, open it and digest it. */ + + if (filename) + { + filename = tilde_expand (filename); + make_cleanup (free, filename); + + if (have_inferior_p ()) + error ("To look at a core file, you must kill the program with \"kill\"."); + corechan = open (filename, O_RDONLY, 0); + if (corechan < 0) + perror_with_name (filename); + /* 4.2-style (and perhaps also sysV-style) core dump file. */ + { + struct user u; + + unsigned int reg_offset, fp_reg_offset; + + val = myread (corechan, &u, sizeof u); + if (val < 0) + perror_with_name ("Not a core file: reading upage"); + if (val != sizeof u) + error ("Not a core file: could only read %d bytes", val); + + /* We are depending on exec_file_command having been called + previously to set exec_data_start. Since the executable + and the core file share the same text segment, the address + of the data segment will be the same in both. */ + data_start = exec_data_start; + + data_end = data_start + NBPG * u.u_dsize; + stack_start = stack_end - NBPG * u.u_ssize; + data_offset = NBPG * UPAGES; + stack_offset = NBPG * (UPAGES + u.u_dsize); + + /* Some machines put an absolute address in here and some put + the offset in the upage of the regs. */ + reg_offset = (int) u.u_ar0; + if (reg_offset > NBPG * UPAGES) + reg_offset -= KERNEL_U_ADDR; + fp_reg_offset = (char *) &u.u_fp_regs - (char *)&u; + + /* I don't know where to find this info. + So, for now, mark it as not available. */ + N_SET_MAGIC (core_aouthdr, 0); + + /* Read the register values out of the core file and store + them where `read_register' will find them. */ + + { + register int regno; + + for (regno = 0; regno < NUM_REGS; regno++) + { + char buf[MAX_REGISTER_RAW_SIZE]; + + if (regno < 16) + val = lseek (corechan, reg_offset + 4 * regno, 0); + else if (regno < 24) + val = lseek (corechan, fp_reg_offset + 4 + 12*(regno - 24), 0); + else if (regno == 24) + val = lseek (corechan, fp_reg_offset, 0); + else if (regno == 25) + val = lseek (corechan, reg_offset + 4 * PC, 0); + if (val < 0 + || (val = myread (corechan, buf, sizeof buf)) < 0) + { + char * buffer = (char *) alloca (strlen (REGISTER_NAME (regno)) + + 30); + strcpy (buffer, "Reading register "); + strcat (buffer, REGISTER_NAME (regno)); + + perror_with_name (buffer); + } + + if (regno == PC_REGNUM) + *(int *)buf = GET_PC_PART(*(int *)buf); + supply_register (regno, buf); + } + } + } + if (filename[0] == '/') + corefile = savestring (filename, strlen (filename)); + else + { + corefile = concat (current_directory, "/", filename, NULL); + } + + flush_cached_frames (); + select_frame (get_current_frame (), 0); + validate_files (); + } + else if (from_tty) + printf ("No core file now.\n"); +} + +#if 0 +/* Work with core dump and executable files, for GDB. + This code would be in corefile.c if it weren't machine-dependent. */ + +/* Structure to describe the chain of shared libraries used + by the execfile. + e.g. prog shares Xt which shares X11 which shares c. */ + +struct shared_library { + struct exec_header header; + char name[SHLIBLEN]; + CORE_ADDR text_start; /* CORE_ADDR of 1st byte of text, this file */ + long data_offset; /* offset of data section in file */ + int chan; /* file descriptor for the file */ + struct shared_library *shares; /* library this one shares */ +}; +static struct shared_library *shlib = 0; + +/* Hook for `exec_file_command' command to call. */ + +extern void (*exec_file_display_hook) (); + +static CORE_ADDR unshared_text_start; + +/* extended header from exec file (for shared library info) */ + +static struct exec_header exec_header; + +void +exec_file_command (filename, from_tty) + char *filename; + int from_tty; +{ + int val; + + /* Eliminate all traces of old exec file. + Mark text segment as empty. */ + + if (execfile) + free (execfile); + execfile = 0; + data_start = 0; + data_end -= exec_data_start; + text_start = 0; + unshared_text_start = 0; + text_end = 0; + exec_data_start = 0; + exec_data_end = 0; + if (execchan >= 0) + close (execchan); + execchan = -1; + if (shlib) { + close_shared_library(shlib); + shlib = 0; + } + + /* Now open and digest the file the user requested, if any. */ + + if (filename) + { + filename = tilde_expand (filename); + make_cleanup (free, filename); + + execchan = openp (getenv ("PATH"), 1, filename, O_RDONLY, 0, + &execfile); + if (execchan < 0) + perror_with_name (filename); + + { + struct stat st_exec; + +#ifdef HEADER_SEEK_FD + HEADER_SEEK_FD (execchan); +#endif + + val = myread (execchan, &exec_header, sizeof exec_header); + exec_aouthdr = exec_header.a_exec; + + if (val < 0) + perror_with_name (filename); + + text_start = 0x8000; + + /* Look for shared library if needed */ + if (exec_header.a_exec.a_magic & MF_USES_SL) + shlib = open_shared_library(exec_header.a_shlibname, text_start); + + text_offset = N_TXTOFF (exec_aouthdr); + exec_data_offset = N_TXTOFF (exec_aouthdr) + exec_aouthdr.a_text; + + if (shlib) { + unshared_text_start = shared_text_end(shlib) & ~0x7fff; + stack_start = shlib->header.a_exec.a_sldatabase; + stack_end = STACK_END_ADDR; + } else + unshared_text_start = 0x8000; + text_end = unshared_text_start + exec_aouthdr.a_text; + + exec_data_start = unshared_text_start + exec_aouthdr.a_text; + exec_data_end = exec_data_start + exec_aouthdr.a_data; + + data_start = exec_data_start; + data_end += exec_data_start; + + fstat (execchan, &st_exec); + exec_mtime = st_exec.st_mtime; + } + + validate_files (); + } + else if (from_tty) + printf ("No executable file now.\n"); + + /* Tell display code (if any) about the changed file name. */ + if (exec_file_display_hook) + (*exec_file_display_hook) (filename); +} +#endif + +#if 0 +/* Read from the program's memory (except for inferior processes). + This function is misnamed, since it only reads, never writes; and + since it will use the core file and/or executable file as necessary. + + It should be extended to write as well as read, FIXME, for patching files. + + Return 0 if address could be read, EIO if addresss out of bounds. */ + +int +xfer_core_file (memaddr, myaddr, len) + CORE_ADDR memaddr; + char *myaddr; + int len; +{ + register int i; + register int val; + int xferchan; + char **xferfile; + int fileptr; + int returnval = 0; + + while (len > 0) + { + xferfile = 0; + xferchan = 0; + + /* Determine which file the next bunch of addresses reside in, + and where in the file. Set the file's read/write pointer + to point at the proper place for the desired address + and set xferfile and xferchan for the correct file. + + If desired address is nonexistent, leave them zero. + + i is set to the number of bytes that can be handled + along with the next address. + + We put the most likely tests first for efficiency. */ + + /* Note that if there is no core file + data_start and data_end are equal. */ + if (memaddr >= data_start && memaddr < data_end) + { + i = min (len, data_end - memaddr); + fileptr = memaddr - data_start + data_offset; + xferfile = &corefile; + xferchan = corechan; + } + /* Note that if there is no core file + stack_start and stack_end define the shared library data. */ + else if (memaddr >= stack_start && memaddr < stack_end) + { + if (corechan < 0) { + struct shared_library *lib; + for (lib = shlib; lib; lib = lib->shares) + if (memaddr >= lib->header.a_exec.a_sldatabase && + memaddr < lib->header.a_exec.a_sldatabase + + lib->header.a_exec.a_data) + break; + if (lib) { + i = min (len, lib->header.a_exec.a_sldatabase + + lib->header.a_exec.a_data - memaddr); + fileptr = lib->data_offset + memaddr - + lib->header.a_exec.a_sldatabase; + xferfile = execfile; + xferchan = lib->chan; + } + } else { + i = min (len, stack_end - memaddr); + fileptr = memaddr - stack_start + stack_offset; + xferfile = &corefile; + xferchan = corechan; + } + } + else if (corechan < 0 + && memaddr >= exec_data_start && memaddr < exec_data_end) + { + i = min (len, exec_data_end - memaddr); + fileptr = memaddr - exec_data_start + exec_data_offset; + xferfile = &execfile; + xferchan = execchan; + } + else if (memaddr >= text_start && memaddr < text_end) + { + struct shared_library *lib; + for (lib = shlib; lib; lib = lib->shares) + if (memaddr >= lib->text_start && + memaddr < lib->text_start + lib->header.a_exec.a_text) + break; + if (lib) { + i = min (len, lib->header.a_exec.a_text + + lib->text_start - memaddr); + fileptr = memaddr - lib->text_start + text_offset; + xferfile = &execfile; + xferchan = lib->chan; + } else { + i = min (len, text_end - memaddr); + fileptr = memaddr - unshared_text_start + text_offset; + xferfile = &execfile; + xferchan = execchan; + } + } + else if (memaddr < text_start) + { + i = min (len, text_start - memaddr); + } + else if (memaddr >= text_end + && memaddr < (corechan >= 0? data_start : exec_data_start)) + { + i = min (len, data_start - memaddr); + } + else if (corechan >= 0 + && memaddr >= data_end && memaddr < stack_start) + { + i = min (len, stack_start - memaddr); + } + else if (corechan < 0 && memaddr >= exec_data_end) + { + i = min (len, - memaddr); + } + else if (memaddr >= stack_end && stack_end != 0) + { + i = min (len, - memaddr); + } + else + { + /* Address did not classify into one of the known ranges. + This shouldn't happen; we catch the endpoints. */ + fatal ("Internal: Bad case logic in xfer_core_file."); + } + + /* Now we know which file to use. + Set up its pointer and transfer the data. */ + if (xferfile) + { + if (*xferfile == 0) + if (xferfile == &execfile) + error ("No program file to examine."); + else + error ("No core dump file or running program to examine."); + val = lseek (xferchan, fileptr, 0); + if (val < 0) + perror_with_name (*xferfile); + val = myread (xferchan, myaddr, i); + if (val < 0) + perror_with_name (*xferfile); + } + /* If this address is for nonexistent memory, + read zeros if reading, or do nothing if writing. + Actually, we never right. */ + else + { + memset (myaddr, '\0', i); + returnval = EIO; + } + + memaddr += i; + myaddr += i; + len -= i; + } + return returnval; +} +#endif diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c new file mode 100644 index 0000000000..c518e19e0d --- /dev/null +++ b/gdb/ax-gdb.c @@ -0,0 +1,1942 @@ +/* GDB-specific functions for operating on agent expressions + Copyright 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +/* $Id$ */ + +#include "defs.h" +#include "symtab.h" +#include "symfile.h" +#include "gdbtypes.h" +#include "value.h" +#include "expression.h" +#include "command.h" +#include "gdbcmd.h" +#include "frame.h" +#include "target.h" +#include "ax.h" +#include "ax-gdb.h" + +/* Probably the best way to read this file is to start with the types + and enums in ax-gdb.h, and then look at gen_expr, towards the + bottom; that's the main function that looks at the GDB expressions + and calls everything else to generate code. + + I'm beginning to wonder whether it wouldn't be nicer to internally + generate trees, with types, and then spit out the bytecode in + linear form afterwards; we could generate fewer `swap', `ext', and + `zero_ext' bytecodes that way; it would make good constant folding + easier, too. But at the moment, I think we should be willing to + pay for the simplicity of this code with less-than-optimal bytecode + strings. + + Remember, "GBD" stands for "Great Britain, Dammit!" So be careful. */ + + + +/* Prototypes for local functions. */ + +/* There's a standard order to the arguments of these functions: + union exp_element ** --- pointer into expression + struct agent_expr * --- agent expression buffer to generate code into + struct axs_value * --- describes value left on top of stack */ + +static struct value *const_var_ref PARAMS ((struct symbol *var)); +static struct value *const_expr PARAMS ((union exp_element **pc)); +static struct value *maybe_const_expr PARAMS ((union exp_element **pc)); + +static void gen_traced_pop PARAMS ((struct agent_expr *, struct axs_value *)); + +static void gen_sign_extend PARAMS ((struct agent_expr *, struct type *)); +static void gen_extend PARAMS ((struct agent_expr *, struct type *)); +static void gen_fetch PARAMS ((struct agent_expr *, struct type *)); +static void gen_left_shift PARAMS ((struct agent_expr *, int)); + + +static void gen_frame_args_address PARAMS ((struct agent_expr *)); +static void gen_frame_locals_address PARAMS ((struct agent_expr *)); +static void gen_offset PARAMS ((struct agent_expr *ax, int offset)); +static void gen_sym_offset PARAMS ((struct agent_expr *, struct symbol *)); +static void gen_var_ref PARAMS ((struct agent_expr *ax, + struct axs_value *value, + struct symbol *var)); + + +static void gen_int_literal PARAMS ((struct agent_expr *ax, + struct axs_value *value, + LONGEST k, struct type *type)); + + +static void require_rvalue PARAMS ((struct agent_expr *ax, + struct axs_value *value)); +static void gen_usual_unary PARAMS ((struct agent_expr *ax, + struct axs_value *value)); +static int type_wider_than PARAMS ((struct type *type1, + struct type *type2)); +static struct type *max_type PARAMS ((struct type *type1, + struct type *type2)); +static void gen_conversion PARAMS ((struct agent_expr *ax, + struct type *from, + struct type *to)); +static int is_nontrivial_conversion PARAMS ((struct type *from, + struct type *to)); +static void gen_usual_arithmetic PARAMS ((struct agent_expr *ax, + struct axs_value *value1, + struct axs_value *value2)); +static void gen_integral_promotions PARAMS ((struct agent_expr *ax, + struct axs_value *value)); +static void gen_cast PARAMS ((struct agent_expr *ax, + struct axs_value *value, + struct type *type)); +static void gen_scale PARAMS ((struct agent_expr *ax, + enum agent_op op, + struct type *type)); +static void gen_add PARAMS ((struct agent_expr *ax, + struct axs_value *value, + struct axs_value *value1, + struct axs_value *value2, + char *name)); +static void gen_sub PARAMS ((struct agent_expr *ax, + struct axs_value *value, + struct axs_value *value1, + struct axs_value *value2)); +static void gen_binop PARAMS ((struct agent_expr *ax, + struct axs_value *value, + struct axs_value *value1, + struct axs_value *value2, + enum agent_op op, + enum agent_op op_unsigned, + int may_carry, + char *name)); +static void gen_logical_not PARAMS ((struct agent_expr *ax, + struct axs_value *value)); +static void gen_complement PARAMS ((struct agent_expr *ax, + struct axs_value *value)); +static void gen_deref PARAMS ((struct agent_expr *, struct axs_value *)); +static void gen_address_of PARAMS ((struct agent_expr *, struct axs_value *)); +static int find_field PARAMS ((struct type *type, char *name)); +static void gen_bitfield_ref PARAMS ((struct agent_expr *ax, + struct axs_value *value, + struct type *type, + int start, int end)); +static void gen_struct_ref PARAMS ((struct agent_expr *ax, + struct axs_value *value, + char *field, + char *operator_name, + char *operand_name)); +static void gen_repeat PARAMS ((union exp_element **pc, + struct agent_expr *ax, + struct axs_value *value)); +static void gen_sizeof PARAMS ((union exp_element **pc, + struct agent_expr *ax, + struct axs_value *value)); +static void gen_expr PARAMS ((union exp_element **pc, + struct agent_expr *ax, + struct axs_value *value)); + +static void print_axs_value PARAMS ((GDB_FILE *f, struct axs_value *value)); +static void agent_command PARAMS ((char *exp, int from_tty)); + + +/* Detecting constant expressions. */ + +/* If the variable reference at *PC is a constant, return its value. + Otherwise, return zero. + + Hey, Wally! How can a variable reference be a constant? + + Well, Beav, this function really handles the OP_VAR_VALUE operator, + not specifically variable references. GDB uses OP_VAR_VALUE to + refer to any kind of symbolic reference: function names, enum + elements, and goto labels are all handled through the OP_VAR_VALUE + operator, even though they're constants. It makes sense given the + situation. + + Gee, Wally, don'cha wonder sometimes if data representations that + subvert commonly accepted definitions of terms in favor of heavily + context-specific interpretations are really just a tool of the + programming hegemony to preserve their power and exclude the + proletariat? */ + +static struct value * +const_var_ref (var) + struct symbol *var; +{ + struct type *type = SYMBOL_TYPE (var); + + switch (SYMBOL_CLASS (var)) + { + case LOC_CONST: + return value_from_longest (type, (LONGEST) SYMBOL_VALUE (var)); + + case LOC_LABEL: + return value_from_longest (type, (LONGEST) SYMBOL_VALUE_ADDRESS (var)); + + default: + return 0; + } +} + + +/* If the expression starting at *PC has a constant value, return it. + Otherwise, return zero. If we return a value, then *PC will be + advanced to the end of it. If we return zero, *PC could be + anywhere. */ +static struct value * +const_expr (pc) + union exp_element **pc; +{ + enum exp_opcode op = (*pc)->opcode; + struct value *v1; + + switch (op) + { + case OP_LONG: + { + struct type *type = (*pc)[1].type; + LONGEST k = (*pc)[2].longconst; + (*pc) += 4; + return value_from_longest (type, k); + } + + case OP_VAR_VALUE: + { + struct value *v = const_var_ref ((*pc)[2].symbol); + (*pc) += 4; + return v; + } + + /* We could add more operators in here. */ + + case UNOP_NEG: + (*pc)++; + v1 = const_expr (pc); + if (v1) + return value_neg (v1); + else + return 0; + + default: + return 0; + } +} + + +/* Like const_expr, but guarantee also that *PC is undisturbed if the + expression is not constant. */ +static struct value * +maybe_const_expr (pc) + union exp_element **pc; +{ + union exp_element *tentative_pc = *pc; + struct value *v = const_expr (&tentative_pc); + + /* If we got a value, then update the real PC. */ + if (v) + *pc = tentative_pc; + + return v; +} + + +/* Generating bytecode from GDB expressions: general assumptions */ + +/* Here are a few general assumptions made throughout the code; if you + want to make a change that contradicts one of these, then you'd + better scan things pretty thoroughly. + + - We assume that all values occupy one stack element. For example, + sometimes we'll swap to get at the left argument to a binary + operator. If we decide that void values should occupy no stack + elements, or that synthetic arrays (whose size is determined at + run time, created by the `@' operator) should occupy two stack + elements (address and length), then this will cause trouble. + + - We assume the stack elements are infinitely wide, and that we + don't have to worry what happens if the user requests an + operation that is wider than the actual interpreter's stack. + That is, it's up to the interpreter to handle directly all the + integer widths the user has access to. (Woe betide the language + with bignums!) + + - We don't support side effects. Thus, we don't have to worry about + GCC's generalized lvalues, function calls, etc. + + - We don't support floating point. Many places where we switch on + some type don't bother to include cases for floating point; there + may be even more subtle ways this assumption exists. For + example, the arguments to % must be integers. + + - We assume all subexpressions have a static, unchanging type. If + we tried to support convenience variables, this would be a + problem. + + - All values on the stack should always be fully zero- or + sign-extended. + + (I wasn't sure whether to choose this or its opposite --- that + only addresses are assumed extended --- but it turns out that + neither convention completely eliminates spurious extend + operations (if everything is always extended, then you have to + extend after add, because it could overflow; if nothing is + extended, then you end up producing extends whenever you change + sizes), and this is simpler.) */ + + +/* Generating bytecode from GDB expressions: the `trace' kludge */ + +/* The compiler in this file is a general-purpose mechanism for + translating GDB expressions into bytecode. One ought to be able to + find a million and one uses for it. + + However, at the moment it is HOPELESSLY BRAIN-DAMAGED for the sake + of expediency. Let he who is without sin cast the first stone. + + For the data tracing facility, we need to insert `trace' bytecodes + before each data fetch; this records all the memory that the + expression touches in the course of evaluation, so that memory will + be available when the user later tries to evaluate the expression + in GDB. + + This should be done (I think) in a post-processing pass, that walks + an arbitrary agent expression and inserts `trace' operations at the + appropriate points. But it's much faster to just hack them + directly into the code. And since we're in a crunch, that's what + I've done. + + Setting the flag trace_kludge to non-zero enables the code that + emits the trace bytecodes at the appropriate points. */ +static int trace_kludge; + +/* Trace the lvalue on the stack, if it needs it. In either case, pop + the value. Useful on the left side of a comma, and at the end of + an expression being used for tracing. */ +static void +gen_traced_pop (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + if (trace_kludge) + switch (value->kind) + { + case axs_rvalue: + /* We don't trace rvalues, just the lvalues necessary to + produce them. So just dispose of this value. */ + ax_simple (ax, aop_pop); + break; + + case axs_lvalue_memory: + { + int length = TYPE_LENGTH (value->type); + + /* There's no point in trying to use a trace_quick bytecode + here, since "trace_quick SIZE pop" is three bytes, whereas + "const8 SIZE trace" is also three bytes, does the same + thing, and the simplest code which generates that will also + work correctly for objects with large sizes. */ + ax_const_l (ax, length); + ax_simple (ax, aop_trace); + } + break; + + case axs_lvalue_register: + /* We need to mention the register somewhere in the bytecode, + so ax_reqs will pick it up and add it to the mask of + registers used. */ + ax_reg (ax, value->u.reg); + ax_simple (ax, aop_pop); + break; + } + else + /* If we're not tracing, just pop the value. */ + ax_simple (ax, aop_pop); +} + + + +/* Generating bytecode from GDB expressions: helper functions */ + +/* Assume that the lower bits of the top of the stack is a value of + type TYPE, and the upper bits are zero. Sign-extend if necessary. */ +static void +gen_sign_extend (ax, type) + struct agent_expr *ax; + struct type *type; +{ + /* Do we need to sign-extend this? */ + if (! TYPE_UNSIGNED (type)) + ax_ext (ax, type->length * TARGET_CHAR_BIT); +} + + +/* Assume the lower bits of the top of the stack hold a value of type + TYPE, and the upper bits are garbage. Sign-extend or truncate as + needed. */ +static void +gen_extend (ax, type) + struct agent_expr *ax; + struct type *type; +{ + int bits = type->length * TARGET_CHAR_BIT; + /* I just had to. */ + ((TYPE_UNSIGNED (type) ? ax_zero_ext : ax_ext) (ax, bits)); +} + + +/* Assume that the top of the stack contains a value of type "pointer + to TYPE"; generate code to fetch its value. Note that TYPE is the + target type, not the pointer type. */ +static void +gen_fetch (ax, type) + struct agent_expr *ax; + struct type *type; +{ + if (trace_kludge) + { + /* Record the area of memory we're about to fetch. */ + ax_trace_quick (ax, TYPE_LENGTH (type)); + } + + switch (type->code) + { + case TYPE_CODE_PTR: + case TYPE_CODE_ENUM: + case TYPE_CODE_INT: + case TYPE_CODE_CHAR: + /* It's a scalar value, so we know how to dereference it. How + many bytes long is it? */ + switch (type->length) + { + case 8 / TARGET_CHAR_BIT: ax_simple (ax, aop_ref8 ); break; + case 16 / TARGET_CHAR_BIT: ax_simple (ax, aop_ref16); break; + case 32 / TARGET_CHAR_BIT: ax_simple (ax, aop_ref32); break; + case 64 / TARGET_CHAR_BIT: ax_simple (ax, aop_ref64); break; + + /* Either our caller shouldn't have asked us to dereference + that pointer (other code's fault), or we're not + implementing something we should be (this code's fault). + In any case, it's a bug the user shouldn't see. */ + default: + error ("GDB bug: ax-gdb.c (gen_fetch): strange size"); + } + + gen_sign_extend (ax, type); + break; + + default: + /* Either our caller shouldn't have asked us to dereference that + pointer (other code's fault), or we're not implementing + something we should be (this code's fault). In any case, + it's a bug the user shouldn't see. */ + error ("GDB bug: ax-gdb.c (gen_fetch): bad type code"); + } +} + + +/* Generate code to left shift the top of the stack by DISTANCE bits, or + right shift it by -DISTANCE bits if DISTANCE < 0. This generates + unsigned (logical) right shifts. */ +static void +gen_left_shift (ax, distance) + struct agent_expr *ax; + int distance; +{ + if (distance > 0) + { + ax_const_l (ax, distance); + ax_simple (ax, aop_lsh); + } + else if (distance < 0) + { + ax_const_l (ax, -distance); + ax_simple (ax, aop_rsh_unsigned); + } +} + + + +/* Generating bytecode from GDB expressions: symbol references */ + +/* Generate code to push the base address of the argument portion of + the top stack frame. */ +static void +gen_frame_args_address (ax) + struct agent_expr *ax; +{ + long frame_reg, frame_offset; + + TARGET_VIRTUAL_FRAME_POINTER (ax->scope, &frame_reg, &frame_offset); + ax_reg (ax, frame_reg); + gen_offset (ax, frame_offset); +} + + +/* Generate code to push the base address of the locals portion of the + top stack frame. */ +static void +gen_frame_locals_address (ax) + struct agent_expr *ax; +{ + long frame_reg, frame_offset; + + TARGET_VIRTUAL_FRAME_POINTER (ax->scope, &frame_reg, &frame_offset); + ax_reg (ax, frame_reg); + gen_offset (ax, frame_offset); +} + + +/* Generate code to add OFFSET to the top of the stack. Try to + generate short and readable code. We use this for getting to + variables on the stack, and structure members. If we were + programming in ML, it would be clearer why these are the same + thing. */ +static void +gen_offset (ax, offset) + struct agent_expr *ax; + int offset; +{ + /* It would suffice to simply push the offset and add it, but this + makes it easier to read positive and negative offsets in the + bytecode. */ + if (offset > 0) + { + ax_const_l (ax, offset); + ax_simple (ax, aop_add); + } + else if (offset < 0) + { + ax_const_l (ax, -offset); + ax_simple (ax, aop_sub); + } +} + + +/* In many cases, a symbol's value is the offset from some other + address (stack frame, base register, etc.) Generate code to add + VAR's value to the top of the stack. */ +static void +gen_sym_offset (ax, var) + struct agent_expr *ax; + struct symbol *var; +{ + gen_offset (ax, SYMBOL_VALUE (var)); +} + + +/* Generate code for a variable reference to AX. The variable is the + symbol VAR. Set VALUE to describe the result. */ + +static void +gen_var_ref (ax, value, var) + struct agent_expr *ax; + struct axs_value *value; + struct symbol *var; +{ + /* Dereference any typedefs. */ + value->type = check_typedef (SYMBOL_TYPE (var)); + + /* I'm imitating the code in read_var_value. */ + switch (SYMBOL_CLASS (var)) + { + case LOC_CONST: /* A constant, like an enum value. */ + ax_const_l (ax, (LONGEST) SYMBOL_VALUE (var)); + value->kind = axs_rvalue; + break; + + case LOC_LABEL: /* A goto label, being used as a value. */ + ax_const_l (ax, (LONGEST) SYMBOL_VALUE_ADDRESS (var)); + value->kind = axs_rvalue; + break; + + case LOC_CONST_BYTES: + error ("GDB bug: ax-gdb.c (gen_var_ref): LOC_CONST_BYTES symbols are not supported"); + + /* Variable at a fixed location in memory. Easy. */ + case LOC_STATIC: + /* Push the address of the variable. */ + ax_const_l (ax, SYMBOL_VALUE_ADDRESS (var)); + value->kind = axs_lvalue_memory; + break; + + case LOC_ARG: /* var lives in argument area of frame */ + gen_frame_args_address (ax); + gen_sym_offset (ax, var); + value->kind = axs_lvalue_memory; + break; + + case LOC_REF_ARG: /* As above, but the frame slot really + holds the address of the variable. */ + gen_frame_args_address (ax); + gen_sym_offset (ax, var); + /* Don't assume any particular pointer size. */ + gen_fetch (ax, lookup_pointer_type (builtin_type_void)); + value->kind = axs_lvalue_memory; + break; + + case LOC_LOCAL: /* var lives in locals area of frame */ + case LOC_LOCAL_ARG: + gen_frame_locals_address (ax); + gen_sym_offset (ax, var); + value->kind = axs_lvalue_memory; + break; + + case LOC_BASEREG: /* relative to some base register */ + case LOC_BASEREG_ARG: + ax_reg (ax, SYMBOL_BASEREG (var)); + gen_sym_offset (ax, var); + value->kind = axs_lvalue_memory; + break; + + case LOC_TYPEDEF: + error ("Cannot compute value of typedef `%s'.", + SYMBOL_SOURCE_NAME (var)); + break; + + case LOC_BLOCK: + ax_const_l (ax, BLOCK_START (SYMBOL_BLOCK_VALUE (var))); + value->kind = axs_rvalue; + break; + + case LOC_REGISTER: + case LOC_REGPARM: + /* Don't generate any code at all; in the process of treating + this as an lvalue or rvalue, the caller will generate the + right code. */ + value->kind = axs_lvalue_register; + value->u.reg = SYMBOL_VALUE (var); + break; + + /* A lot like LOC_REF_ARG, but the pointer lives directly in a + register, not on the stack. Simpler than LOC_REGISTER and + LOC_REGPARM, because it's just like any other case where the + thing has a real address. */ + case LOC_REGPARM_ADDR: + ax_reg (ax, SYMBOL_VALUE (var)); + value->kind = axs_lvalue_memory; + break; + + case LOC_UNRESOLVED: + { + struct minimal_symbol *msym + = lookup_minimal_symbol (SYMBOL_NAME (var), NULL, NULL); + if (! msym) + error ("Couldn't resolve symbol `%s'.", SYMBOL_SOURCE_NAME (var)); + + /* Push the address of the variable. */ + ax_const_l (ax, SYMBOL_VALUE_ADDRESS (msym)); + value->kind = axs_lvalue_memory; + } + break; + + case LOC_OPTIMIZED_OUT: + error ("The variable `%s' has been optimized out.", + SYMBOL_SOURCE_NAME (var)); + break; + + default: + error ("Cannot find value of botched symbol `%s'.", + SYMBOL_SOURCE_NAME (var)); + break; + } +} + + + +/* Generating bytecode from GDB expressions: literals */ + +static void +gen_int_literal (ax, value, k, type) + struct agent_expr *ax; + struct axs_value *value; + LONGEST k; + struct type *type; +{ + ax_const_l (ax, k); + value->kind = axs_rvalue; + value->type = type; +} + + + +/* Generating bytecode from GDB expressions: unary conversions, casts */ + +/* Take what's on the top of the stack (as described by VALUE), and + try to make an rvalue out of it. Signal an error if we can't do + that. */ +static void +require_rvalue (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + switch (value->kind) + { + case axs_rvalue: + /* It's already an rvalue. */ + break; + + case axs_lvalue_memory: + /* The top of stack is the address of the object. Dereference. */ + gen_fetch (ax, value->type); + break; + + case axs_lvalue_register: + /* There's nothing on the stack, but value->u.reg is the + register number containing the value. + + When we add floating-point support, this is going to have to + change. What about SPARC register pairs, for example? */ + ax_reg (ax, value->u.reg); + gen_extend (ax, value->type); + break; + } + + value->kind = axs_rvalue; +} + + +/* Assume the top of the stack is described by VALUE, and perform the + usual unary conversions. This is motivated by ANSI 6.2.2, but of + course GDB expressions are not ANSI; they're the mishmash union of + a bunch of languages. Rah. + + NOTE! This function promises to produce an rvalue only when the + incoming value is of an appropriate type. In other words, the + consumer of the value this function produces may assume the value + is an rvalue only after checking its type. + + The immediate issue is that if the user tries to use a structure or + union as an operand of, say, the `+' operator, we don't want to try + to convert that structure to an rvalue; require_rvalue will bomb on + structs and unions. Rather, we want to simply pass the struct + lvalue through unchanged, and let `+' raise an error. */ + +static void +gen_usual_unary (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + /* We don't have to generate any code for the usual integral + conversions, since values are always represented as full-width on + the stack. Should we tweak the type? */ + + /* Some types require special handling. */ + switch (value->type->code) + { + /* Functions get converted to a pointer to the function. */ + case TYPE_CODE_FUNC: + value->type = lookup_pointer_type (value->type); + value->kind = axs_rvalue; /* Should always be true, but just in case. */ + break; + + /* Arrays get converted to a pointer to their first element, and + are no longer an lvalue. */ + case TYPE_CODE_ARRAY: + { + struct type *elements = TYPE_TARGET_TYPE (value->type); + value->type = lookup_pointer_type (elements); + value->kind = axs_rvalue; + /* We don't need to generate any code; the address of the array + is also the address of its first element. */ + } + break; + + /* Don't try to convert structures and unions to rvalues. Let the + consumer signal an error. */ + case TYPE_CODE_STRUCT: + case TYPE_CODE_UNION: + return; + + /* If the value is an enum, call it an integer. */ + case TYPE_CODE_ENUM: + value->type = builtin_type_int; + break; + } + + /* If the value is an lvalue, dereference it. */ + require_rvalue (ax, value); +} + + +/* Return non-zero iff the type TYPE1 is considered "wider" than the + type TYPE2, according to the rules described in gen_usual_arithmetic. */ +static int +type_wider_than (type1, type2) + struct type *type1, *type2; +{ + return (TYPE_LENGTH (type1) > TYPE_LENGTH (type2) + || (TYPE_LENGTH (type1) == TYPE_LENGTH (type2) + && TYPE_UNSIGNED (type1) + && ! TYPE_UNSIGNED (type2))); +} + + +/* Return the "wider" of the two types TYPE1 and TYPE2. */ +static struct type * +max_type (type1, type2) + struct type *type1, *type2; +{ + return type_wider_than (type1, type2) ? type1 : type2; +} + + +/* Generate code to convert a scalar value of type FROM to type TO. */ +static void +gen_conversion (ax, from, to) + struct agent_expr *ax; + struct type *from, *to; +{ + /* Perhaps there is a more graceful way to state these rules. */ + + /* If we're converting to a narrower type, then we need to clear out + the upper bits. */ + if (TYPE_LENGTH (to) < TYPE_LENGTH (from)) + gen_extend (ax, from); + + /* If the two values have equal width, but different signednesses, + then we need to extend. */ + else if (TYPE_LENGTH (to) == TYPE_LENGTH (from)) + { + if (TYPE_UNSIGNED (from) != TYPE_UNSIGNED (to)) + gen_extend (ax, to); + } + + /* If we're converting to a wider type, and becoming unsigned, then + we need to zero out any possible sign bits. */ + else if (TYPE_LENGTH (to) > TYPE_LENGTH (from)) + { + if (TYPE_UNSIGNED (to)) + gen_extend (ax, to); + } +} + + +/* Return non-zero iff the type FROM will require any bytecodes to be + emitted to be converted to the type TO. */ +static int +is_nontrivial_conversion (from, to) + struct type *from, *to; +{ + struct agent_expr *ax = new_agent_expr (0); + int nontrivial; + + /* Actually generate the code, and see if anything came out. At the + moment, it would be trivial to replicate the code in + gen_conversion here, but in the future, when we're supporting + floating point and the like, it may not be. Doing things this + way allows this function to be independent of the logic in + gen_conversion. */ + gen_conversion (ax, from, to); + nontrivial = ax->len > 0; + free_agent_expr (ax); + return nontrivial; +} + + +/* Generate code to perform the "usual arithmetic conversions" (ANSI C + 6.2.1.5) for the two operands of an arithmetic operator. This + effectively finds a "least upper bound" type for the two arguments, + and promotes each argument to that type. *VALUE1 and *VALUE2 + describe the values as they are passed in, and as they are left. */ +static void +gen_usual_arithmetic (ax, value1, value2) + struct agent_expr *ax; + struct axs_value *value1, *value2; +{ + /* Do the usual binary conversions. */ + if (TYPE_CODE (value1->type) == TYPE_CODE_INT + && TYPE_CODE (value2->type) == TYPE_CODE_INT) + { + /* The ANSI integral promotions seem to work this way: Order the + integer types by size, and then by signedness: an n-bit + unsigned type is considered "wider" than an n-bit signed + type. Promote to the "wider" of the two types, and always + promote at least to int. */ + struct type *target = max_type (builtin_type_int, + max_type (value1->type, value2->type)); + + /* Deal with value2, on the top of the stack. */ + gen_conversion (ax, value2->type, target); + + /* Deal with value1, not on the top of the stack. Don't + generate the `swap' instructions if we're not actually going + to do anything. */ + if (is_nontrivial_conversion (value1->type, target)) + { + ax_simple (ax, aop_swap); + gen_conversion (ax, value1->type, target); + ax_simple (ax, aop_swap); + } + + value1->type = value2->type = target; + } +} + + +/* Generate code to perform the integral promotions (ANSI 6.2.1.1) on + the value on the top of the stack, as described by VALUE. Assume + the value has integral type. */ +static void +gen_integral_promotions (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + if (! type_wider_than (value->type, builtin_type_int)) + { + gen_conversion (ax, value->type, builtin_type_int); + value->type = builtin_type_int; + } + else if (! type_wider_than (value->type, builtin_type_unsigned_int)) + { + gen_conversion (ax, value->type, builtin_type_unsigned_int); + value->type = builtin_type_unsigned_int; + } +} + + +/* Generate code for a cast to TYPE. */ +static void +gen_cast (ax, value, type) + struct agent_expr *ax; + struct axs_value *value; + struct type *type; +{ + /* GCC does allow casts to yield lvalues, so this should be fixed + before merging these changes into the trunk. */ + require_rvalue (ax, value); + /* Dereference typedefs. */ + type = check_typedef (type); + + switch (type->code) + { + case TYPE_CODE_PTR: + /* It's implementation-defined, and I'll bet this is what GCC + does. */ + break; + + case TYPE_CODE_ARRAY: + case TYPE_CODE_STRUCT: + case TYPE_CODE_UNION: + case TYPE_CODE_FUNC: + error ("Illegal type cast: intended type must be scalar."); + + case TYPE_CODE_ENUM: + /* We don't have to worry about the size of the value, because + all our integral values are fully sign-extended, and when + casting pointers we can do anything we like. Is there any + way for us to actually know what GCC actually does with a + cast like this? */ + value->type = type; + break; + + case TYPE_CODE_INT: + gen_conversion (ax, value->type, type); + break; + + case TYPE_CODE_VOID: + /* We could pop the value, and rely on everyone else to check + the type and notice that this value doesn't occupy a stack + slot. But for now, leave the value on the stack, and + preserve the "value == stack element" assumption. */ + break; + + default: + error ("Casts to requested type are not yet implemented."); + } + + value->type = type; +} + + + +/* Generating bytecode from GDB expressions: arithmetic */ + +/* Scale the integer on the top of the stack by the size of the target + of the pointer type TYPE. */ +static void +gen_scale (ax, op, type) + struct agent_expr *ax; + enum agent_op op; + struct type *type; +{ + struct type *element = TYPE_TARGET_TYPE (type); + + if (element->length != 1) + { + ax_const_l (ax, element->length); + ax_simple (ax, op); + } +} + + +/* Generate code for an addition; non-trivial because we deal with + pointer arithmetic. We set VALUE to describe the result value; we + assume VALUE1 and VALUE2 describe the two operands, and that + they've undergone the usual binary conversions. Used by both + BINOP_ADD and BINOP_SUBSCRIPT. NAME is used in error messages. */ +static void +gen_add (ax, value, value1, value2, name) + struct agent_expr *ax; + struct axs_value *value, *value1, *value2; + char *name; +{ + /* Is it INT+PTR? */ + if (value1->type->code == TYPE_CODE_INT + && value2->type->code == TYPE_CODE_PTR) + { + /* Swap the values and proceed normally. */ + ax_simple (ax, aop_swap); + gen_scale (ax, aop_mul, value2->type); + ax_simple (ax, aop_add); + gen_extend (ax, value2->type); /* Catch overflow. */ + value->type = value2->type; + } + + /* Is it PTR+INT? */ + else if (value1->type->code == TYPE_CODE_PTR + && value2->type->code == TYPE_CODE_INT) + { + gen_scale (ax, aop_mul, value1->type); + ax_simple (ax, aop_add); + gen_extend (ax, value1->type); /* Catch overflow. */ + value->type = value1->type; + } + + /* Must be number + number; the usual binary conversions will have + brought them both to the same width. */ + else if (value1->type->code == TYPE_CODE_INT + && value2->type->code == TYPE_CODE_INT) + { + ax_simple (ax, aop_add); + gen_extend (ax, value1->type); /* Catch overflow. */ + value->type = value1->type; + } + + else + error ("Illegal combination of types in %s.", name); + + value->kind = axs_rvalue; +} + + +/* Generate code for an addition; non-trivial because we have to deal + with pointer arithmetic. We set VALUE to describe the result + value; we assume VALUE1 and VALUE2 describe the two operands, and + that they've undergone the usual binary conversions. */ +static void +gen_sub (ax, value, value1, value2) + struct agent_expr *ax; + struct axs_value *value, *value1, *value2; +{ + struct type *element; + + if (value1->type->code == TYPE_CODE_PTR) + { + /* Is it PTR - INT? */ + if (value2->type->code == TYPE_CODE_INT) + { + gen_scale (ax, aop_mul, value1->type); + ax_simple (ax, aop_sub); + gen_extend (ax, value1->type); /* Catch overflow. */ + value->type = value1->type; + } + + /* Is it PTR - PTR? Strictly speaking, the types ought to + match, but this is what the normal GDB expression evaluator + tests for. */ + else if (value2->type->code == TYPE_CODE_PTR + && (TYPE_LENGTH (TYPE_TARGET_TYPE (value1->type)) + == TYPE_LENGTH (TYPE_TARGET_TYPE (value2->type)))) + { + ax_simple (ax, aop_sub); + gen_scale (ax, aop_div_unsigned, value1->type); + value->type = builtin_type_long; /* FIXME --- should be ptrdiff_t */ + } + else + error ("\ +First argument of `-' is a pointer, but second argument is neither\n\ +an integer nor a pointer of the same type."); + } + + /* Must be number + number. */ + else if (value1->type->code == TYPE_CODE_INT + && value2->type->code == TYPE_CODE_INT) + { + ax_simple (ax, aop_sub); + gen_extend (ax, value1->type); /* Catch overflow. */ + value->type = value1->type; + } + + else + error ("Illegal combination of types in subtraction."); + + value->kind = axs_rvalue; +} + +/* Generate code for a binary operator that doesn't do pointer magic. + We set VALUE to describe the result value; we assume VALUE1 and + VALUE2 describe the two operands, and that they've undergone the + usual binary conversions. MAY_CARRY should be non-zero iff the + result needs to be extended. NAME is the English name of the + operator, used in error messages */ +static void +gen_binop (ax, value, value1, value2, op, op_unsigned, may_carry, name) + struct agent_expr *ax; + struct axs_value *value, *value1, *value2; + enum agent_op op, op_unsigned; + int may_carry; + char *name; +{ + /* We only handle INT op INT. */ + if ((value1->type->code != TYPE_CODE_INT) + || (value2->type->code != TYPE_CODE_INT)) + error ("Illegal combination of types in %s.", name); + + ax_simple (ax, + TYPE_UNSIGNED (value1->type) ? op_unsigned : op); + if (may_carry) + gen_extend (ax, value1->type); /* catch overflow */ + value->type = value1->type; + value->kind = axs_rvalue; +} + + +static void +gen_logical_not (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + if (TYPE_CODE (value->type) != TYPE_CODE_INT + && TYPE_CODE (value->type) != TYPE_CODE_PTR) + error ("Illegal type of operand to `!'."); + + gen_usual_unary (ax, value); + ax_simple (ax, aop_log_not); + value->type = builtin_type_int; +} + + +static void +gen_complement (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + if (TYPE_CODE (value->type) != TYPE_CODE_INT) + error ("Illegal type of operand to `~'."); + + gen_usual_unary (ax, value); + gen_integral_promotions (ax, value); + ax_simple (ax, aop_bit_not); + gen_extend (ax, value->type); +} + + + +/* Generating bytecode from GDB expressions: * & . -> @ sizeof */ + +/* Dereference the value on the top of the stack. */ +static void +gen_deref (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + /* The caller should check the type, because several operators use + this, and we don't know what error message to generate. */ + if (value->type->code != TYPE_CODE_PTR) + error ("GDB bug: ax-gdb.c (gen_deref): expected a pointer"); + + /* We've got an rvalue now, which is a pointer. We want to yield an + lvalue, whose address is exactly that pointer. So we don't + actually emit any code; we just change the type from "Pointer to + T" to "T", and mark the value as an lvalue in memory. Leave it + to the consumer to actually dereference it. */ + value->type = check_typedef (TYPE_TARGET_TYPE (value->type)); + value->kind = ((value->type->code == TYPE_CODE_FUNC) + ? axs_rvalue : axs_lvalue_memory); +} + + +/* Produce the address of the lvalue on the top of the stack. */ +static void +gen_address_of (ax, value) + struct agent_expr *ax; + struct axs_value *value; +{ + /* Special case for taking the address of a function. The ANSI + standard describes this as a special case, too, so this + arrangement is not without motivation. */ + if (value->type->code == TYPE_CODE_FUNC) + /* The value's already an rvalue on the stack, so we just need to + change the type. */ + value->type = lookup_pointer_type (value->type); + else + switch (value->kind) + { + case axs_rvalue: + error ("Operand of `&' is an rvalue, which has no address."); + + case axs_lvalue_register: + error ("Operand of `&' is in a register, and has no address."); + + case axs_lvalue_memory: + value->kind = axs_rvalue; + value->type = lookup_pointer_type (value->type); + break; + } +} + + +/* A lot of this stuff will have to change to support C++. But we're + not going to deal with that at the moment. */ + +/* Find the field in the structure type TYPE named NAME, and return + its index in TYPE's field array. */ +static int +find_field (type, name) + struct type *type; + char *name; +{ + int i; + + CHECK_TYPEDEF (type); + + /* Make sure this isn't C++. */ + if (TYPE_N_BASECLASSES (type) != 0) + error ("GDB bug: ax-gdb.c (find_field): derived classes supported"); + + for (i = 0; i < TYPE_NFIELDS (type); i++) + { + char *this_name = TYPE_FIELD_NAME (type, i); + + if (this_name && STREQ (name, this_name)) + return i; + + if (this_name[0] == '\0') + error ("GDB bug: ax-gdb.c (find_field): anonymous unions not supported"); + } + + error ("Couldn't find member named `%s' in struct/union `%s'", + name, type->tag_name); + + return 0; +} + + +/* Generate code to push the value of a bitfield of a structure whose + address is on the top of the stack. START and END give the + starting and one-past-ending *bit* numbers of the field within the + structure. */ +static void +gen_bitfield_ref (ax, value, type, start, end) + struct agent_expr *ax; + struct axs_value *value; + struct type *type; + int start, end; +{ + /* Note that ops[i] fetches 8 << i bits. */ + static enum agent_op ops[] + = { aop_ref8, aop_ref16, aop_ref32, aop_ref64 }; + static int num_ops = (sizeof (ops) / sizeof (ops[0])); + + /* We don't want to touch any byte that the bitfield doesn't + actually occupy; we shouldn't make any accesses we're not + explicitly permitted to. We rely here on the fact that the + bytecode `ref' operators work on unaligned addresses. + + It takes some fancy footwork to get the stack to work the way + we'd like. Say we're retrieving a bitfield that requires three + fetches. Initially, the stack just contains the address: + addr + For the first fetch, we duplicate the address + addr addr + then add the byte offset, do the fetch, and shift and mask as + needed, yielding a fragment of the value, properly aligned for + the final bitwise or: + addr frag1 + then we swap, and repeat the process: + frag1 addr --- address on top + frag1 addr addr --- duplicate it + frag1 addr frag2 --- get second fragment + frag1 frag2 addr --- swap again + frag1 frag2 frag3 --- get third fragment + Notice that, since the third fragment is the last one, we don't + bother duplicating the address this time. Now we have all the + fragments on the stack, and we can simply `or' them together, + yielding the final value of the bitfield. */ + + /* The first and one-after-last bits in the field, but rounded down + and up to byte boundaries. */ + int bound_start = (start / TARGET_CHAR_BIT) * TARGET_CHAR_BIT; + int bound_end = (((end + TARGET_CHAR_BIT - 1) + / TARGET_CHAR_BIT) + * TARGET_CHAR_BIT); + + /* current bit offset within the structure */ + int offset; + + /* The index in ops of the opcode we're considering. */ + int op; + + /* The number of fragments we generated in the process. Probably + equal to the number of `one' bits in bytesize, but who cares? */ + int fragment_count; + + /* Dereference any typedefs. */ + type = check_typedef (type); + + /* Can we fetch the number of bits requested at all? */ + if ((end - start) > ((1 << num_ops) * 8)) + error ("GDB bug: ax-gdb.c (gen_bitfield_ref): bitfield too wide"); + + /* Note that we know here that we only need to try each opcode once. + That may not be true on machines with weird byte sizes. */ + offset = bound_start; + fragment_count = 0; + for (op = num_ops - 1; op >= 0; op--) + { + /* number of bits that ops[op] would fetch */ + int op_size = 8 << op; + + /* The stack at this point, from bottom to top, contains zero or + more fragments, then the address. */ + + /* Does this fetch fit within the bitfield? */ + if (offset + op_size <= bound_end) + { + /* Is this the last fragment? */ + int last_frag = (offset + op_size == bound_end); + + if (! last_frag) + ax_simple (ax, aop_dup); /* keep a copy of the address */ + + /* Add the offset. */ + gen_offset (ax, offset / TARGET_CHAR_BIT); + + if (trace_kludge) + { + /* Record the area of memory we're about to fetch. */ + ax_trace_quick (ax, op_size / TARGET_CHAR_BIT); + } + + /* Perform the fetch. */ + ax_simple (ax, ops[op]); + + /* Shift the bits we have to their proper position. + gen_left_shift will generate right shifts when the operand + is negative. + + A big-endian field diagram to ponder: + byte 0 byte 1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 + +------++------++------++------++------++------++------++------+ + xxxxAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCxxxxxxxxxxx + ^ ^ ^ ^ + bit number 16 32 48 53 + These are bit numbers as supplied by GDB. Note that the + bit numbers run from right to left once you've fetched the + value! + + A little-endian field diagram to ponder: + byte 7 byte 6 byte 5 byte 4 byte 3 byte 2 byte 1 byte 0 + +------++------++------++------++------++------++------++------+ + xxxxxxxxxxxAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCxxxx + ^ ^ ^ ^ ^ + bit number 48 32 16 4 0 + + In both cases, the most significant end is on the left + (i.e. normal numeric writing order), which means that you + don't go crazy thinking about `left' and `right' shifts. + + We don't have to worry about masking yet: + - If they contain garbage off the least significant end, then we + must be looking at the low end of the field, and the right + shift will wipe them out. + - If they contain garbage off the most significant end, then we + must be looking at the most significant end of the word, and + the sign/zero extension will wipe them out. + - If we're in the interior of the word, then there is no garbage + on either end, because the ref operators zero-extend. */ + if (TARGET_BYTE_ORDER == BIG_ENDIAN) + gen_left_shift (ax, end - (offset + op_size)); + else + gen_left_shift (ax, offset - start); + + if (! last_frag) + /* Bring the copy of the address up to the top. */ + ax_simple (ax, aop_swap); + + offset += op_size; + fragment_count++; + } + } + + /* Generate enough bitwise `or' operations to combine all the + fragments we left on the stack. */ + while (fragment_count-- > 1) + ax_simple (ax, aop_bit_or); + + /* Sign- or zero-extend the value as appropriate. */ + ((TYPE_UNSIGNED (type) ? ax_zero_ext : ax_ext) (ax, end - start)); + + /* This is *not* an lvalue. Ugh. */ + value->kind = axs_rvalue; + value->type = type; +} + + +/* Generate code to reference the member named FIELD of a structure or + union. The top of the stack, as described by VALUE, should have + type (pointer to a)* struct/union. OPERATOR_NAME is the name of + the operator being compiled, and OPERAND_NAME is the kind of thing + it operates on; we use them in error messages. */ +static void +gen_struct_ref (ax, value, field, operator_name, operand_name) + struct agent_expr *ax; + struct axs_value *value; + char *field; + char *operator_name; + char *operand_name; +{ + struct type *type; + int i; + + /* Follow pointers until we reach a non-pointer. These aren't the C + semantics, but they're what the normal GDB evaluator does, so we + should at least be consistent. */ + while (value->type->code == TYPE_CODE_PTR) + { + gen_usual_unary (ax, value); + gen_deref (ax, value); + } + type = value->type; + + /* This must yield a structure or a union. */ + if (TYPE_CODE (type) != TYPE_CODE_STRUCT + && TYPE_CODE (type) != TYPE_CODE_UNION) + error ("The left operand of `%s' is not a %s.", + operator_name, operand_name); + + /* And it must be in memory; we don't deal with structure rvalues, + or structures living in registers. */ + if (value->kind != axs_lvalue_memory) + error ("Structure does not live in memory."); + + i = find_field (type, field); + + /* Is this a bitfield? */ + if (TYPE_FIELD_PACKED (type, i)) + gen_bitfield_ref (ax, value, TYPE_FIELD_TYPE (type, i), + TYPE_FIELD_BITPOS (type, i), + (TYPE_FIELD_BITPOS (type, i) + + TYPE_FIELD_BITSIZE (type, i))); + else + { + gen_offset (ax, TYPE_FIELD_BITPOS (type, i) / TARGET_CHAR_BIT); + value->kind = axs_lvalue_memory; + value->type = TYPE_FIELD_TYPE (type, i); + } +} + + +/* Generate code for GDB's magical `repeat' operator. + LVALUE @ INT creates an array INT elements long, and whose elements + have the same type as LVALUE, located in memory so that LVALUE is + its first element. For example, argv[0]@argc gives you the array + of command-line arguments. + + Unfortunately, because we have to know the types before we actually + have a value for the expression, we can't implement this perfectly + without changing the type system, having values that occupy two + stack slots, doing weird things with sizeof, etc. So we require + the right operand to be a constant expression. */ +static void +gen_repeat (pc, ax, value) + union exp_element **pc; + struct agent_expr *ax; + struct axs_value *value; +{ + struct axs_value value1; + /* We don't want to turn this into an rvalue, so no conversions + here. */ + gen_expr (pc, ax, &value1); + if (value1.kind != axs_lvalue_memory) + error ("Left operand of `@' must be an object in memory."); + + /* Evaluate the length; it had better be a constant. */ + { + struct value *v = const_expr (pc); + int length; + + if (! v) + error ("Right operand of `@' must be a constant, in agent expressions."); + if (v->type->code != TYPE_CODE_INT) + error ("Right operand of `@' must be an integer."); + length = value_as_long (v); + if (length <= 0) + error ("Right operand of `@' must be positive."); + + /* The top of the stack is already the address of the object, so + all we need to do is frob the type of the lvalue. */ + { + /* FIXME-type-allocation: need a way to free this type when we are + done with it. */ + struct type *range + = create_range_type (0, builtin_type_int, 0, length - 1); + struct type *array = create_array_type (0, value1.type, range); + + value->kind = axs_lvalue_memory; + value->type = array; + } + } +} + + +/* Emit code for the `sizeof' operator. + *PC should point at the start of the operand expression; we advance it + to the first instruction after the operand. */ +static void +gen_sizeof (pc, ax, value) + union exp_element **pc; + struct agent_expr *ax; + struct axs_value *value; +{ + /* We don't care about the value of the operand expression; we only + care about its type. However, in the current arrangement, the + only way to find an expression's type is to generate code for it. + So we generate code for the operand, and then throw it away, + replacing it with code that simply pushes its size. */ + int start = ax->len; + gen_expr (pc, ax, value); + + /* Throw away the code we just generated. */ + ax->len = start; + + ax_const_l (ax, TYPE_LENGTH (value->type)); + value->kind = axs_rvalue; + value->type = builtin_type_int; +} + + +/* Generating bytecode from GDB expressions: general recursive thingy */ + +/* A gen_expr function written by a Gen-X'er guy. + Append code for the subexpression of EXPR starting at *POS_P to AX. */ +static void +gen_expr (pc, ax, value) + union exp_element **pc; + struct agent_expr *ax; + struct axs_value *value; +{ + /* Used to hold the descriptions of operand expressions. */ + struct axs_value value1, value2; + enum exp_opcode op = (*pc)[0].opcode; + + /* If we're looking at a constant expression, just push its value. */ + { + struct value *v = maybe_const_expr (pc); + + if (v) + { + ax_const_l (ax, value_as_long (v)); + value->kind = axs_rvalue; + value->type = check_typedef (VALUE_TYPE (v)); + return; + } + } + + /* Otherwise, go ahead and generate code for it. */ + switch (op) + { + /* Binary arithmetic operators. */ + case BINOP_ADD: + case BINOP_SUB: + case BINOP_MUL: + case BINOP_DIV: + case BINOP_REM: + case BINOP_SUBSCRIPT: + case BINOP_BITWISE_AND: + case BINOP_BITWISE_IOR: + case BINOP_BITWISE_XOR: + (*pc)++; + gen_expr (pc, ax, &value1); + gen_usual_unary (ax, &value1); + gen_expr (pc, ax, &value2); + gen_usual_unary (ax, &value2); + gen_usual_arithmetic (ax, &value1, &value2); + switch (op) + { + case BINOP_ADD: + gen_add (ax, value, &value1, &value2, "addition"); + break; + case BINOP_SUB: + gen_sub (ax, value, &value1, &value2); + break; + case BINOP_MUL: + gen_binop (ax, value, &value1, &value2, + aop_mul, aop_mul, 1, "multiplication"); + break; + case BINOP_DIV: + gen_binop (ax, value, &value1, &value2, + aop_div_signed, aop_div_unsigned, 1, "division"); + break; + case BINOP_REM: + gen_binop (ax, value, &value1, &value2, + aop_rem_signed, aop_rem_unsigned, 1, "remainder"); + break; + case BINOP_SUBSCRIPT: + gen_add (ax, value, &value1, &value2, "array subscripting"); + if (TYPE_CODE (value->type) != TYPE_CODE_PTR) + error ("Illegal combination of types in array subscripting."); + gen_deref (ax, value); + break; + case BINOP_BITWISE_AND: + gen_binop (ax, value, &value1, &value2, + aop_bit_and, aop_bit_and, 0, "bitwise and"); + break; + + case BINOP_BITWISE_IOR: + gen_binop (ax, value, &value1, &value2, + aop_bit_or, aop_bit_or, 0, "bitwise or"); + break; + + case BINOP_BITWISE_XOR: + gen_binop (ax, value, &value1, &value2, + aop_bit_xor, aop_bit_xor, 0, "bitwise exclusive-or"); + break; + + default: + /* We should only list operators in the outer case statement + that we actually handle in the inner case statement. */ + error ("GDB bug: ax-gdb.c (gen_expr): op case sets don't match"); + } + break; + + /* Note that we need to be a little subtle about generating code + for comma. In C, we can do some optimizations here because + we know the left operand is only being evaluated for effect. + However, if the tracing kludge is in effect, then we always + need to evaluate the left hand side fully, so that all the + variables it mentions get traced. */ + case BINOP_COMMA: + (*pc)++; + gen_expr (pc, ax, &value1); + /* Don't just dispose of the left operand. We might be tracing, + in which case we want to emit code to trace it if it's an + lvalue. */ + gen_traced_pop (ax, &value1); + gen_expr (pc, ax, value); + /* It's the consumer's responsibility to trace the right operand. */ + break; + + case OP_LONG: /* some integer constant */ + { + struct type *type = (*pc)[1].type; + LONGEST k = (*pc)[2].longconst; + (*pc) += 4; + gen_int_literal (ax, value, k, type); + } + break; + + case OP_VAR_VALUE: + gen_var_ref (ax, value, (*pc)[2].symbol); + (*pc) += 4; + break; + + case OP_REGISTER: + { + int reg = (int) (*pc)[1].longconst; + (*pc) += 3; + value->kind = axs_lvalue_register; + value->u.reg = reg; + value->type = REGISTER_VIRTUAL_TYPE (reg); + } + break; + + case OP_INTERNALVAR: + error ("GDB agent expressions cannot use convenience variables."); + + /* Weirdo operator: see comments for gen_repeat for details. */ + case BINOP_REPEAT: + /* Note that gen_repeat handles its own argument evaluation. */ + (*pc)++; + gen_repeat (pc, ax, value); + break; + + case UNOP_CAST: + { + struct type *type = (*pc)[1].type; + (*pc) += 3; + gen_expr (pc, ax, value); + gen_cast (ax, value, type); + } + break; + + case UNOP_MEMVAL: + { + struct type *type = check_typedef ((*pc)[1].type); + (*pc) += 3; + gen_expr (pc, ax, value); + /* I'm not sure I understand UNOP_MEMVAL entirely. I think + it's just a hack for dealing with minsyms; you take some + integer constant, pretend it's the address of an lvalue of + the given type, and dereference it. */ + if (value->kind != axs_rvalue) + /* This would be weird. */ + error ("GDB bug: ax-gdb.c (gen_expr): OP_MEMVAL operand isn't an rvalue???"); + value->type = type; + value->kind = axs_lvalue_memory; + } + break; + + case UNOP_NEG: + (*pc)++; + /* -FOO is equivalent to 0 - FOO. */ + gen_int_literal (ax, &value1, (LONGEST) 0, builtin_type_int); + gen_usual_unary (ax, &value1); /* shouldn't do much */ + gen_expr (pc, ax, &value2); + gen_usual_unary (ax, &value2); + gen_usual_arithmetic (ax, &value1, &value2); + gen_sub (ax, value, &value1, &value2); + break; + + case UNOP_LOGICAL_NOT: + (*pc)++; + gen_expr (pc, ax, value); + gen_logical_not (ax, value); + break; + + case UNOP_COMPLEMENT: + (*pc)++; + gen_expr (pc, ax, value); + gen_complement (ax, value); + break; + + case UNOP_IND: + (*pc)++; + gen_expr (pc, ax, value); + gen_usual_unary (ax, value); + if (TYPE_CODE (value->type) != TYPE_CODE_PTR) + error ("Argument of unary `*' is not a pointer."); + gen_deref (ax, value); + break; + + case UNOP_ADDR: + (*pc)++; + gen_expr (pc, ax, value); + gen_address_of (ax, value); + break; + + case UNOP_SIZEOF: + (*pc)++; + /* Notice that gen_sizeof handles its own operand, unlike most + of the other unary operator functions. This is because we + have to throw away the code we generate. */ + gen_sizeof (pc, ax, value); + break; + + case STRUCTOP_STRUCT: + case STRUCTOP_PTR: + { + int length = (*pc)[1].longconst; + char *name = &(*pc)[2].string; + + (*pc) += 4 + BYTES_TO_EXP_ELEM (length + 1); + gen_expr (pc, ax, value); + if (op == STRUCTOP_STRUCT) + gen_struct_ref (ax, value, name, ".", "structure or union"); + else if (op == STRUCTOP_PTR) + gen_struct_ref (ax, value, name, "->", + "pointer to a structure or union"); + else + /* If this `if' chain doesn't handle it, then the case list + shouldn't mention it, and we shouldn't be here. */ + error ("GDB bug: ax-gdb.c (gen_expr): unhandled struct case"); + } + break; + + case OP_TYPE: + error ("Attempt to use a type name as an expression."); + + default: + error ("Unsupported operator in expression."); + } +} + + + +#if 0 /* not used */ +/* Generating bytecode from GDB expressions: driver */ + +/* Given a GDB expression EXPR, produce a string of agent bytecode + which computes its value. Return the agent expression, and set + *VALUE to describe its type, and whether it's an lvalue or rvalue. */ +struct agent_expr * +expr_to_agent (expr, value) + struct expression *expr; + struct axs_value *value; +{ + struct cleanup *old_chain = 0; + struct agent_expr *ax = new_agent_expr (); + union exp_element *pc; + + old_chain = make_cleanup ((make_cleanup_func) free_agent_expr, ax); + + pc = expr->elts; + trace_kludge = 0; + gen_expr (&pc, ax, value); + + /* We have successfully built the agent expr, so cancel the cleanup + request. If we add more cleanups that we always want done, this + will have to get more complicated. */ + discard_cleanups (old_chain); + return ax; +} + + +/* Given a GDB expression EXPR denoting an lvalue in memory, produce a + string of agent bytecode which will leave its address and size on + the top of stack. Return the agent expression. + + Not sure this function is useful at all. */ +struct agent_expr * +expr_to_address_and_size (expr) + struct expression *expr; +{ + struct axs_value value; + struct agent_expr *ax = expr_to_agent (expr, &value); + + /* Complain if the result is not a memory lvalue. */ + if (value.kind != axs_lvalue_memory) + { + free_agent_expr (ax); + error ("Expression does not denote an object in memory."); + } + + /* Push the object's size on the stack. */ + ax_const_l (ax, TYPE_LENGTH (value.type)); + + return ax; +} +#endif /* 0 */ + +/* Given a GDB expression EXPR, return bytecode to trace its value. + The result will use the `trace' and `trace_quick' bytecodes to + record the value of all memory touched by the expression. The + caller can then use the ax_reqs function to discover which + registers it relies upon. */ +struct agent_expr * +gen_trace_for_expr (scope, expr) + CORE_ADDR scope; + struct expression *expr; +{ + struct cleanup *old_chain = 0; + struct agent_expr *ax = new_agent_expr (scope); + union exp_element *pc; + struct axs_value value; + + old_chain = make_cleanup ((make_cleanup_func) free_agent_expr, ax); + + pc = expr->elts; + trace_kludge = 1; + gen_expr (&pc, ax, &value); + + /* Make sure we record the final object, and get rid of it. */ + gen_traced_pop (ax, &value); + + /* Oh, and terminate. */ + ax_simple (ax, aop_end); + + /* We have successfully built the agent expr, so cancel the cleanup + request. If we add more cleanups that we always want done, this + will have to get more complicated. */ + discard_cleanups (old_chain); + return ax; +} + + + +/* The "agent" command, for testing: compile and disassemble an expression. */ + +static void +print_axs_value (f, value) + GDB_FILE *f; + struct axs_value *value; +{ + switch (value->kind) + { + case axs_rvalue: + fputs_filtered ("rvalue", f); + break; + + case axs_lvalue_memory: + fputs_filtered ("memory lvalue", f); + break; + + case axs_lvalue_register: + fprintf_filtered (f, "register %d lvalue", value->u.reg); + break; + } + + fputs_filtered (" : ", f); + type_print (value->type, "", f, -1); +} + + +static void +agent_command (exp, from_tty) + char *exp; + int from_tty; +{ + struct cleanup *old_chain = 0; + struct expression *expr; + struct agent_expr *agent; + struct agent_reqs reqs; + struct frame_info *fi = get_current_frame (); /* need current scope */ + + /* We don't deal with overlay debugging at the moment. We need to + think more carefully about this. If you copy this code into + another command, change the error message; the user shouldn't + have to know anything about agent expressions. */ + if (overlay_debugging) + error ("GDB can't do agent expression translation with overlays."); + + if (exp == 0) + error_no_arg ("expression to translate"); + + expr = parse_expression (exp); + old_chain = make_cleanup ((make_cleanup_func) free_current_contents, &expr); + agent = gen_trace_for_expr (fi->pc, expr); + make_cleanup ((make_cleanup_func) free_agent_expr, agent); + ax_print (gdb_stdout, agent); + ax_reqs (agent, &reqs); + + do_cleanups (old_chain); + dont_repeat (); +} + + +/* Initialization code. */ + +void _initialize_ax_gdb PARAMS ((void)); +void +_initialize_ax_gdb () +{ + struct cmd_list_element *c; + + add_cmd ("agent", class_maintenance, agent_command, + "Translate an expression into remote agent bytecode.", + &maintenancelist); +} diff --git a/gdb/ax-gdb.h b/gdb/ax-gdb.h new file mode 100644 index 0000000000..bca70d64be --- /dev/null +++ b/gdb/ax-gdb.h @@ -0,0 +1,111 @@ +/* GDB-specific functions for operating on agent expressions + Copyright 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +/* $Id$ */ + +#ifndef AX_GDB_H +#define AX_GDB_H + + +/* Types and enums */ + +/* GDB stores expressions in the form of a flattened tree (struct + expression), so we just walk that tree and generate agent bytecodes + as we go along. + + GDB's normal evaluation uses struct value, which contains the + expression's value as well as its address or the register it came + from. The `+' operator uses the value, whereas the unary `&' + operator will use the address portion. The `=' operator will use + the address or register number of its left hand side. + + The issues are different when generating agent bytecode. Given a + variable reference expression, we should not necessarily generate + code to fetch its value, because the next operator may be `=' or + unary `&'. Instead, when we recurse on a subexpression, we + indicate whether we want that expression to produce an lvalue or an + rvalue. If we requested an lvalue, then the recursive call tells + us whether it generated code to compute an address on the stack, or + whether the lvalue lives in a register. + + The `axs' prefix here means `agent expression, static', because + this is all static analysis of the expression, i.e. analysis which + doesn't depend on the contents of memory and registers. */ + + +/* Different kinds of agent expression static values. */ +enum axs_lvalue_kind { + /* We generated code to compute the subexpression's value. + Constants and arithmetic operators yield this. */ + axs_rvalue, + + /* We generated code to yield the subexpression's value's address on + the top of the stack. If the caller needs an rvalue, it should + call require_rvalue to produce the rvalue from this address. */ + axs_lvalue_memory, + + /* We didn't generate any code, and the stack is undisturbed, + because the subexpression's value lives in a register; u.reg is + the register number. If the caller needs an rvalue, it should + call require_rvalue to produce the rvalue from this register + number. */ + axs_lvalue_register +}; + +/* Structure describing what we got from a subexpression. Think of + this as parallel to value.h's enum lval_type, except that we're + describing a value which will exist when the expression is + evaluated in the future, not a value we have in our hand. */ +struct axs_value { + enum axs_lvalue_kind kind; /* see above */ + + /* The type of the subexpression. Even if lvalue == axs_lvalue_memory, + this is the type of the value itself; the value on the stack is a + "pointer to" an object of this type. */ + struct type *type; + + union { + /* if kind == axs_lvalue_register, this is the register number */ + int reg; + } u; +}; + + +/* Translating GDB expressions into agent expressions. */ + +/* Given a GDB expression EXPR, translate it into the agent bytecode, + and return it. FLAGS are from enum expr_to_agent_flags. */ +extern struct agent_expr *expr_to_agent PARAMS ((struct expression *EXPR, + struct axs_value *VALUE)); + +/* Given a GDB expression EXPR denoting an lvalue in memory, produce a + string of agent bytecode which will leave its address and size on + the top of stack. Return the agent expression. */ +extern struct agent_expr *expr_to_address_and_size + PARAMS ((struct expression *EXPR)); + +/* Given a GDB expression EXPR, return bytecode to trace its value. + The result will use the `trace' and `trace_quick' bytecodes to + record the value of all memory touched by the expression, and leave + no values on the stack. The caller can then use the ax_reqs + function to discover which registers the expression uses. */ +extern struct agent_expr *gen_trace_for_expr PARAMS ((CORE_ADDR, + struct expression *)); + +#endif /* AX_GDB_H */ diff --git a/gdb/ax-general.c b/gdb/ax-general.c new file mode 100644 index 0000000000..76e9bb462d --- /dev/null +++ b/gdb/ax-general.c @@ -0,0 +1,552 @@ +/* Functions for manipulating expressions designed to be executed on the agent + Copyright 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +/* $Id$ */ + +/* Despite what the above comment says about this file being part of + GDB, we would like to keep these functions free of GDB + dependencies, since we want to be able to use them in contexts + outside of GDB (test suites, the stub, etc.) */ + +#include "defs.h" +#include "ax.h" + + +/* Functions for building expressions. */ + +/* Allocate a new, empty agent expression. */ +struct agent_expr * +new_agent_expr (scope) + CORE_ADDR scope; +{ + struct agent_expr *x = xmalloc (sizeof (*x)); + x->len = 0; + x->size = 1; /* Change this to a larger value once + reallocation code is tested. */ + x->buf = xmalloc (x->size); + x->scope = scope; + + return x; +} + +/* Free a agent expression. */ +void +free_agent_expr (x) + struct agent_expr *x; +{ + free (x->buf); + free (x); +} + + +/* Make sure that X has room for at least N more bytes. This doesn't + affect the length, just the allocated size. */ +static void +grow_expr (x, n) + struct agent_expr *x; + int n; +{ + if (x->len + n > x->size) + { + x->size *= 2; + if (x->size < x->len + n) + x->size = x->len + n + 10; + x->buf = xrealloc (x->buf, x->size); + } +} + + +/* Append the low N bytes of VAL as an N-byte integer to the + expression X, in big-endian order. */ +static void +append_const (x, val, n) + struct agent_expr *x; + LONGEST val; + int n; +{ + int i; + + grow_expr (x, n); + for (i = n - 1; i >= 0; i--) + { + x->buf[x->len + i] = val & 0xff; + val >>= 8; + } + x->len += n; +} + + +/* Extract an N-byte big-endian unsigned integer from expression X at + offset O. */ +static LONGEST +read_const (x, o, n) + struct agent_expr *x; + int o, n; +{ + int i; + LONGEST accum = 0; + + /* Make sure we're not reading off the end of the expression. */ + if (o + n > x->len) + error ("GDB bug: ax-general.c (read_const): incomplete constant"); + + for (i = 0; i < n; i++) + accum = (accum << 8) | x->buf[o + i]; + + return accum; +} + + +/* Append a simple operator OP to EXPR. */ +void +ax_simple (x, op) + struct agent_expr *x; + enum agent_op op; +{ + grow_expr (x, 1); + x->buf[x->len++] = op; +} + + +/* Append a sign-extension or zero-extension instruction to EXPR, to + extend an N-bit value. */ +static void +generic_ext (x, op, n) + struct agent_expr *x; + enum agent_op op; + int n; +{ + /* N must fit in a byte. */ + if (n < 0 || n > 255) + error ("GDB bug: ax-general.c (generic_ext): bit count out of range"); + /* That had better be enough range. */ + if (sizeof (LONGEST) * 8 > 255) + error ("GDB bug: ax-general.c (generic_ext): opcode has inadequate range"); + + grow_expr (x, 2); + x->buf[x->len++] = op; + x->buf[x->len++] = n; +} + + +/* Append a sign-extension instruction to EXPR, to extend an N-bit value. */ +void +ax_ext (x, n) + struct agent_expr *x; + int n; +{ + generic_ext (x, aop_ext, n); +} + + +/* Append a zero-extension instruction to EXPR, to extend an N-bit value. */ +void +ax_zero_ext (x, n) + struct agent_expr *x; + int n; +{ + generic_ext (x, aop_zero_ext, n); +} + + +/* Append a trace_quick instruction to EXPR, to record N bytes. */ +void +ax_trace_quick (x, n) + struct agent_expr *x; + int n; +{ + /* N must fit in a byte. */ + if (n < 0 || n > 255) + error ("GDB bug: ax-general.c (ax_trace_quick): size out of range for trace_quick"); + + grow_expr (x, 2); + x->buf[x->len++] = aop_trace_quick; + x->buf[x->len++] = n; +} + + +/* Append a goto op to EXPR. OP is the actual op (must be aop_goto or + aop_if_goto). We assume we don't know the target offset yet, + because it's probably a forward branch, so we leave space in EXPR + for the target, and return the offset in EXPR of that space, so we + can backpatch it once we do know the target offset. Use ax_label + to do the backpatching. */ +int ax_goto (x, op) + struct agent_expr *x; + enum agent_op op; +{ + grow_expr (x, 3); + x->buf[x->len + 0] = op; + x->buf[x->len + 1] = 0xff; + x->buf[x->len + 2] = 0xff; + x->len += 3; + return x->len - 2; +} + +/* Suppose a given call to ax_goto returns some value PATCH. When you + know the offset TARGET that goto should jump to, call + ax_label (EXPR, PATCH, TARGET) + to patch TARGET into the ax_goto instruction. */ +void +ax_label (x, patch, target) + struct agent_expr *x; + int patch; + int target; +{ + /* Make sure the value is in range. Don't accept 0xffff as an + offset; that's our magic sentinel value for unpatched branches. */ + if (target < 0 || target >= 0xffff) + error ("GDB bug: ax-general.c (ax_label): label target out of range"); + + x->buf[patch] = (target >> 8) & 0xff; + x->buf[patch + 1] = target & 0xff; +} + + +/* Assemble code to push a constant on the stack. */ +void +ax_const_l (x, l) + struct agent_expr *x; + LONGEST l; +{ + static enum agent_op ops[] + = { aop_const8, aop_const16, aop_const32, aop_const64 }; + int size; + int op; + + /* How big is the number? 'op' keeps track of which opcode to use. + Notice that we don't really care whether the original number was + signed or unsigned; we always reproduce the value exactly, and + use the shortest representation. */ + for (op = 0, size = 8; size < 64; size *= 2, op++) + if (-((LONGEST) 1 << size) <= l && l < ((LONGEST) 1 << size)) + break; + + /* Emit the right opcode... */ + ax_simple (x, ops[op]); + + /* Emit the low SIZE bytes as an unsigned number. We know that + sign-extending this will yield l. */ + append_const (x, l, size / 8); + + /* Now, if it was negative, and not full-sized, sign-extend it. */ + if (l < 0 && size < 64) + ax_ext (x, size); +} + + +void +ax_const_d (x, d) + struct agent_expr *x; + LONGEST d; +{ + /* FIXME: floating-point support not present yet. */ + error ("GDB bug: ax-general.c (ax_const_d): floating point not supported yet"); +} + + +/* Assemble code to push the value of register number REG on the + stack. */ +void ax_reg (x, reg) + struct agent_expr *x; + int reg; +{ + /* Make sure the register number is in range. */ + if (reg < 0 || reg > 0xffff) + error ("GDB bug: ax-general.c (ax_reg): register number out of range"); + grow_expr (x, 3); + x->buf[x->len ] = aop_reg; + x->buf[x->len + 1] = (reg >> 8) & 0xff; + x->buf[x->len + 2] = (reg ) & 0xff; + x->len += 3; +} + + + +/* Functions for disassembling agent expressions, and otherwise + debugging the expression compiler. */ + +struct aop_map aop_map[] = { + { 0, 0, 0, 0, 0 }, + { "float", 0, 0, 0, 0 }, /* 0x01 */ + { "add", 0, 0, 2, 1 }, /* 0x02 */ + { "sub", 0, 0, 2, 1 }, /* 0x03 */ + { "mul", 0, 0, 2, 1 }, /* 0x04 */ + { "div_signed", 0, 0, 2, 1 }, /* 0x05 */ + { "div_unsigned", 0, 0, 2, 1 }, /* 0x06 */ + { "rem_signed", 0, 0, 2, 1 }, /* 0x07 */ + { "rem_unsigned", 0, 0, 2, 1 }, /* 0x08 */ + { "lsh", 0, 0, 2, 1 }, /* 0x09 */ + { "rsh_signed", 0, 0, 2, 1 }, /* 0x0a */ + { "rsh_unsigned", 0, 0, 2, 1 }, /* 0x0b */ + { "trace", 0, 0, 2, 0 }, /* 0x0c */ + { "trace_quick", 1, 0, 1, 1 }, /* 0x0d */ + { "log_not", 0, 0, 1, 1 }, /* 0x0e */ + { "bit_and", 0, 0, 2, 1 }, /* 0x0f */ + { "bit_or", 0, 0, 2, 1 }, /* 0x10 */ + { "bit_xor", 0, 0, 2, 1 }, /* 0x11 */ + { "bit_not", 0, 0, 1, 1 }, /* 0x12 */ + { "equal", 0, 0, 2, 1 }, /* 0x13 */ + { "less_signed", 0, 0, 2, 1 }, /* 0x14 */ + { "less_unsigned", 0, 0, 2, 1 }, /* 0x15 */ + { "ext", 1, 0, 1, 1 }, /* 0x16 */ + { "ref8", 0, 8, 1, 1 }, /* 0x17 */ + { "ref16", 0, 16, 1, 1 }, /* 0x18 */ + { "ref32", 0, 32, 1, 1 }, /* 0x19 */ + { "ref64", 0, 64, 1, 1 }, /* 0x1a */ + { "ref_float", 0, 0, 1, 1 }, /* 0x1b */ + { "ref_double", 0, 0, 1, 1 }, /* 0x1c */ + { "ref_long_double", 0, 0, 1, 1 }, /* 0x1d */ + { "l_to_d", 0, 0, 1, 1 }, /* 0x1e */ + { "d_to_l", 0, 0, 1, 1 }, /* 0x1f */ + { "if_goto", 2, 0, 1, 0 }, /* 0x20 */ + { "goto", 2, 0, 0, 0 }, /* 0x21 */ + { "const8", 1, 8, 0, 1 }, /* 0x22 */ + { "const16", 2, 16, 0, 1 }, /* 0x23 */ + { "const32", 4, 32, 0, 1 }, /* 0x24 */ + { "const64", 8, 64, 0, 1 }, /* 0x25 */ + { "reg", 2, 0, 0, 1 }, /* 0x26 */ + { "end", 0, 0, 0, 0 }, /* 0x27 */ + { "dup", 0, 0, 1, 2 }, /* 0x28 */ + { "pop", 0, 0, 1, 0 }, /* 0x29 */ + { "zero_ext", 1, 0, 1, 1 }, /* 0x2a */ + { "swap", 0, 0, 2, 2 }, /* 0x2b */ + { 0, 0, 0, 0, 0 }, /* 0x2c */ + { 0, 0, 0, 0, 0 }, /* 0x2d */ + { 0, 0, 0, 0, 0 }, /* 0x2e */ + { 0, 0, 0, 0, 0 }, /* 0x2f */ + { "trace16", 2, 0, 1, 1 }, /* 0x30 */ +}; + + +/* Disassemble the expression EXPR, writing to F. */ +void +ax_print (f, x) + GDB_FILE *f; + struct agent_expr *x; +{ + int i; + int is_float = 0; + + /* Check the size of the name array against the number of entries in + the enum, to catch additions that people didn't sync. */ + if ((sizeof (aop_map) / sizeof (aop_map[0])) + != aop_last) + error ("GDB bug: ax-general.c (ax_print): opcode map out of sync"); + + for (i = 0; i < x->len; ) + { + enum agent_op op = x->buf[i]; + + if (op >= (sizeof (aop_map) / sizeof (aop_map[0])) + || ! aop_map[op].name) + { + fprintf_filtered (f, "%3d \n", i, op); + i++; + continue; + } + if (i + 1 + aop_map[op].op_size > x->len) + { + fprintf_filtered (f, "%3d \n", + i, aop_map[op].name); + break; + } + + fprintf_filtered (f, "%3d %s", i, aop_map[op].name); + if (aop_map[op].op_size > 0) + { + fputs_filtered (" ", f); + + print_longest (f, 'd', 0, + read_const (x, i + 1, aop_map[op].op_size)); + } + fprintf_filtered (f, "\n"); + i += 1 + aop_map[op].op_size; + + is_float = (op == aop_float); + } +} + + +/* Given an agent expression AX, fill in an agent_reqs structure REQS + describing it. */ +void +ax_reqs (ax, reqs) + struct agent_expr *ax; + struct agent_reqs *reqs; +{ + int i; + int height; + + /* Bit vector for registers used. */ + int reg_mask_len = 1; + unsigned char *reg_mask = xmalloc (reg_mask_len * sizeof (reg_mask[0])); + + /* Jump target table. targets[i] is non-zero iff there is a jump to + offset i. */ + char *targets = (char *) alloca (ax->len * sizeof (targets[0])); + + /* Instruction boundary table. boundary[i] is non-zero iff an + instruction starts at offset i. */ + char *boundary = (char *) alloca (ax->len * sizeof (boundary[0])); + + /* Stack height record. iff either targets[i] or boundary[i] is + non-zero, heights[i] is the height the stack should have before + executing the bytecode at that point. */ + int *heights = (int *) alloca (ax->len * sizeof (heights[0])); + + /* Pointer to a description of the present op. */ + struct aop_map *op; + + memset (reg_mask, 0, reg_mask_len * sizeof (reg_mask[0])); + memset (targets, 0, ax->len * sizeof (targets[0])); + memset (boundary, 0, ax->len * sizeof (boundary[0])); + + reqs->max_height = reqs->min_height = height = 0; + reqs->flaw = agent_flaw_none; + reqs->max_data_size = 0; + + for (i = 0; i < ax->len; i += 1 + op->op_size) + { + if (ax->buf[i] > (sizeof (aop_map) / sizeof (aop_map[0]))) + { + reqs->flaw = agent_flaw_bad_instruction; + free (reg_mask); + return; + } + + op = &aop_map[ax->buf[i]]; + + if (! op->name) + { + reqs->flaw = agent_flaw_bad_instruction; + free (reg_mask); + return; + } + + if (i + 1 + op->op_size > ax->len) + { + reqs->flaw = agent_flaw_incomplete_instruction; + free (reg_mask); + return; + } + + /* If this instruction is a jump target, does the current stack + height match the stack height at the jump source? */ + if (targets[i] && (heights[i] != height)) + { + reqs->flaw = agent_flaw_height_mismatch; + free (reg_mask); + return; + } + + boundary[i] = 1; + heights[i] = height; + + height -= op->consumed; + if (height < reqs->min_height) + reqs->min_height = height; + height += op->produced; + if (height > reqs->max_height) + reqs->max_height = height; + + if (op->data_size > reqs->max_data_size) + reqs->max_data_size = op->data_size; + + /* For jump instructions, check that the target is a valid + offset. If it is, record the fact that that location is a + jump target, and record the height we expect there. */ + if (aop_goto == op - aop_map + || aop_if_goto == op - aop_map) + { + int target = read_const (ax, i + 1, 2); + if (target < 0 || target >= ax->len) + { + reqs->flaw = agent_flaw_bad_jump; + free (reg_mask); + return; + } + /* Have we already found other jumps to the same location? */ + else if (targets[target]) + { + if (heights[i] != height) + { + reqs->flaw = agent_flaw_height_mismatch; + free (reg_mask); + return; + } + } + else + { + targets[target] = 1; + heights[target] = height; + } + } + + /* For unconditional jumps with a successor, check that the + successor is a target, and pick up its stack height. */ + if (aop_goto == op - aop_map + && i + 3 < ax->len) + { + if (! targets[i + 3]) + { + reqs->flaw = agent_flaw_hole; + free (reg_mask); + return; + } + + height = heights[i + 3]; + } + + /* For reg instructions, record the register in the bit mask. */ + if (aop_reg == op - aop_map) + { + int reg = read_const (ax, i + 1, 2); + int byte = reg / 8; + + /* Grow the bit mask if necessary. */ + if (byte >= reg_mask_len) + { + /* It's not appropriate to double here. This isn't a + string buffer. */ + int new_len = byte + 1; + reg_mask = xrealloc (reg_mask, + new_len * sizeof (reg_mask[0])); + memset (reg_mask + reg_mask_len, 0, + (new_len - reg_mask_len) * sizeof (reg_mask[0])); + reg_mask_len = new_len; + } + + reg_mask[byte] |= 1 << (reg % 8); + } + } + + /* Check that all the targets are on boundaries. */ + for (i = 0; i < ax->len; i++) + if (targets[i] && !boundary[i]) + { + reqs->flaw = agent_flaw_bad_jump; + free (reg_mask); + return; + } + + reqs->final_height = height; + reqs->reg_mask_len = reg_mask_len; + reqs->reg_mask = reg_mask; +} diff --git a/gdb/ax.h b/gdb/ax.h new file mode 100644 index 0000000000..2ee0f0bdb4 --- /dev/null +++ b/gdb/ax.h @@ -0,0 +1,285 @@ +/* Definitions for expressions designed to be executed on the agent + Copyright 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +/* $Id$ */ + +#ifndef AGENTEXPR_H +#define AGENTEXPR_H + +/* It's sometimes useful to be able to debug programs that you can't + really stop for more than a fraction of a second. To this end, the + user can specify a tracepoint (like a breakpoint, but you don't + stop at it), and specify a bunch of expressions to record the + values of when that tracepoint is reached. As the program runs, + GDB collects the values. At any point (possibly while values are + still being collected), the user can display the collected values. + + This is used with remote debugging; we don't really support it on + native configurations. + + This means that expressions are being evaluated by the remote agent, + which doesn't have any access to the symbol table information, and + needs to be small and simple. + + The agent_expr routines and datatypes are a bytecode language + designed to be executed by the agent. Agent expressions work in + terms of fixed-width values, operators, memory references, and + register references. You can evaluate a agent expression just given + a bunch of memory and register values to sniff at; you don't need + any symbolic information like variable names, types, etc. + + GDB translates source expressions, whose meaning depends on + symbolic information, into agent bytecode expressions, whose meaning + is independent of symbolic information. This means the agent can + evaluate them on the fly without reference to data only available + to the host GDB. */ + + +/* Agent expression data structures. */ + +/* The type of an element of the agent expression stack. + The bytecode operation indicates which element we should access; + the value itself has no typing information. GDB generates all + bytecode streams, so we don't have to worry about type errors. */ + +union agent_val { + LONGEST l; + DOUBLEST d; +}; + +/* A buffer containing a agent expression. */ +struct agent_expr { + unsigned char *buf; + int len; /* number of characters used */ + int size; /* allocated size */ + CORE_ADDR scope; +}; + + + + +/* The actual values of the various bytecode operations. + + Other independent implementations of the agent bytecode engine will + rely on the exact values of these enums, and may not be recompiled + when we change this table. The numeric values should remain fixed + whenever possible. Thus, we assign them values explicitly here (to + allow gaps to form safely), and the disassembly table in + agentexpr.h behaves like an opcode map. If you want to see them + grouped logically, see doc/agentexpr.texi. */ + +enum agent_op { + aop_float = 0x01, + aop_add = 0x02, + aop_sub = 0x03, + aop_mul = 0x04, + aop_div_signed = 0x05, + aop_div_unsigned = 0x06, + aop_rem_signed = 0x07, + aop_rem_unsigned = 0x08, + aop_lsh = 0x09, + aop_rsh_signed = 0x0a, + aop_rsh_unsigned = 0x0b, + aop_trace = 0x0c, + aop_trace_quick = 0x0d, + aop_log_not = 0x0e, + aop_bit_and = 0x0f, + aop_bit_or = 0x10, + aop_bit_xor = 0x11, + aop_bit_not = 0x12, + aop_equal = 0x13, + aop_less_signed = 0x14, + aop_less_unsigned = 0x15, + aop_ext = 0x16, + aop_ref8 = 0x17, + aop_ref16 = 0x18, + aop_ref32 = 0x19, + aop_ref64 = 0x1a, + aop_ref_float = 0x1b, + aop_ref_double = 0x1c, + aop_ref_long_double = 0x1d, + aop_l_to_d = 0x1e, + aop_d_to_l = 0x1f, + aop_if_goto = 0x20, + aop_goto = 0x21, + aop_const8 = 0x22, + aop_const16 = 0x23, + aop_const32 = 0x24, + aop_const64 = 0x25, + aop_reg = 0x26, + aop_end = 0x27, + aop_dup = 0x28, + aop_pop = 0x29, + aop_zero_ext = 0x2a, + aop_swap = 0x2b, + aop_trace16 = 0x30, + aop_last +}; + + + +/* Functions for building expressions. */ + +/* Allocate a new, empty agent expression. */ +extern struct agent_expr *new_agent_expr PARAMS ((CORE_ADDR)); + +/* Free a agent expression. */ +extern void free_agent_expr PARAMS ((struct agent_expr *)); + +/* Append a simple operator OP to EXPR. */ +extern void ax_simple PARAMS ((struct agent_expr *EXPR, enum agent_op OP)); + +/* Append the floating-point prefix, for the next bytecode. */ +#define ax_float(EXPR) (ax_simple ((EXPR), aop_float)) + +/* Append a sign-extension instruction to EXPR, to extend an N-bit value. */ +extern void ax_ext PARAMS ((struct agent_expr *EXPR, int N)); + +/* Append a zero-extension instruction to EXPR, to extend an N-bit value. */ +extern void ax_zero_ext PARAMS ((struct agent_expr *EXPR, int N)); + +/* Append a trace_quick instruction to EXPR, to record N bytes. */ +extern void ax_trace_quick PARAMS ((struct agent_expr *EXPR, int N)); + +/* Append a goto op to EXPR. OP is the actual op (must be aop_goto or + aop_if_goto). We assume we don't know the target offset yet, + because it's probably a forward branch, so we leave space in EXPR + for the target, and return the offset in EXPR of that space, so we + can backpatch it once we do know the target offset. Use ax_label + to do the backpatching. */ +extern int ax_goto PARAMS ((struct agent_expr *EXPR, enum agent_op OP)); + +/* Suppose a given call to ax_goto returns some value PATCH. When you + know the offset TARGET that goto should jump to, call + ax_label (EXPR, PATCH, TARGET) + to patch TARGET into the ax_goto instruction. */ +extern void ax_label PARAMS ((struct agent_expr *EXPR, int patch, int target)); + +/* Assemble code to push a constant on the stack. */ +extern void ax_const_l PARAMS ((struct agent_expr *EXPR, LONGEST l)); +extern void ax_const_d PARAMS ((struct agent_expr *EXPR, LONGEST d)); + +/* Assemble code to push the value of register number REG on the + stack. */ +extern void ax_reg PARAMS ((struct agent_expr *EXPR, int REG)); + + +/* Functions for printing out expressions, and otherwise debugging + things. */ + +/* Disassemble the expression EXPR, writing to F. */ +extern void ax_print PARAMS ((GDB_FILE *f, struct agent_expr *EXPR)); + +/* An entry in the opcode map. */ +struct aop_map { + + /* The name of the opcode. Null means that this entry is not a + valid opcode --- a hole in the opcode space. */ + char *name; + + /* All opcodes take no operands from the bytecode stream, or take + unsigned integers of various sizes. If this is a positive number + n, then the opcode is followed by an n-byte operand, which should + be printed as an unsigned integer. If this is zero, then the + opcode takes no operands from the bytecode stream. + + If we get more complicated opcodes in the future, don't add other + magic values of this; that's a crock. Add an `enum encoding' + field to this, or something like that. */ + int op_size; + + /* The size of the data operated upon, in bits, for bytecodes that + care about that (ref and const). Zero for all others. */ + int data_size; + + /* Number of stack elements consumed, and number produced. */ + int consumed, produced; +}; + +/* Map of the bytecodes, indexed by bytecode number. */ +extern struct aop_map aop_map[]; + +/* Different kinds of flaws an agent expression might have, as + detected by agent_reqs. */ +enum agent_flaws { + agent_flaw_none = 0, /* code is good */ + + /* There is an invalid instruction in the stream. */ + agent_flaw_bad_instruction, + + /* There is an incomplete instruction at the end of the expression. */ + agent_flaw_incomplete_instruction, + + /* agent_reqs was unable to prove that every jump target is to a + valid offset. Valid offsets are within the bounds of the + expression, and to a valid instruction boundary. */ + agent_flaw_bad_jump, + + /* agent_reqs was unable to prove to its satisfaction that, for each + jump target location, the stack will have the same height whether + that location is reached via a jump or by straight execution. */ + agent_flaw_height_mismatch, + + /* agent_reqs was unable to prove that every instruction following + an unconditional jump was the target of some other jump. */ + agent_flaw_hole +}; + +/* Structure describing the requirements of a bytecode expression. */ +struct agent_reqs { + + /* If the following is not equal to agent_flaw_none, the rest of the + information in this structure is suspect. */ + enum agent_flaws flaw; + + /* Number of elements left on stack at end; may be negative if expr + only consumes elements. */ + int final_height; + + /* Maximum and minimum stack height, relative to initial height. */ + int max_height, min_height; + + /* Largest `ref' or `const' opcode used, in bits. Zero means the + expression has no such instructions. */ + int max_data_size; + + /* Bit vector of registers used. Register R is used iff + + reg_mask[R / 8] & (1 << (R % 8)) + + is non-zero. Note! You may not assume that this bitmask is long + enough to hold bits for all the registers of the machine; the + agent expression code has no idea how many registers the machine + has. However, the bitmask is reg_mask_len bytes long, so the + valid register numbers run from 0 to reg_mask_len * 8 - 1. + + We're assuming eight-bit bytes. So sue me. + + The caller should free reg_list when done. */ + int reg_mask_len; + unsigned char *reg_mask; +}; + + +/* Given an agent expression AX, fill in an agent_reqs structure REQS + describing it. */ +extern void ax_reqs PARAMS ((struct agent_expr *ax, + struct agent_reqs *reqs)); + +#endif /* AGENTEXPR_H */ diff --git a/gdb/bcache.c b/gdb/bcache.c new file mode 100644 index 0000000000..d28515b846 --- /dev/null +++ b/gdb/bcache.c @@ -0,0 +1,219 @@ +/* Implement a cached obstack. + Written by Fred Fish (fnf@cygnus.com) + Copyright 1995, 1998 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "obstack.h" +#include "bcache.h" +#include "gdb_string.h" /* For memcpy declaration */ + +/* Prototypes for local functions. */ + +static unsigned int hash PARAMS ((void *, int)); + +static void *lookup_cache PARAMS ((void *, int, int, struct bcache *)); + +/* FIXME: Incredibly simplistic hash generator. Probably way too expensive + (consider long strings) and unlikely to have good distribution across hash + values for typical input. */ + +static unsigned int +hash (bytes, count) + void *bytes; + int count; +{ + unsigned int len; + unsigned long hashval; + unsigned int c; + const unsigned char *data = bytes; + + hashval = 0; + len = 0; + while (count-- > 0) + { + c = *data++; + hashval += c + (c << 17); + hashval ^= hashval >> 2; + ++len; + } + hashval += len + (len << 17); + hashval ^= hashval >> 2; + return (hashval % BCACHE_HASHSIZE); +} + +static void * +lookup_cache (bytes, count, hashval, bcachep) + void *bytes; + int count; + int hashval; + struct bcache *bcachep; +{ + void *location = NULL; + struct hashlink **hashtablep; + struct hashlink *linkp; + + hashtablep = bcachep -> indextable[count]; + if (hashtablep != NULL) + { + linkp = hashtablep[hashval]; + while (linkp != NULL) + { + if (memcmp (BCACHE_DATA (linkp), bytes, count) == 0) + { + location = BCACHE_DATA (linkp); + break; + } + linkp = linkp -> next; + } + } + return (location); +} + +void * +bcache (bytes, count, bcachep) + void *bytes; + int count; + struct bcache *bcachep; +{ + int hashval; + void *location; + struct hashlink *newlink; + struct hashlink **linkpp; + struct hashlink ***hashtablepp; + + if (count >= BCACHE_MAXLENGTH) + { + /* Rare enough to just stash unique copies */ + location = (void *) obstack_alloc (&bcachep->cache, count); + bcachep -> cache_bytes += count; + memcpy (location, bytes, count); + bcachep -> bcache_overflows++; + } + else + { + hashval = hash (bytes, count); + location = lookup_cache (bytes, count, hashval, bcachep); + if (location != NULL) + { + bcachep -> cache_savings += count; + bcachep -> cache_hits++; + } + else + { + bcachep -> cache_misses++; + hashtablepp = &bcachep -> indextable[count]; + if (*hashtablepp == NULL) + { + *hashtablepp = (struct hashlink **) + obstack_alloc (&bcachep->cache, BCACHE_HASHSIZE * sizeof (struct hashlink *)); + bcachep -> cache_bytes += BCACHE_HASHSIZE * sizeof (struct hashlink *); + memset (*hashtablepp, 0, BCACHE_HASHSIZE * sizeof (struct hashlink *)); + } + linkpp = &(*hashtablepp)[hashval]; + newlink = (struct hashlink *) + obstack_alloc (&bcachep->cache, BCACHE_DATA_ALIGNMENT + count); + bcachep -> cache_bytes += BCACHE_DATA_ALIGNMENT + count; + memcpy (BCACHE_DATA (newlink), bytes, count); + newlink -> next = *linkpp; + *linkpp = newlink; + location = BCACHE_DATA (newlink); + } + } + return (location); +} + +#if MAINTENANCE_CMDS + +void +print_bcache_statistics (bcachep, id) + struct bcache *bcachep; + char *id; +{ + struct hashlink **hashtablep; + struct hashlink *linkp; + int tidx, tcount, hidx, hcount, lcount, lmax, temp, lmaxt, lmaxh; + + for (lmax = lcount = tcount = hcount = tidx = 0; tidx < BCACHE_MAXLENGTH; tidx++) + { + hashtablep = bcachep -> indextable[tidx]; + if (hashtablep != NULL) + { + tcount++; + for (hidx = 0; hidx < BCACHE_HASHSIZE; hidx++) + { + linkp = hashtablep[hidx]; + if (linkp != NULL) + { + hcount++; + for (temp = 0; linkp != NULL; linkp = linkp -> next) + { + lcount++; + temp++; + } + if (temp > lmax) + { + lmax = temp; + lmaxt = tidx; + lmaxh = hidx; + } + } + } + } + } + printf_filtered (" Cached '%s' statistics:\n", id); + printf_filtered (" Cache hits: %d\n", bcachep -> cache_hits); + printf_filtered (" Cache misses: %d\n", bcachep -> cache_misses); + printf_filtered (" Cache hit ratio: "); + if (bcachep -> cache_hits + bcachep -> cache_misses > 0) + { + printf_filtered ("%d%%\n", ((bcachep -> cache_hits) * 100) / + (bcachep -> cache_hits + bcachep -> cache_misses)); + } + else + { + printf_filtered ("(not applicable)\n"); + } + printf_filtered (" Space used for caching: %d\n", bcachep -> cache_bytes); + printf_filtered (" Space saved by cache hits: %d\n", bcachep -> cache_savings); + printf_filtered (" Number of bcache overflows: %d\n", bcachep -> bcache_overflows); + printf_filtered (" Number of index buckets used: %d\n", tcount); + printf_filtered (" Number of hash table buckets used: %d\n", hcount); + printf_filtered (" Number of chained items: %d\n", lcount); + printf_filtered (" Average hash table population: "); + if (tcount > 0) + { + printf_filtered ("%d%%\n", (hcount * 100) / (tcount * BCACHE_HASHSIZE)); + } + else + { + printf_filtered ("(not applicable)\n"); + } + printf_filtered (" Average chain length "); + if (hcount > 0) + { + printf_filtered ("%d\n", lcount / hcount); + } + else + { + printf_filtered ("(not applicable)\n"); + } + printf_filtered (" Maximum chain length %d at %d:%d\n", lmax, lmaxt, lmaxh); +} + +#endif /* MAINTENANCE_CMDS */ diff --git a/gdb/bcache.h b/gdb/bcache.h new file mode 100644 index 0000000000..cf0c62eeda --- /dev/null +++ b/gdb/bcache.h @@ -0,0 +1,72 @@ +/* Include file cached obstack implementation. + Written by Fred Fish (fnf@cygnus.com) + Copyright 1995 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#ifndef BCACHE_H +#define BCACHE_H 1 + +#define BCACHE_HASHLENGTH 12 /* Number of bits in hash value */ +#define BCACHE_HASHSIZE (1 << BCACHE_HASHLENGTH) +#define BCACHE_MAXLENGTH 128 + +/* Note that the user data is stored in data[]. Since it can be any type, + it needs to have the same alignment as the most strict alignment of + any type on the host machine. So do it the same way obstack does. */ + +struct hashlink { + struct hashlink *next; + union { + char data[1]; + double dummy; + } d; +}; + +/* BCACHE_DATA is used to get the address of the cached data. */ + +#define BCACHE_DATA(p) ((p)->d.data) + +/* BCACHE_DATA_ALIGNMENT is used to get the offset of the start of + cached data within the hashlink struct. This value, plus the + size of the cached data, is the amount of space to allocate for + a hashlink struct to hold the next pointer and the data. */ + +#define BCACHE_DATA_ALIGNMENT \ + (((char *) BCACHE_DATA((struct hashlink*) 0) - (char *) 0)) + +struct bcache { + struct obstack cache; + struct hashlink **indextable[BCACHE_MAXLENGTH]; + int cache_hits; + int cache_misses; + int cache_bytes; + int cache_savings; + int bcache_overflows; +}; + +extern void * +bcache PARAMS ((void *bytes, int count, struct bcache *bcachep)); + +#if MAINTENANCE_CMDS + +extern void +print_bcache_statistics PARAMS ((struct bcache *, char *)); + +#endif /* MAINTENANCE_CMDS */ + +#endif /* BCACHE_H */ diff --git a/gdb/blockframe.c b/gdb/blockframe.c new file mode 100644 index 0000000000..9366ca650e --- /dev/null +++ b/gdb/blockframe.c @@ -0,0 +1,1301 @@ +/* Get info from stack frames; + convert between frames, blocks, functions and pc values. + Copyright 1986, 87, 88, 89, 91, 94, 95, 96, 97, 1998 + Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "symtab.h" +#include "bfd.h" +#include "symfile.h" +#include "objfiles.h" +#include "frame.h" +#include "gdbcore.h" +#include "value.h" /* for read_register */ +#include "target.h" /* for target_has_stack */ +#include "inferior.h" /* for read_pc */ +#include "annotate.h" + +/* Prototypes for exported functions. */ + +void _initialize_blockframe PARAMS ((void)); + +/* A default FRAME_CHAIN_VALID, in the form that is suitable for most + targets. If FRAME_CHAIN_VALID returns zero it means that the given + frame is the outermost one and has no caller. */ + +int +default_frame_chain_valid (chain, thisframe) + CORE_ADDR chain; + struct frame_info *thisframe; +{ + return ((chain) != 0 + && !inside_main_func ((thisframe) -> pc) + && !inside_entry_func ((thisframe) -> pc)); +} + +/* Use the alternate method of avoiding running up off the end of the + frame chain or following frames back into the startup code. See + the comments in objfiles.h. */ + +int +alternate_frame_chain_valid (chain, thisframe) + CORE_ADDR chain; + struct frame_info *thisframe; +{ + return ((chain) != 0 + && !inside_entry_file (FRAME_SAVED_PC (thisframe))); +} + +/* A very simple method of determining a valid frame */ + +int +nonnull_frame_chain_valid (chain, thisframe) + CORE_ADDR chain; + struct frame_info *thisframe; +{ + return ((chain) != 0); +} + +/* Is ADDR inside the startup file? Note that if your machine + has a way to detect the bottom of the stack, there is no need + to call this function from FRAME_CHAIN_VALID; the reason for + doing so is that some machines have no way of detecting bottom + of stack. + + A PC of zero is always considered to be the bottom of the stack. */ + +int +inside_entry_file (addr) + CORE_ADDR addr; +{ + if (addr == 0) + return 1; + if (symfile_objfile == 0) + return 0; +#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT + /* Do not stop backtracing if the pc is in the call dummy + at the entry point. */ +/* FIXME: Won't always work with zeros for the last two arguments */ + if (PC_IN_CALL_DUMMY (addr, 0, 0)) + return 0; +#endif + return (addr >= symfile_objfile -> ei.entry_file_lowpc && + addr < symfile_objfile -> ei.entry_file_highpc); +} + +/* Test a specified PC value to see if it is in the range of addresses + that correspond to the main() function. See comments above for why + we might want to do this. + + Typically called from FRAME_CHAIN_VALID. + + A PC of zero is always considered to be the bottom of the stack. */ + +int +inside_main_func (pc) +CORE_ADDR pc; +{ + if (pc == 0) + return 1; + if (symfile_objfile == 0) + return 0; + + /* If the addr range is not set up at symbol reading time, set it up now. + This is for FRAME_CHAIN_VALID_ALTERNATE. I do this for coff, because + it is unable to set it up and symbol reading time. */ + + if (symfile_objfile -> ei.main_func_lowpc == INVALID_ENTRY_LOWPC && + symfile_objfile -> ei.main_func_highpc == INVALID_ENTRY_HIGHPC) + { + struct symbol *mainsym; + + mainsym = lookup_symbol ("main", NULL, VAR_NAMESPACE, NULL, NULL); + if (mainsym && SYMBOL_CLASS(mainsym) == LOC_BLOCK) + { + symfile_objfile->ei.main_func_lowpc = + BLOCK_START (SYMBOL_BLOCK_VALUE (mainsym)); + symfile_objfile->ei.main_func_highpc = + BLOCK_END (SYMBOL_BLOCK_VALUE (mainsym)); + } + } + return (symfile_objfile -> ei.main_func_lowpc <= pc && + symfile_objfile -> ei.main_func_highpc > pc); +} + +/* Test a specified PC value to see if it is in the range of addresses + that correspond to the process entry point function. See comments + in objfiles.h for why we might want to do this. + + Typically called from FRAME_CHAIN_VALID. + + A PC of zero is always considered to be the bottom of the stack. */ + +int +inside_entry_func (pc) +CORE_ADDR pc; +{ + if (pc == 0) + return 1; + if (symfile_objfile == 0) + return 0; +#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT + /* Do not stop backtracing if the pc is in the call dummy + at the entry point. */ +/* FIXME: Won't always work with zeros for the last two arguments */ + if (PC_IN_CALL_DUMMY (pc, 0, 0)) + return 0; +#endif + return (symfile_objfile -> ei.entry_func_lowpc <= pc && + symfile_objfile -> ei.entry_func_highpc > pc); +} + +/* Info about the innermost stack frame (contents of FP register) */ + +static struct frame_info *current_frame; + +/* Cache for frame addresses already read by gdb. Valid only while + inferior is stopped. Control variables for the frame cache should + be local to this module. */ + +static struct obstack frame_cache_obstack; + +void * +frame_obstack_alloc (size) + unsigned long size; +{ + return obstack_alloc (&frame_cache_obstack, size); +} + +void +frame_saved_regs_zalloc (fi) + struct frame_info *fi; +{ + fi->saved_regs = (CORE_ADDR*) + frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS); + memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS); +} + + +/* Return the innermost (currently executing) stack frame. */ + +struct frame_info * +get_current_frame () +{ + if (current_frame == NULL) + { + if (target_has_stack) + current_frame = create_new_frame (read_fp (), read_pc ()); + else + error ("No stack."); + } + return current_frame; +} + +void +set_current_frame (frame) + struct frame_info *frame; +{ + current_frame = frame; +} + +/* Create an arbitrary (i.e. address specified by user) or innermost frame. + Always returns a non-NULL value. */ + +struct frame_info * +create_new_frame (addr, pc) + CORE_ADDR addr; + CORE_ADDR pc; +{ + struct frame_info *fi; + char *name; + + fi = (struct frame_info *) + obstack_alloc (&frame_cache_obstack, + sizeof (struct frame_info)); + + /* Arbitrary frame */ + fi->saved_regs = NULL; + fi->next = NULL; + fi->prev = NULL; + fi->frame = addr; + fi->pc = pc; + find_pc_partial_function (pc, &name, (CORE_ADDR *)NULL,(CORE_ADDR *)NULL); + fi->signal_handler_caller = IN_SIGTRAMP (fi->pc, name); + +#ifdef INIT_EXTRA_FRAME_INFO + INIT_EXTRA_FRAME_INFO (0, fi); +#endif + + return fi; +} + +/* Return the frame that called FI. + If FI is the original frame (it has no caller), return 0. */ + +struct frame_info * +get_prev_frame (frame) + struct frame_info *frame; +{ + return get_prev_frame_info (frame); +} + +/* Return the frame that FRAME calls (NULL if FRAME is the innermost + frame). */ + +struct frame_info * +get_next_frame (frame) + struct frame_info *frame; +{ + return frame->next; +} + +/* Flush the entire frame cache. */ + +void +flush_cached_frames () +{ + /* Since we can't really be sure what the first object allocated was */ + obstack_free (&frame_cache_obstack, 0); + obstack_init (&frame_cache_obstack); + + current_frame = NULL; /* Invalidate cache */ + select_frame (NULL, -1); + annotate_frames_invalid (); +} + +/* Flush the frame cache, and start a new one if necessary. */ + +void +reinit_frame_cache () +{ + flush_cached_frames (); + + /* FIXME: The inferior_pid test is wrong if there is a corefile. */ + if (inferior_pid != 0) + { + select_frame (get_current_frame (), 0); + } +} + +/* If a machine allows frameless functions, it should define a macro + FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) in param.h. FI is the struct + frame_info for the frame, and FRAMELESS should be set to nonzero + if it represents a frameless function invocation. */ + +/* Return nonzero if the function for this frame lacks a prologue. Many + machines can define FRAMELESS_FUNCTION_INVOCATION to just call this + function. */ + +int +frameless_look_for_prologue (frame) + struct frame_info *frame; +{ + CORE_ADDR func_start, after_prologue; + func_start = get_pc_function_start (frame->pc); + if (func_start) + { + func_start += FUNCTION_START_OFFSET; + after_prologue = func_start; +#ifdef SKIP_PROLOGUE_FRAMELESS_P + /* This is faster, since only care whether there *is* a prologue, + not how long it is. */ + SKIP_PROLOGUE_FRAMELESS_P (after_prologue); +#else + SKIP_PROLOGUE (after_prologue); +#endif + return after_prologue == func_start; + } + else if (frame->pc == 0) + /* A frame with a zero PC is usually created by dereferencing a NULL + function pointer, normally causing an immediate core dump of the + inferior. Mark function as frameless, as the inferior has no chance + of setting up a stack frame. */ + return 1; + else + /* If we can't find the start of the function, we don't really + know whether the function is frameless, but we should be able + to get a reasonable (i.e. best we can do under the + circumstances) backtrace by saying that it isn't. */ + return 0; +} + +/* Default a few macros that people seldom redefine. */ + +#if !defined (INIT_FRAME_PC) +#define INIT_FRAME_PC(fromleaf, prev) \ + prev->pc = (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) : \ + prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ()); +#endif + +#ifndef FRAME_CHAIN_COMBINE +#define FRAME_CHAIN_COMBINE(chain, thisframe) (chain) +#endif + +/* Return a structure containing various interesting information + about the frame that called NEXT_FRAME. Returns NULL + if there is no such frame. */ + +struct frame_info * +get_prev_frame_info (next_frame) + struct frame_info *next_frame; +{ + CORE_ADDR address = 0; + struct frame_info *prev; + int fromleaf = 0; + char *name; + + /* If the requested entry is in the cache, return it. + Otherwise, figure out what the address should be for the entry + we're about to add to the cache. */ + + if (!next_frame) + { +#if 0 + /* This screws value_of_variable, which just wants a nice clean + NULL return from block_innermost_frame if there are no frames. + I don't think I've ever seen this message happen otherwise. + And returning NULL here is a perfectly legitimate thing to do. */ + if (!current_frame) + { + error ("You haven't set up a process's stack to examine."); + } +#endif + + return current_frame; + } + + /* If we have the prev one, return it */ + if (next_frame->prev) + return next_frame->prev; + + /* On some machines it is possible to call a function without + setting up a stack frame for it. On these machines, we + define this macro to take two args; a frameinfo pointer + identifying a frame and a variable to set or clear if it is + or isn't leafless. */ +#ifdef FRAMELESS_FUNCTION_INVOCATION + /* Still don't want to worry about this except on the innermost + frame. This macro will set FROMLEAF if NEXT_FRAME is a + frameless function invocation. */ + if (!(next_frame->next)) + { + FRAMELESS_FUNCTION_INVOCATION (next_frame, fromleaf); + if (fromleaf) + address = FRAME_FP (next_frame); + } +#endif + + if (!fromleaf) + { + /* Two macros defined in tm.h specify the machine-dependent + actions to be performed here. + First, get the frame's chain-pointer. + If that is zero, the frame is the outermost frame or a leaf + called by the outermost frame. This means that if start + calls main without a frame, we'll return 0 (which is fine + anyway). + + Nope; there's a problem. This also returns when the current + routine is a leaf of main. This is unacceptable. We move + this to after the ffi test; I'd rather have backtraces from + start go curfluy than have an abort called from main not show + main. */ + address = FRAME_CHAIN (next_frame); + if (!FRAME_CHAIN_VALID (address, next_frame)) + return 0; + address = FRAME_CHAIN_COMBINE (address, next_frame); + } + if (address == 0) + return 0; + + prev = (struct frame_info *) + obstack_alloc (&frame_cache_obstack, + sizeof (struct frame_info)); + + prev->saved_regs = NULL; + if (next_frame) + next_frame->prev = prev; + prev->next = next_frame; + prev->prev = (struct frame_info *) 0; + prev->frame = address; + prev->signal_handler_caller = 0; + +/* This change should not be needed, FIXME! We should + determine whether any targets *need* INIT_FRAME_PC to happen + after INIT_EXTRA_FRAME_INFO and come up with a simple way to + express what goes on here. + + INIT_EXTRA_FRAME_INFO is called from two places: create_new_frame + (where the PC is already set up) and here (where it isn't). + INIT_FRAME_PC is only called from here, always after + INIT_EXTRA_FRAME_INFO. + + The catch is the MIPS, where INIT_EXTRA_FRAME_INFO requires the PC + value (which hasn't been set yet). Some other machines appear to + require INIT_EXTRA_FRAME_INFO before they can do INIT_FRAME_PC. Phoo. + + We shouldn't need INIT_FRAME_PC_FIRST to add more complication to + an already overcomplicated part of GDB. gnu@cygnus.com, 15Sep92. + + Assuming that some machines need INIT_FRAME_PC after + INIT_EXTRA_FRAME_INFO, one possible scheme: + + SETUP_INNERMOST_FRAME() + Default version is just create_new_frame (read_fp ()), + read_pc ()). Machines with extra frame info would do that (or the + local equivalent) and then set the extra fields. + SETUP_ARBITRARY_FRAME(argc, argv) + Only change here is that create_new_frame would no longer init extra + frame info; SETUP_ARBITRARY_FRAME would have to do that. + INIT_PREV_FRAME(fromleaf, prev) + Replace INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC. This should + also return a flag saying whether to keep the new frame, or + whether to discard it, because on some machines (e.g. mips) it + is really awkward to have FRAME_CHAIN_VALID called *before* + INIT_EXTRA_FRAME_INFO (there is no good way to get information + deduced in FRAME_CHAIN_VALID into the extra fields of the new frame). + std_frame_pc(fromleaf, prev) + This is the default setting for INIT_PREV_FRAME. It just does what + the default INIT_FRAME_PC does. Some machines will call it from + INIT_PREV_FRAME (either at the beginning, the end, or in the middle). + Some machines won't use it. + kingdon@cygnus.com, 13Apr93, 31Jan94, 14Dec94. */ + +#ifdef INIT_FRAME_PC_FIRST + INIT_FRAME_PC_FIRST (fromleaf, prev); +#endif + +#ifdef INIT_EXTRA_FRAME_INFO + INIT_EXTRA_FRAME_INFO(fromleaf, prev); +#endif + + /* This entry is in the frame queue now, which is good since + FRAME_SAVED_PC may use that queue to figure out its value + (see tm-sparc.h). We want the pc saved in the inferior frame. */ + INIT_FRAME_PC(fromleaf, prev); + + /* If ->frame and ->pc are unchanged, we are in the process of getting + ourselves into an infinite backtrace. Some architectures check this + in FRAME_CHAIN or thereabouts, but it seems like there is no reason + this can't be an architecture-independent check. */ + if (next_frame != NULL) + { + if (prev->frame == next_frame->frame + && prev->pc == next_frame->pc) + { + next_frame->prev = NULL; + obstack_free (&frame_cache_obstack, prev); + return NULL; + } + } + + find_pc_partial_function (prev->pc, &name, + (CORE_ADDR *)NULL,(CORE_ADDR *)NULL); + if (IN_SIGTRAMP (prev->pc, name)) + prev->signal_handler_caller = 1; + + return prev; +} + +CORE_ADDR +get_frame_pc (frame) + struct frame_info *frame; +{ + return frame->pc; +} + + +#ifdef FRAME_FIND_SAVED_REGS +/* XXX - deprecated. This is a compatibility function for targets + that do not yet implement FRAME_INIT_SAVED_REGS. */ +/* Find the addresses in which registers are saved in FRAME. */ + +void +get_frame_saved_regs (frame, saved_regs_addr) + struct frame_info *frame; + struct frame_saved_regs *saved_regs_addr; +{ + if (frame->saved_regs == NULL) + { + frame->saved_regs = (CORE_ADDR*) + frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS); + } + if (saved_regs_addr == NULL) + { + struct frame_saved_regs saved_regs; + FRAME_FIND_SAVED_REGS (frame, saved_regs); + memcpy (frame->saved_regs, &saved_regs, SIZEOF_FRAME_SAVED_REGS); + } + else + { + FRAME_FIND_SAVED_REGS (frame, *saved_regs_addr); + memcpy (frame->saved_regs, saved_regs_addr, SIZEOF_FRAME_SAVED_REGS); + } +} +#endif + +/* Return the innermost lexical block in execution + in a specified stack frame. The frame address is assumed valid. */ + +struct block * +get_frame_block (frame) + struct frame_info *frame; +{ + CORE_ADDR pc; + + pc = frame->pc; + if (frame->next != 0 && frame->next->signal_handler_caller == 0) + /* We are not in the innermost frame and we were not interrupted + by a signal. We need to subtract one to get the correct block, + in case the call instruction was the last instruction of the block. + If there are any machines on which the saved pc does not point to + after the call insn, we probably want to make frame->pc point after + the call insn anyway. */ + --pc; + return block_for_pc (pc); +} + +struct block * +get_current_block () +{ + return block_for_pc (read_pc ()); +} + +CORE_ADDR +get_pc_function_start (pc) + CORE_ADDR pc; +{ + register struct block *bl; + register struct symbol *symbol; + register struct minimal_symbol *msymbol; + CORE_ADDR fstart; + + if ((bl = block_for_pc (pc)) != NULL && + (symbol = block_function (bl)) != NULL) + { + bl = SYMBOL_BLOCK_VALUE (symbol); + fstart = BLOCK_START (bl); + } + else if ((msymbol = lookup_minimal_symbol_by_pc (pc)) != NULL) + { + fstart = SYMBOL_VALUE_ADDRESS (msymbol); + } + else + { + fstart = 0; + } + return (fstart); +} + +/* Return the symbol for the function executing in frame FRAME. */ + +struct symbol * +get_frame_function (frame) + struct frame_info *frame; +{ + register struct block *bl = get_frame_block (frame); + if (bl == 0) + return 0; + return block_function (bl); +} + + +/* Return the blockvector immediately containing the innermost lexical block + containing the specified pc value and section, or 0 if there is none. + PINDEX is a pointer to the index value of the block. If PINDEX + is NULL, we don't pass this information back to the caller. */ + +struct blockvector * +blockvector_for_pc_sect (pc, section, pindex, symtab) + register CORE_ADDR pc; + struct sec *section; + int *pindex; + struct symtab *symtab; + +{ + register struct block *b; + register int bot, top, half; + struct blockvector *bl; + + if (symtab == 0) /* if no symtab specified by caller */ + { + /* First search all symtabs for one whose file contains our pc */ + if ((symtab = find_pc_sect_symtab (pc, section)) == 0) + return 0; + } + + bl = BLOCKVECTOR (symtab); + b = BLOCKVECTOR_BLOCK (bl, 0); + + /* Then search that symtab for the smallest block that wins. */ + /* Use binary search to find the last block that starts before PC. */ + + bot = 0; + top = BLOCKVECTOR_NBLOCKS (bl); + + while (top - bot > 1) + { + half = (top - bot + 1) >> 1; + b = BLOCKVECTOR_BLOCK (bl, bot + half); + if (BLOCK_START (b) <= pc) + bot += half; + else + top = bot + half; + } + + /* Now search backward for a block that ends after PC. */ + + while (bot >= 0) + { + b = BLOCKVECTOR_BLOCK (bl, bot); + if (BLOCK_END (b) >= pc) + { + if (pindex) + *pindex = bot; + return bl; + } + bot--; + } + return 0; +} + +/* Return the blockvector immediately containing the innermost lexical block + containing the specified pc value, or 0 if there is none. + Backward compatibility, no section. */ + +struct blockvector * +blockvector_for_pc (pc, pindex) + register CORE_ADDR pc; + int *pindex; +{ + return blockvector_for_pc_sect (pc, find_pc_mapped_section (pc), + pindex, NULL); +} + +/* Return the innermost lexical block containing the specified pc value + in the specified section, or 0 if there is none. */ + +struct block * +block_for_pc_sect (pc, section) + register CORE_ADDR pc; + struct sec *section; +{ + register struct blockvector *bl; + int index; + + bl = blockvector_for_pc_sect (pc, section, &index, NULL); + if (bl) + return BLOCKVECTOR_BLOCK (bl, index); + return 0; +} + +/* Return the innermost lexical block containing the specified pc value, + or 0 if there is none. Backward compatibility, no section. */ + +struct block * +block_for_pc (pc) + register CORE_ADDR pc; +{ + return block_for_pc_sect (pc, find_pc_mapped_section (pc)); +} + +/* Return the function containing pc value PC in section SECTION. + Returns 0 if function is not known. */ + +struct symbol * +find_pc_sect_function (pc, section) + CORE_ADDR pc; + struct sec *section; +{ + register struct block *b = block_for_pc_sect (pc, section); + if (b == 0) + return 0; + return block_function (b); +} + +/* Return the function containing pc value PC. + Returns 0 if function is not known. Backward compatibility, no section */ + +struct symbol * +find_pc_function (pc) + CORE_ADDR pc; +{ + return find_pc_sect_function (pc, find_pc_mapped_section (pc)); +} + +/* These variables are used to cache the most recent result + * of find_pc_partial_function. */ + +static CORE_ADDR cache_pc_function_low = 0; +static CORE_ADDR cache_pc_function_high = 0; +static char *cache_pc_function_name = 0; +static struct sec *cache_pc_function_section = NULL; + +/* Clear cache, e.g. when symbol table is discarded. */ + +void +clear_pc_function_cache() +{ + cache_pc_function_low = 0; + cache_pc_function_high = 0; + cache_pc_function_name = (char *)0; + cache_pc_function_section = NULL; +} + +/* Finds the "function" (text symbol) that is smaller than PC but + greatest of all of the potential text symbols in SECTION. Sets + *NAME and/or *ADDRESS conditionally if that pointer is non-null. + If ENDADDR is non-null, then set *ENDADDR to be the end of the + function (exclusive), but passing ENDADDR as non-null means that + the function might cause symbols to be read. This function either + succeeds or fails (not halfway succeeds). If it succeeds, it sets + *NAME, *ADDRESS, and *ENDADDR to real information and returns 1. + If it fails, it sets *NAME, *ADDRESS, and *ENDADDR to zero and + returns 0. */ + +int +find_pc_sect_partial_function (pc, section, name, address, endaddr) + CORE_ADDR pc; + asection *section; + char **name; + CORE_ADDR *address; + CORE_ADDR *endaddr; +{ + struct partial_symtab *pst; + struct symbol *f; + struct minimal_symbol *msymbol; + struct partial_symbol *psb; + struct obj_section *osect; + int i; + CORE_ADDR mapped_pc; + + mapped_pc = overlay_mapped_address (pc, section); + + if (mapped_pc >= cache_pc_function_low && + mapped_pc < cache_pc_function_high && + section == cache_pc_function_section) + goto return_cached_value; + + /* If sigtramp is in the u area, it counts as a function (especially + important for step_1). */ +#if defined SIGTRAMP_START + if (IN_SIGTRAMP (mapped_pc, (char *)NULL)) + { + cache_pc_function_low = SIGTRAMP_START (mapped_pc); + cache_pc_function_high = SIGTRAMP_END (mapped_pc); + cache_pc_function_name = ""; + cache_pc_function_section = section; + goto return_cached_value; + } +#endif + + msymbol = lookup_minimal_symbol_by_pc_section (mapped_pc, section); + pst = find_pc_sect_psymtab (mapped_pc, section); + if (pst) + { + /* Need to read the symbols to get a good value for the end address. */ + if (endaddr != NULL && !pst->readin) + { + /* Need to get the terminal in case symbol-reading produces + output. */ + target_terminal_ours_for_output (); + PSYMTAB_TO_SYMTAB (pst); + } + + if (pst->readin) + { + /* Checking whether the msymbol has a larger value is for the + "pathological" case mentioned in print_frame_info. */ + f = find_pc_sect_function (mapped_pc, section); + if (f != NULL + && (msymbol == NULL + || (BLOCK_START (SYMBOL_BLOCK_VALUE (f)) + >= SYMBOL_VALUE_ADDRESS (msymbol)))) + { + cache_pc_function_low = BLOCK_START (SYMBOL_BLOCK_VALUE (f)); + cache_pc_function_high = BLOCK_END (SYMBOL_BLOCK_VALUE (f)); + cache_pc_function_name = SYMBOL_NAME (f); + cache_pc_function_section = section; + goto return_cached_value; + } + } + else + { + /* Now that static symbols go in the minimal symbol table, perhaps + we could just ignore the partial symbols. But at least for now + we use the partial or minimal symbol, whichever is larger. */ + psb = find_pc_sect_psymbol (pst, mapped_pc, section); + + if (psb + && (msymbol == NULL || + (SYMBOL_VALUE_ADDRESS (psb) + >= SYMBOL_VALUE_ADDRESS (msymbol)))) + { + /* This case isn't being cached currently. */ + if (address) + *address = SYMBOL_VALUE_ADDRESS (psb); + if (name) + *name = SYMBOL_NAME (psb); + /* endaddr non-NULL can't happen here. */ + return 1; + } + } + } + + /* Not in the normal symbol tables, see if the pc is in a known section. + If it's not, then give up. This ensures that anything beyond the end + of the text seg doesn't appear to be part of the last function in the + text segment. */ + + osect = find_pc_sect_section (mapped_pc, section); + + if (!osect) + msymbol = NULL; + + /* Must be in the minimal symbol table. */ + if (msymbol == NULL) + { + /* No available symbol. */ + if (name != NULL) + *name = 0; + if (address != NULL) + *address = 0; + if (endaddr != NULL) + *endaddr = 0; + return 0; + } + + cache_pc_function_low = SYMBOL_VALUE_ADDRESS (msymbol); + cache_pc_function_name = SYMBOL_NAME (msymbol); + cache_pc_function_section = section; + + /* Use the lesser of the next minimal symbol in the same section, or + the end of the section, as the end of the function. */ + + /* Step over other symbols at this same address, and symbols in + other sections, to find the next symbol in this section with + a different address. */ + + for (i=1; SYMBOL_NAME (msymbol+i) != NULL; i++) + { + if (SYMBOL_VALUE_ADDRESS (msymbol+i) != SYMBOL_VALUE_ADDRESS (msymbol) + && SYMBOL_BFD_SECTION (msymbol+i) == SYMBOL_BFD_SECTION (msymbol)) + break; + } + + if (SYMBOL_NAME (msymbol + i) != NULL + && SYMBOL_VALUE_ADDRESS (msymbol + i) < osect->endaddr) + cache_pc_function_high = SYMBOL_VALUE_ADDRESS (msymbol + i); + else + /* We got the start address from the last msymbol in the objfile. + So the end address is the end of the section. */ + cache_pc_function_high = osect->endaddr; + + return_cached_value: + + if (address) + { + if (pc_in_unmapped_range (pc, section)) + *address = overlay_unmapped_address (cache_pc_function_low, section); + else + *address = cache_pc_function_low; + } + + if (name) + *name = cache_pc_function_name; + + if (endaddr) + { + if (pc_in_unmapped_range (pc, section)) + { + /* Because the high address is actually beyond the end of + the function (and therefore possibly beyond the end of + the overlay), we must actually convert (high - 1) + and then add one to that. */ + + *endaddr = 1 + overlay_unmapped_address (cache_pc_function_high - 1, + section); + } + else + *endaddr = cache_pc_function_high; + } + + return 1; +} + +/* Backward compatibility, no section argument */ + +int +find_pc_partial_function (pc, name, address, endaddr) + CORE_ADDR pc; + char **name; + CORE_ADDR *address; + CORE_ADDR *endaddr; +{ + asection *section; + + section = find_pc_overlay (pc); + return find_pc_sect_partial_function (pc, section, name, address, endaddr); +} + +/* Return the innermost stack frame executing inside of BLOCK, + or NULL if there is no such frame. If BLOCK is NULL, just return NULL. */ + +struct frame_info * +block_innermost_frame (block) + struct block *block; +{ + struct frame_info *frame; + register CORE_ADDR start; + register CORE_ADDR end; + + if (block == NULL) + return NULL; + + start = BLOCK_START (block); + end = BLOCK_END (block); + + frame = NULL; + while (1) + { + frame = get_prev_frame (frame); + if (frame == NULL) + return NULL; + if (frame->pc >= start && frame->pc < end) + return frame; + } +} + +/* Return the full FRAME which corresponds to the given CORE_ADDR + or NULL if no FRAME on the chain corresponds to CORE_ADDR. */ + +struct frame_info * +find_frame_addr_in_frame_chain (frame_addr) + CORE_ADDR frame_addr; +{ + struct frame_info *frame = NULL; + + if (frame_addr == (CORE_ADDR)0) + return NULL; + + while (1) + { + frame = get_prev_frame (frame); + if (frame == NULL) + return NULL; + if (FRAME_FP (frame) == frame_addr) + return frame; + } +} + +#ifdef SIGCONTEXT_PC_OFFSET +/* Get saved user PC for sigtramp from sigcontext for BSD style sigtramp. */ + +CORE_ADDR +sigtramp_saved_pc (frame) + struct frame_info *frame; +{ + CORE_ADDR sigcontext_addr; + char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT]; + int ptrbytes = TARGET_PTR_BIT / TARGET_CHAR_BIT; + int sigcontext_offs = (2 * TARGET_INT_BIT) / TARGET_CHAR_BIT; + + /* Get sigcontext address, it is the third parameter on the stack. */ + if (frame->next) + sigcontext_addr = read_memory_integer (FRAME_ARGS_ADDRESS (frame->next) + + FRAME_ARGS_SKIP + + sigcontext_offs, + ptrbytes); + else + sigcontext_addr = read_memory_integer (read_register (SP_REGNUM) + + sigcontext_offs, + ptrbytes); + + /* Don't cause a memory_error when accessing sigcontext in case the stack + layout has changed or the stack is corrupt. */ + target_read_memory (sigcontext_addr + SIGCONTEXT_PC_OFFSET, buf, ptrbytes); + return extract_unsigned_integer (buf, ptrbytes); +} +#endif /* SIGCONTEXT_PC_OFFSET */ + +#ifdef USE_GENERIC_DUMMY_FRAMES + +/* + * GENERIC DUMMY FRAMES + * + * The following code serves to maintain the dummy stack frames for + * inferior function calls (ie. when gdb calls into the inferior via + * call_function_by_hand). This code saves the machine state before + * the call in host memory, so we must maintain an independant stack + * and keep it consistant etc. I am attempting to make this code + * generic enough to be used by many targets. + * + * The cheapest and most generic way to do CALL_DUMMY on a new target + * is probably to define CALL_DUMMY to be empty, CALL_DUMMY_LENGTH to + * zero, and CALL_DUMMY_LOCATION to AT_ENTRY. Then you must remember + * to define PUSH_RETURN_ADDRESS, because no call instruction will be + * being executed by the target. Also FRAME_CHAIN_VALID as + * generic_frame_chain_valid. */ + +static struct dummy_frame *dummy_frame_stack = NULL; + +/* Function: find_dummy_frame(pc, fp, sp) + Search the stack of dummy frames for one matching the given PC, FP and SP. + This is the work-horse for pc_in_call_dummy and read_register_dummy */ + +char * +generic_find_dummy_frame (pc, fp) + CORE_ADDR pc; + CORE_ADDR fp; +{ + struct dummy_frame * dummyframe; + + if (pc != entry_point_address ()) + return 0; + + for (dummyframe = dummy_frame_stack; dummyframe != NULL; + dummyframe = dummyframe->next) + if (fp == dummyframe->fp || fp == dummyframe->sp) + /* The frame in question lies between the saved fp and sp, inclusive */ + return dummyframe->regs; + + return 0; +} + +/* Function: pc_in_call_dummy (pc, fp) + Return true if this is a dummy frame created by gdb for an inferior call */ + +int +generic_pc_in_call_dummy (pc, fp) + CORE_ADDR pc; + CORE_ADDR fp; +{ + /* if find_dummy_frame succeeds, then PC is in a call dummy */ + return (generic_find_dummy_frame (pc, fp) != 0); +} + +/* Function: read_register_dummy + Find a saved register from before GDB calls a function in the inferior */ + +CORE_ADDR +generic_read_register_dummy (pc, fp, regno) + CORE_ADDR pc; + CORE_ADDR fp; + int regno; +{ + char *dummy_regs = generic_find_dummy_frame (pc, fp); + + if (dummy_regs) + return extract_address (&dummy_regs[REGISTER_BYTE (regno)], + REGISTER_RAW_SIZE(regno)); + else + return 0; +} + +/* Save all the registers on the dummy frame stack. Most ports save the + registers on the target stack. This results in lots of unnecessary memory + references, which are slow when debugging via a serial line. Instead, we + save all the registers internally, and never write them to the stack. The + registers get restored when the called function returns to the entry point, + where a breakpoint is laying in wait. */ + +void +generic_push_dummy_frame () +{ + struct dummy_frame *dummy_frame; + CORE_ADDR fp = (get_current_frame ())->frame; + + /* check to see if there are stale dummy frames, + perhaps left over from when a longjump took us out of a + function that was called by the debugger */ + + dummy_frame = dummy_frame_stack; + while (dummy_frame) + if (INNER_THAN (dummy_frame->fp, fp)) /* stale -- destroy! */ + { + dummy_frame_stack = dummy_frame->next; + free (dummy_frame); + dummy_frame = dummy_frame_stack; + } + else + dummy_frame = dummy_frame->next; + + dummy_frame = xmalloc (sizeof (struct dummy_frame)); + dummy_frame->pc = read_register (PC_REGNUM); + dummy_frame->sp = read_register (SP_REGNUM); + dummy_frame->fp = fp; + read_register_bytes (0, dummy_frame->regs, REGISTER_BYTES); + dummy_frame->next = dummy_frame_stack; + dummy_frame_stack = dummy_frame; +} + +/* Function: pop_frame + Restore the machine state from either the saved dummy stack or a + real stack frame. */ + +void +generic_pop_current_frame (pop) + void (*pop) PARAMS ((struct frame_info *frame)); +{ + struct frame_info *frame = get_current_frame (); + if (PC_IN_CALL_DUMMY(frame->pc, frame->frame, frame->frame)) + generic_pop_dummy_frame (); + else + pop (frame); +} + +/* Function: pop_dummy_frame + Restore the machine state from a saved dummy stack frame. */ + +void +generic_pop_dummy_frame () +{ + struct dummy_frame *dummy_frame = dummy_frame_stack; + + /* FIXME: what if the first frame isn't the right one, eg.. + because one call-by-hand function has done a longjmp into another one? */ + + if (!dummy_frame) + error ("Can't pop dummy frame!"); + dummy_frame_stack = dummy_frame->next; + write_register_bytes (0, dummy_frame->regs, REGISTER_BYTES); + flush_cached_frames (); + free (dummy_frame); +} + +/* Function: frame_chain_valid + Returns true for a user frame or a call_function_by_hand dummy frame, + and false for the CRT0 start-up frame. Purpose is to terminate backtrace */ + +int +generic_frame_chain_valid (fp, fi) + CORE_ADDR fp; + struct frame_info *fi; +{ + if (PC_IN_CALL_DUMMY(FRAME_SAVED_PC(fi), fp, fp)) + return 1; /* don't prune CALL_DUMMY frames */ + else /* fall back to default algorithm (see frame.h) */ + return (fp != 0 + && (INNER_THAN (fi->frame, fp) || fi->frame == fp) + && !inside_entry_file (FRAME_SAVED_PC(fi))); +} + +/* Function: get_saved_register + Find register number REGNUM relative to FRAME and put its (raw, + target format) contents in *RAW_BUFFER. + + Set *OPTIMIZED if the variable was optimized out (and thus can't be + fetched). Note that this is never set to anything other than zero + in this implementation. + + Set *LVAL to lval_memory, lval_register, or not_lval, depending on + whether the value was fetched from memory, from a register, or in a + strange and non-modifiable way (e.g. a frame pointer which was + calculated rather than fetched). We will use not_lval for values + fetched from generic dummy frames. + + Set *ADDRP to the address, either in memory on as a REGISTER_BYTE + offset into the registers array. If the value is stored in a dummy + frame, set *ADDRP to zero. + + To use this implementation, define a function called + "get_saved_register" in your target code, which simply passes all + of its arguments to this function. + + The argument RAW_BUFFER must point to aligned memory. */ + +void +generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval) + char *raw_buffer; + int *optimized; + CORE_ADDR *addrp; + struct frame_info *frame; + int regnum; + enum lval_type *lval; +{ + if (!target_has_registers) + error ("No registers."); + + /* Normal systems don't optimize out things with register numbers. */ + if (optimized != NULL) + *optimized = 0; + + if (addrp) /* default assumption: not found in memory */ + *addrp = 0; + + /* Note: since the current frame's registers could only have been + saved by frames INTERIOR TO the current frame, we skip examining + the current frame itself: otherwise, we would be getting the + previous frame's registers which were saved by the current frame. */ + + while (frame && ((frame = frame->next) != NULL)) + { + if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame)) + { + if (lval) /* found it in a CALL_DUMMY frame */ + *lval = not_lval; + if (raw_buffer) + memcpy (raw_buffer, + generic_find_dummy_frame (frame->pc, frame->frame) + + REGISTER_BYTE (regnum), + REGISTER_RAW_SIZE (regnum)); + return; + } + + FRAME_INIT_SAVED_REGS (frame); + if (frame->saved_regs != NULL + && frame->saved_regs[regnum] != 0) + { + if (lval) /* found it saved on the stack */ + *lval = lval_memory; + if (regnum == SP_REGNUM) + { + if (raw_buffer) /* SP register treated specially */ + store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), + frame->saved_regs[regnum]); + } + else + { + if (addrp) /* any other register */ + *addrp = frame->saved_regs[regnum]; + if (raw_buffer) + read_memory (frame->saved_regs[regnum], raw_buffer, + REGISTER_RAW_SIZE (regnum)); + } + return; + } + } + + /* If we get thru the loop to this point, it means the register was + not saved in any frame. Return the actual live-register value. */ + + if (lval) /* found it in a live register */ + *lval = lval_register; + if (addrp) + *addrp = REGISTER_BYTE (regnum); + if (raw_buffer) + read_register_gen (regnum, raw_buffer); +} +#endif /* USE_GENERIC_DUMMY_FRAMES */ + +void +_initialize_blockframe () +{ + obstack_init (&frame_cache_obstack); +} diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c new file mode 100644 index 0000000000..4b05949b59 --- /dev/null +++ b/gdb/breakpoint.c @@ -0,0 +1,6686 @@ +/* Everything about breakpoints, for GDB. + Copyright 1986, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999 + Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include +#include "symtab.h" +#include "frame.h" +#include "breakpoint.h" +#include "gdbtypes.h" +#include "expression.h" +#include "gdbcore.h" +#include "gdbcmd.h" +#include "value.h" +#include "command.h" +#include "inferior.h" +#include "gdbthread.h" +#include "target.h" +#include "language.h" +#include "gdb_string.h" +#include "demangle.h" +#include "annotate.h" +#include "symfile.h" +#include "objfiles.h" + +/* Prototypes for local functions. */ + +static void +catch_command_1 PARAMS ((char *, int, int)); + +static void +enable_delete_command PARAMS ((char *, int)); + +static void +enable_delete_breakpoint PARAMS ((struct breakpoint *)); + +static void +enable_once_command PARAMS ((char *, int)); + +static void +enable_once_breakpoint PARAMS ((struct breakpoint *)); + +static void +disable_command PARAMS ((char *, int)); + +static void +enable_command PARAMS ((char *, int)); + +static void +map_breakpoint_numbers PARAMS ((char *, void (*)(struct breakpoint *))); + +static void +ignore_command PARAMS ((char *, int)); + +static int breakpoint_re_set_one PARAMS ((PTR)); + +static void +clear_command PARAMS ((char *, int)); + +static void +catch_command PARAMS ((char *, int)); + +static void +handle_gnu_4_16_catch_command PARAMS ((char *, int, int)); + +static struct symtabs_and_lines +get_catch_sals PARAMS ((int)); + +static void +watch_command PARAMS ((char *, int)); + +static int +can_use_hardware_watchpoint PARAMS ((struct value *)); + +void +tbreak_command PARAMS ((char *, int)); + +static void +break_command_1 PARAMS ((char *, int, int)); + +static void +mention PARAMS ((struct breakpoint *)); + +struct breakpoint * +set_raw_breakpoint PARAMS ((struct symtab_and_line)); + +static void +check_duplicates PARAMS ((CORE_ADDR, asection *)); + +static void +describe_other_breakpoints PARAMS ((CORE_ADDR, asection *)); + +static void +breakpoints_info PARAMS ((char *, int)); + +static void +breakpoint_1 PARAMS ((int, int)); + +static bpstat +bpstat_alloc PARAMS ((struct breakpoint *, bpstat)); + +static int breakpoint_cond_eval PARAMS ((PTR)); + +static void +cleanup_executing_breakpoints PARAMS ((PTR)); + +static void +commands_command PARAMS ((char *, int)); + +static void +condition_command PARAMS ((char *, int)); + +static int +get_number PARAMS ((char **)); + +void +set_breakpoint_count PARAMS ((int)); + +#if 0 +static struct breakpoint * +create_temp_exception_breakpoint PARAMS ((CORE_ADDR)); +#endif + +typedef enum { + mark_inserted, + mark_uninserted +} insertion_state_t; + +static int +remove_breakpoint PARAMS ((struct breakpoint *, insertion_state_t)); + +static int print_it_normal PARAMS ((bpstat)); + +typedef struct { + enum exception_event_kind kind; + int enable; +} args_for_catchpoint_enable; + +static int watchpoint_check PARAMS ((PTR)); + +static int cover_target_enable_exception_callback PARAMS ((PTR)); + +static int print_it_done PARAMS ((bpstat)); + +static int print_it_noop PARAMS ((bpstat)); + +static void maintenance_info_breakpoints PARAMS ((char *, int)); + +#ifdef GET_LONGJMP_TARGET +static void create_longjmp_breakpoint PARAMS ((char *)); +#endif + +static int hw_breakpoint_used_count PARAMS ((void)); + +static int hw_watchpoint_used_count PARAMS ((enum bptype, int *)); + +static void hbreak_command PARAMS ((char *, int)); + +static void thbreak_command PARAMS ((char *, int)); + +static void watch_command_1 PARAMS ((char *, int, int)); + +static void rwatch_command PARAMS ((char *, int)); + +static void awatch_command PARAMS ((char *, int)); + +static void do_enable_breakpoint PARAMS ((struct breakpoint *, enum bpdisp)); + +/* Prototypes for exported functions. */ + +static void +awatch_command PARAMS ((char *, int)); + +static void +do_enable_breakpoint PARAMS ((struct breakpoint *, enum bpdisp)); + +/* If FALSE, gdb will not use hardware support for watchpoints, even + if such is available. */ +static int can_use_hw_watchpoints; + +void delete_command PARAMS ((char *, int)); + +void _initialize_breakpoint PARAMS ((void)); + +void set_breakpoint_count PARAMS ((int)); + +extern int addressprint; /* Print machine addresses? */ + +#if defined (GET_LONGJMP_TARGET) || defined (SOLIB_ADD) +static int internal_breakpoint_number = -1; +#endif + +/* Are we executing breakpoint commands? */ +static int executing_breakpoint_commands; + +/* Walk the following statement or block through all breakpoints. + ALL_BREAKPOINTS_SAFE does so even if the statment deletes the current + breakpoint. */ + +#define ALL_BREAKPOINTS(b) for (b = breakpoint_chain; b; b = b->next) + +#define ALL_BREAKPOINTS_SAFE(b,tmp) \ + for (b = breakpoint_chain; \ + b? (tmp=b->next, 1): 0; \ + b = tmp) + +/* True if SHIFT_INST_REGS defined, false otherwise. */ + +int must_shift_inst_regs = +#if defined(SHIFT_INST_REGS) +1 +#else +0 +#endif +; + +/* True if breakpoint hit counts should be displayed in breakpoint info. */ + +int show_breakpoint_hit_counts = 1; + +/* Chain of all breakpoints defined. */ + +struct breakpoint *breakpoint_chain; + +/* Number of last breakpoint made. */ + +int breakpoint_count; + +/* Pointer to current exception event record */ +static struct exception_event_record * current_exception_event; + +/* Indicator of whether exception catchpoints should be nuked + between runs of a program */ +int exception_catchpoints_are_fragile = 0; + +/* Indicator of when exception catchpoints set-up should be + reinitialized -- e.g. when program is re-run */ +int exception_support_initialized = 0; + +/* This function returns a pointer to the string representation of the + pathname of the dynamically-linked library that has just been + loaded. + + This function must be used only when SOLIB_HAVE_LOAD_EVENT is TRUE, + or undefined results are guaranteed. + + This string's contents are only valid immediately after the + inferior has stopped in the dynamic linker hook, and becomes + invalid as soon as the inferior is continued. Clients should make + a copy of this string if they wish to continue the inferior and + then access the string. */ + +#ifndef SOLIB_LOADED_LIBRARY_PATHNAME +#define SOLIB_LOADED_LIBRARY_PATHNAME(pid) "" +#endif + +/* This function returns a pointer to the string representation of the + pathname of the dynamically-linked library that has just been + unloaded. + + This function must be used only when SOLIB_HAVE_UNLOAD_EVENT is + TRUE, or undefined results are guaranteed. + + This string's contents are only valid immediately after the + inferior has stopped in the dynamic linker hook, and becomes + invalid as soon as the inferior is continued. Clients should make + a copy of this string if they wish to continue the inferior and + then access the string. */ + +#ifndef SOLIB_UNLOADED_LIBRARY_PATHNAME +#define SOLIB_UNLOADED_LIBRARY_PATHNAME(pid) "" +#endif + +/* This function is called by the "catch load" command. It allows the + debugger to be notified by the dynamic linker when a specified + library file (or any library file, if filename is NULL) is loaded. */ + +#ifndef SOLIB_CREATE_CATCH_LOAD_HOOK +#define SOLIB_CREATE_CATCH_LOAD_HOOK(pid,tempflag,filename,cond_string) \ + error ("catch of library loads not yet implemented on this platform") +#endif + +/* This function is called by the "catch unload" command. It allows + the debugger to be notified by the dynamic linker when a specified + library file (or any library file, if filename is NULL) is + unloaded. */ + +#ifndef SOLIB_CREATE_CATCH_UNLOAD_HOOK +#define SOLIB_CREATE_CATCH_UNLOAD_HOOK(pid,tempflag,filename,cond_string) \ + error ("catch of library unloads not yet implemented on this platform") +#endif + +/* Set breakpoint count to NUM. */ + +void +set_breakpoint_count (num) + int num; +{ + breakpoint_count = num; + set_internalvar (lookup_internalvar ("bpnum"), + value_from_longest (builtin_type_int, (LONGEST) num)); +} + +/* Used in run_command to zero the hit count when a new run starts. */ + +void +clear_breakpoint_hit_counts () +{ + struct breakpoint *b; + + ALL_BREAKPOINTS (b) + b->hit_count = 0; +} + +/* Default address, symtab and line to put a breakpoint at + for "break" command with no arg. + if default_breakpoint_valid is zero, the other three are + not valid, and "break" with no arg is an error. + + This set by print_stack_frame, which calls set_default_breakpoint. */ + +int default_breakpoint_valid; +CORE_ADDR default_breakpoint_address; +struct symtab *default_breakpoint_symtab; +int default_breakpoint_line; + +/* *PP is a string denoting a breakpoint. Get the number of the breakpoint. + Advance *PP after the string and any trailing whitespace. + + Currently the string can either be a number or "$" followed by the name + of a convenience variable. Making it an expression wouldn't work well + for map_breakpoint_numbers (e.g. "4 + 5 + 6"). */ +static int +get_number (pp) + char **pp; +{ + int retval; + char *p = *pp; + + if (p == NULL) + /* Empty line means refer to the last breakpoint. */ + return breakpoint_count; + else if (*p == '$') + { + /* Make a copy of the name, so we can null-terminate it + to pass to lookup_internalvar(). */ + char *varname; + char *start = ++p; + value_ptr val; + + while (isalnum (*p) || *p == '_') + p++; + varname = (char *) alloca (p - start + 1); + strncpy (varname, start, p - start); + varname[p - start] = '\0'; + val = value_of_internalvar (lookup_internalvar (varname)); + if (TYPE_CODE (VALUE_TYPE (val)) != TYPE_CODE_INT) + error ( +"Convenience variables used to specify breakpoints must have integer values." + ); + retval = (int) value_as_long (val); + } + else + { + if (*p == '-') + ++p; + while (*p >= '0' && *p <= '9') + ++p; + if (p == *pp) + /* There is no number here. (e.g. "cond a == b"). */ + error_no_arg ("breakpoint number"); + retval = atoi (*pp); + } + if (!(isspace (*p) || *p == '\0')) + error ("breakpoint number expected"); + while (isspace (*p)) + p++; + *pp = p; + return retval; +} + +/* condition N EXP -- set break condition of breakpoint N to EXP. */ + +static void +condition_command (arg, from_tty) + char *arg; + int from_tty; +{ + register struct breakpoint *b; + char *p; + register int bnum; + + if (arg == 0) + error_no_arg ("breakpoint number"); + + p = arg; + bnum = get_number (&p); + + ALL_BREAKPOINTS (b) + if (b->number == bnum) + { + if (b->cond) + { + free ((PTR)b->cond); + b->cond = 0; + } + if (b->cond_string != NULL) + free ((PTR)b->cond_string); + + if (*p == 0) + { + b->cond = 0; + b->cond_string = NULL; + if (from_tty) + printf_filtered ("Breakpoint %d now unconditional.\n", bnum); + } + else + { + arg = p; + /* I don't know if it matters whether this is the string the user + typed in or the decompiled expression. */ + b->cond_string = savestring (arg, strlen (arg)); + b->cond = parse_exp_1 (&arg, block_for_pc (b->address), 0); + if (*arg) + error ("Junk at end of expression"); + } + breakpoints_changed (); + return; + } + + error ("No breakpoint number %d.", bnum); +} + +/* ARGSUSED */ +static void +commands_command (arg, from_tty) + char *arg; + int from_tty; +{ + register struct breakpoint *b; + char *p; + register int bnum; + struct command_line *l; + + /* If we allowed this, we would have problems with when to + free the storage, if we change the commands currently + being read from. */ + + if (executing_breakpoint_commands) + error ("Can't use the \"commands\" command among a breakpoint's commands."); + + p = arg; + bnum = get_number (&p); + if (p && *p) + error ("Unexpected extra arguments following breakpoint number."); + + ALL_BREAKPOINTS (b) + if (b->number == bnum) + { + char tmpbuf[128]; + sprintf (tmpbuf, "Type commands for when breakpoint %d is hit, one per line.", bnum); + l = read_command_lines (tmpbuf, from_tty); + free_command_lines (&b->commands); + b->commands = l; + breakpoints_changed (); + return; + } + error ("No breakpoint number %d.", bnum); +} + +/* Like target_read_memory() but if breakpoints are inserted, return + the shadow contents instead of the breakpoints themselves. + + Read "memory data" from whatever target or inferior we have. + Returns zero if successful, errno value if not. EIO is used + for address out of bounds. If breakpoints are inserted, returns + shadow contents, not the breakpoints themselves. From breakpoint.c. */ + +int +read_memory_nobpt (memaddr, myaddr, len) + CORE_ADDR memaddr; + char *myaddr; + unsigned len; +{ + int status; + struct breakpoint *b; + CORE_ADDR bp_addr = 0; + int bp_size = 0; + + if (BREAKPOINT_FROM_PC (&bp_addr, &bp_size) == NULL) + /* No breakpoints on this machine. */ + return target_read_memory (memaddr, myaddr, len); + + ALL_BREAKPOINTS (b) + { + if (b->type == bp_none) + warning ("attempted to read through apparently deleted breakpoint #%d?\n", b->number); + + /* memory breakpoint? */ + if (b->type == bp_watchpoint + || b->type == bp_hardware_watchpoint + || b->type == bp_read_watchpoint + || b->type == bp_access_watchpoint) + continue; + /* bp in memory? */ + if (!b->inserted) + continue; + /* Addresses and length of the part of the breakpoint that + we need to copy. */ + /* XXXX The m68k, sh and h8300 have different local and remote + breakpoint values. BREAKPOINT_FROM_PC still manages to + correctly determine the breakpoints memory address and size + for these targets. */ + bp_addr = b->address; + bp_size = 0; + if (BREAKPOINT_FROM_PC (&bp_addr, &bp_size) == NULL) + continue; + if (bp_size == 0) + /* bp isn't valid */ + continue; + if (bp_addr + bp_size <= memaddr) + /* The breakpoint is entirely before the chunk of memory we + are reading. */ + continue; + if (bp_addr >= memaddr + len) + /* The breakpoint is entirely after the chunk of memory we are + reading. */ + continue; + /* Copy the breakpoint from the shadow contents, and recurse for + the things before and after. */ + { + /* Offset within shadow_contents. */ + int bptoffset = 0; + + if (bp_addr < memaddr) + { + /* Only copy the second part of the breakpoint. */ + bp_size -= memaddr - bp_addr; + bptoffset = memaddr - bp_addr; + bp_addr = memaddr; + } + + if (bp_addr + bp_size > memaddr + len) + { + /* Only copy the first part of the breakpoint. */ + bp_size -= (bp_addr + bp_size) - (memaddr + len); + } + + memcpy (myaddr + bp_addr - memaddr, + b->shadow_contents + bptoffset, bp_size); + + if (bp_addr > memaddr) + { + /* Copy the section of memory before the breakpoint. */ + status = read_memory_nobpt (memaddr, myaddr, bp_addr - memaddr); + if (status != 0) + return status; + } + + if (bp_addr + bp_size < memaddr + len) + { + /* Copy the section of memory after the breakpoint. */ + status = read_memory_nobpt + (bp_addr + bp_size, + myaddr + bp_addr + bp_size - memaddr, + memaddr + len - (bp_addr + bp_size)); + if (status != 0) + return status; + } + return 0; + } + } + /* Nothing overlaps. Just call read_memory_noerr. */ + return target_read_memory (memaddr, myaddr, len); +} + + +/* insert_breakpoints is used when starting or continuing the program. + remove_breakpoints is used when the program stops. + Both return zero if successful, + or an `errno' value if could not write the inferior. */ + +int +insert_breakpoints () +{ + register struct breakpoint *b, *temp; + int val = 0; + int disabled_breaks = 0; + + static char message1[] = "Error inserting catchpoint %d:\n"; + static char message[sizeof (message1) + 30]; + + + ALL_BREAKPOINTS_SAFE (b, temp) + { + if (b->type != bp_watchpoint + && b->type != bp_hardware_watchpoint + && b->type != bp_read_watchpoint + && b->type != bp_access_watchpoint + && b->type != bp_catch_fork + && b->type != bp_catch_vfork + && b->type != bp_catch_exec + && b->type != bp_catch_throw + && b->type != bp_catch_catch + && b->enable != disabled + && b->enable != shlib_disabled + && b->enable != call_disabled + && ! b->inserted + && ! b->duplicate) + { + if (b->type == bp_hardware_breakpoint) + val = target_insert_hw_breakpoint(b->address, b->shadow_contents); + else + { + /* Check to see if breakpoint is in an overlay section; + if so, we should set the breakpoint at the LMA address. + Only if the section is currently mapped should we ALSO + set a break at the VMA address. */ + if (overlay_debugging && b->section && + section_is_overlay (b->section)) + { + CORE_ADDR addr; + + addr = overlay_unmapped_address (b->address, b->section); + val = target_insert_breakpoint (addr, b->shadow_contents); + /* This would be the time to check val, to see if the + breakpoint write to the load address succeeded. + However, this might be an ordinary occurrance, eg. if + the unmapped overlay is in ROM. */ + val = 0; /* in case unmapped address failed */ + if (section_is_mapped (b->section)) + val = target_insert_breakpoint (b->address, + b->shadow_contents); + } + else /* ordinary (non-overlay) address */ + val = target_insert_breakpoint(b->address, b->shadow_contents); + } + if (val) + { + /* Can't set the breakpoint. */ +#if defined (DISABLE_UNSETTABLE_BREAK) + if (DISABLE_UNSETTABLE_BREAK (b->address)) + { + /* See also: disable_breakpoints_in_shlibs. */ + val = 0; + b->enable = shlib_disabled; + if (!disabled_breaks) + { + target_terminal_ours_for_output (); + fprintf_unfiltered (gdb_stderr, + "Cannot insert breakpoint %d:\n", b->number); + printf_filtered ("Temporarily disabling shared library breakpoints:\n"); + } + disabled_breaks = 1; + printf_filtered ("%d ", b->number); + } + else +#endif + { + target_terminal_ours_for_output (); + fprintf_unfiltered (gdb_stderr, "Cannot insert breakpoint %d:\n", b->number); +#ifdef ONE_PROCESS_WRITETEXT + fprintf_unfiltered (gdb_stderr, + "The same program may be running in another process.\n"); +#endif + memory_error (val, b->address); /* which bombs us out */ + } + } + else + b->inserted = 1; + } + else if (ep_is_exception_catchpoint (b) + && b->enable != disabled + && b->enable != shlib_disabled + && b->enable != call_disabled + && ! b->inserted + && ! b->duplicate) + + { + /* If we get here, we must have a callback mechanism for exception + events -- with g++ style embedded label support, we insert + ordinary breakpoints and not catchpoints. */ + sprintf (message, message1, b->number); /* Format possible error message */ + + val = target_insert_breakpoint(b->address, b->shadow_contents); + if (val) + { + /* Couldn't set breakpoint for some reason */ + target_terminal_ours_for_output (); + fprintf_unfiltered (gdb_stderr, + "Cannot insert catchpoint %d; disabling it\n", b->number); + b->enable = disabled; + } + else + { + /* Bp set, now make sure callbacks are enabled */ + int val; + args_for_catchpoint_enable args; + args.kind = b->type == bp_catch_catch ? EX_EVENT_CATCH : EX_EVENT_THROW; + args.enable = 1; + val = catch_errors (cover_target_enable_exception_callback, + &args, + message, RETURN_MASK_ALL); + if (val != 0 && val != -1) + { + b->inserted = 1; + } + /* Check if something went wrong; val == 0 can be ignored */ + if (val == -1) + { + /* something went wrong */ + target_terminal_ours_for_output (); + fprintf_unfiltered (gdb_stderr, "Cannot insert catchpoint %d; disabling it\n", b->number); + b->enable = disabled; + } + } + } + + else if ((b->type == bp_hardware_watchpoint || + b->type == bp_read_watchpoint || + b->type == bp_access_watchpoint) + && b->enable == enabled + && ! b->inserted + && ! b->duplicate) + { + struct frame_info *saved_frame; + int saved_level, within_current_scope; + value_ptr mark = value_mark (); + value_ptr v; + + /* Save the current frame and level so we can restore it after + evaluating the watchpoint expression on its own frame. */ + saved_frame = selected_frame; + saved_level = selected_frame_level; + + /* Determine if the watchpoint is within scope. */ + if (b->exp_valid_block == NULL) + within_current_scope = 1; + else + { + struct frame_info *fi; + + /* There might be no current frame at this moment if we are + resuming from a step over a breakpoint. + Set up current frame before trying to find the watchpoint + frame. */ + get_current_frame (); + fi = find_frame_addr_in_frame_chain (b->watchpoint_frame); + within_current_scope = (fi != NULL); + if (within_current_scope) + select_frame (fi, -1); + } + + if (within_current_scope) + { + /* Evaluate the expression and cut the chain of values + produced off from the value chain. */ + v = evaluate_expression (b->exp); + value_release_to_mark (mark); + + b->val_chain = v; + b->inserted = 1; + + /* Look at each value on the value chain. */ + for ( ; v; v=v->next) + { + /* If it's a memory location, then we must watch it. */ + if (v->lval == lval_memory) + { + int addr, len, type; + + addr = VALUE_ADDRESS (v) + VALUE_OFFSET (v); + len = TYPE_LENGTH (VALUE_TYPE (v)); + type = 0; + if (b->type == bp_read_watchpoint) + type = 1; + else if (b->type == bp_access_watchpoint) + type = 2; + + val = target_insert_watchpoint (addr, len, type); + if (val == -1) + { + b->inserted = 0; + break; + } + val = 0; + } + } + /* Failure to insert a watchpoint on any memory value in the + value chain brings us here. */ + if (!b->inserted) + warning ("Hardware watchpoint %d: Could not insert watchpoint\n", + b->number); + } + else + { + printf_filtered ("\ +Hardware watchpoint %d deleted because the program has left the block in\n\ +which its expression is valid.\n", b->number); + if (b->related_breakpoint) + b->related_breakpoint->disposition = del_at_next_stop; + b->disposition = del_at_next_stop; + } + + /* Restore the frame and level. */ + if ((saved_frame != selected_frame) || + (saved_level != selected_frame_level)) + select_and_print_frame (saved_frame, saved_level); + } + else if ((b->type == bp_catch_fork + || b->type == bp_catch_vfork + || b->type == bp_catch_exec) + && b->enable == enabled + && ! b->inserted + && ! b->duplicate) + { + val = -1; + switch (b->type) + { + case bp_catch_fork : + val = target_insert_fork_catchpoint (inferior_pid); + break; + case bp_catch_vfork : + val = target_insert_vfork_catchpoint (inferior_pid); + break; + case bp_catch_exec : + val = target_insert_exec_catchpoint (inferior_pid); + break; + } + if (val < 0) + { + target_terminal_ours_for_output (); + fprintf_unfiltered (gdb_stderr, "Cannot insert catchpoint %d:\n", b->number); + } + else + b->inserted = 1; + } + } + if (disabled_breaks) + printf_filtered ("\n"); + + return val; +} + + +int +remove_breakpoints () +{ + register struct breakpoint *b; + int val; + + ALL_BREAKPOINTS (b) + { + if (b->inserted) + { + val = remove_breakpoint (b, mark_uninserted); + if (val != 0) + return val; + } + } + return 0; +} + +int +reattach_breakpoints (pid) + int pid; +{ + register struct breakpoint *b; + int val; + int saved_inferior_pid = inferior_pid; + + inferior_pid = pid; /* Because remove_breakpoint will use this global. */ + ALL_BREAKPOINTS (b) + { + if (b->inserted) + { + remove_breakpoint (b, mark_inserted); + if (b->type == bp_hardware_breakpoint) + val = target_insert_hw_breakpoint(b->address, b->shadow_contents); + else + val = target_insert_breakpoint(b->address, b->shadow_contents); + if (val != 0) + { + inferior_pid = saved_inferior_pid; + return val; + } + } + } + inferior_pid = saved_inferior_pid; + return 0; +} + +void +update_breakpoints_after_exec () +{ + struct breakpoint * b; + struct breakpoint * temp; + + /* Doing this first prevents the badness of having delete_breakpoint() + write a breakpoint's current "shadow contents" to lift the bp. That + shadow is NOT valid after an exec()! */ + mark_breakpoints_out (); + + ALL_BREAKPOINTS_SAFE (b, temp) + { + /* Solib breakpoints must be explicitly reset after an exec(). */ + if (b->type == bp_shlib_event) + { + delete_breakpoint (b); + continue; + } + + /* Step-resume breakpoints are meaningless after an exec(). */ + if (b->type == bp_step_resume) + { + delete_breakpoint (b); + continue; + } + + /* Ditto the sigtramp handler breakpoints. */ + if (b->type == bp_through_sigtramp) + { + delete_breakpoint (b); + continue; + } + + /* Ditto the exception-handling catchpoints. */ + if ((b->type == bp_catch_catch) || (b->type == bp_catch_throw)) + { + delete_breakpoint (b); + continue; + } + + /* Don't delete an exec catchpoint, because else the inferior + won't stop when it ought! + + Similarly, we probably ought to keep vfork catchpoints, 'cause + on this target, we may not be able to stop when the vfork is seen, + but only when the subsequent exec is seen. (And because deleting + fork catchpoints here but not vfork catchpoints will seem mysterious + to users, keep those too.) + + ??rehrauer: Let's hope that merely clearing out this catchpoint's + target address field, if any, is sufficient to have it be reset + automagically. Certainly on HP-UX that's true. */ + if ((b->type == bp_catch_exec) || + (b->type == bp_catch_vfork) || + (b->type == bp_catch_fork)) + { + b->address = (CORE_ADDR) NULL; + continue; + } + + /* bp_finish is a special case. The only way we ought to be able + to see one of these when an exec() has happened, is if the user + caught a vfork, and then said "finish". Ordinarily a finish just + carries them to the call-site of the current callee, by setting + a temporary bp there and resuming. But in this case, the finish + will carry them entirely through the vfork & exec. + + We don't want to allow a bp_finish to remain inserted now. But + we can't safely delete it, 'cause finish_command has a handle to + the bp on a bpstat, and will later want to delete it. There's a + chance (and I've seen it happen) that if we delete the bp_finish + here, that its storage will get reused by the time finish_command + gets 'round to deleting the "use to be a bp_finish" breakpoint. + We really must allow finish_command to delete a bp_finish. + + In the absense of a general solution for the "how do we know it's + safe to delete something others may have handles to?" problem, what + we'll do here is just uninsert the bp_finish, and let finish_command + delete it. + + (We know the bp_finish is "doomed" in the sense that it's momentary, + and will be deleted as soon as finish_command sees the inferior stopped. + So it doesn't matter that the bp's address is probably bogus in the + new a.out, unlike e.g., the solib breakpoints.) */ + if (b->type == bp_finish) + { + continue; + } + + /* Without a symbolic address, we have little hope of the + pre-exec() address meaning the same thing in the post-exec() + a.out. */ + if (b->addr_string == NULL) + { + delete_breakpoint (b); + continue; + } + + /* If this breakpoint has survived the above battery of checks, then + it must have a symbolic address. Be sure that it gets reevaluated + to a target address, rather than reusing the old evaluation. */ + b->address = (CORE_ADDR) NULL; + } +} + +int +detach_breakpoints (pid) + int pid; +{ + register struct breakpoint *b; + int val; + int saved_inferior_pid = inferior_pid; + + if (pid == inferior_pid) + error ("Cannot detach breakpoints of inferior_pid"); + + inferior_pid = pid; /* Because remove_breakpoint will use this global. */ + ALL_BREAKPOINTS (b) + { + if (b->inserted) + { + val = remove_breakpoint (b, mark_inserted); + if (val != 0) + { + inferior_pid = saved_inferior_pid; + return val; + } + } + } + inferior_pid = saved_inferior_pid; + return 0; +} + +static int +remove_breakpoint (b, is) + struct breakpoint *b; + insertion_state_t is; +{ + int val; + + if (b->type == bp_none) + warning ("attempted to remove apparently deleted breakpoint #%d?\n", b->number); + + if (b->type != bp_watchpoint + && b->type != bp_hardware_watchpoint + && b->type != bp_read_watchpoint + && b->type != bp_access_watchpoint + && b->type != bp_catch_fork + && b->type != bp_catch_vfork + && b->type != bp_catch_exec + && b->type != bp_catch_catch + && b->type != bp_catch_throw) + + { + if (b->type == bp_hardware_breakpoint) + val = target_remove_hw_breakpoint(b->address, b->shadow_contents); + else + { + /* Check to see if breakpoint is in an overlay section; + if so, we should remove the breakpoint at the LMA address. + If that is not equal to the raw address, then we should + presumable remove the breakpoint there as well. */ + if (overlay_debugging && b->section && + section_is_overlay (b->section)) + { + CORE_ADDR addr; + + addr = overlay_unmapped_address (b->address, b->section); + val = target_remove_breakpoint (addr, b->shadow_contents); + /* This would be the time to check val, to see if the + shadow breakpoint write to the load address succeeded. + However, this might be an ordinary occurrance, eg. if + the unmapped overlay is in ROM. */ + val = 0; /* in case unmapped address failed */ + if (section_is_mapped (b->section)) + val = target_remove_breakpoint (b->address, + b->shadow_contents); + } + else /* ordinary (non-overlay) address */ + val = target_remove_breakpoint(b->address, b->shadow_contents); + } + if (val) + return val; + b->inserted = (is == mark_inserted); + } + else if ((b->type == bp_hardware_watchpoint || + b->type == bp_read_watchpoint || + b->type == bp_access_watchpoint) + && b->enable == enabled + && ! b->duplicate) + { + value_ptr v, n; + + b->inserted = (is == mark_inserted); + /* Walk down the saved value chain. */ + for (v = b->val_chain; v; v = v->next) + { + /* For each memory reference remove the watchpoint + at that address. */ + if (v->lval == lval_memory) + { + int addr, len, type; + + addr = VALUE_ADDRESS (v) + VALUE_OFFSET (v); + len = TYPE_LENGTH (VALUE_TYPE (v)); + type = 0; + if (b->type == bp_read_watchpoint) + type = 1; + else if (b->type == bp_access_watchpoint) + type = 2; + + val = target_remove_watchpoint (addr, len, type); + if (val == -1) + b->inserted = 1; + val = 0; + } + } + /* Failure to remove any of the hardware watchpoints comes here. */ + if ((is == mark_uninserted) && (b->inserted)) + warning ("Hardware watchpoint %d: Could not remove watchpoint\n", + b->number); + + /* Free the saved value chain. We will construct a new one + the next time the watchpoint is inserted. */ + for (v = b->val_chain; v; v = n) + { + n = v->next; + value_free (v); + } + b->val_chain = NULL; + } + else if ((b->type == bp_catch_fork || + b->type == bp_catch_vfork || + b->type == bp_catch_exec) + && b->enable == enabled + && ! b->duplicate) + { + val = -1; + switch (b->type) + { + case bp_catch_fork: + val = target_remove_fork_catchpoint (inferior_pid); + break; + case bp_catch_vfork : + val = target_remove_vfork_catchpoint (inferior_pid); + break; + case bp_catch_exec : + val = target_remove_exec_catchpoint (inferior_pid); + break; + } + if (val) + return val; + b->inserted = (is == mark_inserted); + } + else if ((b->type == bp_catch_catch || + b->type == bp_catch_throw) + && b->enable == enabled + && ! b->duplicate) + { + + val = target_remove_breakpoint(b->address, b->shadow_contents); + if (val) + return val; + b->inserted = (is == mark_inserted); + } + else if (ep_is_exception_catchpoint (b) + && b->inserted /* sometimes previous insert doesn't happen */ + && b->enable == enabled + && ! b->duplicate) + { + + val = target_remove_breakpoint(b->address, b->shadow_contents); + if (val) + return val; + + b->inserted = (is == mark_inserted); + } + + return 0; +} + +/* Clear the "inserted" flag in all breakpoints. */ + +void +mark_breakpoints_out () +{ + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + b->inserted = 0; +} + +/* Clear the "inserted" flag in all breakpoints and delete any breakpoints + which should go away between runs of the program. + + Plus other such housekeeping that has to be done for breakpoints + between runs. + + Note: this function gets called at the end of a run (by generic_mourn_inferior) + and when a run begins (by init_wait_for_inferior). */ + + + +void +breakpoint_init_inferior (context) + enum inf_context context; +{ + register struct breakpoint *b, *temp; + static int warning_needed = 0; + + ALL_BREAKPOINTS_SAFE (b, temp) + { + b->inserted = 0; + + switch (b->type) + { + case bp_call_dummy: + case bp_watchpoint_scope: + + /* If the call dummy breakpoint is at the entry point it will + cause problems when the inferior is rerun, so we better + get rid of it. + + Also get rid of scope breakpoints. */ + delete_breakpoint (b); + break; + + case bp_watchpoint: + case bp_hardware_watchpoint: + case bp_read_watchpoint: + case bp_access_watchpoint: + + /* Likewise for watchpoints on local expressions. */ + if (b->exp_valid_block != NULL) + delete_breakpoint (b); + break; + default: + /* Likewise for exception catchpoints in dynamic-linked + executables where required */ + if (ep_is_exception_catchpoint (b) && + exception_catchpoints_are_fragile) + { + warning_needed = 1; + delete_breakpoint (b); + } + break; + } + } + + if (exception_catchpoints_are_fragile) + exception_support_initialized = 0; + + /* Don't issue the warning unless it's really needed... */ + if (warning_needed && (context != inf_exited)) + { + warning ("Exception catchpoints from last run were deleted, you must reinsert them explicitly"); + warning_needed = 0; + } +} + +/* breakpoint_here_p (PC) returns 1 if an enabled breakpoint exists at PC. + When continuing from a location with a breakpoint, + we actually single step once before calling insert_breakpoints. */ + +int +breakpoint_here_p (pc) + CORE_ADDR pc; +{ + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if (b->enable == enabled + && b->enable != shlib_disabled + && b->enable != call_disabled + && b->address == pc) /* bp is enabled and matches pc */ + { + if (overlay_debugging && + section_is_overlay (b->section) && + !section_is_mapped (b->section)) + continue; /* unmapped overlay -- can't be a match */ + else + return 1; + } + + return 0; +} + +/* breakpoint_inserted_here_p (PC) is just like breakpoint_here_p(), but it + only returns true if there is actually a breakpoint inserted at PC. */ + +int +breakpoint_inserted_here_p (pc) + CORE_ADDR pc; +{ + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if (b->inserted + && b->address == pc) /* bp is inserted and matches pc */ + { + if (overlay_debugging && + section_is_overlay (b->section) && + !section_is_mapped (b->section)) + continue; /* unmapped overlay -- can't be a match */ + else + return 1; + } + + return 0; +} + +/* Return nonzero if FRAME is a dummy frame. We can't use PC_IN_CALL_DUMMY + because figuring out the saved SP would take too much time, at least using + get_saved_register on the 68k. This means that for this function to + work right a port must use the bp_call_dummy breakpoint. */ + +int +frame_in_dummy (frame) + struct frame_info *frame; +{ +#ifdef CALL_DUMMY +#ifdef USE_GENERIC_DUMMY_FRAMES + return generic_pc_in_call_dummy (frame->pc, frame->frame); +#else + struct breakpoint *b; + + ALL_BREAKPOINTS (b) + { + static ULONGEST dummy[] = CALL_DUMMY; + + if (b->type == bp_call_dummy + && b->frame == frame->frame + + /* We need to check the PC as well as the frame on the sparc, + for signals.exp in the testsuite. */ + && (frame->pc + >= (b->address + - sizeof (dummy) / sizeof (LONGEST) * REGISTER_SIZE)) + && frame->pc <= b->address) + return 1; + } +#endif /* GENERIC_DUMMY_FRAMES */ +#endif /* CALL_DUMMY */ + return 0; +} + +/* breakpoint_match_thread (PC, PID) returns true if the breakpoint at PC + is valid for process/thread PID. */ + +int +breakpoint_thread_match (pc, pid) + CORE_ADDR pc; + int pid; +{ + struct breakpoint *b; + int thread; + + thread = pid_to_thread_id (pid); + + ALL_BREAKPOINTS (b) + if (b->enable != disabled + && b->enable != shlib_disabled + && b->enable != call_disabled + && b->address == pc + && (b->thread == -1 || b->thread == thread)) + { + if (overlay_debugging && + section_is_overlay (b->section) && + !section_is_mapped (b->section)) + continue; /* unmapped overlay -- can't be a match */ + else + return 1; + } + + return 0; +} + + +/* bpstat stuff. External routines' interfaces are documented + in breakpoint.h. */ + +int +ep_is_catchpoint (ep) + struct breakpoint * ep; +{ + return + (ep->type == bp_catch_load) + || (ep->type == bp_catch_unload) + || (ep->type == bp_catch_fork) + || (ep->type == bp_catch_vfork) + || (ep->type == bp_catch_exec) + || (ep->type == bp_catch_catch) + || (ep->type == bp_catch_throw) + + + /* ??rehrauer: Add more kinds here, as are implemented... */ + ; +} + +int +ep_is_shlib_catchpoint (ep) + struct breakpoint * ep; +{ + return + (ep->type == bp_catch_load) + || (ep->type == bp_catch_unload) + ; +} + +int +ep_is_exception_catchpoint (ep) + struct breakpoint * ep; +{ + return + (ep->type == bp_catch_catch) + || (ep->type == bp_catch_throw) + ; +} + +/* Clear a bpstat so that it says we are not at any breakpoint. + Also free any storage that is part of a bpstat. */ + +void +bpstat_clear (bsp) + bpstat *bsp; +{ + bpstat p; + bpstat q; + + if (bsp == 0) + return; + p = *bsp; + while (p != NULL) + { + q = p->next; + if (p->old_val != NULL) + value_free (p->old_val); + free ((PTR)p); + p = q; + } + *bsp = NULL; +} + +/* Return a copy of a bpstat. Like "bs1 = bs2" but all storage that + is part of the bpstat is copied as well. */ + +bpstat +bpstat_copy (bs) + bpstat bs; +{ + bpstat p = NULL; + bpstat tmp; + bpstat retval = NULL; + + if (bs == NULL) + return bs; + + for (; bs != NULL; bs = bs->next) + { + tmp = (bpstat) xmalloc (sizeof (*tmp)); + memcpy (tmp, bs, sizeof (*tmp)); + if (p == NULL) + /* This is the first thing in the chain. */ + retval = tmp; + else + p->next = tmp; + p = tmp; + } + p->next = NULL; + return retval; +} + +/* Find the bpstat associated with this breakpoint */ + +bpstat +bpstat_find_breakpoint(bsp, breakpoint) + bpstat bsp; + struct breakpoint *breakpoint; +{ + if (bsp == NULL) return NULL; + + for (;bsp != NULL; bsp = bsp->next) { + if (bsp->breakpoint_at == breakpoint) return bsp; + } + return NULL; +} + +/* Find a step_resume breakpoint associated with this bpstat. + (If there are multiple step_resume bp's on the list, this function + will arbitrarily pick one.) + + It is an error to use this function if BPSTAT doesn't contain a + step_resume breakpoint. + + See wait_for_inferior's use of this function. */ +struct breakpoint * +bpstat_find_step_resume_breakpoint (bsp) + bpstat bsp; +{ + if (bsp == NULL) + error ("Internal error (bpstat_find_step_resume_breakpoint)"); + + for (; bsp != NULL; bsp = bsp->next) + { + if ((bsp->breakpoint_at != NULL) && + (bsp->breakpoint_at->type == bp_step_resume)) + return bsp->breakpoint_at; + } + + error ("Internal error (no step_resume breakpoint found)"); +} + + +/* Return the breakpoint number of the first breakpoint we are stopped + at. *BSP upon return is a bpstat which points to the remaining + breakpoints stopped at (but which is not guaranteed to be good for + anything but further calls to bpstat_num). + Return 0 if passed a bpstat which does not indicate any breakpoints. */ + +int +bpstat_num (bsp) + bpstat *bsp; +{ + struct breakpoint *b; + + if ((*bsp) == NULL) + return 0; /* No more breakpoint values */ + else + { + b = (*bsp)->breakpoint_at; + *bsp = (*bsp)->next; + if (b == NULL) + return -1; /* breakpoint that's been deleted since */ + else + return b->number; /* We have its number */ + } +} + +/* Modify BS so that the actions will not be performed. */ + +void +bpstat_clear_actions (bs) + bpstat bs; +{ + for (; bs != NULL; bs = bs->next) + { + bs->commands = NULL; + if (bs->old_val != NULL) + { + value_free (bs->old_val); + bs->old_val = NULL; + } + } +} + +/* Stub for cleaning up our state if we error-out of a breakpoint command */ +/* ARGSUSED */ +static void +cleanup_executing_breakpoints (ignore) + PTR ignore; +{ + executing_breakpoint_commands = 0; +} + +/* Execute all the commands associated with all the breakpoints at this + location. Any of these commands could cause the process to proceed + beyond this point, etc. We look out for such changes by checking + the global "breakpoint_proceeded" after each command. */ + +void +bpstat_do_actions (bsp) + bpstat *bsp; +{ + bpstat bs; + struct cleanup *old_chain; + struct command_line *cmd; + + /* Avoid endless recursion if a `source' command is contained + in bs->commands. */ + if (executing_breakpoint_commands) + return; + + executing_breakpoint_commands = 1; + old_chain = make_cleanup (cleanup_executing_breakpoints, 0); + +top: + /* Note that (as of this writing), our callers all appear to + be passing us the address of global stop_bpstat. And, if + our calls to execute_control_command cause the inferior to + proceed, that global (and hence, *bsp) will change. + + We must be careful to not touch *bsp unless the inferior + has not proceeded. */ + + /* This pointer will iterate over the list of bpstat's. */ + bs = *bsp; + + breakpoint_proceeded = 0; + for (; bs != NULL; bs = bs->next) + { + cmd = bs->commands; + while (cmd != NULL) + { + execute_control_command (cmd); + + if (breakpoint_proceeded) + break; + else + cmd = cmd->next; + } + if (breakpoint_proceeded) + /* The inferior is proceeded by the command; bomb out now. + The bpstat chain has been blown away by wait_for_inferior. + But since execution has stopped again, there is a new bpstat + to look at, so start over. */ + goto top; + else + bs->commands = NULL; + } + + executing_breakpoint_commands = 0; + discard_cleanups (old_chain); +} + +/* This is the normal print_it function for a bpstat. In the future, + much of this logic could (should?) be moved to bpstat_stop_status, + by having it set different print_it functions. + + Current scheme: When we stop, bpstat_print() is called. + It loops through the bpstat list of things causing this stop, + calling the print_it function for each one. The default + print_it function, used for breakpoints, is print_it_normal(). + (Also see print_it_noop() and print_it_done()). + + Return values from this routine (used by bpstat_print() to + decide what to do): + 1: Means we printed something, and we do *not* desire that + something to be followed by a location. + 0: Means we printed something, and we *do* desire that + something to be followed by a location. + -1: Means we printed nothing. */ + +static int +print_it_normal (bs) + bpstat bs; +{ + /* bs->breakpoint_at can be NULL if it was a momentary breakpoint + which has since been deleted. */ + if (bs->breakpoint_at == NULL + || (bs->breakpoint_at->type != bp_breakpoint + && bs->breakpoint_at->type != bp_catch_load + && bs->breakpoint_at->type != bp_catch_unload + && bs->breakpoint_at->type != bp_catch_fork + && bs->breakpoint_at->type != bp_catch_vfork + && bs->breakpoint_at->type != bp_catch_exec + && bs->breakpoint_at->type != bp_catch_catch + && bs->breakpoint_at->type != bp_catch_throw + && bs->breakpoint_at->type != bp_hardware_breakpoint + && bs->breakpoint_at->type != bp_watchpoint + && bs->breakpoint_at->type != bp_read_watchpoint + && bs->breakpoint_at->type != bp_access_watchpoint + && bs->breakpoint_at->type != bp_hardware_watchpoint)) + return -1; + + if (ep_is_shlib_catchpoint (bs->breakpoint_at)) + { + annotate_catchpoint (bs->breakpoint_at->number); + printf_filtered ("\nCatchpoint %d (", bs->breakpoint_at->number); + if (bs->breakpoint_at->type == bp_catch_load) + printf_filtered ("loaded"); + else if (bs->breakpoint_at->type == bp_catch_unload) + printf_filtered ("unloaded"); + printf_filtered (" %s), ", bs->breakpoint_at->triggered_dll_pathname); + return 0; + } + else if (bs->breakpoint_at->type == bp_catch_fork || + bs->breakpoint_at->type == bp_catch_vfork) + { + annotate_catchpoint (bs->breakpoint_at->number); + printf_filtered ("\nCatchpoint %d (", bs->breakpoint_at->number); + if (bs->breakpoint_at->type == bp_catch_fork) + printf_filtered ("forked"); + else if (bs->breakpoint_at->type == bp_catch_vfork) + printf_filtered ("vforked"); + printf_filtered (" process %d), ", bs->breakpoint_at->forked_inferior_pid); + return 0; + } + else if (bs->breakpoint_at->type == bp_catch_exec) + { + annotate_catchpoint (bs->breakpoint_at->number); + printf_filtered ("\nCatchpoint %d (exec'd %s), ", + bs->breakpoint_at->number, + bs->breakpoint_at->exec_pathname); + return 0; + } + else if (bs->breakpoint_at->type == bp_catch_catch) + { + if (current_exception_event && (CURRENT_EXCEPTION_KIND == EX_EVENT_CATCH)) + { + annotate_catchpoint (bs->breakpoint_at->number); + printf_filtered ("\nCatchpoint %d (exception caught), ", bs->breakpoint_at->number); + printf_filtered ("throw location "); + if (CURRENT_EXCEPTION_THROW_PC && CURRENT_EXCEPTION_THROW_LINE) + printf_filtered ("%s:%d", + CURRENT_EXCEPTION_THROW_FILE, + CURRENT_EXCEPTION_THROW_LINE); + else + printf_filtered ("unknown"); + + printf_filtered (", catch location "); + if (CURRENT_EXCEPTION_CATCH_PC && CURRENT_EXCEPTION_CATCH_LINE) + printf_filtered ("%s:%d", + CURRENT_EXCEPTION_CATCH_FILE, + CURRENT_EXCEPTION_CATCH_LINE); + else + printf_filtered ("unknown"); + + printf_filtered ("\n"); + return 1; /* don't bother to print location frame info */ + } + else + { + return -1; /* really throw, some other bpstat will handle it */ + } + } + else if (bs->breakpoint_at->type == bp_catch_throw) + { + if (current_exception_event && (CURRENT_EXCEPTION_KIND == EX_EVENT_THROW)) + { + annotate_catchpoint (bs->breakpoint_at->number); + printf_filtered ("\nCatchpoint %d (exception thrown), ", bs->breakpoint_at->number); + printf_filtered ("throw location "); + if (CURRENT_EXCEPTION_THROW_PC && CURRENT_EXCEPTION_THROW_LINE) + printf_filtered ("%s:%d", + CURRENT_EXCEPTION_THROW_FILE, + CURRENT_EXCEPTION_THROW_LINE); + else + printf_filtered ("unknown"); + + printf_filtered (", catch location "); + if (CURRENT_EXCEPTION_CATCH_PC && CURRENT_EXCEPTION_CATCH_LINE) + printf_filtered ("%s:%d", + CURRENT_EXCEPTION_CATCH_FILE, + CURRENT_EXCEPTION_CATCH_LINE); + else + printf_filtered ("unknown"); + + printf_filtered ("\n"); + return 1; /* don't bother to print location frame info */ + } + else + { + return -1; /* really catch, some other bpstat willhandle it */ + } + } + + else if (bs->breakpoint_at->type == bp_breakpoint || + bs->breakpoint_at->type == bp_hardware_breakpoint) + { + /* I think the user probably only wants to see one breakpoint + number, not all of them. */ + annotate_breakpoint (bs->breakpoint_at->number); + printf_filtered ("\nBreakpoint %d, ", bs->breakpoint_at->number); + return 0; + } + else if ((bs->old_val != NULL) && + (bs->breakpoint_at->type == bp_watchpoint || + bs->breakpoint_at->type == bp_access_watchpoint || + bs->breakpoint_at->type == bp_hardware_watchpoint)) + { + annotate_watchpoint (bs->breakpoint_at->number); + mention (bs->breakpoint_at); + printf_filtered ("\nOld value = "); + value_print (bs->old_val, gdb_stdout, 0, Val_pretty_default); + printf_filtered ("\nNew value = "); + value_print (bs->breakpoint_at->val, gdb_stdout, 0, + Val_pretty_default); + printf_filtered ("\n"); + value_free (bs->old_val); + bs->old_val = NULL; + /* More than one watchpoint may have been triggered. */ + return -1; + } + else if (bs->breakpoint_at->type == bp_access_watchpoint || + bs->breakpoint_at->type == bp_read_watchpoint) + { + mention (bs->breakpoint_at); + printf_filtered ("\nValue = "); + value_print (bs->breakpoint_at->val, gdb_stdout, 0, + Val_pretty_default); + printf_filtered ("\n"); + return -1; + } + /* We can't deal with it. Maybe another member of the bpstat chain can. */ + return -1; +} + +/* Print a message indicating what happened. + This is called from normal_stop(). + The input to this routine is the head of the bpstat list - a list + of the eventpoints that caused this stop. + This routine calls the "print_it" routine(s) associated + with these eventpoints. This will print (for example) + the "Breakpoint n," part of the output. + The return value of this routine is one of: + + -1: Means we printed nothing + 0: Means we printed something, and expect subsequent + code to print the location. An example is + "Breakpoint 1, " which should be followed by + the location. + 1 : Means we printed something, but there is no need + to also print the location part of the message. + An example is the catch/throw messages, which + don't require a location appended to the end. */ + +int +bpstat_print (bs) + bpstat bs; +{ + int val; + + if (bs == NULL) + return -1; + + val = (*bs->print_it) (bs); + if (val >= 0) + return val; + + /* Maybe another breakpoint in the chain caused us to stop. + (Currently all watchpoints go on the bpstat whether hit or + not. That probably could (should) be changed, provided care is taken + with respect to bpstat_explains_signal). */ + if (bs->next) + return bpstat_print (bs->next); + + /* We reached the end of the chain without printing anything. */ + return -1; +} + +/* Evaluate the expression EXP and return 1 if value is zero. + This is used inside a catch_errors to evaluate the breakpoint condition. + The argument is a "struct expression *" that has been cast to char * to + make it pass through catch_errors. */ + +static int +breakpoint_cond_eval (exp) + PTR exp; +{ + value_ptr mark = value_mark (); + int i = !value_true (evaluate_expression ((struct expression *)exp)); + value_free_to_mark (mark); + return i; +} + +/* Allocate a new bpstat and chain it to the current one. */ + +static bpstat +bpstat_alloc (b, cbs) + register struct breakpoint *b; + bpstat cbs; /* Current "bs" value */ +{ + bpstat bs; + + bs = (bpstat) xmalloc (sizeof (*bs)); + cbs->next = bs; + bs->breakpoint_at = b; + /* If the condition is false, etc., don't do the commands. */ + bs->commands = NULL; + bs->old_val = NULL; + bs->print_it = print_it_normal; + return bs; +} + +/* Possible return values for watchpoint_check (this can't be an enum + because of check_errors). */ +/* The watchpoint has been deleted. */ +#define WP_DELETED 1 +/* The value has changed. */ +#define WP_VALUE_CHANGED 2 +/* The value has not changed. */ +#define WP_VALUE_NOT_CHANGED 3 + +#define BP_TEMPFLAG 1 +#define BP_HARDWAREFLAG 2 + +/* Check watchpoint condition. */ + +static int +watchpoint_check (p) + PTR p; +{ + bpstat bs = (bpstat) p; + struct breakpoint *b; + struct frame_info *fr; + int within_current_scope; + + b = bs->breakpoint_at; + + if (b->exp_valid_block == NULL) + within_current_scope = 1; + else + { + /* There is no current frame at this moment. If we're going to have + any chance of handling watchpoints on local variables, we'll need + the frame chain (so we can determine if we're in scope). */ + reinit_frame_cache(); + fr = find_frame_addr_in_frame_chain (b->watchpoint_frame); + within_current_scope = (fr != NULL); + if (within_current_scope) + /* If we end up stopping, the current frame will get selected + in normal_stop. So this call to select_frame won't affect + the user. */ + select_frame (fr, -1); + } + + if (within_current_scope) + { + /* We use value_{,free_to_}mark because it could be a + *long* time before we return to the command level and + call free_all_values. We can't call free_all_values because + we might be in the middle of evaluating a function call. */ + + value_ptr mark = value_mark (); + value_ptr new_val = evaluate_expression (bs->breakpoint_at->exp); + if (!value_equal (b->val, new_val)) + { + release_value (new_val); + value_free_to_mark (mark); + bs->old_val = b->val; + b->val = new_val; + /* We will stop here */ + return WP_VALUE_CHANGED; + } + else + { + /* Nothing changed, don't do anything. */ + value_free_to_mark (mark); + /* We won't stop here */ + return WP_VALUE_NOT_CHANGED; + } + } + else + { + /* This seems like the only logical thing to do because + if we temporarily ignored the watchpoint, then when + we reenter the block in which it is valid it contains + garbage (in the case of a function, it may have two + garbage values, one before and one after the prologue). + So we can't even detect the first assignment to it and + watch after that (since the garbage may or may not equal + the first value assigned). */ + printf_filtered ("\ +Watchpoint %d deleted because the program has left the block in\n\ +which its expression is valid.\n", bs->breakpoint_at->number); + if (b->related_breakpoint) + b->related_breakpoint->disposition = del_at_next_stop; + b->disposition = del_at_next_stop; + + return WP_DELETED; + } +} + +/* This is used when everything which needs to be printed has + already been printed. But we still want to print the frame. */ + +/* Background: When we stop, bpstat_print() is called. + It loops through the bpstat list of things causing this stop, + calling the print_it function for each one. The default + print_it function, used for breakpoints, is print_it_normal(). + Also see print_it_noop() and print_it_done() are the other + two possibilities. See comments in bpstat_print() and + in header of print_it_normal() for more detail. */ + +static int +print_it_done (bs) + bpstat bs; +{ + return 0; +} + +/* This is used when nothing should be printed for this bpstat entry. */ +/* Background: When we stop, bpstat_print() is called. + It loops through the bpstat list of things causing this stop, + calling the print_it function for each one. The default + print_it function, used for breakpoints, is print_it_normal(). + Also see print_it_noop() and print_it_done() are the other + two possibilities. See comments in bpstat_print() and + in header of print_it_normal() for more detail. */ + +static int +print_it_noop (bs) + bpstat bs; +{ + return -1; +} + +/* Get a bpstat associated with having just stopped at address *PC + and frame address CORE_ADDRESS. Update *PC to point at the + breakpoint (if we hit a breakpoint). NOT_A_BREAKPOINT is nonzero + if this is known to not be a real breakpoint (it could still be a + watchpoint, though). */ + +/* Determine whether we stopped at a breakpoint, etc, or whether we + don't understand this stop. Result is a chain of bpstat's such that: + + if we don't understand the stop, the result is a null pointer. + + if we understand why we stopped, the result is not null. + + Each element of the chain refers to a particular breakpoint or + watchpoint at which we have stopped. (We may have stopped for + several reasons concurrently.) + + Each element of the chain has valid next, breakpoint_at, + commands, FIXME??? fields. */ + +bpstat +bpstat_stop_status (pc, not_a_breakpoint) + CORE_ADDR *pc; + int not_a_breakpoint; +{ + register struct breakpoint *b, *temp; + CORE_ADDR bp_addr; + /* True if we've hit a breakpoint (as opposed to a watchpoint). */ + int real_breakpoint = 0; + /* Root of the chain of bpstat's */ + struct bpstats root_bs[1]; + /* Pointer to the last thing in the chain currently. */ + bpstat bs = root_bs; + static char message1[] = + "Error evaluating expression for watchpoint %d\n"; + char message[sizeof (message1) + 30 /* slop */]; + + /* Get the address where the breakpoint would have been. */ + bp_addr = *pc - DECR_PC_AFTER_BREAK; + + ALL_BREAKPOINTS_SAFE (b, temp) + { + if (b->enable == disabled + || b->enable == shlib_disabled + || b->enable == call_disabled) + continue; + + if (b->type != bp_watchpoint + && b->type != bp_hardware_watchpoint + && b->type != bp_read_watchpoint + && b->type != bp_access_watchpoint + && b->type != bp_hardware_breakpoint + && b->type != bp_catch_fork + && b->type != bp_catch_vfork + && b->type != bp_catch_exec + && b->type != bp_catch_catch + && b->type != bp_catch_throw) /* a non-watchpoint bp */ + if (b->address != bp_addr || /* address doesn't match or */ + (overlay_debugging && /* overlay doesn't match */ + section_is_overlay (b->section) && + !section_is_mapped (b->section))) + continue; + + if (b->type == bp_hardware_breakpoint + && b->address != (*pc - DECR_PC_AFTER_HW_BREAK)) + continue; + + if (b->type != bp_watchpoint + && b->type != bp_hardware_watchpoint + && b->type != bp_read_watchpoint + && b->type != bp_access_watchpoint + && not_a_breakpoint) + continue; + + /* Is this a catchpoint of a load or unload? If so, did we + get a load or unload of the specified library? If not, + ignore it. */ + if ((b->type == bp_catch_load) +#if defined(SOLIB_HAVE_LOAD_EVENT) + && (!SOLIB_HAVE_LOAD_EVENT(inferior_pid) + || ((b->dll_pathname != NULL) + && (strcmp (b->dll_pathname, SOLIB_LOADED_LIBRARY_PATHNAME(inferior_pid)) != 0))) +#endif + ) + continue; + + if ((b->type == bp_catch_unload) +#if defined(SOLIB_HAVE_UNLOAD_EVENT) + && (!SOLIB_HAVE_UNLOAD_EVENT(inferior_pid) + || ((b->dll_pathname != NULL) + && (strcmp (b->dll_pathname, SOLIB_UNLOADED_LIBRARY_PATHNAME(inferior_pid)) != 0))) +#endif + ) + continue; + + if ((b->type == bp_catch_fork) + && ! target_has_forked (inferior_pid, &b->forked_inferior_pid)) + continue; + + if ((b->type == bp_catch_vfork) + && ! target_has_vforked (inferior_pid, &b->forked_inferior_pid)) + continue; + + if ((b->type == bp_catch_exec) + && ! target_has_execd (inferior_pid, &b->exec_pathname)) + continue; + + if (ep_is_exception_catchpoint (b) && + !(current_exception_event = target_get_current_exception_event ())) + continue; + + /* Come here if it's a watchpoint, or if the break address matches */ + + bs = bpstat_alloc (b, bs); /* Alloc a bpstat to explain stop */ + + /* Watchpoints may change this, if not found to have triggered. */ + bs->stop = 1; + bs->print = 1; + + sprintf (message, message1, b->number); + if (b->type == bp_watchpoint || b->type == bp_hardware_watchpoint) + { + switch (catch_errors (watchpoint_check, bs, message, RETURN_MASK_ALL)) + { + case WP_DELETED: + /* We've already printed what needs to be printed. */ + bs->print_it = print_it_done; + /* Stop. */ + break; + case WP_VALUE_CHANGED: + /* Stop. */ + ++(b->hit_count); + break; + case WP_VALUE_NOT_CHANGED: + /* Don't stop. */ + bs->print_it = print_it_noop; + bs->stop = 0; + /* Don't consider this a hit. */ + --(b->hit_count); + continue; + default: + /* Can't happen. */ + /* FALLTHROUGH */ + case 0: + /* Error from catch_errors. */ + printf_filtered ("Watchpoint %d deleted.\n", b->number); + if (b->related_breakpoint) + b->related_breakpoint->disposition = del_at_next_stop; + b->disposition = del_at_next_stop; + /* We've already printed what needs to be printed. */ + bs->print_it = print_it_done; + + /* Stop. */ + break; + } + } + else if (b->type == bp_read_watchpoint || b->type == bp_access_watchpoint) + { + CORE_ADDR addr; + value_ptr v; + int found = 0; + + addr = target_stopped_data_address(); + if (addr == 0) continue; + for (v = b->val_chain; v; v = v->next) + { + if (v->lval == lval_memory) + { + CORE_ADDR vaddr; + + vaddr = VALUE_ADDRESS (v) + VALUE_OFFSET (v); + if (addr == vaddr) + found = 1; + } + } + if (found) + switch (catch_errors (watchpoint_check, bs, message, RETURN_MASK_ALL)) + { + case WP_DELETED: + /* We've already printed what needs to be printed. */ + bs->print_it = print_it_done; + /* Stop. */ + break; + case WP_VALUE_CHANGED: + case WP_VALUE_NOT_CHANGED: + /* Stop. */ + ++(b->hit_count); + break; + default: + /* Can't happen. */ + case 0: + /* Error from catch_errors. */ + printf_filtered ("Watchpoint %d deleted.\n", b->number); + if (b->related_breakpoint) + b->related_breakpoint->disposition = del_at_next_stop; + b->disposition = del_at_next_stop; + /* We've already printed what needs to be printed. */ + bs->print_it = print_it_done; + break; + } + } + else + { + /* By definition, an encountered breakpoint is a triggered + breakpoint. */ + ++(b->hit_count); + + real_breakpoint = 1; + } + + if (b->frame && b->frame != (get_current_frame ())->frame && + (b->type == bp_step_resume && + (INNER_THAN (get_current_frame ()->frame, b->frame)))) + bs->stop = 0; + else + { + int value_is_zero = 0; + + if (b->cond) + { + /* Need to select the frame, with all that implies + so that the conditions will have the right context. */ + select_frame (get_current_frame (), 0); + value_is_zero + = catch_errors (breakpoint_cond_eval, (b->cond), + "Error in testing breakpoint condition:\n", + RETURN_MASK_ALL); + /* FIXME-someday, should give breakpoint # */ + free_all_values (); + } + if (b->cond && value_is_zero) + { + bs->stop = 0; + /* Don't consider this a hit. */ + --(b->hit_count); + } + else if (b->ignore_count > 0) + { + b->ignore_count--; + bs->stop = 0; + } + else + { + /* We will stop here */ + if (b->disposition == disable) + b->enable = disabled; + bs->commands = b->commands; + if (b->silent) + bs->print = 0; + if (bs->commands && + (STREQ ("silent", bs->commands->line) || + (xdb_commands && STREQ ("Q", bs->commands->line)))) + { + bs->commands = bs->commands->next; + bs->print = 0; + } + } + } + /* Print nothing for this entry if we dont stop or if we dont print. */ + if (bs->stop == 0 || bs->print == 0) + bs->print_it = print_it_noop; + } + + bs->next = NULL; /* Terminate the chain */ + bs = root_bs->next; /* Re-grab the head of the chain */ + + if (real_breakpoint && bs) + { + if (bs->breakpoint_at->type == bp_hardware_breakpoint) + { + if (DECR_PC_AFTER_HW_BREAK != 0) + { + *pc = *pc - DECR_PC_AFTER_HW_BREAK; + write_pc (*pc); + } + } + else + { + if (DECR_PC_AFTER_BREAK != 0 || must_shift_inst_regs) + { + *pc = bp_addr; +#if defined (SHIFT_INST_REGS) + SHIFT_INST_REGS(); +#else /* No SHIFT_INST_REGS. */ + write_pc (bp_addr); +#endif /* No SHIFT_INST_REGS. */ + } + } + } + + /* The value of a hardware watchpoint hasn't changed, but the + intermediate memory locations we are watching may have. */ + if (bs && ! bs->stop && + (bs->breakpoint_at->type == bp_hardware_watchpoint || + bs->breakpoint_at->type == bp_read_watchpoint || + bs->breakpoint_at->type == bp_access_watchpoint)) + { + remove_breakpoints (); + insert_breakpoints (); + } + return bs; +} + +/* Tell what to do about this bpstat. */ +struct bpstat_what +bpstat_what (bs) + bpstat bs; +{ + /* Classify each bpstat as one of the following. */ + enum class { + /* This bpstat element has no effect on the main_action. */ + no_effect = 0, + + /* There was a watchpoint, stop but don't print. */ + wp_silent, + + /* There was a watchpoint, stop and print. */ + wp_noisy, + + /* There was a breakpoint but we're not stopping. */ + bp_nostop, + + /* There was a breakpoint, stop but don't print. */ + bp_silent, + + /* There was a breakpoint, stop and print. */ + bp_noisy, + + /* We hit the longjmp breakpoint. */ + long_jump, + + /* We hit the longjmp_resume breakpoint. */ + long_resume, + + /* We hit the step_resume breakpoint. */ + step_resume, + + /* We hit the through_sigtramp breakpoint. */ + through_sig, + + /* We hit the shared library event breakpoint. */ + shlib_event, + + /* We caught a shared library event. */ + catch_shlib_event, + + /* This is just used to count how many enums there are. */ + class_last + }; + + /* Here is the table which drives this routine. So that we can + format it pretty, we define some abbreviations for the + enum bpstat_what codes. */ +#define kc BPSTAT_WHAT_KEEP_CHECKING +#define ss BPSTAT_WHAT_STOP_SILENT +#define sn BPSTAT_WHAT_STOP_NOISY +#define sgl BPSTAT_WHAT_SINGLE +#define slr BPSTAT_WHAT_SET_LONGJMP_RESUME +#define clr BPSTAT_WHAT_CLEAR_LONGJMP_RESUME +#define clrs BPSTAT_WHAT_CLEAR_LONGJMP_RESUME_SINGLE +#define sr BPSTAT_WHAT_STEP_RESUME +#define ts BPSTAT_WHAT_THROUGH_SIGTRAMP +#define shl BPSTAT_WHAT_CHECK_SHLIBS +#define shlr BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK + +/* "Can't happen." Might want to print an error message. + abort() is not out of the question, but chances are GDB is just + a bit confused, not unusable. */ +#define err BPSTAT_WHAT_STOP_NOISY + + /* Given an old action and a class, come up with a new action. */ + /* One interesting property of this table is that wp_silent is the same + as bp_silent and wp_noisy is the same as bp_noisy. That is because + after stopping, the check for whether to step over a breakpoint + (BPSTAT_WHAT_SINGLE type stuff) is handled in proceed() without + reference to how we stopped. We retain separate wp_silent and bp_silent + codes in case we want to change that someday. */ + + /* step_resume entries: a step resume breakpoint overrides another + breakpoint of signal handling (see comment in wait_for_inferior + at first IN_SIGTRAMP where we set the step_resume breakpoint). */ + /* We handle the through_sigtramp_breakpoint the same way; having both + one of those and a step_resume_breakpoint is probably very rare (?). */ + + static const enum bpstat_what_main_action + table[(int)class_last][(int)BPSTAT_WHAT_LAST] = + { + /* old action */ + /* kc ss sn sgl slr clr clrs sr ts shl shlr + */ +/*no_effect*/ {kc, ss, sn, sgl, slr, clr, clrs, sr, ts, shl, shlr}, +/*wp_silent*/ {ss, ss, sn, ss, ss, ss, ss, sr, ts, shl, shlr}, +/*wp_noisy*/ {sn, sn, sn, sn, sn, sn, sn, sr, ts, shl, shlr}, +/*bp_nostop*/ {sgl, ss, sn, sgl, slr, clrs, clrs, sr, ts, shl, shlr}, +/*bp_silent*/ {ss, ss, sn, ss, ss, ss, ss, sr, ts, shl, shlr}, +/*bp_noisy*/ {sn, sn, sn, sn, sn, sn, sn, sr, ts, shl, shlr}, +/*long_jump*/ {slr, ss, sn, slr, err, err, err, sr, ts, shl, shlr}, +/*long_resume*/ {clr, ss, sn, clrs, err, err, err, sr, ts, shl, shlr}, +/*step_resume*/ {sr, sr, sr, sr, sr, sr, sr, sr, ts, shl, shlr}, +/*through_sig*/ {ts, ts, ts, ts, ts, ts, ts, ts, ts, shl, shlr}, +/*shlib*/ {shl, shl, shl, shl, shl, shl, shl, shl, ts, shl, shlr}, +/*catch_shlib*/ {shlr, shlr, shlr, shlr, shlr, shlr, shlr, shlr, ts, shlr, shlr} + }; + +#undef kc +#undef ss +#undef sn +#undef sgl +#undef slr +#undef clr +#undef clrs +#undef err +#undef sr +#undef ts +#undef shl +#undef shlr + enum bpstat_what_main_action current_action = BPSTAT_WHAT_KEEP_CHECKING; + struct bpstat_what retval; + + retval.call_dummy = 0; + for (; bs != NULL; bs = bs->next) + { + enum class bs_class = no_effect; + if (bs->breakpoint_at == NULL) + /* I suspect this can happen if it was a momentary breakpoint + which has since been deleted. */ + continue; + switch (bs->breakpoint_at->type) + { + case bp_none: + continue; + + case bp_breakpoint: + case bp_hardware_breakpoint: + case bp_until: + case bp_finish: + if (bs->stop) + { + if (bs->print) + bs_class = bp_noisy; + else + bs_class = bp_silent; + } + else + bs_class = bp_nostop; + break; + case bp_watchpoint: + case bp_hardware_watchpoint: + case bp_read_watchpoint: + case bp_access_watchpoint: + if (bs->stop) + { + if (bs->print) + bs_class = wp_noisy; + else + bs_class = wp_silent; + } + else + /* There was a watchpoint, but we're not stopping. This requires + no further action. */ + bs_class = no_effect; + break; + case bp_longjmp: + bs_class = long_jump; + break; + case bp_longjmp_resume: + bs_class = long_resume; + break; + case bp_step_resume: + if (bs->stop) + { + bs_class = step_resume; + } + else + /* It is for the wrong frame. */ + bs_class = bp_nostop; + break; + case bp_through_sigtramp: + bs_class = through_sig; + break; + case bp_watchpoint_scope: + bs_class = bp_nostop; + break; + case bp_shlib_event: + bs_class = shlib_event; + break; + case bp_catch_load: + case bp_catch_unload: + /* Only if this catchpoint triggered should we cause the + step-out-of-dld behaviour. Otherwise, we ignore this + catchpoint. */ + if (bs->stop) + bs_class = catch_shlib_event; + else + bs_class = no_effect; + break; + case bp_catch_fork: + case bp_catch_vfork: + case bp_catch_exec: + if (bs->stop) + { + if (bs->print) + bs_class = bp_noisy; + else + bs_class = bp_silent; + } + else + /* There was a catchpoint, but we're not stopping. This requires + no further action. */ + bs_class = no_effect; + break; + case bp_catch_catch: + if (!bs->stop || CURRENT_EXCEPTION_KIND != EX_EVENT_CATCH) + bs_class = bp_nostop; + else if (bs->stop) + bs_class = bs->print ? bp_noisy : bp_silent; + break; + case bp_catch_throw: + if (!bs->stop || CURRENT_EXCEPTION_KIND != EX_EVENT_THROW) + bs_class = bp_nostop; + else if (bs->stop) + bs_class = bs->print ? bp_noisy : bp_silent; + break; + case bp_call_dummy: + /* Make sure the action is stop (silent or noisy), so infrun.c + pops the dummy frame. */ + bs_class = bp_silent; + retval.call_dummy = 1; + break; + } + current_action = table[(int)bs_class][(int)current_action]; + } + retval.main_action = current_action; + return retval; +} + +/* Nonzero if we should step constantly (e.g. watchpoints on machines + without hardware support). This isn't related to a specific bpstat, + just to things like whether watchpoints are set. */ + +int +bpstat_should_step () +{ + struct breakpoint *b; + ALL_BREAKPOINTS (b) + if (b->enable == enabled && b->type == bp_watchpoint) + return 1; + return 0; +} + +/* Nonzero if there are enabled hardware watchpoints. */ +int +bpstat_have_active_hw_watchpoints () +{ + struct breakpoint *b; + ALL_BREAKPOINTS (b) + if ((b->enable == enabled) && + (b->inserted) && + ((b->type == bp_hardware_watchpoint) || + (b->type == bp_read_watchpoint) || + (b->type == bp_access_watchpoint))) + return 1; + return 0; +} + + +/* Given a bpstat that records zero or more triggered eventpoints, this + function returns another bpstat which contains only the catchpoints + on that first list, if any. */ +void +bpstat_get_triggered_catchpoints (ep_list, cp_list) + bpstat ep_list; + bpstat * cp_list; +{ + struct bpstats root_bs[1]; + bpstat bs = root_bs; + struct breakpoint * ep; + char * dll_pathname; + + bpstat_clear (cp_list); + root_bs->next = NULL; + + for (; ep_list != NULL; ep_list = ep_list->next ) + { + /* Is this eventpoint a catchpoint? If not, ignore it. */ + ep = ep_list->breakpoint_at; + if (ep == NULL) + break; + if ((ep->type != bp_catch_load) && + (ep->type != bp_catch_unload) && + (ep->type != bp_catch_catch) && + (ep->type != bp_catch_throw)) /* pai: (temp) ADD fork/vfork here!! */ + continue; + + /* Yes; add it to the list. */ + bs = bpstat_alloc (ep, bs); + *bs = *ep_list; + bs->next = NULL; + bs = root_bs->next; + +#if defined(SOLIB_ADD) + /* Also, for each triggered catchpoint, tag it with the name of + the library that caused this trigger. (We copy the name now, + because it's only guaranteed to be available NOW, when the + catchpoint triggers. Clients who may wish to know the name + later must get it from the catchpoint itself.) */ + if (ep->triggered_dll_pathname != NULL) + free (ep->triggered_dll_pathname); + if (ep->type == bp_catch_load) + dll_pathname = SOLIB_LOADED_LIBRARY_PATHNAME (inferior_pid); + else + dll_pathname = SOLIB_UNLOADED_LIBRARY_PATHNAME (inferior_pid); +#else + dll_pathname = NULL; +#endif + if (dll_pathname) + { + ep->triggered_dll_pathname = (char *) xmalloc (strlen (dll_pathname) + 1); + strcpy (ep->triggered_dll_pathname, dll_pathname); + } + else + ep->triggered_dll_pathname = NULL; + } + + *cp_list = bs; +} + +/* Print information on breakpoint number BNUM, or -1 if all. + If WATCHPOINTS is zero, process only breakpoints; if WATCHPOINTS + is nonzero, process only watchpoints. */ + +typedef struct { + enum bptype type; + char * description; +} ep_type_description_t; + +static void +breakpoint_1 (bnum, allflag) + int bnum; + int allflag; +{ + register struct breakpoint *b; + register struct command_line *l; + register struct symbol *sym; + CORE_ADDR last_addr = (CORE_ADDR)-1; + int found_a_breakpoint = 0; + static ep_type_description_t bptypes[] = + { + {bp_none, "?deleted?"}, + {bp_breakpoint, "breakpoint"}, + {bp_hardware_breakpoint, "hw breakpoint"}, + {bp_until, "until"}, + {bp_finish, "finish"}, + {bp_watchpoint, "watchpoint"}, + {bp_hardware_watchpoint, "hw watchpoint"}, + {bp_read_watchpoint, "read watchpoint"}, + {bp_access_watchpoint, "acc watchpoint"}, + {bp_longjmp, "longjmp"}, + {bp_longjmp_resume, "longjmp resume"}, + {bp_step_resume, "step resume"}, + {bp_through_sigtramp, "sigtramp"}, + {bp_watchpoint_scope, "watchpoint scope"}, + {bp_call_dummy, "call dummy"}, + {bp_shlib_event, "shlib events"}, + {bp_catch_load, "catch load"}, + {bp_catch_unload, "catch unload"}, + {bp_catch_fork, "catch fork"}, + {bp_catch_vfork, "catch vfork"}, + {bp_catch_exec, "catch exec"}, + {bp_catch_catch, "catch catch"}, + {bp_catch_throw, "catch throw"} + }; + + static char *bpdisps[] = {"del", "dstp", "dis", "keep"}; + static char bpenables[] = "nyn"; + char wrap_indent[80]; + + ALL_BREAKPOINTS (b) + if (bnum == -1 + || bnum == b->number) + { +/* We only print out user settable breakpoints unless the allflag is set. */ + if (!allflag + && b->type != bp_breakpoint + && b->type != bp_catch_load + && b->type != bp_catch_unload + && b->type != bp_catch_fork + && b->type != bp_catch_vfork + && b->type != bp_catch_exec + && b->type != bp_catch_catch + && b->type != bp_catch_throw + && b->type != bp_hardware_breakpoint + && b->type != bp_watchpoint + && b->type != bp_read_watchpoint + && b->type != bp_access_watchpoint + && b->type != bp_hardware_watchpoint) + continue; + + if (!found_a_breakpoint++) + { + annotate_breakpoints_headers (); + + annotate_field (0); + printf_filtered ("Num "); + annotate_field (1); + printf_filtered ("Type "); + annotate_field (2); + printf_filtered ("Disp "); + annotate_field (3); + printf_filtered ("Enb "); + if (addressprint) + { + annotate_field (4); + printf_filtered ("Address "); + } + annotate_field (5); + printf_filtered ("What\n"); + + annotate_breakpoints_table (); + } + + annotate_record (); + annotate_field (0); + printf_filtered ("%-3d ", b->number); + annotate_field (1); + if ((int)b->type > (sizeof(bptypes)/sizeof(bptypes[0]))) + error ("bptypes table does not describe type #%d.", (int)b->type); + if ((int)b->type != bptypes[(int)b->type].type) + error ("bptypes table does not describe type #%d?", (int)b->type); + printf_filtered ("%-14s ", bptypes[(int)b->type].description); + annotate_field (2); + printf_filtered ("%-4s ", bpdisps[(int)b->disposition]); + annotate_field (3); + printf_filtered ("%-3c ", bpenables[(int)b->enable]); + + strcpy (wrap_indent, " "); + if (addressprint) + strcat (wrap_indent, " "); + switch (b->type) + { + case bp_watchpoint: + case bp_hardware_watchpoint: + case bp_read_watchpoint: + case bp_access_watchpoint: + /* Field 4, the address, is omitted (which makes the columns + not line up too nicely with the headers, but the effect + is relatively readable). */ + annotate_field (5); + print_expression (b->exp, gdb_stdout); + break; + + case bp_catch_load: + case bp_catch_unload: + /* Field 4, the address, is omitted (which makes the columns + not line up too nicely with the headers, but the effect + is relatively readable). */ + annotate_field (5); + if (b->dll_pathname == NULL) + printf_filtered (" "); + else + printf_filtered ("library \"%s\" ", b->dll_pathname); + break; + + case bp_catch_fork: + case bp_catch_vfork: + /* Field 4, the address, is omitted (which makes the columns + not line up too nicely with the headers, but the effect + is relatively readable). */ + annotate_field (5); + if (b->forked_inferior_pid != 0) + printf_filtered ("process %d ", b->forked_inferior_pid); + break; + + case bp_catch_exec: + /* Field 4, the address, is omitted (which makes the columns + not line up too nicely with the headers, but the effect + is relatively readable). */ + annotate_field (5); + if (b->exec_pathname != NULL) + printf_filtered ("program \"%s\" ", b->exec_pathname); + break; + case bp_catch_catch: + /* Field 4, the address, is omitted (which makes the columns + not line up too nicely with the headers, but the effect + is relatively readable). */ + annotate_field (5); + printf_filtered ("exception catch "); + break; + case bp_catch_throw: + /* Field 4, the address, is omitted (which makes the columns + not line up too nicely with the headers, but the effect + is relatively readable). */ + annotate_field (5); + printf_filtered ("exception throw "); + break; + + case bp_breakpoint: + case bp_hardware_breakpoint: + case bp_until: + case bp_finish: + case bp_longjmp: + case bp_longjmp_resume: + case bp_step_resume: + case bp_through_sigtramp: + case bp_watchpoint_scope: + case bp_call_dummy: + case bp_shlib_event: + if (addressprint) + { + annotate_field (4); + /* FIXME-32x64: need a print_address_numeric with + field width */ + printf_filtered + ("%s ", + local_hex_string_custom + ((unsigned long) b->address, "08l")); + } + + annotate_field (5); + + last_addr = b->address; + if (b->source_file) + { + sym = find_pc_sect_function (b->address, b->section); + if (sym) + { + fputs_filtered ("in ", gdb_stdout); + fputs_filtered (SYMBOL_SOURCE_NAME (sym), gdb_stdout); + wrap_here (wrap_indent); + fputs_filtered (" at ", gdb_stdout); + } + fputs_filtered (b->source_file, gdb_stdout); + printf_filtered (":%d", b->line_number); + } + else + print_address_symbolic (b->address, gdb_stdout, demangle, " "); + break; + } + + if (b->thread != -1) + printf_filtered (" thread %d", b->thread ); + + printf_filtered ("\n"); + + if (b->frame) + { + annotate_field (6); + + printf_filtered ("\tstop only in stack frame at "); + print_address_numeric (b->frame, 1, gdb_stdout); + printf_filtered ("\n"); + } + + if (b->cond) + { + annotate_field (7); + + printf_filtered ("\tstop only if "); + print_expression (b->cond, gdb_stdout); + printf_filtered ("\n"); + } + + if (b->thread != -1) + { + /* FIXME should make an annotation for this */ + printf_filtered ("\tstop only in thread %d\n", b->thread); + } + + if (show_breakpoint_hit_counts && b->hit_count) + { + /* FIXME should make an annotation for this */ + if (ep_is_catchpoint (b)) + printf_filtered ("\tcatchpoint"); + else + printf_filtered ("\tbreakpoint"); + printf_filtered (" already hit %d time%s\n", + b->hit_count, (b->hit_count == 1 ? "" : "s")); + } + + if (b->ignore_count) + { + annotate_field (8); + + printf_filtered ("\tignore next %d hits\n", b->ignore_count); + } + + if ((l = b->commands)) + { + annotate_field (9); + + while (l) + { + print_command_line (l, 4); + l = l->next; + } + } + } + + if (!found_a_breakpoint) + { + if (bnum == -1) + printf_filtered ("No breakpoints or watchpoints.\n"); + else + printf_filtered ("No breakpoint or watchpoint number %d.\n", bnum); + } + else + /* Compare against (CORE_ADDR)-1 in case some compiler decides + that a comparison of an unsigned with -1 is always false. */ + if (last_addr != (CORE_ADDR)-1) + set_next_address (last_addr); + + annotate_breakpoints_table_end (); +} + +/* ARGSUSED */ +static void +breakpoints_info (bnum_exp, from_tty) + char *bnum_exp; + int from_tty; +{ + int bnum = -1; + + if (bnum_exp) + bnum = parse_and_eval_address (bnum_exp); + + breakpoint_1 (bnum, 0); +} + +#if MAINTENANCE_CMDS + +/* ARGSUSED */ +void +maintenance_info_breakpoints (bnum_exp, from_tty) + char *bnum_exp; + int from_tty; +{ + int bnum = -1; + + if (bnum_exp) + bnum = parse_and_eval_address (bnum_exp); + + breakpoint_1 (bnum, 1); +} + +#endif + +/* Print a message describing any breakpoints set at PC. */ + +static void +describe_other_breakpoints (pc, section) + CORE_ADDR pc; + asection *section; +{ + register int others = 0; + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if (b->address == pc) + if (overlay_debugging == 0 || + b->section == section) + others++; + if (others > 0) + { + printf_filtered ("Note: breakpoint%s ", (others > 1) ? "s" : ""); + ALL_BREAKPOINTS (b) + if (b->address == pc) + if (overlay_debugging == 0 || + b->section == section) + { + others--; + printf_filtered + ("%d%s%s ", + b->number, + ((b->enable == disabled || b->enable == shlib_disabled || b->enable == call_disabled) + ? " (disabled)" : ""), + (others > 1) ? "," : ((others == 1) ? " and" : "")); + } + printf_filtered ("also set at pc "); + print_address_numeric (pc, 1, gdb_stdout); + printf_filtered (".\n"); + } +} + +/* Set the default place to put a breakpoint + for the `break' command with no arguments. */ + +void +set_default_breakpoint (valid, addr, symtab, line) + int valid; + CORE_ADDR addr; + struct symtab *symtab; + int line; +{ + default_breakpoint_valid = valid; + default_breakpoint_address = addr; + default_breakpoint_symtab = symtab; + default_breakpoint_line = line; +} + +/* Rescan breakpoints at address ADDRESS, + marking the first one as "first" and any others as "duplicates". + This is so that the bpt instruction is only inserted once. */ + +static void +check_duplicates (address, section) + CORE_ADDR address; + asection *section; +{ + register struct breakpoint *b; + register int count = 0; + + if (address == 0) /* Watchpoints are uninteresting */ + return; + + ALL_BREAKPOINTS (b) + if (b->enable != disabled + && b->enable != shlib_disabled + && b->enable != call_disabled + && b->address == address + && (overlay_debugging == 0 || b->section == section)) + { + count++; + b->duplicate = count > 1; + } +} + +/* Low level routine to set a breakpoint. + Takes as args the three things that every breakpoint must have. + Returns the breakpoint object so caller can set other things. + Does not set the breakpoint number! + Does not print anything. + + ==> This routine should not be called if there is a chance of later + error(); otherwise it leaves a bogus breakpoint on the chain. Validate + your arguments BEFORE calling this routine! */ + +struct breakpoint * +set_raw_breakpoint (sal) + struct symtab_and_line sal; +{ + register struct breakpoint *b, *b1; + + b = (struct breakpoint *) xmalloc (sizeof (struct breakpoint)); + memset (b, 0, sizeof (*b)); + b->address = sal.pc; + if (sal.symtab == NULL) + b->source_file = NULL; + else + b->source_file = savestring (sal.symtab->filename, + strlen (sal.symtab->filename)); + b->section = sal.section; + b->language = current_language->la_language; + b->input_radix = input_radix; + b->thread = -1; + b->line_number = sal.line; + b->enable = enabled; + b->next = 0; + b->silent = 0; + b->ignore_count = 0; + b->commands = NULL; + b->frame = 0; + b->dll_pathname = NULL; + b->triggered_dll_pathname = NULL; + b->forked_inferior_pid = 0; + b->exec_pathname = NULL; + + /* Add this breakpoint to the end of the chain + so that a list of breakpoints will come out in order + of increasing numbers. */ + + b1 = breakpoint_chain; + if (b1 == 0) + breakpoint_chain = b; + else + { + while (b1->next) + b1 = b1->next; + b1->next = b; + } + + check_duplicates (sal.pc, sal.section); + breakpoints_changed (); + + return b; +} + +#ifdef GET_LONGJMP_TARGET + +static void +create_longjmp_breakpoint (func_name) + char *func_name; +{ + struct symtab_and_line sal; + struct breakpoint *b; + + INIT_SAL (&sal); /* initialize to zeroes */ + if (func_name != NULL) + { + struct minimal_symbol *m; + + m = lookup_minimal_symbol_text (func_name, NULL, (struct objfile *)NULL); + if (m) + sal.pc = SYMBOL_VALUE_ADDRESS (m); + else + return; + } + sal.section = find_pc_overlay (sal.pc); + b = set_raw_breakpoint (sal); + if (!b) return; + + b->type = func_name != NULL ? bp_longjmp : bp_longjmp_resume; + b->disposition = donttouch; + b->enable = disabled; + b->silent = 1; + if (func_name) + b->addr_string = strsave(func_name); + b->number = internal_breakpoint_number--; +} + +#endif /* #ifdef GET_LONGJMP_TARGET */ + +/* Call this routine when stepping and nexting to enable a breakpoint if we do + a longjmp(). When we hit that breakpoint, call + set_longjmp_resume_breakpoint() to figure out where we are going. */ + +void +enable_longjmp_breakpoint() +{ + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if (b->type == bp_longjmp) + { + b->enable = enabled; + check_duplicates (b->address, b->section); + } +} + +void +disable_longjmp_breakpoint() +{ + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if ( b->type == bp_longjmp + || b->type == bp_longjmp_resume) + { + b->enable = disabled; + check_duplicates (b->address, b->section); + } +} + +#ifdef SOLIB_ADD +void +remove_solib_event_breakpoints () +{ + register struct breakpoint *b, *temp; + + ALL_BREAKPOINTS_SAFE (b, temp) + if (b->type == bp_shlib_event) + delete_breakpoint (b); +} + +void +create_solib_event_breakpoint (address) + CORE_ADDR address; +{ + struct breakpoint *b; + struct symtab_and_line sal; + + INIT_SAL (&sal); /* initialize to zeroes */ + sal.pc = address; + sal.section = find_pc_overlay (sal.pc); + b = set_raw_breakpoint (sal); + b->number = internal_breakpoint_number--; + b->disposition = donttouch; + b->type = bp_shlib_event; +} + +void +disable_breakpoints_in_shlibs (silent) + int silent; +{ + struct breakpoint * b; + int disabled_shlib_breaks = 0; + + /* See also: insert_breakpoints, under DISABLE_UNSETTABLE_BREAK. */ + ALL_BREAKPOINTS (b) + { +#if defined (PC_SOLIB) + if (((b->type == bp_breakpoint) || + (b->type == bp_hardware_breakpoint)) && + (b->enable != shlib_disabled) && + (b->enable != call_disabled) && + ! b->duplicate && + PC_SOLIB (b->address)) + { + b->enable = shlib_disabled; + if (!silent) + { + if (!disabled_shlib_breaks) + { + target_terminal_ours_for_output (); + printf_filtered ("Temporarily disabling shared library breakpoints:\n"); + } + disabled_shlib_breaks = 1; + printf_filtered ("%d ", b->number); + } + } +#endif + } + if (disabled_shlib_breaks && !silent) + printf_filtered ("\n"); +} + +/* Try to reenable any breakpoints in shared libraries. */ +void +re_enable_breakpoints_in_shlibs () +{ + struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if (b->enable == shlib_disabled) + { + char buf[1]; + + /* Do not reenable the breakpoint if the shared library + is still not mapped in. */ + if (target_read_memory (b->address, buf, 1) == 0) + b->enable = enabled; + } +} + +#endif + +static void +create_solib_load_unload_event_breakpoint (hookname, tempflag, dll_pathname, cond_string, bp_kind) + char * hookname; + int tempflag; + char * dll_pathname; + char * cond_string; + enum bptype bp_kind; +{ + struct breakpoint * b; + struct symtabs_and_lines sals; + struct symtab_and_line sal; + struct cleanup * old_chain; + struct cleanup * canonical_strings_chain = NULL; + int i; + char * addr_start = hookname; + char * addr_end = NULL; + char ** canonical = (char **) NULL; + int thread = -1; /* All threads. */ + + /* Set a breakpoint on the specified hook. */ + sals = decode_line_1 (&hookname, 1, (struct symtab *) NULL, 0, &canonical); + addr_end = hookname; + + if (sals.nelts == 0) + { + warning ("Unable to set a breakpoint on dynamic linker callback."); + warning ("Suggest linking with /opt/langtools/lib/end.o."); + warning ("GDB will be unable to track shl_load/shl_unload calls"); + return; + } + if (sals.nelts != 1) + { + warning ("Unable to set a unique breakpoint on dynamic linker callback."); + warning ("GDB will be unable to track shl_load/shl_unload calls"); + return; + } + + /* Make sure that all storage allocated in decode_line_1 gets freed in case + the following errors out. */ + old_chain = make_cleanup (free, sals.sals); + if (canonical != (char **)NULL) + { + make_cleanup (free, canonical); + canonical_strings_chain = make_cleanup (null_cleanup, 0); + if (canonical[0] != NULL) + make_cleanup (free, canonical[0]); + } + + resolve_sal_pc (&sals.sals[0]); + + /* Remove the canonical strings from the cleanup, they are needed below. */ + if (canonical != (char **)NULL) + discard_cleanups (canonical_strings_chain); + + b = set_raw_breakpoint (sals.sals[0]); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->cond = NULL; + b->cond_string = (cond_string == NULL) ? NULL : savestring (cond_string, strlen (cond_string)); + b->thread = thread; + + if (canonical != (char **)NULL && canonical[0] != NULL) + b->addr_string = canonical[0]; + else if (addr_start) + b->addr_string = savestring (addr_start, addr_end - addr_start); + + b->enable = enabled; + b->disposition = tempflag ? del : donttouch; + + if (dll_pathname == NULL) + b->dll_pathname = NULL; + else + { + b->dll_pathname = (char *) xmalloc (strlen (dll_pathname) + 1); + strcpy (b->dll_pathname, dll_pathname); + } + b->type = bp_kind; + + mention (b); + do_cleanups (old_chain); +} + +void +create_solib_load_event_breakpoint (hookname, tempflag, dll_pathname, cond_string) + char * hookname; + int tempflag; + char * dll_pathname; + char * cond_string; +{ + create_solib_load_unload_event_breakpoint (hookname, + tempflag, + dll_pathname, + cond_string, + bp_catch_load); +} + +void +create_solib_unload_event_breakpoint (hookname, tempflag, dll_pathname, cond_string) + char * hookname; + int tempflag; + char * dll_pathname; + char * cond_string; +{ + create_solib_load_unload_event_breakpoint (hookname, + tempflag, + dll_pathname, + cond_string, + bp_catch_unload); +} + +static void +create_fork_vfork_event_catchpoint (tempflag, cond_string, bp_kind) + int tempflag; + char * cond_string; + enum bptype bp_kind; +{ + struct symtab_and_line sal; + struct breakpoint * b; + int thread = -1; /* All threads. */ + + INIT_SAL(&sal); + sal.pc = 0; + sal.symtab = NULL; + sal.line = 0; + + b = set_raw_breakpoint (sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->cond = NULL; + b->cond_string = (cond_string == NULL) ? NULL : savestring (cond_string, strlen (cond_string)); + b->thread = thread; + b->addr_string = NULL; + b->enable = enabled; + b->disposition = tempflag ? del : donttouch; + b->forked_inferior_pid = 0; + + b->type = bp_kind; + + mention (b); +} + +void +create_fork_event_catchpoint (tempflag, cond_string) + int tempflag; + char * cond_string; +{ + create_fork_vfork_event_catchpoint (tempflag, cond_string, bp_catch_fork); +} + +void +create_vfork_event_catchpoint (tempflag, cond_string) + int tempflag; + char * cond_string; +{ + create_fork_vfork_event_catchpoint (tempflag, cond_string, bp_catch_vfork); +} + +void +create_exec_event_catchpoint (tempflag, cond_string) + int tempflag; + char * cond_string; +{ + struct symtab_and_line sal; + struct breakpoint * b; + int thread = -1; /* All threads. */ + + INIT_SAL(&sal); + sal.pc = 0; + sal.symtab = NULL; + sal.line = 0; + + b = set_raw_breakpoint (sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->cond = NULL; + b->cond_string = (cond_string == NULL) ? NULL : savestring (cond_string, strlen (cond_string)); + b->thread = thread; + b->addr_string = NULL; + b->enable = enabled; + b->disposition = tempflag ? del : donttouch; + + b->type = bp_catch_exec; + + mention (b); +} + +static int +hw_breakpoint_used_count() +{ + register struct breakpoint *b; + int i = 0; + + ALL_BREAKPOINTS (b) + { + if (b->type == bp_hardware_breakpoint && b->enable == enabled) + i++; + } + + return i; +} + +static int +hw_watchpoint_used_count(type, other_type_used) + enum bptype type; + int *other_type_used; +{ + register struct breakpoint *b; + int i = 0; + + *other_type_used = 0; + ALL_BREAKPOINTS (b) + { + if (b->enable == enabled) + { + if (b->type == type) i++; + else if ((b->type == bp_hardware_watchpoint || + b->type == bp_read_watchpoint || + b->type == bp_access_watchpoint) + && b->enable == enabled) + *other_type_used = 1; + } + } + return i; +} + +/* Call this after hitting the longjmp() breakpoint. Use this to set a new + breakpoint at the target of the jmp_buf. + + FIXME - This ought to be done by setting a temporary breakpoint that gets + deleted automatically... */ + +void +set_longjmp_resume_breakpoint(pc, frame) + CORE_ADDR pc; + struct frame_info *frame; +{ + register struct breakpoint *b; + + ALL_BREAKPOINTS (b) + if (b->type == bp_longjmp_resume) + { + b->address = pc; + b->enable = enabled; + if (frame != NULL) + b->frame = frame->frame; + else + b->frame = 0; + check_duplicates (b->address, b->section); + return; + } +} + +void +disable_watchpoints_before_interactive_call_start () +{ + struct breakpoint * b; + + ALL_BREAKPOINTS (b) + { + if (((b->type == bp_watchpoint) + || (b->type == bp_hardware_watchpoint) + || (b->type == bp_read_watchpoint) + || (b->type == bp_access_watchpoint) + || ep_is_exception_catchpoint (b)) + && (b->enable == enabled)) + { + b->enable = call_disabled; + check_duplicates (b->address, b->section); + } + } +} + +void +enable_watchpoints_after_interactive_call_stop () +{ + struct breakpoint * b; + + ALL_BREAKPOINTS (b) + { + if (((b->type == bp_watchpoint) + || (b->type == bp_hardware_watchpoint) + || (b->type == bp_read_watchpoint) + || (b->type == bp_access_watchpoint) + || ep_is_exception_catchpoint (b)) + && (b->enable == call_disabled)) + { + b->enable = enabled; + check_duplicates (b->address, b->section); + } + } +} + + +/* Set a breakpoint that will evaporate an end of command + at address specified by SAL. + Restrict it to frame FRAME if FRAME is nonzero. */ + +struct breakpoint * +set_momentary_breakpoint (sal, frame, type) + struct symtab_and_line sal; + struct frame_info *frame; + enum bptype type; +{ + register struct breakpoint *b; + b = set_raw_breakpoint (sal); + b->type = type; + b->enable = enabled; + b->disposition = donttouch; + b->frame = (frame ? frame->frame : 0); + + /* If we're debugging a multi-threaded program, then we + want momentary breakpoints to be active in only a + single thread of control. */ + if (in_thread_list (inferior_pid)) + b->thread = pid_to_thread_id (inferior_pid); + + return b; +} + + +/* Tell the user we have just set a breakpoint B. */ + +static void +mention (b) + struct breakpoint *b; +{ + int say_where = 0; + + /* FIXME: This is misplaced; mention() is called by things (like hitting a + watchpoint) other than breakpoint creation. It should be possible to + clean this up and at the same time replace the random calls to + breakpoint_changed with this hook, as has already been done for + delete_breakpoint_hook and so on. */ + if (create_breakpoint_hook) + create_breakpoint_hook (b); + + switch (b->type) + { + case bp_none: + printf_filtered ("(apparently deleted?) Eventpoint %d: ", b->number); + break; + case bp_watchpoint: + printf_filtered ("Watchpoint %d: ", b->number); + print_expression (b->exp, gdb_stdout); + break; + case bp_hardware_watchpoint: + printf_filtered ("Hardware watchpoint %d: ", b->number); + print_expression (b->exp, gdb_stdout); + break; + case bp_read_watchpoint: + printf_filtered ("Hardware read watchpoint %d: ", b->number); + print_expression (b->exp, gdb_stdout); + break; + case bp_access_watchpoint: + printf_filtered ("Hardware access (read/write) watchpoint %d: ",b->number); + print_expression (b->exp, gdb_stdout); + break; + case bp_breakpoint: + printf_filtered ("Breakpoint %d", b->number); + say_where = 1; + break; + case bp_hardware_breakpoint: + printf_filtered ("Hardware assisted breakpoint %d", b->number); + say_where = 1; + break; + case bp_catch_load: + case bp_catch_unload: + printf_filtered ("Catchpoint %d (%s %s)", + b->number, + (b->type == bp_catch_load) ? "load" : "unload", + (b->dll_pathname != NULL) ? b->dll_pathname : ""); + break; + case bp_catch_fork: + case bp_catch_vfork: + printf_filtered ("Catchpoint %d (%s)", + b->number, + (b->type == bp_catch_fork) ? "fork" : "vfork"); + break; + case bp_catch_exec: + printf_filtered ("Catchpoint %d (exec)", + b->number); + break; + case bp_catch_catch: + case bp_catch_throw: + printf_filtered ("Catchpoint %d (%s)", + b->number, + (b->type == bp_catch_catch) ? "catch" : "throw"); + break; + + case bp_until: + case bp_finish: + case bp_longjmp: + case bp_longjmp_resume: + case bp_step_resume: + case bp_through_sigtramp: + case bp_call_dummy: + case bp_watchpoint_scope: + case bp_shlib_event: + break; + } + if (say_where) + { + if (addressprint || b->source_file == NULL) + { + printf_filtered (" at "); + print_address_numeric (b->address, 1, gdb_stdout); + } + if (b->source_file) + printf_filtered (": file %s, line %d.", + b->source_file, b->line_number); + TUIDO(((TuiOpaqueFuncPtr)tui_vAllSetHasBreakAt, b, 1)); + TUIDO(((TuiOpaqueFuncPtr)tuiUpdateAllExecInfos)); + } + printf_filtered ("\n"); +} + + +/* Set a breakpoint according to ARG (function, linenum or *address) + flag: first bit : 0 non-temporary, 1 temporary. + second bit : 0 normal breakpoint, 1 hardware breakpoint. */ + +static void +break_command_1 (arg, flag, from_tty) + char *arg; + int flag, from_tty; +{ + int tempflag, hardwareflag; + struct symtabs_and_lines sals; + struct symtab_and_line sal; + register struct expression *cond = 0; + register struct breakpoint *b; + + /* Pointers in arg to the start, and one past the end, of the condition. */ + char *cond_start = NULL; + char *cond_end = NULL; + /* Pointers in arg to the start, and one past the end, + of the address part. */ + char *addr_start = NULL; + char *addr_end = NULL; + struct cleanup *old_chain; + struct cleanup *canonical_strings_chain = NULL; + char **canonical = (char **)NULL; + int i; + int thread; + + hardwareflag = flag & BP_HARDWAREFLAG; + tempflag = flag & BP_TEMPFLAG; + + sals.sals = NULL; + sals.nelts = 0; + + INIT_SAL (&sal); /* initialize to zeroes */ + + /* If no arg given, or if first arg is 'if ', use the default breakpoint. */ + + if (!arg || (arg[0] == 'i' && arg[1] == 'f' + && (arg[2] == ' ' || arg[2] == '\t'))) + { + if (default_breakpoint_valid) + { + sals.sals = (struct symtab_and_line *) + xmalloc (sizeof (struct symtab_and_line)); + sal.pc = default_breakpoint_address; + sal.line = default_breakpoint_line; + sal.symtab = default_breakpoint_symtab; + sal.section = find_pc_overlay (sal.pc); + sals.sals[0] = sal; + sals.nelts = 1; + } + else + error ("No default breakpoint address now."); + } + else + { + addr_start = arg; + + /* Force almost all breakpoints to be in terms of the + current_source_symtab (which is decode_line_1's default). This + should produce the results we want almost all of the time while + leaving default_breakpoint_* alone. */ + if (default_breakpoint_valid + && (!current_source_symtab + || (arg && (*arg == '+' || *arg == '-')))) + sals = decode_line_1 (&arg, 1, default_breakpoint_symtab, + default_breakpoint_line, &canonical); + else + sals = decode_line_1 (&arg, 1, (struct symtab *)NULL, 0, &canonical); + + addr_end = arg; + } + + if (! sals.nelts) + return; + + /* Make sure that all storage allocated in decode_line_1 gets freed in case + the following `for' loop errors out. */ + old_chain = make_cleanup (free, sals.sals); + if (canonical != (char **)NULL) + { + make_cleanup (free, canonical); + canonical_strings_chain = make_cleanup (null_cleanup, 0); + for (i = 0; i < sals.nelts; i++) + { + if (canonical[i] != NULL) + make_cleanup (free, canonical[i]); + } + } + + thread = -1; /* No specific thread yet */ + + /* Resolve all line numbers to PC's, and verify that conditions + can be parsed, before setting any breakpoints. */ + for (i = 0; i < sals.nelts; i++) + { + char *tok, *end_tok; + int toklen; + + resolve_sal_pc (&sals.sals[i]); + + /* It's possible for the PC to be nonzero, but still an illegal + value on some targets. + + For example, on HP-UX if you start gdb, and before running the + inferior you try to set a breakpoint on a shared library function + "foo" where the inferior doesn't call "foo" directly but does + pass its address to another function call, then we do find a + minimal symbol for the "foo", but it's address is invalid. + (Appears to be an index into a table that the loader sets up + when the inferior is run.) + + Give the target a chance to bless sals.sals[i].pc before we + try to make a breakpoint for it. */ + if (PC_REQUIRES_RUN_BEFORE_USE(sals.sals[i].pc)) + { + error ("Cannot break on %s without a running program.", addr_start); + } + + tok = arg; + + while (tok && *tok) + { + while (*tok == ' ' || *tok == '\t') + tok++; + + end_tok = tok; + + while (*end_tok != ' ' && *end_tok != '\t' && *end_tok != '\000') + end_tok++; + + toklen = end_tok - tok; + + if (toklen >= 1 && strncmp (tok, "if", toklen) == 0) + { + tok = cond_start = end_tok + 1; + cond = parse_exp_1 (&tok, block_for_pc (sals.sals[i].pc), 0); + cond_end = tok; + } + else if (toklen >= 1 && strncmp (tok, "thread", toklen) == 0) + { + char *tmptok; + + tok = end_tok + 1; + tmptok = tok; + thread = strtol (tok, &tok, 0); + if (tok == tmptok) + error ("Junk after thread keyword."); + if (!valid_thread_id (thread)) + error ("Unknown thread %d\n", thread); + } + else + error ("Junk at end of arguments."); + } + } + if (hardwareflag) + { + int i, target_resources_ok; + + i = hw_breakpoint_used_count (); + target_resources_ok = TARGET_CAN_USE_HARDWARE_WATCHPOINT ( + bp_hardware_breakpoint, i + sals.nelts, 0); + if (target_resources_ok == 0) + error ("No hardware breakpoint support in the target."); + else if (target_resources_ok < 0) + error ("Hardware breakpoints used exceeds limit."); + } + + /* Remove the canonical strings from the cleanup, they are needed below. */ + if (canonical != (char **)NULL) + discard_cleanups (canonical_strings_chain); + + /* Now set all the breakpoints. */ + for (i = 0; i < sals.nelts; i++) + { + sal = sals.sals[i]; + + if (from_tty) + describe_other_breakpoints (sal.pc, sal.section); + + b = set_raw_breakpoint (sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->type = hardwareflag ? bp_hardware_breakpoint : bp_breakpoint; + b->cond = cond; + b->thread = thread; + + /* If a canonical line spec is needed use that instead of the + command string. */ + if (canonical != (char **)NULL && canonical[i] != NULL) + b->addr_string = canonical[i]; + else if (addr_start) + b->addr_string = savestring (addr_start, addr_end - addr_start); + if (cond_start) + b->cond_string = savestring (cond_start, cond_end - cond_start); + + b->enable = enabled; + b->disposition = tempflag ? del : donttouch; + mention (b); + } + + if (sals.nelts > 1) + { + printf_filtered ("Multiple breakpoints were set.\n"); + printf_filtered ("Use the \"delete\" command to delete unwanted breakpoints.\n"); + } + do_cleanups (old_chain); +} + +static void +break_at_finish_at_depth_command_1 (arg, flag, from_tty) + char *arg; + int flag; + int from_tty; +{ + struct frame_info *frame; + CORE_ADDR low, high, selected_pc = 0; + char *extra_args, *level_arg, *addr_string; + int extra_args_len = 0, if_arg = 0; + + if (!arg || + (arg[0] == 'i' && arg[1] == 'f' && (arg[2] == ' ' || arg[2] == '\t'))) + { + + if (default_breakpoint_valid) + { + if (selected_frame) + { + selected_pc = selected_frame->pc; + if (arg) + if_arg = 1; + } + else + error ("No selected frame."); + } + else + error ("No default breakpoint address now."); + } + else + { + extra_args = strchr (arg, ' '); + if (extra_args) + { + extra_args++; + extra_args_len = strlen (extra_args); + level_arg = (char *) xmalloc (extra_args - arg); + strncpy (level_arg, arg, extra_args - arg - 1); + level_arg[extra_args - arg - 1] = '\0'; + } + else + { + level_arg = (char *) xmalloc (strlen (arg) + 1); + strcpy (level_arg, arg); + } + + frame = parse_frame_specification (level_arg); + if (frame) + selected_pc = frame->pc; + else + selected_pc = 0; + } + if (if_arg) + { + extra_args = arg; + extra_args_len = strlen (arg); + } + + if (selected_pc) + { + if (find_pc_partial_function(selected_pc, (char **)NULL, &low, &high)) + { + addr_string = (char *) xmalloc (26 + extra_args_len); + if (extra_args_len) + sprintf (addr_string, "*0x%x %s", high, extra_args); + else + sprintf (addr_string, "*0x%x", high); + break_command_1 (addr_string, flag, from_tty); + free (addr_string); + } + else + error ("No function contains the specified address"); + } + else + error ("Unable to set breakpoint at procedure exit"); +} + + +static void +break_at_finish_command_1 (arg, flag, from_tty) + char *arg; + int flag; + int from_tty; +{ + char *addr_string, *break_string, *beg_addr_string; + CORE_ADDR low, high; + struct symtabs_and_lines sals; + struct symtab_and_line sal; + struct cleanup *old_chain; + char *extra_args; + int extra_args_len = 0; + int i, if_arg = 0; + + if (!arg || + (arg[0] == 'i' && arg[1] == 'f' && (arg[2] == ' ' || arg[2] == '\t'))) + { + if (default_breakpoint_valid) + { + if (selected_frame) + { + addr_string = (char *) xmalloc (15); + sprintf (addr_string, "*0x%x", selected_frame->pc); + if (arg) + if_arg = 1; + } + else + error ("No selected frame."); + } + else + error ("No default breakpoint address now."); + } + else + { + addr_string = (char *) xmalloc (strlen (arg) + 1); + strcpy (addr_string, arg); + } + + if (if_arg) + { + extra_args = arg; + extra_args_len = strlen (arg); + } + else + if (arg) + { + /* get the stuff after the function name or address */ + extra_args = strchr (arg, ' '); + if (extra_args) + { + extra_args++; + extra_args_len = strlen (extra_args); + } + } + + sals.sals = NULL; + sals.nelts = 0; + + beg_addr_string = addr_string; + sals = decode_line_1 (&addr_string, 1, (struct symtab *)NULL, 0, + (char ***)NULL); + + free (beg_addr_string); + old_chain = make_cleanup (free, sals.sals); + for (i = 0; (i < sals.nelts); i++) + { + sal = sals.sals[i]; + if (find_pc_partial_function (sal.pc, (char **)NULL, &low, &high)) + { + break_string = (char *) xmalloc (extra_args_len + 26); + if (extra_args_len) + sprintf (break_string, "*0x%x %s", high, extra_args); + else + sprintf (break_string, "*0x%x", high); + break_command_1 (break_string, flag, from_tty); + free(break_string); + } + else + error ("No function contains the specified address"); + } + if (sals.nelts > 1) + { + printf_filtered ("Multiple breakpoints were set.\n"); + printf_filtered ("Use the \"delete\" command to delete unwanted breakpoints.\n"); + } + do_cleanups(old_chain); +} + + +/* Helper function for break_command_1 and disassemble_command. */ + +void +resolve_sal_pc (sal) + struct symtab_and_line *sal; +{ + CORE_ADDR pc; + + if (sal->pc == 0 && sal->symtab != NULL) + { + if (!find_line_pc (sal->symtab, sal->line, &pc)) + error ("No line %d in file \"%s\".", + sal->line, sal->symtab->filename); + sal->pc = pc; + } + + if (sal->section == 0 && sal->symtab != NULL) + { + struct blockvector *bv; + struct block *b; + struct symbol *sym; + int index; + + bv = blockvector_for_pc_sect (sal->pc, 0, &index, sal->symtab); + if (bv != NULL) + { + b = BLOCKVECTOR_BLOCK (bv, index); + sym = block_function (b); + if (sym != NULL) + { + fixup_symbol_section (sym, sal->symtab->objfile); + sal->section = SYMBOL_BFD_SECTION (sym); + } + else + { + /* It really is worthwhile to have the section, so we'll just + have to look harder. This case can be executed if we have + line numbers but no functions (as can happen in assembly + source). */ + + struct minimal_symbol *msym; + + msym = lookup_minimal_symbol_by_pc (sal->pc); + if (msym) + sal->section = SYMBOL_BFD_SECTION (msym); + } + } + } +} + +void +break_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_command_1 (arg, 0, from_tty); +} + +void +break_at_finish_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_at_finish_command_1 (arg, 0, from_tty); +} + +void +break_at_finish_at_depth_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_at_finish_at_depth_command_1 (arg, 0, from_tty); +} + +void +tbreak_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_command_1 (arg, BP_TEMPFLAG, from_tty); +} + +void +tbreak_at_finish_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_at_finish_command_1 (arg, BP_TEMPFLAG, from_tty); +} + +static void +hbreak_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_command_1 (arg, BP_HARDWAREFLAG, from_tty); +} + +static void +thbreak_command (arg, from_tty) + char *arg; + int from_tty; +{ + break_command_1 (arg, (BP_TEMPFLAG | BP_HARDWAREFLAG), from_tty); +} + +static void +stop_command (arg, from_tty) + char *arg; + int from_tty; +{ + printf_filtered ("Specify the type of breakpoint to set.\n\ +Usage: stop in \n\ + stop at \n"); +} + +static void +stopin_command (arg, from_tty) + char *arg; + int from_tty; +{ + int badInput = 0; + + if (arg == (char *)NULL) + badInput = 1; + else if (*arg != '*') + { + char *argptr = arg; + int hasColon = 0; + + /* look for a ':'. If this is a line number specification, then say + it is bad, otherwise, it should be an address or function/method + name */ + while (*argptr && !hasColon) + { + hasColon = (*argptr == ':'); + argptr++; + } + + if (hasColon) + badInput = (*argptr != ':'); /* Not a class::method */ + else + badInput = isdigit(*arg); /* a simple line number */ + } + + if (badInput) + printf_filtered("Usage: stop in \n"); + else + break_command_1 (arg, 0, from_tty); +} + +static void +stopat_command (arg, from_tty) + char *arg; + int from_tty; +{ + int badInput = 0; + + if (arg == (char *)NULL || *arg == '*') /* no line number */ + badInput = 1; + else + { + char *argptr = arg; + int hasColon = 0; + + /* look for a ':'. If there is a '::' then get out, otherwise + it is probably a line number. */ + while (*argptr && !hasColon) + { + hasColon = (*argptr == ':'); + argptr++; + } + + if (hasColon) + badInput = (*argptr == ':'); /* we have class::method */ + else + badInput = !isdigit(*arg); /* not a line number */ + } + + if (badInput) + printf_filtered("Usage: stop at \n"); + else + break_command_1 (arg, 0, from_tty); +} + +/* ARGSUSED */ +/* accessflag: 0: watch write, 1: watch read, 2: watch access(read or write) */ +static void +watch_command_1 (arg, accessflag, from_tty) + char *arg; + int accessflag; + int from_tty; +{ + struct breakpoint *b; + struct symtab_and_line sal; + struct expression *exp; + struct block *exp_valid_block; + struct value *val, *mark; + struct frame_info *frame; + struct frame_info *prev_frame = NULL; + char *exp_start = NULL; + char *exp_end = NULL; + char *tok, *end_tok; + int toklen; + char *cond_start = NULL; + char *cond_end = NULL; + struct expression *cond = NULL; + int i, other_type_used, target_resources_ok = 0; + enum bptype bp_type; + int mem_cnt = 0; + + INIT_SAL (&sal); /* initialize to zeroes */ + + /* Parse arguments. */ + innermost_block = NULL; + exp_start = arg; + exp = parse_exp_1 (&arg, 0, 0); + exp_end = arg; + exp_valid_block = innermost_block; + mark = value_mark (); + val = evaluate_expression (exp); + release_value (val); + if (VALUE_LAZY (val)) + value_fetch_lazy (val); + + tok = arg; + while (*tok == ' ' || *tok == '\t') + tok++; + end_tok = tok; + + while (*end_tok != ' ' && *end_tok != '\t' && *end_tok != '\000') + end_tok++; + + toklen = end_tok - tok; + if (toklen >= 1 && strncmp (tok, "if", toklen) == 0) + { + tok = cond_start = end_tok + 1; + cond = parse_exp_1 (&tok, 0, 0); + cond_end = tok; + } + if (*tok) + error("Junk at end of command."); + + if (accessflag == 1) bp_type = bp_read_watchpoint; + else if (accessflag == 2) bp_type = bp_access_watchpoint; + else bp_type = bp_hardware_watchpoint; + + mem_cnt = can_use_hardware_watchpoint (val); + if (mem_cnt == 0 && bp_type != bp_hardware_watchpoint) + error ("Expression cannot be implemented with read/access watchpoint."); + if (mem_cnt != 0) { + i = hw_watchpoint_used_count (bp_type, &other_type_used); + target_resources_ok = TARGET_CAN_USE_HARDWARE_WATCHPOINT( + bp_type, i + mem_cnt, other_type_used); + if (target_resources_ok == 0 && bp_type != bp_hardware_watchpoint) + error ("Target does not have this type of hardware watchpoint support."); + if (target_resources_ok < 0 && bp_type != bp_hardware_watchpoint) + error ("Target resources have been allocated for other types of watchpoints."); + } + +#if defined(HPUXHPPA) + /* On HP-UX if you set a h/w + watchpoint before the "run" command, the inferior dies with a e.g., + SIGILL once you start it. I initially believed this was due to a + bad interaction between page protection traps and the initial + startup sequence by the dynamic linker. + + However, I tried avoiding that by having HP-UX's implementation of + TARGET_CAN_USE_HW_WATCHPOINT return FALSE if there was no inferior_pid + yet, which forced slow watches before a "run" or "attach", and it + still fails somewhere in the startup code. + + Until I figure out what's happening, I'm disallowing watches altogether + before the "run" or "attach" command. We'll tell the user they must + set watches after getting the program started. */ + if (! target_has_execution) + { + warning ("can't do that without a running program; try \"break main\", \"run\" first"); + return; + } +#endif /* HPUXHPPA */ + + /* Now set up the breakpoint. */ + b = set_raw_breakpoint (sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->disposition = donttouch; + b->exp = exp; + b->exp_valid_block = exp_valid_block; + b->exp_string = savestring (exp_start, exp_end - exp_start); + b->val = val; + b->cond = cond; + if (cond_start) + b->cond_string = savestring (cond_start, cond_end - cond_start); + else + b->cond_string = 0; + + frame = block_innermost_frame (exp_valid_block); + if (frame) + { + prev_frame = get_prev_frame (frame); + b->watchpoint_frame = frame->frame; + } + else + b->watchpoint_frame = (CORE_ADDR)0; + + if (mem_cnt && target_resources_ok > 0) + b->type = bp_type; + else + b->type = bp_watchpoint; + + /* If the expression is "local", then set up a "watchpoint scope" + breakpoint at the point where we've left the scope of the watchpoint + expression. */ + if (innermost_block) + { + if (prev_frame) + { + struct breakpoint *scope_breakpoint; + struct symtab_and_line scope_sal; + + INIT_SAL (&scope_sal); /* initialize to zeroes */ + scope_sal.pc = get_frame_pc (prev_frame); + scope_sal.section = find_pc_overlay (scope_sal.pc); + + scope_breakpoint = set_raw_breakpoint (scope_sal); + set_breakpoint_count (breakpoint_count + 1); + scope_breakpoint->number = breakpoint_count; + + scope_breakpoint->type = bp_watchpoint_scope; + scope_breakpoint->enable = enabled; + + /* Automatically delete the breakpoint when it hits. */ + scope_breakpoint->disposition = del; + + /* Only break in the proper frame (help with recursion). */ + scope_breakpoint->frame = prev_frame->frame; + + /* Set the address at which we will stop. */ + scope_breakpoint->address = get_frame_pc (prev_frame); + + /* The scope breakpoint is related to the watchpoint. We + will need to act on them together. */ + b->related_breakpoint = scope_breakpoint; + } + } + value_free_to_mark (mark); + mention (b); +} + +/* Return count of locations need to be watched and can be handled + in hardware. If the watchpoint can not be handled + in hardware return zero. */ + +#if !defined(TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT) +#define TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT(byte_size) \ + ((byte_size) <= (REGISTER_SIZE)) +#endif + +static int +can_use_hardware_watchpoint (v) + struct value *v; +{ + int found_memory_cnt = 0; + + /* Did the user specifically forbid us to use hardware watchpoints? */ + if (! can_use_hw_watchpoints) + return 0; + + /* Make sure all the intermediate values are in memory. Also make sure + we found at least one memory expression. Guards against watch 0x12345, + which is meaningless, but could cause errors if one tries to insert a + hardware watchpoint for the constant expression. */ + for ( ; v; v = v->next) + { + if (v->lval == lval_memory) + { + if (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT (TYPE_LENGTH (VALUE_TYPE (v)))) + found_memory_cnt++; + } + else if (v->lval != not_lval && v->modifiable == 0) + return 0; + } + + /* The expression itself looks suitable for using a hardware + watchpoint, but give the target machine a chance to reject it. */ + return found_memory_cnt; +} + +static void watch_command (arg, from_tty) + char *arg; + int from_tty; +{ + watch_command_1 (arg, 0, from_tty); +} + +static void rwatch_command (arg, from_tty) + char *arg; + int from_tty; +{ + watch_command_1 (arg, 1, from_tty); +} + +static void awatch_command (arg, from_tty) + char *arg; + int from_tty; +{ + watch_command_1 (arg, 2, from_tty); +} + + +/* Helper routine for the until_command routine in infcmd.c. Here + because it uses the mechanisms of breakpoints. */ + +/* ARGSUSED */ +void +until_break_command (arg, from_tty) + char *arg; + int from_tty; +{ + struct symtabs_and_lines sals; + struct symtab_and_line sal; + struct frame_info *prev_frame = get_prev_frame (selected_frame); + struct breakpoint *breakpoint; + struct cleanup *old_chain; + + clear_proceed_status (); + + /* Set a breakpoint where the user wants it and at return from + this function */ + + if (default_breakpoint_valid) + sals = decode_line_1 (&arg, 1, default_breakpoint_symtab, + default_breakpoint_line, (char ***)NULL); + else + sals = decode_line_1 (&arg, 1, (struct symtab *)NULL, 0, (char ***)NULL); + + if (sals.nelts != 1) + error ("Couldn't get information on specified line."); + + sal = sals.sals[0]; + free ((PTR)sals.sals); /* malloc'd, so freed */ + + if (*arg) + error ("Junk at end of arguments."); + + resolve_sal_pc (&sal); + + breakpoint = set_momentary_breakpoint (sal, selected_frame, bp_until); + + old_chain = make_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); + + /* Keep within the current frame */ + + if (prev_frame) + { + sal = find_pc_line (prev_frame->pc, 0); + sal.pc = prev_frame->pc; + breakpoint = set_momentary_breakpoint (sal, prev_frame, bp_until); + make_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); + } + + proceed (-1, TARGET_SIGNAL_DEFAULT, 0); + do_cleanups(old_chain); +} + +#if 0 +/* These aren't used; I don't konw what they were for. */ +/* Set a breakpoint at the catch clause for NAME. */ +static int +catch_breakpoint (name) + char *name; +{ +} + +static int +disable_catch_breakpoint () +{ +} + +static int +delete_catch_breakpoint () +{ +} + +static int +enable_catch_breakpoint () +{ +} +#endif /* 0 */ + +struct sal_chain +{ + struct sal_chain *next; + struct symtab_and_line sal; +}; + +/* Not really used -- invocation in handle_gnu_4_16_catch_command + had been commented out in the v.4.16 sources, and stays + disabled there now because "catch NAME" syntax isn't allowed. + pai/1997-07-11 */ +/* This isn't used; I don't know what it was for. */ +/* For each catch clause identified in ARGS, run FUNCTION + with that clause as an argument. */ +static struct symtabs_and_lines +map_catch_names (args, function) + char *args; + int (*function)(); +{ + register char *p = args; + register char *p1; + struct symtabs_and_lines sals; +#if 0 + struct sal_chain *sal_chain = 0; +#endif + + if (p == 0) + error_no_arg ("one or more catch names"); + + sals.nelts = 0; + sals.sals = NULL; + + while (*p) + { + p1 = p; + /* Don't swallow conditional part. */ + if (p1[0] == 'i' && p1[1] == 'f' + && (p1[2] == ' ' || p1[2] == '\t')) + break; + + if (isalpha (*p1)) + { + p1++; + while (isalnum (*p1) || *p1 == '_' || *p1 == '$') + p1++; + } + + if (*p1 && *p1 != ' ' && *p1 != '\t') + error ("Arguments must be catch names."); + + *p1 = 0; +#if 0 + if (function (p)) + { + struct sal_chain *next = (struct sal_chain *) + alloca (sizeof (struct sal_chain)); + next->next = sal_chain; + next->sal = get_catch_sal (p); + sal_chain = next; + goto win; + } +#endif + printf_unfiltered ("No catch clause for exception %s.\n", p); +#if 0 + win: +#endif + p = p1; + while (*p == ' ' || *p == '\t') p++; + } +} + +/* This shares a lot of code with `print_frame_label_vars' from stack.c. */ + +static struct symtabs_and_lines +get_catch_sals (this_level_only) + int this_level_only; +{ + register struct blockvector *bl; + register struct block *block; + int index, have_default = 0; + CORE_ADDR pc; + struct symtabs_and_lines sals; + struct sal_chain *sal_chain = 0; + char *blocks_searched; + + /* Not sure whether an error message is always the correct response, + but it's better than a core dump. */ + if (selected_frame == NULL) + error ("No selected frame."); + block = get_frame_block (selected_frame); + pc = selected_frame->pc; + + sals.nelts = 0; + sals.sals = NULL; + + if (block == 0) + error ("No symbol table info available.\n"); + + bl = blockvector_for_pc (BLOCK_END (block) - 4, &index); + blocks_searched = (char *) alloca (BLOCKVECTOR_NBLOCKS (bl) * sizeof (char)); + memset (blocks_searched, 0, BLOCKVECTOR_NBLOCKS (bl) * sizeof (char)); + + while (block != 0) + { + CORE_ADDR end = BLOCK_END (block) - 4; + int last_index; + + if (bl != blockvector_for_pc (end, &index)) + error ("blockvector blotch"); + if (BLOCKVECTOR_BLOCK (bl, index) != block) + error ("blockvector botch"); + last_index = BLOCKVECTOR_NBLOCKS (bl); + index += 1; + + /* Don't print out blocks that have gone by. */ + while (index < last_index + && BLOCK_END (BLOCKVECTOR_BLOCK (bl, index)) < pc) + index++; + + while (index < last_index + && BLOCK_END (BLOCKVECTOR_BLOCK (bl, index)) < end) + { + if (blocks_searched[index] == 0) + { + struct block *b = BLOCKVECTOR_BLOCK (bl, index); + int nsyms; + register int i; + register struct symbol *sym; + + nsyms = BLOCK_NSYMS (b); + + for (i = 0; i < nsyms; i++) + { + sym = BLOCK_SYM (b, i); + if (STREQ (SYMBOL_NAME (sym), "default")) + { + if (have_default) + continue; + have_default = 1; + } + if (SYMBOL_CLASS (sym) == LOC_LABEL) + { + struct sal_chain *next = (struct sal_chain *) + alloca (sizeof (struct sal_chain)); + next->next = sal_chain; + next->sal = find_pc_line (SYMBOL_VALUE_ADDRESS (sym), 0); + sal_chain = next; + } + } + blocks_searched[index] = 1; + } + index++; + } + if (have_default) + break; + if (sal_chain && this_level_only) + break; + + /* After handling the function's top-level block, stop. + Don't continue to its superblock, the block of + per-file symbols. */ + if (BLOCK_FUNCTION (block)) + break; + block = BLOCK_SUPERBLOCK (block); + } + + if (sal_chain) + { + struct sal_chain *tmp_chain; + + /* Count the number of entries. */ + for (index = 0, tmp_chain = sal_chain; tmp_chain; + tmp_chain = tmp_chain->next) + index++; + + sals.nelts = index; + sals.sals = (struct symtab_and_line *) + xmalloc (index * sizeof (struct symtab_and_line)); + for (index = 0; sal_chain; sal_chain = sal_chain->next, index++) + sals.sals[index] = sal_chain->sal; + } + + return sals; +} + +static void +ep_skip_leading_whitespace (s) + char ** s; +{ + if ((s == NULL) || (*s == NULL)) + return; + while (isspace(**s)) + *s += 1; +} + +/* This function examines a string, and attempts to find a token + that might be an event name in the leading characters. If a + possible match is found, a pointer to the last character of + the token is returned. Else, NULL is returned. */ +static char * +ep_find_event_name_end (arg) + char * arg; +{ + char * s = arg; + char * event_name_end = NULL; + + /* If we could depend upon the presense of strrpbrk, we'd use that... */ + if (arg == NULL) + return NULL; + + /* We break out of the loop when we find a token delimiter. + Basically, we're looking for alphanumerics and underscores; + anything else delimites the token. */ + while (*s != '\0') + { + if (! isalnum(*s) && (*s != '_')) + break; + event_name_end = s; + s++; + } + + return event_name_end; +} + + +/* This function attempts to parse an optional "if " clause + from the arg string. If one is not found, it returns NULL. + + Else, it returns a pointer to the condition string. (It does not + attempt to evaluate the string against a particular block.) And, + it updates arg to point to the first character following the parsed + if clause in the arg string. */ +static char * +ep_parse_optional_if_clause (arg) + char ** arg; +{ + char * cond_string; + + if (((*arg)[0] != 'i') || ((*arg)[1] != 'f') || !isspace((*arg)[2])) + return NULL; + + /* Skip the "if" keyword. */ + (*arg) += 2; + + /* Skip any extra leading whitespace, and record the start of the + condition string. */ + ep_skip_leading_whitespace (arg); + cond_string = *arg; + + /* Assume that the condition occupies the remainder of the arg string. */ + (*arg) += strlen (cond_string); + + return cond_string; +} + +/* This function attempts to parse an optional filename from the arg + string. If one is not found, it returns NULL. + + Else, it returns a pointer to the parsed filename. (This function + makes no attempt to verify that a file of that name exists, or is + accessible.) And, it updates arg to point to the first character + following the parsed filename in the arg string. + + Note that clients needing to preserve the returned filename for + future access should copy it to their own buffers. */ +static char * +ep_parse_optional_filename (arg) + char ** arg; +{ + static char filename [1024]; + char * arg_p = *arg; + int i; + char c; + + if ((*arg_p == '\0') || isspace (*arg_p)) + return NULL; + + for (i=0; ; i++) + { + c = *arg_p; + if (isspace (c)) + c = '\0'; + filename[i] = c; + if (c == '\0') + break; + arg_p++; + } + *arg = arg_p; + + return filename; +} + +/* Commands to deal with catching events, such as signals, exceptions, + process start/exit, etc. */ + +typedef enum {catch_fork, catch_vfork} catch_fork_kind; + +static void +catch_fork_command_1 (fork_kind, arg, tempflag, from_tty) + catch_fork_kind fork_kind; + char * arg; + int tempflag; + int from_tty; +{ + char * cond_string = NULL; + + ep_skip_leading_whitespace (&arg); + + /* The allowed syntax is: + catch [v]fork + catch [v]fork if + + First, check if there's an if clause. */ + cond_string = ep_parse_optional_if_clause (&arg); + + if ((*arg != '\0') && !isspace (*arg)) + error ("Junk at end of arguments."); + + /* If this target supports it, create a fork or vfork catchpoint + and enable reporting of such events. */ + switch (fork_kind) { + case catch_fork : + create_fork_event_catchpoint (tempflag, cond_string); + break; + case catch_vfork : + create_vfork_event_catchpoint (tempflag, cond_string); + break; + default : + error ("unsupported or unknown fork kind; cannot catch it"); + break; + } +} + +static void +catch_exec_command_1 (arg, tempflag, from_tty) + char * arg; + int tempflag; + int from_tty; +{ + char * cond_string = NULL; + + ep_skip_leading_whitespace (&arg); + + /* The allowed syntax is: + catch exec + catch exec if + + First, check if there's an if clause. */ + cond_string = ep_parse_optional_if_clause (&arg); + + if ((*arg != '\0') && !isspace (*arg)) + error ("Junk at end of arguments."); + + /* If this target supports it, create an exec catchpoint + and enable reporting of such events. */ + create_exec_event_catchpoint (tempflag, cond_string); +} + +#if defined(SOLIB_ADD) +static void +catch_load_command_1 (arg, tempflag, from_tty) + char * arg; + int tempflag; + int from_tty; +{ + char * dll_pathname = NULL; + char * cond_string = NULL; + + ep_skip_leading_whitespace (&arg); + + /* The allowed syntax is: + catch load + catch load if + catch load + catch load if + + The user is not allowed to specify the after an + if clause. + + We'll ignore the pathological case of a file named "if". + + First, check if there's an if clause. If so, then there + cannot be a filename. */ + cond_string = ep_parse_optional_if_clause (&arg); + + /* If there was an if clause, then there cannot be a filename. + Else, there might be a filename and an if clause. */ + if (cond_string == NULL) + { + dll_pathname = ep_parse_optional_filename (&arg); + ep_skip_leading_whitespace (&arg); + cond_string = ep_parse_optional_if_clause (&arg); + } + + if ((*arg != '\0') && !isspace (*arg)) + error ("Junk at end of arguments."); + + /* Create a load breakpoint that only triggers when a load of + the specified dll (or any dll, if no pathname was specified) + occurs. */ + SOLIB_CREATE_CATCH_LOAD_HOOK (inferior_pid, tempflag, dll_pathname, cond_string); +} + +static void +catch_unload_command_1 (arg, tempflag, from_tty) + char * arg; + int tempflag; + int from_tty; +{ + char * dll_pathname = NULL; + char * cond_string = NULL; + + ep_skip_leading_whitespace (&arg); + + /* The allowed syntax is: + catch unload + catch unload if + catch unload + catch unload if + + The user is not allowed to specify the after an + if clause. + + We'll ignore the pathological case of a file named "if". + + First, check if there's an if clause. If so, then there + cannot be a filename. */ + cond_string = ep_parse_optional_if_clause (&arg); + + /* If there was an if clause, then there cannot be a filename. + Else, there might be a filename and an if clause. */ + if (cond_string == NULL) + { + dll_pathname = ep_parse_optional_filename (&arg); + ep_skip_leading_whitespace (&arg); + cond_string = ep_parse_optional_if_clause (&arg); + } + + if ((*arg != '\0') && !isspace (*arg)) + error ("Junk at end of arguments."); + + /* Create an unload breakpoint that only triggers when an unload of + the specified dll (or any dll, if no pathname was specified) + occurs. */ + SOLIB_CREATE_CATCH_UNLOAD_HOOK (inferior_pid, tempflag, dll_pathname, cond_string); +} +#endif /* SOLIB_ADD */ + +/* Commands to deal with catching exceptions. */ + +/* Set a breakpoint at the specified callback routine for an + exception event callback */ + +static void +create_exception_catchpoint (tempflag, cond_string, ex_event, sal) + int tempflag; + char * cond_string; + enum exception_event_kind ex_event; + struct symtab_and_line * sal; +{ + struct breakpoint * b; + int i; + int thread = -1; /* All threads. */ + + if (!sal) /* no exception support? */ + return; + + b = set_raw_breakpoint (*sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->cond = NULL; + b->cond_string = (cond_string == NULL) ? NULL : savestring (cond_string, strlen (cond_string)); + b->thread = thread; + b->addr_string = NULL; + b->enable = enabled; + b->disposition = tempflag ? del : donttouch; + switch (ex_event) + { + case EX_EVENT_THROW: + b->type = bp_catch_throw; + break; + case EX_EVENT_CATCH: + b->type = bp_catch_catch; + break; + default: /* error condition */ + b->type = bp_none; + b->enable = disabled; + error ("Internal error -- invalid catchpoint kind"); + } + mention (b); +} + +/* Deal with "catch catch" and "catch throw" commands */ + +static void +catch_exception_command_1 (ex_event, arg, tempflag, from_tty) + enum exception_event_kind ex_event; + char * arg; + int tempflag; + int from_tty; +{ + char * cond_string = NULL; + struct symtab_and_line * sal = NULL; + + ep_skip_leading_whitespace (&arg); + + cond_string = ep_parse_optional_if_clause (&arg); + + if ((*arg != '\0') && !isspace (*arg)) + error ("Junk at end of arguments."); + + if ((ex_event != EX_EVENT_THROW) && + (ex_event != EX_EVENT_CATCH)) + error ("Unsupported or unknown exception event; cannot catch it"); + + /* See if we can find a callback routine */ + sal = target_enable_exception_callback (ex_event, 1); + + if (sal) + { + /* We have callbacks from the runtime system for exceptions. + Set a breakpoint on the sal found, if no errors */ + if (sal != (struct symtab_and_line *) -1) + create_exception_catchpoint (tempflag, cond_string, ex_event, sal); + else + return; /* something went wrong with setting up callbacks */ + } + else + { + /* No callbacks from runtime system for exceptions. + Try GNU C++ exception breakpoints using labels in debug info. */ + if (ex_event == EX_EVENT_CATCH) + { + handle_gnu_4_16_catch_command (arg, tempflag, from_tty); + } + else if (ex_event == EX_EVENT_THROW) + { + /* Set a breakpoint on __raise_exception () */ + + fprintf_filtered (gdb_stderr, "Unsupported with this platform/compiler combination.\n"); + fprintf_filtered (gdb_stderr, "Perhaps you can achieve the effect you want by setting\n"); + fprintf_filtered (gdb_stderr, "a breakpoint on __raise_exception().\n"); + } + } +} + +/* Cover routine to allow wrapping target_enable_exception_catchpoints + inside a catch_errors */ + +static int +cover_target_enable_exception_callback (arg) + PTR arg; +{ + args_for_catchpoint_enable *args = arg; + struct symtab_and_line *sal; + sal = target_enable_exception_callback (args->kind, args->enable); + if (sal == NULL) + return 0; + else if (sal == (struct symtab_and_line *) -1) + return -1; + else + return 1; /*is valid*/ +} + + + +/* This is the original v.4.16 and earlier version of the + catch_command_1() function. Now that other flavours of "catch" + have been introduced, and since exception handling can be handled + in other ways (through target ops) also, this is used only for the + GNU C++ exception handling system. + Note: Only the "catch" flavour of GDB 4.16 is handled here. The + "catch NAME" is now no longer allowed in catch_command_1(). Also, + there was no code in GDB 4.16 for "catch throw". + + Called from catch_exception_command_1 () */ + + +static void +handle_gnu_4_16_catch_command (arg, tempflag, from_tty) + char *arg; + int tempflag; + int from_tty; +{ + /* First, translate ARG into something we can deal with in terms + of breakpoints. */ + + struct symtabs_and_lines sals; + struct symtab_and_line sal; + register struct expression *cond = 0; + register struct breakpoint *b; + char *save_arg; + int i; + + INIT_SAL (&sal); /* initialize to zeroes */ + + /* If no arg given, or if first arg is 'if ', all active catch clauses + are breakpointed. */ + + if (!arg || (arg[0] == 'i' && arg[1] == 'f' + && (arg[2] == ' ' || arg[2] == '\t'))) + { + /* Grab all active catch clauses. */ + sals = get_catch_sals (0); + } + else + { + /* Grab selected catch clauses. */ + error ("catch NAME not implemented"); + +#if 0 + /* Not sure why this code has been disabled. I'm leaving + it disabled. We can never come here now anyway + since we don't allow the "catch NAME" syntax. + pai/1997-07-11 */ + + /* This isn't used; I don't know what it was for. */ + sals = map_catch_names (arg, catch_breakpoint); +#endif + } + + if (! sals.nelts) + return; + + save_arg = arg; + for (i = 0; i < sals.nelts; i++) + { + resolve_sal_pc (&sals.sals[i]); + + while (arg && *arg) + { + if (arg[0] == 'i' && arg[1] == 'f' + && (arg[2] == ' ' || arg[2] == '\t')) + cond = parse_exp_1 ((arg += 2, &arg), + block_for_pc (sals.sals[i].pc), 0); + else + error ("Junk at end of arguments."); + } + arg = save_arg; + } + + for (i = 0; i < sals.nelts; i++) + { + sal = sals.sals[i]; + + if (from_tty) + describe_other_breakpoints (sal.pc, sal.section); + + b = set_raw_breakpoint (sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->type = bp_breakpoint; /* Important -- this is an ordinary breakpoint. + For platforms with callback support for exceptions, + create_exception_catchpoint() will create special + bp types (bp_catch_catch and bp_catch_throw), and + there is code in insert_breakpoints() and elsewhere + that depends on that. */ + + b->cond = cond; + b->enable = enabled; + b->disposition = tempflag ? del : donttouch; + + mention (b); + } + + if (sals.nelts > 1) + { + printf_unfiltered ("Multiple breakpoints were set.\n"); + printf_unfiltered ("Use the \"delete\" command to delete unwanted breakpoints.\n"); + } + free ((PTR)sals.sals); +} + +#if 0 +/* This creates a temporary internal breakpoint + just to placate infrun */ +static struct breakpoint * +create_temp_exception_breakpoint (pc) + CORE_ADDR pc; +{ + struct symtab_and_line sal; + struct breakpoint *b; + + INIT_SAL(&sal); + sal.pc = pc; + sal.symtab = NULL; + sal.line = 0; + + b = set_raw_breakpoint (sal); + if (!b) + error ("Internal error -- couldn't set temp exception breakpoint"); + + b->type = bp_breakpoint; + b->disposition = del; + b->enable = enabled; + b->silent = 1; + b->number = internal_breakpoint_number--; + return b; +} +#endif + +static void +catch_command_1 (arg, tempflag, from_tty) + char *arg; + int tempflag; + int from_tty; +{ + + /* The first argument may be an event name, such as "start" or "load". + If so, then handle it as such. If it doesn't match an event name, + then attempt to interpret it as an exception name. (This latter is + the v4.16-and-earlier GDB meaning of the "catch" command.) + + First, try to find the bounds of what might be an event name. */ + char * arg1_start = arg; + char * arg1_end; + int arg1_length; + + if (arg1_start == NULL) + { + /* Old behaviour was to use pre-v-4.16 syntax */ + /* catch_throw_command_1 (arg1_start, tempflag, from_tty); */ + /* return; */ + /* Now, this is not allowed */ + error ("Catch requires an event name."); + + } + arg1_end = ep_find_event_name_end (arg1_start); + if (arg1_end == NULL) + error ("catch requires an event"); + arg1_length = arg1_end + 1 - arg1_start; + + /* Try to match what we found against known event names. */ + if (strncmp (arg1_start, "signal", arg1_length) == 0) + { + error ("Catch of signal not yet implemented"); + } + else if (strncmp (arg1_start, "catch", arg1_length) == 0) + { + catch_exception_command_1 (EX_EVENT_CATCH, arg1_end+1, tempflag, from_tty); + } + else if (strncmp (arg1_start, "throw", arg1_length) == 0) + { + catch_exception_command_1 (EX_EVENT_THROW, arg1_end+1, tempflag, from_tty); + } + else if (strncmp (arg1_start, "thread_start", arg1_length) == 0) + { + error ("Catch of thread_start not yet implemented"); + } + else if (strncmp (arg1_start, "thread_exit", arg1_length) == 0) + { + error ("Catch of thread_exit not yet implemented"); + } + else if (strncmp (arg1_start, "thread_join", arg1_length) == 0) + { + error ("Catch of thread_join not yet implemented"); + } + else if (strncmp (arg1_start, "start", arg1_length) == 0) + { + error ("Catch of start not yet implemented"); + } + else if (strncmp (arg1_start, "exit", arg1_length) == 0) + { + error ("Catch of exit not yet implemented"); + } + else if (strncmp (arg1_start, "fork", arg1_length) == 0) + { +#if defined(CHILD_INSERT_FORK_CATCHPOINT) + catch_fork_command_1 (catch_fork, arg1_end+1, tempflag, from_tty); +#else + error ("Catch of fork not yet implemented"); +#endif + } + else if (strncmp (arg1_start, "vfork", arg1_length) == 0) + { +#if defined(CHILD_INSERT_VFORK_CATCHPOINT) + catch_fork_command_1 (catch_vfork, arg1_end+1, tempflag, from_tty); +#else + error ("Catch of vfork not yet implemented"); +#endif + } + else if (strncmp (arg1_start, "exec", arg1_length) == 0) + { +#if defined(CHILD_INSERT_EXEC_CATCHPOINT) + catch_exec_command_1 (arg1_end+1, tempflag, from_tty); +#else + error ("Catch of exec not yet implemented"); +#endif + } + else if (strncmp (arg1_start, "load", arg1_length) == 0) + { +#if defined(SOLIB_ADD) + catch_load_command_1 (arg1_end+1, tempflag, from_tty); +#else + error ("Catch of load not implemented"); +#endif + } + else if (strncmp (arg1_start, "unload", arg1_length) == 0) + { +#if defined(SOLIB_ADD) + catch_unload_command_1 (arg1_end+1, tempflag, from_tty); +#else + error ("Catch of load not implemented"); +#endif + } + else if (strncmp (arg1_start, "stop", arg1_length) == 0) + { + error ("Catch of stop not yet implemented"); + } + + /* This doesn't appear to be an event name */ + + else + { + /* Pre-v.4.16 behaviour was to treat the argument + as the name of an exception */ + /* catch_throw_command_1 (arg1_start, tempflag, from_tty); */ + /* Now this is not allowed */ + error ("Unknown event kind specified for catch"); + + } +} + +/* Used by the gui, could be made a worker for other things. */ + +struct breakpoint * +set_breakpoint_sal (sal) + struct symtab_and_line sal; +{ + struct breakpoint *b; + b = set_raw_breakpoint (sal); + set_breakpoint_count (breakpoint_count + 1); + b->number = breakpoint_count; + b->type = bp_breakpoint; + b->cond = 0; + b->thread = -1; + return b; +} + +#if 0 +/* These aren't used; I don't know what they were for. */ +/* Disable breakpoints on all catch clauses described in ARGS. */ +static void +disable_catch (args) + char *args; +{ + /* Map the disable command to catch clauses described in ARGS. */ +} + +/* Enable breakpoints on all catch clauses described in ARGS. */ +static void +enable_catch (args) + char *args; +{ + /* Map the disable command to catch clauses described in ARGS. */ +} + +/* Delete breakpoints on all catch clauses in the active scope. */ +static void +delete_catch (args) + char *args; +{ + /* Map the delete command to catch clauses described in ARGS. */ +} +#endif /* 0 */ + +static void +catch_command (arg, from_tty) + char *arg; + int from_tty; +{ + catch_command_1 (arg, 0, from_tty); +} + + +static void +tcatch_command (arg, from_tty) + char *arg; + int from_tty; +{ + catch_command_1 (arg, 1, from_tty); +} + + +static void +clear_command (arg, from_tty) + char *arg; + int from_tty; +{ + register struct breakpoint *b, *b1; + int default_match; + struct symtabs_and_lines sals; + struct symtab_and_line sal; + register struct breakpoint *found; + int i; + + if (arg) + { + sals = decode_line_spec (arg, 1); + default_match = 0; + } + else + { + sals.sals = (struct symtab_and_line *) + xmalloc (sizeof (struct symtab_and_line)); + INIT_SAL (&sal); /* initialize to zeroes */ + sal.line = default_breakpoint_line; + sal.symtab = default_breakpoint_symtab; + sal.pc = default_breakpoint_address; + if (sal.symtab == 0) + error ("No source file specified."); + + sals.sals[0] = sal; + sals.nelts = 1; + + default_match = 1; + } + + /* For each line spec given, delete bps which correspond + to it. We do this in two loops: the first loop looks at + the initial bp(s) in the chain which should be deleted, + the second goes down the rest of the chain looking ahead + one so it can take those bps off the chain without messing + up the chain. */ + + + for (i = 0; i < sals.nelts; i++) + { + /* If exact pc given, clear bpts at that pc. + If line given (pc == 0), clear all bpts on specified line. + If defaulting, clear all bpts on default line + or at default pc. + + defaulting sal.pc != 0 tests to do + + 0 1 pc + 1 1 pc _and_ line + 0 0 line + 1 0 */ + + sal = sals.sals[i]; + found = (struct breakpoint *) 0; + + + while (breakpoint_chain + /* Why don't we check here that this is not + a watchpoint, etc., as we do below? + I can't make it fail, but don't know + what's stopping the failure: a watchpoint + of the same address as "sal.pc" should + wind up being deleted. */ + + && ( ((sal.pc && (breakpoint_chain->address == sal.pc)) && + (overlay_debugging == 0 || + breakpoint_chain->section == sal.section)) + || ((default_match || (0 == sal.pc)) + && breakpoint_chain->source_file != NULL + && sal.symtab != NULL + && STREQ (breakpoint_chain->source_file, sal.symtab->filename) + && breakpoint_chain->line_number == sal.line))) + + { + b1 = breakpoint_chain; + breakpoint_chain = b1->next; + b1->next = found; + found = b1; + } + + ALL_BREAKPOINTS (b) + + while (b->next + && b->next->type != bp_none + && b->next->type != bp_watchpoint + && b->next->type != bp_hardware_watchpoint + && b->next->type != bp_read_watchpoint + && b->next->type != bp_access_watchpoint + && ( ((sal.pc && (b->next->address == sal.pc)) && + (overlay_debugging == 0 || + b->next->section == sal.section)) + || ((default_match || (0 == sal.pc)) + && b->next->source_file != NULL + && sal.symtab != NULL + && STREQ (b->next->source_file, sal.symtab->filename) + && b->next->line_number == sal.line))) + + + { + b1 = b->next; + b->next = b1->next; + b1->next = found; + found = b1; + } + + if (found == 0) + { + if (arg) + error ("No breakpoint at %s.", arg); + else + error ("No breakpoint at this line."); + } + + if (found->next) from_tty = 1; /* Always report if deleted more than one */ + if (from_tty) printf_unfiltered ("Deleted breakpoint%s ", found->next ? "s" : ""); + breakpoints_changed (); + while (found) + { + if (from_tty) printf_unfiltered ("%d ", found->number); + b1 = found->next; + delete_breakpoint (found); + found = b1; + } + if (from_tty) putchar_unfiltered ('\n'); + } + free ((PTR)sals.sals); +} + +/* Delete breakpoint in BS if they are `delete' breakpoints and + all breakpoints that are marked for deletion, whether hit or not. + This is called after any breakpoint is hit, or after errors. */ + +void +breakpoint_auto_delete (bs) + bpstat bs; +{ + struct breakpoint *b, *temp; + + for (; bs; bs = bs->next) + if (bs->breakpoint_at && bs->breakpoint_at->disposition == del + && bs->stop) + delete_breakpoint (bs->breakpoint_at); + + ALL_BREAKPOINTS_SAFE (b, temp) + { + if (b->disposition == del_at_next_stop) + delete_breakpoint (b); + } +} + +/* Delete a breakpoint and clean up all traces of it in the data structures. */ + +void +delete_breakpoint (bpt) + struct breakpoint *bpt; +{ + register struct breakpoint *b; + register bpstat bs; + + if (bpt == NULL) + error ("Internal error (attempted to delete a NULL breakpoint)"); + + + /* Has this bp already been deleted? This can happen because multiple + lists can hold pointers to bp's. bpstat lists are especial culprits. + + One example of this happening is a watchpoint's scope bp. When the + scope bp triggers, we notice that the watchpoint is out of scope, and + delete it. We also delete its scope bp. But the scope bp is marked + "auto-deleting", and is already on a bpstat. That bpstat is then + checked for auto-deleting bp's, which are deleted. + + A real solution to this problem might involve reference counts in bp's, + and/or giving them pointers back to their referencing bpstat's, and + teaching delete_breakpoint to only free a bp's storage when no more + references were extent. A cheaper bandaid was chosen. */ + if (bpt->type == bp_none) + return; + + if (delete_breakpoint_hook) + delete_breakpoint_hook (bpt); + + if (bpt->inserted) + remove_breakpoint (bpt, mark_uninserted); + + if (breakpoint_chain == bpt) + breakpoint_chain = bpt->next; + + /* If we have callback-style exception catchpoints, don't go through + the adjustments to the C++ runtime library etc. if the inferior + isn't actually running. target_enable_exception_callback for a + null target ops vector gives an undesirable error message, so we + check here and avoid it. Since currently (1997-09-17) only HP-UX aCC's + exceptions are supported in this way, it's OK for now. FIXME */ + if (ep_is_exception_catchpoint (bpt) && target_has_execution) + { + static char message1[] = "Error in deleting catchpoint %d:\n"; + static char message[sizeof (message1) + 30]; + args_for_catchpoint_enable args; + + sprintf (message, message1, bpt->number); /* Format possible error msg */ + args.kind = bpt->type == bp_catch_catch ? EX_EVENT_CATCH : EX_EVENT_THROW; + args.enable = 0; + catch_errors (cover_target_enable_exception_callback, &args, + message, RETURN_MASK_ALL); + } + + + ALL_BREAKPOINTS (b) + if (b->next == bpt) + { + b->next = bpt->next; + break; + } + + /* Before turning off the visuals for the bp, check to see that + there are no other bps at the same address. */ + if (tui_version) + { + int clearIt; + + ALL_BREAKPOINTS (b) + { + clearIt = (b->address != bpt->address); + if (!clearIt) + break; + } + + if (clearIt) + { + TUIDO(((TuiOpaqueFuncPtr)tui_vAllSetHasBreakAt, bpt, 0)); + TUIDO(((TuiOpaqueFuncPtr)tuiUpdateAllExecInfos)); + } + } + + check_duplicates (bpt->address, bpt->section); + /* If this breakpoint was inserted, and there is another breakpoint + at the same address, we need to insert the other breakpoint. */ + if (bpt->inserted + && bpt->type != bp_hardware_watchpoint + && bpt->type != bp_read_watchpoint + && bpt->type != bp_access_watchpoint + && bpt->type != bp_catch_fork + && bpt->type != bp_catch_vfork + && bpt->type != bp_catch_exec) + { + ALL_BREAKPOINTS (b) + if (b->address == bpt->address + && b->section == bpt->section + && !b->duplicate + && b->enable != disabled + && b->enable != shlib_disabled + && b->enable != call_disabled) + { + int val; + val = target_insert_breakpoint (b->address, b->shadow_contents); + if (val != 0) + { + target_terminal_ours_for_output (); + fprintf_unfiltered (gdb_stderr, "Cannot insert breakpoint %d:\n", b->number); + memory_error (val, b->address); /* which bombs us out */ + } + else + b->inserted = 1; + } + } + + free_command_lines (&bpt->commands); + if (bpt->cond) + free (bpt->cond); + if (bpt->cond_string != NULL) + free (bpt->cond_string); + if (bpt->addr_string != NULL) + free (bpt->addr_string); + if (bpt->exp != NULL) + free (bpt->exp); + if (bpt->exp_string != NULL) + free (bpt->exp_string); + if (bpt->val != NULL) + value_free (bpt->val); + if (bpt->source_file != NULL) + free (bpt->source_file); + if (bpt->dll_pathname != NULL) + free (bpt->dll_pathname); + if (bpt->triggered_dll_pathname != NULL) + free (bpt->triggered_dll_pathname); + if (bpt->exec_pathname != NULL) + free (bpt->exec_pathname); + + /* Be sure no bpstat's are pointing at it after it's been freed. */ + /* FIXME, how can we find all bpstat's? + We just check stop_bpstat for now. */ + for (bs = stop_bpstat; bs; bs = bs->next) + if (bs->breakpoint_at == bpt) + { + bs->breakpoint_at = NULL; + + /* we'd call bpstat_clear_actions, but that free's stuff and due + to the multiple pointers pointing to one item with no + reference counts found anywhere through out the bpstat's (how + do you spell fragile?), we don't want to free things twice -- + better a memory leak than a corrupt malloc pool! */ + bs->commands = NULL; + bs->old_val = NULL; + } + /* On the chance that someone will soon try again to delete this same + bp, we mark it as deleted before freeing its storage. */ + bpt->type = bp_none; + + free ((PTR)bpt); +} + +void +delete_command (arg, from_tty) + char *arg; + int from_tty; +{ + struct breakpoint *b, *temp; + + if (arg == 0) + { + int breaks_to_delete = 0; + + /* Delete all breakpoints if no argument. + Do not delete internal or call-dummy breakpoints, these + have to be deleted with an explicit breakpoint number argument. */ + ALL_BREAKPOINTS (b) + { + if (b->type != bp_call_dummy && + b->type != bp_shlib_event && + b->number >= 0) + breaks_to_delete = 1; + } + + /* Ask user only if there are some breakpoints to delete. */ + if (!from_tty + || (breaks_to_delete && query ("Delete all breakpoints? "))) + { + ALL_BREAKPOINTS_SAFE (b, temp) + { + if (b->type != bp_call_dummy && + b->type != bp_shlib_event && + b->number >= 0) + delete_breakpoint (b); + } + } + } + else + map_breakpoint_numbers (arg, delete_breakpoint); +} + +/* Reset a breakpoint given it's struct breakpoint * BINT. + The value we return ends up being the return value from catch_errors. + Unused in this case. */ + +static int +breakpoint_re_set_one (bint) + PTR bint; +{ + struct breakpoint *b = (struct breakpoint *)bint; /* get past catch_errs */ + struct value *mark; + int i; + struct symtabs_and_lines sals; + char *s; + enum enable save_enable; + + switch (b->type) + { + case bp_none: + warning ("attempted to reset apparently deleted breakpoint #%d?\n", b->number); + return 0; + case bp_breakpoint: + case bp_hardware_breakpoint: + case bp_catch_load: + case bp_catch_unload: + if (b->addr_string == NULL) + { + /* Anything without a string can't be re-set. */ + delete_breakpoint (b); + return 0; + } + /* In case we have a problem, disable this breakpoint. We'll restore + its status if we succeed. */ + save_enable = b->enable; + b->enable = disabled; + + set_language (b->language); + input_radix = b->input_radix; + s = b->addr_string; + sals = decode_line_1 (&s, 1, (struct symtab *)NULL, 0, (char ***)NULL); + for (i = 0; i < sals.nelts; i++) + { + resolve_sal_pc (&sals.sals[i]); + + /* Reparse conditions, they might contain references to the + old symtab. */ + if (b->cond_string != NULL) + { + s = b->cond_string; + if (b->cond) + free ((PTR)b->cond); + b->cond = parse_exp_1 (&s, block_for_pc (sals.sals[i].pc), 0); + } + + /* We need to re-set the breakpoint if the address changes...*/ + if (b->address != sals.sals[i].pc + /* ...or new and old breakpoints both have source files, and + the source file name or the line number changes... */ + || (b->source_file != NULL + && sals.sals[i].symtab != NULL + && (!STREQ (b->source_file, sals.sals[i].symtab->filename) + || b->line_number != sals.sals[i].line) + ) + /* ...or we switch between having a source file and not having + one. */ + || ((b->source_file == NULL) != (sals.sals[i].symtab == NULL)) + ) + { + if (b->source_file != NULL) + free (b->source_file); + if (sals.sals[i].symtab == NULL) + b->source_file = NULL; + else + b->source_file = + savestring (sals.sals[i].symtab->filename, + strlen (sals.sals[i].symtab->filename)); + b->line_number = sals.sals[i].line; + b->address = sals.sals[i].pc; + + /* Used to check for duplicates here, but that can + cause trouble, as it doesn't check for disable + breakpoints. */ + + mention (b); + + /* Might be better to do this just once per breakpoint_re_set, + rather than once for every breakpoint. */ + breakpoints_changed (); + } + b->section = sals.sals[i].section; + b->enable = save_enable; /* Restore it, this worked. */ + + + /* Now that this is re-enabled, check_duplicates + can be used. */ + check_duplicates (b->address, b->section); + + } + free ((PTR)sals.sals); + break; + + case bp_watchpoint: + case bp_hardware_watchpoint: + case bp_read_watchpoint: + case bp_access_watchpoint: + innermost_block = NULL; + /* The issue arises of what context to evaluate this in. The same + one as when it was set, but what does that mean when symbols have + been re-read? We could save the filename and functionname, but + if the context is more local than that, the best we could do would + be something like how many levels deep and which index at that + particular level, but that's going to be less stable than filenames + or functionnames. */ + /* So for now, just use a global context. */ + if (b->exp) + free ((PTR)b->exp); + b->exp = parse_expression (b->exp_string); + b->exp_valid_block = innermost_block; + mark = value_mark (); + if (b->val) + value_free (b->val); + b->val = evaluate_expression (b->exp); + release_value (b->val); + if (VALUE_LAZY (b->val)) + value_fetch_lazy (b->val); + + if (b->cond_string != NULL) + { + s = b->cond_string; + if (b->cond) + free ((PTR)b->cond); + b->cond = parse_exp_1 (&s, (struct block *)0, 0); + } + if (b->enable == enabled) + mention (b); + value_free_to_mark (mark); + break; + case bp_catch_catch: + case bp_catch_throw: + break; + /* We needn't really do anything to reset these, since the mask + that requests them is unaffected by e.g., new libraries being + loaded. */ + case bp_catch_fork: + case bp_catch_vfork: + case bp_catch_exec: + break; + + default: + printf_filtered ("Deleting unknown breakpoint type %d\n", b->type); + /* fall through */ + /* Delete longjmp breakpoints, they will be reset later by + breakpoint_re_set. */ + case bp_longjmp: + case bp_longjmp_resume: + delete_breakpoint (b); + break; + + /* This breakpoint is special, it's set up when the inferior + starts and we really don't want to touch it. */ + case bp_shlib_event: + + /* Keep temporary breakpoints, which can be encountered when we step + over a dlopen call and SOLIB_ADD is resetting the breakpoints. + Otherwise these should have been blown away via the cleanup chain + or by breakpoint_init_inferior when we rerun the executable. */ + case bp_until: + case bp_finish: + case bp_watchpoint_scope: + case bp_call_dummy: + case bp_step_resume: + break; + } + + return 0; +} + +/* Re-set all breakpoints after symbols have been re-loaded. */ +void +breakpoint_re_set () +{ + struct breakpoint *b, *temp; + enum language save_language; + int save_input_radix; + static char message1[] = "Error in re-setting breakpoint %d:\n"; + char message[sizeof (message1) + 30 /* slop */]; + + save_language = current_language->la_language; + save_input_radix = input_radix; + ALL_BREAKPOINTS_SAFE (b, temp) + { + sprintf (message, message1, b->number); /* Format possible error msg */ + catch_errors (breakpoint_re_set_one, b, message, RETURN_MASK_ALL); + } + set_language (save_language); + input_radix = save_input_radix; + +#ifdef GET_LONGJMP_TARGET + create_longjmp_breakpoint ("longjmp"); + create_longjmp_breakpoint ("_longjmp"); + create_longjmp_breakpoint ("siglongjmp"); + create_longjmp_breakpoint ("_siglongjmp"); + create_longjmp_breakpoint (NULL); +#endif + +#if 0 + /* Took this out (temporarily at least), since it produces an extra + blank line at startup. This messes up the gdbtests. -PB */ + /* Blank line to finish off all those mention() messages we just printed. */ + printf_filtered ("\n"); +#endif +} + +/* Set ignore-count of breakpoint number BPTNUM to COUNT. + If from_tty is nonzero, it prints a message to that effect, + which ends with a period (no newline). */ + +/* Reset the thread number of this breakpoint: + + - If the breakpoint is for all threads, leave it as-is. + - Else, reset it to the current thread for inferior_pid. */ +void +breakpoint_re_set_thread (b) + struct breakpoint * b; +{ + if (b->thread != -1) + { + if (in_thread_list (inferior_pid)) + b->thread = pid_to_thread_id (inferior_pid); + } +} + +void +set_ignore_count (bptnum, count, from_tty) + int bptnum, count, from_tty; +{ + register struct breakpoint *b; + + if (count < 0) + count = 0; + + ALL_BREAKPOINTS (b) + if (b->number == bptnum) + { + b->ignore_count = count; + if (!from_tty) + return; + else if (count == 0) + printf_filtered ("Will stop next time breakpoint %d is reached.", + bptnum); + else if (count == 1) + printf_filtered ("Will ignore next crossing of breakpoint %d.", + bptnum); + else + printf_filtered ("Will ignore next %d crossings of breakpoint %d.", + count, bptnum); + breakpoints_changed (); + return; + } + + error ("No breakpoint number %d.", bptnum); +} + +/* Clear the ignore counts of all breakpoints. */ +void +breakpoint_clear_ignore_counts () +{ + struct breakpoint *b; + + ALL_BREAKPOINTS (b) + b->ignore_count = 0; +} + +/* Command to set ignore-count of breakpoint N to COUNT. */ + +static void +ignore_command (args, from_tty) + char *args; + int from_tty; +{ + char *p = args; + register int num; + + if (p == 0) + error_no_arg ("a breakpoint number"); + + num = get_number (&p); + + if (*p == 0) + error ("Second argument (specified ignore-count) is missing."); + + set_ignore_count (num, + longest_to_int (value_as_long (parse_and_eval (p))), + from_tty); + printf_filtered ("\n"); + breakpoints_changed (); +} + +/* Call FUNCTION on each of the breakpoints + whose numbers are given in ARGS. */ + +static void +map_breakpoint_numbers (args, function) + char *args; + void (*function) PARAMS ((struct breakpoint *)); +{ + register char *p = args; + char *p1; + register int num; + register struct breakpoint *b; + + if (p == 0) + error_no_arg ("one or more breakpoint numbers"); + + while (*p) + { + p1 = p; + + num = get_number (&p1); + + ALL_BREAKPOINTS (b) + if (b->number == num) + { + struct breakpoint *related_breakpoint = b->related_breakpoint; + function (b); + if (related_breakpoint) + function (related_breakpoint); + goto win; + } + printf_unfiltered ("No breakpoint number %d.\n", num); + win: + p = p1; + } +} + +void +disable_breakpoint (bpt) + struct breakpoint *bpt; +{ + /* Never disable a watchpoint scope breakpoint; we want to + hit them when we leave scope so we can delete both the + watchpoint and its scope breakpoint at that time. */ + if (bpt->type == bp_watchpoint_scope) + return; + + bpt->enable = disabled; + + check_duplicates (bpt->address, bpt->section); + + if (modify_breakpoint_hook) + modify_breakpoint_hook (bpt); +} + +/* ARGSUSED */ +static void +disable_command (args, from_tty) + char *args; + int from_tty; +{ + register struct breakpoint *bpt; + if (args == 0) + ALL_BREAKPOINTS (bpt) + switch (bpt->type) + { + case bp_none: + warning ("attempted to disable apparently deleted breakpoint #%d?\n", bpt->number); + continue; + case bp_breakpoint: + case bp_catch_load: + case bp_catch_unload: + case bp_catch_fork: + case bp_catch_vfork: + case bp_catch_exec: + case bp_catch_catch: + case bp_catch_throw: + case bp_hardware_breakpoint: + case bp_watchpoint: + case bp_hardware_watchpoint: + case bp_read_watchpoint: + case bp_access_watchpoint: + disable_breakpoint (bpt); + default: + continue; + } + else + map_breakpoint_numbers (args, disable_breakpoint); +} + +static void +do_enable_breakpoint (bpt, disposition) + struct breakpoint *bpt; + enum bpdisp disposition; +{ + struct frame_info *save_selected_frame = NULL; + int save_selected_frame_level = -1; + int target_resources_ok, other_type_used; + struct value *mark; + + if (bpt->type == bp_hardware_breakpoint) + { + int i; + i = hw_breakpoint_used_count(); + target_resources_ok = TARGET_CAN_USE_HARDWARE_WATCHPOINT( + bp_hardware_breakpoint, i+1, 0); + if (target_resources_ok == 0) + error ("No hardware breakpoint support in the target."); + else if (target_resources_ok < 0) + error ("Hardware breakpoints used exceeds limit."); + } + + bpt->enable = enabled; + bpt->disposition = disposition; + check_duplicates (bpt->address, bpt->section); + breakpoints_changed (); + + if (bpt->type == bp_watchpoint || bpt->type == bp_hardware_watchpoint || + bpt->type == bp_read_watchpoint || bpt->type == bp_access_watchpoint) + { + if (bpt->exp_valid_block != NULL) + { + struct frame_info *fr = + + /* Ensure that we have the current frame. Else, this + next query may pessimistically be answered as, "No, + not within current scope". */ + get_current_frame (); + fr = find_frame_addr_in_frame_chain (bpt->watchpoint_frame); + if (fr == NULL) + { + printf_filtered ("\ +Cannot enable watchpoint %d because the block in which its expression\n\ +is valid is not currently in scope.\n", bpt->number); + bpt->enable = disabled; + return; + } + + save_selected_frame = selected_frame; + save_selected_frame_level = selected_frame_level; + select_frame (fr, -1); + } + + value_free (bpt->val); + mark = value_mark (); + bpt->val = evaluate_expression (bpt->exp); + release_value (bpt->val); + if (VALUE_LAZY (bpt->val)) + value_fetch_lazy (bpt->val); + + if (bpt->type == bp_hardware_watchpoint || + bpt->type == bp_read_watchpoint || + bpt->type == bp_access_watchpoint) + { + int i = hw_watchpoint_used_count (bpt->type, &other_type_used); + int mem_cnt = can_use_hardware_watchpoint (bpt->val); + + /* Hack around 'unused var' error for some targets here */ + (void) mem_cnt, i; + target_resources_ok = TARGET_CAN_USE_HARDWARE_WATCHPOINT( + bpt->type, i + mem_cnt, other_type_used); + /* we can consider of type is bp_hardware_watchpoint, convert to + bp_watchpoint in the following condition */ + if (target_resources_ok < 0) + { + printf_filtered("\ +Cannot enable watchpoint %d because target watch resources\n\ +have been allocated for other watchpoints.\n", bpt->number); + bpt->enable = disabled; + value_free_to_mark (mark); + return; + } + } + + if (save_selected_frame_level >= 0) + select_and_print_frame (save_selected_frame, save_selected_frame_level); + value_free_to_mark (mark); + } + if (modify_breakpoint_hook) + modify_breakpoint_hook (bpt); +} + +void +enable_breakpoint (bpt) + struct breakpoint *bpt; +{ + do_enable_breakpoint (bpt, bpt->disposition); +} + +/* The enable command enables the specified breakpoints (or all defined + breakpoints) so they once again become (or continue to be) effective + in stopping the inferior. */ + +/* ARGSUSED */ +static void +enable_command (args, from_tty) + char *args; + int from_tty; +{ + register struct breakpoint *bpt; + if (args == 0) + ALL_BREAKPOINTS (bpt) + switch (bpt->type) + { + case bp_none: + warning ("attempted to enable apparently deleted breakpoint #%d?\n", bpt->number); + continue; + case bp_breakpoint: + case bp_catch_load: + case bp_catch_unload: + case bp_catch_fork: + case bp_catch_vfork: + case bp_catch_exec: + case bp_catch_catch: + case bp_catch_throw: + case bp_hardware_breakpoint: + case bp_watchpoint: + case bp_hardware_watchpoint: + case bp_read_watchpoint: + case bp_access_watchpoint: + enable_breakpoint (bpt); + default: + continue; + } + else + map_breakpoint_numbers (args, enable_breakpoint); +} + +static void +enable_once_breakpoint (bpt) + struct breakpoint *bpt; +{ + do_enable_breakpoint (bpt, disable); +} + +/* ARGSUSED */ +static void +enable_once_command (args, from_tty) + char *args; + int from_tty; +{ + map_breakpoint_numbers (args, enable_once_breakpoint); +} + +static void +enable_delete_breakpoint (bpt) + struct breakpoint *bpt; +{ + do_enable_breakpoint (bpt, del); +} + +/* ARGSUSED */ +static void +enable_delete_command (args, from_tty) + char *args; + int from_tty; +{ + map_breakpoint_numbers (args, enable_delete_breakpoint); +} + +/* Use default_breakpoint_'s, or nothing if they aren't valid. */ + +struct symtabs_and_lines +decode_line_spec_1 (string, funfirstline) + char *string; + int funfirstline; +{ + struct symtabs_and_lines sals; + if (string == 0) + error ("Empty line specification."); + if (default_breakpoint_valid) + sals = decode_line_1 (&string, funfirstline, + default_breakpoint_symtab, default_breakpoint_line, + (char ***)NULL); + else + sals = decode_line_1 (&string, funfirstline, + (struct symtab *)NULL, 0, (char ***)NULL); + if (*string) + error ("Junk at end of line specification: %s", string); + return sals; +} + +void +_initialize_breakpoint () +{ + struct cmd_list_element *c; + + breakpoint_chain = 0; + /* Don't bother to call set_breakpoint_count. $bpnum isn't useful + before a breakpoint is set. */ + breakpoint_count = 0; + + add_com ("ignore", class_breakpoint, ignore_command, + "Set ignore-count of breakpoint number N to COUNT.\n\ +Usage is `ignore N COUNT'."); + if (xdb_commands) + add_com_alias("bc", "ignore", class_breakpoint, 1); + + add_com ("commands", class_breakpoint, commands_command, + "Set commands to be executed when a breakpoint is hit.\n\ +Give breakpoint number as argument after \"commands\".\n\ +With no argument, the targeted breakpoint is the last one set.\n\ +The commands themselves follow starting on the next line.\n\ +Type a line containing \"end\" to indicate the end of them.\n\ +Give \"silent\" as the first line to make the breakpoint silent;\n\ +then no output is printed when it is hit, except what the commands print."); + + add_com ("condition", class_breakpoint, condition_command, + "Specify breakpoint number N to break only if COND is true.\n\ +Usage is `condition N COND', where N is an integer and COND is an\n\ +expression to be evaluated whenever breakpoint N is reached. "); + + add_com ("tbreak", class_breakpoint, tbreak_command, + "Set a temporary breakpoint. Args like \"break\" command.\n\ +Like \"break\" except the breakpoint is only temporary,\n\ +so it will be deleted when hit. Equivalent to \"break\" followed\n\ +by using \"enable delete\" on the breakpoint number."); + add_com("txbreak", class_breakpoint, tbreak_at_finish_command, + "Set temporary breakpoint at procedure exit. Either there should\n\ +be no argument or the argument must be a depth.\n"); + + add_com ("hbreak", class_breakpoint, hbreak_command, + "Set a hardware assisted breakpoint. Args like \"break\" command.\n\ +Like \"break\" except the breakpoint requires hardware support,\n\ +some target hardware may not have this support."); + + add_com ("thbreak", class_breakpoint, thbreak_command, + "Set a temporary hardware assisted breakpoint. Args like \"break\" command.\n\ +Like \"hbreak\" except the breakpoint is only temporary,\n\ +so it will be deleted when hit."); + + add_prefix_cmd ("enable", class_breakpoint, enable_command, + "Enable some breakpoints.\n\ +Give breakpoint numbers (separated by spaces) as arguments.\n\ +With no subcommand, breakpoints are enabled until you command otherwise.\n\ +This is used to cancel the effect of the \"disable\" command.\n\ +With a subcommand you can enable temporarily.", + &enablelist, "enable ", 1, &cmdlist); + if (xdb_commands) + add_com("ab", class_breakpoint, enable_command, + "Enable some breakpoints.\n\ +Give breakpoint numbers (separated by spaces) as arguments.\n\ +With no subcommand, breakpoints are enabled until you command otherwise.\n\ +This is used to cancel the effect of the \"disable\" command.\n\ +With a subcommand you can enable temporarily."); + + add_com_alias ("en", "enable", class_breakpoint, 1); + + add_abbrev_prefix_cmd ("breakpoints", class_breakpoint, enable_command, + "Enable some breakpoints.\n\ +Give breakpoint numbers (separated by spaces) as arguments.\n\ +This is used to cancel the effect of the \"disable\" command.\n\ +May be abbreviated to simply \"enable\".\n", + &enablebreaklist, "enable breakpoints ", 1, &enablelist); + + add_cmd ("once", no_class, enable_once_command, + "Enable breakpoints for one hit. Give breakpoint numbers.\n\ +If a breakpoint is hit while enabled in this fashion, it becomes disabled.", + &enablebreaklist); + + add_cmd ("delete", no_class, enable_delete_command, + "Enable breakpoints and delete when hit. Give breakpoint numbers.\n\ +If a breakpoint is hit while enabled in this fashion, it is deleted.", + &enablebreaklist); + + add_cmd ("delete", no_class, enable_delete_command, + "Enable breakpoints and delete when hit. Give breakpoint numbers.\n\ +If a breakpoint is hit while enabled in this fashion, it is deleted.", + &enablelist); + + add_cmd ("once", no_class, enable_once_command, + "Enable breakpoints for one hit. Give breakpoint numbers.\n\ +If a breakpoint is hit while enabled in this fashion, it becomes disabled.", + &enablelist); + + add_prefix_cmd ("disable", class_breakpoint, disable_command, + "Disable some breakpoints.\n\ +Arguments are breakpoint numbers with spaces in between.\n\ +To disable all breakpoints, give no argument.\n\ +A disabled breakpoint is not forgotten, but has no effect until reenabled.", + &disablelist, "disable ", 1, &cmdlist); + add_com_alias ("dis", "disable", class_breakpoint, 1); + add_com_alias ("disa", "disable", class_breakpoint, 1); + if (xdb_commands) + add_com("sb", class_breakpoint, disable_command, + "Disable some breakpoints.\n\ +Arguments are breakpoint numbers with spaces in between.\n\ +To disable all breakpoints, give no argument.\n\ +A disabled breakpoint is not forgotten, but has no effect until reenabled."); + + add_cmd ("breakpoints", class_alias, disable_command, + "Disable some breakpoints.\n\ +Arguments are breakpoint numbers with spaces in between.\n\ +To disable all breakpoints, give no argument.\n\ +A disabled breakpoint is not forgotten, but has no effect until reenabled.\n\ +This command may be abbreviated \"disable\".", + &disablelist); + + add_prefix_cmd ("delete", class_breakpoint, delete_command, + "Delete some breakpoints or auto-display expressions.\n\ +Arguments are breakpoint numbers with spaces in between.\n\ +To delete all breakpoints, give no argument.\n\ +\n\ +Also a prefix command for deletion of other GDB objects.\n\ +The \"unset\" command is also an alias for \"delete\".", + &deletelist, "delete ", 1, &cmdlist); + add_com_alias ("d", "delete", class_breakpoint, 1); + if (xdb_commands) + add_com ("db", class_breakpoint, delete_command, + "Delete some breakpoints.\n\ +Arguments are breakpoint numbers with spaces in between.\n\ +To delete all breakpoints, give no argument.\n"); + + add_cmd ("breakpoints", class_alias, delete_command, + "Delete some breakpoints or auto-display expressions.\n\ +Arguments are breakpoint numbers with spaces in between.\n\ +To delete all breakpoints, give no argument.\n\ +This command may be abbreviated \"delete\".", + &deletelist); + + add_com ("clear", class_breakpoint, clear_command, + concat ("Clear breakpoint at specified line or function.\n\ +Argument may be line number, function name, or \"*\" and an address.\n\ +If line number is specified, all breakpoints in that line are cleared.\n\ +If function is specified, breakpoints at beginning of function are cleared.\n\ +If an address is specified, breakpoints at that address are cleared.\n\n", +"With no argument, clears all breakpoints in the line that the selected frame\n\ +is executing in.\n\ +\n\ +See also the \"delete\" command which clears breakpoints by number.", NULL)); + + add_com ("break", class_breakpoint, break_command, + concat ("Set breakpoint at specified line or function.\n\ +Argument may be line number, function name, or \"*\" and an address.\n\ +If line number is specified, break at start of code for that line.\n\ +If function is specified, break at start of code for that function.\n\ +If an address is specified, break at that exact address.\n", +"With no arg, uses current execution address of selected stack frame.\n\ +This is useful for breaking on return to a stack frame.\n\ +\n\ +Multiple breakpoints at one place are permitted, and useful if conditional.\n\ +\n\ +Do \"help breakpoints\" for info on other commands dealing with breakpoints.", NULL)); + add_com_alias ("b", "break", class_run, 1); + add_com_alias ("br", "break", class_run, 1); + add_com_alias ("bre", "break", class_run, 1); + add_com_alias ("brea", "break", class_run, 1); + + add_com("xbreak", class_breakpoint, break_at_finish_command, + concat("Set breakpoint at procedure exit. \n\ +Argument may be function name, or \"*\" and an address.\n\ +If function is specified, break at end of code for that function.\n\ +If an address is specified, break at the end of the function that contains \n\ +that exact address.\n", +"With no arg, uses current execution address of selected stack frame.\n\ +This is useful for breaking on return to a stack frame.\n\ +\n\ +Multiple breakpoints at one place are permitted, and useful if conditional.\n\ +\n\ +Do \"help breakpoints\" for info on other commands dealing with breakpoints.", NULL)); + add_com_alias ("xb", "xbreak", class_breakpoint, 1); + add_com_alias ("xbr", "xbreak", class_breakpoint, 1); + add_com_alias ("xbre", "xbreak", class_breakpoint, 1); + add_com_alias ("xbrea", "xbreak", class_breakpoint, 1); + + if (xdb_commands) + { + add_com_alias ("ba", "break", class_breakpoint, 1); + add_com_alias ("bu", "ubreak", class_breakpoint, 1); + add_com ("bx", class_breakpoint, break_at_finish_at_depth_command, + "Set breakpoint at procedure exit. Either there should\n\ +be no argument or the argument must be a depth.\n"); + } + + if (dbx_commands) + { + add_abbrev_prefix_cmd("stop", class_breakpoint, stop_command, + "Break in function/address or break at a line in the current file.", + &stoplist, "stop ", 1, &cmdlist); + add_cmd("in", class_breakpoint, stopin_command, + "Break in function or address.\n", &stoplist); + add_cmd("at", class_breakpoint, stopat_command, + "Break at a line in the current file.\n", &stoplist); + add_com("status", class_info, breakpoints_info, + concat ("Status of user-settable breakpoints, or breakpoint number NUMBER.\n\ +The \"Type\" column indicates one of:\n\ +\tbreakpoint - normal breakpoint\n\ +\twatchpoint - watchpoint\n\ +The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ +the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ +breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ +address and file/line number respectively.\n\n", +"Convenience variable \"$_\" and default examine address for \"x\"\n\ +are set to the address of the last breakpoint listed.\n\n\ +Convenience variable \"$bpnum\" contains the number of the last\n\ +breakpoint set.", NULL)); + } + + add_info ("breakpoints", breakpoints_info, + concat ("Status of user-settable breakpoints, or breakpoint number NUMBER.\n\ +The \"Type\" column indicates one of:\n\ +\tbreakpoint - normal breakpoint\n\ +\twatchpoint - watchpoint\n\ +The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ +the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ +breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ +address and file/line number respectively.\n\n", +"Convenience variable \"$_\" and default examine address for \"x\"\n\ +are set to the address of the last breakpoint listed.\n\n\ +Convenience variable \"$bpnum\" contains the number of the last\n\ +breakpoint set.", NULL)); + + if (xdb_commands) + add_com("lb", class_breakpoint, breakpoints_info, + concat ("Status of user-settable breakpoints, or breakpoint number NUMBER.\n\ +The \"Type\" column indicates one of:\n\ +\tbreakpoint - normal breakpoint\n\ +\twatchpoint - watchpoint\n\ +The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ +the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ +breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ +address and file/line number respectively.\n\n", +"Convenience variable \"$_\" and default examine address for \"x\"\n\ +are set to the address of the last breakpoint listed.\n\n\ +Convenience variable \"$bpnum\" contains the number of the last\n\ +breakpoint set.", NULL)); + +#if MAINTENANCE_CMDS + + add_cmd ("breakpoints", class_maintenance, maintenance_info_breakpoints, + concat ("Status of all breakpoints, or breakpoint number NUMBER.\n\ +The \"Type\" column indicates one of:\n\ +\tbreakpoint - normal breakpoint\n\ +\twatchpoint - watchpoint\n\ +\tlongjmp - internal breakpoint used to step through longjmp()\n\ +\tlongjmp resume - internal breakpoint at the target of longjmp()\n\ +\tuntil - internal breakpoint used by the \"until\" command\n\ +\tfinish - internal breakpoint used by the \"finish\" command\n", +"The \"Disp\" column contains one of \"keep\", \"del\", or \"dis\" to indicate\n\ +the disposition of the breakpoint after it gets hit. \"dis\" means that the\n\ +breakpoint will be disabled. The \"Address\" and \"What\" columns indicate the\n\ +address and file/line number respectively.\n\n", +"Convenience variable \"$_\" and default examine address for \"x\"\n\ +are set to the address of the last breakpoint listed.\n\n\ +Convenience variable \"$bpnum\" contains the number of the last\n\ +breakpoint set.", NULL), + &maintenanceinfolist); + +#endif /* MAINTENANCE_CMDS */ + + add_com ("catch", class_breakpoint, catch_command, + "Set catchpoints to catch events.\n\ +Raised signals may be caught:\n\ +\tcatch signal - all signals\n\ +\tcatch signal - a particular signal\n\ +Raised exceptions may be caught:\n\ +\tcatch throw - all exceptions, when thrown\n\ +\tcatch throw - a particular exception, when thrown\n\ +\tcatch catch - all exceptions, when caught\n\ +\tcatch catch - a particular exception, when caught\n\ +Thread or process events may be caught:\n\ +\tcatch thread_start - any threads, just after creation\n\ +\tcatch thread_exit - any threads, just before expiration\n\ +\tcatch thread_join - any threads, just after joins\n\ +Process events may be caught:\n\ +\tcatch start - any processes, just after creation\n\ +\tcatch exit - any processes, just before expiration\n\ +\tcatch fork - calls to fork()\n\ +\tcatch vfork - calls to vfork()\n\ +\tcatch exec - calls to exec()\n\ +Dynamically-linked library events may be caught:\n\ +\tcatch load - loads of any library\n\ +\tcatch load - loads of a particular library\n\ +\tcatch unload - unloads of any library\n\ +\tcatch unload - unloads of a particular library\n\ +The act of your program's execution stopping may also be caught:\n\ +\tcatch stop\n\n\ +C++ exceptions may be caught:\n\ +\tcatch throw - all exceptions, when thrown\n\ +\tcatch catch - all exceptions, when caught\n\ +\n\ +Do \"help set follow-fork-mode\" for info on debugging your program\n\ +after a fork or vfork is caught.\n\n\ +Do \"help breakpoints\" for info on other commands dealing with breakpoints."); + + add_com ("tcatch", class_breakpoint, tcatch_command, + "Set temporary catchpoints to catch events.\n\ +Args like \"catch\" command.\n\ +Like \"catch\" except the catchpoint is only temporary,\n\ +so it will be deleted when hit. Equivalent to \"catch\" followed\n\ +by using \"enable delete\" on the catchpoint number."); + +add_com ("watch", class_breakpoint, watch_command, + + "Set a watchpoint for an expression.\n\ +A watchpoint stops execution of your program whenever the value of\n\ +an expression changes."); + + add_com ("rwatch", class_breakpoint, rwatch_command, + "Set a read watchpoint for an expression.\n\ +A watchpoint stops execution of your program whenever the value of\n\ +an expression is read."); + + add_com ("awatch", class_breakpoint, awatch_command, + "Set a watchpoint for an expression.\n\ +A watchpoint stops execution of your program whenever the value of\n\ +an expression is either read or written."); + + add_info ("watchpoints", breakpoints_info, + "Synonym for ``info breakpoints''."); + + + c = add_set_cmd ("can-use-hw-watchpoints", class_support, var_zinteger, + (char *) &can_use_hw_watchpoints, + "Set debugger's willingness to use watchpoint hardware.\n\ +If zero, gdb will not use hardware for new watchpoints, even if\n\ +such is available. (However, any hardware watchpoints that were\n\ +created before setting this to nonzero, will continue to use watchpoint\n\ +hardware.)", + &setlist); + add_show_from_set (c, &showlist); + + can_use_hw_watchpoints = 1; +} diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h new file mode 100644 index 0000000000..e2febaccca --- /dev/null +++ b/gdb/breakpoint.h @@ -0,0 +1,604 @@ +/* Data structures associated with breakpoints in GDB. + Copyright (C) 1992, 93, 94, 95, 96, 98, 1999 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#if !defined (BREAKPOINT_H) +#define BREAKPOINT_H 1 + +#include "frame.h" +#include "value.h" + +/* This is the maximum number of bytes a breakpoint instruction can take. + Feel free to increase it. It's just used in a few places to size + arrays that should be independent of the target architecture. */ + +#define BREAKPOINT_MAX 16 + +/* Type of breakpoint. */ +/* FIXME In the future, we should fold all other breakpoint-like things into + here. This includes: + + * single-step (for machines where we have to simulate single stepping) + (probably, though perhaps it is better for it to look as much as + possible like a single-step to wait_for_inferior). */ + +enum bptype { + bp_none = 0, /* Eventpoint has been deleted. */ + bp_breakpoint, /* Normal breakpoint */ + bp_hardware_breakpoint, /* Hardware assisted breakpoint */ + bp_until, /* used by until command */ + bp_finish, /* used by finish command */ + bp_watchpoint, /* Watchpoint */ + bp_hardware_watchpoint, /* Hardware assisted watchpoint */ + bp_read_watchpoint, /* read watchpoint, (hardware assisted) */ + bp_access_watchpoint, /* access watchpoint, (hardware assisted) */ + bp_longjmp, /* secret breakpoint to find longjmp() */ + bp_longjmp_resume, /* secret breakpoint to escape longjmp() */ + + /* Used by wait_for_inferior for stepping over subroutine calls, for + stepping over signal handlers, and for skipping prologues. */ + bp_step_resume, + + /* Used by wait_for_inferior for stepping over signal handlers. */ + bp_through_sigtramp, + + /* Used to detect when a watchpoint expression has gone out of + scope. These breakpoints are usually not visible to the user. + + This breakpoint has some interesting properties: + + 1) There's always a 1:1 mapping between watchpoints + on local variables and watchpoint_scope breakpoints. + + 2) It automatically deletes itself and the watchpoint it's + associated with when hit. + + 3) It can never be disabled. */ + bp_watchpoint_scope, + + /* The breakpoint at the end of a call dummy. */ + /* FIXME: What if the function we are calling longjmp()s out of the + call, or the user gets out with the "return" command? We currently + have no way of cleaning up the breakpoint in these (obscure) situations. + (Probably can solve this by noticing longjmp, "return", etc., it's + similar to noticing when a watchpoint on a local variable goes out + of scope (with hardware support for watchpoints)). */ + bp_call_dummy, + + /* Some dynamic linkers (HP, maybe Solaris) can arrange for special + code in the inferior to run when significant events occur in the + dynamic linker (for example a library is loaded or unloaded). + + By placing a breakpoint in this magic code GDB will get control + when these significant events occur. GDB can then re-examine + the dynamic linker's data structures to discover any newly loaded + dynamic libraries. */ + bp_shlib_event, + + /* These breakpoints are used to implement the "catch load" command + on platforms whose dynamic linkers support such functionality. */ + bp_catch_load, + + /* These breakpoints are used to implement the "catch unload" command + on platforms whose dynamic linkers support such functionality. */ + bp_catch_unload, + + /* These are not really breakpoints, but are catchpoints that + implement the "catch fork", "catch vfork" and "catch exec" commands + on platforms whose kernel support such functionality. (I.e., + kernels which can raise an event when a fork or exec occurs, as + opposed to the debugger setting breakpoints on functions named + "fork" or "exec".) */ + bp_catch_fork, + bp_catch_vfork, + bp_catch_exec, + + /* These are catchpoints to implement "catch catch" and "catch throw" + commands for C++ exception handling. */ + bp_catch_catch, + bp_catch_throw + +}; + +/* States of enablement of breakpoint. */ + +enum enable { + disabled, /* The eventpoint is inactive, and cannot trigger. */ + enabled, /* The eventpoint is active, and can trigger. */ + shlib_disabled, /* The eventpoint's address is within an unloaded solib. + The eventpoint will be automatically enabled & reset + when that solib is loaded. */ + call_disabled /* The eventpoint has been disabled while a call into + the inferior is "in flight", because some eventpoints + interfere with the implementation of a call on some + targets. The eventpoint will be automatically enabled + & reset when the call "lands" (either completes, or + stops at another eventpoint). */ +}; + + +/* Disposition of breakpoint. Ie: what to do after hitting it. */ + +enum bpdisp { + del, /* Delete it */ + del_at_next_stop, /* Delete at next stop, whether hit or not */ + disable, /* Disable it */ + donttouch /* Leave it alone */ +}; + +/* Note that the ->silent field is not currently used by any commands + (though the code is in there if it was to be, and set_raw_breakpoint + does set it to 0). I implemented it because I thought it would be + useful for a hack I had to put in; I'm going to leave it in because + I can see how there might be times when it would indeed be useful */ + +/* This is for a breakpoint or a watchpoint. */ + +struct breakpoint +{ + struct breakpoint *next; + /* Type of breakpoint. */ + enum bptype type; + /* Zero means disabled; remember the info but don't break here. */ + enum enable enable; + /* What to do with this breakpoint after we hit it. */ + enum bpdisp disposition; + /* Number assigned to distinguish breakpoints. */ + int number; + + /* Address to break at, or NULL if not a breakpoint. */ + CORE_ADDR address; + + /* Line number of this address. Only matters if address is + non-NULL. */ + + int line_number; + + /* Source file name of this address. Only matters if address is + non-NULL. */ + + char *source_file; + + /* Non-zero means a silent breakpoint (don't print frame info + if we stop here). */ + unsigned char silent; + /* Number of stops at this breakpoint that should + be continued automatically before really stopping. */ + int ignore_count; + /* "Real" contents of byte where breakpoint has been inserted. + Valid only when breakpoints are in the program. Under the complete + control of the target insert_breakpoint and remove_breakpoint routines. + No other code should assume anything about the value(s) here. */ + char shadow_contents[BREAKPOINT_MAX]; + /* Nonzero if this breakpoint is now inserted. Only matters if address + is non-NULL. */ + char inserted; + /* Nonzero if this is not the first breakpoint in the list + for the given address. Only matters if address is non-NULL. */ + char duplicate; + /* Chain of command lines to execute when this breakpoint is hit. */ + struct command_line *commands; + /* Stack depth (address of frame). If nonzero, break only if fp + equals this. */ + CORE_ADDR frame; + /* Conditional. Break only if this expression's value is nonzero. */ + struct expression *cond; + + /* String we used to set the breakpoint (malloc'd). Only matters if + address is non-NULL. */ + char *addr_string; + /* Language we used to set the breakpoint. */ + enum language language; + /* Input radix we used to set the breakpoint. */ + int input_radix; + /* String form of the breakpoint condition (malloc'd), or NULL if there + is no condition. */ + char *cond_string; + /* String form of exp (malloc'd), or NULL if none. */ + char *exp_string; + + /* The expression we are watching, or NULL if not a watchpoint. */ + struct expression *exp; + /* The largest block within which it is valid, or NULL if it is + valid anywhere (e.g. consists just of global symbols). */ + struct block *exp_valid_block; + /* Value of the watchpoint the last time we checked it. */ + value_ptr val; + + /* Holds the value chain for a hardware watchpoint expression. */ + value_ptr val_chain; + + /* Holds the address of the related watchpoint_scope breakpoint + when using watchpoints on local variables (might the concept + of a related breakpoint be useful elsewhere, if not just call + it the watchpoint_scope breakpoint or something like that. FIXME). */ + struct breakpoint *related_breakpoint; + + /* Holds the frame address which identifies the frame this watchpoint + should be evaluated in, or NULL if the watchpoint should be evaluated + on the outermost frame. */ + CORE_ADDR watchpoint_frame; + + /* Thread number for thread-specific breakpoint, or -1 if don't care */ + int thread; + + /* Count of the number of times this breakpoint was taken, dumped + with the info, but not used for anything else. Useful for + seeing how many times you hit a break prior to the program + aborting, so you can back up to just before the abort. */ + int hit_count; + + /* Filename of a dynamically-linked library (dll), used for bp_catch_load + and bp_catch_unload (malloc'd), or NULL if any library is significant. */ + char * dll_pathname; + + /* Filename of a dll whose state change (e.g., load or unload) + triggered this catchpoint. This field is only vaid immediately + after this catchpoint has triggered. */ + char * triggered_dll_pathname; + + /* Process id of a child process whose forking triggered this catchpoint. + This field is only vaid immediately after this catchpoint has triggered. */ + int forked_inferior_pid; + + /* Filename of a program whose exec triggered this catchpoint. This + field is only vaid immediately after this catchpoint has triggered. */ + char * exec_pathname; + + asection *section; +}; + +/* The following stuff is an abstract data type "bpstat" ("breakpoint status"). + This provides the ability to determine whether we have stopped at a + breakpoint, and what we should do about it. */ + +typedef struct bpstats *bpstat; + +/* Interface: */ +/* Clear a bpstat so that it says we are not at any breakpoint. + Also free any storage that is part of a bpstat. */ +extern void bpstat_clear PARAMS ((bpstat *)); + +/* Return a copy of a bpstat. Like "bs1 = bs2" but all storage that + is part of the bpstat is copied as well. */ +extern bpstat bpstat_copy PARAMS ((bpstat)); + +extern bpstat bpstat_stop_status PARAMS ((CORE_ADDR *, int)); + +/* This bpstat_what stuff tells wait_for_inferior what to do with a + breakpoint (a challenging task). */ + +enum bpstat_what_main_action { + /* Perform various other tests; that is, this bpstat does not + say to perform any action (e.g. failed watchpoint and nothing + else). */ + BPSTAT_WHAT_KEEP_CHECKING, + + /* Rather than distinguish between noisy and silent stops here, it + might be cleaner to have bpstat_print make that decision (also + taking into account stop_print_frame and source_only). But the + implications are a bit scary (interaction with auto-displays, etc.), + so I won't try it. */ + + /* Stop silently. */ + BPSTAT_WHAT_STOP_SILENT, + + /* Stop and print. */ + BPSTAT_WHAT_STOP_NOISY, + + /* Remove breakpoints, single step once, then put them back in and + go back to what we were doing. It's possible that this should be + removed from the main_action and put into a separate field, to more + cleanly handle BPSTAT_WHAT_CLEAR_LONGJMP_RESUME_SINGLE. */ + BPSTAT_WHAT_SINGLE, + + /* Set longjmp_resume breakpoint, remove all other breakpoints, + and continue. The "remove all other breakpoints" part is required + if we are also stepping over another breakpoint as well as doing + the longjmp handling. */ + BPSTAT_WHAT_SET_LONGJMP_RESUME, + + /* Clear longjmp_resume breakpoint, then handle as + BPSTAT_WHAT_KEEP_CHECKING. */ + BPSTAT_WHAT_CLEAR_LONGJMP_RESUME, + + /* Clear longjmp_resume breakpoint, then handle as BPSTAT_WHAT_SINGLE. */ + BPSTAT_WHAT_CLEAR_LONGJMP_RESUME_SINGLE, + + /* Clear step resume breakpoint, and keep checking. */ + BPSTAT_WHAT_STEP_RESUME, + + /* Clear through_sigtramp breakpoint, muck with trap_expected, and keep + checking. */ + BPSTAT_WHAT_THROUGH_SIGTRAMP, + + /* Check the dynamic linker's data structures for new libraries, then + keep checking. */ + BPSTAT_WHAT_CHECK_SHLIBS, + + /* Check the dynamic linker's data structures for new libraries, then + resume out of the dynamic linker's callback, stop and print. */ + BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK, + + /* This is just used to keep track of how many enums there are. */ + BPSTAT_WHAT_LAST +}; + +struct bpstat_what { + enum bpstat_what_main_action main_action; + + /* Did we hit a call dummy breakpoint? This only goes with a main_action + of BPSTAT_WHAT_STOP_SILENT or BPSTAT_WHAT_STOP_NOISY (the concept of + continuing from a call dummy without popping the frame is not a + useful one). */ + int call_dummy; +}; + +/* Tell what to do about this bpstat. */ +struct bpstat_what bpstat_what PARAMS ((bpstat)); + +/* Find the bpstat associated with a breakpoint. NULL otherwise. */ +bpstat bpstat_find_breakpoint PARAMS ((bpstat, struct breakpoint *)); + +/* Find a step_resume breakpoint associated with this bpstat. + (If there are multiple step_resume bp's on the list, this function + will arbitrarily pick one.) + + It is an error to use this function if BPSTAT doesn't contain a + step_resume breakpoint. + + See wait_for_inferior's use of this function. + */ +extern struct breakpoint * +bpstat_find_step_resume_breakpoint PARAMS ((bpstat)); + +/* Nonzero if a signal that we got in wait() was due to circumstances + explained by the BS. */ +/* Currently that is true if we have hit a breakpoint, or if there is + a watchpoint enabled. */ +#define bpstat_explains_signal(bs) ((bs) != NULL) + +/* Nonzero if we should step constantly (e.g. watchpoints on machines + without hardware support). This isn't related to a specific bpstat, + just to things like whether watchpoints are set. */ +extern int bpstat_should_step PARAMS ((void)); + +/* Nonzero if there are enabled hardware watchpoints. */ +extern int bpstat_have_active_hw_watchpoints PARAMS ((void)); + +/* Print a message indicating what happened. Returns nonzero to + say that only the source line should be printed after this (zero + return means print the frame as well as the source line). */ +extern int bpstat_print PARAMS ((bpstat)); + +/* Return the breakpoint number of the first breakpoint we are stopped + at. *BSP upon return is a bpstat which points to the remaining + breakpoints stopped at (but which is not guaranteed to be good for + anything but further calls to bpstat_num). + Return 0 if passed a bpstat which does not indicate any breakpoints. */ +extern int bpstat_num PARAMS ((bpstat *)); + +/* Perform actions associated with having stopped at *BSP. Actually, we just + use this for breakpoint commands. Perhaps other actions will go here + later, but this is executed at a late time (from the command loop). */ +extern void bpstat_do_actions PARAMS ((bpstat *)); + +/* Modify BS so that the actions will not be performed. */ +extern void bpstat_clear_actions PARAMS ((bpstat)); + +/* Given a bpstat that records zero or more triggered eventpoints, this + function returns another bpstat which contains only the catchpoints + on that first list, if any. + */ +extern void bpstat_get_triggered_catchpoints PARAMS ((bpstat, bpstat *)); + +/* Implementation: */ +struct bpstats +{ + /* Linked list because there can be two breakpoints at the + same place, and a bpstat reflects the fact that both have been hit. */ + bpstat next; + /* Breakpoint that we are at. */ + struct breakpoint *breakpoint_at; + /* Commands left to be done. */ + struct command_line *commands; + /* Old value associated with a watchpoint. */ + value_ptr old_val; + + /* Nonzero if this breakpoint tells us to print the frame. */ + char print; + + /* Nonzero if this breakpoint tells us to stop. */ + char stop; + + /* Function called by bpstat_print to print stuff associated with + this element of the bpstat chain. Returns 0 or 1 just like + bpstat_print, or -1 if it can't deal with it. */ + int (*print_it) PARAMS((bpstat bs)); +}; + +enum inf_context +{ + inf_starting, + inf_running, + inf_exited +}; + + +/* Prototypes for breakpoint-related functions. */ + +#ifdef __STDC__ /* Forward declarations for prototypes */ +struct frame_info; +#endif + +extern int breakpoint_here_p PARAMS ((CORE_ADDR)); + +extern int breakpoint_inserted_here_p PARAMS ((CORE_ADDR)); + +extern int frame_in_dummy PARAMS ((struct frame_info *)); + +extern int breakpoint_thread_match PARAMS ((CORE_ADDR, int)); + +extern void until_break_command PARAMS ((char *, int)); + +extern void breakpoint_re_set PARAMS ((void)); + +extern void breakpoint_re_set_thread PARAMS ((struct breakpoint *)); + +extern int ep_is_exception_catchpoint PARAMS ((struct breakpoint *)); + +extern struct breakpoint *set_momentary_breakpoint + PARAMS ((struct symtab_and_line, struct frame_info *, enum bptype)); + +extern void set_ignore_count PARAMS ((int, int, int)); + +extern void set_default_breakpoint PARAMS ((int, CORE_ADDR, struct symtab *, int)); + +extern void mark_breakpoints_out PARAMS ((void)); + +extern void breakpoint_init_inferior PARAMS ((enum inf_context)); + +extern void delete_breakpoint PARAMS ((struct breakpoint *)); + +extern void breakpoint_auto_delete PARAMS ((bpstat)); + +extern void breakpoint_clear_ignore_counts PARAMS ((void)); + +extern void break_command PARAMS ((char *, int)); + +extern void tbreak_command PARAMS ((char *, int)); + +extern int insert_breakpoints PARAMS ((void)); + +extern int remove_breakpoints PARAMS ((void)); + +/* This function can be used to physically insert eventpoints from the + specified traced inferior process, without modifying the breakpoint + package's state. This can be useful for those targets which support + following the processes of a fork() or vfork() system call, when both + of the resulting two processes are to be followed. */ +extern int reattach_breakpoints PARAMS ((int)); + +/* This function can be used to update the breakpoint package's state + after an exec() system call has been executed. + + This function causes the following: + + - All eventpoints are marked "not inserted". + - All eventpoints with a symbolic address are reset such that + the symbolic address must be reevaluated before the eventpoints + can be reinserted. + - The solib breakpoints are explicitly removed from the breakpoint + list. + - A step-resume breakpoint, if any, is explicitly removed from the + breakpoint list. + - All eventpoints without a symbolic address are removed from the + breakpoint list. */ +extern void update_breakpoints_after_exec PARAMS ((void)); + +/* This function can be used to physically remove hardware breakpoints + and watchpoints from the specified traced inferior process, without + modifying the breakpoint package's state. This can be useful for + those targets which support following the processes of a fork() or + vfork() system call, when one of the resulting two processes is to + be detached and allowed to run free. + + It is an error to use this function on the process whose id is + inferior_pid. */ +extern int detach_breakpoints PARAMS ((int)); + +extern void enable_longjmp_breakpoint PARAMS ((void)); + +extern void disable_longjmp_breakpoint PARAMS ((void)); + +extern void set_longjmp_resume_breakpoint PARAMS ((CORE_ADDR, + struct frame_info *)); +/* These functions respectively disable or reenable all currently + enabled watchpoints. When disabled, the watchpoints are marked + call_disabled. When reenabled, they are marked enabled. + + The intended client of these functions is infcmd.c\run_stack_dummy. + + The inferior must be stopped, and all breakpoints removed, when + these functions are used. + + The need for these functions is that on some targets (e.g., HP-UX), + gdb is unable to unwind through the dummy frame that is pushed as + part of the implementation of a call command. Watchpoints can + cause the inferior to stop in places where this frame is visible, + and that can cause execution control to become very confused. + + Note that if a user sets breakpoints in an interactively call + function, the call_disabled watchpoints will have been reenabled + when the first such breakpoint is reached. However, on targets + that are unable to unwind through the call dummy frame, watches + of stack-based storage may then be deleted, because gdb will + believe that their watched storage is out of scope. (Sigh.) */ +extern void +disable_watchpoints_before_interactive_call_start PARAMS ((void)); + +extern void +enable_watchpoints_after_interactive_call_stop PARAMS ((void)); + + +extern void clear_breakpoint_hit_counts PARAMS ((void)); + +/* The following are for displays, which aren't really breakpoints, but + here is as good a place as any for them. */ + +extern void disable_current_display PARAMS ((void)); + +extern void do_displays PARAMS ((void)); + +extern void disable_display PARAMS ((int)); + +extern void clear_displays PARAMS ((void)); + +extern void disable_breakpoint PARAMS ((struct breakpoint *)); + +extern void enable_breakpoint PARAMS ((struct breakpoint *)); + +extern void create_solib_event_breakpoint PARAMS ((CORE_ADDR)); + +extern void remove_solib_event_breakpoints PARAMS ((void)); + +extern void disable_breakpoints_in_shlibs PARAMS ((int silent)); + +extern void re_enable_breakpoints_in_shlibs PARAMS ((void)); + +extern void create_solib_load_event_breakpoint PARAMS ((char *, int, char *, char *)); + +extern void create_solib_unload_event_breakpoint PARAMS ((char *, int, char *, char *)); + +extern void create_fork_event_catchpoint PARAMS ((int, char *)); + +extern void create_vfork_event_catchpoint PARAMS ((int, char *)); + +extern void create_exec_event_catchpoint PARAMS ((int, char *)); + +/* This function returns TRUE if ep is a catchpoint. */ +extern int ep_is_catchpoint PARAMS ((struct breakpoint *)); + +/* This function returns TRUE if ep is a catchpoint of a + shared library (aka dynamically-linked library) event, + such as a library load or unload. */ +extern int ep_is_shlib_catchpoint PARAMS ((struct breakpoint *)); + +extern struct breakpoint *set_breakpoint_sal PARAMS ((struct symtab_and_line)); + +#endif /* !defined (BREAKPOINT_H) */ diff --git a/gdb/buildsym.c b/gdb/buildsym.c new file mode 100644 index 0000000000..24b64bead2 --- /dev/null +++ b/gdb/buildsym.c @@ -0,0 +1,1130 @@ +/* Support routines for building symbol tables in GDB's internal format. + Copyright 1986-1999 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +/* This module provides subroutines used for creating and adding to + the symbol table. These routines are called from various symbol- + file-reading routines. + + Routines to support specific debugging information formats (stabs, + DWARF, etc) belong somewhere else. */ + +#include "defs.h" +#include "bfd.h" +#include "obstack.h" +#include "symtab.h" +#include "symfile.h" /* Needed for "struct complaint" */ +#include "objfiles.h" +#include "gdbtypes.h" +#include "complaints.h" +#include "gdb_string.h" + +/* Ask buildsym.h to define the vars it normally declares `extern'. */ +#define EXTERN /**/ +#include "buildsym.h" /* Our own declarations */ +#undef EXTERN + +/* For cleanup_undefined_types and finish_global_stabs (somewhat + questionable--see comment where we call them). */ + +#include "stabsread.h" + +/* List of free `struct pending' structures for reuse. */ + +static struct pending *free_pendings; + +/* Non-zero if symtab has line number info. This prevents an + otherwise empty symtab from being tossed. */ + +static int have_line_numbers; + +static int compare_line_numbers (const void *ln1p, const void *ln2p); + + +/* Initial sizes of data structures. These are realloc'd larger if + needed, and realloc'd down to the size actually used, when + completed. */ + +#define INITIAL_CONTEXT_STACK_SIZE 10 +#define INITIAL_LINE_VECTOR_LENGTH 1000 + + +/* Complaints about the symbols we have encountered. */ + +struct complaint block_end_complaint = +{"block end address less than block start address in %s (patched it)", 0, 0}; + +struct complaint anon_block_end_complaint = +{"block end address 0x%lx less than block start address 0x%lx (patched it)", 0, 0}; + +struct complaint innerblock_complaint = +{"inner block not inside outer block in %s", 0, 0}; + +struct complaint innerblock_anon_complaint = +{"inner block (0x%lx-0x%lx) not inside outer block (0x%lx-0x%lx)", 0, 0}; + +struct complaint blockvector_complaint = +{"block at 0x%lx out of order", 0, 0}; + +/* maintain the lists of symbols and blocks */ + +/* Add a symbol to one of the lists of symbols. */ + +void +add_symbol_to_list (struct symbol *symbol, struct pending **listhead) +{ + register struct pending *link; + + /* If this is an alias for another symbol, don't add it. */ + if (symbol->ginfo.name && symbol->ginfo.name[0] == '#') + return; + + /* We keep PENDINGSIZE symbols in each link of the list. If we + don't have a link with room in it, add a new link. */ + if (*listhead == NULL || (*listhead)->nsyms == PENDINGSIZE) + { + if (free_pendings) + { + link = free_pendings; + free_pendings = link->next; + } + else + { + link = (struct pending *) xmalloc (sizeof (struct pending)); + } + + link->next = *listhead; + *listhead = link; + link->nsyms = 0; + } + + (*listhead)->symbol[(*listhead)->nsyms++] = symbol; +} + +/* Find a symbol named NAME on a LIST. NAME need not be + '\0'-terminated; LENGTH is the length of the name. */ + +struct symbol * +find_symbol_in_list (struct pending *list, char *name, int length) +{ + int j; + char *pp; + + while (list != NULL) + { + for (j = list->nsyms; --j >= 0;) + { + pp = SYMBOL_NAME (list->symbol[j]); + if (*pp == *name && strncmp (pp, name, length) == 0 && + pp[length] == '\0') + { + return (list->symbol[j]); + } + } + list = list->next; + } + return (NULL); +} + +/* At end of reading syms, or in case of quit, really free as many + `struct pending's as we can easily find. */ + +/* ARGSUSED */ +void +really_free_pendings (int foo) +{ + struct pending *next, *next1; + + for (next = free_pendings; next; next = next1) + { + next1 = next->next; + free ((void *) next); + } + free_pendings = NULL; + + free_pending_blocks (); + + for (next = file_symbols; next != NULL; next = next1) + { + next1 = next->next; + free ((void *) next); + } + file_symbols = NULL; + + for (next = global_symbols; next != NULL; next = next1) + { + next1 = next->next; + free ((void *) next); + } + global_symbols = NULL; +} + +/* This function is called to discard any pending blocks. */ + +void +free_pending_blocks (void) +{ +#if 0 /* Now we make the links in the + symbol_obstack, so don't free + them. */ + struct pending_block *bnext, *bnext1; + + for (bnext = pending_blocks; bnext; bnext = bnext1) + { + bnext1 = bnext->next; + free ((void *) bnext); + } +#endif + pending_blocks = NULL; +} + +/* Take one of the lists of symbols and make a block from it. Keep + the order the symbols have in the list (reversed from the input + file). Put the block on the list of pending blocks. */ + +void +finish_block (struct symbol *symbol, struct pending **listhead, + struct pending_block *old_blocks, + CORE_ADDR start, CORE_ADDR end, + struct objfile *objfile) +{ + register struct pending *next, *next1; + register struct block *block; + register struct pending_block *pblock; + struct pending_block *opblock; + register int i; + register int j; + + /* Count the length of the list of symbols. */ + + for (next = *listhead, i = 0; + next; + i += next->nsyms, next = next->next) + { + /* EMPTY */ ; + } + + block = (struct block *) obstack_alloc (&objfile->symbol_obstack, + (sizeof (struct block) + ((i - 1) * sizeof (struct symbol *)))); + + /* Copy the symbols into the block. */ + + BLOCK_NSYMS (block) = i; + for (next = *listhead; next; next = next->next) + { + for (j = next->nsyms - 1; j >= 0; j--) + { + BLOCK_SYM (block, --i) = next->symbol[j]; + } + } + + BLOCK_START (block) = start; + BLOCK_END (block) = end; + /* Superblock filled in when containing block is made */ + BLOCK_SUPERBLOCK (block) = NULL; + + BLOCK_GCC_COMPILED (block) = processing_gcc_compilation; + + /* Put the block in as the value of the symbol that names it. */ + + if (symbol) + { + struct type *ftype = SYMBOL_TYPE (symbol); + SYMBOL_BLOCK_VALUE (symbol) = block; + BLOCK_FUNCTION (block) = symbol; + + if (TYPE_NFIELDS (ftype) <= 0) + { + /* No parameter type information is recorded with the + function's type. Set that from the type of the + parameter symbols. */ + int nparams = 0, iparams; + struct symbol *sym; + for (i = 0; i < BLOCK_NSYMS (block); i++) + { + sym = BLOCK_SYM (block, i); + switch (SYMBOL_CLASS (sym)) + { + case LOC_ARG: + case LOC_REF_ARG: + case LOC_REGPARM: + case LOC_REGPARM_ADDR: + case LOC_BASEREG_ARG: + case LOC_LOCAL_ARG: + nparams++; + break; + case LOC_UNDEF: + case LOC_CONST: + case LOC_STATIC: + case LOC_INDIRECT: + case LOC_REGISTER: + case LOC_LOCAL: + case LOC_TYPEDEF: + case LOC_LABEL: + case LOC_BLOCK: + case LOC_CONST_BYTES: + case LOC_BASEREG: + case LOC_UNRESOLVED: + case LOC_OPTIMIZED_OUT: + default: + break; + } + } + if (nparams > 0) + { + TYPE_NFIELDS (ftype) = nparams; + TYPE_FIELDS (ftype) = (struct field *) + TYPE_ALLOC (ftype, nparams * sizeof (struct field)); + + for (i = iparams = 0; iparams < nparams; i++) + { + sym = BLOCK_SYM (block, i); + switch (SYMBOL_CLASS (sym)) + { + case LOC_ARG: + case LOC_REF_ARG: + case LOC_REGPARM: + case LOC_REGPARM_ADDR: + case LOC_BASEREG_ARG: + case LOC_LOCAL_ARG: + TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym); + iparams++; + break; + case LOC_UNDEF: + case LOC_CONST: + case LOC_STATIC: + case LOC_INDIRECT: + case LOC_REGISTER: + case LOC_LOCAL: + case LOC_TYPEDEF: + case LOC_LABEL: + case LOC_BLOCK: + case LOC_CONST_BYTES: + case LOC_BASEREG: + case LOC_UNRESOLVED: + case LOC_OPTIMIZED_OUT: + default: + break; + } + } + } + } + } + else + { + BLOCK_FUNCTION (block) = NULL; + } + + /* Now "free" the links of the list, and empty the list. */ + + for (next = *listhead; next; next = next1) + { + next1 = next->next; + next->next = free_pendings; + free_pendings = next; + } + *listhead = NULL; + +#if 1 + /* Check to be sure that the blocks have an end address that is + greater than starting address */ + + if (BLOCK_END (block) < BLOCK_START (block)) + { + if (symbol) + { + complain (&block_end_complaint, SYMBOL_SOURCE_NAME (symbol)); + } + else + { + complain (&anon_block_end_complaint, BLOCK_END (block), BLOCK_START (block)); + } + /* Better than nothing */ + BLOCK_END (block) = BLOCK_START (block); + } +#endif + + /* Install this block as the superblock of all blocks made since the + start of this scope that don't have superblocks yet. */ + + opblock = NULL; + for (pblock = pending_blocks; pblock != old_blocks; pblock = pblock->next) + { + if (BLOCK_SUPERBLOCK (pblock->block) == NULL) + { +#if 1 + /* Check to be sure the blocks are nested as we receive + them. If the compiler/assembler/linker work, this just + burns a small amount of time. */ + if (BLOCK_START (pblock->block) < BLOCK_START (block) || + BLOCK_END (pblock->block) > BLOCK_END (block)) + { + if (symbol) + { + complain (&innerblock_complaint, + SYMBOL_SOURCE_NAME (symbol)); + } + else + { + complain (&innerblock_anon_complaint, BLOCK_START (pblock->block), + BLOCK_END (pblock->block), BLOCK_START (block), + BLOCK_END (block)); + } + if (BLOCK_START (pblock->block) < BLOCK_START (block)) + BLOCK_START (pblock->block) = BLOCK_START (block); + if (BLOCK_END (pblock->block) > BLOCK_END (block)) + BLOCK_END (pblock->block) = BLOCK_END (block); + } +#endif + BLOCK_SUPERBLOCK (pblock->block) = block; + } + opblock = pblock; + } + + record_pending_block (objfile, block, opblock); +} + +/* Record BLOCK on the list of all blocks in the file. Put it after + OPBLOCK, or at the beginning if opblock is NULL. This puts the + block in the list after all its subblocks. + + Allocate the pending block struct in the symbol_obstack to save + time. This wastes a little space. FIXME: Is it worth it? */ + +void +record_pending_block (struct objfile *objfile, struct block *block, + struct pending_block *opblock) +{ + register struct pending_block *pblock; + + pblock = (struct pending_block *) + obstack_alloc (&objfile->symbol_obstack, sizeof (struct pending_block)); + pblock->block = block; + if (opblock) + { + pblock->next = opblock->next; + opblock->next = pblock; + } + else + { + pblock->next = pending_blocks; + pending_blocks = pblock; + } +} + +/* Note that this is only used in this file and in dstread.c, which + should be fixed to not need direct access to this function. When + that is done, it can be made static again. */ + +struct blockvector * +make_blockvector (struct objfile *objfile) +{ + register struct pending_block *next; + register struct blockvector *blockvector; + register int i; + + /* Count the length of the list of blocks. */ + + for (next = pending_blocks, i = 0; next; next = next->next, i++) + {; + } + + blockvector = (struct blockvector *) + obstack_alloc (&objfile->symbol_obstack, + (sizeof (struct blockvector) + + (i - 1) * sizeof (struct block *))); + + /* Copy the blocks into the blockvector. This is done in reverse + order, which happens to put the blocks into the proper order + (ascending starting address). finish_block has hair to insert + each block into the list after its subblocks in order to make + sure this is true. */ + + BLOCKVECTOR_NBLOCKS (blockvector) = i; + for (next = pending_blocks; next; next = next->next) + { + BLOCKVECTOR_BLOCK (blockvector, --i) = next->block; + } + +#if 0 /* Now we make the links in the + obstack, so don't free them. */ + /* Now free the links of the list, and empty the list. */ + + for (next = pending_blocks; next; next = next1) + { + next1 = next->next; + free (next); + } +#endif + pending_blocks = NULL; + +#if 1 /* FIXME, shut this off after a while + to speed up symbol reading. */ + /* Some compilers output blocks in the wrong order, but we depend on + their being in the right order so we can binary search. Check the + order and moan about it. FIXME. */ + if (BLOCKVECTOR_NBLOCKS (blockvector) > 1) + { + for (i = 1; i < BLOCKVECTOR_NBLOCKS (blockvector); i++) + { + if (BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i - 1)) + > BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i))) + { + + /* FIXME-32x64: loses if CORE_ADDR doesn't fit in a + long. Possible solutions include a version of + complain which takes a callback, a + sprintf_address_numeric to match + print_address_numeric, or a way to set up a GDB_FILE + which causes sprintf rather than fprintf to be + called. */ + + complain (&blockvector_complaint, + (unsigned long) BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i))); + } + } + } +#endif + + return (blockvector); +} + +/* Start recording information about source code that came from an + included (or otherwise merged-in) source file with a different + name. NAME is the name of the file (cannot be NULL), DIRNAME is + the directory in which it resides (or NULL if not known). */ + +void +start_subfile (char *name, char *dirname) +{ + register struct subfile *subfile; + + /* See if this subfile is already known as a subfile of the current + main source file. */ + + for (subfile = subfiles; subfile; subfile = subfile->next) + { + if (STREQ (subfile->name, name)) + { + current_subfile = subfile; + return; + } + } + + /* This subfile is not known. Add an entry for it. Make an entry + for this subfile in the list of all subfiles of the current main + source file. */ + + subfile = (struct subfile *) xmalloc (sizeof (struct subfile)); + subfile->next = subfiles; + subfiles = subfile; + current_subfile = subfile; + + /* Save its name and compilation directory name */ + subfile->name = (name == NULL) ? NULL : savestring (name, strlen (name)); + subfile->dirname = + (dirname == NULL) ? NULL : savestring (dirname, strlen (dirname)); + + /* Initialize line-number recording for this subfile. */ + subfile->line_vector = NULL; + + /* Default the source language to whatever can be deduced from the + filename. If nothing can be deduced (such as for a C/C++ include + file with a ".h" extension), then inherit whatever language the + previous subfile had. This kludgery is necessary because there + is no standard way in some object formats to record the source + language. Also, when symtabs are allocated we try to deduce a + language then as well, but it is too late for us to use that + information while reading symbols, since symtabs aren't allocated + until after all the symbols have been processed for a given + source file. */ + + subfile->language = deduce_language_from_filename (subfile->name); + if (subfile->language == language_unknown && + subfile->next != NULL) + { + subfile->language = subfile->next->language; + } + + /* Initialize the debug format string to NULL. We may supply it + later via a call to record_debugformat. */ + subfile->debugformat = NULL; + + /* cfront output is a C program, so in most ways it looks like a C + program. But to demangle we need to set the language to C++. We + can distinguish cfront code by the fact that it has #line + directives which specify a file name ending in .C. + + So if the filename of this subfile ends in .C, then change the + language of any pending subfiles from C to C++. We also accept + any other C++ suffixes accepted by deduce_language_from_filename + (in particular, some people use .cxx with cfront). */ + /* Likewise for f2c. */ + + if (subfile->name) + { + struct subfile *s; + enum language sublang = deduce_language_from_filename (subfile->name); + + if (sublang == language_cplus || sublang == language_fortran) + for (s = subfiles; s != NULL; s = s->next) + if (s->language == language_c) + s->language = sublang; + } + + /* And patch up this file if necessary. */ + if (subfile->language == language_c + && subfile->next != NULL + && (subfile->next->language == language_cplus + || subfile->next->language == language_fortran)) + { + subfile->language = subfile->next->language; + } +} + +/* For stabs readers, the first N_SO symbol is assumed to be the + source file name, and the subfile struct is initialized using that + assumption. If another N_SO symbol is later seen, immediately + following the first one, then the first one is assumed to be the + directory name and the second one is really the source file name. + + So we have to patch up the subfile struct by moving the old name + value to dirname and remembering the new name. Some sanity + checking is performed to ensure that the state of the subfile + struct is reasonable and that the old name we are assuming to be a + directory name actually is (by checking for a trailing '/'). */ + +void +patch_subfile_names (struct subfile *subfile, char *name) +{ + if (subfile != NULL && subfile->dirname == NULL && subfile->name != NULL + && subfile->name[strlen (subfile->name) - 1] == '/') + { + subfile->dirname = subfile->name; + subfile->name = savestring (name, strlen (name)); + last_source_file = name; + + /* Default the source language to whatever can be deduced from + the filename. If nothing can be deduced (such as for a C/C++ + include file with a ".h" extension), then inherit whatever + language the previous subfile had. This kludgery is + necessary because there is no standard way in some object + formats to record the source language. Also, when symtabs + are allocated we try to deduce a language then as well, but + it is too late for us to use that information while reading + symbols, since symtabs aren't allocated until after all the + symbols have been processed for a given source file. */ + + subfile->language = deduce_language_from_filename (subfile->name); + if (subfile->language == language_unknown && + subfile->next != NULL) + { + subfile->language = subfile->next->language; + } + } +} + +/* Handle the N_BINCL and N_EINCL symbol types that act like N_SOL for + switching source files (different subfiles, as we call them) within + one object file, but using a stack rather than in an arbitrary + order. */ + +void +push_subfile (void) +{ + register struct subfile_stack *tem + = (struct subfile_stack *) xmalloc (sizeof (struct subfile_stack)); + + tem->next = subfile_stack; + subfile_stack = tem; + if (current_subfile == NULL || current_subfile->name == NULL) + { + abort (); + } + tem->name = current_subfile->name; +} + +char * +pop_subfile (void) +{ + register char *name; + register struct subfile_stack *link = subfile_stack; + + if (link == NULL) + { + abort (); + } + name = link->name; + subfile_stack = link->next; + free ((void *) link); + return (name); +} + +/* Add a linetable entry for line number LINE and address PC to the + line vector for SUBFILE. */ + +void +record_line (register struct subfile *subfile, int line, CORE_ADDR pc) +{ + struct linetable_entry *e; + /* Ignore the dummy line number in libg.o */ + + if (line == 0xffff) + { + return; + } + + /* Make sure line vector exists and is big enough. */ + if (!subfile->line_vector) + { + subfile->line_vector_length = INITIAL_LINE_VECTOR_LENGTH; + subfile->line_vector = (struct linetable *) + xmalloc (sizeof (struct linetable) + + subfile->line_vector_length * sizeof (struct linetable_entry)); + subfile->line_vector->nitems = 0; + have_line_numbers = 1; + } + + if (subfile->line_vector->nitems + 1 >= subfile->line_vector_length) + { + subfile->line_vector_length *= 2; + subfile->line_vector = (struct linetable *) + xrealloc ((char *) subfile->line_vector, + (sizeof (struct linetable) + + (subfile->line_vector_length + * sizeof (struct linetable_entry)))); + } + + e = subfile->line_vector->item + subfile->line_vector->nitems++; + e->line = line; + e->pc = pc; +} + +/* Needed in order to sort line tables from IBM xcoff files. Sigh! */ + +static int +compare_line_numbers (const void *ln1p, const void *ln2p) +{ + struct linetable_entry *ln1 = (struct linetable_entry *) ln1p; + struct linetable_entry *ln2 = (struct linetable_entry *) ln2p; + + /* Note: this code does not assume that CORE_ADDRs can fit in ints. + Please keep it that way. */ + if (ln1->pc < ln2->pc) + return -1; + + if (ln1->pc > ln2->pc) + return 1; + + /* If pc equal, sort by line. I'm not sure whether this is optimum + behavior (see comment at struct linetable in symtab.h). */ + return ln1->line - ln2->line; +} + +/* Start a new symtab for a new source file. Called, for example, + when a stabs symbol of type N_SO is seen, or when a DWARF + TAG_compile_unit DIE is seen. It indicates the start of data for + one original source file. */ + +void +start_symtab (char *name, char *dirname, CORE_ADDR start_addr) +{ + + last_source_file = name; + last_source_start_addr = start_addr; + file_symbols = NULL; + global_symbols = NULL; + within_function = 0; + have_line_numbers = 0; + + /* Context stack is initially empty. Allocate first one with room + for 10 levels; reuse it forever afterward. */ + if (context_stack == NULL) + { + context_stack_size = INITIAL_CONTEXT_STACK_SIZE; + context_stack = (struct context_stack *) + xmalloc (context_stack_size * sizeof (struct context_stack)); + } + context_stack_depth = 0; + + /* Initialize the list of sub source files with one entry for this + file (the top-level source file). */ + + subfiles = NULL; + current_subfile = NULL; + start_subfile (name, dirname); +} + +/* Finish the symbol definitions for one main source file, close off + all the lexical contexts for that file (creating struct block's for + them), then make the struct symtab for that file and put it in the + list of all such. + + END_ADDR is the address of the end of the file's text. SECTION is + the section number (in objfile->section_offsets) of the blockvector + and linetable. + + Note that it is possible for end_symtab() to return NULL. In + particular, for the DWARF case at least, it will return NULL when + it finds a compilation unit that has exactly one DIE, a + TAG_compile_unit DIE. This can happen when we link in an object + file that was compiled from an empty source file. Returning NULL + is probably not the correct thing to do, because then gdb will + never know about this empty file (FIXME). */ + +struct symtab * +end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section) +{ + register struct symtab *symtab = NULL; + register struct blockvector *blockvector; + register struct subfile *subfile; + register struct context_stack *cstk; + struct subfile *nextsub; + + /* Finish the lexical context of the last function in the file; pop + the context stack. */ + + if (context_stack_depth > 0) + { + cstk = pop_context (); + /* Make a block for the local symbols within. */ + finish_block (cstk->name, &local_symbols, cstk->old_blocks, + cstk->start_addr, end_addr, objfile); + + if (context_stack_depth > 0) + { + /* This is said to happen with SCO. The old coffread.c + code simply emptied the context stack, so we do the + same. FIXME: Find out why it is happening. This is not + believed to happen in most cases (even for coffread.c); + it used to be an abort(). */ + static struct complaint msg = + {"Context stack not empty in end_symtab", 0, 0}; + complain (&msg); + context_stack_depth = 0; + } + } + + /* Reordered executables may have out of order pending blocks; if + OBJF_REORDERED is true, then sort the pending blocks. */ + if ((objfile->flags & OBJF_REORDERED) && pending_blocks) + { + /* FIXME! Remove this horrid bubble sort and use merge sort!!! */ + int swapped; + do + { + struct pending_block *pb, *pbnext; + + pb = pending_blocks; + pbnext = pb->next; + swapped = 0; + + while (pbnext) + { + /* swap blocks if unordered! */ + + if (BLOCK_START (pb->block) < BLOCK_START (pbnext->block)) + { + struct block *tmp = pb->block; + pb->block = pbnext->block; + pbnext->block = tmp; + swapped = 1; + } + pb = pbnext; + pbnext = pbnext->next; + } + } + while (swapped); + } + + /* Cleanup any undefined types that have been left hanging around + (this needs to be done before the finish_blocks so that + file_symbols is still good). + + Both cleanup_undefined_types and finish_global_stabs are stabs + specific, but harmless for other symbol readers, since on gdb + startup or when finished reading stabs, the state is set so these + are no-ops. FIXME: Is this handled right in case of QUIT? Can + we make this cleaner? */ + + cleanup_undefined_types (); + finish_global_stabs (objfile); + + if (pending_blocks == NULL + && file_symbols == NULL + && global_symbols == NULL + && have_line_numbers == 0) + { + /* Ignore symtabs that have no functions with real debugging + info. */ + blockvector = NULL; + } + else + { + /* Define the STATIC_BLOCK & GLOBAL_BLOCK, and build the + blockvector. */ + finish_block (0, &file_symbols, 0, last_source_start_addr, end_addr, + objfile); + finish_block (0, &global_symbols, 0, last_source_start_addr, end_addr, + objfile); + blockvector = make_blockvector (objfile); + } + +#ifndef PROCESS_LINENUMBER_HOOK +#define PROCESS_LINENUMBER_HOOK() +#endif + PROCESS_LINENUMBER_HOOK (); /* Needed for xcoff. */ + + /* Now create the symtab objects proper, one for each subfile. */ + /* (The main file is the last one on the chain.) */ + + for (subfile = subfiles; subfile; subfile = nextsub) + { + int linetablesize = 0; + symtab = NULL; + + /* If we have blocks of symbols, make a symtab. Otherwise, just + ignore this file and any line number info in it. */ + if (blockvector) + { + if (subfile->line_vector) + { + linetablesize = sizeof (struct linetable) + + subfile->line_vector->nitems * sizeof (struct linetable_entry); +#if 0 + /* I think this is artifact from before it went on the + obstack. I doubt we'll need the memory between now + and when we free it later in this function. */ + /* First, shrink the linetable to make more memory. */ + subfile->line_vector = (struct linetable *) + xrealloc ((char *) subfile->line_vector, linetablesize); +#endif + + /* Like the pending blocks, the line table may be + scrambled in reordered executables. Sort it if + OBJF_REORDERED is true. */ + if (objfile->flags & OBJF_REORDERED) + qsort (subfile->line_vector->item, + subfile->line_vector->nitems, + sizeof (struct linetable_entry), compare_line_numbers); + } + + /* Now, allocate a symbol table. */ + symtab = allocate_symtab (subfile->name, objfile); + + /* Fill in its components. */ + symtab->blockvector = blockvector; + if (subfile->line_vector) + { + /* Reallocate the line table on the symbol obstack */ + symtab->linetable = (struct linetable *) + obstack_alloc (&objfile->symbol_obstack, linetablesize); + memcpy (symtab->linetable, subfile->line_vector, linetablesize); + } + else + { + symtab->linetable = NULL; + } + symtab->block_line_section = section; + if (subfile->dirname) + { + /* Reallocate the dirname on the symbol obstack */ + symtab->dirname = (char *) + obstack_alloc (&objfile->symbol_obstack, + strlen (subfile->dirname) + 1); + strcpy (symtab->dirname, subfile->dirname); + } + else + { + symtab->dirname = NULL; + } + symtab->free_code = free_linetable; + symtab->free_ptr = NULL; + + /* Use whatever language we have been using for this + subfile, not the one that was deduced in allocate_symtab + from the filename. We already did our own deducing when + we created the subfile, and we may have altered our + opinion of what language it is from things we found in + the symbols. */ + symtab->language = subfile->language; + + /* Save the debug format string (if any) in the symtab */ + if (subfile->debugformat != NULL) + { + symtab->debugformat = obsavestring (subfile->debugformat, + strlen (subfile->debugformat), + &objfile->symbol_obstack); + } + + /* All symtabs for the main file and the subfiles share a + blockvector, so we need to clear primary for everything + but the main file. */ + + symtab->primary = 0; + } + if (subfile->name != NULL) + { + free ((void *) subfile->name); + } + if (subfile->dirname != NULL) + { + free ((void *) subfile->dirname); + } + if (subfile->line_vector != NULL) + { + free ((void *) subfile->line_vector); + } + if (subfile->debugformat != NULL) + { + free ((void *) subfile->debugformat); + } + + nextsub = subfile->next; + free ((void *) subfile); + } + + /* Set this for the main source file. */ + if (symtab) + { + symtab->primary = 1; + } + + last_source_file = NULL; + current_subfile = NULL; + + return symtab; +} + +/* Push a context block. Args are an identifying nesting level + (checkable when you pop it), and the starting PC address of this + context. */ + +struct context_stack * +push_context (int desc, CORE_ADDR valu) +{ + register struct context_stack *new; + + if (context_stack_depth == context_stack_size) + { + context_stack_size *= 2; + context_stack = (struct context_stack *) + xrealloc ((char *) context_stack, + (context_stack_size * sizeof (struct context_stack))); + } + + new = &context_stack[context_stack_depth++]; + new->depth = desc; + new->locals = local_symbols; + new->params = param_symbols; + new->old_blocks = pending_blocks; + new->start_addr = valu; + new->name = NULL; + + local_symbols = NULL; + param_symbols = NULL; + + return new; +} + +/* Compute a small integer hash code for the given name. */ + +int +hashname (char *name) +{ + register char *p = name; + register int total = p[0]; + register int c; + + c = p[1]; + total += c << 2; + if (c) + { + c = p[2]; + total += c << 4; + if (c) + { + total += p[3] << 6; + } + } + + /* Ensure result is positive. */ + if (total < 0) + { + total += (1000 << 6); + } + return (total % HASHSIZE); +} + + +void +record_debugformat (char *format) +{ + current_subfile->debugformat = savestring (format, strlen (format)); +} + +/* Merge the first symbol list SRCLIST into the second symbol list + TARGETLIST by repeated calls to add_symbol_to_list(). This + procedure "frees" each link of SRCLIST by adding it to the + free_pendings list. Caller must set SRCLIST to a null list after + calling this function. + + Void return. */ + +void +merge_symbol_lists (struct pending **srclist, struct pending **targetlist) +{ + register int i; + + if (!srclist || !*srclist) + return; + + /* Merge in elements from current link. */ + for (i = 0; i < (*srclist)->nsyms; i++) + add_symbol_to_list ((*srclist)->symbol[i], targetlist); + + /* Recurse on next. */ + merge_symbol_lists (&(*srclist)->next, targetlist); + + /* "Free" the current link. */ + (*srclist)->next = free_pendings; + free_pendings = (*srclist); +} + +/* Initialize anything that needs initializing when starting to read a + fresh piece of a symbol file, e.g. reading in the stuff + corresponding to a psymtab. */ + +void +buildsym_init () +{ + free_pendings = NULL; + file_symbols = NULL; + global_symbols = NULL; + pending_blocks = NULL; +} + +/* Initialize anything that needs initializing when a completely new + symbol file is specified (not just adding some symbols from another + file, e.g. a shared library). */ + +void +buildsym_new_init () +{ + buildsym_init (); +} diff --git a/gdb/buildsym.h b/gdb/buildsym.h new file mode 100644 index 0000000000..e3a34c9d08 --- /dev/null +++ b/gdb/buildsym.h @@ -0,0 +1,297 @@ +/* Build symbol tables in GDB's internal format. + Copyright 1986-1993, 1996-1999 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#if !defined (BUILDSYM_H) +#define BUILDSYM_H 1 + +/* This module provides definitions used for creating and adding to + the symbol table. These routines are called from various symbol- + file-reading routines. + + They originated in dbxread.c of gdb-4.2, and were split out to + make xcoffread.c more maintainable by sharing code. + + Variables declared in this file can be defined by #define-ing the + name EXTERN to null. It is used to declare variables that are + normally extern, but which get defined in a single module using + this technique. */ + +#ifndef EXTERN +#define EXTERN extern +#endif + +#define HASHSIZE 127 /* Size of things hashed via + hashname() */ + +/* Name of source file whose symbol data we are now processing. This + comes from a symbol of type N_SO. */ + +EXTERN char *last_source_file; + +/* Core address of start of text of current source file. This too + comes from the N_SO symbol. */ + +EXTERN CORE_ADDR last_source_start_addr; + +/* The list of sub-source-files within the current individual + compilation. Each file gets its own symtab with its own linetable + and associated info, but they all share one blockvector. */ + +struct subfile + { + struct subfile *next; + char *name; + char *dirname; + struct linetable *line_vector; + int line_vector_length; + enum language language; + char *debugformat; + }; + +EXTERN struct subfile *subfiles; + +EXTERN struct subfile *current_subfile; + +/* Global variable which, when set, indicates that we are processing a + .o file compiled with gcc */ + +EXTERN unsigned char processing_gcc_compilation; + +/* When set, we are processing a .o file compiled by sun acc. This is + misnamed; it refers to all stabs-in-elf implementations which use + N_UNDF the way Sun does, including Solaris gcc. Hopefully all + stabs-in-elf implementations ever invented will choose to be + compatible. */ + +EXTERN unsigned char processing_acc_compilation; + +/* elz: added this flag to know when a block is compiled with HP + compilers (cc, aCC). This is necessary because of the macro + COERCE_FLOAT_TO_DOUBLE defined in tm_hppa.h, which causes a + coercion of float to double to always occur in parameter passing + for a function called by gdb (see the function value_arg_coerce in + valops.c). This is necessary only if the target was compiled with + gcc, not with HP compilers or with g++ */ + +EXTERN unsigned char processing_hp_compilation; + +/* Count symbols as they are processed, for error messages. */ + +EXTERN unsigned int symnum; + +/* Record the symbols defined for each context in a list. We don't + create a struct block for the context until we know how long to + make it. */ + +#define PENDINGSIZE 100 + +struct pending + { + struct pending *next; + int nsyms; + struct symbol *symbol[PENDINGSIZE]; + }; + +/* Here are the three lists that symbols are put on. */ + +/* static at top level, and types */ + +EXTERN struct pending *file_symbols; + +/* global functions and variables */ + +EXTERN struct pending *global_symbols; + +/* everything local to lexical context */ + +EXTERN struct pending *local_symbols; + +/* func params local to lexical context */ + +EXTERN struct pending *param_symbols; + +/* Stack representing unclosed lexical contexts (that will become + blocks, eventually). */ + +struct context_stack + { + /* Outer locals at the time we entered */ + + struct pending *locals; + + /* Pending func params at the time we entered */ + + struct pending *params; + + /* Pointer into blocklist as of entry */ + + struct pending_block *old_blocks; + + /* Name of function, if any, defining context */ + + struct symbol *name; + + /* PC where this context starts */ + + CORE_ADDR start_addr; + + /* Temp slot for exception handling. */ + + CORE_ADDR end_addr; + + /* For error-checking matching push/pop */ + + int depth; + + }; + +EXTERN struct context_stack *context_stack; + +/* Index of first unused entry in context stack. */ + +EXTERN int context_stack_depth; + +/* Currently allocated size of context stack. */ + +EXTERN int context_stack_size; + +/* Macro "function" for popping contexts from the stack. Pushing is + done by a real function, push_context. This returns a pointer to a + struct context_stack. */ + +#define pop_context() (&context_stack[--context_stack_depth]); + +/* Nonzero if within a function (so symbols should be local, if + nothing says specifically). */ + +EXTERN int within_function; + +/* List of blocks already made (lexical contexts already closed). + This is used at the end to make the blockvector. */ + +struct pending_block + { + struct pending_block *next; + struct block *block; + }; + +/* Pointer to the head of a linked list of symbol blocks which have + already been finalized (lexical contexts already closed) and which + are just waiting to be built into a blockvector when finalizing the + associated symtab. */ + +EXTERN struct pending_block *pending_blocks; + + +struct subfile_stack + { + struct subfile_stack *next; + char *name; + }; + +EXTERN struct subfile_stack *subfile_stack; + +#define next_symbol_text(objfile) (*next_symbol_text_func)(objfile) + +/* Function to invoke get the next symbol. Return the symbol name. */ + +EXTERN char *(*next_symbol_text_func) (struct objfile *); + +/* Vector of types defined so far, indexed by their type numbers. + Used for both stabs and coff. (In newer sun systems, dbx uses a + pair of numbers in parens, as in "(SUBFILENUM,NUMWITHINSUBFILE)". + Then these numbers must be translated through the type_translations + hash table to get the index into the type vector.) */ + +EXTERN struct type **type_vector; + +/* Number of elements allocated for type_vector currently. */ + +EXTERN int type_vector_length; + +/* Initial size of type vector. Is realloc'd larger if needed, and + realloc'd down to the size actually used, when completed. */ + +#define INITIAL_TYPE_VECTOR_LENGTH 160 + +extern void add_symbol_to_list (struct symbol *symbol, + struct pending **listhead); + +extern struct symbol *find_symbol_in_list (struct pending *list, + char *name, int length); + +extern void finish_block (struct symbol *symbol, + struct pending **listhead, + struct pending_block *old_blocks, + CORE_ADDR start, CORE_ADDR end, + struct objfile *objfile); + +extern void really_free_pendings (int foo); + +extern void start_subfile (char *name, char *dirname); + +extern void patch_subfile_names (struct subfile *subfile, char *name); + +extern void push_subfile (void); + +extern char *pop_subfile (void); + +extern struct symtab *end_symtab (CORE_ADDR end_addr, + struct objfile *objfile, int section); + +/* Defined in stabsread.c. */ + +extern void scan_file_globals (struct objfile *objfile); + +extern void buildsym_new_init (void); + +extern void buildsym_init (void); + +extern struct context_stack *push_context (int desc, CORE_ADDR valu); + +extern void record_line (struct subfile *subfile, int line, CORE_ADDR pc); + +extern void start_symtab (char *name, char *dirname, CORE_ADDR start_addr); + +extern int hashname (char *name); + +extern void free_pending_blocks (void); + +/* FIXME: Note that this is used only in buildsym.c and dstread.c, + which should be fixed to not need direct access to + make_blockvector. */ + +extern struct blockvector *make_blockvector (struct objfile *objfile); + +/* FIXME: Note that this is used only in buildsym.c and dstread.c, + which should be fixed to not need direct access to + record_pending_block. */ + +extern void record_pending_block (struct objfile *objfile, + struct block *block, + struct pending_block *opblock); + +extern void record_debugformat (char *format); + +extern void merge_symbol_lists (struct pending **srclist, + struct pending **targetlist); + +#undef EXTERN + +#endif /* defined (BUILDSYM_H) */ diff --git a/gdb/c-exp.y b/gdb/c-exp.y new file mode 100644 index 0000000000..377f92a9fb --- /dev/null +++ b/gdb/c-exp.y @@ -0,0 +1,1740 @@ +/* YACC parser for C expressions, for GDB. + Copyright (C) 1986, 1989, 1990, 1991, 1993, 1994, 1996, 1997 + Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +/* Parse a C expression from text in a string, + and return the result as a struct expression pointer. + That structure contains arithmetic operations in reverse polish, + with constants represented by operations that are followed by special data. + See expression.h for the details of the format. + What is important here is that it can be built up sequentially + during the process of parsing; the lower levels of the tree always + come first in the result. + + Note that malloc's and realloc's in this file are transformed to + xmalloc and xrealloc respectively by the same sed command in the + makefile that remaps any other malloc/realloc inserted by the parser + generator. Doing this with #defines and trying to control the interaction + with include files ( and for example) just became + too messy, particularly when such includes can be inserted at random + times by the parser generator. */ + +%{ + +#include "defs.h" +#include "gdb_string.h" +#include +#include "expression.h" +#include "value.h" +#include "parser-defs.h" +#include "language.h" +#include "c-lang.h" +#include "bfd.h" /* Required by objfiles.h. */ +#include "symfile.h" /* Required by objfiles.h. */ +#include "objfiles.h" /* For have_full_symbols and have_partial_symbols */ + +/* Flag indicating we're dealing with HP-compiled objects */ +extern int hp_som_som_object_present; + +/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc), + as well as gratuitiously global symbol names, so we can have multiple + yacc generated parsers in gdb. Note that these are only the variables + produced by yacc. If other parser generators (bison, byacc, etc) produce + additional global names that conflict at link time, then those parser + generators need to be fixed instead of adding those names to this list. */ + +#define yymaxdepth c_maxdepth +#define yyparse c_parse +#define yylex c_lex +#define yyerror c_error +#define yylval c_lval +#define yychar c_char +#define yydebug c_debug +#define yypact c_pact +#define yyr1 c_r1 +#define yyr2 c_r2 +#define yydef c_def +#define yychk c_chk +#define yypgo c_pgo +#define yyact c_act +#define yyexca c_exca +#define yyerrflag c_errflag +#define yynerrs c_nerrs +#define yyps c_ps +#define yypv c_pv +#define yys c_s +#define yy_yys c_yys +#define yystate c_state +#define yytmp c_tmp +#define yyv c_v +#define yy_yyv c_yyv +#define yyval c_val +#define yylloc c_lloc +#define yyreds c_reds /* With YYDEBUG defined */ +#define yytoks c_toks /* With YYDEBUG defined */ +#define yylhs c_yylhs +#define yylen c_yylen +#define yydefred c_yydefred +#define yydgoto c_yydgoto +#define yysindex c_yysindex +#define yyrindex c_yyrindex +#define yygindex c_yygindex +#define yytable c_yytable +#define yycheck c_yycheck + +#ifndef YYDEBUG +#define YYDEBUG 0 /* Default to no yydebug support */ +#endif + +int +yyparse PARAMS ((void)); + +static int +yylex PARAMS ((void)); + +void +yyerror PARAMS ((char *)); + +%} + +/* Although the yacc "value" of an expression is not used, + since the result is stored in the structure being created, + other node types do have values. */ + +%union + { + LONGEST lval; + struct { + LONGEST val; + struct type *type; + } typed_val_int; + struct { + DOUBLEST dval; + struct type *type; + } typed_val_float; + struct symbol *sym; + struct type *tval; + struct stoken sval; + struct ttype tsym; + struct symtoken ssym; + int voidval; + struct block *bval; + enum exp_opcode opcode; + struct internalvar *ivar; + + struct type **tvec; + int *ivec; + } + +%{ +/* YYSTYPE gets defined by %union */ +static int +parse_number PARAMS ((char *, int, int, YYSTYPE *)); +%} + +%type exp exp1 type_exp start variable qualified_name lcurly +%type rcurly +%type type typebase +%type nonempty_typelist +/* %type block */ + +/* Fancy type parsing. */ +%type func_mod direct_abs_decl abs_decl +%type ptype +%type array_mod + +%token INT +%token FLOAT + +/* Both NAME and TYPENAME tokens represent symbols in the input, + and both convey their data as strings. + But a TYPENAME is a string that happens to be defined as a typedef + or builtin type name (such as int or char) + and a NAME is any other symbol. + Contexts where this distinction is not important can use the + nonterminal "name", which matches either NAME or TYPENAME. */ + +%token STRING +%token NAME /* BLOCKNAME defined below to give it higher precedence. */ +%token TYPENAME +%type name +%type name_not_typename +%type typename + +/* A NAME_OR_INT is a symbol which is not known in the symbol table, + but which would parse as a valid number in the current input radix. + E.g. "c" when input_radix==16. Depending on the parse, it will be + turned into a name or into a number. */ + +%token NAME_OR_INT + +%token STRUCT CLASS UNION ENUM SIZEOF UNSIGNED COLONCOLON +%token TEMPLATE +%token ERROR + +/* Special type cases, put in to allow the parser to distinguish different + legal basetypes. */ +%token SIGNED_KEYWORD LONG SHORT INT_KEYWORD CONST_KEYWORD VOLATILE_KEYWORD DOUBLE_KEYWORD + +%token VARIABLE + +%token ASSIGN_MODIFY + +/* C++ */ +%token THIS +%token TRUEKEYWORD +%token FALSEKEYWORD + + +%left ',' +%left ABOVE_COMMA +%right '=' ASSIGN_MODIFY +%right '?' +%left OROR +%left ANDAND +%left '|' +%left '^' +%left '&' +%left EQUAL NOTEQUAL +%left '<' '>' LEQ GEQ +%left LSH RSH +%left '@' +%left '+' '-' +%left '*' '/' '%' +%right UNARY INCREMENT DECREMENT +%right ARROW '.' '[' '(' +%token BLOCKNAME +%token FILENAME +%type block +%left COLONCOLON + + +%% + +start : exp1 + | type_exp + ; + +type_exp: type + { write_exp_elt_opcode(OP_TYPE); + write_exp_elt_type($1); + write_exp_elt_opcode(OP_TYPE);} + ; + +/* Expressions, including the comma operator. */ +exp1 : exp + | exp1 ',' exp + { write_exp_elt_opcode (BINOP_COMMA); } + ; + +/* Expressions, not including the comma operator. */ +exp : '*' exp %prec UNARY + { write_exp_elt_opcode (UNOP_IND); } + +exp : '&' exp %prec UNARY + { write_exp_elt_opcode (UNOP_ADDR); } + +exp : '-' exp %prec UNARY + { write_exp_elt_opcode (UNOP_NEG); } + ; + +exp : '!' exp %prec UNARY + { write_exp_elt_opcode (UNOP_LOGICAL_NOT); } + ; + +exp : '~' exp %prec UNARY + { write_exp_elt_opcode (UNOP_COMPLEMENT); } + ; + +exp : INCREMENT exp %prec UNARY + { write_exp_elt_opcode (UNOP_PREINCREMENT); } + ; + +exp : DECREMENT exp %prec UNARY + { write_exp_elt_opcode (UNOP_PREDECREMENT); } + ; + +exp : exp INCREMENT %prec UNARY + { write_exp_elt_opcode (UNOP_POSTINCREMENT); } + ; + +exp : exp DECREMENT %prec UNARY + { write_exp_elt_opcode (UNOP_POSTDECREMENT); } + ; + +exp : SIZEOF exp %prec UNARY + { write_exp_elt_opcode (UNOP_SIZEOF); } + ; + +exp : exp ARROW name + { write_exp_elt_opcode (STRUCTOP_PTR); + write_exp_string ($3); + write_exp_elt_opcode (STRUCTOP_PTR); } + ; + +exp : exp ARROW qualified_name + { /* exp->type::name becomes exp->*(&type::name) */ + /* Note: this doesn't work if name is a + static member! FIXME */ + write_exp_elt_opcode (UNOP_ADDR); + write_exp_elt_opcode (STRUCTOP_MPTR); } + ; + +exp : exp ARROW '*' exp + { write_exp_elt_opcode (STRUCTOP_MPTR); } + ; + +exp : exp '.' name + { write_exp_elt_opcode (STRUCTOP_STRUCT); + write_exp_string ($3); + write_exp_elt_opcode (STRUCTOP_STRUCT); } + ; + +exp : exp '.' qualified_name + { /* exp.type::name becomes exp.*(&type::name) */ + /* Note: this doesn't work if name is a + static member! FIXME */ + write_exp_elt_opcode (UNOP_ADDR); + write_exp_elt_opcode (STRUCTOP_MEMBER); } + ; + +exp : exp '.' '*' exp + { write_exp_elt_opcode (STRUCTOP_MEMBER); } + ; + +exp : exp '[' exp1 ']' + { write_exp_elt_opcode (BINOP_SUBSCRIPT); } + ; + +exp : exp '(' + /* This is to save the value of arglist_len + being accumulated by an outer function call. */ + { start_arglist (); } + arglist ')' %prec ARROW + { write_exp_elt_opcode (OP_FUNCALL); + write_exp_elt_longcst ((LONGEST) end_arglist ()); + write_exp_elt_opcode (OP_FUNCALL); } + ; + +lcurly : '{' + { start_arglist (); } + ; + +arglist : + ; + +arglist : exp + { arglist_len = 1; } + ; + +arglist : arglist ',' exp %prec ABOVE_COMMA + { arglist_len++; } + ; + +rcurly : '}' + { $$ = end_arglist () - 1; } + ; +exp : lcurly arglist rcurly %prec ARROW + { write_exp_elt_opcode (OP_ARRAY); + write_exp_elt_longcst ((LONGEST) 0); + write_exp_elt_longcst ((LONGEST) $3); + write_exp_elt_opcode (OP_ARRAY); } + ; + +exp : lcurly type rcurly exp %prec UNARY + { write_exp_elt_opcode (UNOP_MEMVAL); + write_exp_elt_type ($2); + write_exp_elt_opcode (UNOP_MEMVAL); } + ; + +exp : '(' type ')' exp %prec UNARY + { write_exp_elt_opcode (UNOP_CAST); + write_exp_elt_type ($2); + write_exp_elt_opcode (UNOP_CAST); } + ; + +exp : '(' exp1 ')' + { } + ; + +/* Binary operators in order of decreasing precedence. */ + +exp : exp '@' exp + { write_exp_elt_opcode (BINOP_REPEAT); } + ; + +exp : exp '*' exp + { write_exp_elt_opcode (BINOP_MUL); } + ; + +exp : exp '/' exp + { write_exp_elt_opcode (BINOP_DIV); } + ; + +exp : exp '%' exp + { write_exp_elt_opcode (BINOP_REM); } + ; + +exp : exp '+' exp + { write_exp_elt_opcode (BINOP_ADD); } + ; + +exp : exp '-' exp + { write_exp_elt_opcode (BINOP_SUB); } + ; + +exp : exp LSH exp + { write_exp_elt_opcode (BINOP_LSH); } + ; + +exp : exp RSH exp + { write_exp_elt_opcode (BINOP_RSH); } + ; + +exp : exp EQUAL exp + { write_exp_elt_opcode (BINOP_EQUAL); } + ; + +exp : exp NOTEQUAL exp + { write_exp_elt_opcode (BINOP_NOTEQUAL); } + ; + +exp : exp LEQ exp + { write_exp_elt_opcode (BINOP_LEQ); } + ; + +exp : exp GEQ exp + { write_exp_elt_opcode (BINOP_GEQ); } + ; + +exp : exp '<' exp + { write_exp_elt_opcode (BINOP_LESS); } + ; + +exp : exp '>' exp + { write_exp_elt_opcode (BINOP_GTR); } + ; + +exp : exp '&' exp + { write_exp_elt_opcode (BINOP_BITWISE_AND); } + ; + +exp : exp '^' exp + { write_exp_elt_opcode (BINOP_BITWISE_XOR); } + ; + +exp : exp '|' exp + { write_exp_elt_opcode (BINOP_BITWISE_IOR); } + ; + +exp : exp ANDAND exp + { write_exp_elt_opcode (BINOP_LOGICAL_AND); } + ; + +exp : exp OROR exp + { write_exp_elt_opcode (BINOP_LOGICAL_OR); } + ; + +exp : exp '?' exp ':' exp %prec '?' + { write_exp_elt_opcode (TERNOP_COND); } + ; + +exp : exp '=' exp + { write_exp_elt_opcode (BINOP_ASSIGN); } + ; + +exp : exp ASSIGN_MODIFY exp + { write_exp_elt_opcode (BINOP_ASSIGN_MODIFY); + write_exp_elt_opcode ($2); + write_exp_elt_opcode (BINOP_ASSIGN_MODIFY); } + ; + +exp : INT + { write_exp_elt_opcode (OP_LONG); + write_exp_elt_type ($1.type); + write_exp_elt_longcst ((LONGEST)($1.val)); + write_exp_elt_opcode (OP_LONG); } + ; + +exp : NAME_OR_INT + { YYSTYPE val; + parse_number ($1.stoken.ptr, $1.stoken.length, 0, &val); + write_exp_elt_opcode (OP_LONG); + write_exp_elt_type (val.typed_val_int.type); + write_exp_elt_longcst ((LONGEST)val.typed_val_int.val); + write_exp_elt_opcode (OP_LONG); + } + ; + + +exp : FLOAT + { write_exp_elt_opcode (OP_DOUBLE); + write_exp_elt_type ($1.type); + write_exp_elt_dblcst ($1.dval); + write_exp_elt_opcode (OP_DOUBLE); } + ; + +exp : variable + ; + +exp : VARIABLE + /* Already written by write_dollar_variable. */ + ; + +exp : SIZEOF '(' type ')' %prec UNARY + { write_exp_elt_opcode (OP_LONG); + write_exp_elt_type (builtin_type_int); + CHECK_TYPEDEF ($3); + write_exp_elt_longcst ((LONGEST) TYPE_LENGTH ($3)); + write_exp_elt_opcode (OP_LONG); } + ; + +exp : STRING + { /* C strings are converted into array constants with + an explicit null byte added at the end. Thus + the array upper bound is the string length. + There is no such thing in C as a completely empty + string. */ + char *sp = $1.ptr; int count = $1.length; + while (count-- > 0) + { + write_exp_elt_opcode (OP_LONG); + write_exp_elt_type (builtin_type_char); + write_exp_elt_longcst ((LONGEST)(*sp++)); + write_exp_elt_opcode (OP_LONG); + } + write_exp_elt_opcode (OP_LONG); + write_exp_elt_type (builtin_type_char); + write_exp_elt_longcst ((LONGEST)'\0'); + write_exp_elt_opcode (OP_LONG); + write_exp_elt_opcode (OP_ARRAY); + write_exp_elt_longcst ((LONGEST) 0); + write_exp_elt_longcst ((LONGEST) ($1.length)); + write_exp_elt_opcode (OP_ARRAY); } + ; + +/* C++. */ +exp : THIS + { write_exp_elt_opcode (OP_THIS); + write_exp_elt_opcode (OP_THIS); } + ; + +exp : TRUEKEYWORD + { write_exp_elt_opcode (OP_LONG); + write_exp_elt_type (builtin_type_bool); + write_exp_elt_longcst ((LONGEST) 1); + write_exp_elt_opcode (OP_LONG); } + ; + +exp : FALSEKEYWORD + { write_exp_elt_opcode (OP_LONG); + write_exp_elt_type (builtin_type_bool); + write_exp_elt_longcst ((LONGEST) 0); + write_exp_elt_opcode (OP_LONG); } + ; + +/* end of C++. */ + +block : BLOCKNAME + { + if ($1.sym) + $$ = SYMBOL_BLOCK_VALUE ($1.sym); + else + error ("No file or function \"%s\".", + copy_name ($1.stoken)); + } + | FILENAME + { + $$ = $1; + } + ; + +block : block COLONCOLON name + { struct symbol *tem + = lookup_symbol (copy_name ($3), $1, + VAR_NAMESPACE, (int *) NULL, + (struct symtab **) NULL); + if (!tem || SYMBOL_CLASS (tem) != LOC_BLOCK) + error ("No function \"%s\" in specified context.", + copy_name ($3)); + $$ = SYMBOL_BLOCK_VALUE (tem); } + ; + +variable: block COLONCOLON name + { struct symbol *sym; + sym = lookup_symbol (copy_name ($3), $1, + VAR_NAMESPACE, (int *) NULL, + (struct symtab **) NULL); + if (sym == 0) + error ("No symbol \"%s\" in specified context.", + copy_name ($3)); + + write_exp_elt_opcode (OP_VAR_VALUE); + /* block_found is set by lookup_symbol. */ + write_exp_elt_block (block_found); + write_exp_elt_sym (sym); + write_exp_elt_opcode (OP_VAR_VALUE); } + ; + +qualified_name: typebase COLONCOLON name + { + struct type *type = $1; + if (TYPE_CODE (type) != TYPE_CODE_STRUCT + && TYPE_CODE (type) != TYPE_CODE_UNION) + error ("`%s' is not defined as an aggregate type.", + TYPE_NAME (type)); + + write_exp_elt_opcode (OP_SCOPE); + write_exp_elt_type (type); + write_exp_string ($3); + write_exp_elt_opcode (OP_SCOPE); + } + | typebase COLONCOLON '~' name + { + struct type *type = $1; + struct stoken tmp_token; + if (TYPE_CODE (type) != TYPE_CODE_STRUCT + && TYPE_CODE (type) != TYPE_CODE_UNION) + error ("`%s' is not defined as an aggregate type.", + TYPE_NAME (type)); + + tmp_token.ptr = (char*) alloca ($4.length + 2); + tmp_token.length = $4.length + 1; + tmp_token.ptr[0] = '~'; + memcpy (tmp_token.ptr+1, $4.ptr, $4.length); + tmp_token.ptr[tmp_token.length] = 0; + + /* Check for valid destructor name. */ + destructor_name_p (tmp_token.ptr, type); + write_exp_elt_opcode (OP_SCOPE); + write_exp_elt_type (type); + write_exp_string (tmp_token); + write_exp_elt_opcode (OP_SCOPE); + } + ; + +variable: qualified_name + | COLONCOLON name + { + char *name = copy_name ($2); + struct symbol *sym; + struct minimal_symbol *msymbol; + + sym = + lookup_symbol (name, (const struct block *) NULL, + VAR_NAMESPACE, (int *) NULL, + (struct symtab **) NULL); + if (sym) + { + write_exp_elt_opcode (OP_VAR_VALUE); + write_exp_elt_block (NULL); + write_exp_elt_sym (sym); + write_exp_elt_opcode (OP_VAR_VALUE); + break; + } + + msymbol = lookup_minimal_symbol (name, NULL, NULL); + if (msymbol != NULL) + { + write_exp_msymbol (msymbol, + lookup_function_type (builtin_type_int), + builtin_type_int); + } + else + if (!have_full_symbols () && !have_partial_symbols ()) + error ("No symbol table is loaded. Use the \"file\" command."); + else + error ("No symbol \"%s\" in current context.", name); + } + ; + +variable: name_not_typename + { struct symbol *sym = $1.sym; + + if (sym) + { + if (symbol_read_needs_frame (sym)) + { + if (innermost_block == 0 || + contained_in (block_found, + innermost_block)) + innermost_block = block_found; + } + + write_exp_elt_opcode (OP_VAR_VALUE); + /* We want to use the selected frame, not + another more inner frame which happens to + be in the same block. */ + write_exp_elt_block (NULL); + write_exp_elt_sym (sym); + write_exp_elt_opcode (OP_VAR_VALUE); + } + else if ($1.is_a_field_of_this) + { + /* C++: it hangs off of `this'. Must + not inadvertently convert from a method call + to data ref. */ + if (innermost_block == 0 || + contained_in (block_found, innermost_block)) + innermost_block = block_found; + write_exp_elt_opcode (OP_THIS); + write_exp_elt_opcode (OP_THIS); + write_exp_elt_opcode (STRUCTOP_PTR); + write_exp_string ($1.stoken); + write_exp_elt_opcode (STRUCTOP_PTR); + } + else + { + struct minimal_symbol *msymbol; + register char *arg = copy_name ($1.stoken); + + msymbol = + lookup_minimal_symbol (arg, NULL, NULL); + if (msymbol != NULL) + { + write_exp_msymbol (msymbol, + lookup_function_type (builtin_type_int), + builtin_type_int); + } + else if (!have_full_symbols () && !have_partial_symbols ()) + error ("No symbol table is loaded. Use the \"file\" command."); + else + error ("No symbol \"%s\" in current context.", + copy_name ($1.stoken)); + } + } + ; + + +ptype : typebase + /* "const" and "volatile" are curently ignored. A type qualifier + before the type is currently handled in the typebase rule. + The reason for recognizing these here (shift/reduce conflicts) + might be obsolete now that some pointer to member rules have + been deleted. */ + | typebase CONST_KEYWORD + | typebase VOLATILE_KEYWORD + | typebase abs_decl + { $$ = follow_types ($1); } + | typebase CONST_KEYWORD abs_decl + { $$ = follow_types ($1); } + | typebase VOLATILE_KEYWORD abs_decl + { $$ = follow_types ($1); } + ; + +abs_decl: '*' + { push_type (tp_pointer); $$ = 0; } + | '*' abs_decl + { push_type (tp_pointer); $$ = $2; } + | '&' + { push_type (tp_reference); $$ = 0; } + | '&' abs_decl + { push_type (tp_reference); $$ = $2; } + | direct_abs_decl + ; + +direct_abs_decl: '(' abs_decl ')' + { $$ = $2; } + | direct_abs_decl array_mod + { + push_type_int ($2); + push_type (tp_array); + } + | array_mod + { + push_type_int ($1); + push_type (tp_array); + $$ = 0; + } + + | direct_abs_decl func_mod + { push_type (tp_function); } + | func_mod + { push_type (tp_function); } + ; + +array_mod: '[' ']' + { $$ = -1; } + | '[' INT ']' + { $$ = $2.val; } + ; + +func_mod: '(' ')' + { $$ = 0; } + | '(' nonempty_typelist ')' + { free ((PTR)$2); $$ = 0; } + ; + +/* We used to try to recognize more pointer to member types here, but + that didn't work (shift/reduce conflicts meant that these rules never + got executed). The problem is that + int (foo::bar::baz::bizzle) + is a function type but + int (foo::bar::baz::bizzle::*) + is a pointer to member type. Stroustrup loses again! */ + +type : ptype + | typebase COLONCOLON '*' + { $$ = lookup_member_type (builtin_type_int, $1); } + ; + +typebase /* Implements (approximately): (type-qualifier)* type-specifier */ + : TYPENAME + { $$ = $1.type; } + | INT_KEYWORD + { $$ = builtin_type_int; } + | LONG + { $$ = builtin_type_long; } + | SHORT + { $$ = builtin_type_short; } + | LONG INT_KEYWORD + { $$ = builtin_type_long; } + | UNSIGNED LONG INT_KEYWORD + { $$ = builtin_type_unsigned_long; } + | LONG LONG + { $$ = builtin_type_long_long; } + | LONG LONG INT_KEYWORD + { $$ = builtin_type_long_long; } + | UNSIGNED LONG LONG + { $$ = builtin_type_unsigned_long_long; } + | UNSIGNED LONG LONG INT_KEYWORD + { $$ = builtin_type_unsigned_long_long; } + | SHORT INT_KEYWORD + { $$ = builtin_type_short; } + | UNSIGNED SHORT INT_KEYWORD + { $$ = builtin_type_unsigned_short; } + | DOUBLE_KEYWORD + { $$ = builtin_type_double; } + | LONG DOUBLE_KEYWORD + { $$ = builtin_type_long_double; } + | STRUCT name + { $$ = lookup_struct (copy_name ($2), + expression_context_block); } + | CLASS name + { $$ = lookup_struct (copy_name ($2), + expression_context_block); } + | UNION name + { $$ = lookup_union (copy_name ($2), + expression_context_block); } + | ENUM name + { $$ = lookup_enum (copy_name ($2), + expression_context_block); } + | UNSIGNED typename + { $$ = lookup_unsigned_typename (TYPE_NAME($2.type)); } + | UNSIGNED + { $$ = builtin_type_unsigned_int; } + | SIGNED_KEYWORD typename + { $$ = lookup_signed_typename (TYPE_NAME($2.type)); } + | SIGNED_KEYWORD + { $$ = builtin_type_int; } + /* It appears that this rule for templates is never + reduced; template recognition happens by lookahead + in the token processing code in yylex. */ + | TEMPLATE name '<' type '>' + { $$ = lookup_template_type(copy_name($2), $4, + expression_context_block); + } + /* "const" and "volatile" are curently ignored. A type qualifier + after the type is handled in the ptype rule. I think these could + be too. */ + | CONST_KEYWORD typebase { $$ = $2; } + | VOLATILE_KEYWORD typebase { $$ = $2; } + ; + +typename: TYPENAME + | INT_KEYWORD + { + $$.stoken.ptr = "int"; + $$.stoken.length = 3; + $$.type = builtin_type_int; + } + | LONG + { + $$.stoken.ptr = "long"; + $$.stoken.length = 4; + $$.type = builtin_type_long; + } + | SHORT + { + $$.stoken.ptr = "short"; + $$.stoken.length = 5; + $$.type = builtin_type_short; + } + ; + +nonempty_typelist + : type + { $$ = (struct type **) malloc (sizeof (struct type *) * 2); + $$[0] = 1; /* Number of types in vector */ + $$[1] = $1; + } + | nonempty_typelist ',' type + { int len = sizeof (struct type *) * (++($1[0]) + 1); + $$ = (struct type **) realloc ((char *) $1, len); + $$[$$[0]] = $3; + } + ; + +name : NAME { $$ = $1.stoken; } + | BLOCKNAME { $$ = $1.stoken; } + | TYPENAME { $$ = $1.stoken; } + | NAME_OR_INT { $$ = $1.stoken; } + ; + +name_not_typename : NAME + | BLOCKNAME +/* These would be useful if name_not_typename was useful, but it is just + a fake for "variable", so these cause reduce/reduce conflicts because + the parser can't tell whether NAME_OR_INT is a name_not_typename (=variable, + =exp) or just an exp. If name_not_typename was ever used in an lvalue + context where only a name could occur, this might be useful. + | NAME_OR_INT + */ + ; + +%% + +/* Take care of parsing a number (anything that starts with a digit). + Set yylval and return the token type; update lexptr. + LEN is the number of characters in it. */ + +/*** Needs some error checking for the float case ***/ + +static int +parse_number (p, len, parsed_float, putithere) + register char *p; + register int len; + int parsed_float; + YYSTYPE *putithere; +{ + /* FIXME: Shouldn't these be unsigned? We don't deal with negative values + here, and we do kind of silly things like cast to unsigned. */ + register LONGEST n = 0; + register LONGEST prevn = 0; + ULONGEST un; + + register int i = 0; + register int c; + register int base = input_radix; + int unsigned_p = 0; + + /* Number of "L" suffixes encountered. */ + int long_p = 0; + + /* We have found a "L" or "U" suffix. */ + int found_suffix = 0; + + ULONGEST high_bit; + struct type *signed_type; + struct type *unsigned_type; + + if (parsed_float) + { + /* It's a float since it contains a point or an exponent. */ + char c; + int num = 0; /* number of tokens scanned by scanf */ + char saved_char = p[len]; + + p[len] = 0; /* null-terminate the token */ + if (sizeof (putithere->typed_val_float.dval) <= sizeof (float)) + num = sscanf (p, "%g%c", (float *) &putithere->typed_val_float.dval,&c); + else if (sizeof (putithere->typed_val_float.dval) <= sizeof (double)) + num = sscanf (p, "%lg%c", (double *) &putithere->typed_val_float.dval,&c); + else + { +#ifdef SCANF_HAS_LONG_DOUBLE + num = sscanf (p, "%Lg%c", &putithere->typed_val_float.dval,&c); +#else + /* Scan it into a double, then assign it to the long double. + This at least wins with values representable in the range + of doubles. */ + double temp; + num = sscanf (p, "%lg%c", &temp,&c); + putithere->typed_val_float.dval = temp; +#endif + } + p[len] = saved_char; /* restore the input stream */ + if (num != 1) /* check scanf found ONLY a float ... */ + return ERROR; + /* See if it has `f' or `l' suffix (float or long double). */ + + c = tolower (p[len - 1]); + + if (c == 'f') + putithere->typed_val_float.type = builtin_type_float; + else if (c == 'l') + putithere->typed_val_float.type = builtin_type_long_double; + else if (isdigit (c) || c == '.') + putithere->typed_val_float.type = builtin_type_double; + else + return ERROR; + + return FLOAT; + } + + /* Handle base-switching prefixes 0x, 0t, 0d, 0 */ + if (p[0] == '0') + switch (p[1]) + { + case 'x': + case 'X': + if (len >= 3) + { + p += 2; + base = 16; + len -= 2; + } + break; + + case 't': + case 'T': + case 'd': + case 'D': + if (len >= 3) + { + p += 2; + base = 10; + len -= 2; + } + break; + + default: + base = 8; + break; + } + + while (len-- > 0) + { + c = *p++; + if (c >= 'A' && c <= 'Z') + c += 'a' - 'A'; + if (c != 'l' && c != 'u') + n *= base; + if (c >= '0' && c <= '9') + { + if (found_suffix) + return ERROR; + n += i = c - '0'; + } + else + { + if (base > 10 && c >= 'a' && c <= 'f') + { + if (found_suffix) + return ERROR; + n += i = c - 'a' + 10; + } + else if (c == 'l') + { + ++long_p; + found_suffix = 1; + } + else if (c == 'u') + { + unsigned_p = 1; + found_suffix = 1; + } + else + return ERROR; /* Char not a digit */ + } + if (i >= base) + return ERROR; /* Invalid digit in this base */ + + /* Portably test for overflow (only works for nonzero values, so make + a second check for zero). FIXME: Can't we just make n and prevn + unsigned and avoid this? */ + if (c != 'l' && c != 'u' && (prevn >= n) && n != 0) + unsigned_p = 1; /* Try something unsigned */ + + /* Portably test for unsigned overflow. + FIXME: This check is wrong; for example it doesn't find overflow + on 0x123456789 when LONGEST is 32 bits. */ + if (c != 'l' && c != 'u' && n != 0) + { + if ((unsigned_p && (ULONGEST) prevn >= (ULONGEST) n)) + error ("Numeric constant too large."); + } + prevn = n; + } + + /* An integer constant is an int, a long, or a long long. An L + suffix forces it to be long; an LL suffix forces it to be long + long. If not forced to a larger size, it gets the first type of + the above that it fits in. To figure out whether it fits, we + shift it right and see whether anything remains. Note that we + can't shift sizeof (LONGEST) * HOST_CHAR_BIT bits or more in one + operation, because many compilers will warn about such a shift + (which always produces a zero result). Sometimes TARGET_INT_BIT + or TARGET_LONG_BIT will be that big, sometimes not. To deal with + the case where it is we just always shift the value more than + once, with fewer bits each time. */ + + un = (ULONGEST)n >> 2; + if (long_p == 0 + && (un >> (TARGET_INT_BIT - 2)) == 0) + { + high_bit = ((ULONGEST)1) << (TARGET_INT_BIT-1); + + /* A large decimal (not hex or octal) constant (between INT_MAX + and UINT_MAX) is a long or unsigned long, according to ANSI, + never an unsigned int, but this code treats it as unsigned + int. This probably should be fixed. GCC gives a warning on + such constants. */ + + unsigned_type = builtin_type_unsigned_int; + signed_type = builtin_type_int; + } + else if (long_p <= 1 + && (un >> (TARGET_LONG_BIT - 2)) == 0) + { + high_bit = ((ULONGEST)1) << (TARGET_LONG_BIT-1); + unsigned_type = builtin_type_unsigned_long; + signed_type = builtin_type_long; + } + else + { + int shift; + if (sizeof (ULONGEST) * HOST_CHAR_BIT < TARGET_LONG_LONG_BIT) + /* A long long does not fit in a LONGEST. */ + shift = (sizeof (ULONGEST) * HOST_CHAR_BIT - 1); + else + shift = (TARGET_LONG_LONG_BIT - 1); + high_bit = (ULONGEST) 1 << shift; + unsigned_type = builtin_type_unsigned_long_long; + signed_type = builtin_type_long_long; + } + + putithere->typed_val_int.val = n; + + /* If the high bit of the worked out type is set then this number + has to be unsigned. */ + + if (unsigned_p || (n & high_bit)) + { + putithere->typed_val_int.type = unsigned_type; + } + else + { + putithere->typed_val_int.type = signed_type; + } + + return INT; +} + +struct token +{ + char *operator; + int token; + enum exp_opcode opcode; +}; + +static const struct token tokentab3[] = + { + {">>=", ASSIGN_MODIFY, BINOP_RSH}, + {"<<=", ASSIGN_MODIFY, BINOP_LSH} + }; + +static const struct token tokentab2[] = + { + {"+=", ASSIGN_MODIFY, BINOP_ADD}, + {"-=", ASSIGN_MODIFY, BINOP_SUB}, + {"*=", ASSIGN_MODIFY, BINOP_MUL}, + {"/=", ASSIGN_MODIFY, BINOP_DIV}, + {"%=", ASSIGN_MODIFY, BINOP_REM}, + {"|=", ASSIGN_MODIFY, BINOP_BITWISE_IOR}, + {"&=", ASSIGN_MODIFY, BINOP_BITWISE_AND}, + {"^=", ASSIGN_MODIFY, BINOP_BITWISE_XOR}, + {"++", INCREMENT, BINOP_END}, + {"--", DECREMENT, BINOP_END}, + {"->", ARROW, BINOP_END}, + {"&&", ANDAND, BINOP_END}, + {"||", OROR, BINOP_END}, + {"::", COLONCOLON, BINOP_END}, + {"<<", LSH, BINOP_END}, + {">>", RSH, BINOP_END}, + {"==", EQUAL, BINOP_END}, + {"!=", NOTEQUAL, BINOP_END}, + {"<=", LEQ, BINOP_END}, + {">=", GEQ, BINOP_END} + }; + +/* Read one token, getting characters through lexptr. */ + +static int +yylex () +{ + int c; + int namelen; + unsigned int i; + char *tokstart; + char *tokptr; + int tempbufindex; + static char *tempbuf; + static int tempbufsize; + struct symbol * sym_class = NULL; + char * token_string = NULL; + int class_prefix = 0; + int unquoted_expr; + + retry: + + unquoted_expr = 1; + + tokstart = lexptr; + /* See if it is a special token of length 3. */ + for (i = 0; i < sizeof tokentab3 / sizeof tokentab3[0]; i++) + if (STREQN (tokstart, tokentab3[i].operator, 3)) + { + lexptr += 3; + yylval.opcode = tokentab3[i].opcode; + return tokentab3[i].token; + } + + /* See if it is a special token of length 2. */ + for (i = 0; i < sizeof tokentab2 / sizeof tokentab2[0]; i++) + if (STREQN (tokstart, tokentab2[i].operator, 2)) + { + lexptr += 2; + yylval.opcode = tokentab2[i].opcode; + return tokentab2[i].token; + } + + switch (c = *tokstart) + { + case 0: + return 0; + + case ' ': + case '\t': + case '\n': + lexptr++; + goto retry; + + case '\'': + /* We either have a character constant ('0' or '\177' for example) + or we have a quoted symbol reference ('foo(int,int)' in C++ + for example). */ + lexptr++; + c = *lexptr++; + if (c == '\\') + c = parse_escape (&lexptr); + else if (c == '\'') + error ("Empty character constant."); + + yylval.typed_val_int.val = c; + yylval.typed_val_int.type = builtin_type_char; + + c = *lexptr++; + if (c != '\'') + { + namelen = skip_quoted (tokstart) - tokstart; + if (namelen > 2) + { + lexptr = tokstart + namelen; + unquoted_expr = 0; + if (lexptr[-1] != '\'') + error ("Unmatched single quote."); + namelen -= 2; + tokstart++; + goto tryname; + } + error ("Invalid character constant."); + } + return INT; + + case '(': + paren_depth++; + lexptr++; + return c; + + case ')': + if (paren_depth == 0) + return 0; + paren_depth--; + lexptr++; + return c; + + case ',': + if (comma_terminates && paren_depth == 0) + return 0; + lexptr++; + return c; + + case '.': + /* Might be a floating point number. */ + if (lexptr[1] < '0' || lexptr[1] > '9') + goto symbol; /* Nope, must be a symbol. */ + /* FALL THRU into number case. */ + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + /* It's a number. */ + int got_dot = 0, got_e = 0, toktype; + register char *p = tokstart; + int hex = input_radix > 10; + + if (c == '0' && (p[1] == 'x' || p[1] == 'X')) + { + p += 2; + hex = 1; + } + else if (c == '0' && (p[1]=='t' || p[1]=='T' || p[1]=='d' || p[1]=='D')) + { + p += 2; + hex = 0; + } + + for (;; ++p) + { + /* This test includes !hex because 'e' is a valid hex digit + and thus does not indicate a floating point number when + the radix is hex. */ + if (!hex && !got_e && (*p == 'e' || *p == 'E')) + got_dot = got_e = 1; + /* This test does not include !hex, because a '.' always indicates + a decimal floating point number regardless of the radix. */ + else if (!got_dot && *p == '.') + got_dot = 1; + else if (got_e && (p[-1] == 'e' || p[-1] == 'E') + && (*p == '-' || *p == '+')) + /* This is the sign of the exponent, not the end of the + number. */ + continue; + /* We will take any letters or digits. parse_number will + complain if past the radix, or if L or U are not final. */ + else if ((*p < '0' || *p > '9') + && ((*p < 'a' || *p > 'z') + && (*p < 'A' || *p > 'Z'))) + break; + } + toktype = parse_number (tokstart, p - tokstart, got_dot|got_e, &yylval); + if (toktype == ERROR) + { + char *err_copy = (char *) alloca (p - tokstart + 1); + + memcpy (err_copy, tokstart, p - tokstart); + err_copy[p - tokstart] = 0; + error ("Invalid number \"%s\".", err_copy); + } + lexptr = p; + return toktype; + } + + case '+': + case '-': + case '*': + case '/': + case '%': + case '|': + case '&': + case '^': + case '~': + case '!': + case '@': + case '<': + case '>': + case '[': + case ']': + case '?': + case ':': + case '=': + case '{': + case '}': + symbol: + lexptr++; + return c; + + case '"': + + /* Build the gdb internal form of the input string in tempbuf, + translating any standard C escape forms seen. Note that the + buffer is null byte terminated *only* for the convenience of + debugging gdb itself and printing the buffer contents when + the buffer contains no embedded nulls. Gdb does not depend + upon the buffer being null byte terminated, it uses the length + string instead. This allows gdb to handle C strings (as well + as strings in other languages) with embedded null bytes */ + + tokptr = ++tokstart; + tempbufindex = 0; + + do { + /* Grow the static temp buffer if necessary, including allocating + the first one on demand. */ + if (tempbufindex + 1 >= tempbufsize) + { + tempbuf = (char *) realloc (tempbuf, tempbufsize += 64); + } + switch (*tokptr) + { + case '\0': + case '"': + /* Do nothing, loop will terminate. */ + break; + case '\\': + tokptr++; + c = parse_escape (&tokptr); + if (c == -1) + { + continue; + } + tempbuf[tempbufindex++] = c; + break; + default: + tempbuf[tempbufindex++] = *tokptr++; + break; + } + } while ((*tokptr != '"') && (*tokptr != '\0')); + if (*tokptr++ != '"') + { + error ("Unterminated string in expression."); + } + tempbuf[tempbufindex] = '\0'; /* See note above */ + yylval.sval.ptr = tempbuf; + yylval.sval.length = tempbufindex; + lexptr = tokptr; + return (STRING); + } + + if (!(c == '_' || c == '$' + || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) + /* We must have come across a bad character (e.g. ';'). */ + error ("Invalid character '%c' in expression.", c); + + /* It's a name. See how long it is. */ + namelen = 0; + for (c = tokstart[namelen]; + (c == '_' || c == '$' || (c >= '0' && c <= '9') + || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '<');) + { + /* Template parameter lists are part of the name. + FIXME: This mishandles `print $a<4&&$a>3'. */ + + if (c == '<') + { + if (hp_som_som_object_present) + { + /* Scan ahead to get rest of the template specification. Note + that we look ahead only when the '<' adjoins non-whitespace + characters; for comparison expressions, e.g. "a < b > c", + there must be spaces before the '<', etc. */ + + char * p = find_template_name_end (tokstart + namelen); + if (p) + namelen = p - tokstart; + break; + } + else + { + int i = namelen; + int nesting_level = 1; + while (tokstart[++i]) + { + if (tokstart[i] == '<') + nesting_level++; + else if (tokstart[i] == '>') + { + if (--nesting_level == 0) + break; + } + } + if (tokstart[i] == '>') + namelen = i; + else + break; + } + } + c = tokstart[++namelen]; + } + + /* The token "if" terminates the expression and is NOT + removed from the input stream. */ + if (namelen == 2 && tokstart[0] == 'i' && tokstart[1] == 'f') + { + return 0; + } + + lexptr += namelen; + + tryname: + + /* Catch specific keywords. Should be done with a data structure. */ + switch (namelen) + { + case 8: + if (STREQN (tokstart, "unsigned", 8)) + return UNSIGNED; + if (current_language->la_language == language_cplus + && STREQN (tokstart, "template", 8)) + return TEMPLATE; + if (STREQN (tokstart, "volatile", 8)) + return VOLATILE_KEYWORD; + break; + case 6: + if (STREQN (tokstart, "struct", 6)) + return STRUCT; + if (STREQN (tokstart, "signed", 6)) + return SIGNED_KEYWORD; + if (STREQN (tokstart, "sizeof", 6)) + return SIZEOF; + if (STREQN (tokstart, "double", 6)) + return DOUBLE_KEYWORD; + break; + case 5: + if (current_language->la_language == language_cplus) + { + if (STREQN (tokstart, "false", 5)) + return FALSEKEYWORD; + if (STREQN (tokstart, "class", 5)) + return CLASS; + } + if (STREQN (tokstart, "union", 5)) + return UNION; + if (STREQN (tokstart, "short", 5)) + return SHORT; + if (STREQN (tokstart, "const", 5)) + return CONST_KEYWORD; + break; + case 4: + if (STREQN (tokstart, "enum", 4)) + return ENUM; + if (STREQN (tokstart, "long", 4)) + return LONG; + if (current_language->la_language == language_cplus) + { + if (STREQN (tokstart, "true", 4)) + return TRUEKEYWORD; + + if (STREQN (tokstart, "this", 4)) + { + static const char this_name[] = + { CPLUS_MARKER, 't', 'h', 'i', 's', '\0' }; + + if (lookup_symbol (this_name, expression_context_block, + VAR_NAMESPACE, (int *) NULL, + (struct symtab **) NULL)) + return THIS; + } + } + break; + case 3: + if (STREQN (tokstart, "int", 3)) + return INT_KEYWORD; + break; + default: + break; + } + + yylval.sval.ptr = tokstart; + yylval.sval.length = namelen; + + if (*tokstart == '$') + { + write_dollar_variable (yylval.sval); + return VARIABLE; + } + + /* Look ahead and see if we can consume more of the input + string to get a reasonable class/namespace spec or a + fully-qualified name. This is a kludge to get around the + HP aCC compiler's generation of symbol names with embedded + colons for namespace and nested classes. */ + if (unquoted_expr) + { + /* Only do it if not inside single quotes */ + sym_class = parse_nested_classes_for_hpacc (yylval.sval.ptr, yylval.sval.length, + &token_string, &class_prefix, &lexptr); + if (sym_class) + { + /* Replace the current token with the bigger one we found */ + yylval.sval.ptr = token_string; + yylval.sval.length = strlen (token_string); + } + } + + /* Use token-type BLOCKNAME for symbols that happen to be defined as + functions or symtabs. If this is not so, then ... + Use token-type TYPENAME for symbols that happen to be defined + currently as names of types; NAME for other symbols. + The caller is not constrained to care about the distinction. */ + { + char *tmp = copy_name (yylval.sval); + struct symbol *sym; + int is_a_field_of_this = 0; + int hextype; + + sym = lookup_symbol (tmp, expression_context_block, + VAR_NAMESPACE, + current_language->la_language == language_cplus + ? &is_a_field_of_this : (int *) NULL, + (struct symtab **) NULL); + /* Call lookup_symtab, not lookup_partial_symtab, in case there are + no psymtabs (coff, xcoff, or some future change to blow away the + psymtabs once once symbols are read). */ + if (sym && SYMBOL_CLASS (sym) == LOC_BLOCK) + { + yylval.ssym.sym = sym; + yylval.ssym.is_a_field_of_this = is_a_field_of_this; + return BLOCKNAME; + } + else if (!sym) + { /* See if it's a file name. */ + struct symtab *symtab; + + symtab = lookup_symtab (tmp); + + if (symtab) + { + yylval.bval = BLOCKVECTOR_BLOCK (BLOCKVECTOR (symtab), STATIC_BLOCK); + return FILENAME; + } + } + + if (sym && SYMBOL_CLASS (sym) == LOC_TYPEDEF) + { +#if 1 + /* Despite the following flaw, we need to keep this code enabled. + Because we can get called from check_stub_method, if we don't + handle nested types then it screws many operations in any + program which uses nested types. */ + /* In "A::x", if x is a member function of A and there happens + to be a type (nested or not, since the stabs don't make that + distinction) named x, then this code incorrectly thinks we + are dealing with nested types rather than a member function. */ + + char *p; + char *namestart; + struct symbol *best_sym; + + /* Look ahead to detect nested types. This probably should be + done in the grammar, but trying seemed to introduce a lot + of shift/reduce and reduce/reduce conflicts. It's possible + that it could be done, though. Or perhaps a non-grammar, but + less ad hoc, approach would work well. */ + + /* Since we do not currently have any way of distinguishing + a nested type from a non-nested one (the stabs don't tell + us whether a type is nested), we just ignore the + containing type. */ + + p = lexptr; + best_sym = sym; + while (1) + { + /* Skip whitespace. */ + while (*p == ' ' || *p == '\t' || *p == '\n') + ++p; + if (*p == ':' && p[1] == ':') + { + /* Skip the `::'. */ + p += 2; + /* Skip whitespace. */ + while (*p == ' ' || *p == '\t' || *p == '\n') + ++p; + namestart = p; + while (*p == '_' || *p == '$' || (*p >= '0' && *p <= '9') + || (*p >= 'a' && *p <= 'z') + || (*p >= 'A' && *p <= 'Z')) + ++p; + if (p != namestart) + { + struct symbol *cur_sym; + /* As big as the whole rest of the expression, which is + at least big enough. */ + char *ncopy = alloca (strlen (tmp)+strlen (namestart)+3); + char *tmp1; + + tmp1 = ncopy; + memcpy (tmp1, tmp, strlen (tmp)); + tmp1 += strlen (tmp); + memcpy (tmp1, "::", 2); + tmp1 += 2; + memcpy (tmp1, namestart, p - namestart); + tmp1[p - namestart] = '\0'; + cur_sym = lookup_symbol (ncopy, expression_context_block, + VAR_NAMESPACE, (int *) NULL, + (struct symtab **) NULL); + if (cur_sym) + { + if (SYMBOL_CLASS (cur_sym) == LOC_TYPEDEF) + { + best_sym = cur_sym; + lexptr = p; + } + else + break; + } + else + break; + } + else + break; + } + else + break; + } + + yylval.tsym.type = SYMBOL_TYPE (best_sym); +#else /* not 0 */ + yylval.tsym.type = SYMBOL_TYPE (sym); +#endif /* not 0 */ + return TYPENAME; + } + if ((yylval.tsym.type = lookup_primitive_typename (tmp)) != 0) + return TYPENAME; + + /* Input names that aren't symbols but ARE valid hex numbers, + when the input radix permits them, can be names or numbers + depending on the parse. Note we support radixes > 16 here. */ + if (!sym && + ((tokstart[0] >= 'a' && tokstart[0] < 'a' + input_radix - 10) || + (tokstart[0] >= 'A' && tokstart[0] < 'A' + input_radix - 10))) + { + YYSTYPE newlval; /* Its value is ignored. */ + hextype = parse_number (tokstart, namelen, 0, &newlval); + if (hextype == INT) + { + yylval.ssym.sym = sym; + yylval.ssym.is_a_field_of_this = is_a_field_of_this; + return NAME_OR_INT; + } + } + + /* Any other kind of symbol */ + yylval.ssym.sym = sym; + yylval.ssym.is_a_field_of_this = is_a_field_of_this; + return NAME; + } +} + +void +yyerror (msg) + char *msg; +{ + error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr); +} diff --git a/gdb/c-lang.c b/gdb/c-lang.c new file mode 100644 index 0000000000..e7aa05574c --- /dev/null +++ b/gdb/c-lang.c @@ -0,0 +1,527 @@ +/* C language support routines for GDB, the GNU debugger. + Copyright 1992, 1993, 1994 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ + +#include "defs.h" +#include "symtab.h" +#include "gdbtypes.h" +#include "expression.h" +#include "parser-defs.h" +#include "language.h" +#include "c-lang.h" + +static void c_emit_char PARAMS ((int c, GDB_FILE *stream, int quoter)); + +/* Print the character C on STREAM as part of the contents of a literal + string whose delimiter is QUOTER. Note that that format for printing + characters and strings is language specific. */ + +static void +c_emit_char (c, stream, quoter) + register int c; + GDB_FILE *stream; + int quoter; +{ + c &= 0xFF; /* Avoid sign bit follies */ + + if (PRINT_LITERAL_FORM (c)) + { + if (c == '\\' || c == quoter) + { + fputs_filtered ("\\", stream); + } + fprintf_filtered (stream, "%c", c); + } + else + { + switch (c) + { + case '\n': + fputs_filtered ("\\n", stream); + break; + case '\b': + fputs_filtered ("\\b", stream); + break; + case '\t': + fputs_filtered ("\\t", stream); + break; + case '\f': + fputs_filtered ("\\f", stream); + break; + case '\r': + fputs_filtered ("\\r", stream); + break; + case '\033': + fputs_filtered ("\\e", stream); + break; + case '\007': + fputs_filtered ("\\a", stream); + break; + default: + fprintf_filtered (stream, "\\%.3o", (unsigned int) c); + break; + } + } +} + +void +c_printchar (c, stream) + int c; + GDB_FILE *stream; +{ + fputc_filtered ('\'', stream); + LA_EMIT_CHAR (c, stream, '\''); + fputc_filtered ('\'', stream); +} + +/* Print the character string STRING, printing at most LENGTH characters. + LENGTH is -1 if the string is nul terminated. Each character is WIDTH bytes + long. Printing stops early if the number hits print_max; repeat counts are + printed as appropriate. Print ellipses at the end if we had to stop before + printing LENGTH characters, or if FORCE_ELLIPSES. */ + +void +c_printstr (stream, string, length, width, force_ellipses) + GDB_FILE *stream; + char *string; + unsigned int length; + int width; + int force_ellipses; +{ + register unsigned int i; + unsigned int things_printed = 0; + int in_quotes = 0; + int need_comma = 0; + extern int inspect_it; + extern int repeat_count_threshold; + extern int print_max; + + /* If the string was not truncated due to `set print elements', and + the last byte of it is a null, we don't print that, in traditional C + style. */ + if (!force_ellipses + && length > 0 + && extract_unsigned_integer (string + (length - 1) * width, width) == '\0') + length--; + + if (length == 0) + { + fputs_filtered ("\"\"", stream); + return; + } + + for (i = 0; i < length && things_printed < print_max; ++i) + { + /* Position of the character we are examining + to see whether it is repeated. */ + unsigned int rep1; + /* Number of repetitions we have detected so far. */ + unsigned int reps; + unsigned long current_char; + + QUIT; + + if (need_comma) + { + fputs_filtered (", ", stream); + need_comma = 0; + } + + current_char = extract_unsigned_integer (string + i * width, width); + + rep1 = i + 1; + reps = 1; + while (rep1 < length + && extract_unsigned_integer (string + rep1 * width, width) + == current_char) + { + ++rep1; + ++reps; + } + + if (reps > repeat_count_threshold) + { + if (in_quotes) + { + if (inspect_it) + fputs_filtered ("\\\", ", stream); + else + fputs_filtered ("\", ", stream); + in_quotes = 0; + } + LA_PRINT_CHAR (current_char, stream); + fprintf_filtered (stream, " ", reps); + i = rep1 - 1; + things_printed += repeat_count_threshold; + need_comma = 1; + } + else + { + if (!in_quotes) + { + if (inspect_it) + fputs_filtered ("\\\"", stream); + else + fputs_filtered ("\"", stream); + in_quotes = 1; + } + LA_EMIT_CHAR (current_char, stream, '"'); + ++things_printed; + } + } + + /* Terminate the quotes if necessary. */ + if (in_quotes) + { + if (inspect_it) + fputs_filtered ("\\\"", stream); + else + fputs_filtered ("\"", stream); + } + + if (force_ellipses || i < length) + fputs_filtered ("...", stream); +} + +/* Create a fundamental C type using default reasonable for the current + target machine. + + Some object/debugging file formats (DWARF version 1, COFF, etc) do not + define fundamental types such as "int" or "double". Others (stabs or + DWARF version 2, etc) do define fundamental types. For the formats which + don't provide fundamental types, gdb can create such types using this + function. + + FIXME: Some compilers distinguish explicitly signed integral types + (signed short, signed int, signed long) from "regular" integral types + (short, int, long) in the debugging information. There is some dis- + agreement as to how useful this feature is. In particular, gcc does + not support this. Also, only some debugging formats allow the + distinction to be passed on to a debugger. For now, we always just + use "short", "int", or "long" as the type name, for both the implicit + and explicitly signed types. This also makes life easier for the + gdb test suite since we don't have to account for the differences + in output depending upon what the compiler and debugging format + support. We will probably have to re-examine the issue when gdb + starts taking it's fundamental type information directly from the + debugging information supplied by the compiler. fnf@cygnus.com */ + +struct type * +c_create_fundamental_type (objfile, typeid) + struct objfile *objfile; + int typeid; +{ + register struct type *type = NULL; + + switch (typeid) + { + default: + /* FIXME: For now, if we are asked to produce a type not in this + language, create the equivalent of a C integer type with the + name "". When all the dust settles from the type + reconstruction work, this should probably become an error. */ + type = init_type (TYPE_CODE_INT, + TARGET_INT_BIT / TARGET_CHAR_BIT, + 0, "", objfile); + warning ("internal error: no C/C++ fundamental type %d", typeid); + break; + case FT_VOID: + type = init_type (TYPE_CODE_VOID, + TARGET_CHAR_BIT / TARGET_CHAR_BIT, + 0, "void", objfile); + break; + case FT_BOOLEAN: + type = init_type (TYPE_CODE_BOOL, + TARGET_CHAR_BIT / TARGET_CHAR_BIT, + 0, "bool", objfile); + + break; + case FT_CHAR: + type = init_type (TYPE_CODE_INT, + TARGET_CHAR_BIT / TARGET_CHAR_BIT, + 0, "char", objfile); + TYPE_FLAGS (type) |= TYPE_FLAG_NOSIGN; + break; + case FT_SIGNED_CHAR: + type = init_type (TYPE_CODE_INT, + TARGET_CHAR_BIT / TARGET_CHAR_BIT, + 0, "signed char", objfile); + break; + case FT_UNSIGNED_CHAR: + type = init_type (TYPE_CODE_INT, + TARGET_CHAR_BIT / TARGET_CHAR_BIT, + TYPE_FLAG_UNSIGNED, "unsigned char", objfile); + break; + case FT_SHORT: + type = init_type (TYPE_CODE_INT, + TARGET_SHORT_BIT / TARGET_CHAR_BIT, + 0, "short", objfile); + break; + case FT_SIGNED_SHORT: + type = init_type (TYPE_CODE_INT, + TARGET_SHORT_BIT / TARGET_CHAR_BIT, + 0, "short", objfile); /* FIXME-fnf */ + break; + case FT_UNSIGNED_SHORT: + type = init_type (TYPE_CODE_INT, + TARGET_SHORT_BIT / TARGET_CHAR_BIT, + TYPE_FLAG_UNSIGNED, "unsigned short", objfile); + break; + case FT_INTEGER: + type = init_type (TYPE_CODE_INT, + TARGET_INT_BIT / TARGET_CHAR_BIT, + 0, "int", objfile); + break; + case FT_SIGNED_INTEGER: + type = init_type (TYPE_CODE_INT, + TARGET_INT_BIT / TARGET_CHAR_BIT, + 0, "int", objfile); /* FIXME -fnf */ + break; + case FT_UNSIGNED_INTEGER: + type = init_type (TYPE_CODE_INT, + TARGET_INT_BIT / TARGET_CHAR_BIT, + TYPE_FLAG_UNSIGNED, "unsigned int", objfile); + break; + case FT_LONG: + type = init_type (TYPE_CODE_INT, + TARGET_LONG_BIT / TARGET_CHAR_BIT, + 0, "long", objfile); + break; + case FT_SIGNED_LONG: + type = init_type (TYPE_CODE_INT, + TARGET_LONG_BIT / TARGET_CHAR_BIT, + 0, "long", objfile); /* FIXME -fnf */ + break; + case FT_UNSIGNED_LONG: + type = init_type (TYPE_CODE_INT, + TARGET_LONG_BIT / TARGET_CHAR_BIT, + TYPE_FLAG_UNSIGNED, "unsigned long", objfile); + break; + case FT_LONG_LONG: + type = init_type (TYPE_CODE_INT, + TARGET_LONG_LONG_BIT / TARGET_CHAR_BIT, + 0, "long long", objfile); + break; + case FT_SIGNED_LONG_LONG: + type = init_type (TYPE_CODE_INT, + TARGET_LONG_LONG_BIT / TARGET_CHAR_BIT, + 0, "signed long long", objfile); + break; + case FT_UNSIGNED_LONG_LONG: + type = init_type (TYPE_CODE_INT, + TARGET_LONG_LONG_BIT / TARGET_CHAR_BIT, + TYPE_FLAG_UNSIGNED, "unsigned long long", objfile); + break; + case FT_FLOAT: + type = init_type (TYPE_CODE_FLT, + TARGET_FLOAT_BIT / TARGET_CHAR_BIT, + 0, "float", objfile); + break; + case FT_DBL_PREC_FLOAT: + type = init_type (TYPE_CODE_FLT, + TARGET_DOUBLE_BIT / TARGET_CHAR_BIT, + 0, "double", objfile); + break; + case FT_EXT_PREC_FLOAT: + type = init_type (TYPE_CODE_FLT, + TARGET_LONG_DOUBLE_BIT / TARGET_CHAR_BIT, + 0, "long double", objfile); + break; + case FT_TEMPLATE_ARG: + type = init_type (TYPE_CODE_TEMPLATE_ARG, + 0, + 0, "