From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7598 invoked by alias); 4 Dec 2003 18:59:35 -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 7590 invoked from network); 4 Dec 2003 18:59:34 -0000 Received: from unknown (HELO localhost.redhat.com) (66.30.197.194) by sources.redhat.com with SMTP; 4 Dec 2003 18:59:34 -0000 Received: by localhost.redhat.com (Postfix, from userid 469) id CB4411A42DB; Thu, 4 Dec 2003 13:59:33 -0500 (EST) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16335.33813.728513.41873@localhost.redhat.com> Date: Thu, 04 Dec 2003 18:59:00 -0000 To: Mark Newman Cc: gdb-patches@sources.redhat.com, mark.newman@lmco.com, ankit_plug@yahoo.com, Subject: [RFA] async changes; Was: Re: regarding transparent data ranges (in tracepoint support) In-Reply-To: <20031129020725.27486.qmail@web13804.mail.yahoo.com> References: <20031129013434.GA13711@nevyn.them.org> <20031129020725.27486.qmail@web13804.mail.yahoo.com> X-SW-Source: 2003-12/txt/msg00123.txt.bz2 Mark Newman writes: > I looked at gdb/CONTRIBUTE. I hope that this meets > the requirements: > It is usually a good idea to change the subject to something relevant to the patch. Here you are not dealing with tracepoints at all. [redirected to gdb-patches only, specified subject] > Change Log: > > 2003-11-28 Mark Newman > > * provide a better method for filtering of asyn > commands > In the Changelog you need an entry for each file, and for each file an entry for each function you have touched. see below for more comments. > > > > =================================================================== > RCS file: /cvs/src/src/gdb/infrun.c,v > retrieving revision 1.122 > diff -c -p -r1.122 infrun.c > *** gdb/infrun.c 25 Nov 2003 16:01:36 -0000 1.122 > --- gdb/infrun.c 29 Nov 2003 02:00:15 -0000 > *************** > *** 44,49 **** > --- 44,51 ---- > #include "value.h" > #include "observer.h" > #include "language.h" > + #include "cli/cli-decode.h" > + > > /* Prototypes for local functions */ > > *************** Pass and Stop may be combined.", > NULL)); > *** 4005,4010 **** > --- 4007,4014 ---- > add_cmd ("stop", class_obscure, > not_just_help_class_command, "There is no `stop' > command, but you can set a hook on `stop'.\n\ > This allows you to set a list of commands to be run > each time execution\n\ > of the program stops.", &cmdlist); > + async_cmd(stop_command , ASYNC_OK); > + > > numsigs = (int) TARGET_SIGNAL_LAST; > signal_stop = (unsigned char *) xmalloc (sizeof > (signal_stop[0]) * numsigs); > Index: gdb/maint.c > =================================================================== > RCS file: /cvs/src/src/gdb/maint.c,v > retrieving revision 1.40 > diff -c -p -r1.40 maint.c > *** gdb/maint.c 21 Sep 2003 01:26:45 -0000 1.40 > --- gdb/maint.c 29 Nov 2003 02:00:15 -0000 > *************** Configure variables internal to GDB > that > *** 734,745 **** > 0/*allow-unknown*/, > &maintenancelist); > > ! add_prefix_cmd ("show", class_maintenance, > maintenance_show_cmd, "\ > Show GDB internal variables used by the GDB > maintainer.\n\ > Configure variables internal to GDB that aid in > GDB's maintenance", > &maintenance_show_cmdlist, "maintenance show ", > 0/*allow-unknown*/, > ! &maintenancelist); > > #ifndef _WIN32 > add_cmd ("dump-me", class_maintenance, > maintenance_dump_me, > --- 734,746 ---- > 0/*allow-unknown*/, > &maintenancelist); > > ! async_cmd ( add_prefix_cmd ("show", > class_maintenance, maintenance_show_cmd, "\ > Show GDB internal variables used by the GDB > maintainer.\n\ > Configure variables internal to GDB that aid in > GDB's maintenance", > &maintenance_show_cmdlist, "maintenance show ", > 0/*allow-unknown*/, > ! &maintenancelist) > ! , ASYNC_OK); > Instead of nesting calls like that, could you declare a variable 'c' to be used to store the return value of add_prefix_cmd and then call async_cmd with that parameter? > #ifndef _WIN32 > add_cmd ("dump-me", class_maintenance, > maintenance_dump_me, > Index: gdb/top.c > =================================================================== > RCS file: /cvs/src/src/gdb/top.c,v > retrieving revision 1.85 > diff -c -p -r1.85 top.c > *** gdb/top.c 8 Nov 2003 00:13:03 -0000 1.85 > --- gdb/top.c 29 Nov 2003 02:00:19 -0000 > *************** execute_command (char *p, int > from_tty) > *** 668,679 **** > > /* If the target is running, we allow only a > limited set of > commands. */ > ! if (event_loop_p && target_can_async_p () && > target_executing) > ! if (strcmp (c->name, "help") != 0 > ! && strcmp (c->name, "pwd") != 0 > ! && strcmp (c->name, "show") != 0 > ! && strcmp (c->name, "stop") != 0) > ! error ("Cannot execute this command while the > target is running."); > > /* Pass null arg rather than an empty one. */ > arg = *p ? p : 0; > --- 668,676 ---- > > /* If the target is running, we allow only a > limited set of > commands. */ > ! if (event_loop_p && target_can_async_p () && > target_executing) > ! if ((c->flags & ASYNC_OK) != 0) > ! error ("Cannot execute this command while > the target is running."); > > /* Pass null arg rather than an empty one. */ > arg = *p ? p : 0; > *************** execute_command (char *p, int > from_tty) > *** 747,752 **** > --- 744,757 ---- > warned = 1; > } > } > + > + if (event_loop_p && target_can_async_p () && > target_executing) { > + if ((c->flags & ASYNC_WAIT) != 0) { > + wait_for_inferior(); > + } > + } > + I don't get this. You never set ASYNC_WAIT. What are you trying to do? > + > } > > /* Read commands from `instream' and execute them > Index: gdb/cli/cli-cmds.c > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v > retrieving revision 1.36 > diff -c -p -r1.36 cli-cmds.c > *** gdb/cli/cli-cmds.c 8 Nov 2003 00:13:03 -0000 1.36 > --- gdb/cli/cli-cmds.c 29 Nov 2003 02:00:20 -0000 > *************** The commands below can be used to > select > *** 1056,1063 **** > > /* Define general commands. */ > > ! add_com ("pwd", class_files, pwd_command, > ! "Print working directory. This is used for your > program as well."); > c = add_cmd ("cd", class_files, cd_command, > "Set working directory to DIR for debugger > and program being debugged.\n\ > The change does not take effect for the program > being debugged\n\ > --- 1056,1064 ---- > > /* Define general commands. */ > > ! async_cmd(add_com ("pwd", class_files, > pwd_command, > ! "Print working directory. This is used for your > program as well.") > ! , ASYNC_OK); Same here. Use a variable. > c = add_cmd ("cd", class_files, cd_command, > "Set working directory to DIR for debugger > and program being debugged.\n\ > The change does not take effect for the program > being debugged\n\ > *************** when gdb is started.", &cmdlist); > *** 1091,1096 **** > --- 1092,1099 ---- > > add_com ("quit", class_support, quit_command, > "Exit gdb."); > c = add_com ("help", class_support, help_command, > "Print list of commands."); > + async_cmd(c, ASYNC_OK); > + > set_cmd_completer (c, command_completer); > add_com_alias ("q", "quit", class_support, 1); > add_com_alias ("h", "help", class_support, 1); > Index: gdb/cli/cli-decode.c > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v > retrieving revision 1.34 > diff -c -p -r1.34 cli-decode.c > *** gdb/cli/cli-decode.c 8 Nov 2003 00:13:03 -0000 > 1.34 > --- gdb/cli/cli-decode.c 29 Nov 2003 02:00:21 -0000 > *************** cmd_func (struct cmd_list_element > *cmd, > *** 1539,1542 **** > --- 1539,1551 ---- > error ("Invalid command"); > } > > + struct cmd_list_element * > + async_cmd (struct cmd_list_element *cmd, int f) > + { > + > + cmd->flags |= f; > + > + return cmd; > + } > + > > Index: gdb/cli/cli-decode.h > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-decode.h,v > retrieving revision 1.17 > diff -c -p -r1.17 cli-decode.h > *** gdb/cli/cli-decode.h 14 Jan 2003 00:49:05 -0000 > 1.17 > --- gdb/cli/cli-decode.h 29 Nov 2003 02:00:22 -0000 > *************** cmd_types; > *** 49,54 **** > --- 49,57 ---- > #define CMD_DEPRECATED 0x1 > #define DEPRECATED_WARN_USER 0x2 > #define MALLOCED_REPLACEMENT 0x4 > + #define ASYNC_OK 0x08 > + #define ASYNC_WAIT 0x10 > + > You need to add comments to the structure below that, see where the other comments about flags are. What is ASYNC_WAIT for? It's never set. > struct cmd_list_element > { >