* Correctly handle functions returning struct/union (fixes bug #31792) * Gracefully handle invalid inputs (fixes bug #44113) * Debugging output goes to stderr * Add a manpage * Consistent use of exit codes
* Extensive database consistency checking GDBM tries to detect inconsistencies in input database files as early as possible. When an inconcistency is detected, a helpful diagnostics is returned and the database is marked as needing recovery. From this moment on, any GDBM function trying to access the database will immediately return error code (instead of eventually segfaulting as previous versions did). In order to reconstruct the database and return it to healthy state, the gdbm_recover function should be used. Special thanks to Lionel Debroux and Craig Young for investing their time and efforts in testing and providing valuable feedback. * Improved error checking * Removed gdbm-1.8.3 compatibility layer * Commands can be given to gdbmtool in the command line The syntax is: gdbmtool DBNAME COMMAND [ARGS...] Multiple commands are separated by semicolon (take care to escape it), e.g.: gdbmtool t.db count\; avail * Fixed data conversion bugs in storing structured keys or content * New member in the gdbm_recovery structure: duplicate_keys. Upon return from gdbm_recover, this member holds the number of keys that has not been recovered, because the same key had already been stored in the database. The actual number of stored keys is thus recovered_keys - duplicate_keys. * New error codes. GDBM_BAD_BUCKET "Malformed bucket header" GDBM_BAD_HEADER "Malformed database file header" GDBM_BAD_AVAIL "Malformed avail_block" GDBM_BAD_HASH_TABLE "Malformed hash table" GDBM_BAD_DIR_ENTRY "Invalid directory entry"
* Licensed under GPLv3 or later. * mixal ** Location of listing file By default, mixal creates listing file in the current working directory. * mixsim ** The .mixsim file When started in terminal mode, the utility searches for file `.mixsim' in the current working directory and reads it, if present. The file may contain any mixsim commands. ** The set of terminal commands is improved to make it compatible with GDB. ** New command, PASSCOUNT Set the number of crossings after whcih to clear the breakpoint. ** Removed optional second argument to BREAK. The functionality of `BREAK <ADDR> <COUNT>' is now obtained by two commands: BREAK <ADDR> PASSCOUNT <N> <COUNT> ** New command DELETE. An alias to CLEAR. ** New command IGNORE Sets the number of hits to ignore before enabling the breakpoint. ** New commands ENABLE and DISABLE Enable or disable the breakpoint with the given number. ** New command RUN It is an alias for GO. ** New command SOURCE Execute a file of mixsim commands. ** New command ADDRESS. This command takes as its argument a breakpoint manipulation command (DELETE, IGNORE, ENABLE, DISABLE, PASSCOUNT) with arguments appropriate for the associated command. However, the first argument of the corresponding command is treated as MIX address, instead of a breakpoint number. ** New command INFO. An alias to LIST. ** New command SHELL. Executes a subordinate shell or a shell command. Abbreviated to !. ** NEXT and STEP take optional argument. The argument, if given, specifies number of instructions to execute. Default is 1. ** INFO BREAK takes an optional argument specifying breakpoint number to list. If prefixed with ADDRESS, it treats the argument as a MIX location and lists all breakpoints set on that location.
This version includes support for msgctxt.