Re: [RFA] Remove command_line_handler_continuation.

Vladimir Prus
2008-05-03T16:42:16Z

[-- Attachment #1: Type: text/plain, Size: 839 bytes --]

On Saturday 03 May 2008 19:58:36 Vladimir Prus wrote:
> On Friday 02 May 2008 19:03:14 Daniel Jacobowitz wrote:
> > On Thu, Apr 24, 2008 at 07:33:40PM +0300, Vladimir Prus wrote:
> > >
> > > With my previous patch to move all bpstat_do_actions calls into
> > > event handler, all that command_line_handler_continuation does
> > > is to print timings, if those are enabled. However, those timings
> > > don't make much sense. Timings are good for debugging GDB performance,
> > > and in case of command_line_handler_continuation, the times will report
> > > the time when the application run.
> > >
> > > So, this patch removes that continuation. OK?
> >
> > OK once you and Eli agree about documenting the timings.
>
> Here's a revision with doc clarification. Eli, does it look sufficient?

And here's the patch, for real.

- Volodya

[-- Attachment #2: 0001-Remove-command_line_handler_continuation.patch --]
[-- Type: text/x-diff, Size: 3731 bytes --]

From a0ac4ea192e90df539fa167c1310f3f1a8184c02 Mon Sep 17 00:00:00 2001
From: Vladimir Prus <vladimir@codesourcery.com>
Date: Thu, 13 Mar 2008 12:18:12 +0300
Subject: [RFA] Remove command_line_handler_continuation.
To: gdb-patches@sources.redhat.com
X-KMail-Transport: CodeSourcery
X-KMail-Identity: 901867920

[gdb]
* top.c (command_line_handler_continuation): Remove.
(execute_command): Do not install the above.

[gdb/doc]
* gdb.texinfo (Maintenance Commands): Clarify that "maint time"
will not report the time of commands that run the target.
---
gdb/doc/gdb.texinfo | 4 +++
gdb/top.c | 55 ---------------------------------------------------
2 files changed, 4 insertions(+), 55 deletions(-)

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 636a84b..45a7412 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -23437,6 +23437,10 @@ switch (@pxref{Mode Options}).
Control whether to display the execution time for each command. If
set to a nonzero value, @value{GDBN} will display how much time it
took to execute each command, following the command's own output.
+The time is not printed for the commands that run the target, since
+there's no mechanism currently to compute how much time was spend
+by @value{GDBN} and how much time was spend by the program been debugged.
+it's not possibly currently
This can also be requested by invoking @value{GDBN} with the
@option{--statistics} command-line switch (@pxref{Mode Options}).

diff --git a/gdb/top.c b/gdb/top.c
index feefcf0..e0293df 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -364,43 +364,6 @@ do_chdir_cleanup (void *old_dir)
}
#endif

-/* Do any commands attached to breakpoint we stopped at. Only if we
- are always running synchronously. Or if we have just executed a
- command that doesn't start the target. */
-static void
-command_line_handler_continuation (struct continuation_arg *arg, int error)
-{
- extern int display_time;
- extern int display_space;
-
- long time_at_cmd_start = arg->data.longint;
- long space_at_cmd_start = arg->next->data.longint;
-
- if (error)
- return;
-
- if (display_time)
- {
- long cmd_time = get_run_time () - time_at_cmd_start;
-
- printf_unfiltered (_("Command execution time: %ld.%06ld\n"),
- cmd_time / 1000000, cmd_time % 1000000);
- }
- if (display_space)
- {
-#ifdef HAVE_SBRK
- char *lim = (char *) sbrk (0);
- long space_now = lim - lim_at_start;
- long space_diff = space_now - space_at_cmd_start;
-
- printf_unfiltered (_("Space used: %ld (%c%ld for this command)\n"),
- space_now,
- (space_diff >= 0 ? '+' : '-'),
- space_diff);
-#endif
- }
-}
-
/* Execute the line P as a command.
Pass FROM_TTY as second argument to the defining function. */

@@ -534,24 +497,6 @@ execute_command (char *p, int from_tty)
warned = 1;
}
}
-
- /* Set things up for this function to be compete later, once the
- execution has completed, if we are doing an execution command,
- otherwise, just go ahead and finish. */
- if (target_can_async_p () && target_executing)
- {
- arg1 =
- (struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
- arg2 =
- (struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
- arg1->next = arg2;
- arg2->next = NULL;
- arg1->data.longint = time_at_cmd_start;
-#ifdef HAVE_SBRK
- arg2->data.longint = space_at_cmd_start;
-#endif
- add_continuation (command_line_handler_continuation, arg1);
- }
}

/* Read commands from `instream' and execute them
--
1.5.3.5