Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp615046rwd; Mon, 12 Jun 2023 20:01:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5oAgwG4KHYOGE9MfyY3YNqC86begIGn4X0i2hxCKW1pqah+JFOvYqxpUS2K3uNwPSBetXH X-Received: by 2002:a17:907:3687:b0:974:4f34:b04a with SMTP id bi7-20020a170907368700b009744f34b04amr11060339ejc.34.1686625290903; Mon, 12 Jun 2023 20:01:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686625290; cv=none; d=google.com; s=arc-20160816; b=VItGYwHavWJDc1Tci/uiODseGn9lRmGY0nrm1RXP0TNQJ2YjDLfybBpgkHyo18a3Mh 5GOBC7fL8O91W5LsIO1S1UVhUHjkVy1awtLlDLOMqAIK8bq+atrnCD6L2idh6oNu/6lD vsjRDDkxcOQ/xQbWMbboCZIIExolCyml9ivFVrh66V9zLsiUECVFJJWWqy5+XweTm/CS kQJi3OoX31LkTf9VkPtimEzQEWcitlxRY/Tm0d4v9ni2hmf4hR4lrFC5XbTFnhtJdnYo wnE9y2T1Ix0Wvq6wf9CNGD2H6SQZbR6Ga3hZAa1S9nQcQaKR6BgYEa8AnWBBemHiToPr PPZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=s7ooiBBGfI/oBL2uu+ljB2QCP1A0+fJiBh+f+5QkWYQ=; b=QrYJghsGWYnBaYHJHMsDj5LwfaLwloWDcuFJxPKrdWz+eU9Lz7NizCJTDjzn6bzPeh W+GN01w7vPLafa7D47jJZ7h7mQOTJ9CZ+UIcne6m3Xmkxnf69MkIRiIbKzNKEH9OVC07 sgWNQ4eezGJdmfZw02fZ9fHCWwyOiB7opvVL2ZEdFD0nWb7kirGQ6c/yfCCDnchq2yD4 Zy8if3QLJq5w1m94EOuiaOMrsrCR+pGKveLk6/y4x8tNLRtNCaXiuWPoLwblpeYT0ShN HWJniGDkJa+zzSkJ+PmaSao1JbJSLawsqtps7oH4OQ4FmFONuLff4aBrrzN2ymVovHsY shCA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u1-20020a17090626c100b0094f8b2177c3si6244305ejc.200.2023.06.12.20.01.06; Mon, 12 Jun 2023 20:01:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232921AbjFMCji (ORCPT + 99 others); Mon, 12 Jun 2023 22:39:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237967AbjFMCjY (ORCPT ); Mon, 12 Jun 2023 22:39:24 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E88A210FF; Mon, 12 Jun 2023 19:39:22 -0700 (PDT) Received: from kwepemi500013.china.huawei.com (unknown [172.30.72.57]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4QgCLT2vpDz18M4r; Tue, 13 Jun 2023 10:34:25 +0800 (CST) Received: from M910t (10.110.54.157) by kwepemi500013.china.huawei.com (7.221.188.120) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 13 Jun 2023 10:39:19 +0800 Date: Tue, 13 Jun 2023 10:39:04 +0800 From: Changbin Du To: Ian Rogers CC: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Nathan Chancellor , Nick Desaulniers , Tom Rix , , , , Changbin Du Subject: Re: [PATCH v1 1/2] perf srcline: Make addr2line configuration failure more verbose Message-ID: <20230613023904.xlnfgzedfz4epjz3@M910t> References: <20230609235419.204624-1-irogers@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230609235419.204624-1-irogers@google.com> X-Originating-IP: [10.110.54.157] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemi500013.china.huawei.com (7.221.188.120) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 09, 2023 at 04:54:18PM -0700, Ian Rogers wrote: > To aid debugging why it fails. Also, combine the loops for reading a > line for the llvm/binutils cases. > > Signed-off-by: Ian Rogers > --- > tools/perf/util/srcline.c | 34 +++++++++++++++++++++------------- > 1 file changed, 21 insertions(+), 13 deletions(-) > > diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c > index b8e596528d7e..fc85cdd6c8f9 100644 > --- a/tools/perf/util/srcline.c > +++ b/tools/perf/util/srcline.c > @@ -441,7 +441,7 @@ enum a2l_style { > LLVM, > }; > > -static enum a2l_style addr2line_configure(struct child_process *a2l) > +static enum a2l_style addr2line_configure(struct child_process *a2l, const char *dso_name) > { > static bool cached; > static enum a2l_style style; > @@ -450,6 +450,7 @@ static enum a2l_style addr2line_configure(struct child_process *a2l) > char buf[128]; > struct io io; > int ch; > + int lines; > > if (write(a2l->in, ",\n", 2) != 2) > return BROKEN; > @@ -459,19 +460,29 @@ static enum a2l_style addr2line_configure(struct child_process *a2l) > if (ch == ',') { > style = LLVM; > cached = true; > + lines = 1; > } else if (ch == '?') { > style = GNU_BINUTILS; > cached = true; > + lines = 2; > } else { > - style = BROKEN; > + if (!symbol_conf.disable_add2line_warn) { > + char *output; This 'output' should be initialized to NULL. In file included from util/srcline.c:13: util/srcline.c: In function ‘addr2line’: /work/linux/tools/perf/libapi/include/api/io.h:130:2: error: ‘output’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 130 | free(*line_out); | ^~~~~~~~~~~~~~~ util/srcline.c:472:11: note: ‘output’ was declared here 472 | char *output; | ^~~~~~ cc1: all warnings being treated as errors make[4]: *** [/work/linux/tools/build/Makefile.build:97: util/srcline.o] Error 1 > + size_t output_len; > + > + io__getline(&io, &output, &output_len); > + pr_warning("%s %s: addr2line configuration failed\n", > + __func__, dso_name); > + pr_warning("\t%c%s\n", ch, output); > + } > + return BROKEN; > } > - do { > + while (lines) { > ch = io__get_char(&io); > - } while (ch > 0 && ch != '\n'); > - if (style == GNU_BINUTILS) { > - do { > - ch = io__get_char(&io); > - } while (ch > 0 && ch != '\n'); > + if (ch <= 0) > + break; > + if (ch == '\n') > + lines--; > } > /* Ignore SIGPIPE in the event addr2line exits. */ > signal(SIGPIPE, SIG_IGN); > @@ -591,12 +602,9 @@ static int addr2line(const char *dso_name, u64 addr, > pr_warning("%s %s: addr2line_subprocess_init failed\n", __func__, dso_name); > goto out; > } > - a2l_style = addr2line_configure(a2l); > - if (a2l_style == BROKEN) { > - if (!symbol_conf.disable_add2line_warn) > - pr_warning("%s: addr2line configuration failed\n", __func__); > + a2l_style = addr2line_configure(a2l, dso_name); > + if (a2l_style == BROKEN) > goto out; > - } > > /* > * Send our request and then *deliberately* send something that can't be interpreted as > -- > 2.41.0.162.gfafddb0af9-goog > -- Cheers, Changbin Du