diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-10-15 04:26:06 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-10-15 04:26:06 +0000 |
commit | 5d76c8e66273baf43bfee19c3341e605d4a09ad8 (patch) | |
tree | 5db705f610608b293aed609977860b76ae5b272b /gdb | |
parent | 8c4731b588620a52771117864c29f4ab1b6bc892 (diff) | |
download | gdb-5d76c8e66273baf43bfee19c3341e605d4a09ad8.zip gdb-5d76c8e66273baf43bfee19c3341e605d4a09ad8.tar.gz gdb-5d76c8e66273baf43bfee19c3341e605d4a09ad8.tar.bz2 |
* 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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 19 | ||||
-rw-r--r-- | gdb/Makefile.in | 37 | ||||
-rw-r--r-- | gdb/config/i386/tm-i386m3.h | 7 | ||||
-rw-r--r-- | gdb/config/i386/tm-i386mk.h | 2 | ||||
-rw-r--r-- | gdb/config/mips/tm-mipsm3.h | 4 | ||||
-rw-r--r-- | gdb/config/ns32k/tm-ns32km3.h | 4 | ||||
-rw-r--r-- | gdb/config/ns32k/tm-umax.h | 6 | ||||
-rw-r--r-- | gdb/configure.in | 9 | ||||
-rw-r--r-- | gdb/convex-xdep.c | 3 | ||||
-rw-r--r-- | gdb/fork-child.c | 10 | ||||
-rw-r--r-- | gdb/m3-nat.c | 389 | ||||
-rw-r--r-- | gdb/remote-eb.c | 4 | ||||
-rw-r--r-- | gdb/remote-mon.c | 4 | ||||
-rw-r--r-- | gdb/remote-nindy.c | 8 | ||||
-rw-r--r-- | gdb/remote-st.c | 4 | ||||
-rw-r--r-- | gdb/remote-vx.c | 4 |
16 files changed, 301 insertions, 213 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 48e58a9..edbfefc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,22 @@ +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 diff --git a/gdb/Makefile.in b/gdb/Makefile.in index f83a6a9..95a1d0a 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -373,7 +373,7 @@ HFILES = buildsym.h call-cmds.h defs.h environ.h $(gdbcmd_h) \ config/m68k/tm-m68k.h config/pa/tm-hppa.h config/i960/tm-i960.h \ config/sparc/tm-sparc.h config/tm-sunos.h config/tm-sysv4.h \ config/m68k/xm-m68k.h config/sparc/xm-sparc.h config/xm-sysv4.h \ - config/vax/xm-vax.h config/nm-trash.h $(udiheaders) \ + config/vax/xm-vax.h config/nm-m3.h config/nm-trash.h $(udiheaders) \ 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 \ @@ -561,7 +561,6 @@ kdb: $(NTSSTART) $(OBS) $(NTSOBS) $(ADD_DEPS) $(CDEPS) # Put the proper machine-specific files first, so M-. on a machine # specific routine gets the one for the correct machine. -# The xyzzy stuff below deals with empty DEPFILES TAGS: etags `find $(srcdir)/config \( -name $(TM_FILE) \ -o -name $(XM_FILE) \ @@ -812,22 +811,27 @@ ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \ go32-xdep.c gould-pinsn.c gould-xdep.c h8300-tdep.c h8500-tdep.c \ hp300ux-nat.c hppa-pinsn.c hppa-tdep.c hppab-nat.c hppah-nat.c \ i386-pinsn.c i386-tdep.c i386b-nat.c i386mach-nat.c i386v-nat.c \ - i386aix-nat.c i386v4-nat.c i386lynx-nat.c i386ly-tdep.c i387-tdep.c \ + i386aix-nat.c i386m3-nat.c i386v4-nat.c i386lynx-nat.c i386ly-tdep.c \ + i387-tdep.c \ i960-pinsn.c i960-tdep.c \ - infptrace.c inftarg.c irix4-nat.c isi-xdep.c m68k-pinsn.c m68k-tdep.c \ + infptrace.c inftarg.c irix4-nat.c isi-xdep.c m3-nat.c \ + m68k-pinsn.c m68k-tdep.c \ m88k-nat.c m88k-pinsn.c m88k-tdep.c mips-nat.c mips-pinsn.c \ - mips-tdep.c news-xdep.c nindy-share/Onindy.c nindy-share/nindy.c \ + mips-tdep.c mipsm3-nat.c news-xdep.c \ + nindy-share/Onindy.c nindy-share/nindy.c \ nindy-share/ttyflush.c nindy-tdep.c \ - ns32k-pinsn.c osfsolib.c \ + ns32k-pinsn.c ns32km3-nat.c osfsolib.c \ paread.c procfs.c pyr-pinsn.c pyr-tdep.c pyr-xdep.c \ - remote-adapt.c remote-bug.c remote-eb.c remote-es.c remote-hms.c remote-mips.c \ + remote-adapt.c remote-bug.c remote-eb.c remote-es.c \ + remote-hms.c remote-mips.c \ remote-mm.c remote-mon.c remote-nindy.c remote-sim.c \ remote-st.c remote-utils.c dcache.c \ remote-udi.c remote-vx.c remote-z8k.c rs6000-nat.c rs6000-pinsn.c \ rs6000-tdep.c ser-go32.c ser-tcp.c sh-tdep.c solib.c sparc-nat.c \ sparc-pinsn.c sparc-tdep.c sun3-nat.c sun386-nat.c symm-tdep.c \ symm-nat.c tahoe-pinsn.c ultra3-nat.c ultra3-xdep.c umax-xdep.c \ - vax-pinsn.c vx-share/xdr_ld.c vx-share/xdr_ptrace.c vx-share/xdr_rdb.c \ + vax-pinsn.c \ + vx-share/xdr_ld.c vx-share/xdr_ptrace.c vx-share/xdr_rdb.c \ xcoffexec.c xcoffread.c xcoffsolib.c z8k-tdep.c ALLPARAM = config/a29k/nm-ultra3.h config/a29k/tm-a29k.h \ @@ -844,13 +848,15 @@ ALLPARAM = config/a29k/nm-ultra3.h config/a29k/tm-a29k.h \ config/i386/nm-i386v4.h config/i386/nm-linux.h \ config/i386/nm-sun386.h config/i386/nm-symmetry.h \ config/i386/tm-i386aix.h config/i386/tm-i386bsd.h \ - config/i386/tm-i386lynx.h config/i386/tm-i386nw.h \ + config/i386/tm-i386lynx.h config/i386/tm-i386m3.h \ + config/i386/tm-i386mk.hconfig/i386/tm-i386nw.h \ config/i386/tm-i386v.h \ config/i386/tm-i386v4.h config/i386/tm-linux.h \ config/i386/tm-sun386.h \ config/i386/tm-symmetry.h config/i386/xm-go32.h \ config/i386/xm-i386aix.h config/i386/xm-i386bsd.h \ config/i386/xm-i386lynx.h config/i386/xm-i386mach.h \ + config/i386/xm-i386m3.h config/i386/xm-i386mk.h \ config/i386/xm-i386sco.h config/i386/xm-i386v.h \ config/i386/xm-i386v32.h config/i386/xm-i386v4.h \ config/i386/xm-linux.h config/i386/xm-sun386.h \ @@ -879,13 +885,18 @@ ALLPARAM = config/a29k/nm-ultra3.h config/a29k/tm-a29k.h \ config/m88k/xm-delta88.h config/m88k/xm-m88k.h config/mips/nm-irix3.h \ config/mips/nm-irix4.h config/mips/nm-mips.h config/mips/nm-riscos.h \ config/mips/nm-news-mips.h config/mips/tm-bigmips.h \ - config/mips/tm-irix3.h config/mips/tm-mips.h config/mips/xm-irix3.h \ + config/mips/tm-irix3.h config/mips/tm-mips.h config/mips/tm-mipsm3.h \ + config/mips/xm-irix3.h \ config/mips/xm-irix4.h config/mips/xm-makeva.h config/mips/xm-mips.h \ + config/mips/xm-mipsm3.h \ config/mips/xm-riscos.h config/mips/xm-news-mips.h config/nm-sysv4.h \ config/none/nm-none.h config/none/tm-none.h config/none/xm-none.h \ - config/ns32k/nm-umax.h config/ns32k/tm-merlin.h \ - config/ns32k/tm-umax.h \ - config/ns32k/xm-merlin.h config/ns32k/xm-umax.h config/pa/nm-hppab.h \ + config/ns32k/nm-umax.h \ + config/ns32k/tm-ns32km3.h \ + config/ns32k/tm-merlin.h config/ns32k/tm-umax.h \ + config/ns32k/xm-ns32km3.h \ + config/ns32k/xm-merlin.h config/ns32k/xm-umax.h \ + config/pa/nm-hppab.h \ config/pa/nm-hppah.h config/pa/tm-hppab.h config/pa/tm-hppah.h \ config/pa/xm-hppab.h config/pa/xm-hppah.h config/pa/xm-pa.h \ config/pyr/tm-pyr.h \ diff --git a/gdb/config/i386/tm-i386m3.h b/gdb/config/i386/tm-i386m3.h index 0c70930..f05081c 100644 --- a/gdb/config/i386/tm-i386m3.h +++ b/gdb/config/i386/tm-i386m3.h @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Include common definitions for Mach3 systems */ -#include "os-mach3.h" +#include "nm-m3.h" /* Define offsets to access CPROC stack when it does not have * a kernel thread. @@ -57,15 +57,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define NAMES_HAVE_UNDERSCORE /* Sigh. There should be a file for i386 but no sysv stuff in it */ -#include "tm-i386v.h" +#include "i386/tm-i386v.h" /* I want to test this float info code. See comment in tm-i386v.h */ #undef FLOAT_INFO #define FLOAT_INFO { i386_mach3_float_info (); } -/* We use a.out format */ -#undef COFF_NO_LONG_FILE_NAMES - /* Address of end of stack space. * for MACH, see <machine/vmparam.h> * @@@ I don't know what is in the 5 ints... diff --git a/gdb/config/i386/tm-i386mk.h b/gdb/config/i386/tm-i386mk.h index 8035433..3bbb2e0 100644 --- a/gdb/config/i386/tm-i386mk.h +++ b/gdb/config/i386/tm-i386mk.h @@ -22,4 +22,4 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ */ #define MK67 1 -#include "tm-i386mach3.h" +#include "i386/tm-i386m3.h" diff --git a/gdb/config/mips/tm-mipsm3.h b/gdb/config/mips/tm-mipsm3.h index 27a03dc..8bad365 100644 --- a/gdb/config/mips/tm-mipsm3.h +++ b/gdb/config/mips/tm-mipsm3.h @@ -24,7 +24,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ */ /* Include common definitions for Mach3 systems */ -#include "os-mach3.h" +#include "nm-m3.h" /* Define offsets to access CPROC stack when it does not have * a kernel thread. @@ -54,7 +54,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Mach supports attach/detach */ #define ATTACH_DETACH 1 -#include "tm-mips.h" +#include "mips/tm-mips.h" /* * On Mach 3.0 this is the number of exec() system calls before diff --git a/gdb/config/ns32k/tm-ns32km3.h b/gdb/config/ns32k/tm-ns32km3.h index 8055f7a..e123759 100644 --- a/gdb/config/ns32k/tm-ns32km3.h +++ b/gdb/config/ns32k/tm-ns32km3.h @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Include common definitions for Mach3 systems */ -#include "os-mach3.h" +#include "nm-m3.h" /* Define offsets to access CPROC stack when it does not have * a kernel thread. @@ -61,4 +61,4 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ */ #define STACK_END_ADDR USRSTACK -#include "tm-umax.h" +#include "ns32k/tm-umax.h" diff --git a/gdb/config/ns32k/tm-umax.h b/gdb/config/ns32k/tm-umax.h index ded8252..6d3e1ca 100644 --- a/gdb/config/ns32k/tm-umax.h +++ b/gdb/config/ns32k/tm-umax.h @@ -17,6 +17,8 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* This is also included by tm-ns32km3.h, as well as being used by umax. */ + #define TARGET_BYTE_ORDER LITTLE_ENDIAN /* Need to get function ends by adding this to epilogue address from .bf @@ -50,7 +52,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Address of end of stack space. */ +#ifndef STACK_END_ADDR #define STACK_END_ADDR (0xfffff000) +#endif /* Stack grows downward. */ @@ -70,6 +74,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define ABOUT_TO_RETURN(pc) (read_memory_integer (pc, 1) == 0x12) +#ifndef INVALID_FLOAT #ifndef NaN #include <nan.h> #endif NaN @@ -80,6 +85,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ ((s == sizeof (float))? \ NaF (*(float *) p) : \ NaD (*(double *) p)) +#endif /* INVALID_FLOAT */ /* Say how long (ordinary) registers are. */ diff --git a/gdb/configure.in b/gdb/configure.in index d9dc3be..d31da3a 100644 --- a/gdb/configure.in +++ b/gdb/configure.in @@ -45,7 +45,10 @@ i[34]86-*-netbsd*) gdb_host=i386bsd ;; i[34]86-*-go32) gdb_host=go32 ;; i[34]86-*-linux) gdb_host=linux ;; i[34]86-*-lynx*) gdb_host=i386lynx ;; -i[34]86-*-mach) gdb_host=i386mach ;; +# Obsolete I suspect +# i[34]86-*-mach) gdb_host=i386mach ;; +i[34]86-*-mach*) gdb_host=i386m3 ;; +i[34]86-*-osf1mk*) gdb_host=i386mk ;; i[34]86-*-sco3.2v4*) gdb_host=i386sco4 ;; i[34]86-*-sco*) gdb_host=i386sco ;; i[34]86-*-solaris*) gdb_host=i386sol2 ;; @@ -86,6 +89,7 @@ mips-sgi-irix4*) gdb_host=irix4 ;; mips-sony-*) gdb_host=news-mips ;; mips-*-sysv*) gdb_host=riscos ;; mips-*-riscos*) gdb_host=riscos ;; +mips-*-mach*) gdb_host=mipsm3 ;; none-*-*) gdb_host=none ;; @@ -198,7 +202,9 @@ i[34]86-*-sco*) gdb_target=i386v ;; i[34]86-*-sysv*) gdb_target=i386v ;; i[34]86-*-linux*) gdb_target=linux ;; i[34]86-*-isc*) gdb_target=i386v ;; +i[34]86-*-mach*) gdb_target=i386m3 ;; i[34]86-*-netware*) gdb_target=i386nw ;; +i[34]86-*-osf1mk*) gdb_target=i386mk ;; i960-*-bout) gdb_target=vxworks960 ;; i960-*-coff) gdb_target=nindy960 ;; @@ -249,6 +255,7 @@ mips-sgi-*) gdb_target=irix3 ;; mips-sony-*) gdb_target=bigmips ;; mips-*-sysv*) gdb_target=bigmips ;; mips-*-riscos*) gdb_target=bigmips ;; +mips-*-mach*) gdb_target=mipsm3 ;; none-*-*) gdb_target=none ;; diff --git a/gdb/convex-xdep.c b/gdb/convex-xdep.c index ee70f9f..794a934 100644 --- a/gdb/convex-xdep.c +++ b/gdb/convex-xdep.c @@ -306,6 +306,9 @@ write_inferior_memory (memaddr, myaddr, len) and started up. We must do a pattach to grab it for debugging. Also, intercept the CONT command by altering its dispatch address. */ +/* FIXME: This used to be called from a macro CREATE_INFERIOR_HOOK. + But now init_trace_fun is in the same place. So re-write this to + use the init_trace_fun (making convex a debugging target). */ create_inferior_hook (pid) int pid; diff --git a/gdb/fork-child.c b/gdb/fork-child.c index d8cf886..e982864 100644 --- a/gdb/fork-child.c +++ b/gdb/fork-child.c @@ -244,13 +244,9 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun) init_thread_list(); -#ifdef CREATE_INFERIOR_HOOK - CREATE_INFERIOR_HOOK (pid); -#endif - -/* The process was started by the fork that created it, - but it will have stopped one instruction after execing the shell. - Here we must get it up to actual execution of the real program. */ + /* The process was started by the fork that created it, + but it will have stopped one instruction after execing the shell. + Here we must get it up to actual execution of the real program. */ inferior_pid = pid; /* Needed for wait_for_inferior stuff below */ diff --git a/gdb/m3-nat.c b/gdb/m3-nat.c index 747c7b3..66a21e5 100644 --- a/gdb/m3-nat.c +++ b/gdb/m3-nat.c @@ -67,14 +67,44 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <cthreads.h> -/* - * Mis-use the struct cproc busy field in the copy of - * the cproc in gdb's address space. - * - * This *can* be done otherwise, but I'm too lazy. - * (Don't tell anyone :-) - */ -#define CPROC_REVERSE_MAP(x) ((x)->busy) +/* This is what a cproc looks like. This is here partly because + cthread_internals.h is not a header we can just #include, partly with + an eye towards perhaps getting this to work with cross-debugging + someday. Best solution is if CMU publishes a real interface to this + stuff. */ +#define CPROC_NEXT_OFFSET 0 +#define CPROC_NEXT_SIZE (TARGET_PTR_BIT / HOST_CHAR_BIT) +#define CPROC_INCARNATION_OFFSET (CPROC_NEXT_OFFSET + CPROC_NEXT_SIZE) +#define CPROC_INCARNATION_SIZE (sizeof (cthread_t)) +#define CPROC_LIST_OFFSET (CPROC_INCARNATION_OFFSET + CPROC_INCARNATION_SIZE) +#define CPROC_LIST_SIZE (TARGET_PTR_BIT / HOST_CHAR_BIT) +#define CPROC_WAIT_OFFSET (CPROC_LIST_OFFSET + CPROC_LIST_SIZE) +#define CPROC_WAIT_SIZE (TARGET_PTR_BIT / HOST_CHAR_BIT) +#define CPROC_REPLY_OFFSET (CPROC_WAIT_OFFSET + CPROC_WAIT_SIZE) +#define CPROC_REPLY_SIZE (sizeof (mach_port_t)) +#define CPROC_CONTEXT_OFFSET (CPROC_REPLY_OFFSET + CPROC_REPLY_SIZE) +#define CPROC_CONTEXT_SIZE (TARGET_INT_BIT / HOST_CHAR_BIT) +#define CPROC_LOCK_OFFSET (CPROC_CONTEXT_OFFSET + CPROC_CONTEXT_SIZE) +#define CPROC_LOCK_SIZE (sizeof (spin_lock_t)) +#define CPROC_STATE_OFFSET (CPROC_LOCK_OFFSET + CPROC_LOCK_SIZE) +#define CPROC_STATE_SIZE (TARGET_INT_BIT / HOST_CHAR_BIT) +#define CPROC_WIRED_OFFSET (CPROC_STATE_OFFSET + CPROC_STATE_SIZE) +#define CPROC_WIRED_SIZE (sizeof (mach_port_t)) +#define CPROC_BUSY_OFFSET (CPROC_WIRED_OFFSET + CPROC_WIRED_SIZE) +#define CPROC_BUSY_SIZE (TARGET_INT_BIT / HOST_CHAR_BIT) +#define CPROC_MSG_OFFSET (CPROC_BUSY_OFFSET + CPROC_BUSY_SIZE) +#define CPROC_MSG_SIZE (sizeof (mach_msg_header_t)) +#define CPROC_BASE_OFFSET (CPROC_MSG_OFFSET + CPROC_MSG_SIZE) +#define CPROC_BASE_SIZE (TARGET_INT_BIT / HOST_CHAR_BIT) +#define CPROC_SIZE_OFFSET (CPROC_BASE_OFFSET + CPROC_BASE_SIZE) +#define CPROC_SIZE_SIZE (TARGET_INT_BIT / HOST_CHAR_BIT) +#define CPROC_SIZE (CPROC_SIZE_OFFSET + CPROC_SIZE_SIZE) + +/* Values for the state field in the cproc. */ +#define CPROC_RUNNING 0 +#define CPROC_SWITCHING 1 +#define CPROC_BLOCKED 2 +#define CPROC_CONDWAIT 4 /* For cproc and kernel thread mapping */ typedef struct gdb_thread { @@ -82,9 +112,23 @@ typedef struct gdb_thread { CORE_ADDR sp; CORE_ADDR pc; CORE_ADDR fp; - cproc_t cproc; boolean_t in_emulator; int slotid; + + /* This is for the mthreads list. It points to the cproc list. + Perhaps the two lists should be merged (or perhaps it was a mistake + to make them both use a struct gdb_thread). */ + struct gdb_thread *cproc; + + /* These are for the cproc list, which is linked through the next field + of the struct gdb_thread. */ + char raw_cproc[CPROC_SIZE]; + /* The cthread which is pointed to by the incarnation field from the + cproc. This points to the copy we've read into GDB. */ + cthread_t cthread; + /* Point back to the mthreads list. */ + int reverse_map; + struct gdb_thread *next; } *gdb_thread_t; /* @@ -136,7 +180,7 @@ char *fmt; int a,b,c; { if (debug_level) - message (fmt, a, b, c); + warning (fmt, a, b, c); } /* This is in libmach.a */ @@ -253,7 +297,7 @@ port_chain_insert (list, name, type) { if (! MACH_PORT_VALID (mid_server)) { - message ("Machid server port invalid, can not map port 0x%x to MID", + warning ("Machid server port invalid, can not map port 0x%x to MID", name); mid = name; } @@ -263,7 +307,7 @@ port_chain_insert (list, name, type) if (ret != KERN_SUCCESS) { - message ("Can not map name (0x%x) to MID with machid", name); + warning ("Can not map name (0x%x) to MID with machid", name); mid = name; } } @@ -342,7 +386,7 @@ int type; if (! MACH_PORT_VALID (mid_server)) { - message ("Machid server port invalid, can not map port 0x%x to mid", + warning ("Machid server port invalid, can not map port 0x%x to mid", name); return -1; } @@ -355,7 +399,7 @@ int type; if (ret != KERN_SUCCESS) { - message ("Can not map name (0x%x) to mid with machid", name); + warning ("Can not map name (0x%x) to mid with machid", name); return -1; } return mid; @@ -394,7 +438,7 @@ setup_single_step (thread, start_step) { if (MACH_PORT_VALID (singlestepped_thread_port)) { - message ("Singlestepped_thread_port (0x%x) is still valid?", + warning ("Singlestepped_thread_port (0x%x) is still valid?", singlestepped_thread_port); singlestepped_thread_port = MACH_PORT_NULL; } @@ -941,7 +985,7 @@ select_thread (task, thread_id, flag) ret = task_threads (task, &thread_list, &thread_count); if (ret != KERN_SUCCESS) { - message ("Can not select a thread from a dead task"); + warning ("Can not select a thread from a dead task"); kill_inferior (); return KERN_FAILURE; } @@ -952,7 +996,7 @@ select_thread (task, thread_id, flag) * exists as a container for memory and ports. */ registers_changed (); - message ("Task %d has no threads", + warning ("Task %d has no threads", map_port_name_to_mid (task, MACH_TYPE_TASK)); current_thread = MACH_PORT_NULL; (void) vm_deallocate(mach_task_self(), @@ -1055,7 +1099,7 @@ switch_to_thread (new_thread) mid = map_port_name_to_mid (new_thread, MACH_TYPE_THREAD); if (mid == -1) - message ("Can't map thread name 0x%x to mid", new_thread); + warning ("Can't map thread name 0x%x to mid", new_thread); else if (select_thread (inferior_task, mid, 1) != KERN_SUCCESS) { if (current_thread) @@ -1224,7 +1268,7 @@ mach_really_wait (w) (WIFEXITED(*w) && WEXITSTATUS(*w) > 0377)) { WSETEXIT(*w, 0); - message ("Using exit value 0 for terminated task"); + warning ("Using exit value 0 for terminated task"); } else if (!WIFEXITED(*w)) { @@ -1232,11 +1276,11 @@ mach_really_wait (w) /* Signals cause problems. Warn the user. */ if (sig != SIGKILL) /* Bad luck if garbage matches this */ - message ("The terminating signal stuff may be nonsense"); + warning ("The terminating signal stuff may be nonsense"); else if (sig > NSIG) { WSETEXIT(*w, 0); - message ("Using exit value 0 for terminated task"); + warning ("Using exit value 0 for terminated task"); } } return inferior_pid; @@ -1293,7 +1337,7 @@ mach3_quit () if (ret != KERN_SUCCESS) { - message ("Could not suspend task for interrupt: %s", + warning ("Could not suspend task for interrupt: %s", mach_error_string (ret)); mach_really_waiting = 0; return; @@ -1306,7 +1350,7 @@ mach3_quit () mid = map_port_name_to_mid (current_thread, MACH_TYPE_THREAD); if (mid == -1) { - message ("Selecting first existing kernel thread"); + warning ("Selecting first existing kernel thread"); mid = 0; } @@ -1349,7 +1393,7 @@ gdb_message_server (InP) case GDB_MESSAGE_ID_STOP: ret = task_suspend (inferior_task); if (ret != KERN_SUCCESS) - message ("Could not suspend task for stop message: %s", + warning ("Could not suspend task for stop message: %s", mach_error_string (ret)); /* QUIT in mach_really_wait() loop. */ @@ -1357,7 +1401,7 @@ gdb_message_server (InP) break; default: - message ("Invalid message id %d received, ignored.", + warning ("Invalid message id %d received, ignored.", InP->msgh_id); break; } @@ -1646,7 +1690,7 @@ catch_exception_raise (port, thread, task, exception, code, subcode) if (select_thread (inferior_task, mid, 0) != KERN_SUCCESS) error ("Could not select thread %d causing exception", mid); else - message ("Gdb selected thread %d", mid); + warning ("Gdb selected thread %d", mid); } /* If we receive an exception that is not breakpoint @@ -1656,7 +1700,7 @@ catch_exception_raise (port, thread, task, exception, code, subcode) if (MACH_PORT_VALID (singlestepped_thread_port)) { if (stop_exception != EXC_BREAKPOINT) - message ("Single step interrupted by exception"); + warning ("Single step interrupted by exception"); else if (port == singlestepped_thread_port) { /* Single step exception occurred, remove trace bit @@ -1669,7 +1713,7 @@ catch_exception_raise (port, thread, task, exception, code, subcode) resume_all_threads (0); } else - message ("Breakpoint while single stepping?"); + warning ("Breakpoint while single stepping?"); discard_single_step (current_thread); } @@ -1746,7 +1790,7 @@ mach3_read_inferior (addr, myaddr, length) screw it. Eamonn seems to like this, so I enable it if OSF is defined... */ - message ("[read inferior %x failed: %s]", + warning ("[read inferior %x failed: %s]", addr, mach_error_string (ret)); errno = 0; #endif @@ -1852,7 +1896,7 @@ mach3_write_inferior (addr, myaddr, length) /* Check for holes in memory */ if (old_address != region_address) { - message ("No memory at 0x%x. Nothing written", + warning ("No memory at 0x%x. Nothing written", old_address); ret = KERN_SUCCESS; length = 0; @@ -1861,7 +1905,7 @@ mach3_write_inferior (addr, myaddr, length) if (!(max_protection & VM_PROT_WRITE)) { - message ("Memory at address 0x%x is unwritable. Nothing written", + warning ("Memory at address 0x%x is unwritable. Nothing written", old_address); ret = KERN_SUCCESS; length = 0; @@ -1940,7 +1984,7 @@ mach3_write_inferior (addr, myaddr, length) if (ret != KERN_SUCCESS) { - message ("%s %s", errstr, mach_error_string (ret)); + warning ("%s %s", errstr, mach_error_string (ret)); return 0; } @@ -1982,22 +2026,21 @@ int state; } static char * -translate_cstate(state) -int state; +translate_cstate (state) + int state; { - switch (state) { - case CPROC_RUNNING: return "R"; - case CPROC_SWITCHING: return "S"; - case CPROC_BLOCKED: return "B"; - case CPROC_CONDWAIT: return "C"; - case CPROC_CONDWAIT|CPROC_SWITCHING: - return "CS"; - default: return "?"; - } + switch (state) + { + case CPROC_RUNNING: return "R"; + case CPROC_SWITCHING: return "S"; + case CPROC_BLOCKED: return "B"; + case CPROC_CONDWAIT: return "C"; + case CPROC_CONDWAIT|CPROC_SWITCHING: return "CS"; + default: return "?"; + } } -/* type == MACH_MSG_TYPE_COPY_SEND || type == MACH_MSG_TYPE_MAKE_SEND - */ +/* type == MACH_MSG_TYPE_COPY_SEND || type == MACH_MSG_TYPE_MAKE_SEND */ mach_port_t /* no mach_port_name_t found in include files. */ map_inferior_port_name (inferior_name, type) @@ -2041,26 +2084,26 @@ static char buf[7]; static char * get_thread_name (one_cproc, id) - cproc_t one_cproc; + gdb_thread_t one_cproc; int id; { if (one_cproc) - if (one_cproc->incarnation == NULL) + if (one_cproc->cthread == NULL) { /* cproc not mapped to any cthread */ sprintf(buf, "_C%d", id); } - else if (! one_cproc->incarnation->name) + else if (! one_cproc->cthread->name) { /* cproc and cthread, but no name */ sprintf(buf, "_t%d", id); } else - return (one_cproc->incarnation->name); + return (one_cproc->cthread->name); else { if (id < 0) - message ("Inconsistency in thread name id %d", id); + warning ("Inconsistency in thread name id %d", id); /* Kernel thread without cproc */ sprintf(buf, "_K%d", id); @@ -2083,7 +2126,7 @@ fetch_thread_info (task, mthreads_out) ret = task_threads (task, &th_table, &th_count); if (ret != KERN_SUCCESS) { - message ("Error getting inferior's thread list:%s", + warning ("Error getting inferior's thread list:%s", mach_error_string(ret)); kill_inferior (); return -1; @@ -2130,7 +2173,7 @@ fetch_thread_info (task, mthreads_out) (th_count * sizeof(mach_port_t))); if (ret != KERN_SUCCESS) { - message ("Error trying to deallocate thread list : %s", + warning ("Error trying to deallocate thread list : %s", mach_error_string (ret)); } @@ -2157,7 +2200,7 @@ fetch_usp_from_emulator_stack (sp) &stack_pointer, sizeof (CORE_ADDR)) != sizeof (CORE_ADDR)) { - message ("Can't read user sp from emulator stack address 0x%x", sp); + warning ("Can't read user sp from emulator stack address 0x%x", sp); return 0; } @@ -2211,7 +2254,7 @@ have_emulator_p (task) static boolean_t informed = FALSE; if (!informed) { - message("Emulation vector address 0x08%x outside emulator space", + warning("Emulation vector address 0x08%x outside emulator space", entry); informed = TRUE; } @@ -2220,41 +2263,41 @@ have_emulator_p (task) return FALSE; } -/* - * Map cprocs to kernel threads and vice versa. - * - * For reverse mapping the code mis-uses one struct cproc field, - * see "os-mach3.h" and code here. - * - */ +/* Map cprocs to kernel threads and vice versa. */ void map_cprocs_to_kernel_threads (cprocs, mthreads, thread_count) - cproc_t cprocs; - gdb_thread_t mthreads; + gdb_thread_t cprocs; + gdb_thread_t mthreads; int thread_count; { int index; - cproc_t scan; - boolean_t all_mapped = TRUE; + gdb_thread_t scan; + boolean_t all_mapped = TRUE; - for (scan = cprocs; scan; scan = scan->list) + for (scan = cprocs; scan; scan = scan->next) { /* Default to: no kernel thread for this cproc */ - CPROC_REVERSE_MAP (scan) = -1; + scan->reverse_map = -1; /* Check if the cproc is found by its stack */ for (index = 0; index < thread_count; index++) { - if ((mthreads + index)->sp > scan->stack_base && - (mthreads + index)->sp <= scan->stack_base + scan->stack_size) + LONGEST stack_base = + extract_signed_integer (scan.raw_cproc + CPROC_BASE_OFFSET, + CPROC_BASE_SIZE); + LONGEST stack_size = + extract_signed_integer (scan.raw_cproc + CPROC_SIZE_OFFSET, + CPROC_SIZE_SIZE); + if ((mthreads + index)->sp > stack_base && + (mthreads + index)->sp <= stack_base + stack_size) { (mthreads + index)->cproc = scan; - CPROC_REVERSE_MAP (scan) = index; + scan->reverse_map = index; break; } } - all_mapped &= (CPROC_REVERSE_MAP(scan) != -1); + all_mapped &= (scan->reverse_map != -1); } /* Check for threads that are currently in the emulator. @@ -2282,7 +2325,7 @@ map_cprocs_to_kernel_threads (cprocs, mthreads, thread_count) gdb_thread_t mthread = (mthreads+index); emul_sp = mthread->sp; - if (! mthread->cproc && + if (mthread->cproc == NULL && EMULATOR_BASE <= emul_sp && emul_sp <= EMULATOR_END) { mthread->in_emulator = emulator_present; @@ -2298,19 +2341,19 @@ map_cprocs_to_kernel_threads (cprocs, mthreads, thread_count) /* Try to match this stack pointer to the cprocs that * don't yet have a kernel thread. */ - for (scan = cprocs; scan; scan = scan->list) + for (scan = cprocs; scan; scan = scan->next) { /* Check is this unmapped CPROC stack contains * the user stack pointer saved in the * emulator. */ - if (CPROC_REVERSE_MAP (scan) == -1 && + if (scan->reverse_map == -1 && usp > scan->stack_base && usp <= scan->stack_base + scan->stack_size) { mthread->cproc = scan; - CPROC_REVERSE_MAP (scan) = index; + scan->reverse_map = index; break; } } @@ -2380,10 +2423,13 @@ lookup_address_of_variable (name) return symaddr; } -static cproc_t +static gdb_thread_t get_cprocs() { - cproc_t their_cprocs, cproc_head, cproc_copy; + gdb_thread_t cproc_head; + gdb_thread_t cproc_copy; + CORE_ADDR their_cprocs; + char *buf[TARGET_PTR_BIT / HOST_CHAR_BIT]; char *name; cthread_t cthread; CORE_ADDR symaddr; @@ -2391,65 +2437,77 @@ get_cprocs() symaddr = lookup_address_of_variable ("cproc_list"); if (! symaddr) - { /* cproc_list is not in a file compiled with debugging + { + /* cproc_list is not in a file compiled with debugging symbols, but don't give up yet */ - + symaddr = lookup_address_of_variable ("cprocs"); if (symaddr) { static int informed = 0; - if (!informed) { - informed++; - message ("Your program is loaded with an old threads library."); - message ("GDB does not know the old form of threads"); - message ("so things may not work."); - } + if (!informed) + { + informed++; + warning ("Your program is loaded with an old threads library."); + warning ("GDB does not know the old form of threads"); + warning ("so things may not work."); + } } } /* Stripped or no -lthreads loaded or "cproc_list" is in wrong segment. */ if (! symaddr) - return NO_CPROC; + return NULL; /* Get the address of the first cproc in the task */ - if (!mach3_read_inferior(symaddr, - &their_cprocs, - sizeof(cproc_t))) - error("Can't read cproc master list at address (0x%x).", symaddr); + if (!mach3_read_inferior (symaddr, + buf, + TARGET_PTR_BIT / HOST_CHAR_BIT)) + error ("Can't read cproc master list at address (0x%x).", symaddr); + their_cprocs = extract_address (buf, TARGET_PTR_BIT / HOST_CHAR_BIT); /* Scan the CPROCs in the task. CPROCs are chained with LIST field, not NEXT field, which chains mutexes, condition variables and queues */ - - cproc_head = NO_CPROC; - while (their_cprocs != NO_CPROC) + cproc_head = NULL; + + while (their_cprocs != (CORE_ADDR)0) { - cproc_copy = (cproc_t) obstack_alloc(cproc_obstack, - sizeof(struct cproc)); - - if (!mach3_read_inferior(their_cprocs, - cproc_copy, - sizeof(struct cproc))) + CORE_ADDR cproc_copy_incarnation; + cproc_copy = (gdb_thread_t) obstack_alloc (cproc_obstack, + sizeof (struct gdb_thread)); + + if (!mach3_read_inferior (their_cprocs, + &cproc_copy.raw_cproc[0], + CPROC_SIZE)) error("Can't read next cproc at 0x%x.", their_cprocs); - - their_cprocs = cproc_copy->list; - - if (cproc_copy->incarnation != NULL) + cproc_copy = extract_address (buf, TARGET_PTR_BIT / HOST_CHAR_BIT); + + their_cprocs = + extract_address (cproc_copy.raw_cproc + CPROC_LIST_OFFSET, + CPROC_LIST_SIZE); + cproc_copy_incarnation = + extract_address (cproc_copy.raw_cproc + CPROC_INCARNATION_OFFSET, + CPROC_INCARNATION_SIZE); + + if (cproc_copy_incarnation == (CORE_ADDR)0) + cproc_copy->cthread = NULL; + else { /* This CPROC has an attached CTHREAD. Get its name */ cthread = (cthread_t)obstack_alloc (cproc_obstack, sizeof(struct cthread)); - - if (!mach3_read_inferior(cproc_copy->incarnation, + + if (!mach3_read_inferior (cproc_copy_incarnation, cthread, sizeof(struct cthread))) error("Can't read next thread at 0x%x.", - cproc_copy->incarnation); - - cproc_copy->incarnation = cthread; - + cproc_copy_incarnation); + + cproc_copy->cthread = cthread; + if (cthread->name) { name = (char *) obstack_alloc (cproc_obstack, MAX_NAME_LEN); @@ -2460,12 +2518,12 @@ get_cprocs() cthread->name = name; } } - + /* insert in front */ - cproc_copy->list = cproc_head; - cproc_head = cproc_copy; + cproc_copy->next = cproc_head; + cproc_head = cproc_copy; } - return(cproc_head); + return cproc_head; } #ifndef FETCH_CPROC_STATE @@ -2489,7 +2547,9 @@ mach3_cproc_state (mthread) if (! mthread || !mthread->cproc || !mthread->cproc->context) return -1; - context = mthread->cproc->context; + context = extract_signed_integer + (mthread->cproc->raw_cproc + CPROC_CONTEXT_OFFSET, + CPROC_CONTEXT_SIZE); mthread->sp = context + MACHINE_CPROC_SP_OFFSET; @@ -2497,7 +2557,7 @@ mach3_cproc_state (mthread) &mthread->pc, sizeof (CORE_ADDR)) != sizeof (CORE_ADDR)) { - message ("Can't read cproc pc from inferior"); + warning ("Can't read cproc pc from inferior"); return -1; } @@ -2505,7 +2565,7 @@ mach3_cproc_state (mthread) &mthread->fp, sizeof (CORE_ADDR)) != sizeof (CORE_ADDR)) { - message ("Can't read cproc fp from inferior"); + warning ("Can't read cproc fp from inferior"); return -1; } @@ -2519,8 +2579,8 @@ thread_list_command() { thread_basic_info_data_t ths; int thread_count; - cproc_t cprocs; - cproc_t scan; + gdb_thread_t cprocs; + gdb_thread_t scan; int index; char *name; char selected; @@ -2555,7 +2615,7 @@ thread_list_command() map_cprocs_to_kernel_threads (cprocs, their_threads, thread_count); - for (scan = cprocs; scan; scan = scan->list) + for (scan = cprocs; scan; scan = scan->next) { int mid; char buf[10]; @@ -2564,10 +2624,12 @@ thread_list_command() selected = ' '; /* a wired cproc? */ - wired = scan->wired ? "wired" : ""; - - if (CPROC_REVERSE_MAP(scan) != -1) - kthread = (their_threads + CPROC_REVERSE_MAP(scan)); + wired = (extract_address (scan->raw_cproc + CPROC_WIRED_OFFSET, + CPROC_WIRED_SIZE) + ? "wired" : ""); + + if (scan->reverse_map != -1) + kthread = (their_threads + scan->reverse_map); else kthread = NULL; @@ -2586,7 +2648,7 @@ thread_list_command() if (ret != KERN_SUCCESS) { - message ("Unable to get basic info on thread %d : %s", + warning ("Unable to get basic info on thread %d : %s", mid, mach_error_string (ret)); continue; @@ -2611,6 +2673,7 @@ thread_list_command() if (ths.flags & TH_FLAGS_IDLE) strcat (buf, "I"); + /* FIXME: May run afloul of arbitrary limit in printf_filtered. */ printf_filtered (TL_FORMAT, slot, mid, @@ -2638,6 +2701,7 @@ thread_list_command() continue; /* EMcM */ #endif + /* FIXME: May run afloul of arbitrary limit in printf_filtered. */ printf_filtered (TL_FORMAT, "-", -neworder, /* Pseudo MID */ @@ -2683,7 +2747,7 @@ thread_list_command() if (ret != KERN_SUCCESS) { - message ("Unable to get basic info on thread %d : %s", + warning ("Unable to get basic info on thread %d : %s", mid, mach_error_string (ret)); continue; @@ -2709,6 +2773,7 @@ thread_list_command() if (ths.flags & TH_FLAGS_IDLE) strcat (buf, "I"); + /* FIXME: May run afloul of arbitrary limit in printf_filtered. */ printf_filtered (TL_FORMAT, slot, mid, @@ -2779,7 +2844,7 @@ boolean_t set; if (! MACH_PORT_VALID (thread)) { - message ("thread_trace: invalid thread"); + warning ("thread_trace: invalid thread"); return; } @@ -2828,7 +2893,7 @@ flush_inferior_icache(pc, amount) MATTR_CACHE, &flush); if (ret != KERN_SUCCESS) - message ("Error flushing inferior's cache : %s", + warning ("Error flushing inferior's cache : %s", mach_error_string (ret)); } #endif FLUSH_INFERIOR_CACHE @@ -2848,7 +2913,7 @@ suspend_all_threads (from_tty) ret = task_threads (inferior_task, &thread_list, &thread_count); if (ret != KERN_SUCCESS) { - message ("Could not suspend inferior threads."); + warning ("Could not suspend inferior threads."); kill_inferior (); return_to_top_level (); } @@ -2863,7 +2928,7 @@ suspend_all_threads (from_tty) ret = thread_suspend(thread_list[ index ]); if (ret != KERN_SUCCESS) - message ("Error trying to suspend thread %d : %s", + warning ("Error trying to suspend thread %d : %s", mid, mach_error_string (ret)); if (from_tty) @@ -2875,7 +2940,7 @@ suspend_all_threads (from_tty) &infoCnt); CHK ("suspend can't get thread info", ret); - message ("Thread %d suspend count is %d", + warning ("Thread %d suspend count is %d", mid, th_info.suspend_count); } } @@ -2924,7 +2989,7 @@ thread_suspend_command (args, from_tty) ret = thread_suspend (current_thread); if (ret != KERN_SUCCESS) - message ("thread_suspend failed : %s", + warning ("thread_suspend failed : %s", mach_error_string (ret)); infoCnt = THREAD_BASIC_INFO_COUNT; @@ -2934,7 +2999,7 @@ thread_suspend_command (args, from_tty) &infoCnt); CHK ("suspend can't get thread info", ret); - message ("Thread %d suspend count is %d", mid, th_info.suspend_count); + warning ("Thread %d suspend count is %d", mid, th_info.suspend_count); current_thread = saved_thread; } @@ -2971,17 +3036,17 @@ resume_all_threads (from_tty) if (! th_info.suspend_count) { if (mid != -1 && from_tty) - message ("Thread %d is not suspended", mid); + warning ("Thread %d is not suspended", mid); continue; } ret = thread_resume (thread_list[ index ]); if (ret != KERN_SUCCESS) - message ("Error trying to resume thread %d : %s", + warning ("Error trying to resume thread %d : %s", mid, mach_error_string (ret)); else if (mid != -1 && from_tty) - message ("Thread %d suspend count is %d", + warning ("Thread %d suspend count is %d", mid, --th_info.suspend_count); } @@ -3035,18 +3100,18 @@ thread_resume_command (args, from_tty) if (! th_info.suspend_count) { - message ("Thread %d is not suspended", mid); + warning ("Thread %d is not suspended", mid); goto out; } ret = thread_resume (current_thread); if (ret != KERN_SUCCESS) - message ("thread_resume failed : %s", + warning ("thread_resume failed : %s", mach_error_string (ret)); else { th_info.suspend_count--; - message ("Thread %d suspend count is %d", mid, th_info.suspend_count); + warning ("Thread %d suspend count is %d", mid, th_info.suspend_count); } out: @@ -3094,7 +3159,7 @@ thread_kill_command (args, from_tty) CHK ("Thread could not be terminated", ret); if (select_thread (inferior_task, 0, 1) != KERN_SUCCESS) - message ("Last thread was killed, use \"kill\" command to kill task"); + warning ("Last thread was killed, use \"kill\" command to kill task"); } else for (index = 0; index < thread_count; index++) @@ -3111,7 +3176,7 @@ thread_kill_command (args, from_tty) (thread_count * sizeof(mach_port_t))); CHK ("Error trying to deallocate thread list", ret); - message ("Thread %d killed", mid); + warning ("Thread %d killed", mid); } @@ -3151,14 +3216,14 @@ task_resume_command (args, from_tty) if (ta_info.suspend_count == 1) { - message ("Inferior task %d is no longer suspended", mid); + warning ("Inferior task %d is no longer suspended", mid); must_suspend_thread = 1; /* @@ This is not complete: Registers change all the time when not suspended! */ registers_changed (); } else - message ("Inferior task %d suspend count is now %d", + warning ("Inferior task %d suspend count is now %d", mid, ta_info.suspend_count-1); } @@ -3190,7 +3255,7 @@ task_suspend_command (args, from_tty) &infoCnt); CHK ("task_suspend_command: task_info failed", ret); - message ("Inferior task %d suspend count is now %d", + warning ("Inferior task %d suspend count is now %d", mid, ta_info.suspend_count); } @@ -3507,7 +3572,7 @@ gdb_register_port (name, port) if (! MACH_PORT_VALID (port) || !name || !*name) { - message ("Invalid registration request"); + warning ("Invalid registration request"); return; } @@ -3665,29 +3730,31 @@ do_mach_notify_dead_name (notify, name) switch (element->type) { case MACH_TYPE_THREAD: + target_terminal_ours_for_output (); if (name == current_thread) { - message ("\nCurrent thread %d died", element->mid); + printf_filtered ("\nCurrent thread %d died", element->mid); current_thread = MACH_PORT_NULL; } else - message ("\nThread %d died", element->mid); + printf_filtered ("\nThread %d died", element->mid); break; case MACH_TYPE_TASK: + target_terminal_ours_for_output (); if (name != inferior_task) - message ("Task %d died, but it was not the selected task", + printf_filtered ("Task %d died, but it was not the selected task", element->mid); else { - message ("Current task %d died", element->mid); + printf_filtered ("Current task %d died", element->mid); mach_port_destroy (mach_task_self(), name); inferior_task = MACH_PORT_NULL; if (notify_chain) - message("There were still unreceived dead_name_notifications???"); + warning ("There were still unreceived dead_name_notifications???"); /* Destroy the old notifications */ setup_notify_port (0); @@ -3709,7 +3776,7 @@ do_mach_notify_msg_accepted (notify, name) mach_port_t notify; mach_port_t name; { - message ("do_mach_notify_msg_accepted : notify %x, name %x", + warning ("do_mach_notify_msg_accepted : notify %x, name %x", notify, name); return KERN_SUCCESS; } @@ -3719,7 +3786,7 @@ do_mach_notify_no_senders (notify, mscount) mach_port_t notify; mach_port_mscount_t mscount; { - message ("do_mach_notify_no_senders : notify %x, mscount %x", + warning ("do_mach_notify_no_senders : notify %x, mscount %x", notify, mscount); return KERN_SUCCESS; } @@ -3729,7 +3796,7 @@ do_mach_notify_port_deleted (notify, name) mach_port_t notify; mach_port_t name; { - message ("do_mach_notify_port_deleted : notify %x, name %x", + warning ("do_mach_notify_port_deleted : notify %x, name %x", notify, name); return KERN_SUCCESS; } @@ -3739,7 +3806,7 @@ do_mach_notify_port_destroyed (notify, rights) mach_port_t notify; mach_port_t rights; { - message ("do_mach_notify_port_destroyed : notify %x, rights %x", + warning ("do_mach_notify_port_destroyed : notify %x, rights %x", notify, rights); return KERN_SUCCESS; } @@ -3750,7 +3817,7 @@ do_mach_notify_send_once (notify) { #ifdef DUMP_SYSCALL /* MANY of these are generated. */ - message ("do_mach_notify_send_once : notify %x", + warning ("do_mach_notify_send_once : notify %x", notify); #endif return KERN_SUCCESS; @@ -3882,7 +3949,7 @@ m3_resume (pid, step, signal) ret = task_resume (inferior_task); if (ret == KERN_FAILURE) - message ("Task was not suspended"); + warning ("Task was not suspended"); else CHK ("Resuming task", ret); @@ -4037,7 +4104,7 @@ deallocate_inferior_ports () ret = task_threads (inferior_task, &thread_list, &thread_count); if (ret != KERN_SUCCESS) { - message ("deallocate_inferior_ports: task_threads", + warning ("deallocate_inferior_ports: task_threads", mach_error_string(ret)); return; } @@ -4107,7 +4174,7 @@ m3_do_detach (signal) setup_notify_port (0); if (remove_breakpoints ()) - message ("Could not remove breakpoints when detaching"); + warning ("Could not remove breakpoints when detaching"); if (signal && inferior_pid > 0) kill (inferior_pid, signal); @@ -4435,9 +4502,9 @@ _initialize_m3_nat () { mid_server = MACH_PORT_NULL; - message ("initialize machid: netname_lookup_up(MachID) : %s", + warning ("initialize machid: netname_lookup_up(MachID) : %s", mach_error_string(ret)); - message ("Some (most?) features disabled..."); + warning ("Some (most?) features disabled..."); } mid_auth = mach_privileged_host_port(); @@ -4462,7 +4529,7 @@ _initialize_m3_nat () MACH_PORT_RIGHT_RECEIVE, &our_message_port); if (ret != KERN_SUCCESS) - message ("Creating message port %s", mach_error_string (ret)); + warning ("Creating message port %s", mach_error_string (ret)); else { char buf[ MAX_NAME_LEN ]; @@ -4470,7 +4537,7 @@ _initialize_m3_nat () our_message_port, inferior_wait_port_set); if (ret != KERN_SUCCESS) - message ("message move member %s", mach_error_string (ret)); + warning ("message move member %s", mach_error_string (ret)); /* @@@@ No way to change message port name currently */ diff --git a/gdb/remote-eb.c b/gdb/remote-eb.c index 049e87a..eb6caf8 100644 --- a/gdb/remote-eb.c +++ b/gdb/remote-eb.c @@ -252,10 +252,6 @@ eb_create_inferior (execfile, args, env) entry_pt = (int) bfd_get_start_address (exec_bfd); -#ifdef CREATE_INFERIOR_HOOK - CREATE_INFERIOR_HOOK (0); /* No process-ID */ -#endif - { /* OK, now read in the file. Y=read, C=COFF, D=no symbols 0=start address, %s=filename. */ diff --git a/gdb/remote-mon.c b/gdb/remote-mon.c index 0251401..db323d5 100644 --- a/gdb/remote-mon.c +++ b/gdb/remote-mon.c @@ -76,6 +76,7 @@ static int sr_get_debug(); /* flag set by "set remotedebug" */ #endif static int hashmark; /* flag set by "set hash" */ +/* FIXME: Replace with sr_get_debug (). */ #define LOG_FILE "monitor.log" #if defined (LOG_FILE) FILE *log_file; @@ -288,9 +289,6 @@ monitor_create_inferior (execfile, args, env) entry_pt = (int) bfd_get_start_address (exec_bfd); -#ifdef CREATE_INFERIOR_HOOK - CREATE_INFERIOR_HOOK (0); /* No process-ID */ -#endif #ifdef LOG_FILE fputs ("\nIn Create_inferior()", log_file); #endif diff --git a/gdb/remote-nindy.c b/gdb/remote-nindy.c index b81ffc7..35365c1 100644 --- a/gdb/remote-nindy.c +++ b/gdb/remote-nindy.c @@ -609,12 +609,8 @@ nindy_create_inferior (execfile, args, env) pid = 42; -#ifdef CREATE_INFERIOR_HOOK - CREATE_INFERIOR_HOOK (pid); -#endif - -/* The "process" (board) is already stopped awaiting our commands, and - the program is already downloaded. We just set its PC and go. */ + /* The "process" (board) is already stopped awaiting our commands, and + the program is already downloaded. We just set its PC and go. */ inferior_pid = pid; /* Needed for wait_for_inferior below */ diff --git a/gdb/remote-st.c b/gdb/remote-st.c index aa1b7cd..582ab2f 100644 --- a/gdb/remote-st.c +++ b/gdb/remote-st.c @@ -251,10 +251,6 @@ st2000_create_inferior (execfile, args, env) entry_pt = (int) bfd_get_start_address (exec_bfd); -#ifdef CREATE_INFERIOR_HOOK - CREATE_INFERIOR_HOOK (0); /* No process-ID */ -#endif - /* The "process" (board) is already stopped awaiting our commands, and the program is already downloaded. We just set its PC and go. */ diff --git a/gdb/remote-vx.c b/gdb/remote-vx.c index f7bd842..cb67787 100644 --- a/gdb/remote-vx.c +++ b/gdb/remote-vx.c @@ -215,10 +215,6 @@ vx_create_inferior (exec_file, args, env) vx_running = savestring (passArgs.arg_array_val[0], strlen (passArgs.arg_array_val[0])); -#ifdef CREATE_INFERIOR_HOOK - CREATE_INFERIOR_HOOK (pid); -#endif - push_target (&vx_run_ops); inferior_pid = taskStart.pid; |