Browse Source

Change behavour of internal-error to quit and dump core by default.

binutils-2_12-branch
Andrew Cagney 25 years ago
parent
commit
375fc98382
  1. 5
      gdb/ChangeLog
  2. 5
      gdb/testsuite/ChangeLog
  3. 6
      gdb/testsuite/gdb.base/maint.exp
  4. 29
      gdb/utils.c

5
gdb/ChangeLog

@ -1,3 +1,8 @@
2002-01-17 Andrew Cagney <ac131313@redhat.com>
* utils.c (internal_verror): Fix comments, default is yes not no.
Update queries to match. Default to quit and dump core.
2002-01-17 Andrew Cagney <ac131313@redhat.com> 2002-01-17 Andrew Cagney <ac131313@redhat.com>
* breakpoint.c: Update assuming #if UI_OUT is always true. Update * breakpoint.c: Update assuming #if UI_OUT is always true. Update

5
gdb/testsuite/ChangeLog

@ -1,3 +1,8 @@
2002-01-17 Andrew Cagney <ac131313@redhat.com>
* gdb.base/maint.exp: Update ``maint internal-error'' to match
continue/quit query. Update copyright.
2002-01-13 Daniel Jacobowitz <drow@mvista.com> 2002-01-13 Daniel Jacobowitz <drow@mvista.com>
* gdb.c++/demangle.exp: Accept slightly dubious v2 demangler result * gdb.c++/demangle.exp: Accept slightly dubious v2 demangler result

6
gdb/testsuite/gdb.base/maint.exp

@ -1,4 +1,4 @@
# Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. # Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -660,8 +660,8 @@ gdb_expect {
send_gdb "maint internal-error\n" send_gdb "maint internal-error\n"
gdb_expect { gdb_expect {
-re "Continue this debugging session.*\\(y or n\\) $" { -re "Quit this debugging session.*\\(y or n\\) $" {
send_gdb "y\n" send_gdb "n\n"
gdb_expect { gdb_expect {
-re "Create a core file.*\\(y or n\\) $" { -re "Create a core file.*\\(y or n\\) $" {
send_gdb "n\n" send_gdb "n\n"

29
gdb/utils.c

@ -694,7 +694,7 @@ internal_verror (const char *file, int line,
{ {
static char msg[] = "Internal GDB error: recursive internal error.\n"; static char msg[] = "Internal GDB error: recursive internal error.\n";
static int dejavu = 0; static int dejavu = 0;
int continue_p; int quit_p;
int dump_core_p; int dump_core_p;
/* don't allow infinite error recursion. */ /* don't allow infinite error recursion. */
@ -719,31 +719,32 @@ internal_verror (const char *file, int line,
vfprintf_unfiltered (gdb_stderr, fmt, ap); vfprintf_unfiltered (gdb_stderr, fmt, ap);
fputs_unfiltered ("\n", gdb_stderr); fputs_unfiltered ("\n", gdb_stderr);
/* Default (no case) is to quit GDB. When in batch mode this /* Default (yes/batch case) is to quit GDB. When in batch mode this
lessens the likelhood of GDB going into an infinate loop. */ lessens the likelhood of GDB going into an infinate loop. */
continue_p = query ("\ quit_p = query ("\
An internal GDB error was detected. This may make further\n\ An internal GDB error was detected. This may make further\n\
debugging unreliable. Continue this debugging session? "); debugging unreliable. Quit this debugging session? ");
/* Default (no case) is to not dump core. Lessen the chance of GDB /* Default (yes/batch case) is to dump core. This leaves a GDB
leaving random core files around. */ dropping so that it is easier to see that something went wrong to
GDB. */
dump_core_p = query ("\ dump_core_p = query ("\
Create a core file containing the current state of GDB? "); Create a core file containing the current state of GDB? ");
if (continue_p) if (quit_p)
{ {
if (dump_core_p) if (dump_core_p)
{ abort (); /* NOTE: GDB has only three calls to abort(). */
if (fork () == 0) else
abort (); /* NOTE: GDB has only three calls to abort(). */ exit (1);
}
} }
else else
{ {
if (dump_core_p) if (dump_core_p)
abort (); /* NOTE: GDB has only three calls to abort(). */ {
else if (fork () == 0)
exit (1); abort (); /* NOTE: GDB has only three calls to abort(). */
}
} }
dejavu = 0; dejavu = 0;

Loading…
Cancel
Save