¿Cómo nombrar un hilo en Linux?

Tengo una aplicación de Linux multiproceso escrita en C / C ++. He elegido nombres para mis hilos . Para ayudar a la depuración, me gustaría que estos nombres sean visibles en GDB, “arriba”, etc. ¿Es esto posible y, de ser así, cómo?

(Hay muchas razones para saber el nombre del hilo . En este momento, quiero saber qué hilo está ocupando el 50% de la CPU (según informa ‘arriba’). Y cuando se depura, a menudo necesito cambiar a un hilo diferente, actualmente tiene que hacer ” thread apply all bt ” y luego mirar a través de páginas de salida de rastreo para encontrar el hilo correcto).

La solución de Windows está aquí ; ¿Cuál es el Linux?

Posix hilos?

Evidentemente, esto no comstackrá, pero le dará una idea de a dónde ir de caza. Ni siquiera estoy seguro de que PR_ comando PR_ correcto, pero creo que sí. Ha sido un tiempo…

  #include  prctl(PR_SET_NAME," terminated string",0,0,0) 

Si está utilizando una biblioteca como ACE, el subproceso tiene una forma de especificar el nombre del subproceso al crear un nuevo subproceso.

BSD Unix también tiene una llamada pthread_set_name_np .

De lo contrario, puede usar prctl como lo menciona Fusspawn.