IBM RS/6000 Problems

The RS/6000 platform has the following known problems. (Items new with this release are in bold.)

AIX May Only Create a Partial Core File

Recent versions of AIX (4.1 or later) dump a partial core file by default. In general, a partial core dump contains only enough information to give a stack backtrace for the faulting thread. User data sections as well as some other potentially useful information are only available in a full core dump.

To force a full core dump on AIX, you must set a signal flag with sigaction for the signal that caused the core dump. For example:

struct sigaction act;
act.sa_handler = SIG_DFL;
if (bigcore)
    act.sa_flags = SA_FULLDUMP;
else if (smallcore)
    act.sa_flags = SA_PARTDUMP;
sigaction (SIGSEGV, &act, 0); 

Breakpoints Can't Be Set in Some Shared Libraries

Under some circumstances, TotalView may not be able to set a breakpoint in a shared library. We have reported this problem to IBM. (2635)

Calling Dynamic Objects From Evaluation Window

If a routine in a dynamic object is called from the expression window, and if the target routine is never called from the main program, TotalView refuses to call the routine.

Cannot Start TotalView on MPI Tasks After Installing PTF Set 4 on AIX 4.3.3

After installing PTF Set 4 on some versions AIX.4.3.3, TotalView will begin executing and hang after you answer Do you wish to stop the parallel tasks question. If you have this problem, please send email to support@etnus.com.

GNU Demangling Problem

Some small C++ programs compiled with the GNU compiler on AIX may not be recognized by TotalView as having been compiled with the GNU compiler. In these cases, TotalView will not demangle various program names. To make TotalView demangle the names in these programs properly, specify -demangler=gnu on the command line.

GPFS File System Not Supported

Version 5.0.0-1 will not work with versions of GPF earlier than version 1.3 due to limitations in that file system. No file that must be read by TotalView should be stored on a pre-version 1.3 GPFS system.

If you attempt to debug a program that has executable components (the image or dynamic libraries) on GPFS, you will see error messages like this from TotalView:

aix_lookup_symbol_in_load_module: Failed to map module; errno = 109 

Multithreaded Problems

You may experience some problems when debugging multithreaded programs, because of limitations in the ptrace() operating system call.

The following problems can show up while you are debugging multithreaded applications:

  1. When a thread stops (for example, hits a breakpoint) all the other threads stop. If any of the other threads stops while in a system call (for example, read(), sleep(), select(), etc.), however, ptrace() does not allow the debugger to read the thread's registers. As a result, TotalView:
    • Cannot display the registers, including the program counter; but does display the stack pointer
    • Cannot show you which system call is being executed
    • Cannot single-step using the step or next command, but out and run to work
    • Cannot display the top stack frame

      If you have a multithreaded application that makes a lot of system calls, it is possible that most of your threads are not fully debuggable whenever one of them stops.

  2. TotalView shows you which threads are stuck in the kernel by displaying their state as In Kernel (K).
     
  3. When a thread is created or destroyed, the system does not notify the debugger of this event. As a result, the list of threads displayed by TotalView may be stale when the program is running.
     
  4. If the process stops for any reason, TotalView automatically updates the thread list. You may also type View > Reset to force the thread list to update.

Parallel Session Running in the Background Can Hang TotalView

On AIX systems, TotalView can hang if you have a TotalView parallel debug session running in the background in an xterm window, and you type anything in the underlying xterm window while the poe process is stopped. Type the fg command in the TotalView xterm window to clear up this condition.

poe Interferes With a Standalone CLI's use of stdin

Because poe tries to manage stdin on behalf of its target processes, a CLI invoked directly from the shell cannot read from stdin. If your target processes do not use stdin, using the -stdinmode none option to the poe command allows the CLI to use stdin. Unfortunately, this option is incompatible with the poe command's -cmdfile option.

If your processes do use stdin, your only recourse is to redirect stdin from within the CLI. For example:

drun < in.txt

(pr 2078, 2422)

ptrace Attaching Fails

Versions of the AIX kernel after AIX 4.3.3.1 contain a bug that causes a ptrace() attach to fail for some programs. In particular, attaching to a Parallel Environment program may fail. You can solve this problem by installing IY10784, whose description is:

    IY10784: ATTACH FAILS TO THE CHILD PROCESS OF A ROOT PROCESS

Process Contention Scope Not Supported

On AIX 4.3.1, 4.3.2, and 4.3.3 systems, TotalView supports debugging pthread programs running in pthread-compatibility mode or pthreads scheduled in system contention scope, that is, each pthread is bound to a kernel thread (the 1:1 thread scheduling model). TotalView does not support process contention scope, that is, multiple pthreads scheduled in user mode (M:N thread scheduling model).

On AIX 4.3.1, 4.3.2, and 4.3.3, when using TotalView to debug a program built with libpthreads.a, you must force the 1:1 model using the procedure outlined in Forcing 1:1 Thread Scheduling Mode on RS/6000 Systems, which is contained in the IBM Special Considerations document.

pthdb_pthread() Returns an Empty pthread List

Sometimes when a process is stopped and the pthdb_pthread() function is used to obtain a list of pthreads, the returned list is empty even when there are pthreads. (TotalView displays a console message saying that there are no more threads.) You can fix this problem by applying the APAR IY06378 patch to your system. The procedure for obtaining and applying patches is described in RS/6000 System Patch Procedures, which is found in the IBM Special Considerations document.

XL Fortran Problems Generating Incorrect Section Numbers

Code compiled with the XL Fortran for AIX compiler Versions 4.1 and 5.1 may contain incorrect section numbers for bstat (.bs) and estat (.es) symbols. TotalView detects any incorrect section numbers and generates a warning in a dialog box for the first such problem only. TotalView notes any additional incorrect section numbers on its message output only. Symptom: common blocks have invalid addresses.

Patches for the 5.1 compilers are available through the normal AIX FixDist WEB. See the Patching document for downloading instructions, then download PTF U457231, which is for xlfcmp.5.1.0.2. You will be downloading all of the following filesets:

Filesets needed for selected item
Information file
Byte size
xlfcmp.5.1.0.2
README
18824192
xlfrte.5.1.0.2
README
24093696
xlsmp.rte.1.0.0.1
README
63488

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