Home -> Unix Programming Tools

The above links allow you to view references for a variety of Unix Programming tools that are useful for C programming.

Overview

Version Control System (VCS)
A Version Control System (VCS) is an application that tracks code and document changes. You would use a VCS to commit versions of your code and work on changes to it without affecting the last commit. You can also use a VCS to undo changes and revert back to an earlier commit.

Used for: Backing up your code while working on it.

The industry standard VCS is: git

Compiler System
A Compiler System is used to turn your high-level code into an Executable Program. This usually includes a Preprocessor (cpp), a Compiler (cc), an Assembler (as), and a Linker/Loader (ld).

Used for: Compiling your source code into a program.

The Linux standard Compiler System is: gcc

Makefile
A Makefile is used by the make utility to help automate the compiling of basic programs. This is used for small programs consisting of only a few source files in a known environment.

Used for: Automating the compiling of your source code.

The Linux standard Makefile system is: make

Debugger
A Debugger allows you to set breakpoints, inspect values, and step through the live execution of your program to aid in debugging. When working with pointers/references/stack it is easy to have a bug that cannot be detected properly with print statements.

Used for: Debugging your Program.

The Linux standard Debugger is: gdb

Memory Checker
A memory checking tool allows you to inspect the dynamic memory usage of a program and to detect memory leaks.

Used for: Checking for Memory Leaks.

The Linux standard Memory Checking Tool is: valgrind

Profiler
A profiler is used to get timing information for your program and each of its functions. You can see how often functions are called and how long each takes.

Used for: Optimizing Code.

The Linux standard Profiler is: gprof

Coverage Tool
A Coverage Checking tool allows you to see how many times each area of your source code is executed. For testing, it lets you see if your test cases are actually checking all of your code, or if there are branches you have missed.

Used for: Testing Code.

The Linux standard Code Coverage Tool is: gcov