linux multithreading debugging cmd nptl

linux - ¿Configurando el hilo/proc/PID/cmdline?



multithreading debugging (3)

Bah ... el código no es tan bueno, el truco es reutilizar el puntero del entorno (aquí argv_buffer):

memset (argv_buffer[0] + len, 0, argv_size - len); argv_buffer[1] = NULL;

¿Alguna mejor idea?

¿Eso está funcionando para diferentes hilos?

En Linux / NPTL , los hilos se crean como algún tipo de proceso.

Puedo ver que algunos de mis procesos tienen una línea de comandos extraña:

cat /proc/5590/cmdline hald-addon-storage: polling /dev/scd0 (every 2 sec)

¿Tienes una idea de cómo podría hacer eso para cada hilo de mi proceso? Eso sería muy útil para la depuración.

/ yo ahora investigando en fuente HAL

Gracias


argv apunta a cadenas modificables. Solo escríbeles cosas:

#include <string.h> #include <unistd.h> int main(int argc, char** argv) { strcpy(argv[0], "Hello, world!"); sleep(10); return 0; }


Si desea hacer esto de forma portátil, algo que funcione en múltiples variantes de Unix, hay muy pocas opciones disponibles.

Lo que tiene que hacer es que su proceso llamador debe llamar a exec con el argumento argv [0] apuntando al nombre que le gustaría ver en la salida del proceso, y el nombre de archivo apuntando al ejecutable real.

Puede probar este comportamiento desde el shell utilizando:

exec -a "This is my cute name" bash

Eso reemplazará el proceso de bash actual con uno llamado "This is my cute name" .

Para hacer esto en C, puede ver el código fuente de sendmail o cualquier otra pieza de software que haya sido portado extensamente y encontrar todas las variaciones que se necesitan en los sistemas operativos para respaldar esto.

Algunos sistemas operativos tienen una setproctitle(3) , otros permiten anular el contenido de argv [0] y mostrar ese resultado.