public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: Julia.Lawall@lip6.fr, nicolas.palix@imag.fr,
	Gilles.Muller@lip6.fr, mmarek@suse.com
Cc: akpm@linux-foundation.org, gregkh@linuxfoundation.org,
	markivx@codeaurora.org, stephen.boyd@linaro.org,
	zohar@linux.vnet.ibm.com, broonie@kernel.org,
	ming.lei@canonical.com, tiwai@suse.d, johannes@sipsolutions.net,
	chunkeey@googlemail.com, hauke@hauke-m.de,
	jwboyer@fedoraproject.org, dmitry.torokhov@gmail.com,
	dwmw2@infradead.org, jslaby@suse.com,
	torvalds@linux-foundation.org, deepa.kernel@gmail.com,
	keescook@chromium.org, cocci@systeme.lip6.fr,
	linux-kernel@vger.kernel.org,
	"Luis R. Rodriguez" <mcgrof@kernel.org>
Subject: [RFC v4 5/9] coccicheck: replace --very-quiet with --quit when debugging
Date: Wed, 29 Jun 2016 15:10:22 -0700	[thread overview]
Message-ID: <1467238226-10822-6-git-send-email-mcgrof@kernel.org> (raw)
In-Reply-To: <1467238226-10822-1-git-send-email-mcgrof@kernel.org>

When debugging (using --profile or --show-trying) you want to
avoid supressing output,  use --quiet instead. While at it, extend
documentation for SPFLAGS use.

For instance one can use:

$ export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci
$ make coccicheck DEBUG_FILE="poo.err" MODE=report SPFLAGS="--profile --show-trying" M=./drivers/mfd/arizona-irq.c

Expand Documentation/coccinelle.txt as well.

v4: expand Documentation/coccinelle.txt
v3: rebased, resolve conflicts, expand Documentation/coccinelle.txt
v2: use egrep instead of the *"=--option"* check, this doesn't work for
    disjunctions.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
---
 Documentation/coccinelle.txt | 12 ++++++++++++
 scripts/coccicheck           | 23 +++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/Documentation/coccinelle.txt b/Documentation/coccinelle.txt
index 2516c5ef1691..4f5b2287a2b1 100644
--- a/Documentation/coccinelle.txt
+++ b/Documentation/coccinelle.txt
@@ -175,6 +175,18 @@ instance:
     make coccicheck COCCI=scripts/coccinelle/free/kfree.cocci MODE=report DEBUG_FILE=cocci.err
     cat cocci.err
 
+You can use SPFLAGS to add debugging flags, for instance you may want to
+add both --profile --show-trying to SPFLAGS when debugging. For instance
+you may want to use:
+
+    rm -f err.log
+    export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci
+    make coccicheck DEBUG_FILE="err.log" MODE=report SPFLAGS="--profile --show-trying" M=./drivers/mfd/arizona-irq.c
+
+err.log will now have the profiling information, while stdout will
+provide with some progress information as Coccinelle move forward with
+work.
+
 DEBUG_FILE support is only supported when using coccinelle >= 1.2.
 
  Additional flags
diff --git a/scripts/coccicheck b/scripts/coccicheck
index 3f0bb3f0fddc..1454a44d90a2 100755
--- a/scripts/coccicheck
+++ b/scripts/coccicheck
@@ -32,6 +32,29 @@ fi
 
 FLAGS="--very-quiet"
 
+# You can use SPFLAGS to append extra arguments to coccicheck or override any
+# heuristics done in this file as Coccinelle accepts the last options when
+# options conflict.
+#
+# A good example for use of SPFLAGS is if you want to debug your cocci script,
+# you can for instance use the following:
+#
+# $ export COCCI=scripts/coccinelle/misc/irqf_oneshot.cocci
+# $ make coccicheck MODE=report DEBUG_FILE="all.err" SPFLAGS="--profile --show-trying" M=./drivers/mfd/arizona-irq.c
+#
+# "--show-trying" should show you what rule is being processed as it goes to
+# stdout, you do not need a debug file for that. The profile output will be
+# be sent to stdout, if you provide a DEBUG_FILE the profiling data can be
+# inspected there.
+#
+# --profile will not output if --very-quiet is used, so avoid it.
+echo $SPFLAGS | egrep -e "--profile|--show-trying" 2>&1 > /dev/null
+if [ $? -eq 0 ]; then
+	FLAGS="--quiet"
+else
+	FLAGS="--very-quiet"
+fi
+
 # spatch only allows include directories with the syntax "-I include"
 # while gcc also allows "-Iinclude" and "-include include"
 COCCIINCLUDE=${LINUXINCLUDE//-I/-I }
-- 
2.8.4

  parent reply	other threads:[~2016-06-29 22:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-29 22:10 [RFC v4 0/9] coccicheck: private review for modernization Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 1/9] coccicheck: move spatch binary check up Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 2/9] coccicheck: make SPFLAGS more useful Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 3/9] coccicheck: enable parmap support Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 4/9] coccicheck: add support for DEBUG_FILE Luis R. Rodriguez
2016-06-29 22:10 ` Luis R. Rodriguez [this message]
2016-06-29 22:10 ` [RFC v4 6/9] scripts: add Linux .cocciconfig for coccinelle Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 7/9] coccicheck: add support for requring a coccinelle version Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 8/9] coccicheck: refer to Documentation/coccinelle.txt and wiki Luis R. Rodriguez
2016-06-29 22:10 ` [RFC v4 9/9] scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci Luis R. Rodriguez
2016-06-29 22:14 ` [RFC v4 0/9] coccicheck: private review for modernization Luis R. Rodriguez

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=1467238226-10822-6-git-send-email-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=Gilles.Muller@lip6.fr \
    --cc=Julia.Lawall@lip6.fr \
    --cc=akpm@linux-foundation.org \
    --cc=broonie@kernel.org \
    --cc=chunkeey@googlemail.com \
    --cc=cocci@systeme.lip6.fr \
    --cc=deepa.kernel@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hauke@hauke-m.de \
    --cc=johannes@sipsolutions.net \
    --cc=jslaby@suse.com \
    --cc=jwboyer@fedoraproject.org \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markivx@codeaurora.org \
    --cc=ming.lei@canonical.com \
    --cc=mmarek@suse.com \
    --cc=nicolas.palix@imag.fr \
    --cc=stephen.boyd@linaro.org \
    --cc=tiwai@suse.d \
    --cc=torvalds@linux-foundation.org \
    --cc=zohar@linux.vnet.ibm.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