Right, this trace is actually not used anywhere, so only check was compilation. Will fix that. On 19 November 2017 at 08:27, Johannes Sixt <j6t@xxxxxxxx> wrote: > Am 19.11.2017 um 01:42 schrieb gennady.kupava@xxxxxxxxx: >> >> +#define trace_printf_key(key, ...) >> \ >> + do { >> \ >> + if (trace_pass_fl(key)) >> \ >> + trace_printf_key_fl(TRACE_CONTEXT, __LINE__, key, >> \ >> + __VA_ARGS__); >> \ >> + } while(0) >> + >> +#define trace_printf(...) trace_printf_key(&trace_default_key, >> __VA_ARGS__); >> + >> +#define trace_argv_printf(argv, ...) >> \ >> + do { >> \ >> + if (trace_pass_fl(&trace_default_key)) >> \ >> + trace_argv_printf_fl(TRACE_CONTEXT, __LINE__, >> \ >> + argv, __VA_ARGS__); >> \ >> + } while(0) >> + >> +#define trace_strbuf(key, data) >> \ >> + do { >> \ >> + if (trace_pass_fl(key)) >> \ >> + trace_strbuf_fl(TRACE_CONTEXT, __LINE__, key, >> data);\ >> + } while(0) >> + >> +#define trace_performance(nanos, ...) >> \ >> + do { >> \ >> + if (trace_pass_fl(key)) >> \ > > > The token "key" here looks suspicious. Did you mean &trace_perf_key? > >> + trace_performance_fl(TRACE_CONTEXT, __LINE__, >> nanos,\ >> + __VA_ARGS__); >> \ >> + } while(0) >> + >> +#define trace_performance_since(start, ...) >> \ >> + do { >> \ >> + if (trace_pass_fl(&trace_perf_key)) >> \ >> + trace_performance_fl(TRACE_CONTEXT, __LINE__, >> \ >> + getnanotime() - (start), >> \ >> + __VA_ARGS__); >> \ >> + } while(0) >> /* backend functions, use non-*fl macros instead */ >> __attribute__((format (printf, 4, 5))) > > > -- Hannes