Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Thread name not shown in info thread command when using gdb 7.7

Tags:

gdb

In some of the answers to related questions I could see that gdb 7.3 should support displaying thread names atleast with 'info threads' command . But I am not even getting that luxury. please help me to understand what I am doing wrong.

My sample code used for testing:

#include <stdio.h>
#include <pthread.h>
#include <sys/prctl.h>
static pthread_t ta, tb;

void *
fx (void *param)
{ 
    int i = 0; 
    prctl (PR_SET_NAME, "Mythread1", 0, 0, 0); 
    while (i < 1000) 
       { 
         i++; 
         printf ("T1%d ", i); 
        } 
} 

void * 
fy (void *param) 
{ 
  int i = 0; 
  prctl (PR_SET_NAME, "Mythread2", 0, 0, 0); 
  while (i < 100) 
    { 
      i++; 
      printf ("T2%d ", i); 
    } 
  sleep (10); 
  /* generating segmentation fault */ 
  int *p; 
  p = NULL; 
  printf ("%d\n", *p); 

} 

int 
main () 
{ 


  pthread_create (&ta, NULL, fx, 0); 
  pthread_create (&tb, NULL, fy, 0); 

  void *retval; 
  pthread_join (ta, &retval); 
  pthread_join (tb, &retval); 

  return 0; 
}

Output( using core dump generated by segmentation fault)

(gdb) core-file core.14001 
[New LWP 14003]
[New LWP 14001]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./thread_Ex'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x08048614 in fy (param=0x0) at thread_Ex.c:30
30  printf("%d\n",*p);
(gdb) info threads
  Id   Target Id         Frame 
  2    Thread 0xb77d76c0 (LWP 14001) 0x00b95424 in __kernel_vsyscall ()
* 1    Thread 0xb6dd5b70 (LWP 14003) 0x08048614 in fy (param=0x0) at thread_Ex.c:30
(gdb) bt
#0  0x08048614 in fy (param=0x0) at thread_Ex.c:30
#1  0x006919e9 in start_thread () from /lib/libpthread.so.0
#2  0x005d3f3e in clone () from /lib/libc.so.6
(gdb) thread apply all bt

Thread 2 (Thread 0xb77d76c0 (LWP 14001)):
#0  0x00b95424 in __kernel_vsyscall ()
#1  0x006920ad in pthread_join () from /lib/libpthread.so.0
#2  0x080486a4 in main () at thread_Ex.c:50

Thread 1 (Thread 0xb6dd5b70 (LWP 14003)):
#0  0x08048614 in fy (param=0x0) at thread_Ex.c:30
#1  0x006919e9 in start_thread () from /lib/libpthread.so.0
#2  0x005d3f3e in clone () from /lib/libc.so.6
(gdb) q

As you can see I cant see any thread names that I have set. what could be wrong?

Note: I am using gdb version 7.7 (Downloaded and compiled using no special options) commands used to compile & install gdb : ./configure && make && make install

like image 762
Sreejith M M Avatar asked Dec 05 '25 04:12

Sreejith M M


1 Answers

As far as I am aware, thread names are not present in the core dump.

If they are available somehow, please file a gdb bug.

like image 118
Tom Tromey Avatar answered Dec 09 '25 21:12

Tom Tromey



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!