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
next prev 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