Annotation of 43BSDReno/contrib/emacs-18.55/gdb/gdb.ideas, revision 1.1.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.