There are several commands for starting a debugger subprocess, each corresponding to a particular debugger program.
The other commands in this list do the same, for other debugger
Each of these commands reads a command line to invoke the debugger, using the minibuffer. The minibuffer's initial contents contain the standard executable name and options for the debugger, and sometimes also a guess for the name of the executable file you want to debug. Shell wildcards and variables are not allowed in this command line. Emacs assumes that the first command argument which does not start with a ‘-’ is the executable file name.
Tramp provides a facility for remote debugging, whereby both the debugger and the program being debugged are on the same remote host. See Running a debugger on a remote host, for details. This is separate from GDB's remote debugging feature, where the program and the debugger run on different machines (see Debugging Remote Programs).