* Re: regarding transparent data ranges (in tracepoint support) [not found] <20031128192301.GA9654@nevyn.them.org> @ 2003-11-29 1:29 ` Mark Newman 2003-11-29 1:34 ` Daniel Jacobowitz 0 siblings, 1 reply; 7+ messages in thread From: Mark Newman @ 2003-11-29 1:29 UTC (permalink / raw) To: gdb-patches, Daniel Jacobowitz, Newman, Mark (N-Superior Technical Resource Inc) Cc: ankit thukral, Jim Blandy, gdb Here ya go - but I'll be darned if this is clearer. Mark Index: gdb/infrun.c =================================================================== RCS file: /cvs/src/src/gdb/infrun.c,v retrieving revision 1.122 diff -r1.122 infrun.c 46a47,48 > #include "cli/cli-decode.h" > 4007a4010,4011 > async_cmd(stop_command , ASYNC_OK); > Index: gdb/maint.c =================================================================== RCS file: /cvs/src/src/gdb/maint.c,v retrieving revision 1.40 diff -r1.40 maint.c 737c737 < add_prefix_cmd ("show", class_maintenance, maintenance_show_cmd, "\ --- > async_cmd ( add_prefix_cmd ("show", class_maintenance, maintenance_show_cmd, "\ 742c742,743 < &maintenancelist); --- > &maintenancelist) > , ASYNC_OK); Index: gdb/top.c =================================================================== RCS file: /cvs/src/src/gdb/top.c,v retrieving revision 1.85 diff -r1.85 top.c 671,676c671,673 < 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."); --- > 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."); 749a747,754 > > if (event_loop_p && target_can_async_p () && target_executing) { > if ((c->flags & ASYNC_WAIT) != 0) { > wait_for_inferior(); > } > } > > Index: gdb/cli/cli-cmds.c =================================================================== RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v retrieving revision 1.36 diff -r1.36 cli-cmds.c 1059,1060c1059,1061 < add_com ("pwd", class_files, pwd_command, < "Print working directory. This is used for your program as well."); --- > async_cmd(add_com ("pwd", class_files, pwd_command, > "Print working directory. This is used for your program as well.") > , ASYNC_OK); 1093a1095,1096 > async_cmd(c, ASYNC_OK); > Index: gdb/cli/cli-decode.c =================================================================== RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v retrieving revision 1.34 diff -r1.34 cli-decode.c 1541a1542,1550 > 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 -r1.17 cli-decode.h 51a52,54 > #define ASYNC_OK 0x08 > #define ASYNC_WAIT 0x10 > --- Daniel Jacobowitz <drow@mvista.com> wrote: > On Fri, Nov 28, 2003 at 12:31:13PM -0500, Newman, > Mark (N-Superior Technical Resource Inc) wrote: > > Thanks Daniel; > > > > Any other comments on the async changes? > > I asked for you to repost them using some readable > format. Describing > changes is both inefficient and ambiguous. > > > > > Mark > > > > > -----Original Message----- > > > From: Daniel Jacobowitz [mailto:drow@mvista.com] > > > Sent: Friday, November 28, 2003 12:28 PM > > > To: Newman, Mark (N-Superior Technical Resource > Inc) > > > Cc: ankit thukral; Jim Blandy; > gdb@sources.redhat.com > > > Subject: Re: regarding transparent data ranges > (in tracepoint support) > > > > > > > > > On Fri, Nov 28, 2003 at 12:19:12PM -0500, > Newman, Mark > > > (N-Superior Technical Resource Inc) wrote: > > > > Could you be specific as to what kernel/file > this is in? > > > > > > > > I am using 2.4.18 and can't find it in > kernel/ptrace.c . > > > > > > That's your problem. It was added around > 2.5.38. > > > > > > -- > > > Daniel Jacobowitz > > > MontaVista Software > Debian GNU/Linux Developer > > > > > > > -- > Daniel Jacobowitz > MontaVista Software Debian > GNU/Linux Developer ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: regarding transparent data ranges (in tracepoint support) 2003-11-29 1:29 ` regarding transparent data ranges (in tracepoint support) Mark Newman @ 2003-11-29 1:34 ` Daniel Jacobowitz 2003-11-29 2:08 ` Mark Newman 0 siblings, 1 reply; 7+ messages in thread From: Daniel Jacobowitz @ 2003-11-29 1:34 UTC (permalink / raw) To: Mark Newman Cc: gdb-patches, Newman, Mark (N-Superior Technical Resource Inc), ankit thukral, Jim Blandy, gdb On Fri, Nov 28, 2003 at 05:29:52PM -0800, Mark Newman wrote: > Here ya go - but I'll be darned if this is clearer. You might want to read the original message to see what I meant :) Or try gdb/CONTRIBUTE for directions. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: regarding transparent data ranges (in tracepoint support) 2003-11-29 1:34 ` Daniel Jacobowitz @ 2003-11-29 2:08 ` Mark Newman 2003-11-29 5:41 ` Daniel Jacobowitz 2003-12-04 18:59 ` [RFA] async changes; Was: " Elena Zannoni 0 siblings, 2 replies; 7+ messages in thread From: Mark Newman @ 2003-11-29 2:08 UTC (permalink / raw) To: Daniel Jacobowitz Cc: gdb-patches, Newman, Mark (N-Superior Technical Resource Inc), ankit thukral, Jim Blandy, gdb I looked at gdb/CONTRIBUTE. I hope that this meets the requirements: Change Log: 2003-11-28 Mark Newman <markn_46@yahoo.com> * provide a better method for filtering of asyn commands =================================================================== 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); #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(); + } + } + + } /* 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); 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 + struct cmd_list_element { --- Daniel Jacobowitz <drow@mvista.com> wrote: > On Fri, Nov 28, 2003 at 05:29:52PM -0800, Mark > Newman wrote: > > Here ya go - but I'll be darned if this is > clearer. > > You might want to read the original message to see > what I meant :) > Or try gdb/CONTRIBUTE for directions. > > -- > Daniel Jacobowitz > MontaVista Software Debian > GNU/Linux Developer ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: regarding transparent data ranges (in tracepoint support) 2003-11-29 2:08 ` Mark Newman @ 2003-11-29 5:41 ` Daniel Jacobowitz 2003-12-04 18:59 ` [RFA] async changes; Was: " Elena Zannoni 1 sibling, 0 replies; 7+ messages in thread From: Daniel Jacobowitz @ 2003-11-29 5:41 UTC (permalink / raw) To: Mark Newman Cc: gdb-patches, Newman, Mark (N-Superior Technical Resource Inc), ankit thukral, Jim Blandy, gdb On Fri, Nov 28, 2003 at 06:07:25PM -0800, Mark Newman wrote: > I looked at gdb/CONTRIBUTE. I hope that this meets > the requirements: Yes and no. You definitely need to get a mail client which does not wrap lines and mangle whitespace: take a look at how it came out below. > Change Log: > > 2003-11-28 Mark Newman <markn_46@yahoo.com> > > * provide a better method for filtering of asyn > commands You may also want to read the GNU Coding Standards (or just browse gdb/ChangeLog) to get an idea for what a changelog entry ought to look like. Beyond that the concept looks reasonable. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RFA] async changes; Was: Re: regarding transparent data ranges (in tracepoint support) 2003-11-29 2:08 ` Mark Newman 2003-11-29 5:41 ` Daniel Jacobowitz @ 2003-12-04 18:59 ` Elena Zannoni 2003-12-04 22:16 ` Mark Newman 2003-12-05 2:22 ` Mark Newman 1 sibling, 2 replies; 7+ messages in thread From: Elena Zannoni @ 2003-12-04 18:59 UTC (permalink / raw) To: Mark Newman; +Cc: gdb-patches, mark.newman, ankit_plug 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 <markn_46@yahoo.com> > > * 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 > { > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFA] async changes; Was: Re: regarding transparent data ranges (in tracepoint support) 2003-12-04 18:59 ` [RFA] async changes; Was: " Elena Zannoni @ 2003-12-04 22:16 ` Mark Newman 2003-12-05 2:22 ` Mark Newman 1 sibling, 0 replies; 7+ messages in thread From: Mark Newman @ 2003-12-04 22:16 UTC (permalink / raw) To: Elena Zannoni; +Cc: gdb-patches, mark.newman, ankit_plug I will change as you requested and resubmit today. ASYNC_WAIT would be added to commands like "interrupt" and "quit" when they are issued in async mode. It causes gdb to wait for the target to respond before going on. When the select for target and the select for async are combined this should go away. I certify that all of these changes are original to me at Lockheed and no one else's code was used. Mark Newman --- Elena Zannoni <ezannoni@redhat.com> wrote: > 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 <markn_46@yahoo.com> > > > > * 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 > === message truncated === ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFA] async changes; Was: Re: regarding transparent data ranges (in tracepoint support) 2003-12-04 18:59 ` [RFA] async changes; Was: " Elena Zannoni 2003-12-04 22:16 ` Mark Newman @ 2003-12-05 2:22 ` Mark Newman 1 sibling, 0 replies; 7+ messages in thread From: Mark Newman @ 2003-12-05 2:22 UTC (permalink / raw) To: Elena Zannoni; +Cc: gdb-patches --- Elena Zannoni <ezannoni@redhat.com> wrote: > 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 <markn_46@yahoo.com> * (infrun.c) set async ok flag for stop * (maint.c) set async ok for show * (top.c) pay attention to async ok and async wait * (cli-cmds.c) set async ok for pwd and help * (cli-decode.c) add routine to set async flags * (cli-decode.h) define async bits ASYNC_OK,ASYNC_WAIT > > > > In the Changelog you need an entry for each file, > and for each file an > entry for each function you have touched. > Changes below: =================================================================== RCS file: /cvs/src/src/gdb/infrun.c,v retrieving revision 1.122 diff -c -3 -p -r1.122 infrun.c *** gdb/infrun.c 25 Nov 2003 16:01:36 -0000 1.122 --- gdb/infrun.c 5 Dec 2003 01:59:11 -0000 *************** *** 44,49 **** --- 44,50 ---- #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 **** --- 4006,4012 ---- 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 -3 -p -r1.40 maint.c *** gdb/maint.c 21 Sep 2003 01:26:45 -0000 1.40 --- gdb/maint.c 5 Dec 2003 01:59:12 -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,747 ---- 0/*allow-unknown*/, &maintenancelist); ! tmpcmd = 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_cmd (tmpcmd,ASYNC_OK); + #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 -3 -p -r1.85 top.c *** gdb/top.c 8 Nov 2003 00:13:03 -0000 1.85 --- gdb/top.c 5 Dec 2003 01:59:14 -0000 *************** execute_command (char *p, int from_tty) *** 669,678 **** /* 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. */ --- 669,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. */ *************** execute_command (char *p, int from_tty) *** 718,723 **** --- 716,726 ---- /* If this command has been post-hooked, run the hook last. */ execute_cmd_post_hook (c); + if (event_loop_p && target_can_async_p () && target_executing) { + if ((c->flags & ASYNC_WAIT) != 0) { + wait_for_inferior(); + } + } } /* Tell the user if the language has changed (except first time). */ *************** execute_command (char *p, int from_tty) *** 746,753 **** printf_filtered ("%s\n", lang_frame_mismatch_warn); warned = 1; } ! } } /* Read commands from `instream' and execute them until end of file or error reading instream. */ --- 749,757 ---- printf_filtered ("%s\n", lang_frame_mismatch_warn); warned = 1; } ! } } + /* Read commands from `instream' and execute them until end of file or error reading instream. */ Index: gdb/cli/cli-cmds.c =================================================================== RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v retrieving revision 1.36 diff -c -3 -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 5 Dec 2003 01:59:14 -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,1065 ---- /* Define general commands. */ ! c = add_com ("pwd", class_files, pwd_command, "Print working directory. This is used for your program as well."); + async_cmd(c, ASYNC_OK); + 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 **** --- 1093,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 -3 -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 5 Dec 2003 01:59:15 -0000 *************** cmd_func (struct cmd_list_element *cmd, *** 1539,1542 **** --- 1539,1550 ---- 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 -3 -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 5 Dec 2003 01:59:16 -0000 *************** cmd_types; *** 49,54 **** --- 49,56 ---- #define CMD_DEPRECATED 0x1 #define DEPRECATED_WARN_USER 0x2 #define MALLOCED_REPLACEMENT 0x4 + #define ASYNC_OK 0x08 + #define ASYNC_WAIT 0x10 struct cmd_list_element { *************** struct cmd_list_element *** 107,112 **** --- 109,122 ---- undeprecated or re-deprecated at runtime we don't want to risk calling free on statically allocated memory, so we check this flag. + + bit 3: ASYNC_OK when true indicates that the command can be + executed in ASYNC mode + + bit 4: ASYNC_WAIT when this bit is true it indicates that the + command needs to receive a response from the target prior to + completing. Only valid in ASYNC mode. + */ int flags; ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-12-05 2:22 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20031128192301.GA9654@nevyn.them.org>
2003-11-29 1:29 ` regarding transparent data ranges (in tracepoint support) Mark Newman
2003-11-29 1:34 ` Daniel Jacobowitz
2003-11-29 2:08 ` Mark Newman
2003-11-29 5:41 ` Daniel Jacobowitz
2003-12-04 18:59 ` [RFA] async changes; Was: " Elena Zannoni
2003-12-04 22:16 ` Mark Newman
2003-12-05 2:22 ` Mark Newman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox