A very good open source debugger available for a large number of platforms, it can debug various applications written in programming languages like C/CPP, Java, FORTRAN, and it can also do remote debugging over a slow net connection.
GDB is not a good candidate for debugging applications that run on threads, as halting the thread for say 3-5 seconds to take thread dumps is sometimes not acceptable.