From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9353 invoked by alias); 14 Jan 2014 18:49:14 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 9344 invoked by uid 89); 14 Jan 2014 18:49:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.3 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS,UNWANTED_LANGUAGE_BODY autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 14 Jan 2014 18:49:13 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s0EInBbW006112 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 14 Jan 2014 13:49:11 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s0EInAHc003658; Tue, 14 Jan 2014 13:49:10 -0500 Message-ID: <52D586A5.7080402@redhat.com> Date: Tue, 14 Jan 2014 18:49:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Tom Tromey CC: gdb-patches@sourceware.org Subject: Re: [RFC 24/32] convert to_disable_tracepoint References: <1389640367-5571-1-git-send-email-tromey@redhat.com> <1389640367-5571-25-git-send-email-tromey@redhat.com> In-Reply-To: <1389640367-5571-25-git-send-email-tromey@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-01/txt/msg00460.txt.bz2 Looks fine. On 01/13/2014 07:12 PM, Tom Tromey wrote: > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_disable_tracepoint. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_NORETURN. > > convert to_trace_set_readonly_regions > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_trace_set_readonly_regions. > * target.h (struct target_ops) : > Use TARGET_DEFAULT_NORETURN. > > convert to_trace_start > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_trace_start. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_NORETURN. > > convert to_get_trace_status > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_get_trace_status. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_RETURN. > > convert to_get_tracepoint_status > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_get_tracepoint_status. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_NORETURN. > > convert to_trace_stop > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_trace_stop. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_NORETURN. > > convert to_trace_find > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_trace_find. > * target.h (struct target_ops): Use TARGET_DEFAULT_RETURN. > > convert to_get_trace_state_variable_value > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_get_trace_state_variable_value. > * target.h (struct target_ops) > : Use TARGET_DEFAULT_RETURN. > > convert to_save_trace_data > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_save_trace_data. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_NORETURN. > > convert to_upload_tracepoints > > 2014-01-08 Tom Tromey > > * target-delegates.c : Rebuild. > * target.c (update_current_target): Don't inherit or default > to_upload_tracepoints. > * target.h (struct target_ops) : Use > TARGET_DEFAULT_RETURN. > --- > gdb/ChangeLog | 79 ++++++++++++++++++++++++ > gdb/target-delegates.c | 160 +++++++++++++++++++++++++++++++++++++++++++++++++ > gdb/target.c | 52 ++++------------ > gdb/target.h | 30 ++++++---- > 4 files changed, 269 insertions(+), 52 deletions(-) > > diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c > index 53fabb1..ddcc89c 100644 > --- a/gdb/target-delegates.c > +++ b/gdb/target-delegates.c > @@ -702,6 +702,136 @@ tdefault_enable_tracepoint (struct target_ops *self, struct bp_location *arg1) > tcomplain (); > } > > +static void > +delegate_disable_tracepoint (struct target_ops *self, struct bp_location *arg1) > +{ > + self = self->beneath; > + self->to_disable_tracepoint (self, arg1); > +} > + > +static void > +tdefault_disable_tracepoint (struct target_ops *self, struct bp_location *arg1) > +{ > + tcomplain (); > +} > + > +static void > +delegate_trace_set_readonly_regions (struct target_ops *self) > +{ > + self = self->beneath; > + self->to_trace_set_readonly_regions (self); > +} > + > +static void > +tdefault_trace_set_readonly_regions (struct target_ops *self) > +{ > + tcomplain (); > +} > + > +static void > +delegate_trace_start (struct target_ops *self) > +{ > + self = self->beneath; > + self->to_trace_start (self); > +} > + > +static void > +tdefault_trace_start (struct target_ops *self) > +{ > + tcomplain (); > +} > + > +static int > +delegate_get_trace_status (struct target_ops *self, struct trace_status *arg1) > +{ > + self = self->beneath; > + return self->to_get_trace_status (self, arg1); > +} > + > +static int > +tdefault_get_trace_status (struct target_ops *self, struct trace_status *arg1) > +{ > + return -1; > +} > + > +static void > +delegate_get_tracepoint_status (struct target_ops *self, struct breakpoint *arg1, struct uploaded_tp *arg2) > +{ > + self = self->beneath; > + self->to_get_tracepoint_status (self, arg1, arg2); > +} > + > +static void > +tdefault_get_tracepoint_status (struct target_ops *self, struct breakpoint *arg1, struct uploaded_tp *arg2) > +{ > + tcomplain (); > +} > + > +static void > +delegate_trace_stop (struct target_ops *self) > +{ > + self = self->beneath; > + self->to_trace_stop (self); > +} > + > +static void > +tdefault_trace_stop (struct target_ops *self) > +{ > + tcomplain (); > +} > + > +static int > +delegate_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) > +{ > + self = self->beneath; > + return self->to_trace_find (self, arg1, arg2, arg3, arg4, arg5); > +} > + > +static int > +tdefault_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) > +{ > + return -1; > +} > + > +static int > +delegate_get_trace_state_variable_value (struct target_ops *self, int arg1, LONGEST *arg2) > +{ > + self = self->beneath; > + return self->to_get_trace_state_variable_value (self, arg1, arg2); > +} > + > +static int > +tdefault_get_trace_state_variable_value (struct target_ops *self, int arg1, LONGEST *arg2) > +{ > + return 0; > +} > + > +static int > +delegate_save_trace_data (struct target_ops *self, const char *arg1) > +{ > + self = self->beneath; > + return self->to_save_trace_data (self, arg1); > +} > + > +static int > +tdefault_save_trace_data (struct target_ops *self, const char *arg1) > +{ > + tcomplain (); > +} > + > +static int > +delegate_upload_tracepoints (struct target_ops *self, struct uploaded_tp **arg1) > +{ > + self = self->beneath; > + return self->to_upload_tracepoints (self, arg1); > +} > + > +static int > +tdefault_upload_tracepoints (struct target_ops *self, struct uploaded_tp **arg1) > +{ > + return 0; > +} > + > static int > delegate_supports_btrace (struct target_ops *self) > { > @@ -840,6 +970,26 @@ install_delegators (struct target_ops *ops) > ops->to_download_trace_state_variable = delegate_download_trace_state_variable; > if (ops->to_enable_tracepoint == NULL) > ops->to_enable_tracepoint = delegate_enable_tracepoint; > + if (ops->to_disable_tracepoint == NULL) > + ops->to_disable_tracepoint = delegate_disable_tracepoint; > + if (ops->to_trace_set_readonly_regions == NULL) > + ops->to_trace_set_readonly_regions = delegate_trace_set_readonly_regions; > + if (ops->to_trace_start == NULL) > + ops->to_trace_start = delegate_trace_start; > + if (ops->to_get_trace_status == NULL) > + ops->to_get_trace_status = delegate_get_trace_status; > + if (ops->to_get_tracepoint_status == NULL) > + ops->to_get_tracepoint_status = delegate_get_tracepoint_status; > + if (ops->to_trace_stop == NULL) > + ops->to_trace_stop = delegate_trace_stop; > + if (ops->to_trace_find == NULL) > + ops->to_trace_find = delegate_trace_find; > + if (ops->to_get_trace_state_variable_value == NULL) > + ops->to_get_trace_state_variable_value = delegate_get_trace_state_variable_value; > + if (ops->to_save_trace_data == NULL) > + ops->to_save_trace_data = delegate_save_trace_data; > + if (ops->to_upload_tracepoints == NULL) > + ops->to_upload_tracepoints = delegate_upload_tracepoints; > if (ops->to_supports_btrace == NULL) > ops->to_supports_btrace = delegate_supports_btrace; > } > @@ -908,5 +1058,15 @@ install_dummy_methods (struct target_ops *ops) > ops->to_can_download_tracepoint = tdefault_can_download_tracepoint; > ops->to_download_trace_state_variable = tdefault_download_trace_state_variable; > ops->to_enable_tracepoint = tdefault_enable_tracepoint; > + ops->to_disable_tracepoint = tdefault_disable_tracepoint; > + ops->to_trace_set_readonly_regions = tdefault_trace_set_readonly_regions; > + ops->to_trace_start = tdefault_trace_start; > + ops->to_get_trace_status = tdefault_get_trace_status; > + ops->to_get_tracepoint_status = tdefault_get_tracepoint_status; > + ops->to_trace_stop = tdefault_trace_stop; > + ops->to_trace_find = tdefault_trace_find; > + ops->to_get_trace_state_variable_value = tdefault_get_trace_state_variable_value; > + ops->to_save_trace_data = tdefault_save_trace_data; > + ops->to_upload_tracepoints = tdefault_upload_tracepoints; > ops->to_supports_btrace = tdefault_supports_btrace; > } > diff --git a/gdb/target.c b/gdb/target.c > index 83dfee7..90e2709 100644 > --- a/gdb/target.c > +++ b/gdb/target.c > @@ -689,16 +689,16 @@ update_current_target (void) > /* Do not inherit to_can_download_tracepoint. */ > /* Do not inherit to_download_trace_state_variable. */ > /* Do not inherit to_enable_tracepoint. */ > - INHERIT (to_disable_tracepoint, t); > - INHERIT (to_trace_set_readonly_regions, t); > - INHERIT (to_trace_start, t); > - INHERIT (to_get_trace_status, t); > - INHERIT (to_get_tracepoint_status, t); > - INHERIT (to_trace_stop, t); > - INHERIT (to_trace_find, t); > - INHERIT (to_get_trace_state_variable_value, t); > - INHERIT (to_save_trace_data, t); > - INHERIT (to_upload_tracepoints, t); > + /* Do not inherit to_disable_tracepoint. */ > + /* Do not inherit to_trace_set_readonly_regions. */ > + /* Do not inherit to_trace_start. */ > + /* Do not inherit to_get_trace_status. */ > + /* Do not inherit to_get_tracepoint_status. */ > + /* Do not inherit to_trace_stop. */ > + /* Do not inherit to_trace_find. */ > + /* Do not inherit to_get_trace_state_variable_value. */ > + /* Do not inherit to_save_trace_data. */ > + /* Do not inherit to_upload_tracepoints. */ > INHERIT (to_upload_trace_state_variables, t); > INHERIT (to_get_raw_trace_data, t); > INHERIT (to_get_min_fast_tracepoint_insn_len, t); > @@ -748,38 +748,6 @@ update_current_target (void) > (void (*) (struct target_ops *, ptid_t)) > target_ignore); > current_target.to_read_description = NULL; > - de_fault (to_disable_tracepoint, > - (void (*) (struct target_ops *, struct bp_location *)) > - tcomplain); > - de_fault (to_trace_set_readonly_regions, > - (void (*) (struct target_ops *)) > - tcomplain); > - de_fault (to_trace_start, > - (void (*) (struct target_ops *)) > - tcomplain); > - de_fault (to_get_trace_status, > - (int (*) (struct target_ops *, struct trace_status *)) > - return_minus_one); > - de_fault (to_get_tracepoint_status, > - (void (*) (struct target_ops *, struct breakpoint *, > - struct uploaded_tp *)) > - tcomplain); > - de_fault (to_trace_stop, > - (void (*) (struct target_ops *)) > - tcomplain); > - de_fault (to_trace_find, > - (int (*) (struct target_ops *, > - enum trace_find_type, int, CORE_ADDR, CORE_ADDR, int *)) > - return_minus_one); > - de_fault (to_get_trace_state_variable_value, > - (int (*) (struct target_ops *, int, LONGEST *)) > - return_zero); > - de_fault (to_save_trace_data, > - (int (*) (struct target_ops *, const char *)) > - tcomplain); > - de_fault (to_upload_tracepoints, > - (int (*) (struct target_ops *, struct uploaded_tp **)) > - return_zero); > de_fault (to_upload_trace_state_variables, > (int (*) (struct target_ops *, struct uploaded_tsv **)) > return_zero); > diff --git a/gdb/target.h b/gdb/target.h > index 4a5573d..dfaad80 100644 > --- a/gdb/target.h > +++ b/gdb/target.h > @@ -808,25 +808,31 @@ struct target_ops > > /* Disable a tracepoint on the target. */ > void (*to_disable_tracepoint) (struct target_ops *, > - struct bp_location *location); > + struct bp_location *location) > + TARGET_DEFAULT_NORETURN (tcomplain ()); > > /* Inform the target info of memory regions that are readonly > (such as text sections), and so it should return data from > those rather than look in the trace buffer. */ > - void (*to_trace_set_readonly_regions) (struct target_ops *); > + void (*to_trace_set_readonly_regions) (struct target_ops *) > + TARGET_DEFAULT_NORETURN (tcomplain ()); > > /* Start a trace run. */ > - void (*to_trace_start) (struct target_ops *); > + void (*to_trace_start) (struct target_ops *) > + TARGET_DEFAULT_NORETURN (tcomplain ()); > > /* Get the current status of a tracing run. */ > - int (*to_get_trace_status) (struct target_ops *, struct trace_status *ts); > + int (*to_get_trace_status) (struct target_ops *, struct trace_status *ts) > + TARGET_DEFAULT_RETURN (-1); > > void (*to_get_tracepoint_status) (struct target_ops *, > struct breakpoint *tp, > - struct uploaded_tp *utp); > + struct uploaded_tp *utp) > + TARGET_DEFAULT_NORETURN (tcomplain ()); > > /* Stop a trace run. */ > - void (*to_trace_stop) (struct target_ops *); > + void (*to_trace_stop) (struct target_ops *) > + TARGET_DEFAULT_NORETURN (tcomplain ()); > > /* Ask the target to find a trace frame of the given type TYPE, > using NUM, ADDR1, and ADDR2 as search parameters. Returns the > @@ -835,18 +841,22 @@ struct target_ops > operation fails. */ > int (*to_trace_find) (struct target_ops *, > enum trace_find_type type, int num, > - CORE_ADDR addr1, CORE_ADDR addr2, int *tpp); > + CORE_ADDR addr1, CORE_ADDR addr2, int *tpp) > + TARGET_DEFAULT_RETURN (-1); > > /* Get the value of the trace state variable number TSV, returning > 1 if the value is known and writing the value itself into the > location pointed to by VAL, else returning 0. */ > int (*to_get_trace_state_variable_value) (struct target_ops *, > - int tsv, LONGEST *val); > + int tsv, LONGEST *val) > + TARGET_DEFAULT_RETURN (0); > > - int (*to_save_trace_data) (struct target_ops *, const char *filename); > + int (*to_save_trace_data) (struct target_ops *, const char *filename) > + TARGET_DEFAULT_NORETURN (tcomplain ()); > > int (*to_upload_tracepoints) (struct target_ops *, > - struct uploaded_tp **utpp); > + struct uploaded_tp **utpp) > + TARGET_DEFAULT_RETURN (0); > > int (*to_upload_trace_state_variables) (struct target_ops *, > struct uploaded_tsv **utsvp); > -- Pedro Alves