Debugging and profiling: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(add Category:Pages with video links)
No edit summary
Line 1: Line 1:
{{Draft}}
{{Draft}}
An important step in the software development process, particularly for compiled languages like Fortran and C/C++, concerns the use of a program called a debugger to detect and identify the origin of runtime errors (e.g. memory leaks, floating point exceptions and so forth) so that they can be eliminated. Once the program's correctness is assured, a further step is profiling the software. This involves the use of another software tool, a profiler, determine what percentage of the total execution time each section of the source code is responsible for when run with a representative test case. A profiler can give information like how many times a particular function is called, which other functions are calling it and how many milli-seconds of time each invocation of this function costs on average. 


= Debugging and profiling tools=
= Debugging and profiling tools=

Revision as of 17:35, 23 April 2019


This article is a draft

This is not a complete article: This is a draft, a work in progress that is intended to be published into an article, which may or may not be ready for inclusion in the main wiki. It should not necessarily be considered factual or authoritative.




An important step in the software development process, particularly for compiled languages like Fortran and C/C++, concerns the use of a program called a debugger to detect and identify the origin of runtime errors (e.g. memory leaks, floating point exceptions and so forth) so that they can be eliminated. Once the program's correctness is assured, a further step is profiling the software. This involves the use of another software tool, a profiler, determine what percentage of the total execution time each section of the source code is responsible for when run with a representative test case. A profiler can give information like how many times a particular function is called, which other functions are calling it and how many milli-seconds of time each invocation of this function costs on average.

Debugging and profiling tools

The Compute Canada national clusters offer a variety of debugging and profiling tools, both command line and those with a graphical user interface, whose use requires an X11 connection. Note that debugging sessions should be conducted using an interactive job and not run on the login node.

GNU Debugger (gdb)

Please see GDB page

PGI Debugger (pgdb)

See Pgdbg

ARM Debugger (ddt)

Please see the ARM software page.

GNU Profiler (gprof)

Please see Gprof page

PGI Profiler (pgprof)

Please see Pgprof page

Nvidia command-line profiler (nvprof)

Please see nvprof page

Nvidia Visual Profiler (nvvp)

Valgrind

Please see Valgrind page

External references