Fixed
Created: Jun 22, 2017
Updated: Dec 3, 2018
Resolved Date: Aug 2, 2017
Found In Version: 9.0.0.6
Fix Version: 9.0.0.9
Severity: Standard
Applicable for: Wind River Linux 9
Component/s: Toolchain
When customer execute an application using pthread on gdb, it may stop with SIGSTOP signal.
Environment:
Wind River Linux 9
BSP : bcm587xx
Others:
preempt-rt
kernel - 64bit
userland - 32bit
BTW, It will stop again, if it is continue by "c (continue)" command.
Reproduction frequency : 5 of 40 times.
-- an extract of the log --
root@bcm-587xx:~# gdb ./a.out.gdb
GNU gdb (GDB) 7.11.1
<<<.....>>>
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./a.out.gdb...done.
(gdb) r
Starting program: /root/a.out.gdb
[Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1".
[MUTEX] Normal Mutex
[New Thread 0xf765b470 (LWP 1306)]
[New Thread 0xf6e5b470 (LWP 1307)]
<<<...>>>
[New Thread 0xf165b470 (LWP 1318)]
Thread 9 "a.out.gdb" received signal SIGSTOP, Stopped (signal). !!! Stop with SIGSTOP !!!
[Switching to Thread 0xf3e5b470 (LWP 1313)]
0xf77a4824 in __pthread_cond_wait (cond=0x22058, mutex=<optimized out>)
at /usr/src/debug/lib32-glibc/2.24-r0/git/nptl/pthread_cond_wait.c:186
186 lll_futex_wait (&cond->__data.__futex, futex_val, pshared);
(gdb) c
Continuing.
Thread 2 "a.out.gdb" received signal SIGSTOP, Stopped (signal). !!! Stop with SIGSTOP !!!
[Switching to Thread 0xf765b470 (LWP 1306)]
0xf77a4824 in __pthread_cond_wait (cond=0x22058, mutex=<optimized out>)
at /usr/src/debug/lib32-glibc/2.24-r0/git/nptl/pthread_cond_wait.c:186
186 lll_futex_wait (&cond->__data.__futex, futex_val, pshared);
(gdb)
------------------------------------------------------------------------------
0. Install libc6-dbg package in rootfs
(for including debug library)
1. Build test program as the below.
arm-wrsmllib32-linux-gnueabi-gcc -O2 -mfloat-abi=hard --sysroot=<<path for sysroo>> -lpthread -o a.out.gdb test.c
2. Copy test program on target board and run gdb.
# gdb ./a.out.gdb
3. run (just running)