jkh@pcsbst.UUCP (jkh) (05/08/89)
While working under xgdb (mine, not the version that comes with GNU), I noticed the following problem: xgdb tracks the current stack level and function name by parsing messages of the form: #\([0-9]*\) \([a-zA-Z_]*\) .* (.* line [0-9]*)\n These are generated with "up", "frame" and "down", as one would expect. However, should one be "up" a few frames and then do a "step", an IMPLICIT "down" is done, without printing the change in stack level. To wit: (gdb) step ^Z^Z/usr/ben/jkh/src/xgdb/queue.c:37:797:beg (gdb) up #1 0x30ee in launchProcess (name=(char *) 0x102446 "gdb", args=(char **) 0x1163 2c, term=(void (*)()) 0x1d6) (process.c line 181) ^Z^Z/usr/ben/jkh/src/xgdb/process.c:181:3994:beg (gdb) up #2 0x18a4 in main (ac=1, av=(char **) 0x3f7fed56, 1065348446) (main.c line 139) ^Z^Z/usr/ben/jkh/src/xgdb/main.c:139:3975:beg (gdb) step ^Z^Z/usr/ben/jkh/src/xgdb/queue.c:44:947:beg ^^^^^ Arrrrgghhh! As you can see, the step causes the frame number to be set back to the bottom, but it doesn't announce this fact. This causes xgdb to have the wrong line and function name information. Fix? (We'll fix it locally, but..) Jordan -- -------- Jordan Hubbard PCS Computer Systeme GmbH West Germany UUCP: {uunet,decwrl}!pyramid!pcsbst!jkh ARPA: jkh@violet.berkeley.edu Hey! Leave that alone!