Bogotobogo
contact@bogotobogo.com
Multi-Threaded Programming
Debugging - 2012
- C++ Home
- String
- Constructor
- Operator Overloading
- Virtual Functions
- Dynamic Cast Operator
- Type Cast Operators
- Class auto_ptr
- References for Built-in Types
- Pass by Value vs. Pass by Reference
- Memory Allocation
- Friend Functions and Friend Classes
- Functors (Function Objects)
- Static Variables and Static Class Members
- Exceptions
- Stack Unwinding
- Pointers
- Pointers II - void pointers & arrays
- Pointers III - pointer to function & multi-dimensional arrays
- Taste of Assembly
- Small Programs
- Linked List Examples
- Binary Tree Example Code
- Templates
- Standard Template Library (STL) I
- Standard Template Library (STL) II - Maps
- Standard Template Library (STL) III - Iterators
- Standard Template Library (STL) IV - Algorithms
- Object Slicing and Virtual Table
- The this Pointer
- Stack Unwinding
- Upcasting and Downcasting
- Object Returning
- Private Inheritance
- Preprocessor - Macro
- C++_Keywords
- fstream: input & output
- Multi-Threaded Programming - Terminology
- Multi-Threaded Programming II - Native Thread for Win32 (A)
- Multi-Threaded Programming II - Native Thread for Win32 (B)
- Multi-Threaded Programming II - Native Thread for Win32 (C)
- Multi-Threaded Programming II - C++ Thread for Win32
- Multi-Threaded Programming III - C++ Class Thread for Pthreads
- Multithread Debugging
- Socket - Server & Client
- Embedded Systems Programming
- Boost
- make
- Debugging Crash & Memory Leak
- Libraries
- C++ API Testing
- Design Patterns in C++
- Algorithms in C++
- Programming Questions and Solutions
- Blackjack with Qt
- 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.
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.
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.
Coming...
- C++ Home
- String
- Constructor
- Operator Overloading
- Virtual Functions
- Dynamic Cast Operator
- Type Cast Operators
- Class auto_ptr
- References for Built-in Types
- Pass by Value vs. Pass by Reference
- Memory Allocation
- Friend Functions and Friend Classes
- Functors (Function Objects)
- Static Variables and Static Class Members
- Exceptions
- Stack Unwinding
- Pointers
- Pointers II - void pointers & arrays
- Pointers III - pointer to function & multi-dimensional arrays
- Taste of Assembly
- Small Programs
- Linked List Examples
- Binary Tree Example Code
- Templates
- Standard Template Library (STL) I
- Standard Template Library (STL) II - Maps
- Standard Template Library (STL) III - Iterators
- Standard Template Library (STL) IV - Algorithms
- Object Slicing and Virtual Table
- The this Pointer
- Stack Unwinding
- Upcasting and Downcasting
- Object Returning
- Private Inheritance
- Preprocessor - Macro
- C++_Keywords
- fstream: input & output
- Multi-Threaded Programming - Terminology
- Multi-Threaded Programming II - Native Thread for Win32 (A)
- Multi-Threaded Programming II - Native Thread for Win32 (B)
- Multi-Threaded Programming II - Native Thread for Win32 (C)
- Multi-Threaded Programming II - C++ Thread for Win32
- Multi-Threaded Programming III - C++ Class Thread for Pthreads
- Multithread Debugging
- Socket - Server & Client
- Embedded Systems Programming
- Boost
- make
- Debugging Crash & Memory Leak
- Libraries
- C++ API Testing
- Design Patterns in C++
- Algorithms in C++
- Programming Questions and Solutions
- Blackjack with Qt