Re: [PATCH] store trace default-collect to target [1/6] target, trace and remote

Yao Qi
2013-04-11T10:48:12Z

On 04/11/2013 02:16 PM, Hui Zhu wrote:
> --- a/remote.c
> +++ b/remote.c
> @@ -215,6 +215,8 @@ static int remote_get_trace_status (stru
> static int remote_upload_tracepoints (struct uploaded_tp **utpp);
>
> static int remote_upload_trace_state_variables (struct uploaded_tsv **utsvp);
> +
> +static void remote_upload_trace_default_collest (char **collectp);
^^^^^^^ typo "collect"

>
> static void remote_query_supported (void);
>
> @@ -3567,6 +3569,7 @@ remote_start_remote (int from_tty, struc
> {
> struct uploaded_tp *uploaded_tps = NULL;
> struct uploaded_tsv *uploaded_tsvs = NULL;
> + char *uploaded_default_collest = NULL;
^^^^^^^ typo.

>
> if (current_trace_status ()->running)
> printf_filtered (_("Trace is already running on the target.\n"));
> @@ -3581,6 +3584,10 @@ remote_start_remote (int from_tty, struc
> remote_upload_tracepoints (&uploaded_tps);
>
> merge_uploaded_tracepoints (&uploaded_tps);
> +
> + remote_upload_trace_default_collest (&uploaded_default_collest);
> +
> + trace_set_default_collect (uploaded_default_collest);

Likewise.

> }
>
> /* The thread and inferior lists are now synchronized with the
> @@ -10567,6 +10574,23 @@ remote_download_tracepoint (struct bp_lo
> do_cleanups (old_chain);
> }
>
> +static void
> +remote_download_tracepoint_default_collect (char *collect)

Add a comment to this function.

>
> +static void
> +remote_upload_trace_default_collest (char **collectp)

Comments to this function are needed as well.

> +/* Not overwrite default collect If COLLECT is NULL or its size is 0. */
> +
> +void
> +trace_set_default_collect (char *collect)
> +{
> + if (collect != NULL && strlen (collect) != 0)
> + {
> + xfree (default_collect);
> + default_collect = collect;
> + }
> +}

It looks incorrect to me. When we change target to a tfile, in which
the default-collect is "", the variable default_collect won't be updated.

Supposing we have two tfile actions.tf and actions1.tf, the
default-collect is "$regs" and "" respectively,

(gdb) target tfile testsuite/gdb.trace/actions.tf
(gdb) show default-collect
The list of expressions to collect by default is "$regs".
(gdb) target tfile testsuite/gdb.trace/actions1.tf
(gdb) show default-collect
The list of expressions to collect by default is "$regs".

I don't have other comments.

--
Yao (é½å°§)