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: [PATCH v4 4/9] coccicheck: add support for DEBUG_FILE
Date: Wed, 29 Jun 2016 15:14:54 -0700	[thread overview]
Message-ID: <1467238499-10889-5-git-send-email-mcgrof@kernel.org> (raw)
In-Reply-To: <1467238499-10889-1-git-send-email-mcgrof@kernel.org>

Enable to capture stderr via a DEBUG_FILE variable passed to
coccicheck. You can now do:

$ rm -f cocci.err
$ export COCCI=scripts/coccinelle/free/kfree.cocci
$ make coccicheck MODE=report DEBUG_FILE=cocci.err
...
$ cat cocci.err

This will be come more useful once we add support to
use more things which would go into stderr, such as
profiling. That will be done separately in another
commit.

Expand Documentation/coccinelle.txt with details.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Acked-by: Nicolas Palix <nicolas.palix@imag.fr>
---
 Documentation/coccinelle.txt | 20 ++++++++++++++++++++
 scripts/coccicheck           | 10 +++++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/Documentation/coccinelle.txt b/Documentation/coccinelle.txt
index 64daaf18874b..2516c5ef1691 100644
--- a/Documentation/coccinelle.txt
+++ b/Documentation/coccinelle.txt
@@ -157,6 +157,26 @@ semantic patch as shown in the previous section.
 The "report" mode is the default. You can select another one with the
 MODE variable explained above.
 
+ Debugging Coccinelle SmPL patches
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Using coccicheck is best as it provides in the spatch command line
+include options matching the options used when we compile the kernel.
+You can learn what these options are by using V=1, you could then
+manually run Coccinelle with debug options added.
+
+Alternatively you can debug running Coccinelle against SmPL patches
+by asking for stderr to be redirected to stderr, by default stderr
+is redirected to /dev/null, if you'd like to capture stderr you
+can specify the DEBUG_FILE="file.txt" option to coccicheck. For
+instance:
+
+    rm -f cocci.err
+    make coccicheck COCCI=scripts/coccinelle/free/kfree.cocci MODE=report DEBUG_FILE=cocci.err
+    cat cocci.err
+
+DEBUG_FILE support is only supported when using coccinelle >= 1.2.
+
  Additional flags
 ~~~~~~~~~~~~~~~~~~
 
diff --git a/scripts/coccicheck b/scripts/coccicheck
index 4b65a0fd50a1..3f0bb3f0fddc 100755
--- a/scripts/coccicheck
+++ b/scripts/coccicheck
@@ -96,7 +96,15 @@ run_cmd_parmap() {
 	if [ $VERBOSE -ne 0 ] ; then
 		echo "Running ($NPROC in parallel): $@"
 	fi
-	$@ 2>/dev/null
+	if [ "$DEBUG_FILE" != "/dev/null" -a "$DEBUG_FILE" != "" ]; then
+		if [ -f $DEBUG_FILE ]; then
+			echo "Debug file $DEBUG_FILE exists, bailing"
+			exit
+		fi
+	else
+		DEBUG_FILE="/dev/null"
+	fi
+	$@ 2>$DEBUG_FILE
 	if [[ $? -ne 0 ]]; then
 		echo "coccicheck failed"
 		exit $?
-- 
2.8.4

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

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-29 22:14 [PATCH v4 0/9] coccicheck: modernize Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 1/9] coccicheck: move spatch binary check up Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 2/9] coccicheck: make SPFLAGS more useful Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 3/9] coccicheck: enable parmap support Luis R. Rodriguez
2016-06-29 22:14 ` Luis R. Rodriguez [this message]
2016-06-29 22:14 ` [PATCH v4 5/9] coccicheck: replace --very-quiet with --quiet when debugging Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 6/9] scripts: add Linux .cocciconfig for coccinelle Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 7/9] coccicheck: add support for requring a coccinelle version Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 8/9] coccicheck: refer to Documentation/coccinelle.txt and wiki Luis R. Rodriguez
2016-06-29 22:14 ` [PATCH v4 9/9] scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci Luis R. Rodriguez
2016-07-13 21:45 ` [PATCH v4 0/9] coccicheck: modernize Luis R. Rodriguez
2016-07-22 10:14   ` Michal Marek

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=1467238499-10889-5-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