= Debugging and Profiling = I (Milad) gave a talk on profiling codes using gprof and a brief introduction to debugging using gdb/ddd. Dave also gave us a short introduction to using !ValGrind to find memory leaks and buffer overruns. The entire talk is available on our youtube site, [http://www.youtube.com/user/HackerWithin#p/c/14ADB0EDDCC5674E/0/0pzMyQmN8BA here]. During the talk I mentioned that there are no tools that graphically represent the output from gprof. It turns out that this is not true - there are a few programs that I managed to find. I've listed some of the options below: * [http://kprof.sourceforge.net Kprof] is one tool that seems to be pretty full featured. It can generate hierarchical tables that allow you navigate the gprof output in a more understandable way. It can also make graphical call graphs. * [http://code.google.com/p/jrfonseca/wiki/Gprof2Dot gprof2dot.py] is another interesting tool. It takes gprof's output and generates are really cool picture that allows you to see which functions call each other and how much time they spend. * [http://kcachegrind.sourceforge.net/html/Home.html KCachegrind] does not use gprof output, but instead uses ValGrind behind the scenes to analyze your code. I haven't used it myself, but it seems to be the most well developed of everything I've seen so far.