Tips for hacking¶
Fussy syntax checking¶
If -Wall of gcc is not enough, you may be interested in this.
You can change C compiler warning options with ‘WARNING_CFLAGS’ configure arg-var option.
$ ./configure WARNING_CFLAGS='-Wall -Wextra'
If configure option ‘–with-sparse-cgcc’ is specified, cgcc is used as CC. cgcc is part of Sparse, Semantic Parser for C. It is used in development of Linux kernel for finding programming error. cgcc acts as a c compiler but more fussy. ‘-Wsparse-all’ is used as default option passed to cgcc but you can change with ‘CGCC_CFLAGS’ configure arg-var option.
$ ./configure --with-sparse-cgcc [CGCC_CFLAGS='-Wsparse-all']
Finding performance bottleneck¶
See https://wiki.geany.org/howtos/profiling/gperftools and #383
Before starting coverage measuring, you need to specify ‘–enable-coverage-gcov’ configure option.
$ ./configure --enable-coverage-gcov
make clean, you can build coverage measuring ready
make COVERAGE=1. At this time *.gcno files are generated
by the compiler. *.gcno files can be removed with
After building ctags, you can run run-gcov target. When running
*.gcda files. The target runs ctags with all input files under
Units/**/input.*; and call gcov. Human readable result is
printed. The detail can be shown in *.gcov. files. *.gcda files
and *.gcov files can be removed with
Reviewing the resulf of Units test¶
Try misc/review. [TBW]
cppcheck is a tool for static C/C++ code analysis.
To run it do as following after install cppcheck:
$ make cppcheck