Copyright 1989 The University of Texas at Austin Copyright 1990 Microelectronics and Computer Technology Corporation Copyright 1990 Thomson Consumer Electronics, Inc. Copyright 1991 Bull HN Worldwide Info Systems, Inc. Copyright 1993, 1994 Proteon, Inc. 1-3-92 Mxgdb is a Motif based Graphical User Interface (GUI) to the GNU gdb debugger. It provides a "point and click" interface to the most heavily used gdb commands, a command line interface to gdb, a dynamically updated source display, and lots more. Mxgdb is based on xxgdb which is based on xdbx (many thanks to Pierre Willard and Po Cheung for their respective work). To build mxgdb you will need Motif v (>=) 1.1 and X11R (>=) 4. Version 1.2.1 is intended to fix a few bugs in functionality and portability. The Xtty feature will now work on systems using Streams pseudo-tty's such as SunOS, Solaris and System V. Thanks to Grant McDorman (grant.mcdorman@canrem.com) for his fixes on this. Changes to separate SYSV and SYSR4 for easier portability were given by Kimmo Suominen <kim@grendel.lut.fi>. Support for editres was given by Dennis O'Neill (denio@s3reston.scubed.com). Thomas Eriksson <Thomas.Eriksson@lu.erisoft.se> pointed out that some pty's are never used on systems with many pty's. Version 1.2.1 will not work with gdb 4.7 and on as is. For gdb 4.7 (and perhaps several older versions) you will need to apply the patch gdb-4.7.diff to modify gdb's approach to the use of the TIOCSPGRP ioctl on pseudo devices. Otherwise you'll keep getting warnings that gdb cannot perform the ioctl correctly. I'm going to post this to the gdb newsgroup in hopes that it may change. This problem seems to be present in gdb-4.11 but requires a different patch, gdb-4.11.diff. This version of mxgdb may still work with older version of gdb 4.x. It no longer works with gdb 3.x. You will need version 1.1.4 to use it with gdb 3.x. Known Major Bugs ----------------------------------------------------------------------------- There are two major (non-portability related) bugs which this release could not address due to time constraints. Firstly, choosing 'Xtty' from the pulldown menu should restore the original tty for the inferior process and should kill the xterm. The xterm is removed and the tty is restored but for some reason the process no longer runs as it should. Creating a second Xtty allows the process to run again. On some implementations of Motif, pulling down a menu causes the dialogWindow widget to no longer respond to keyboard events. Mouse events are responded to as before. Build notes: ----------------------------------------------------------------------------- To build on SCO Unix or Bull DPX/ProStation 25 add -DSYSV. To build on Bull DPX/2-[23]00 add -DSYSV. To build on ISC UNIX System V.3 add -DSYSV. Configurations which don't define _POSIX_SOURCE must do so. To build on SunOS add nothing.. but, you will also need to use native 'cc' or 'gcc -traditional' as your C compiler in building callgdb.c. This file depends on ANSI headers using standard gcc. To build on SVR4 add -DSYSV and -DSTR_PTY. (thanks to David Wexelblat for fixing and testing this - dwex@mtgzz.att.com). To build on Solaris 2.x add -DSYSV -DSVR4 and -DSTR_PTY and set the LOCAL_LIBRARIES in the Imakefile as: LOCAL_LIBRARIES=-lXm -lXt -lX11 -lsocket -lnsl -lgen and comment out MALLOCO and MALLOCC definitions. Roger Sinnhuber <rogers@cogs.susx.ac.uk> has also reported that he needed -lucb -lelf to successfully build. I'm hoping someone with Solaris experience can clarify this. To build on BSD add nothing and cross your fingers. To build on Ultrix add nothing (its BSD). To build on SystemV.3 add -DSYSV and cross your fingers. To build on AIX add nothing (thanks to Paul Rensing, RENSING@SLAC.Stanford.EDU) Problems have been reported in getting the regex library to port porperly on this target. In addition, one should always use gcc to build mxgdb on this target (it has been tested with gcc v2.5.8). To build on MIPS RISC/OS or Bull BOS/RISC use the bsd43 systype (which is the default imake) and add -DSYSV_SETPGRP. To build on SGI IRIX 4.0 add -DSYSV -signed -DGETS_PROBLEM -DIRIX4_PTY. To build under IRIX 3.3 or to avoid _getpty under 4.0 add -DSYSV -signed -DGETS_PROBLEM -DPTC_PTY. You must edit the Imakefile and uncomment the appropriate sections so that your 'xmkmf' or 'imake' will work. You may need to create a Makefile with the command: imake -DUseInstalled -DBuildMotif -I/usr/lib/X11/config (thanks to Kevin Dalley for the SGI changes - kevin@igor.tamri.com). To build on HPUX set the CCOPTIONS to -DHAVE_TERMIO and set the LOCAL_LIBRARIES in the Imakefile as: LOCAL_LIBRARIES=-lXm -lXt -lX11 -lPW -lV3 Also do not use malloc.c by setting MALLOCC and MALLOCO to nothing. (thanks to neal@ctd.comsat.com (Neal Becker) and several others). Pty support ----------- Mxgdb now supports both /dev/ptmx (STREAMS/SVR4), /dev/ptc and IRIX 4.0 based pseudo-tty's. If you are using /dev/ptmx add -DSTR_PTY. If you are using /dev/ptc add -DPTC_PTY. If you are using Irix 4.0 or later add -DIRIX4_PTY. Xtty support ------------ Mxgdb now allows you to invoke slave xterms to host your character based debugging applications. This utilitzes the gdb "tty" command and the xterm "-S" option. You will need the xterm program (/usr/bin/X11/xterm) to use this option. It is accessible through the "Xtty..." menu option. This feature is still full of bugs and will probably not work for many systems. It has been tested on Bull DPX/2's, SCO Unix and SunOS 4.1 only. Alot of work needs to go into this before it becomes stable. This feature cannot yet be used with STR_PTY, PTC_PTY or IRIX4_PTY. Malloc by GNU ------------- GNU malloc is supplied with mxgdb to help improve speed. You may need to add flags in order to build malloc.o. If you do not wish to use GNU malloc or if you have trouble building gnu malloc, remove the malloc.c and malloc.o entries in the Imakefile. Reporting Errors ---------------- I would appreciate if any bug reports include a description of the problem and the output from 'mxgdb -debug'. This output displays the dialog between mxgdb and the gdb process. '-debug' is only supported if you build using the -DDEBUG flag. Also please include the versions of both mxgdb and gdb which you are using. Copyright info -------------- Mxgdb contains source supplied by the Free Software Foundation. Read the first few pages of regex.h to see how this affects applicable copyrights and warranties. ----------------------------------------------------------------------------- Mxgdb is successfully running on a variety of systems. If you get it working on a system not listed here. Let me know so I can include it on the list and add the compilation options. Enjoy. -Jim. My email address is: jtsilla@copley.ccs.neu.edu