Gdb - the GNU debugger - is a very well functioning symbolic debugger.
It is excellent, if you need to quickly open a session to have a
qick look or to step through the program without inspecting
many and structured variables.
If one has to inspect nested classes and structures any command line
tool becomes awkward to use.
ddd is a graphical user interface
for debuggers, mostly used as a user frontend for gdb.
Frequently used
commands are clickable, source code is displayed in an extra window
and an inspect/watch section displays objects, if they were selected
by a double click.
Basically DDD/gdb offer everything one can expect from a professional debugger.