[PATCH] Create reasonable backtraces via gdb automatically

Matthias Hopf mhopf at suse.de
Wed Feb 16 10:00:26 PST 2011


On Oct 08, 10 18:25:11 +0200, Matthias Hopf wrote:
> The following is a patch for the xserver that makes Xorg's stack traces
> *tremendously* more useful - by providing exact source location
> including source snippets (if -debug{source,info} rpms are installed, in
> the case of rpm-based distributions), and local variable contents.
> 
> This is done by calling an external script /usr/bin/xorg-backtrace,
> which in turn will attach gdb to the server process and parse its
> output. Buffer handling is quite tricky, involving invisible temporary
> files, as the X process is frozen during this time.

For what it's worth, we're facing two issues while integrating this into
openSUSE at the moment:

- Together with setuid-root our security team is not exactly fond of the
  patch - gdb is a big beast, and currently nobody is sure whether there
  might be any potential security flaw.
  The current script calls 'rpm' without exact path, which should be
  changed, apart from that I cannot see any security hole ATM.

- Under some circumstances the server falls into a live-lock in fork()
  during a segfault.
  It completely baffles me how this can happen (the server uses ~100%
  cpu time at that point), as fork() is supposed to be signal-safe, and
  doesn't allocate any memory on invocation.
  Any insight herein would be very welcome.

These two points made us convince that - at the current point of time -
it doesn't seem like a good idea to actually use this patch. So I won't
improve it for now, nor will I integrate the other architectures (like
Solaris) into the system. Feel free to play around with it, though.

So long

Matthias

-- 
Matthias Hopf <mhopf at suse.de>      __        __   __
Maxfeldstr. 5 / 90409 Nuernberg   (_   | |  (_   |__          mat at mshopf.de
Phone +49-911-74053-715           __)  |_|  __)  |__  R & D   www.mshopf.de


More information about the xorg-devel mailing list