Current CVS version makes it really fun to debug the libraries ...
(ok, "almost" :-)

Beyond the fact that we finally document all debugging
related features (mostly environment variables; checkout "man lesstif"
and our HTML docs) we finally have some enhancements to offer:

 - block files from the DEBUG_SOURCES list:
      export DEBUG_SOURCES=all:-Vendor:-XmString.c
   will (given debugging support was compiled in) produce debugging
  output for all, but the Vendor.c and XmString.c sources

 - you may now send debugging output (DEBUG_FILE) unbuffered
   to stdin, stderr as well as an ordinary file.

- you want to debug a complex, but the crash can hardly be located within
  a few megabytes of debug output?
  No problem anymore! Turn on debugging "just in time".
  Here's an example written for a bash shell:
     1) assume we want to get debugging info from all files but XmString.c written to 
some
          file foo.log and to wait until the application  has been started up and some
          non-critical actions have been performed. A signal SIGUSR1 which exists on 
your
          system is not used by the application:
             export DEBUG_SOURCES=all:-XmString
             export DEBUG_FILE=foo.log
             export DEBUG_TOGGLE=off
             export DEBUG_SIGNAL=SIGUSR1
     2) start app "xmfoo" and get it's <pid>
             xmfoo
     3) get the application in the desired state to start debugging
     4) send a SIGUSR1 to the xmfoo process
              kill -s SIGUSR1 <pid>
     5) produce the desired output by performing the critical actions
     6) end debugging by sending SIGUSR1 again


Since this was recently introduced our debugging facility was sometimes
broken in our CVS version. Meanwhile it's hopefully working as before
and even "better", of course :-)


---
Alexander Mai
[EMAIL PROTECTED]




Reply via email to