From: Pedro Alves <palves@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 1/5] Remove global variable tracepoint_list and stepping_list.
Date: Fri, 07 Jun 2013 20:50:00 -0000 [thread overview]
Message-ID: <51B24545.5010509@redhat.com> (raw)
In-Reply-To: <1370610493-26468-2-git-send-email-yao@codesourcery.com>
On 06/07/2013 02:08 PM, Yao Qi wrote:
> This patch is a refactor patch. Simply, it removes two global
> variables tracepoint_list and stepping_list.
>
> gdb:
>
> 2013-06-07 Pedro Alves <pedro@codesourcery.com>
> Yao Qi <yao@codesourcery.com>
>
> * tracepoint.c (tracepoint_list, stepping_list): Remove.
> (do_clear_collection_list, init_collection_list): New.
> (encode_actions): Change the type of the second and third
> parameter from 'char ***' to 'struct collection_list *'.
> (encode_actions): Rename to encode_actions_rsp, and rewrite on top
> of the new encode_actions implementation.
> (encode_actions): New function.
Also, "Make static.".
> (_initialize_tracepoint): Delete references to 'tracepoint_list'
> and 'stepping_list'.
> * tracepoint.h (encode_actions): Remove declaration.
> (encode_actions_rsp): Add declaration.
> * remote.c (remote_download_tracepoint): Caller update.
>
> /* MEMRANGE functions: */
>
> @@ -1239,6 +1238,35 @@ clear_collection_list (struct collection_list *list)
> list->next_aexpr_elt = 0;
> memset (list->regs_mask, 0, sizeof (list->regs_mask));
> list->strace_data = 0;
> +
> + xfree (list->aexpr_list);
> + xfree (list->list);
> +}
This change is not mentioned in the ChangeLog.
> +
> +/* Wrapper to function clear_collection_list. */
"Wrapper for". "to" would be used to introduce a
rationale for the wrapping, like e.g.,
"wrapper to allow frobing ...". I suggest mentioning cleanups,
like e.g.,:
/* A cleanup wrapper for clear_collection_list. */
> /* Reduce a collection list to string form (for gdb protocol). */
> @@ -1606,37 +1634,50 @@ encode_actions_1 (struct command_line *action,
> } /* for */
> }
>
> -/* Render all actions into gdb protocol. */
> -
> -void
> -encode_actions (struct bp_location *tloc, char ***tdp_actions,
> - char ***stepping_actions)
> +static void
> +encode_actions (struct bp_location *tloc,
> + struct collection_list *tracepoint_list,
> + struct collection_list *stepping_list)
Missing docu. Ah, found it in patch 4. (would have been
best merged here).
> {
> - char *default_collect_line = NULL;
> - struct command_line *actions;
> - struct command_line *default_collect_action = NULL;
> int frame_reg;
> LONGEST frame_offset;
> - struct cleanup *back_to;
> -
> - back_to = make_cleanup (null_cleanup, NULL);
> + struct command_line *actions;
> + struct cleanup *old_chain;
>
> - clear_collection_list (&tracepoint_list);
> - clear_collection_list (&stepping_list);
> + old_chain = make_cleanup (null_cleanup, NULL);
>
> - *tdp_actions = NULL;
> - *stepping_actions = NULL;
> + actions = all_tracepoint_actions_and_cleanup (tloc->owner);
>
> gdbarch_virtual_frame_pointer (tloc->gdbarch,
> tloc->address, &frame_reg, &frame_offset);
>
> - actions = all_tracepoint_actions_and_cleanup (tloc->owner);
> -
> encode_actions_1 (actions, tloc, frame_reg, frame_offset,
> - &tracepoint_list, &stepping_list);
> + tracepoint_list, stepping_list);
> +
> + do_cleanups (old_chain);
> +
> + memrange_sortmerge (tracepoint_list);
> + memrange_sortmerge (stepping_list);
> +}
> +
> +/* Render all actions into gdb protocol. */
> +
> +void
> +encode_actions_rsp (struct bp_location *tloc,
> + char ***tdp_actions, char ***stepping_actions)
> +{
> + struct cleanup *back_to;
> + struct collection_list tracepoint_list, stepping_list;
> +
> + back_to = make_cleanup (null_cleanup, NULL);
>
> - memrange_sortmerge (&tracepoint_list);
> - memrange_sortmerge (&stepping_list);
> + init_collection_list (&tracepoint_list);
> + init_collection_list (&stepping_list);
> +
> + make_cleanup (do_clear_collection_list, &tracepoint_list);
> + make_cleanup (do_clear_collection_list, &stepping_list);
Thanks for splitting all this up into pieces. Much appreciated.
However, there's a weird back and forth dance going on between this
patch and patch 4, making the reader dizzy. :-) Patch 4 moves
these back to encode_actions... There's only one caller of
encode_actions in this patch, so it'd be better to leaving encode_actions
as a single function in this patch, and leave the split for one of
the follow ups (possible patch 4), explaining that the split allows
reusing the encode bits without generating the RSP, necessary for
the MI command's implementation.
> +
> + encode_actions (tloc, &tracepoint_list, &stepping_list);
--
Pedro Alves
next prev parent reply other threads:[~2013-06-07 20:40 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-07 13:07 [PATCH 0/5] New MI command -trace-frame-collected Yao Qi
2013-06-07 13:07 ` [PATCH 1/5] Remove global variable tracepoint_list and stepping_list Yao Qi
2013-06-07 20:50 ` Pedro Alves [this message]
2013-06-07 13:07 ` [PATCH 4/5] New MI command -trace-frame-collected Yao Qi
2013-06-07 13:07 ` [PATCH 5/5] New test: gdb.trace/mi-trace-frame-collected.exp Yao Qi
2013-06-07 13:07 ` [PATCH 2/5] Move code to get_traceframe_location Yao Qi
2013-06-07 21:09 ` Pedro Alves
2013-06-07 13:07 ` [PATCH 3/5] Add id of TSV into traceframe_info Yao Qi
2013-06-07 14:39 ` Eli Zaretskii
2013-06-08 11:06 ` Yao Qi
2013-06-13 1:29 ` [PATCH 0/6 V2] New MI command -trace-frame-collected Yao Qi
2013-06-13 1:29 ` [PATCH 3/6] Move code to get_traceframe_location Yao Qi
2013-06-25 15:43 ` Pedro Alves
2013-06-13 1:29 ` [PATCH 6/6] New test: gdb.trace/mi-trace-frame-collected.exp Yao Qi
2013-06-25 18:42 ` Pedro Alves
2013-06-26 10:32 ` Yao Qi
2013-06-13 1:29 ` [PATCH 2/6] Emit error in tdump command when traceframe is not selected Yao Qi
2013-06-25 15:32 ` Pedro Alves
2013-06-13 1:29 ` [PATCH 4/6] Add id of TSV into traceframe_info Yao Qi
2013-06-13 3:40 ` Eli Zaretskii
2013-06-25 16:18 ` Pedro Alves
2013-06-26 8:19 ` Yao Qi
2013-06-13 1:29 ` [PATCH 5/6] New MI command -trace-frame-collected Yao Qi
2013-06-13 14:27 ` Eli Zaretskii
2013-06-14 9:52 ` Yao Qi
2013-06-14 12:34 ` Eli Zaretskii
2013-06-17 10:21 ` Yao Qi
2013-06-17 15:48 ` Eli Zaretskii
2013-06-18 14:09 ` Yao Qi
2013-06-18 17:24 ` Eli Zaretskii
2013-06-25 17:31 ` Pedro Alves
2013-06-26 8:29 ` Yao Qi
2013-06-26 11:22 ` Pedro Alves
2013-06-13 2:46 ` [PATCH 1/6] Remove global variable tracepoint_list and stepping_list Yao Qi
2013-06-25 15:28 ` Pedro Alves
2013-06-24 15:25 ` [ping]: [PATCH 0/6 V2] New MI command -trace-frame-collected Yao Qi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51B24545.5010509@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=yao@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox