Dealing with a parallel application is complex. We need to use procedures to rise fences to protect against mistakes, like static analysis tools allowing to find bugs in an automatic way. We also need to use tools to inspect and manipulate the behavior of programs at runtime, like the GDB debugger. Finally, profilers such as igprof can help us understand the performance bottlenecks of an application and get more insight on its efficiency. The objective of this lecture is to become familiar with these tools and be able to apply them in multithreaded programs.