Hello, for this test case,
1.#include <stdio.h> 2.#include <omp.h> 3.int 4.main() 5.{ 6. omp_set_num_threads (5); 7. #pragma omp parallel 8. { 9. int th = omp_get_thread_num (); 10. printf ("i am thread %d\n", th); 11. } 12. return 0; 13.} Reading symbols from a.out... OMPD GDB support loaded Run 'ompd init' to start debugging (gdb) ompd init Temporary breakpoint 1 at 0x40115a: file pro.c, line 6. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Temporary breakpoint 1, main () at pro.c:6 6 omp_set_num_threads (5); Loaded OMPD lib successfully! (gdb) b 10 Breakpoint 2 at 0x401198: file pro.c, line 10. (gdb) c Continuing. [New Thread 0x7ffff7d45700 (LWP 116224)] [New Thread 0x7ffff7544700 (LWP 116225)] [New Thread 0x7ffff6d43700 (LWP 116226)] [Switching to Thread 0x7ffff7d45700 (LWP 116224)] Thread 2 "a.out" hit Breakpoint -14, gomp_thread_start (xdata=0x7fffffffd950) at ../../../gcc/libgomp/config/linux/sem.h:46 46 *sem = value * SEM_INC; [New Thread 0x7ffff6542700 (LWP 116227)] [Switching to Thread 0x7ffff7544700 (LWP 116225)] Thread 3 "a.out" hit Breakpoint -14, gomp_thread_start (xdata=0x7fffffffd9d0) at ../../../gcc/libgomp/config/linux/sem.h:46 46 *sem = value * SEM_INC; [Switching to Thread 0x7ffff6d43700 (LWP 116226)] Thread 4 "a.out" hit Breakpoint -14, gomp_thread_start (xdata=0x7fffffffda50) at ../../../gcc/libgomp/config/linux/sem.h:46 46 *sem = value * SEM_INC; [Switching to Thread 0x7ffff6542700 (LWP 116227)] Thread 5 "a.out" hit Breakpoint -14, gomp_thread_start (xdata=0x7fffffffdad0) at ../../../gcc/libgomp/config/linux/sem.h:46 46 *sem = value * SEM_INC; Thread 5 "a.out" hit Breakpoint 2, main._omp_fn.0 () at pro.c:10 10 printf ("i am thread %d\n", th); (gdb) bt #0 main._omp_fn.0 () at pro.c:10 #1 0x00007ffff7f9dd8e in gomp_thread_start (xdata=<optimized out>) at ../../../gcc/libgomp/team.c:131 #2 0x00007ffff7f48609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #3 0x00007ffff7e6d133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (gdb) ompd icv Initialized ICV map successfully for checking OMP API values. ICV Name Scope Value =============================================================== cancel var address_space 0 max task priority var address_space 0 stack size var address_space 0 debug var address_space 0 OMP_DEBUG address_space enabled display affinity var address_space 0 affinity format var address_space level %L thread %i affinity %A affinity format len var address_space 0 wait policy var address_space 4294967295 num teams var address_space 0 teams thread limit var address_space 0 spin count var address_space 300000 num proc var address_space 8 throttled spin count var address_space 100 managed threads var address_space 5 END the output of icv is for global icvs and environment variables are set. The output may be mangled by the mailer. How is this output? The thread_handle patch is ready and will be under review today.