Download

netbb main page

 netbb-14 (10-MAY-2003)
netbb-14.tar.gz (28 kB)

Changes:

  • updated dbb/tcpump.dbb and uml/rle/dbb to work with newline changes in umlsim version 32 and above
  • updated dbb/tcpdump.dbb and uml/rle.dbb to use "read()" instead of "read"

 netbb-13 (24-FEB-2003)
netbb-13.tar.gz (27 kB)

Changes:

  • removed dumpbb and dwarfx, which are now part of the umlsim package
  • uml/runtests.sh now also looks in ../umlsim/sim, ../../umlsim/sim, and ../../sim for dumpbb

 netbb-12 (11-FEB-2003)
netbb-12.tar.gz (119 kB)

Changes:

  • cleaned up code to allow warning-free compilation with -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wnounused-parameter
  • cleaned up code to allow warning-free compilation with -O (enables data-flow analysis)
  • enabled &, *, and -> also in dumpbb
  • dumpbb: local malloc'ed data can now be modified (tests/lclwrite)
  • added corresponding context compatibility tests to tests/sbug.ctxcptasg
  • runtests.common now ignores leading blanks in standard output
  • dumpbb, sbug: attempts to dereference void pointers now fail (tests/sbug.derefvoid)
  • sbug: moved code for identifier lookup from debug.c to id.c, and rewrote most of it
  • dwarfx: types are now also stored in object tree
  • type identifiers can now be qualified by process and unit (tests/sbug.typeid)
  • typedef names can now be explicitly marked as such by prefixing them with "typedef" (tests/sbug.typedef)
  • sbug: added test that structs are copied by value (tests/sbug.alias)
  • runtests.common now silently skips directory arguments
  • sbug: added callbacks for architecture-specific address adjustments for breakpoints (tests/sbug.archbrk)
  • dumpbb/Makefile now also removes a.out on "make clean-test"
  • Makefile: added "whatsmissing" target that looks for test cases missing in FILES

 netbb-11 (7-FEB-2003)
netbb-11.tar.gz (114 kB)

Changes:

  • dwarfx: incorrectly assumed that DW_AT_const_value always has block form
  • dumpbb: added code to start a UML process, monitor its monitoring of a debugger, and attach to it
  • dumpbb/cpp.c now restores stdin after running cpp (tests/sbug.cpp)
  • sbug: added experimental "uml" operator
  • sbug: $$ is now looked up only once
  • changed tests/sbug.readlocal to illustrate that case that README.SBUG claimed doesn't work does
  • sbug: eliminated "struct object" by merging information previously stored there into "struct value"
  • sbug: moved process-specific code from debug.c to process.c
  • converted more instances of uint32_t to arch_reg_t, and added support for 64 bit types at more places
  • summarized problems found in kernel and gcc at the end of README.SBUG
  • sbug: & allows operands that would not be valid in C (tests/sbug.ptrext)
  • sbug: added tests for pointer aliasing (tests/sbug.alias)
  • sbug: added tests for context compatibility (tests/sbug.ctxcptcmp, tests/sbug.ctxcptdif, tests/sbug.ctxcptasg)
  • dumpbb: added tests for pointer type compatibility (tests/ptrcomp, tests/sbug.ptrcomp)
  • dwarfx, sbug: void pointers are now assignment-compatible with all other pointers (tests/sbug.ptrcomp)
  • dwarfx: dwx_strip_type segfaulted on NULL (void) type

 netbb-10 (27-JAN-2003)
netbb-10.tar.gz (109 kB)

Changes:

  • sbug: added support for assigning to global/static variables in process (tests/sbug.assign)
  • sbug: split "continue" into "continue" and "wait" (updated tests/sbug.*, added tests/sbug.wait)
  • sbug: added variable $? that contains the exit status (if any) of the current process (tests/sbug.context)
  • sbug: added test cases that illustrate checking of condition causing wait to return (tests/sbug.whywait)
  • dumpbb: printf and sprintf evaluated arguments returning the undefined value twice (tests/printf)
  • renamed tests/lib/sbug-manyid to tests/lib/sbug-manyid.sh and updated tests/sbug.* accordingly
  • added reflections on umlsim design in dumpbb/README.UMLSIM
  • ptrace.c never set proc->running to 1
  • abstracted architecture-specific functions
  • dumpbb/Makefile and dwarfx/Makefile didn't automatically generate dependencies
  • util.h: added helper function for sign extension and fixed sign extension in (s)printf (tests/signex)
  • "undef" is now an operator, its operand is optional, and it returns the undefined value, exactly like in Perl (tests/undef)
  • added Perl-ish "defined" operator (tests/defined)
  • dwarfx now uses dumpbb's util.h; removed dwarfx/util.h
  • "shift" wasn't initialized in dwarf.c:sLEB128_decode, yielding garbage
  • added preliminary support for accessing local variables (tests/sbug.readlocal)
  • added sign extension to data.c:value_int (tests/sbug.readvar)

 netbb-9 (25-JAN-2003)
netbb-9.tar.gz (100 kB)

Changes:

  • sbug: index and member operators now also work on objects in debugged process (tests/sbug.offset)
  • dumpbb: reserved words can now be quoted by prefixing them with a backslash. This applies to all identifiers or tags. The previous syntax of using double quotes is no longer valid. (Updated tests/sbug.idquote accordingly and added tests/idquote)
  • sbug: changed object identification syntax from (approximately) @[file:][identifier:]identifier to [process.]["file".][identifier.]identifier (updated and simplified tests/sbug.* accordingly, added tests/sbug.objidglo, tests/sbug.objidloc, tests/sbug.objidvar, and tests/sbug.objiderr)
  • sbug: break no longer has a process argument, because the process is already contained in the location (updated tests/sbug.exit, tests/sbug.break, and tests/sbug.idquote)
  • sbug: added variable $$ that automatically points to the current process (tests/sbug.context)
  • sbug: added variable $! that automatically points to the currently active breakpoint (tests/sbug.context)
  • sbug: == and != now also work for processes and breakpoints (tests/sbug.context)
  • improved type checks in print (tests/printchk)
  • sbug: added *, &, and -> operators for pointers and arrays (tests/sbug.ptr and tests/sbug.ptrerr)
  • dumpbb: added C-like "for" loop (tests/for)
  • dumpbb: pointers can now be used as numeric values, e.g. in "if (ptr)", but also with relational operators (tests/sbug.ptrari)
  • dumpbb: sprintf did not handle lack of %c arguments gracefully (tests/sprintf)
  • sbug: pointers and arrays can be used interchangeably with * and [] (tests/sbug.ptr)
  • sbug: added support for pointer arithmetic (tests/sbug.ptrari)
  • sbug: added tests for arithmetic with variables in process (tests/sbug.varari)
  • sbug: sizeof evaluates objects without accessing them (tests/sbug.ptrari)

 netbb-8 (22-JAN-2003)
netbb-8.tar.gz (89 kB)

Changes:

  • dumpbb: added C-like "continue" statement (tests/continue)
  • dumpbb: added tests for shortcut-evaluation (tests/shortcut)
  • dumpbb: added C-like character literals (tests/char)
  • sbug: double quotes around file names were not properly removed before use (tests/sbug.idquote)
  • sbug: for consistency, also identifiers of enclosing function can be double-quoted (tests/sbug.idquote)
  • sbug: identifiers can be quoted, to avoid conflict with reserved words of the scripting language (tests/sbug.idquote)
  • renamed tests/undef to tests/undefined
  • dumpbb: added Perl-like undef construct to set lvalue to undefined value (tests/undef)
  • dumpbb: the expression statement was not documented in README
  • sbug: removed "delete" command
  • sbug: processes and breakpoints are now destroyed when last reference is gone (updated tests/sbug.break accordingly)
  • dumpbb,sbug: fixed memory leak when passing cpp options
  • dumpbb: sprintf and read could access temporary string values after freeing them (tests/usefreed)
  • runtests.sh now resets PATH before trying to run rm and sed
  • sbug: processes are now created from inside the script, with the command "run", and not from command-line arguments (tests/sbug.run)
  • sbug: updated tests/sbug.* accordingly
  • sbug: using a process after exit yields an error (tests/sbug.exit)
  • sbug: the process argument is now optional for break and continue (tests/sbug.break)
  • ptrace: made terminated process indication more robust

 netbb-7 (22-JAN-2003)
netbb-7.tar.gz (85 kB)

Changes:

  • dwarfx: added parser for compilation units, functions, variables, etc.
  • dwarfx: added support for location lists
  • dumpbb: added sbug (scriptable debugger) mode, with description in README.SBUG (tests/sbug.*)
  • dumpbb: new statements "break", "delete", and "continue" (for sbug)
  • dumpbb: new language construct "location", and first-class data types "process" and "object"
  • dumpbb: added "sbug" command to runtest.sh
  • dumpbb: print and printf now flush stdout

 netbb-6 (17-JAN-2003)
netbb-6.tar.gz (74 kB)

Changes:

  • dwarfx: fixed various minor bugs when handling signed quantities
  • dumpbb: added combined assignment operators (+=, etc.) (tests/assignop)
  • all values in dumpbb are now reference-counted and deallocated after use, eliminating memory leaks
  • dumpbb/runtests.sh now removes Electric Fence annoyance messages
  • added tests for use of undefined values and fixed corresponding bugs (tests/undef)
  • "die" now prints its default message also if the expression is present but undefined (tests/undef)
  • dumpbb: added instrumentation to detect memory leaks and fixed corresponding bugs (tests/owner)
  • dumpbb now includes location of current statement in run-time error messages
  • changed "die" to use run-time error message format (tests/die)
  • dumpbb's util.h was never included in the distribution, which went unnoticed, because it used the one from dwarfx
  • when constructing multi-dimensional array types, order of dimensions was reversed (tests/rats)

 netbb-5 (14-JAN-2003)
netbb-5.tar.gz (69 kB)

Changes:

  • added a Perl-like sprintf function (tests/sprintf)
  • README documented use of sizeof with strings
  • dbb/tcpdump.dbb output is now more similar to tcpdump and also counts SYN and FIN correctly
  • split dumpbb/runtests.sh into generic part runtests.common and dumpbb-specific part dumpbb/runtests.sh
  • added a regression test system for the (UML) kernel part of netbb under uml/
  • dumpbb language now supports decrement and increment operators (tests/incdec)

 netbb-4 (13-JAN-2003)
netbb-4.tar.gz (64 kB)

Changes:

  • certain vendor 2.4.18 kernels don't have SCHED_YIELD, so don't use it if it's not defined
  • gcc 2.96 requires -gdwarf-2 instead of just -g to generate DWARF2 debugging information. Updated tests and README accordingly.
  • dwarfx: made debug_str optional, for gcc 2.96 compatibility
  • valid elements of enum dwx_kind now start at 1, improving consistency checks
  • README: clarified that kernel needs to be reconfigured and how debugging symbols are generated

 netbb-3 (13-JAN-2003)
netbb-3.tar.gz (64 kB)

Changes:

  • README incorrectly gave arch/um path instead of arch/i386 for 2.4.18 defconfig change (reported by Cheng Jin)
  • changed in-kernel data structure from single skb table to linked list of pages, thereby eliminating 32768 entries limit and power of two size requirement, and reducing memory pressure
  • net_blackbox.c is now identical for 2.4 and 2.5 kernels
  • changed tests/hexdump to use _$PID.data instead of _$PID as data file name
  • added associative arrays to the scripting language (tests/assoc)
  • sizeof now also works on strings, and refuses invalid types (tests/sizeof)
  • integer types are now dereferenced at the correct size (tests/intsize)
  • added the conditional operator (tests/condop)
  • made assignments expressions, and removed the read statement
  • added Perl-like "die" construct (tests/die)
  • added example script dumpbb/dbb/tcpdump.dbb

 netbb-2 (8-JAN-2003)
netbb-2.tar.gz (60 kB)

Changes:

  • changed io.c:data_* to in_*
  • added bounds checking for arrays (tests/accarray)
  • renamed "end" to "exit" and added optional exit status argument (tests/exit)
  • renamed tests/end to tests/exit, and updated tests/eof according to above change
  • enumeration members can now be used as numeric constants (tests/enum)
  • dumpbb: added option -v to print progress messages
  • dwxout.c:dwx_output_hexdump did not compensate for index offset, yielding incorrect dumps and crashes (tests/hexdump)
  • added 2.5.54 versions of the kernel patches

 netbb-1 (28-DEC-2002)
netbb-1.tar.gz (58 kB)

Changes:

  • mkpatch and mkexpatch now exit with non-zero exit status on error
  • script data acquisition and printing in dumpbb are now controlled by a script
  • added regression test harness for dumpbb

 netbb-0 (17-DEC-2002)
netbb-0.tar.gz (36 kB)

Changes:

  • renamed "elfdbg" to "dwarfx" (DWARF extractor), elfdbg.c to tstdwx.c, lair.c to dwxloc.c, orc.* to dwxout.*, and troll.* to dwxtype.*
  • also changed published library functions accordingly, and added general dwx prefix
  • moved dumpbb to separate dumpbb/ directory
  • dwarfx is now a library and under the LGPL
  • further minor cleanup in dwarfx
  • moved the example instrumentation of TCP into a separate patch
  • dumps now include the skb area from head to tail, not data plus skb->len
  • integers are now output as decimal and hexadecimal numbers
  • moved dumpbb.c:dump_data to dwxout.c:dwx_output_hexdump, and added indentation
  • arrays of signed characters are now printed as text strings
  • arrays of unsigned characters are now printed as hex dumps
  • dwarfx/Makefile now uses dependencies
  • error reporting for unsupported signed integer sizes in do_output_data was somewhat obscure

 netbb-dev6 (13-DEC-2002)
netbb-dev6.tar.gz (28 kB)

Changes:

  • initial pre-release

Last update: 10-MAY-2003   Werner Almesberger