Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Don't trace if all tracepoints disabled
@ 2010-03-26 20:53 Stan Shebs
  2010-03-26 23:56 ` Joel Brobecker
  0 siblings, 1 reply; 2+ messages in thread
From: Stan Shebs @ 2010-03-26 20:53 UTC (permalink / raw)
  To: gdb-patches

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

This patch simply requires that there be at least one enabled tracepoint 
before a trace run will start.  While it's not necessarily wrong to have 
a tracepoint-less trace run, this could save a user or two from massive 
puzzlement as to why there are no trace frames accumulating. :-)  While 
this seems uncontroversial, I'm going to hold off commit to allow comments.

Stan

2010-03-26  Stan Shebs  <stan@codesourcery.com>

    * tracepoint.c (start_tracing): Check tracepoints before sending
    commands to target, don't start if all tracepoints disabled.


[-- Attachment #2: tstartdis-patch-1 --]
[-- Type: text/plain, Size: 2218 bytes --]

Index: tracepoint.c
===================================================================
RCS file: /cvs/src/src/gdb/tracepoint.c,v
retrieving revision 1.159
diff -p -r1.159 tracepoint.c
*** tracepoint.c	26 Mar 2010 15:26:29 -0000	1.159
--- tracepoint.c	26 Mar 2010 20:46:05 -0000
*************** start_tracing (void)
*** 1449,1472 ****
    int ix;
    struct breakpoint *t;
    struct trace_state_variable *tsv;
!   int any_downloaded = 0;
! 
!   target_trace_init ();
    
    tp_vec = all_tracepoints ();
    for (ix = 0; VEC_iterate (breakpoint_p, tp_vec, ix, t); ix++)
      {
        t->number_on_target = 0;
        target_download_tracepoint (t);
        t->number_on_target = t->number;
-       any_downloaded = 1;
      }
    VEC_free (breakpoint_p, tp_vec);
!   
!   /* No point in tracing without any tracepoints... */
!   if (!any_downloaded)
!     error ("No tracepoints downloaded, not starting trace");
!   
    /* Send down all the trace state variables too.  */
    for (ix = 0; VEC_iterate (tsv_s, tvariables, ix, tsv); ++ix)
      {
--- 1449,1491 ----
    int ix;
    struct breakpoint *t;
    struct trace_state_variable *tsv;
!   int any_enabled = 0;
    
    tp_vec = all_tracepoints ();
+ 
+   /* No point in tracing without any tracepoints... */
+   if (VEC_length (breakpoint_p, tp_vec) == 0)
+     {
+       VEC_free (breakpoint_p, tp_vec);
+       error (_("No tracepoints defined, not starting trace"));
+     }
+ 
+   for (ix = 0; VEC_iterate (breakpoint_p, tp_vec, ix, t); ix++)
+     {
+       if (t->enable_state == bp_enabled)
+ 	{
+ 	  any_enabled = 1;
+ 	  break;
+ 	}
+     }
+ 
+   /* No point in tracing with only disabled tracepoints.  */
+   if (!any_enabled)
+     {
+       VEC_free (breakpoint_p, tp_vec);
+       error (_("No tracepoints enabled, not starting trace"));
+     }
+ 
+   target_trace_init ();
+ 
    for (ix = 0; VEC_iterate (breakpoint_p, tp_vec, ix, t); ix++)
      {
        t->number_on_target = 0;
        target_download_tracepoint (t);
        t->number_on_target = t->number;
      }
    VEC_free (breakpoint_p, tp_vec);
! 
    /* Send down all the trace state variables too.  */
    for (ix = 0; VEC_iterate (tsv_s, tvariables, ix, tsv); ++ix)
      {

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Don't trace if all tracepoints disabled
  2010-03-26 20:53 [PATCH] Don't trace if all tracepoints disabled Stan Shebs
@ 2010-03-26 23:56 ` Joel Brobecker
  0 siblings, 0 replies; 2+ messages in thread
From: Joel Brobecker @ 2010-03-26 23:56 UTC (permalink / raw)
  To: Stan Shebs; +Cc: gdb-patches

> This patch simply requires that there be at least one enabled
> tracepoint before a trace run will start.  While it's not
> necessarily wrong to have a tracepoint-less trace run, this could
> save a user or two from massive puzzlement as to why there are no
> trace frames accumulating. :-)  While this seems uncontroversial,
> I'm going to hold off commit to allow comments.

It seems to me that, from a user's perspective, a trace run without
tracepoints would be pointless, right? So, if a user request a trace
run without any tracepoint, he most likely made a mistake somewhere
(wrong command or forgot to create the tracepoints). So I agree with
your suggestion (FWIW).

-- 
Joel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-03-26 23:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-26 20:53 [PATCH] Don't trace if all tracepoints disabled Stan Shebs
2010-03-26 23:56 ` Joel Brobecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox