Linux Problems

The following problems exist on all Linux Platforms. (Items new with this release are in bold.). (Items new with this release are in bold.)

exec() Not Yet Supported

Debugging threaded programs (pthreads) that call exec() is not yet supported.

GCC g77 Problem with Common Blocks

The GCC g77 compilers do not output debugging information for common blocks. Consequently, TotalView cannot show the values of variables in common blocks.

KDE Problems

Some users have reported that TotalView menus appear without a surrounding box when using KDE. The only workaround for this problem is to use a different window manager.

At other times, the entire display goes completely blank after right clicking in the source pane of tvmain after the process window appears. This problem is intermittent and we have not been able to reproduce it so that it can be analyzed.

LIBDBFORK Problems

The Linux implementation of the ptrace() debug function is flawed. This implementation reassigns the parent process of the process being debugged to TotalView. This means that an error will occur when the process's real parent attempts to wait for it because it will not find the child (as the child now belongs to the TotalView).

As this is a Linux kernel problem, TotalView cannot be patched to solve this problem. (The same problem will occur with any debugger on Linux). (2100)

Stepping into System Routine Backtrace Problem

If you step into a system routine such as printf(), TotalView may stop in the dynamic linker before its information has been fixed up. In this case, you may not be able to return out of this place.

You can avoid this problem by setting LD_BIND_NOW to 1 (see Appendix B of the TotalView Users Guide for more information) or you can use the Next command instead of the Step command. (3015)

Thread Debugging and errno

When using pthreads on Linux, the errno variable is actually a C macro defined as follows in bits/errno.h:

#define errno (*__errno_location ())

This definition allows each thread to have its own errno value. Unfortunately, the program does not contain information that allows TotalView to find this thread specific errno value and there remains a single global errno variable still exists.

The result is that displaying errno in any thread other than the initial one in a process is likely to be very misleading, since you will see the global errno variable, rather than the per-thread value accessed by your code through the above macro.

For platform-specific information, see:

 
 
 
 
support@etnus.com
Copyright © 2001, Etnus, LLC. All rights reserved.
Version 5.0.0-1