From patchwork Mon Jan 29 16:07:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 867184 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zVZH628dsz9s7F for ; Tue, 30 Jan 2018 03:10:26 +1100 (AEDT) Received: from localhost ([::1]:47382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egC0m-0000gc-C7 for incoming@patchwork.ozlabs.org; Mon, 29 Jan 2018 11:10:24 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42189) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egBz0-0008EM-Sg for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:08:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egByx-0006ww-JB for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:08:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39218) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1egByx-0006wX-Ct for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:08:31 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A940110F3DD; Mon, 29 Jan 2018 16:08:30 +0000 (UTC) Received: from localhost (ovpn-117-136.ams2.redhat.com [10.36.117.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id EAB8078E8B; Mon, 29 Jan 2018 16:08:17 +0000 (UTC) From: Stefan Hajnoczi To: Date: Mon, 29 Jan 2018 16:07:38 +0000 Message-Id: <20180129160740.1195-2-stefanha@redhat.com> In-Reply-To: <20180129160740.1195-1-stefanha@redhat.com> References: <20180129160740.1195-1-stefanha@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 29 Jan 2018 16:08:30 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 1/3] tracetool: prefix parse errors with line numbers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefan Hajnoczi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Include the file line number in the message that is printed when trace-events parse errors are raised. [Use enumerate(fobj, 1) to avoid having to increment a 0-based index later, as suggested by Eric Blake. --Stefan] Suggested-by: Dr. David Alan Gilbert Signed-off-by: Stefan Hajnoczi Reviewed-by: Eric Blake Message-id: 20180110202553.31889-2-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi --- scripts/tracetool/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 0670ec17d5..a744e26f91 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -300,13 +300,18 @@ def read_events(fobj): """ events = [] - for line in fobj: + for lineno, line in enumerate(fobj, 1): if not line.strip(): continue if line.lstrip().startswith('#'): continue - event = Event.build(line) + try: + event = Event.build(line) + except ValueError as e: + arg0 = 'Error on line %d: %s' % (lineno, e.args[0]) + e.args = (arg0,) + e.args[1:] + raise # transform TCG-enabled events if "tcg" not in event.properties: From patchwork Mon Jan 29 16:07:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 867183 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zVZG952jTz9s7F for ; Tue, 30 Jan 2018 03:09:37 +1100 (AEDT) Received: from localhost ([::1]:47346 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egBzz-00005s-Of for incoming@patchwork.ozlabs.org; Mon, 29 Jan 2018 11:09:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42366) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egBzQ-0008VJ-AT for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:09:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egBzM-00079H-1Y for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:09:00 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34988) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1egBzL-00078v-T3 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:08:55 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4088891FCC; Mon, 29 Jan 2018 16:08:55 +0000 (UTC) Received: from localhost (ovpn-117-136.ams2.redhat.com [10.36.117.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 92A4E18AA8; Mon, 29 Jan 2018 16:08:35 +0000 (UTC) From: Stefan Hajnoczi To: Date: Mon, 29 Jan 2018 16:07:39 +0000 Message-Id: <20180129160740.1195-3-stefanha@redhat.com> In-Reply-To: <20180129160740.1195-1-stefanha@redhat.com> References: <20180129160740.1195-1-stefanha@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 29 Jan 2018 16:08:55 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 2/3] tracetool: clarify that "formats" means "format strings" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefan Hajnoczi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The terminology used by tracetool is not consistent with C sprintf or docs/devel/tracing.txt. The word "formats" is sometimes used to mean "format strings". This patch clarifies comments and error messages that contain this word. Note that the error message lines are longer than 80 characters but I have not wrapped them to aid grepping. Signed-off-by: Stefan Hajnoczi Reviewed-by: Eric Blake Message-id: 20180110202553.31889-3-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi --- scripts/tracetool/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index a744e26f91..e3685bd0ca 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -173,7 +173,7 @@ class Event(object): props : list of str Property names. fmt : str, list of str - Event printing format (or formats). + Event printing format string(s). args : Arguments Event arguments. orig : Event or None @@ -237,9 +237,9 @@ class Event(object): if "tcg-exec" in props: raise ValueError("Invalid property 'tcg-exec'") if "tcg" not in props and not isinstance(fmt, str): - raise ValueError("Only events with 'tcg' property can have two formats") + raise ValueError("Only events with 'tcg' property can have two format strings") if "tcg" in props and isinstance(fmt, str): - raise ValueError("Events with 'tcg' property must have two formats") + raise ValueError("Events with 'tcg' property must have two format strings") event = Event(name, props, fmt, args) @@ -263,7 +263,7 @@ class Event(object): _FMT = re.compile("(%[\d\.]*\w+|%.*PRI\S+)") def formats(self): - """List of argument print formats.""" + """List conversion specifiers in the argument print format string.""" assert not isinstance(self.fmt, list) return self._FMT.findall(self.fmt) From patchwork Mon Jan 29 16:07:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 867185 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zVZJw5ZQVz9s7F for ; Tue, 30 Jan 2018 03:12:00 +1100 (AEDT) Received: from localhost ([::1]:47488 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egC2I-0001uh-Sv for incoming@patchwork.ozlabs.org; Mon, 29 Jan 2018 11:11:58 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42457) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egBzn-0000JZ-Cl for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:09:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egBzm-0007KF-Gg for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:09:23 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35642) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1egBzm-0007Jq-An for qemu-devel@nongnu.org; Mon, 29 Jan 2018 11:09:22 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 77A3F2D26AE; Mon, 29 Jan 2018 16:09:21 +0000 (UTC) Received: from localhost (ovpn-117-136.ams2.redhat.com [10.36.117.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0D4D46EE62; Mon, 29 Jan 2018 16:09:12 +0000 (UTC) From: Stefan Hajnoczi To: Date: Mon, 29 Jan 2018 16:07:40 +0000 Message-Id: <20180129160740.1195-4-stefanha@redhat.com> In-Reply-To: <20180129160740.1195-1-stefanha@redhat.com> References: <20180129160740.1195-1-stefanha@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 29 Jan 2018 16:09:21 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 3/3] tracetool: report error on foo() instead of foo(void) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefan Hajnoczi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" C functions with no arguments must be declared foo(void) instead of foo(). The tracetool argument list parser has never accepted an empty argument list. This patch adds a clear error message for this error case. Signed-off-by: Stefan Hajnoczi Reviewed-by: Eric Blake Message-id: 20180110202553.31889-4-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi --- scripts/tracetool/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index e3685bd0ca..1a9733da9a 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -75,6 +75,8 @@ class Arguments: res = [] for arg in arg_str.split(","): arg = arg.strip() + if not arg: + raise ValueError("Empty argument (did you forget to use 'void'?)") if arg == 'void': continue