Bogotobogo
contact@bogotobogo.com
Bookmark and Share


C++ Tutorial
Multi-Threaded Programming
Debugging - 2012
cplusplus logo
Full List of C++ Tutorials




ChoonJuHo



Multithread Debugging Tools
  • TotalView

    • Platforms: Linux, AIX, Solaris, Tru64, Cray (Linux-CNL, Catamount, Mac OS
    • From wiki - It allows process control down to the single thread, the ability to look at data for a single thread or all threads at the same time, and the ability to synchronize threads through breakpoints. TotalView integrates memory leak detection and other heap memory debugging features. Data analysis features help find anomalies and problems in the target program's data, and the combination of visualization and evaluation points lets the user watch data change as the program executes. TotalView includes the ability to test fixes while debugging. It supports parallel programming including Message Passing Interface (MPI), Unified Parallel C (UPC) and OpenMP. It can be extended to support debugging CUDA. It also has an optional add-on called ReplayEngine that can be used to perform reverse debugging (stepping backwards to look at older values of variables.)


  • Intel® Parallel Studio 2011

    It plugs into the Microsoft Visual Studio Integrated Development Environment by adopting a common runtime called the Microsoft Concurrency Runtime, which is part of Visual Studio 2010.
    • Parallel Composer consists of the Intel C++ compiler, a number of performance libraries (Integrated Performance Primitives), Intel Threading Building Blocks and a parallel debugger extension.
    • Parallel Inspector improves reliability by identifying memory errors and threading errors.
    • Parallel Amplifier is a performance profiler that analyzes hotspots, concurrency and locks-and-waits.


  • Oracle Solaris Studio 12.2

    Solaris and Linux


  • Visual Studio 2010


  • Valgrind
    It is a programming tool for memory debugging, memory leak detection, and profiling. Released under the terms of the GNU General Public License, Valgrind is free software.
    Helgrind is a tool capable of detecting race conditions in multithreaded code.




Your Ad Here


Profiler

There is a rule of thumb known as the Pareto principle, and it is also referred as the 80-20 rule. In other words, 80% of the effects of event come from only 20% of the possible causes. So, if we optimize 20% of our code, we realize 80% of all the gains in speed.

How can we know which 20% of our code to optimize? We need a profiler.

List of Profilers
  • CodeAnalyst is a free performance analyzer from Advanced Micro Devices for programs on AMD hardware. It also does basic timer-based profiling on Intel processors.

  • DTrace dynamic tracing tool for Solaris, FreeBSD, Mac OS X and other operating systems.

  • Insure++ is Parasoft's runtime memory analysis and error detection tool. Its Inuse component provides a graphical view of memory allocations over time, with specific visibility into overall heap usage, block allocations, possible outstanding leaks, etc.

  • Parallel Studio from Intel contains Parallel Amplifier, which tunes both serial and parallel programs. It also includes Parallel Inspector, which detects races, deadlocks and memory errors. Parallel Composer includes codecov, a command line coverage tool.

  • Visual Studio Team System Profiler is Microsoft's commercial profiler offering.

  • Developer Edition by Software Diagnostics is a commercial integrated recorder, profiler and debugger for dynamic analysis, integrating dynamic tracing functionalities enabling reverse debugging and full comprehension of system behavior as well as Performance Analysis functionalities over the full software life cycle.

  • VTune from Intel for optimizing performance across Intel architectures.




Multithread Debugging

Coming...



SohBackSan



Full List of C++ Tutorials