diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-07-25 12:37:52 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-07-25 12:54:39 +0300 |
commit | 364f4246159b8d338c2fafc70b868ffc83816c2f (patch) | |
tree | d6609a1a066d657df4d7615f55834a29f45c6c6f /src/gdbmstore.c | |
parent | de7834e96602695db1cb6efd6238398b84d2ca60 (diff) | |
download | gdbm-364f4246159b8d338c2fafc70b868ffc83816c2f.tar.gz gdbm-364f4246159b8d338c2fafc70b868ffc83816c2f.tar.bz2 |
Add debug info.
* configure.ac: Fix description wording.
* src/Makefile.am [GDBM_COND_DEBUG_ENABLE]: Don't
define GDBM_DEBUG_ENABLE.
* tests/Makefile.am: Likewise.
* src/debug.c (gdbm_debug_printer)
(gdbm_debug_flags): New globals.
(gdbm_debug_token, gdbm_debug_parse_state)
(gdbm_debug_datum): New functions.
* src/gdbm.h.in [@GDBM_DEBUG_ENABLE@]: Define GDBM_DEBUG_ENABLE.
(gdbm_debug_printer_t): New typedef.
(gdbm_debug_printer, gdbm_debug_flags): New externs.
(GDBM_DEBUG_ERR,GDBM_DEBUG_OPEN)
(GDBM_DEBUG_READ,GDBM_DEBUG_STORE)
(GDBM_DEBUG_LOOKUP,GDBM_DEBUG_ALL): New defines.
(gdbm_debug_token,gdbm_debug_parse_state)
(gdbm_debug_datum): New protos.
* src/gdbmdefs.h (GDBM_DEBUG,GDBM_DEBUG_DATUM): New macros.
* src/findkey.c: Add debugging info.
* src/gdbmfetch.c: Likewise.
* src/gdbmopen.c: Likewise.
* src/gdbmseq.c: Likewise.
* src/gdbmstore.c: Likewise.
* src/gdbmtool.c (open_handler): Allow the use of ~/
(command) <repeat,variadic>: New members.
(run_command): Handle variadic functions.
(run_last_command): New command. In interactive mode,
repeats the last command if it was marked
with repeat=1 (currently, only "next").
New command: "debug".
(all functions): Use terror instead of fprintf(stderr,...);
* src/gdbmtool.h (handler_param) <vararg>: New member.
(run_last_command): New proto.
* src/gram.y: Call run_last_command) on empty input.
* tests/gtload.c: New option: -debug=
Diffstat (limited to 'src/gdbmstore.c')
-rw-r--r-- | src/gdbmstore.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gdbmstore.c b/src/gdbmstore.c index 1d7c648..050b0a9 100644 --- a/src/gdbmstore.c +++ b/src/gdbmstore.c @@ -49,2 +49,4 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) + GDBM_DEBUG_DATUM (GDBM_DEBUG_STORE, key, "%s: storing key:", dbf->name); + /* Return immediately if the database needs recovery */ @@ -55,2 +57,4 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) { + GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, + "%s: can't store: not a writer", dbf->name); gdbm_set_errno (dbf, GDBM_READER_CANT_STORE, FALSE); @@ -63,2 +67,4 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) { + GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, + "%s: can't store: invalid key or content", dbf->name); gdbm_set_errno (dbf, GDBM_ILLEGAL_DATA, FALSE); @@ -99,2 +105,4 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) { + GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, + "%s: cannot replace", dbf->name); gdbm_set_errno (dbf, GDBM_CANNOT_REPLACE, FALSE); @@ -150,2 +158,4 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) { + GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, + "%s: lseek: %s", dbf->name, strerror (errno)); gdbm_set_errno (dbf, GDBM_FILE_SEEK_ERROR, TRUE); @@ -159,2 +169,4 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) { + GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, + "%s: writing key: %s", dbf->name, strerror (errno)); gdbm_set_errno (dbf, rc, TRUE); @@ -169,2 +181,5 @@ gdbm_store (GDBM_FILE dbf, datum key, datum content, int flags) { + GDBM_DEBUG (GDBM_DEBUG_STORE|GDBM_DEBUG_ERR, + "%s: writing content: %s", + dbf->name, strerror (errno)); gdbm_set_errno (dbf, rc, TRUE); |