gdb crash with -i=mi2

Michael Elizabeth Chastain
2003-08-08T17:12:54Z

The new mi2 tests are bombing out big time for me!

% gdb -i=mi2
Segmentation fault (core dumped)

Here is a backtrace.

#0 0x080c6e2a in interp_set (interp=0x0)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/interps.c:160
#1 0x080c6ee5 in interp_set (interp=0x82a1bc8)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/interps.c:186
#2 0x08077d69 in captured_main (data=0x0)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/main.c:582
#3 0x0810cd91 in do_catch_errors (uiout=0x8261fa0, data=0x1)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/top.c:497
#4 0x0810ccc0 in catcher (func=0x810cd80 <do_catch_errors>,
func_uiout=0x8261fa0, func_args=0xbffff7d0, func_val=0xbffff7c8,
func_caught=0xbffff7cc, errstring=0x1 <Address 0x1 out of bounds>, mask=6)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/top.c:429
#5 0x0810cdea in catch_errors (func=0x1, func_args=0x1,
errstring=0x1 <Address 0x1 out of bounds>, mask=1)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/top.c:509
#6 0x08078591 in gdb_main (args=0x829b5c0)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/main.c:820
#7 0x0807772e in main (argc=1, argv=0x1)
at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/gdb.c:35
#8 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6

This happens with:

gdb HEAD 2003-08-07 20:28:13 UTC

It also happens with:

gdb HEAD 2003-08-07 20:31:55 UTC

native i686-pc-linux-gnu, red hat linux 8.
gdb built with gcc 3.3, binutils 2.14.

It's happening in this code:

180 /* Clear out any installed interpreter hooks/event handlers. */
181 clear_interpreter_hooks ();
182
183 if (interp->procs->resume_proc != NULL
184 && (!interp->procs->resume_proc (interp->data)))
185 {
186 if (!interp_set (old_interp))
187 internal_error (__FILE__, __LINE__,
188 "Failed to initialize new interp \"%s\" %s",
189 interp->name, "and could not restore old interp!
\n");

This is calling interp_set recursively with old_interp=0x0
(as shown in the stack trace).

Michael C