Skip to content

Commit

Permalink
coccicheck: add support for DEBUG_FILE
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: Nicolas Palix <[email protected]>
Signed-off-by: Michal Marek <[email protected]>
  • Loading branch information
mcgrof authored and Michal Marek committed Jul 22, 2016
1 parent c930a1b commit be1fa90
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
20 changes: 20 additions & 0 deletions Documentation/coccinelle.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
~~~~~~~~~~~~~~~~~~

Expand Down
10 changes: 9 additions & 1 deletion scripts/coccicheck
Original file line number Diff line number Diff line change
Expand Up @@ -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 $?
Expand Down

0 comments on commit be1fa90

Please sign in to comment.