# $Id: BUGS,v 1.3 2003/08/30 16:41:35 ianedwards Exp $ Updated : 30/Aug/2003 KNOWN BUGS IN UPS ================= 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 If you are trying to debug UPS build it with : configure --enable-debug BUILD ----- o 'gcc' produces warnings about certain routines being unsafe. o The libdwarf/dwarfdump source causes some compiler warnings. o Sun SparCompiler produces warnings about "argument #n is incompatible with prototype ...". o FreeBSD 4.5 build fails in ao_pt_uarea.c because PTRACE_PEEKUSER is not defined. This either needs a kernel patch (see the mailing list) or hack 'ptrace_get_sigstate()' in ao_pt_uarea.c to always return SGH_DEFAULT. 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 If you are using GCC 3.1 (or later) and no source is displayed when you start UPS even when you have built the program with the '-g' flag then try building the program with '-gstabs' instead. This is fixed in UPS 3.38 which supports DWARF debugging info. o Bitfields in structures do not display properly on some systems if not 32 bits long. Fixed in UPS 3.38-beta2 o If UPS crashes with the message Fatal internal error: dwf_do_cu_lines: Already done lnos (aborting) ... In ups/ao_elfsym.c try changing if (st_is == ST_DWARF) { set_function_addresses(el, st, &flist); } else { to if (st_is == ST_DWARF) { /* set_function_addresses(el, st, &flist); */ } else { o On RedHat Linux 7.1 with gcc-2.96 UPS crashes with the message Fatal internal error: bad number in parse_num (aborting) ... Dumping core ... Abort A related problem is the incorrect warning message Warning: sizeof(bool) inconsistent across compile modules! These probably affect any Linux system with gcc-2.96 or later. Patch is available on the UPS web site. Fixed in UPS 3.35beta3. o when displaying a variable in a C++ program has a patch on the web site. Fixed in UPS 3.35beta3. o From Panagiotis Tsirigotis : OS: Linux 2.2.14-5.0 (RedHat 6.2) Window system: KDE-1.1.2 System: Dell Dimension T700r CPU: P-III 700Mhz When I start ups-3.35-beta13, and after I hit 'Start', my whole desktop freezes (sometimes). My only way out when this happens is to switch to another console, and kill kwm. Killing UPS does not help. So, this may not be a UPS problem, but a kwm problem. This did not happen with 3.35-beta10. 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 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. ___________________________________________________________________________