mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
gcov: fix documentation
Commonly available versions of cp and tar don't work well with special files created using seq_file. Mention this problem in the gcov documentation and update the helper script example to work around these problems. Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b01e8dc343
commit
972c71a318
1 changed files with 16 additions and 9 deletions
|
@ -188,13 +188,18 @@ Solution: Exclude affected source files from profiling by specifying
|
||||||
GCOV_PROFILE := n or GCOV_PROFILE_basename.o := n in the
|
GCOV_PROFILE := n or GCOV_PROFILE_basename.o := n in the
|
||||||
corresponding Makefile.
|
corresponding Makefile.
|
||||||
|
|
||||||
|
Problem: Files copied from sysfs appear empty or incomplete.
|
||||||
|
Cause: Due to the way seq_file works, some tools such as cp or tar
|
||||||
|
may not correctly copy files from sysfs.
|
||||||
|
Solution: Use 'cat' to read .gcda files and 'cp -d' to copy links.
|
||||||
|
Alternatively use the mechanism shown in Appendix B.
|
||||||
|
|
||||||
|
|
||||||
Appendix A: gather_on_build.sh
|
Appendix A: gather_on_build.sh
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Sample script to gather coverage meta files on the build machine
|
Sample script to gather coverage meta files on the build machine
|
||||||
(see 6a):
|
(see 6a):
|
||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
KSRC=$1
|
KSRC=$1
|
||||||
|
@ -226,7 +231,7 @@ Appendix B: gather_on_test.sh
|
||||||
Sample script to gather coverage data files on the test machine
|
Sample script to gather coverage data files on the test machine
|
||||||
(see 6b):
|
(see 6b):
|
||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
DEST=$1
|
DEST=$1
|
||||||
GCDA=/sys/kernel/debug/gcov
|
GCDA=/sys/kernel/debug/gcov
|
||||||
|
@ -236,11 +241,13 @@ if [ -z "$DEST" ] ; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
find $GCDA -name '*.gcno' -o -name '*.gcda' | tar cfz $DEST -T -
|
TEMPDIR=$(mktemp -d)
|
||||||
|
echo Collecting data..
|
||||||
|
find $GCDA -type d -exec mkdir -p $TEMPDIR/\{\} \;
|
||||||
|
find $GCDA -name '*.gcda' -exec sh -c 'cat < $0 > '$TEMPDIR'/$0' {} \;
|
||||||
|
find $GCDA -name '*.gcno' -exec sh -c 'cp -d $0 '$TEMPDIR'/$0' {} \;
|
||||||
|
tar czf $DEST -C $TEMPDIR sys
|
||||||
|
rm -rf $TEMPDIR
|
||||||
|
|
||||||
if [ $? -eq 0 ] ; then
|
echo "$DEST successfully created, copy to build system and unpack with:"
|
||||||
echo "$DEST successfully created, copy to build system and unpack with:"
|
echo " tar xfz $DEST"
|
||||||
echo " tar xfz $DEST"
|
|
||||||
else
|
|
||||||
echo "Could not create file $DEST"
|
|
||||||
fi
|
|
||||||
|
|
Loading…
Reference in a new issue