For Linux, you will do just fine with KDbg.
Just give it the path to your executable, and away you go.
Features
•Inspection of variable values in a tree structure.
•Direct member: For certain compound data types the most important
member values are displayed next to the variable name, so that it is
not necessary to expand the subtree of that variable in order to see
the member value. For example, you don't need to go into a variable of
type QString if you want to see the string that the variable holds.
(BTW, this is of course not hardcoded, but can be extended to new
types.) KDbg can even display Qt's QString values, which are Unicode
strings.
•Debugger at your finger tips: The basic debugger functions (step,
next, run, finish, until, set/clear/enable/disable breakpoint) are
bound to function keys F5 through F10. Quick and easy.
•Of course, lots of other basic functions: View source code, search
text, set program arguments and environment variables, display
arbitrary expressions. Everything you need to debug a program!
•Debugging of core dumps, attaching to running processes is possible.
•Conditional breakpoints.

Another good option is the Data Diaply Debugger, known as DDD, which has the additional feature of visually displaying data structures and their linkages,

as well as allowing you to plot data:

Also, search the DDD page for "related resources", to find a few more which I was not aware of.