[lttng-dev] [PATCH v3 lttng-ust 2/2] Introduce vtracelog

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Feb 26 16:15:37 EST 2020



----- On Feb 24, 2020, at 12:34 PM, Maxime Roussin-Belanger maxime.roussinbelanger at gmail.com wrote:
[...]

> +int main(int argc, char **argv)
> +{
> +	int i;
> +	int delay = 0;
> +
> +	if (argc == 2)

Check for argc > 2 as well here.

[...]

> diff --git a/liblttng-ust/tracelog.c b/liblttng-ust/tracelog.c
> index 65fc87ed..17546605 100644
> --- a/liblttng-ust/tracelog.c
> +++ b/liblttng-ust/tracelog.c
> @@ -29,27 +29,35 @@
> #define TRACEPOINT_DEFINE
> #include "lttng-ust-tracelog-provider.h"
> 
> +
> #define TRACELOG_CB(level) \
> -	void _lttng_ust_tracelog_##level(const char *file, \
> +	void _lttng_ust_vtracelog_##level(const char *file, \
> 			int line, const char *func, \
> -			const char *fmt, ...) \
> +			const char *fmt, va_list ap) \
> 	{ \
> -		va_list ap; \
> -		char *msg; \
> -		int len; \
> + 		char *msg; \
> +		const int len = vasprintf(&msg, fmt, ap); \
> 		\
> -		va_start(ap, fmt); \
> -		len = vasprintf(&msg, fmt, ap); \
> 		/* len does not include the final \0 */ \
> 		if (len < 0) \
> 			goto end; \
> 		__tracepoint_cb_lttng_ust_tracelog___##level(file, \
> 			line, func, msg, len, \
> 			LTTNG_UST_CALLER_IP()); \

Same as tracef: LTTNG_UST_CALLER_IP() does not have the expected behavior
for _lttng_ust_tracelog_##level anymore. And I would want to ensure we don't
add an additional call indirection in the generated text.

> 		free(msg); \
> 	end: \
> +		return; \
> +	} \
> +	\
> +	void _lttng_ust_tracelog_##level(const char *file, \
> +			int line, const char *func, \
> +			const char *fmt, ...) \
> +	{ \
> +		va_list ap; \
> +		va_start(ap, fmt); \
> +		_lttng_ust_vtracelog_##level(file, line, func, fmt, ap); \
> 		va_end(ap); \
> -	}
> +	} \

I suspect you will want to remove the "\" on the last line here.

Thanks,

Mathieu

> 
> TRACELOG_CB(TRACE_EMERG)
> TRACELOG_CB(TRACE_ALERT)
> --
> 2.20.1
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list