Debugging X with GDB

Jonathan Morton jonathan.morton at
Mon Jan 11 06:26:16 PST 2010

On Mon, 2010-01-11 at 09:01 -0500, Daniel Jacobowitz wrote:
> On Sun, Jan 10, 2010 at 07:42:16PM -0500, Bernie Innocenti wrote:
> > <airlied> I think X might change TTY state and piss gdb off
> I'd imagine this is it, but it's impossible to tell without debugging
> the TTY state.
> When you hit ^C, that doesn't necessarily cause anything to happen.
> The TTY subsystem sees ^C, and may or may not generate a SIGINT to the
> foreground process group depending on the tty settings; try checking
> using stty -F, for instance.  Then the foreground process group is X,
> not GDB; if the SIGINT is blocked or ignored, it won't be delivered,
> so GDB can't intercept it at delivery.
> Using ^C is not always reliable.

A good trick might be to run X+gdb via SSH or a serial console.  This is
then immune to VT switching semantics.

If X screws up sufficiently well to leave the graphics hardware in an
unusable state, or traps in gdb while you're watching it and is thus
unable to release the hardware to textmode, using SSH or serial console
also allows you to continue debugging.

From: Jonathan Morton
      jonathan.morton at

More information about the xorg-devel mailing list