gdb stack trace shows no backtrace - Selected thread is running

Viewed 508

I have a program with multiple threads. This program has been compiled with the -g option and has debug symbols.

(gdb) i threads
 Id   Target Id         Frame
  1    Thread 0x7fbb5256c9c0 (LWP 15799) "main" 0x00007fbb40dfdc93 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
  2    Thread 0x7fbb149ff700 (LWP 15858) "IOService" (running)
  3   Thread 0x7fbb135ff700 (LWP 15860) "EvoAftManBt-mai" (running)
  4   Thread 0x7fbb0cfff700 (LWP 15868) "main" (running)
  5   Thread 0x7fbaecfff700 (LWP 15873) "myTimer-0" (running)
* 6   Thread 0x7fbadffff700 (LWP 15882) "stats-root" (running)>>>>>

What seems odd is the status at the end of each stack frame which says running... Now if I switch to the thread I am interested in:

(gdb) thread 6
[Switching to thread 6 (Thread 0x7fbadffff700 (LWP 15882))](running)
(gdb) bt 
Selected thread is running

No backtrace is printed.

However, for the same binary if I strip off the symbols, I can see the stack trace which is baffling.

Any pointers?

0 Answers
Related