This is an old revision of the document!
Editors
Code complexity
Coverage
https://qiaomuf.wordpress.com/2011/05/26/use-gcov-and-lcov-to-know-your-test-coverage/#more-225
https://michael.stapelberg.de/Artikel/code_coverage_with_lcov
Code comparison
Code visualization
Design
http://www.sparxsystems.com/products/ea/purchase.html#Desktop
http://www.state-machine.com/qm/index.php
http://code.google.com/p/wavedrom
http://www.graphviz.org/Gallery.php
idroo.com (online education whiteboard)
Diagramming
Documentation
Issue tracking
Version control
SVN
- svn checkout https://subversion.assembla.com/svn/emlin1 <my dir>
- svn update
- svn commit
See the basic svn workflow
Git
Building initial repository:
- git init
- git add <file>
- git commit -m <comment>
- git log #lists all the committ (-p to see diff)
- git pull #updates the local repository (equiv. to git fetch plus git merge)
- git tag -l #shows all tagged releases
- git checkout <tagname>
- git log vX.Y.Z..master #shows list of changes between a tag and latest
- git log -p vX1.Y1.Z1..vX2.Y2.Z2 MAINTAINERS #list changes with diff on a given file
- git diff #list all changes in working directory
Working with branches:
- git branch <branchname>
- git checkout <branchname> #move to just created branch (create also with -b option)
- git branch #list of local branches (-a to show also remote branches)
- git push origin origin/<old_name>:refs/heads/<new_name> :<old_name> #changes name of remote branch
Working with a specific release:
- git checkout -f $VERSION #reset working copy to historical version
- git checkout master #back to master branch
- git checkout -f #undo all local changes, reseting working copy to latest version in repository
Workflow:
- make changes
- git status
- git add <file> - stage commits before commiting them
- git commit (-s option to sign changes, -a if all modified files should be part of commit)
Recovering old stash commits
- gitk –all $( git fsck –no-reflog | awk '/dangling commit/ {print $3}' )
- git stash apply $stash_hash
gitk shows graphically the history of the current repository. Also changes between tags, e.g. gitk vX.Y.Z..master
https://wiki.ubuntu.com/Kernel/Action/GitTheSource
https://www.atlassian.com/git/tutorial/git-basics
http://nvie.com/posts/a-successful-git-branching-model/
http://www.gitguys.com/topics/creating-and-playing-with-branches/
http://marklodato.github.io/visual-git-guide/index-en.html
linux kernel
The stable tree tracks the torvalds repo and adds additional stuff to it.
Understanding git
make
http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/
http://aegis.sourceforge.net/auug97.pdf
http://make.paulandlesley.org/autodep.html
print-%: ; @echo $*=$($*)
Get the value of any makefile variable, e.g.:
make print-SOURCE_FILES
binutils
nm -a –demangle –print-size –size-sort -t d my_obj.o useful information about what (weak) symbols are fat and so should be eliminated from every object file (like template functions from Boost library that have much code in headers only).
nm –size-sort –print-size obj,elf > m_size.txt
readelf -S and readelf -s to view section & symbol info
https://interrupt.memfault.com/blog/best-firmware-size-tools