I'm looking for the difference between the following debugging tools.
What are those?
E: On the off chance that somebody stumbles in here and was wondering about the same thing the "differences" are (shortened from the man pages):
GDB
Allows you to see what's going on "inside" a program while it runs/crashed.
Valgrind
A flexible series of tools for debugging and profiling.
Strace
Records/intercepts system calls which are called/received by a process.
Ltrace
Records/intercepts signals/dynamic library/system calls which are called/received by a process.
Apport
Intercepts crashes/unhandled exceptions, collects OS information, presents a helpful UI, and is able to file non-crash bugs.