[lttng-dev] [RFC PATCH 1/2] Add -ust to the name of UST threads of the application

Sebastien Boisvert sboisvert at gydle.com
Thu Jun 2 13:14:17 UTC 2016


Hi Raphaël,

On 06/02/2016 09:09 AM, Sebastien Boisvert wrote:
> Add the required functions to change the thread name of the UST
> threads and add the -ust string at its end. This will help to
> identify LTTng-UST processes when analyzing the trace of a process.
> 
> Signed-off-by: Raphaël Beamonte <raphael.beamonte at gmail.com>
> ---
>  liblttng-ust/compat.h         | 22 ++++++++++++++++++++++
>  liblttng-ust/lttng-ust-comm.c |  2 ++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/liblttng-ust/compat.h b/liblttng-ust/compat.h
> index 43b2223..8d5fc77 100644
> --- a/liblttng-ust/compat.h
> +++ b/liblttng-ust/compat.h
> @@ -34,6 +34,23 @@ void lttng_ust_getprocname(char *name)
>  	(void) prctl(PR_GET_NAME, (unsigned long) name, 0, 0, 0);
>  }
>  
> +static inline
> +void lttng_ust_setustprocname()
> +{
> +	char name[LTTNG_UST_PROCNAME_LEN];
> +	int limit = LTTNG_UST_PROCNAME_LEN - 4;
> +
> +	lttng_ust_getprocname(name);
> +
> +	if (strlen(name) >= limit) {
> +		name[limit] = 0;
> +	}
> +
> +	sprintf(name, "%s%s", name, "-ust");

The objects can not overlap, otherwise, the behavior is undefined:

"If copying takes place between objects that overlap as a result of a call to sprintf() or snprintf(), the results are undefined." [1]


[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/sprintf.html




> +
> +	(void) prctl(PR_SET_NAME, name, 0, 0, 0);
> +}
> +
>  #elif defined(__FreeBSD__)
>  #include <stdlib.h>
>  #include <string.h>
> @@ -59,6 +76,11 @@ void lttng_ust_getprocname(char *name)
>  		strncpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1);
>  }
>  
> +static inline
> +void lttng_ust_setustprocname()
> +{
> +}
> +
>  #endif
>  
>  #include <errno.h>
> diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c
> index e00a22c..a85cb21 100644
> --- a/liblttng-ust/lttng-ust-comm.c
> +++ b/liblttng-ust/lttng-ust-comm.c
> @@ -1295,6 +1295,8 @@ void *ust_listener_thread(void *arg)
>  	int sock, ret, prev_connect_failed = 0, has_waited = 0;
>  	long timeout;
>  
> +	lttng_ust_setustprocname();
> +
>  	/* Restart trying to connect to the session daemon */
>  restart:
>  	if (prev_connect_failed) {
> 


More information about the lttng-dev mailing list