An undocumented debug mode

1. The debug file is located at /tmp/nnn_debug.
2. Debug mode is completely disabled by default. The debug binary `nnndbg` can
be built by running `make debug`.
This commit is contained in:
Arun Prakash Jana 2017-06-19 22:21:08 +05:30
parent b66fa0325d
commit 370ed32a28
No known key found for this signature in database
GPG Key ID: A75979F35C080412
2 changed files with 39 additions and 5 deletions

View File

@ -1,6 +1,6 @@
VERSION = 1.1 VERSION = 1.1
PREFIX = /usr/local PREFIX ?= /usr/local
MANPREFIX = $(PREFIX)/share/man MANPREFIX = $(PREFIX)/share/man
CFLAGS += -O2 -Wall -Wextra -Wno-unused-parameter CFLAGS += -O2 -Wall -Wextra -Wno-unused-parameter
@ -27,9 +27,12 @@ $(LOCALCONFIG): config.def.h
$(SRC): $(LOCALCONFIG) $(SRC): $(LOCALCONFIG)
$(BIN): $(SRC) $(BIN): $(SRC)
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
strip $@ strip $@
debug: $(SRC)
$(CC) -DDEBUGMODE -g $(CFLAGS) -o nnndbg $^ $(LDFLAGS) $(LDLIBS)
install: all install: all
mkdir -p $(DESTDIR)$(PREFIX)/bin mkdir -p $(DESTDIR)$(PREFIX)/bin
cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin

37
nnn.c
View File

@ -39,7 +39,9 @@
#endif #endif
#include <ftw.h> #include <ftw.h>
#ifdef DEBUG #ifdef DEBUGMODE
static int DEBUG_FD;
static int static int
xprintf(int fd, const char *fmt, ...) xprintf(int fd, const char *fmt, ...)
{ {
@ -55,7 +57,29 @@ xprintf(int fd, const char *fmt, ...)
return r; return r;
} }
#define DEBUG_FD 8 static int enabledbg()
{
FILE *fp = fopen("/tmp/nnn_debug", "w");
if (!fp) {
fprintf(stderr, "Cannot open debug file\n");
return -1;
}
DEBUG_FD = fileno(fp);
if (DEBUG_FD == -1) {
fprintf(stderr, "Cannot open debug file descriptor\n");
return -1;
}
return 0;
}
static void disabledbg()
{
close(DEBUG_FD);
}
#define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d\n", x) #define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d\n", x)
#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x) #define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x)
#define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s\n", x) #define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s\n", x)
@ -82,7 +106,7 @@ xprintf(int fd, const char *fmt, ...)
struct assoc { struct assoc {
char *regex; /* Regex to match on filename */ char *regex; /* Regex to match on filename */
char *mime; /* File type */ char *mime; /* File type */
}; };
/* Supported actions */ /* Supported actions */
@ -2398,11 +2422,18 @@ main(int argc, char *argv[])
exit(1); exit(1);
} }
#ifdef DEBUGMODE
enabledbg();
#endif
/* Set locale */ /* Set locale */
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
initcurses(); initcurses();
browse(ipath, ifilter); browse(ipath, ifilter);
exitcurses(); exitcurses();
#ifdef DEBUGMODE
disabledbg();
#endif
exit(0); exit(0);
} }