Flip it around: what advantage does a "nice graphical UI" give you for what is fundamentally a text processing problem. Except for the most basic stuff (starting, stopping, setting a breakpoint at a line, looking at a variable value) everything you want to do in gdb involves something approximating a query language: set a watchpoint on the 32 bit quantity stored at this address; dump memory from this pointer; call this function (e.g. strstr() on a memory region) and tell me the result.
Watching your code run and hitting a "next" button repeatedly isn't really a good use of the tool.
Watching your code run and hitting a "next" button repeatedly isn't really a good use of the tool.