[comp.sys.m88k] Gdb-based cross-debugger for the 88000

rculley@pogoF.hslrswi (Roy Culley) (05/26/90)

In article <8652@rice-chex.ai.mit.edu>, gnulists@wheaties.ai.mit.edu
(Leonard H. Tower Jr.) writes:
|> This version of gdb can debug programs running in three environments:
|> 
|> 1. UTek V UNIX process (just like normal gdb)
|> 
|> 2. simulator of a bare 88k + some I/O devices (announced earlier this week)
|> 
|> 3. remote target, i.e. a machine other than the one gdb is running on.
|> 
|> Kernel engineers at Tek use 3) to debug the UNIX kernel.  I call gdb
|> "cross-gdb" when it is used in this mode.
|> 
|> Cross-gdb uses a serial connection between the host (running cross-gdb)
|> and the target that runs at 38.4 kilobaud.  Data going over this line
|> is compressed and checksummed.  On the target, a small program (the
|> "debug monitor") examines memory, changes memory, starts the
|> program-being-debugged, and fields exceptions on behalf of cross-gdb.
|> The debug monitor is on one end of the serial line, cross-gdb is on the
|> other.
|> 
|> Cross-gdb has a number of new commands to make low-level debugging
|> easier.  They are described in the man page that you can get along
|> with the source (see below).
|> 
|> If you want to use cross-gdb, you need to:
|> 
|> 1. Have some way that gdb can reset and interrupt the target.  This
|>    means you need some hardware + need to modify gdb to know about
|>    it.
|> 
|> 2. Make the 8k monitor talk to a spare serial port on your target.
|> 
|> 3. Find a place to put the 8k debug monitor.
|> 
|> Note that the 8k debug monitor is not linked with any gnu code and is
|> copyrighted by Tektronix.  But Tek makes it available w/o charge as
|> long as you leave their copyright messages intact.
|> 
|> It will require at least a little work to port this to a non-Tek
|> machine.  You will probably want to slash a lot of the cruft out of
|> gdb/Makefile.  If you delete the directory gdb/sim, you will get a gdb
|> w/o the simulator.  This will make your work easier if you don't need
|> the simulator.
|> 
|> I do not represent Tektronix in any way.  No warranties, etc.  I will
|> try to help people who make a serious effort on their own.  But don't
|> bang your head against a wall when I could clear something up in a few
|> minutes.
|> 
|> You can get this gdb + simulator + cross-debugging features from
|> 
|> 128.95.1.4      june.cs.washington.edu cs.washington.edu june
|> 
|> The two files are:
|> 
|> -rw-r--r--  1 robertb   2422839 May 17 13:45 /usr/ftp/pub/gdb88.rcs.tar.Z
|> -rw-r--r--  1 robertb   1046629 May 17 13:43 /usr/ftp/pub/gdb88.tar.Z
|> 
|> The larger file contains all the RCS files, the smaller file has just
|> the current version of each file.
|> 
|> 	Rob
|> 
|> Here's what the ftp session looks like:
|> 
|> Script started on Thu May 17 14:08:22 1990
|> % ftp 128.95.1.4
|> Connected to 128.95.1.4.
|> 220 june.cs.washington.edu FTP server (Ultrix Version 4.9 Wed May 3
20:41:16 PDT 1989) ready.
|> Name (128.95.1.4:): anonymous
|> Password (128.95.1.4:anonymous): 
|> 331 Guest login ok, send ident as password.
|> 230 Guest login ok, access restrictions apply.
|> ftp> cd pub
|> 250 CWD command successful.
|> ftp> bin
|> 200 Type set to I.
|> ftp> get gdb88.tar.Z
|> 200 PORT command successful.
|> 150 Opening data connection for gdb88.tar.Z (128.95.1.4,1691)
(1046629 bytes).
|> 226 Transfer complete.
|> local: gdb88.tar.Z remote: gdb88.tar.Z
|> 1046629 bytes received in 11 seconds (97 Kbytes/s)
|> ftp> quit
|> 221 Goodbye.
|> % uncompress gdb88.tar.Z
|> % tar xf gdb88.tar
|> script done on Thu May 17 14:10:00 1990
|> 
|> 	- Rob

Roy G. Culley, abt 85L2, x3503