# @(#)BUGS	$Id: BUGS,v 1.5 2000/05/05 22:26:26 ian Exp ian $

Updated : 10/Apr/2000

KNOWN BUGS IN UPS 3.35
======================

The systems which are known or expected to have the problem are listed,
it may well be on others as well.

Please report bugs to the mailing list <ups-users@ukc.ac.uk>


BUILD
-----
 o  'gcc' produces warnings about certain routines being unsafe.

 o  Compiler warning about ups/obj_misc.c is expected :

      ./obj_misc.c: In function `do_srchead':
      ./obj_misc.c:492: warning: passing arg 1 of `iterate_over_source_files'
      from incompatible pointer type

 o  Sun SparCompiler produces warnings about "argument #n is incompatible
    with prototype ...".

 o  FreeBSD 2.2.7 produces a compiler error about '__error()' in
    cx_libfuncs.h.  Change

	#if HAVE___ERROR && OS_FREEBSD
		F(__error)
	#endif
    to
	#if HAVE___ERROR && HAVE___ERRNO_DECL
		F(__error)
	#endif

 o  To build an 'a.out' executable of UPS on FreeBSD 3.x please see the
    instructions in the main README under "FreeBSD 3.x a.out SUPPORT".


GENERAL
-------
 o  The 'raise on break' option can cause "Xlib: unexpected async reply"
    errors when using a local display, i.e display is :0.0, with XFree86.
    Using localhost:0.0 as the display may cure the problem, either set
    the environment variable $DISPLAY or use the '-display' option to ups.

 o  Programs built with the 'egcs' version of 'gcc' sometimes crash, or
    do not display, a structure variable which includes other structures
    or typedefs.  Probably limited to programs with complex data structures
    whose definitions spread across many header files (e.g. ups).
    (FreeBSD ELF, Linux ELF)

 o  'struct' variables with storage class 'register' are not displayed
    correctly (FreeBSD 2.x)

 o  Problems calling routines in shared libraries from interpreted code
    added at breakpoints (FreeBSD ELF, Linux ELF).

    If you get messages like "Warning: function `...' appears in both ..."
    then prevent the 'ld.so' library from being loaded by creating the file
    ~/.upsinit and putting a 'noload' command in it.
    For RH Linux 6 this would be

	noload *ld-linux*

    For FreeBSD this would be

	noload *ld-elf*

 o  Annette Hartman <a.hartman@xpedite.com> reported that ups works for 
    ReflectionX, but not XVision.


CORE FILES
----------
 o  variables with storage class 'register' are not displayed correctly
    (FreeBSD ELF, Linux ELF)

 o  'long long' variables with storage class 'register' are not displayed
    correctly (FreeBSD a.out)

 o  If the crash was in a shared library routine the stack trace and source
    display do not show the statement that caused the crash but the call to
    the routine containing that statement (FreeBSD, Linux)


FORTRAN
-------
 o  g77 version egcs-2.91.66 does not work with ups.
    Use g77 version 2.95 (release) (from FSF-g77 version 0.5.25 (release))
    or later.

 o  GNU Fortran (g77) : display of COMPLEX variables looks like a C
    structure on some systems.
    Click on the Expand button to see their contents.

 o  GNU Fortran (g77) : cannot display COMMON blocks or their variables
    in a meaningful way, even when the program is built with the option
    "-fdebug-kludge".

 o  (FreeBSD) f77 using f2c : not usable on ELF systems, i.e. FreeBSD 3.0
    or later.  You have two options -
    1) Build UPS for aout files, by "configure --with-aout" and compile
       your Fortran with "OBJFORMAT=aout f77 ..."
    2) Switch to GNU Fortran (g77).

 o  (FreeBSD) f77 using f2c : cannot display most COMMON blocks or their
    variables.
    If the COMMON block is named and all the variables in it are of the
    same type then you can get a display by typing the name of the block
    with a trailing underscore in the typing line at the top of the UPS
    window and pressing the Escape key.  Then click on the Expand button.

 o  (FreeBSD) f77 using f2c : when UPS is first started it may not let you
    set breakpoints in subroutines.  If you use the Step button to step
    into the routine it should now allow breakpoints to be set in it.
    Restoring saved breakpoints works at startup, so once you have set
    breakpoints save them to a file so you can reload them.
___________________________________________________________________________
