Annotation of 43BSDReno/contrib/emacs-18.55/gdb/gdb.ideas, revision 1.1

1.1     ! root        1: BABYL OPTIONS:
        !             2: Version: 5
        !             3: Labels:
        !             4: Note:   This is the header of an rmail file.
        !             5: Note:   If you are seeing it in rmail,
        !             6: Note:    it means the file has no messages in it.
        !             7: 
        !             8: From: [email protected] (Richard Mlynarik)
        !             9: To: [email protected]
        !            10: Subject: gdb suggestions (from hpux cdb)
        !            11: Reply-To: [email protected]
        !            12: 
        !            13: "find-bug" command says "I can see the problem, but it will do you
        !            14: good to find it yourself"
        !            15: 
        !            16: The gdb manual should explicitly state that gdb has no control over
        !            17: forked (or execed or whatever) subprocesses.
        !            18: 
        !            19: I'd still like it if "delete" said what it had done.
        !            20: 
        !            21: 
        !            22: Date: Tuesday, 13 May 1986, 00:40-EDT
        !            23: From: <rms@LMI-ANGEL>
        !            24: Sender: JC@LMI-ANGEL
        !            25: Subject: interesting sdb features
        !            26: To: rms@angel
        !            27: 
        !            28: output format p = pointer to procedure.
        !            29: 
        !            30: foo/x or foo/4x uses size of foo as size to print.
        !            31: 
        !            32: foo[1;4] to get elements 1 thru 4.
        !            33: 
        !            34: Continue to specified line number.
        !            35: 
        !            36: Interactively delete all breakpoints (asking about each one).
        !            37: 
        !            38: 
        !            39: 
        !            40: Command to write backtrace into a file, or even better to duplicate all
        !            41: output to a file.  This could work by playing with descriptor 1,
        !            42: making it a pipe to `tee'.  The original descriptor 1 is saved and
        !            43: this mode can be turned off by putting it back.
        !            44:   Date: Wed, 18 Feb 87 15:37:14 EST
        !            45:   From: rms (Richard M. Stallman)
        !            46:   Message-Id: <[email protected]>
        !            47:   To: [email protected]
        !            48:   In-Reply-To: <[email protected]>
        !            49:   Subject: gdb "photo" command
        !            50: 
        !            51:   I don't think all this is worth the trouble to do now,
        !            52:   because the right way to do it on TRIX is totally different
        !            53:   and much easier.
        !            54: 
        !            55: 
        !            56: Commands to enable and disable the autodisplays.  Associate
        !            57: autodisplays with breakpoints perhaps, so they only display
        !            58: at those breakpoints; this is easier than using breakpoint commands.
        !            59: 
        !            60: Remember how each breakpoint's position was specified.
        !            61: Have command to reread symbol table and respecify each
        !            62: breakpoint using same args (line number or function name) as before.
        !            63: 
        !            64: Have way to proceed process in background so that can then suspend
        !            65: gdb but have subprocess continue
        !            66: 
        !            67: 
        !            68: Date: Fri, 24 Jul 87 21:30:25 EDT
        !            69: From: [email protected] (Paul Rubin)
        !            70: To: [email protected]
        !            71: 
        !            72: After rereading the symbol table when user runs the "symbol-file"
        !            73: command, when GDB notices that some of the source files are newer
        !            74: it should reload them rather than just printing a message saying
        !            75: they are newer.
        !            76: 
        !            77: 
        !            78: 
        !            79: Message-Id: <[email protected]>
        !            80: To: [email protected]
        !            81: Cc: [email protected], [email protected], [email protected]
        !            82: Subject: gdb hack/questions, etc
        !            83: Date: 17 Apr 87 11:41:42 PST (Fri)
        !            84: From: [email protected]
        !            85: 
        !            86: 
        !            87: A couple of things:
        !            88: 
        !            89: 1) Will gdb ever get dbx-sytly tracing?  Wouldn't it be fairly easy to add?
        !            90: 
        !            91: 2) How about an xemacs gdb mode which has various windows, perhaps using
        !            92:    terminal.el for generality?
        !            93: 
        !            94: 3) Any word about that stupid IRIS SIGIOT problem?  Do you know of anyone
        !            95:    else who has gotten IRIS subprocesses to work more reliably?
        !            96: 
        !            97: 4) Below is a hack adapted from [email protected] which can be pretty
        !            98:    useful in gdb.  Instead of using gdb to patch extensive changes to a
        !            99:    particular function, you can do the following (assuming the 50 lines
        !           100:    of code below is part of your executable):
        !           101:        1) create a new file (foo.c) containing the new function
        !           102:        2) run cc -c foo.c
        !           103:        3) in gdb, and patch in the new function as follows:
        !           104: 
        !           105: (gdb) info breakpoints
        !           106: /* Load in the new object code... */
        !           107: #1   y  0x00000125  in main (dyn.c line 46)
        !           108:        break only if $function = funload ("foo"), 1
        !           109:        silent
        !           110:        echo new code for func ($function) initialized\n
        !           111:        cont
        !           112: 
        !           113: /* ...and use it instead of the old code. */
        !           114: #2   y  0x000001c2  in func (dyn.c line 59)
        !           115:        break only if $ret = $function (a), 1
        !           116:        silent
        !           117:        set a = $ret
        !           118:        j 60            /* func has a return on line 60 */
        !           119: 
        !           120:        This is more complicated than it has to be because of 2 bugs in v2.1:
        !           121:        1) function calls in a breakpoint command list seem to abort
        !           122:           the execution of the rest of the command list.  This is
        !           123:           why all function calls are in the conditional part.
        !           124:           (gdb reference manual section 5.5).
        !           125: 
        !           126:        2) A 'return' in a command list also aborts the execution, and
        !           127:           in addition, prompts you for a y/n.
        !           128:           (gdb reference manual section 11.1).
        !           129: 
        !           130:        On the other hand, after doing 'cc -c foo.c' (which is pretty fast),
        !           131:        you can simply rerun your program to check out the changes.
        !           132:        This can be a big win!
        !           133: 
        !           134: The code for this is included below (compile with cc -g):
        !           135: ========================================================
        !           136: 
        !           137: #include <stdio.h>
        !           138: #include <a.out.h>
        !           139: 
        !           140: typedef int (*intfun)();
        !           141: char *myname;
        !           142: 
        !           143: intfun funload (filename)      /* Dynamically load 1st function from a .o */
        !           144:      char *filename;
        !           145: {
        !           146:   int fd, size;
        !           147:   struct exec hdr;
        !           148:   char buf[100];
        !           149:   intfun fun;
        !           150: 
        !           151:   /* -A => incremental loading - use dyn as the base symbol table
        !           152:      -T => set the text segment origin to the following hex address
        !           153:      -N => magic number 407 (text not read-only)
        !           154:   */
        !           155:   sprintf (buf, "ld -A %s -T %x -N %s.o -o %s -lc",
        !           156:           myname, sbrk (0), filename, filename);
        !           157: 
        !           158:   /* NOTE: if anything mallocs space between here and below, this will fail */
        !           159:   system (buf);
        !           160: 
        !           161:   fd = open (filename, 0);
        !           162:   read (fd, &hdr, sizeof(hdr));
        !           163:   size = hdr.a_text + hdr.a_data + hdr.a_bss;
        !           164: 
        !           165:   if ((fun = (intfun) sbrk (size)) < 0)
        !           166:     printf ("Couldn't find the space"), exit();
        !           167: 
        !           168:   read (fd, fun, size);                /* Load code. */
        !           169:   /* NOTE: if anything mallocs space between here and above, this will fail */
        !           170: 
        !           171:   close (fd);
        !           172:   return ((intfun) fun);
        !           173: }
        !           174:   
        !           175: main (argc, argv)
        !           176:      char **argv;
        !           177: {
        !           178:   intfun fun1, fun2;
        !           179: 
        !           180:   myname = *argv;
        !           181: 
        !           182:   fun1 = funload("fun1");
        !           183:   printf ("The answer is %d.\n", (*fun1)(11) );
        !           184: 
        !           185:   fun2 = funload("fun2");
        !           186:   printf ("The answer is %d.\n", (*fun2)() );
        !           187: }
        !           188: 1,edited,,
        !           189: Received: by PREP.AI.MIT.EDU; Tue, 16 Jun 87 03:12:54 EDT
        !           190: Date: Tue, 16 Jun 87 03:12:54 EDT
        !           191: From: rms (Richard M. Stallman)
        !           192: Message-Id: <[email protected]>
        !           193: To: rms
        !           194: Subject: GDB ideas
        !           195: 
        !           196: *** EOOH ***
        !           197: Date: Tue, 16 Jun 87 03:12:54 EDT
        !           198: From: rms (Richard M. Stallman)
        !           199: To: rms
        !           200: Subject: GDB ideas
        !           201: 
        !           202: * Within a user-defined command, have local convenience variables,
        !           203: local functions, local defined commands.
        !           204: 
        !           205: ** Optionally echo commands within a user-defined command.
        !           206: 
        !           207: ** Optionally record all user-typed commands in a log file.
        !           208: Optionally record GDB output there too, marked as output so it
        !           209: will not be executed if replayed.
        !           210: 
        !           211: * Execution commands
        !           212: 
        !           213: ** Step until next branch, or next call.
        !           214: (finish is step until next return).
        !           215: 
        !           216: step branch
        !           217: or should it be
        !           218: continue branch
        !           219: 
        !           220: ** Stop on any branch, call or return
        !           221: affecting ordinary step and continue commands.
        !           222: 
        !           223: stop branch
        !           224: 
        !           225: ** Trace all branches, calls, returns.
        !           226: This could be done by stopping on those events
        !           227: and having a continue command to be executed after.
        !           228: 
        !           229: stop branch
        !           230: commands branch
        !           231: continue
        !           232: end
        !           233: 
        !           234: ** Commands to continue or step without any display after stop.
        !           235: These may be useful in user-defined commands.
        !           236: 
        !           237: Have one prefix command that does this, modifying whatever other
        !           238: command you might use.  For example,
        !           239: 
        !           240: silent step 5
        !           241: silent cont
        !           242: 
        !           243: ** Clear all breakpoint ignore-counts when inferior exits or is killed.
        !           244: 
        !           245: ** Trace changes to a location (watchpoint).
        !           246: Enable and disable them.
        !           247: 
        !           248: ** Info command to show command-line for running the program.
        !           249: 
        !           250: * Auto-display
        !           251: 
        !           252: ** Enable and disable display expressions.
        !           253: Allow syntax 1d, 2d, etc. in enable, disable and delete commands.
        !           254: Then there is no more need for an undisplay command.
        !           255: 
        !           256: ** Displaying an auto variable should not do it in the wrong stack frame.
        !           257: Either it should search for the proper stack frame to apply to
        !           258: or it should deactivate itself when in the wrong frame.
        !           259: 
        !           260: * Printing
        !           261: 
        !           262: ** Print an address as <file:line>+offset.
        !           263: 
        !           264: ** Abbreviate initial whitespace modulo 16.
        !           265: 
        !           266: ** p/x of an array should print each element with /x.
        !           267: 
        !           268: ** Change the stack scan so that it has a more general idea
        !           269: of what info is needed to describe a frame fully.
        !           270: 
        !           271: * Expressions
        !           272: 
        !           273: ** Array slices.  Can replace @.
        !           274: 
        !           275: ** %name for use of symbol names containing funny characters.
        !           276: 
        !           277: ** User-defined convenience functions that can appear in expressions.
        !           278: 
        !           279: ** Expression syntax to convert line number to address.
        !           280: 
        !           281: ** Expression syntax to specify a name scope with an address, line number
        !           282: or frame number.
        !           283: 
        !           284: Use the line number by itself, or an address with *, just as in b or l cmd:
        !           285: 38:foo or *0x40a:foo.  No good; the latter would be parsed as
        !           286: *(0x40a:foo).
        !           287: 
        !           288: ** Expression syntax to convert a frame number to its pc.
        !           289: Perhaps unary %.
        !           290: 
        !           291: * Possible bugs
        !           292: 
        !           293: ** Does set $pc= cause the current scope to be recalculated?
        !           294: It should.
        !           295: 
        !           296: 1,,
        !           297: Received: by PREP.AI.MIT.EDU; Wed, 17 Jun 87 09:59:37 EDT
        !           298: From: [email protected]
        !           299: Received: by ATHENA (5.45/4.7)
        !           300:        id AA09084; Wed, 17 Jun 87 08:54:36 EDT
        !           301: Received: by ORPHEUS.MIT.EDU (5.45/4.7) id AA02565; Wed, 17 Jun 87 08:54:29 EDT
        !           302: Date: Wed, 17 Jun 87 08:54:29 EDT
        !           303: Message-Id: <[email protected]>
        !           304: To: [email protected]
        !           305: Subject: gdb suggestion
        !           306: Status: RO
        !           307: 
        !           308: *** EOOH ***
        !           309: From: [email protected]
        !           310: Date: Wed, 17 Jun 87 08:54:29 EDT
        !           311: To: [email protected]
        !           312: Subject: gdb suggestion
        !           313: 
        !           314: Completion of file and function names; e.g. typing
        !           315:        break XWriteBi
        !           316: prints
        !           317:        No such symbol: XWriteBi.
        !           318:        Setting default command to "break XWriteBitmapFile"
        !           319: so you can set a break at XWriteBitmapFile by hitting return a second
        !           320: time.  Other interfaces ("complete to XWriteBitmapFile? (y/n)")
        !           321: are also possible.
        !           322: 
        !           323: 
        !           324: 1,edited,,
        !           325: Received: by PREP.AI.MIT.EDU; Wed, 24 Sep 86 16:33:11 EDT
        !           326: Date: Wed, 24 Sep 86 16:33:11 EDT
        !           327: From: mly (Richard Mlynarik)
        !           328: Message-Id: <[email protected]>
        !           329: To: rms
        !           330: Cc: mly-prep
        !           331: Subject: gdb gripes/suggestions/requests
        !           332: 
        !           333: *** EOOH ***
        !           334: Date: Wed, 24 Sep 86 16:33:11 EDT
        !           335: From: mly (Richard Mlynarik)
        !           336: To: rms
        !           337: Cc: mly-prep
        !           338: Subject: gdb gripes/suggestions/requests
        !           339: 
        !           340: If would be really nice to have some way to do conditionals in user
        !           341:   commands -- though this is really stretching the functionality of
        !           342:   gdb a little too much, perhaps.  (see ~mly/e/.gdbint for some of
        !           343:   the contortions I go through with || to get conditional
        !           344:   evaluation...)
        !           345: 
        !           346: A -real- win wuold be some way to execute until he next function-call
        !           347:   (like c-d in the cadr debugger)  This would even be useful if it
        !           348:   were rather slow -- it would probably be faster than setting
        !           349:   temporary breakpoints in all the functions which might be called,
        !           350:   and would certainly be faster than "step"ping one's way until a
        !           351:   funcall happened.
        !           352: 
        !           353: "info source" should mention what the directory search-path is (ie
        !           354:   what "info dir" says) and in which directory it found each of the
        !           355:   source files (and which source files it cannot locate in the
        !           356:   search-path)
        !           357: 
        !           358: 
        !           359: 1,,
        !           360: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           361:        id AA22869; Thu, 22 Oct 87 09:50:30 PDT
        !           362: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Thu, 22 Oct 87 12:17:59 EDT
        !           363: Received: by PREP.AI.MIT.EDU; Thu, 22 Oct 87 12:21:00 EDT
        !           364: Received: from pp.mcc.com by MCC.COM with TCP; Thu 22 Oct 87 10:54:41-CDT
        !           365: Posted-Date: Thu, 22 Oct 87 10:55:13 CDT
        !           366: Received: from big-d.aca.mcc.com by pp.mcc.com (4.12/KA70822) 
        !           367:        id AA16571; Thu, 22 Oct 87 10:55:19 cdt
        !           368: Return-Path: <[email protected]>
        !           369: Received: by big-d.aca.mcc.com (3.2/KA70106)
        !           370:        id AA04247; Thu, 22 Oct 87 10:55:13 CDT
        !           371: Date: Thu, 22 Oct 87 10:55:13 CDT
        !           372: From: tiemann%[email protected] (Michael Tiemann)
        !           373: Message-Id: <[email protected]>
        !           374: To: [email protected]
        !           375: Subject: expanding file names
        !           376: 
        !           377: *** EOOH ***
        !           378: Posted-Date: Thu, 22 Oct 87 10:55:13 CDT
        !           379: Return-Path: <[email protected]>
        !           380: Date: Thu, 22 Oct 87 10:55:13 CDT
        !           381: From: tiemann%[email protected] (Michael Tiemann)
        !           382: To: [email protected]
        !           383: Subject: expanding file names
        !           384: 
        !           385: When running a program, gdb thoughtfully passes the argument list
        !           386: through the shell, expanding files and environment variables as
        !           387: needed.  It would be nice if the same facility were added to the
        !           388: command which adds directories to search paths.  For example, it would
        !           389: be nice to say "dir ~/foo" .
        !           390: 
        !           391: Michael
        !           392: 
        !           393: 
        !           394: 1,,
        !           395: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           396:        id AA25075; Fri, 23 Oct 87 10:42:52 PDT
        !           397: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Fri, 23 Oct 87 13:39:37 EDT
        !           398: Received: by PREP.AI.MIT.EDU; Fri, 23 Oct 87 13:42:53 EDT
        !           399: Received: from relay2.cs.net by RELAY.CS.NET id ac11193; 23 Oct 87 13:03 EDT
        !           400: Received: from umb.edu by RELAY.CS.NET id ac05949; 23 Oct 87 13:01 EDT
        !           401: Received: by umb.umb.edu; Fri, 23 Oct 87 10:18:40 EDT
        !           402: Received: by ileaf.uucp (1.1/SMI-3.0DEV3)
        !           403:        id AA00599; Wed, 21 Oct 87 10:56:52 EDT
        !           404: Received: from marvin.io.uucp by io.uucp (1.1/SMI-3.0DEV3)
        !           405:        id AA01359; Wed, 21 Oct 87 10:58:45 EDT
        !           406: Received: by marvin.io.uucp (3.2/SMI-3.2)
        !           407:        id AA00334; Wed, 21 Oct 87 11:02:20 EDT
        !           408: Date: Wed, 21 Oct 87 11:02:20 EDT
        !           409: From: Mark Dionne <io!marvin!md%ileaf.uucp%[email protected]>
        !           410: Message-Id: <[email protected]>
        !           411: To: [email protected]
        !           412: Subject: gdb bug
        !           413: 
        !           414: *** EOOH ***
        !           415: Date: Wed, 21 Oct 87 11:02:20 EDT
        !           416: From: Mark Dionne <io!marvin!md%ileaf.uucp%[email protected]>
        !           417: To: [email protected]
        !           418: Subject: gdb bug
        !           419: 
        !           420: The /FMT and @ options of the "print" command seem to interact
        !           421: in GDB 2.1. For example:
        !           422: 
        !           423: (gdb) p ($cmpn.buf[-1])@($cmpn.gapb - $cmpn.buf + 1)
        !           424: $17 = {-16383, -24285, 55, 27944, -24285, -24285, 55, 28010, -24285,
        !           425: -24285, 55, 28076, -24285, -24285, 55, 28142, -24285}
        !           426: (gdb) p/x ($cmpn.buf[-1])@($cmpn.gapb - $cmpn.buf + 1)
        !           427: $18 = 0xc001
        !           428: 
        !           429: I guess I see what's happening: the /x is applying to the whole
        !           430: array rather than to the individual elements. Feature or bug?
        !           431: 
        !           432:        ...!harvard!umb!ileaf!md        Mark Dionne, Interleaf
        !           433:          ...!sun!sunne!ileaf!md        Ten Canal Park, Cambridge, MA 02141
        !           434:                                        (617) 577-9813 x5551
        !           435: 
        !           436: 
        !           437: 
        !           438: 1,,
        !           439: Received: by PREP.AI.MIT.EDU; Sun, 6 Sep 87 14:27:19 EDT
        !           440: Message-Id: <[email protected]>
        !           441: Received: from relay2.cs.net by RELAY.CS.NET id af03990; 6 Sep 87 14:22 EDT
        !           442: Received: from umb.edu by RELAY.CS.NET id ab03029; 6 Sep 87 14:16 EDT
        !           443: Received: by umb.umb.edu; Sun, 6 Sep 87 12:10:34 EDT
        !           444: Date: Sun, 6 Sep 87 12:10:34 EDT
        !           445: Received: by typo.umb.edu; Sun, 6 Sep 87 12:04:21 EDT
        !           446: From: Robert Morris <ram%[email protected]>
        !           447: To: [email protected]
        !           448: Subject: convenient script
        !           449: 
        !           450: *** EOOH ***
        !           451: Date: Sun, 6 Sep 87 12:10:34 EDT
        !           452: From: Robert Morris <ram%[email protected]>
        !           453: To: [email protected]
        !           454: Subject: convenient script
        !           455: 
        !           456: I find it easier to maintain binaries on our heterogenous
        !           457: network if I keep this trivial script in gdb source directory. Use it
        !           458: if you want.
        !           459: 
        !           460: 
        !           461: ------------
        !           462: 
        !           463: #! /bin/csh -f
        !           464: #      SETUP
        !           465: #      setup gdb files for presently known machines
        !           466: #      [email protected] 
        !           467: #              (ram%[email protected] if you have an incomplete mailer)
        !           468: #      or ...!harvard!umb!ram
        !           469: #
        !           470: #      e.g.     SETUP sun3
        !           471: #      note that sunX means major release X of sun software, generally
        !           472: #      sun3 at this writing (gnu 18.41)
        !           473: #
        !           474: #      note GDB with gnuemacs 18.41 is already configured for vaxen
        !           475: 
        !           476: #              Bob Morris, UMASS-Boston 9/6/87
        !           477: switch ($1)
        !           478:        case "sun2":
        !           479:                ;
        !           480:        case "sun3" : 
        !           481:                set cputype="m68k";
        !           482:                set inittype="suninit";
        !           483:                breaksw;
        !           484:        default : 
        !           485:                set cputype=$1;
        !           486:                set inittype=$1init;
        !           487:                breaksw;
        !           488: endsw
        !           489: echo \#include \"m-$1.h\" > param.h
        !           490: echo \#include \"$cputype-pinsn.c\" > pinsn.c
        !           491: ed initialize.h <<! >& /dev/null
        !           492: /init.h/
        !           493: c
        !           494: #include "m-$inittype.h"
        !           495: .
        !           496: w
        !           497: q
        !           498: !
        !           499: 
        !           500: 
        !           501: 
        !           502: 
        !           503: 1,answered,,
        !           504: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Sat, 19 Dec 87 18:18:50 EST
        !           505: Received: by PREP.AI.MIT.EDU; Sat, 19 Dec 87 18:24:38 EST
        !           506: Received: from big-d.aca.mcc.com by MCC.COM with TCP; Sat 19 Dec 87 17:19:48-CST
        !           507: Date: Sat, 19 Dec 87 17:19:41 CST
        !           508: From: [email protected] (Michael Tiemann)
        !           509: Posted-Date: Sat, 19 Dec 87 17:19:41 CST
        !           510: Message-Id: <[email protected]>
        !           511: Received: by big-d.aca.mcc.com (3.2/ACA-V2.1        !           512:        id AA26775; Sat, 19 Dec 87 17:19:41 CST
        !           513: To: [email protected]
        !           514: Subject: gdb
        !           515: 
        !           516: *** EOOH ***
        !           517: Date: Sat, 19 Dec 87 17:19:41 CST
        !           518: From: [email protected] (Michael Tiemann)
        !           519: Posted-Date: Sat, 19 Dec 87 17:19:41 CST
        !           520: To: [email protected]
        !           521: Subject: gdb
        !           522: 
        !           523: file values.c, function unpack_field_as_long:
        !           524: 
        !           525:   val &= (1 << bitsize) - 1;
        !           526: 
        !           527: This is not as machine independent as it could be.  If you feel like
        !           528: fixing this potential problem, there are many other instances to worry
        !           529: about.
        !           530: 
        !           531: Michael
        !           532: 
        !           533: 
        !           534: 1,,
        !           535: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           536:        id AA04771; Thu, 20 Aug 87 22:33:25 PDT
        !           537: Received: from [128.52.22.14] by ucbvax.Berkeley.EDU (5.58/1.27)
        !           538:        id AA07119; Thu, 20 Aug 87 00:37:04 PDT
        !           539: Received: by PREP.AI.MIT.EDU; Thu, 20 Aug 87 03:37:35 EDT
        !           540: Date: Thu, 20 Aug 87 03:37:35 EDT
        !           541: From: [email protected] (Richard M. Stallman)
        !           542: Message-Id: <[email protected]>
        !           543: To: [email protected]
        !           544: Subject: GDB changes for next version
        !           545: 
        !           546: *** EOOH ***
        !           547: Date: Thu, 20 Aug 87 03:37:35 EDT
        !           548: From: [email protected] (Richard M. Stallman)
        !           549: To: [email protected]
        !           550: Subject: GDB changes for next version
        !           551: 
        !           552: 1. Use links, rather than editing some files, to configure it.
        !           553: 
        !           554: 2. Can misc functions eval as their addresses rather than as
        !           555:  a char in that address?  Is this reasonable in all cases
        !           556:  given that non-functions cannot be distinguished
        !           557:  and that you might use the result in various ways (arithmetic, etc.).
        !           558: 
        !           559: 
        !           560: 1,,
        !           561: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           562:        id AA09136; Sat, 29 Aug 87 02:20:15 PDT
        !           563: Received: from PREP.AI.MIT.EDU by ucbvax.Berkeley.EDU (5.58/1.27)
        !           564:        id AA26072; Sat, 29 Aug 87 02:21:51 PDT
        !           565: Received: by PREP.AI.MIT.EDU; Sat, 29 Aug 87 05:22:30 EDT
        !           566: Received: by RUTGERS.EDU (5.54/1.14) with UUCP 
        !           567:        id AA22247; Sat, 29 Aug 87 05:21:13 EDT
        !           568: Received: from sequent.UUCP by spool.wisc.edu; Sat, 29 Aug 87 04:18:41 CDT
        !           569: Received: from reed.UUCP by ogcvax.OGC.EDU (5.51/OGC_4.8)
        !           570:                id AA08044; Fri, 28 Aug 87 20:06:41 PDT
        !           571: Received: by reed.UUCP (5.51/5.17)
        !           572:        id AA05059; Fri, 28 Aug 87 19:19:15 PDT
        !           573: From: [email protected] (Keith Packard)
        !           574: Message-Id: <[email protected]>
        !           575: To: [email protected]
        !           576: Subject: Re: GDB 
        !           577: In-Reply-To: Your message of Thu, 20 Aug 87 03:39:37 EDT.
        !           578:              <[email protected]        !           579: Date: Fri, 28 Aug 87 19:19:13 PDT
        !           580: 
        !           581: *** EOOH ***
        !           582: From: [email protected] (Keith Packard)
        !           583: To: [email protected]
        !           584: Subject: Re: GDB 
        !           585: In-Reply-To: Your message of Thu, 20 Aug 87 03:39:37 EDT.
        !           586:              <[email protected]        !           587: Date: Fri, 28 Aug 87 19:19:13 PDT
        !           588: 
        !           589: 
        !           590: Here is a simple test program for exibiting the trouble with signals:
        !           591: 
        !           592: -----
        !           593: # include      <signal.h>
        !           594: 
        !           595: main ()
        !           596: {
        !           597:        int     handle ();
        !           598:        int     i;
        !           599:        signal (SIGALRM, handle);
        !           600:        alarm (5);
        !           601:        for (i = 0; i < 100000; i++)
        !           602:                printf ("%d\n", i);
        !           603: }
        !           604: 
        !           605: handle ()
        !           606: {
        !           607:        printf ("signal!\n");
        !           608:        alarm (5);
        !           609: }
        !           610: -----
        !           611: 
        !           612: To demonstrate the problem, simply place a breakpoint before the call to
        !           613: alarm and then start stepping through the program:
        !           614: 
        !           615: (gdb) break 7
        !           616: (gdb) step
        !           617: ...
        !           618: ...
        !           619: 
        !           620: Eventually, the alarm call occurs and the program ends up in some
        !           621: signal handling code -- unfortuantely a machine dependent location.  At this
        !           622: point, because the fp has moved out of the current function (in fact on
        !           623: many machines the frame is not in a consistent state at this point) gdb
        !           624: assumes that a new function has started and suspends execution with another
        !           625: prompt.
        !           626: 
        !           627: A reasonable solution would be to have gdb insert a breakpoint at the
        !           628: expected signal return address and continue to that breakpoint -- I've
        !           629: implemented this and found that it works.  There is, however, one nasty
        !           630: problem -- longjmp around the suspended frame and the breakpoint is not hit
        !           631: at the expected time.
        !           632: 
        !           633: Have fun...
        !           634: 
        !           635: keith packard
        !           636: 
        !           637: tektronix!reed!keith
        !           638: 
        !           639: 
        !           640: 1,,
        !           641: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           642:        id AA09143; Sat, 29 Aug 87 02:24:58 PDT
        !           643: Received: by neptune.Berkeley.EDU (5.57/1.25)
        !           644:        id AA03738; Sat, 29 Aug 87 02:24:50 PDT
        !           645: Date: Sat, 29 Aug 87 02:24:50 PDT
        !           646: From: [email protected] (Richard Stallman)
        !           647: Message-Id: <[email protected]>
        !           648: To: [email protected]
        !           649: Subject: GDB bug
        !           650: Reply-To: [email protected]
        !           651: 
        !           652: *** EOOH ***
        !           653: Date: Sat, 29 Aug 87 02:24:50 PDT
        !           654: From: [email protected] (Richard Stallman)
        !           655: To: [email protected]
        !           656: Subject: GDB bug
        !           657: Reply-To: [email protected]
        !           658: 
        !           659: Is there any way to make GDB, when stepping across a function call,
        !           660: notice any attempt to longjump out of that call?
        !           661: Perhaps an implicit breakpoint at longjump.
        !           662: If longjump is called, find the pc in the jmp_buf and put
        !           663: a self-deleting breakpoint there.
        !           664: 
        !           665: 
        !           666: 1,,
        !           667: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           668:        id AA07976; Fri, 28 Aug 87 09:26:12 PDT
        !           669: Received: from PREP.AI.MIT.EDU by ucbvax.Berkeley.EDU (5.58/1.27)
        !           670:        id AA03230; Fri, 28 Aug 87 09:28:04 PDT
        !           671: Received: by PREP.AI.MIT.EDU; Fri, 28 Aug 87 12:28:43 EDT
        !           672: Date: Fri, 28 Aug 87 12:28:43 EDT
        !           673: From: [email protected] (Paul Rubin)
        !           674: Message-Id: <[email protected]>
        !           675: To: [email protected]
        !           676: Subject: gdb suggestions
        !           677: 
        !           678: *** EOOH ***
        !           679: Date: Fri, 28 Aug 87 12:28:43 EDT
        !           680: From: [email protected] (Paul Rubin)
        !           681: To: [email protected]
        !           682: Subject: gdb suggestions
        !           683: 
        !           684: 1. I wish gdb had a command to re-read the sources so that I can edit
        !           685: the program and recompile it without having to kill and restart gdb.
        !           686: 
        !           687: 2. Would be nice if gdb could somehow connect the subprocess's tty channels
        !           688: to a pty, so I can run gdb in an X window and the subprocess in a different
        !           689: (xterm) window.
        !           690: 
        !           691: This might need hair to detect if the subprocess is running when you try
        !           692: to examine variables, etc. and stop the subproc or report an error if it is.
        !           693: 
        !           694: 
        !           695: 1,,
        !           696: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Mon, 4 Apr 88 12:43:31 EDT
        !           697: Received: from CCA.CCA.COM by prep.ai.mit.edu; Mon, 4 Apr 88 11:30:55 EST
        !           698: Received: by CCA.CCA.COM; Mon, 4 Apr 88 12:42:16 EDT
        !           699: Date: Mon, 4 Apr 88 12:42:16 EDT
        !           700: From: [email protected] (Alexis Layton)
        !           701: Message-Id: <[email protected]>
        !           702: To: [email protected]
        !           703: Subject: Wish List for GDB
        !           704: Cc: [email protected]
        !           705: 
        !           706: *** EOOH ***
        !           707: Date: Mon, 4 Apr 88 12:42:16 EDT
        !           708: From: [email protected] (Alexis Layton)
        !           709: To: [email protected]
        !           710: Subject: Wish List for GDB
        !           711: Cc: [email protected]
        !           712: 
        !           713: GDB is a good debugger.  I like it.  I think it is lacking in functionality
        !           714: in the following areas:
        !           715: 
        !           716: 1.  "Finish this loop" capability.  If I am stepping through code and
        !           717: encounter a for-, do-, or while-loop, after a few iterations I generally
        !           718: get bored.  I want to be able to say "finish this loop"; i.e. continue
        !           719: until the next statement after the loop is executed.  Note this is
        !           720: complicated by gotos and nested loops.
        !           721: 
        !           722: 2.  GDB only prints the last line of a multi-line statement which has been
        !           723: continued.  Since this is often of the form
        !           724: 
        !           725:        foobar));
        !           726: 
        !           727: it is not very convenient.  When stepping through a file using next (or step),
        !           728: ALL non-blank text lines (excepting perhaps close-braces?) between the last
        !           729: displayed line and the current one should be displayed.
        !           730: 
        !           731: 3.  If there is a way to call a function interactively, I couldn't find it
        !           732: in the on-line help.  (Having neither GNU Emacs or TeX, reading the .texinfo
        !           733: files is a bit tedious.)
        !           734: 
        !           735: 4.  On occasion, when debugging a function with deeply nested code in a loop,
        !           736: I want to have "hierarchical" breakpoints -- that is, I want certain
        !           737: breakpoints automatically enabled if a certain breakpoint is triggered,
        !           738: but not if it hasn't.  I haven't thought of a good design for this yet.
        !           739: 
        !           740: 5.  tbreak is not temporary enough; It should delete the breakpoint, not
        !           741: disable it.
        !           742: 
        !           743: 6.  what about "next to linenumber", or "continue to linenumber" -- the
        !           744: only difference being next single-steps and continue sets an ephemeral
        !           745: breakpoint and then deletes it.  This would also make debugging large
        !           746: functions easier.
        !           747: 
        !           748: 7.  variable access breakpoints (break when variable changes value)
        !           749: 
        !           750: 8.  should be able to use "set" to change initialization values before
        !           751: "run" is issued.  Makes setting of static debugging control variables
        !           752: easier.  Right now I have to break main all the time.
        !           753: 
        !           754: 9.  GDB seems to be slow in reading/processing the symbol table -- can
        !           755: this be improved?
        !           756: 
        !           757: 10.  Preprocessor support.  Is there any way to run the command input through
        !           758: the preprocessor or otherwise get a handle on defines?  Particlarly in
        !           759: debugging things like ncurses, which use umpteen defines.
        !           760: 
        !           761: (E.g., "delete_line" is defined as SP->_StrCaps[28] or some such nonsense.)
        !           762: 
        !           763: Perhaps you could spawn off a CPP and then pipe the command input to it,
        !           764: appropriately down-loading the included files and whatever # text was in
        !           765: the C file being debugged....
        !           766: 
        !           767: Most of these comments of course apply to GDB+ as well.
        !           768: 
        !           769: Well, that's just a few of my thoughts.  Hope they give you some ideas.
        !           770: 
        !           771:                                Alexis Layton
        !           772:                                [email protected]
        !           773: 
        !           774: 
        !           775: 1,,
        !           776: Summary-line: 27-Nov  steve%[email protected]  #gdb
        !           777: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Wed, 2 Dec 87 16:58:16 EST
        !           778: Received: by PREP.AI.MIT.EDU; Wed, 2 Dec 87 17:00:22 EST
        !           779: Message-Id: <[email protected]>
        !           780: Received: from relay2.cs.net by RELAY.CS.NET id ag03066; 2 Dec 87 16:06 EST
        !           781: Received: from next.com by RELAY.CS.NET id ae26721; 2 Dec 87 16:00 EST
        !           782: Received: from indiana.next.com by next.next.com (3.2/SMI-3.0DEV3)
        !           783:        id AA08711; Fri, 27 Nov 87 10:47:36 PST
        !           784: Date: Fri, 27 Nov 87 10:41:41 PST
        !           785: From: steve%[email protected]
        !           786: To: [email protected]
        !           787: Subject: gdb
        !           788: 
        !           789: *** EOOH ***
        !           790: Date: Fri, 27 Nov 87 10:41:41 PST
        !           791: From: steve%[email protected]
        !           792: To: [email protected]
        !           793: Subject: gdb
        !           794: 
        !           795:    I copied it into wheaties:gdb.tar.next.Z.  The following is our "TODO" list.
        !           796: An asterisk notes an entry is completed.
        !           797: 
        !           798: - objc features:
        !           799:        * printing objects:
        !           800:                - printing indexed instance variables.
        !           801:                * implement object-print command which lists
        !           802:                  class, methods, source file, etc.
        !           803:                * info objects command which lists all objects.
        !           804:        
        !           805:        * message expression evaluation:
        !           806:                * Use symbolic method name/object name.
        !           807:                - Add varargs support.
        !           808:        - printing instance variables:
        !           809:                - When all else fails, attempt to lookup an unknown 
        !           810:                  local as an instance variable (if currently in a
        !           811:                  method handler/.m file).
        !           812:        * breakpoints:
        !           813:                - set breakpoints in object/method handler.
        !           814:        * stepping:
        !           815:                - stepm command that steps over _msg call into the
        !           816:                  message handler when source is available.
        !           817:        * printing methods:
        !           818:                * info method that lists objects that implement a given
        !           819:                  method.
        !           820:        * list command:
        !           821:                - modifiy it so that you can list the source for a given
        !           822:                  object/method pair.
        !           823:        - backtrace:
        !           824:                - fix braindamaged backtrace (_msg doesn't maintain a6 linkage).
        !           825:        - poseAs:
        !           826:                - Reinitialize Obj-C-Data when poseAs is used.
        !           827: - tenex:
        !           828:        * Finish incremental history searches.
        !           829:        * Add history search/reverse search.
        !           830:        * Add \e< and \e>
        !           831:        - Save macros on exit.
        !           832:        - Add commands to reset/append/prepend macrofiles.
        !           833:        - Add ability to read macrofiles once in emacs mode.
        !           834:        - print bindings command.
        !           835:        - command completion:
        !           836:                - gdb commands?
        !           837:                - symbol table entries?
        !           838: - symbol tables:
        !           839:        - Modify current .sym file information to be left in .o files and 
        !           840:          relocated by the debugger at load time.
        !           841:        - Load .sym file info on demand. 
        !           842: - documentation:
        !           843: - mach port:
        !           844:        - use shared memory.
        !           845:        - multiple threads.
        !           846:        - multiple tasks.
        !           847:        - /dev/proc????
        !           848:                - debug an already running task.
        !           849:        - debug a program with minimal symbol information.
        !           850:        - debugger support for shared libraries.
        !           851: - misc:
        !           852:        - watchpoints.
        !           853:        - add a way to set evaluation scope/context to a file.
        !           854:        - disassembly enhancement:
        !           855:                - support symbolic names for locals and registers and
        !           856:                  args.
        !           857:        - macro args (for user commands).
        !           858:        - case insensitivity for searches (info command/list searches).
        !           859:        - by default, load symbol table with exec-file.
        !           860:        - clean up structure printing.
        !           861:        - assmebler source level debugging.
        !           862:        - CPP info in the debugger (be able to get to #defines).
        !           863: - gdbtool:
        !           864:     Source windows:
        !           865:       menus:
        !           866:        - tag support (callee/caller ala dir).
        !           867:        - break on line.
        !           868:        - unbreak on line.
        !           869:        - set one shot breakpoint.
        !           870:        - continue until line (with/without enabling other breakpoints).
        !           871:        - search forward/reverse.
        !           872:        - yank text for command window.
        !           873:       attributes:
        !           874:        - dir-like interface where each stack frame has a window.
        !           875:          Windows can be closed and are re-created when that stack frame
        !           876:          is reached again.  If windows are too slow, beat up Leo.
        !           877:        - source windows have line-numbers/breakpoint indicator/last 
        !           878:          PC in that window/current PC.
        !           879:        - full dir-like tags support for bringing up new windows (not on
        !           880:          the execution stack).
        !           881:        - Allow editing of source in a window (gray-scale for new lines/
        !           882:          deleted lines) so that current debugging session still works. ???
        !           883:        - incremental compiles (dream on!).
        !           884:     Data display windows:
        !           885:        - auto display window.
        !           886:        - graphic structure display.
        !           887:     Stack display window:
        !           888:        - stack trace display. Menu buttons:
        !           889:        - up/down.
        !           890:        - continue until stack level.
        !           891:     Command window:
        !           892:       menu:
        !           893:        - evaluate selected expression.
        !           894:       attributes:
        !           895: - Remote debugging:
        !           896:        - Add other protocols (ethernet?, shared memory).
        !           897: - C Interpreter.
        !           898:        - Control flow.
        !           899:        - Interpret changed code.
        !           900:        - Add subroutines.
        !           901: 
        !           902: 
        !           903: 
        !           904: 1,,
        !           905: Summary-line: 22-Oct  tiemann%[email protected]  #expanding file names
        !           906: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           907:        id AA22869; Thu, 22 Oct 87 09:50:30 PDT
        !           908: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Thu, 22 Oct 87 12:17:59 EDT
        !           909: Received: by PREP.AI.MIT.EDU; Thu, 22 Oct 87 12:21:00 EDT
        !           910: Received: from pp.mcc.com by MCC.COM with TCP; Thu 22 Oct 87 10:54:41-CDT
        !           911: Posted-Date: Thu, 22 Oct 87 10:55:13 CDT
        !           912: Received: from big-d.aca.mcc.com by pp.mcc.com (4.12/KA70822) 
        !           913:        id AA16571; Thu, 22 Oct 87 10:55:19 cdt
        !           914: Return-Path: <[email protected]>
        !           915: Received: by big-d.aca.mcc.com (3.2/KA70106)
        !           916:        id AA04247; Thu, 22 Oct 87 10:55:13 CDT
        !           917: Date: Thu, 22 Oct 87 10:55:13 CDT
        !           918: From: tiemann%[email protected] (Michael Tiemann)
        !           919: Message-Id: <[email protected]>
        !           920: To: [email protected]
        !           921: Subject: expanding file names
        !           922: 
        !           923: *** EOOH ***
        !           924: Posted-Date: Thu, 22 Oct 87 10:55:13 CDT
        !           925: Return-Path: <[email protected]>
        !           926: Date: Thu, 22 Oct 87 10:55:13 CDT
        !           927: From: tiemann%[email protected] (Michael Tiemann)
        !           928: To: [email protected]
        !           929: Subject: expanding file names
        !           930: 
        !           931: When running a program, gdb thoughtfully passes the argument list
        !           932: through the shell, expanding files and environment variables as
        !           933: needed.  It would be nice if the same facility were added to the
        !           934: command which adds directories to search paths.  For example, it would
        !           935: be nice to say "dir ~/foo" .
        !           936: 
        !           937: Michael
        !           938: 
        !           939: 
        !           940: 1, edited, answered,,
        !           941: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           942:        id AA26610; Wed, 2 Mar 88 05:27:51 PST
        !           943: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Wed, 2 Mar 88 08:26:23 EST
        !           944: Received: from cgl.ucsf.EDU by prep.ai.mit.edu; Wed, 2 Mar 88 08:25:58 EST
        !           945: Received: by cgl.ucsf.edu (5.54/GSC4.5)
        !           946:        id AA27646; Wed, 2 Mar 88 05:23:57 PST
        !           947: Received: by hop.toad.com id AA00787; Wed, 2 Mar 88 05:22:55 PST
        !           948: Date: Wed, 2 Mar 88 05:22:55 PST
        !           949: From: [email protected] (John Gilmore)
        !           950: Message-Id: <[email protected]>
        !           951: To: [email protected]
        !           952: Subject: A few things Sun dbx does that gdb doesn't...
        !           953: 
        !           954: *** EOOH ***
        !           955: Date: Wed, 2 Mar 88 05:22:55 PST
        !           956: From: [email protected] (John Gilmore)
        !           957: To: [email protected]
        !           958: Subject: A few things Sun dbx does that gdb doesn't...
        !           959: 
        !           960:  * gdb won't reread the executable's symbol table when its mod time
        !           961: has changed.  The user has to explicitly reread it after recompiling
        !           962: the software and before typing "run".
        !           963: 
        !           964:  * gdb has no command to report the current argv for "run" commands.
        !           965: "info program" or "info environment" should display this info.  (dbx
        !           966: doesn't do this either, but I noticed it at the same time.)
        !           967: 
        !           968: 
        !           969: 1, answered,,
        !           970: Received: by xcssun.Berkeley.EDU (5.57/1.25)
        !           971:        id AA14587; Tue, 16 Feb 88 16:19:12 PST
        !           972: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Tue, 16 Feb 88 19:17:21 EST
        !           973: Received: from UNIX.SRI.COM by prep.ai.mit.edu; Tue, 16 Feb 88 19:08:02 EST
        !           974: Received: by sri-unix.ARPA (5.31/5.14)
        !           975:        id AA25586; Tue, 16 Feb 88 16:12:32 PST
        !           976: From: [email protected]
        !           977: Received: from ozona.orc.olivetti.com by orc.uucp (3.2/SMI-3.2)
        !           978:        id AA01567; Tue, 16 Feb 88 16:01:02 PST
        !           979: Received: from localhost by ozona.orc.olivetti.com (3.2/SMI-3.2)
        !           980:        id AA08259; Tue, 16 Feb 88 16:02:22 PST
        !           981: Message-Id: <[email protected]>
        !           982: To: [email protected]
        !           983: Subject: GDB suggestion
        !           984: Reply-To: chase%[email protected]
        !           985: Date: Tue, 16 Feb 88 16:02:18 -0800
        !           986: 
        !           987: *** EOOH ***
        !           988: From: [email protected]
        !           989: To: [email protected]
        !           990: Subject: GDB suggestion
        !           991: Reply-To: chase%[email protected]
        !           992: Date: Tue, 16 Feb 88 16:02:18 -0800
        !           993: 
        !           994: 
        !           995: Today I found myself wanting a feature in a debugger that neither GDB
        !           996: nor DBX supports.  I checked the GDB documentation and could not find
        !           997: it there.  This may be too Unix-specific, so you may not want to add
        !           998: it.  It may also not be of general use.  Nevertheless, I will suggest
        !           999: it; it's certainly easy to ignore the suggestion.
        !          1000: 
        !          1001: What I wanted to do was limit the datasize of a program that I was
        !          1002: debugging (I am debugging someone else's garbage collector, lucky
        !          1003: me) without also imposing that limit on the debugger.  I didn't see
        !          1004: any mention of such a command in either debugger's documentation.
        !          1005: 
        !          1006: In other news, the alleged (ansi) C and Modula library is beginning to
        !          1007: work.  (The garbage collector is part of the Modula-2+ half.)
        !          1008: 
        !          1009: David Chase
        !          1010: Olivetti Research Center, Menlo Park
        !          1011: 
        !          1012: 
        !          1013: 1,,
        !          1014: Return-Path: <[email protected]>
        !          1015: Received: by frosted-flakes.ai.mit.edu; Sat, 30 Apr 88 17:05:42 EDT
        !          1016: Date: Sat, 30 Apr 88 17:05:42 EDT
        !          1017: From: [email protected] (Richard Stallman)
        !          1018: Message-Id: <[email protected]>
        !          1019: To: rms
        !          1020: Subject: GDB idea
        !          1021: 
        !          1022: *** EOOH ***
        !          1023: Return-Path: <[email protected]>
        !          1024: Date: Sat, 30 Apr 88 17:05:42 EDT
        !          1025: From: [email protected] (Richard Stallman)
        !          1026: To: rms
        !          1027: Subject: GDB idea
        !          1028: 
        !          1029: Expressions should record the block that symbols were looked up in,
        !          1030: if the symbols proved not to be static,
        !          1031: and an auto-display should be disabled automatically when it is
        !          1032: not in the block where the results would be meaningful.
        !          1033: 
        !          1034: 
        !          1035: 1,,
        !          1036: Received: from ai.ai.mit.edu by wheaties.ai.mit.edu; Sun, 8 May 88 12:52:31 EDT
        !          1037: Received: from prep.ai.mit.edu (TCP 20015020016) by AI.AI.MIT.EDU  8 May 88 05:38:21 EDT
        !          1038: Received: from lilac.Berkeley.EDU by prep.ai.mit.edu; Sun, 8 May 88 04:12:02 EST
        !          1039: Received: from web5h.berkeley.edu
        !          1040:        by lilac.berkeley.edu (5.54 (CFC 4.22.3)/1.16.18)
        !          1041:        id AA27424; Sun, 8 May 88 02:33:06 PDT
        !          1042: Received: by web5h.berkeley.edu (3.2/SMI-3.0DEV3.8MXl)
        !          1043:        id AA05599; Sun, 8 May 88 02:33:41 PDT
        !          1044: Date: Sun, 8 May 88 02:33:41 PDT
        !          1045: From: phr%[email protected]
        !          1046: Message-Id: <[email protected]>
        !          1047: To: [email protected]
        !          1048: Subject: suggestion (gdb 2.4): print function names
        !          1049: 
        !          1050: *** EOOH ***
        !          1051: Date: Sun, 8 May 88 02:33:41 PDT
        !          1052: From: phr%[email protected]
        !          1053: To: [email protected]
        !          1054: Subject: suggestion (gdb 2.4): print function names
        !          1055: 
        !          1056: If p is a pointer to function, "print p" should print the name
        !          1057: of the function that p points to, as well as the numeric value.
        !          1058: Dbx does this.
        !          1059: 
        !          1060: 
        !          1061: 
        !          1062: 1,,
        !          1063: Received: from lilac.berkeley.edu by wheaties.ai.mit.edu; Wed, 11 May 88 23:14:39 EDT
        !          1064: Received: from web8e.berkeley.edu
        !          1065:        by lilac.berkeley.edu (5.54 (CFC 4.22.3)/1.16.18)
        !          1066:        id AA11864; Wed, 11 May 88 20:11:12 PDT
        !          1067: Received: by web8e.berkeley.edu (3.2/SMI-3.0DEV3.8MXl)
        !          1068:        id AA06549; Wed, 11 May 88 20:11:44 PDT
        !          1069: Date: Wed, 11 May 88 20:11:44 PDT
        !          1070: From: phr%[email protected]
        !          1071: Message-Id: <[email protected]>
        !          1072: To: [email protected]
        !          1073: Subject: gdb suggestion
        !          1074: 
        !          1075: *** EOOH ***
        !          1076: Date: Wed, 11 May 88 20:11:44 PDT
        !          1077: From: phr%[email protected]
        !          1078: To: [email protected]
        !          1079: Subject: gdb suggestion
        !          1080: 
        !          1081: If the process signal mask of a program is saved in the core dump,
        !          1082: then gdb should have a way to read it.  I have an xemacs that hangs
        !          1083: in a blocking read from XCreateWindow when I run it from the csh,
        !          1084: but works fine when run under gdb.  (Does this mean a gdb bug?).
        !          1085: 
        !          1086: 
        !          1087: 1, answered,,
        !          1088: Return-Path: <[email protected]>
        !          1089: Received: by sugar-smacks.ai.mit.edu; Tue, 24 May 88 00:34:01 EDT
        !          1090: Date: Tue, 24 May 88 00:34:01 EDT
        !          1091: From: [email protected] (Thomas M. Breuel)
        !          1092: Message-Id: <[email protected]>
        !          1093: To: rms
        !          1094: Subject: problem with gdb...
        !          1095: 
        !          1096: *** EOOH ***
        !          1097: Return-Path: <[email protected]>
        !          1098: Date: Tue, 24 May 88 00:34:01 EDT
        !          1099: From: [email protected] (Thomas M. Breuel)
        !          1100: To: rms
        !          1101: Subject: problem with gdb...
        !          1102: 
        !          1103: When tracing a program that forks, the breakpoints aren't removed in the
        !          1104: child and it dies with a trace/bpt trap. Isn't there a more proper way to
        !          1105: handle this?
        !          1106: 
        !          1107:                                        Thomas.
        !          1108: 
        !          1109: 
        !          1110: 1, forwarded, answered,,
        !          1111: Received: from ATHENA (ATHENA.MIT.EDU) by wheaties.ai.mit.edu; Sat, 25 Jun 88 04:02:57 EDT
        !          1112: From: [email protected]
        !          1113: Received: by ATHENA.MIT.EDU (5.45/4.7) id AA21892; Sat, 25 Jun 88 04:00:11 EDT
        !          1114: Received: by BRIDGETOWN.MIT.EDU (5.45/4.7) id AA13640; Sat, 25 Jun 88 03:59:57 EDT
        !          1115: Date: Sat, 25 Jun 88 03:59:57 EDT
        !          1116: Message-Id: <[email protected]>
        !          1117: To: [email protected]
        !          1118: Subject: gdb suggestion
        !          1119: 
        !          1120: *** EOOH ***
        !          1121: From: [email protected]
        !          1122: Date: Sat, 25 Jun 88 03:59:57 EDT
        !          1123: To: [email protected]
        !          1124: Subject: gdb suggestion
        !          1125: 
        !          1126: Debugging X toolkit stuff involves looking at structures that fill up
        !          1127: several screens.  GDB would be a lot easier to use if it supported
        !          1128: some sort of pretty-printing of these structures.
        !          1129: 
        !          1130: Jeff
        !          1131: 
        !          1132: 
        !          1133: 1, forwarded,,
        !          1134: Received: from prep.ai.mit.edu by wheaties.ai.mit.edu; Thu, 23 Jun 88 04:32:12 EDT
        !          1135: Received: from ic.Berkeley.EDU by prep.ai.mit.edu; Thu, 23 Jun 88 03:19:27 EST
        !          1136: Received: by ic.berkeley.edu (5.57/1.28)
        !          1137:        id AA02077; Thu, 23 Jun 88 01:28:08 PDT
        !          1138: Date: Thu, 23 Jun 88 01:28:08 PDT
        !          1139: From: [email protected] (Wayne A. Christopher)
        !          1140: Message-Id: <[email protected]>
        !          1141: To: [email protected]
        !          1142: Subject: gdb request
        !          1143: 
        !          1144: *** EOOH ***
        !          1145: Date: Thu, 23 Jun 88 01:28:08 PDT
        !          1146: From: [email protected] (Wayne A. Christopher)
        !          1147: To: [email protected]
        !          1148: Subject: gdb request
        !          1149: 
        !          1150: One suggestion for future versions of gdb -- the trace command of dbx is very
        !          1151: useful, and a lot easier to use than the "commands" feature in gdb.  Although
        !          1152: it's not necessary, it would be nice to have it.
        !          1153: 
        !          1154:        Wayne
        !          1155: 
        !          1156: 
        !          1157: 1, forwarded,,
        !          1158: Return-Path: <[email protected]>
        !          1159: Received: from prep.ai.mit.edu by life.ai.mit.edu; Sun, 24 Jul 88 03:40:33 EDT
        !          1160: Received: from scruff.Berkeley.EDU by prep.ai.mit.edu; Sun, 24 Jul 88 02:17:27 EST
        !          1161: Received: by scruff.berkeley.edu (5.57/1.28)
        !          1162:        id AA19389; Sun, 24 Jul 88 00:35:41 PDT
        !          1163: Date: Sun, 24 Jul 88 00:35:41 PDT
        !          1164: From: [email protected] (Wayne A. Christopher)
        !          1165: Message-Id: <[email protected]>
        !          1166: To: [email protected]
        !          1167: Subject: gdb feature
        !          1168: 
        !          1169: *** EOOH ***
        !          1170: Return-Path: <[email protected]>
        !          1171: Date: Sun, 24 Jul 88 00:35:41 PDT
        !          1172: From: [email protected] (Wayne A. Christopher)
        !          1173: To: [email protected]
        !          1174: Subject: gdb feature
        !          1175: 
        !          1176: It would be nice if I could stop and background a process running under
        !          1177: gdb.  Now gdb lets the process get the ^Z and gives me a prompt, instead
        !          1178: of stopping also.
        !          1179: 
        !          1180:        Wayne
        !          1181: 
        !          1182: 
        !          1183: 1,,
        !          1184: Return-Path: <[email protected]>
        !          1185: Received: from prep.ai.mit.edu by life.ai.mit.edu; Tue, 30 Aug 88 23:18:51 EDT
        !          1186: Received: from ATHENA.MIT.EDU by prep.ai.mit.edu; Tue, 30 Aug 88 21:44:58 EST
        !          1187: Received: by ATHENA.MIT.EDU (5.45/4.7) id AA29972; Tue, 30 Aug 88 23:16:03 EDT
        !          1188: Received: by E40-342A-3 (5.45/4.7)
        !          1189:        id AA10004; Tue, 30 Aug 88 23:15:58 EDT
        !          1190: Date: Tue, 30 Aug 88 23:15:58 EDT
        !          1191: From: Bill Sommerfeld <[email protected]>
        !          1192: Message-Id: <8808310315.AA10004@E40-342A-3>
        !          1193: To: [email protected]
        !          1194: Subject: SET_STACK_LIMIT_HUGE.
        !          1195: 
        !          1196: *** EOOH ***
        !          1197: Return-Path: <[email protected]>
        !          1198: Date: Tue, 30 Aug 88 23:15:58 EDT
        !          1199: From: Bill Sommerfeld <[email protected]>
        !          1200: To: [email protected]
        !          1201: Subject: SET_STACK_LIMIT_HUGE.
        !          1202: 
        !          1203: I just had the pleasure of figuring out why a program which worked
        !          1204: under GDB failed (with a segv) when run under the shell.  It turns out
        !          1205: that it was allocating too much space in the stack, and dying with a
        !          1206: segmentation violation when it overran the stack.
        !          1207: 
        !          1208: I note that gdb/main.c unlimits the stack, presumably to allow gdb to
        !          1209: use alloca to its heart's content.  This is well and good, but in the
        !          1210: interests of making the execution and debugging environments
        !          1211: functionally identical, could it at least set the limit back down to
        !          1212: what it used to be when it starts the child process?
        !          1213: 
        !          1214:                                        - Bill
        !          1215: 
        !          1216: 
        !          1217: 1, answered,,
        !          1218: Return-Path: <[email protected]>
        !          1219: Received: from hobbes.ai.mit.edu by wheaties.ai.mit.edu; Thu, 1 Sep 88 23:13:03 EDT
        !          1220: Received: from localhost.ARPA by hobbes.ai.mit.edu; Thu, 1 Sep 88 23:08:41 est
        !          1221: Message-Id: <[email protected]>
        !          1222: To: [email protected] (Richard Stallman)
        !          1223: Cc: [email protected]
        !          1224: Subject: Re: GDB work that needs to be done 
        !          1225: In-Reply-To: Your message of Thu, 01 Sep 88 19:23:47 -0400.
        !          1226:              <[email protected]        !          1227: Date: Thu, 01 Sep 88 23:08:39 +0900
        !          1228: From: [email protected]
        !          1229: 
        !          1230: *** EOOH ***
        !          1231: Return-Path: <[email protected]>
        !          1232: To: [email protected] (Richard Stallman)
        !          1233: Cc: [email protected]
        !          1234: Subject: Re: GDB work that needs to be done 
        !          1235: In-Reply-To: Your message of Thu, 01 Sep 88 19:23:47 -0400.
        !          1236:              <[email protected]        !          1237: Date: Thu, 01 Sep 88 23:08:39 +0900
        !          1238: From: [email protected]
        !          1239: 
        !          1240: 
        !          1241: Also:
        !          1242: 
        !          1243: 5. Step until past current line or out of stack frame.
        !          1244: 
        !          1245: 
        !          1246: 1,,
        !          1247: Return-Path: <[email protected]>
        !          1248: Received: by sugar-bombs.ai.mit.edu; Fri, 2 Sep 88 12:43:28 EDT
        !          1249: Date: Fri, 2 Sep 88 12:43:28 EDT
        !          1250: From: [email protected] (Richard Stallman)
        !          1251: Message-Id: <[email protected]>
        !          1252: To: [email protected]
        !          1253: Cc: rms
        !          1254: In-Reply-To: [email protected]'s message of Thu, 01 Sep 88 23:08:39 +0900 <[email protected]>
        !          1255: Subject: GDB work that needs to be done 
        !          1256: 
        !          1257: *** EOOH ***
        !          1258: Return-Path: <[email protected]>
        !          1259: Date: Fri, 2 Sep 88 12:43:28 EDT
        !          1260: From: [email protected] (Richard Stallman)
        !          1261: To: [email protected]
        !          1262: Cc: rms
        !          1263: In-Reply-To: [email protected]'s message of Thu, 01 Sep 88 23:08:39 +0900 <[email protected]>
        !          1264: Subject: GDB work that needs to be done 
        !          1265: 
        !          1266:      Step until past current line or out of stack frame.
        !          1267: 
        !          1268: I think this should be a command called `until':
        !          1269: 
        !          1270:    until LINE    run until line LINE.
        !          1271:    until        run until reach the following line.
        !          1272: 
        !          1273: It can work by setting a temporary (delete when hit) breakpoint
        !          1274: at the specified destination and then doing `finish'.
        !          1275: 
        !          1276: 
        !          1277: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.