typedef struct LogWhere_s {
const char *file;
const char *func;
const int line;
char pad[sizeof(void *) - sizeof(int)];
} LogWhereData;
#define LogWhere() ((LogWhereData){.file = __FILE__, .line = __LINE__, .func = __func__})
void LogTraceFunc(const LogWhereData where, const char *fmt, ...);
#define LogTrace(fmt) LogTraceFunc(LogWhere(), fmt)
#define LogTracef(fmt, ...) LogTraceFunc(LogWhere(), fmt, __VA_ARGS__)