Apparently many people still believe that GDB debugging on B2G doesn’t really work. I know about that: I held that wrong opinion until yesterday.
Turns out that my issues were all caused by simple mistakes.
Of all the standard features of a debugger that I have tried, only watchpoints don’t currently work. Everything else works, including setting a breakpoint on a symbol and getting it hit.
So if you were having issues with debugging B2G, check if that helps you. If not, please improve this page!