I have also had a great time using `ddd` which is a lovely front-end for GDB. It's memory visualizer has helped me tremendously when learning complicated data structures.
I highly recommend vdebug (https://github.com/joonty/vdebug) if you're looking for a great Vim interface to DBGP debuggers (for PHP, Python, Ruby, Perl, Node, etc.). Really nice, especially compared to the countless half-broken and out-of-date Vim/DBGP plugins that are scattered around vim.org and github.
Maybe this is great for PHP, where DBGP is the standard, but...
I tried this for Python and was greatly put off by the need to download an obscure debugger tarball from ActiveState with some weird license on it, then (according to the vdebug documentation) run a very long command line by hand passing the name of the script every time I want to debug something.
If I am going to trouble myself with that, it's hard to understand why I don't just run a standard standalone debugger which works in the expected way, from the command line. I definitely don't see how it reproduces the experience of (say) pressing a debug button in Visual Studio or Xcode.
The site appears to be down for now but i got to the content via fullhn.com (there doesn't appear to be a permalink i can list for there, it's currently fullhn.com/#article-5)
I'd like to single-step through the code displayed in a vim editor window, with all the power of vim to navigate it, plus commands to single-step, watch variables, set breakpoints, etc. tmux or screen can't give me that, nor can gdb -tui.
I was looking for the same thing, ended up using ddd, has watches, breakpoints etc. If you've found a better solution than that though feel free to let me know.
For live debugging there's still a need for some way of getting the source locations you're interested in into that quickfix window. Not that there aren't probably plugins &c that do just that, but it doesn't fall out as straightforwardly as parsing build errors.