ftp://ftp.demon.nl/disk1/redhat-contrib/libc5/SRPMS/xscreensaver-2.14-1.src.rpm
[xscreensaver] / README.debugging
diff --git a/README.debugging b/README.debugging
new file mode 100644 (file)
index 0000000..cf14789
--- /dev/null
@@ -0,0 +1,141 @@
+
+                              XScreenSaver
+
+              a handy guide for creating useful bug reports
+
+                                --------
+
+    It's hard to imagine, but sometimes, xscreensaver has bugs.  This
+    document gives some hints for isolating them; the more information
+    you can give me about the problem, the better the odds that I'll be
+    able to fix it.  But, if you don't have time to go through these
+    steps, report the bug anyway -- even vague bug reports can be 
+    better than no bug report at all.
+                                --------
+
+STEP ZERO:
+
+    What are you doing here?  Go read README, and then the man page.
+
+STEP ZERO, PART TWO:
+
+    Do you have the most recent version?  Go make sure.
+    http://people.netscape.com/jwz/xscreensaver/
+
+BUILDING:
+
+    If you get an error running the `configure' script, the first thing
+    you should try is deleting the `config.cache' file, and running again.
+    If that doesn't fix it, the information I'll need to see to make
+    sense of the problem is the following:
+
+        *  everything printed to stderr/stdout when you first ran
+           ./configure;
+
+        *  the contents of the `config.log' file.
+
+    Make sure you blow away the config.cache file before regenerating
+    this info, or else the `config.log' file will be mostly empty/useless.
+
+    Experience seems to show that the most common configure problem is
+    that sites have gcc installed, but installed improperly.  The
+    configure script will always try to use gcc in preference to another
+    compiler if gcc exists, so if gcc exists but is broken, it won't
+    work.  Your options are:
+
+        *  get someone to fix the gcc installation;
+
+        *  rearrange your $PATH so that the broken gcc is not on it;
+
+        *  or pass $CC in the environment, like so:
+               csh:  setenv CC cc ; ./configure
+               sh:   CC=cc ; ./configure
+
+    After doing this, you'll need to nuke `config.cache'.
+
+    If you get errors about not being able to find Motif or Athena (the
+    Xm/ or Xaw/ header files), and you can't find them on your system,
+    then your system is horked and your vendor is lame.  Perhaps the
+    problem is that you don't have some kind of ``development option''
+    installed.  Xt/ and Xaw/ (Athena) are free and available on all
+    systems; Xm/ (Motif) is available on all commercial systems except
+    SunOS 4.x and some early releases of Solaris.
+
+RUNNING:
+
+    For runtime errors, it's important to keep in mind that there are
+    two parts to xscreensaver: there is the screensaver driver process
+    (the part that detects idleness, deals with locking, and launches
+    the demos); and there are the demos themselves (independent programs
+    that draw pretty pictures.)
+
+        *  Compile with `make CFLAGS=-g'.
+
+        *  What platform are you running on?  What does the included
+           `./config.guess' shell script print?
+
+        *  Is the problem in the driver, or in the graphics hacks?
+
+        *  If the problem is in the driver, was the driver built using
+           Motif, or Athena?  Which version?
+
+        *  If the problem is in one (or more) of the hacks, which ones?
+           If you're not sure, try
+
+              xscreensaver-command -demo
+
+           to go through the list of them and see which work and which
+           don't.
+
+        *  Does the problem occur when running that hack by hand, in
+           its own window?
+
+        *  Does the problem occur when running that hack by hand, on
+           the root window (the `-root' option)?
+
+        *  IMPORTANT: What visual are you using?  Send the output of
+           the `xdpyinfo' command.
+
+        *  Does the problem go away if you give the program a different
+           `-visual' argument?  (For example, `-visual pseudocolor' or
+           `-visual truecolor'.)
+
+        *  IMPORTANT: What exactly goes wrong?  No, I don't know what
+           you mean by "crash".  Does it print an "X Error" and exit?
+           Does it dump core?  Does it go into a loop?
+
+        *  If it dumps core, what does the core file say?  Run the
+           program under a debugger, and show me the stack trace.
+           (If you don't know how to do that, that's ok.)
+
+        *  If it gets an X error, where did it come from?  Run the
+           program under a debugger; set a breakpoint on `exit';
+           start the program with the `-sync' command-line option;
+           and show me the stack trace when it stops.
+
+    If the problem is with the xscreensaver process itself, or if you
+    can't figure out which demo is causing the problem, or if you can't
+    reproduce the problem in isolation, then you will need to turn on
+    and examine the debugging output of the driver process.
+
+        *  Start `xscreensaver' with the command-line arguments
+
+             -verbose -xrm '*captureStderr:false' -xrm '*captureStdout:false'
+
+           This will cause it to write a lot of debugging info to the
+           stdout and stderr of the xscreensaver process (the -verbose
+           argument turns on the diagnostics; the remaining arguments
+           prevent the data from being displayed on the screensaver
+           window as well.
+
+        *  If the problem is intermittent, you might want to capture the
+           log information to a file and examine it later.
+
+        *  Hackers only: If you're feeling adventurous enough to run gdb
+           on the xscreensaver driver process itself, make sure you've
+           read the commentary at the top of xscreensaver.c.
+
+-----------------------------------------------------------------------------
+                                 http://people.netscape.com/jwz/xscreensaver/
+                                            Jamie Zawinski <jwz@netscape.com>
+-----------------------------------------------------------------------------