From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 83150 invoked by alias); 28 Feb 2018 16:26:01 -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 83127 invoked by uid 89); 28 Feb 2018 16:26:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:u13-v6s, H*i:sk:1519727, personal X-HELO: mail-pl0-f47.google.com Received: from mail-pl0-f47.google.com (HELO mail-pl0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 28 Feb 2018 16:25:58 +0000 Received: by mail-pl0-f47.google.com with SMTP id u13-v6so1807956plq.1 for ; Wed, 28 Feb 2018 08:25:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=4yStv8oQe6CGlTAeP83yjOdVaXmJpPimmxvYttj8JcI=; b=QXMm+Td/HWj2Pc8lsG3Em7uCV3w9CoTnSIVehFkijH+KXcwpiAYP47Ap0jwtbiD+Tm cTJ5LoY7ogMAgmrmRkVw1xi+RtXvrXLfCKv1Yjjt3FENMNhM+vTh08+BzrtCAjFH4wra ivGjA1GyBDzmKmPnTHRFXJjAli5ZPSrF5UN6HoVhWIkj8sdAzbbyvSGo8zVJ7I4EvLcy 3GEdSaVh8wORwIaAtticT1Ah5QSKvI2p5TKbT3g46u16PAfYFzLT25+GP/uCUlgBbWYD iqnnM0fqMjcvtvGDVP+H1OEST/c7wXSmSic8ILMN+tKVYlclcohTe3ioO8LvC2FCzVua Xqfg== X-Gm-Message-State: APf1xPA2w1KfV9IKNupAWuz+THFamri5Z2KiAXYzaYtYNimwuxQEVe4g D7JBiLiMQktpirOXBvRjCiVE5A== X-Google-Smtp-Source: AH8x225vv8jKD775V5I7KarIMfVM1/MKz7Wrq4zx/je1ygATL5i+P6jAgnrwYLT+daS5Q8IdUqS6kg== X-Received: by 2002:a17:902:8488:: with SMTP id c8-v6mr18613945plo.155.1519835157188; Wed, 28 Feb 2018 08:25:57 -0800 (PST) Received: from E107787-LIN (gcc114.osuosl.org. [140.211.9.72]) by smtp.gmail.com with ESMTPSA id w88sm4924573pfa.50.2018.02.28.08.25.55 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Wed, 28 Feb 2018 08:25:56 -0800 (PST) From: Yao Qi To: Markus Metzger Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] btrace, gdbserver: check btrace target pointers References: <1519727985-17914-1-git-send-email-markus.t.metzger@intel.com> Date: Wed, 28 Feb 2018 16:26:00 -0000 In-Reply-To: <1519727985-17914-1-git-send-email-markus.t.metzger@intel.com> (Markus Metzger's message of "Tue, 27 Feb 2018 11:39:45 +0100") Message-ID: <86sh9lgjxt.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2018-02/txt/msg00464.txt.bz2 Markus Metzger writes: > -#define target_enable_btrace(ptid, conf) \ > - (*the_target->enable_btrace) (ptid, conf) > +static inline struct btrace_target_info * > +target_enable_btrace (ptid_t ptid, const struct btrace_config *conf) > +{ > + if (the_target->enable_btrace =3D=3D nullptr) > + error ("Target does not support branch tracing."); > + > + return (*the_target->enable_btrace) (ptid, conf); > +} It is reasonable to me that (*the_target->enable_btrace) may throw various exceptions due to different reasons, but I am not convinced that we should error on (the_target->enable_btrace =3D=3D nullptr). I don't like replacing control flow logic with exception. This is my personal flavor. Instead, can we check (the_target->enable_btrace =3D=3D nullptr) before using target_enable_btrace, and error in handle_btrace_general_set if thread->btrace is NULL. What do you think? --=20 Yao (=E9=BD=90=E5=B0=A7)