The command M-x gdb starts GDB in an IDE-like interface, with specialized buffers for controlling breakpoints, stack frames, and other aspects of the debugger state. It also provides additional ways to control the debugging session with the mouse, such as clicking in the fringe of a source buffer to set a breakpoint there.
To run GDB using just the GUD interaction buffer interface, without these additional features, use M-x gud-gdb (see Starting GUD). You must use this if you want to debug multiple programs within one Emacs session, as that is currently unsupported by M-x gdb.
Internally, M-x gdb informs GDB that its screen size is unlimited; for correct operation, you must not change GDB's screen height and width values during the debugging session.