Debug tweaks
- Add gcc printf format check to _log() - Show thread ids - Enable setting debug level
This commit is contained in:
@@ -29,6 +29,9 @@
|
|||||||
|
|
||||||
#define RX_BUF_SIZE 1024
|
#define RX_BUF_SIZE 1024
|
||||||
|
|
||||||
|
#define _PRF_N_(no) __attribute__((__format__(__printf__, (no), (no) + 1)))
|
||||||
|
#define _PRF2_ _PRF_N_(2)
|
||||||
|
|
||||||
|
|
||||||
static struct ttynvt_param {
|
static struct ttynvt_param {
|
||||||
unsigned int major;
|
unsigned int major;
|
||||||
@@ -69,17 +72,28 @@ typedef struct ttynvt {
|
|||||||
tn_ctx_t *tn;
|
tn_ctx_t *tn;
|
||||||
} ttynvt_t;
|
} ttynvt_t;
|
||||||
|
|
||||||
static void _log(int prio, const char *fmt, ...)
|
#include <sys/syscall.h>
|
||||||
|
#define gettid() (pid_t)syscall(__NR_gettid)
|
||||||
|
|
||||||
|
_PRF2_ static void _log(int prio, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list arg;
|
va_list arg;
|
||||||
|
char buf[256];
|
||||||
|
|
||||||
va_start(arg, fmt);
|
va_start(arg, fmt);
|
||||||
|
#if 0
|
||||||
vsyslog(prio, fmt, arg);
|
vsyslog(prio, fmt, arg);
|
||||||
|
#else
|
||||||
|
vsnprintf(buf, sizeof(buf), fmt, arg);
|
||||||
|
syslog(prio, "[%d] %s", gettid(), buf);
|
||||||
|
#endif
|
||||||
va_end(arg);
|
va_end(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DBG(...) \
|
#define DBG(...) \
|
||||||
if (ttynvt_param.debug) _log(LOG_DEBUG, __VA_ARGS__)
|
if (ttynvt_param.debug > 0) _log(LOG_DEBUG, __VA_ARGS__)
|
||||||
|
#define DBG2(...) \
|
||||||
|
if (ttynvt_param.debug > 1) _log(LOG_DEBUG, __VA_ARGS__)
|
||||||
|
|
||||||
|
|
||||||
static int _check_dev(void)
|
static int _check_dev(void)
|
||||||
@@ -812,7 +826,7 @@ static const struct cuse_lowlevel_ops ttynvt_op = {
|
|||||||
#define TTYNET_OPT(t, p, v) { t, offsetof(struct ttynvt_param, p), v }
|
#define TTYNET_OPT(t, p, v) { t, offsetof(struct ttynvt_param, p), v }
|
||||||
|
|
||||||
static const struct fuse_opt ttynvt_opts[] = {
|
static const struct fuse_opt ttynvt_opts[] = {
|
||||||
TTYNET_OPT("-D", debug, 1),
|
TTYNET_OPT("-D %d", debug, 1),
|
||||||
TTYNET_OPT("-M %u", major, 1),
|
TTYNET_OPT("-M %u", major, 1),
|
||||||
TTYNET_OPT("--maj=%u", major, 1),
|
TTYNET_OPT("--maj=%u", major, 1),
|
||||||
TTYNET_OPT("-m %u", minor, 1),
|
TTYNET_OPT("-m %u", minor, 1),
|
||||||
@@ -829,7 +843,7 @@ static const struct fuse_opt ttynvt_opts[] = {
|
|||||||
static void print_help(void)
|
static void print_help(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "ttynvt Usage:\n"
|
fprintf(stderr, "ttynvt Usage:\n"
|
||||||
"\t-D\tEnable debug\n"
|
"\t-D level\tEnable debug\n"
|
||||||
"\t-M major, --maj=major\n"
|
"\t-M major, --maj=major\n"
|
||||||
"\t-m minor, --min=minor\n"
|
"\t-m minor, --min=minor\n"
|
||||||
"\t-n name, --name=name (default: ttyNVT0)\n"
|
"\t-n name, --name=name (default: ttyNVT0)\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user