Para hacer este análisis de rendimiento, hacer:
$ g++ -g -pg -O0 *.cpp
$ ./a.out
$ gprof -c -z a.out gmon.out > sal.txt
el archivo sal.txt contiene el análisis de rendimiento detallado.
Compilar fuentes en C++ solicitando que el ejecutable tenga el nombre EJEMP
$ g++ -O1 *.cpp -o ejemp
para ejecutar el programa ya compilado:
$ ./ejemp
Compilar usando diversas optimizaciones (-O1, -O2 o -O3) usar:
$ g++ -O1 *.cpp
para ejecutar el programa ya compilado:
$ ./a.out
Para compilar y ver todos los avisos usar:
$ g++ -pedantic -Wall -Wextra -O *.cpp
o
$ g++ -Weffc++ *.cpp
Para hacer depuración del código mediante el depurador gráfico ddd usar:
$ g++ -g -O0 *.cpp
$ ddd ./a.out
Puede usarse también los depuradores xxgdb, gdb, kdbg cada uno tiene sus
pros y contras, depende del usuario cual es el más adecuado para usar
Para rastreo de problemas con la manipulación de memoria y punteros desbordados:
$ g++ -g -O0 *.cpp
$ valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./a.out
mas opciones en:
http://valgrind.org/
Existen varios front-end para valgrind, uno de ellos es alleyoop y se usa:
$ alleyoop ./a.out -v --arg1=foo
otro es kcachegrind.
Revisión estática del código en C++ usar
$ cppcheck --enable=all *.?pp
mostrara los avisos de análisis estático del código indicado