I don't use GDB a lot. But when I do, I generally use the pwndb extension.
It's written for exploit development, but even for debugging a C program. It makes things a lot nicer.
I love pwndbg. I work at the level of writing syscalls often, and it's wonderful that pwndbg's disassembler pretty-prints the operands of syscalls write next to the actual instruction.