Linux x86 Problems
The following problems occurs on Linux X86 Platforms:
KAI Guidec Aborts If a Thread is Awoken With an EINTR
When running 3.8 KAI Guidec, your program calls abort if a thread is awoken with an EINTR from the system call in which it was waiting. The unmodified libraries abort with the message error: __kmp_launch_monitor: cond_timedwait: Interrupted system call (4). You can fix this problem by contacting KAI (http://www.kai.com) and requesting patch GUIDE 3.8 k320406.
PGI Problems
Several problems exist when debugging PGI F90 programs.
- PGI F90 compilers do not currently emit debug information for module variables. Consequently, all modules appear empty.
- pgf90 pointer variables that have negative strides are incorrectly displayed.
- Problems exist when demangling variables and module names containing "_" characters.
Watchpoint Triggering Causes a SEGV
If you are using a 2.2 series kernel (at least up through 2.2.14), triggering a watchpoint causes the process to execute a SEGV or an illegal instruction.
This is a kernel bug--the kernel is not correctly saving the value of the debug status register. TotalView uses this register to determine that a data breakpoint has occurred.
Older 2.0 series kernels do not have this bug.
You can correct this problem by altering and recompiling the 2.2.13 kernel. Here is the diff showing the change you must make:
--- traps.c.orig Thu Dec 9 21:39:40 1999
+++ traps.c Thu Dec 9 21:49:13 1999
@@ -354,10 +354,11 @@
unsigned int condition;
struct task_struct *tsk = current;
+ __asm__ __volatile__("movl %%db6,%0" : "=r" (condition));
+ tsk->tss.debugreg[6] = condition;
+
if (regs->eflags & VM_MASK)
goto debug_vm86;
-
- __asm__ __volatile__("movl %%db6,%0" : "=r" (condition));
/* Mask out spurious TF errors due to lazy TF clearing */
if (condition & DR_STEP) {