GDB is the venerable veteran with literally decades of experience baked in. It's good for most of what you would want to do. LLDB (the debugger part of the LLVM project, of which Clang is the compiler part) has made some interesting strides, but still has a way to go to catch up with GDB, I think.