From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10769 invoked by alias); 10 Jun 2004 16:22:07 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 10714 invoked from network); 10 Jun 2004 16:22:05 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 10 Jun 2004 16:22:05 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i5AGLti7011355 for ; Thu, 10 Jun 2004 12:22:05 -0400 Received: from localhost.redhat.com (to-dhcp51.toronto.redhat.com [172.16.14.151]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i5AGLs028477; Thu, 10 Jun 2004 12:21:54 -0400 Received: from gnu.org (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 102852B9D; Thu, 10 Jun 2004 12:21:49 -0400 (EDT) Message-ID: <40C88A9C.7060706@gnu.org> Date: Thu, 10 Jun 2004 16:22:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-GB; rv:1.4.1) Gecko/20040217 MIME-Version: 1.0 To: Michael Snyder , Elena Zannoni , Eli Zaretskii Cc: gdb-patches@sources.redhat.com Subject: Re: [HEADS-UP] gdb segfault References: <409C5170.8040702@redhat.com> <40A0272D.5080702@gnu.org> <16572.43064.43519.774441@localhost.redhat.com> <40BCBFE1.6010103@redhat.com> In-Reply-To: <40BCBFE1.6010103@redhat.com> Content-Type: multipart/mixed; boundary="------------010401000102010407000302" X-SW-Source: 2004-06/txt/msg00229.txt.bz2 This is a multi-part message in MIME format. --------------010401000102010407000302 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1102 > Elena Zannoni wrote: > >> Andrew Cagney writes: >> > > Hey yo -- >> > > > > gdb is seg-faulting immediately whenever its run with --noasync. >> > > I have an old build from the beginning of March that doesn't >> > > do it (nor do even older ones), so it's probably a change >> > > from between then and now. >> > > > > It crashes in display_gdb_prompt, as called from >> > > tui_command_loop. Here's a backtrace. > > Sounds like it's time to delete --noasync .... >> >> I think so, yes. > > > It bothers me that ^C doesn't work with async, and I can't fall back > to noasync to make it work. I think async should work (wrt. ^C, at > least), before we delete noasync. Hmm, ^C with noasync doesn't work either, it dumps core ;-) Lets all take responsibility for this problem and see through the proper fix: http://sources.redhat.com/ml/gdb-patches/2004-05/msg00320.html http://sources.redhat.com/ml/gdb-patches/2004-02/msg00530.html I've attached is the first of two initial steps - disable the broken async code ready for its removal. Then we can fix QUIT. Eli, Elena? Andrew --------------010401000102010407000302 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 4409 Index: doc/ChangeLog 2004-06-10 Andrew Cagney * gdb.texinfo (Mode Options): Delete documentation on "-async" and "-noasync". 2004-06-10 Andrew Cagney * defs.h (event_loop_p): Replace variable declaration with macro, always 1. * main.c (captured_main): Delete options "-async" and "-noasync". (event_loop_p): Delete variable. * NEWS: Mention that "-async" and "-noasync" were removed. Index: NEWS =================================================================== RCS file: /cvs/src/src/gdb/NEWS,v retrieving revision 1.151 diff -p -u -r1.151 NEWS --- NEWS 26 May 2004 06:32:01 -0000 1.151 +++ NEWS 10 Jun 2004 16:18:01 -0000 @@ -3,6 +3,11 @@ *** Changes since GDB 6.1: +* "-async" and "-noasync" options removed. + +Support for the broken "-noasync" option has been removed (it caused +GDB to dump core). + * New ``start'' command. This command runs the program until the begining of the main procedure. Index: defs.h =================================================================== RCS file: /cvs/src/src/gdb/defs.h,v retrieving revision 1.146 diff -p -u -r1.146 defs.h --- defs.h 8 May 2004 23:02:10 -0000 1.146 +++ defs.h 10 Jun 2004 16:18:01 -0000 @@ -1216,8 +1216,11 @@ struct target_waitstatus; struct cmd_list_element; /* Should the asynchronous variant of the interpreter (using the - event-loop) be enabled? */ -extern int event_loop_p; + event-loop) be enabled? */ +/* NOTE: cagney/2004-06-10: GDB changed to always uses the event-loop. + A follow-on cleanup is to eliminate references to + "event_loop_p". */ +#define event_loop_p 1 extern void (*deprecated_init_ui_hook) (char *argv0); extern void (*deprecated_command_loop_hook) (void); Index: main.c =================================================================== RCS file: /cvs/src/src/gdb/main.c,v retrieving revision 1.41 diff -p -u -r1.41 main.c --- main.c 21 Apr 2004 23:52:20 -0000 1.41 +++ main.c 10 Jun 2004 16:18:01 -0000 @@ -49,12 +49,6 @@ int display_time; int display_space; -/* Whether this is the async version or not. The async version is - invoked on the command line with the -nw --async options. In this - version, the usual command_loop is substituted by and event loop which - processes UI events asynchronously. */ -int event_loop_p = 1; - /* The selected interpreter. This will be used as a set command variable, so it should always be malloc'ed - since do_setshow_command will free it. */ @@ -253,8 +247,6 @@ captured_main (void *data) }; static struct option long_options[] = { - {"async", no_argument, &event_loop_p, 1}, - {"noasync", no_argument, &event_loop_p, 0}, #if defined(TUI) {"tui", no_argument, 0, OPT_TUI}, #endif Index: doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.204 diff -p -u -r1.204 gdb.texinfo --- doc/gdb.texinfo 24 May 2004 23:53:58 -0000 1.204 +++ doc/gdb.texinfo 10 Jun 2004 16:18:02 -0000 @@ -1065,30 +1065,6 @@ that control @value{GDBN}, and level 2 h The annotation mechanism has largely been superseeded by @sc{gdb/mi} (@pxref{GDB/MI}). -@item -async -@cindex @code{--async} -Use the asynchronous event loop for the command-line interface. -@value{GDBN} processes all events, such as user keyboard input, via a -special event loop. This allows @value{GDBN} to accept and process user -commands in parallel with the debugged process being -run@footnote{@value{GDBN} built with @sc{djgpp} tools for -MS-DOS/MS-Windows supports this mode of operation, but the event loop is -suspended when the debuggee runs.}, so you don't need to wait for -control to return to @value{GDBN} before you type the next command. -(@emph{Note:} as of version 5.1, the target side of the asynchronous -operation is not yet in place, so @samp{-async} does not work fully -yet.) -@c FIXME: when the target side of the event loop is done, the above NOTE -@c should be removed. - -When the standard input is connected to a terminal device, @value{GDBN} -uses the asynchronous event loop by default, unless disabled by the -@samp{-noasync} option. - -@item -noasync -@cindex @code{--noasync} -Disable the asynchronous event loop for the command-line interface. - @item --args @cindex @code{--args} Change interpretation of command line so that arguments following the --------------010401000102010407000302--