One branch assumes you're debugging your own code (i.e an .elf file) that has been built with symbol information, etc, and puts a breakpoint at the head of the main() function in order to interrupt execution as soon as gdb starts.
The other branch deals with the case where you're debugging something that has no symbol information (e.g a commercial game). In this case it cannot know where to put a breakpoint in order to interrupt execution, so the UMDK convention is to put a breakpoint at the vblank address.
So in order to use gdb, you must either:
(1) use gdb.sh with two args in order to load your code as an .elf file as I demonstrate in the third video, or
(2) have a ROM loaded that regularly calls the vblank routine, which will allow gdb to interrupt execution and return control to the monitor program.
If you're at the early stages of development and don't yet have a vblank routine, and just want to observe what your init routine does, you could just run it without debugging, and look at the trace-log. That will tell you what's happening at the CPU level (i.e what instructions and data are being fetched, and from which addresses).
Chris