Not all debuggers are line-based. Many of LLVM's tools give descriptive errors ("expressive diagnostics").
Here's an example of gcc versus clang (a "frontend" for LLVM):
$ gcc-4.2 -fsyntax-only -Wformat format-strings.c
format-strings.c:91: warning: too few arguments for format
$ clang -fsyntax-only format-strings.c
format-strings.c:91:13: warning: '.*' specified field precision is missing a matching 'int' argument
printf("%.*d");
^
All of the debuggers I've seen are line based with the option of single stepping through assembly.
Hopefully the LLDB people will be able to modernize debugging to the degree that the clang guys have modernized error messages, but that still remains to be seen.
Here's an example of gcc versus clang (a "frontend" for LLVM):
LLVM is does some cool stuff :). Some other nice examples are at http://clang.llvm.org/diagnostics.html.