Date created: Saturday, October 10, 2015 3:03:32 PM. Last modified: Friday, January 3, 2020 3:34:08 PM

Valgrind Notes


Compile with debug flags:

g++ -o etherate etherate.cpp -lrt -O0 -g


valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --track-fds=yes ./etherate -r

Callgrind - Annotate each line with the number of instructions it ran (Ir)

valgrind --tool=callgrind ./etherate -r
callgrind_annotate ./callgrind.out.2974 /path/to/tests.cpp


callgrind_annotate --auto=yes ./callgrind.out.2974

Cachegrind - Annotate each line with memory reads/writes/misses and instructions

valgrind --tool=cachegrind ./etherate -r
cg_annotate ./cachegrind-out /path/to/tests.cpp


sudo kcachegrind cachegrind.out

Branch predictor simulator

gcc -o etherate_mt etherate_mt.c -lpthread -Wall -Werror -pedantic -ftrapv -fstack-protector-all -Og -g
sudo taskset -c 2 valgrind --tool=cachegrind --branch-sim=yes ./etherate_mt -I 1
sudo cg_annotate cachegrind.out.3331 /home/bensley/C/etherate_mt/etherate_mt.c

Previous page: Stack, Heap and Stack Frame
Next page: Bass-Kick-Hi-Hat