This page chronicles the ongoing changes made to the bastard in the course
of "normal development" and in response to user feedback. The
current
version of the bastard can be obtained from cvs; releases can be downloaded
from the sourceforge project page once they become available. A release
tarball will not be produced until all design criteria for that release have
been met, regardless of any delay this incurs. Those with an immediate need
for features specified in a future release are encouraged to use the cvs
version if it meets their needs, or to contact the developer(s) in order to have
those features given a higher priority.
version .20
Release Date: Undetermined
Design Criteria:
version .18
Release Date: Never
Design Criteria:
version .17
Release Date: Spring^H^H^H^H^HSummer '03
Release Criteria:
Started writing the Front End Programming doc
API Reference has been started
Added find_addr_ptr(), find_string_ref() routines
Fixed bugs in post.1.bc and disasm_find_epilogue() that caused hangs
Barebones ATT Assembler extension written
Added code_tag(), code_untag(), and code_untag_all()
CLI now has BC Script debugging commands, e.g. BC MEMDUMP and BC TRACE
Fixed disassembler bug that disassembled a 32-bit insn as 16-bit insn
Fixed sec_new bug that made data addresses at the start of code sections
Fixed bug in addr_make_code() that corrupted mnemonic strings
Moved extensions from share/bastard to $BASTARD_BASE/lib/bastard
Install now places static libraries in $BASTARD_BASE/lib/bastard
Fixed new_addr() bug that created 1 byte-data addresses inside code addresses
Fixed post.1.bc 'fixing 0/1-byte fns' runaway loop bug
Ncurses front-end is now usable
Wrote ncurses front-end help document
Fixed moronic offset-off-by-1 error in intcode mnemonic sprintf
Fixed sob startup crashes caused by GtkSendEvent
Added func_del(), updated func_size() to mark CODE objects contained by function
Implemented 64-bit internal data types fpr addresses and operands
Changed OOPy names in bdb.ddl to proper BSDish names
Added condition code information to CODE struct
Fixed mega-stupid bug that crashed the CLI in EiC when format strings were used
Finished GDL output plugin (produces files for vcg)
Added addr_step_code() routine
Added support for storing plugins in ~/.bastard/plugins
Addded a new API to libdisasm [not actually a bastard feature]
Fixed ModR/M bug introduced into libdisasm since .16
Fixed 'disassembler engines not being called' problem
Added Visual C++ project files to libdisasm
Fixed operand types in scas, stosb, etc instructions
Added sys_puts() to allow STDOUT output even when QUIET flag is set
Added sys_sprintf() to meet all your sys_msg() needs
Removed Get*Object() routines once and for all
Added 'tag' and 'hint' field to often-used DB tables [for UI, plugin use].
Fixed handling of xrefs in asmsprintf()
Added disassemble_address_raw() to libdisasm
Added notion of 'events' and sys_event() callback for UI frontends
Fixed imul bug where a word was disassembled instead of a byte
Added UI callbacks sys_okcancel, sys_prompt_user, sys_msg, and sys_errmsg
Added CLI commands CODE, CONST, DATA, DTYPE, FUNC, IMPORTS, STRUCT
Fixed bobjdump and defaulted it to Intel syntax
Fixed extension "ext_*" routines to return an error code on error
Plugins now provide a plugin_help command for help, version info
Added DIS command to CLI for calling disassembler plugins directly
PE file format extension written [resources not supported].
Updated CLI VER command to print env and target struct details
MZ file format updated to create PSP structure
Added signature commands to CLI: SIG [subcommands GEN, LOAD, MATCH]
Modified disassembler plugins to call COMP extension and generate data types
Fixed FIND command in CLI; added subcommands INSN, OP, REG, XREF, NAME, BYTES
16-bit mode of libi386/libdisasm finished
Added EXT command to CLI for manualy loading of extensions
Moved clearing of target struct to sys_init() and target_close()
Extension.c now contains ext_fprint_versions to print extension version info
CLI can handle commands with single or double quotes to protect whitespace
Fixed problem with structure generation in ELF.h
Fixed CLI bug with '|' and '>' not closing pipe
CLI now has 'P' command to call arbitrary plugins directly
Top-level Makefile updated to allow configuration of defaults
ELF format extension fixed to provide proper handling for AR files
EXT_PLUGIN support expanded to allow multiple plugins
libi386 makefile fixed to include i386_invariant.o
Disassembly of .header section in packed executables fixed.
Makefiles updated to allow compilation on FreeBSD.
libi386/libdisasm invariant disassembly fixed.
Makefiles updated to fix 'make install' bug.
CLI now has 'O' command to call output plugins directly.
Plugin interface extended to allow arbitrary functions in plugins to be called by name.
libi386/libdisasm disassembly of prefetch instructions fixed.