
			Frysk
			-----

		http://sourceware.org/frysk/

Frysk is an execution-analysis technology being developed using Java
and C++.  It is aimed at providing developers and system
administrators with the ability to examine and analyze multi-host,
multi-process, and multi-threaded systems while they are running.

--

Release 0.5, ????-??-??

--

Release 0.4, 2008-06-09

-> Added support for watching values that are bigger than the 
   maximum number of bytes a single watchpoint can watch. For example, 
   types double or long long on IA32; an array of size 32 on X86_64. 
   In these cases, frysk allocates multiple debug registers to watch 
   over the same expression. 

-> Smaller memory foot-print when generating stack backtraces.
   Frysk has been changed to more aggressively release memory
   allocated by the unwinder.
   
-> New capability to pass args via the "load" command and when
   fhpd is first started i.e., "$[/home/xxx] fhpd ls -la".  The 
   /bin/ls command is loaded and the parameter "-la" will be passed
   when a "start" or "run" command is issued with no overriding
   parameters.  Also, on subsequent runs, "-la" is always used unless
   other parameters are entered with the "run" or "start" command.
   (This was bz #6515/6536).

-> Support was added for fully-qualified symbol notation using the
   standard HPD "#" syntax (e.g. "#libc.so.6#malloc").  Ftrace now
   uses this notation to communicate with the user in both directions,
   FHPD recognizes the syntax although can't handle it yet.
   
-> Fix Hover-over variable does not show variable value(bz #6484).

-> Created a new command line utility:	fdebugdump. fdebugdump dumps
   a hierarchical view of the debug info tags in an executable.	Future
   improvements	could include dumping the debug   info live as libraries
   are mapped in.

-> Bugs fixed:

   5254: stepping engine, fhpd, and breakpoints are not in sync
   5557: testcase: watch 1 byte address
   5558: testcase watch address and range
   5559: testcase failure testcase (watch an address that has been umapped)
   5560: Add frysk.proc.TaskObserver.Watch interface
   5561: Add frysk.proc.ProcObserver.Watch interface
   5562: Write Debug Status Register Builder
   5563: Write Debug Register Set/Read Proxy.
   5565: Task and Proc State need new watchpoint state transitions.
   5566: Write watchpoint manager
   5567: Add ISA specific functions to set debug registers via debug register
         proxy
   6390: testFerrorTracesPID(frysk.bindir.TestFerror) fails.
   6512: Add function to provide the max length a debug register can watch
   6515: fhpd command line args incorrect
   6531: Low level hardware watchpoint support should check, and reject, 
         incorrectly aligned addresses
   6532: Do not check watchpoints in Running|Stepping.handleTrapped if software
         /ISA does not support watchpoints
   6533: Watchpoint addition failure should not raise an exception, but should
         instead call .addFailed() callback
   6535: fexe not working for scripts
   6551: Watch support for variables bigger than max length of a single watch
         register
   6554: Separate watch observer(s) installer from hpd
   6555: Notify if available h/w watchpoints not enough to watch complete value
   6558: Handle watchpoint set error if expression has no legal address
   6559: Multiple watchpoint set messages are displayed when multiple watch 
         observers used
   6576: Need to load process/params with HpdTestBed
   6599: don't align the load-address
   6600: dwfl_module_getsrc doesn't allow for bias
   6603: Task does not resume after hitting multiple b.pts simultaneously

--

Release 0.3, 2008-05-09

- Exported a prototype of low level watchpoint api on IA32,X8664 
   (PPC* will be covered by IBM)
- Implemented the watch command which exposes the watchpoint api in fhpd.
- Updated various frysk man pages.
- Created ProcRunUtil and re-based fcatch,fstep,ferror ontop of it.
- Added ability to kill procs from fhpd.
- Solidified passing parameters to start/run commands and reusing history.
- Added support for elf symbol look-ups.
- Removed the CDT parser from frysk.
- Rewritten ftrace to use more frysk infrastructure.
- Adapted frysk symbol search code so that it can be used by breakpoints, 
   as well as expression evaluation.
- Improved and tested stepping, particularly stepping through signal handlers.
- Imported a newer version of upstream elfutils.
- Fixed breakpoints to work correctly through forks.

-> 2004-04-24 - New support in FHPD: sysroot

   Frysk now also supports finding libraries in a special system
   directory heirarchy as well as the previously supported source files
   and debuginfo files.  This is specified via the -sysroot option.

-> 2004-04-16 - New command in FHPD: watch

   Use to set watchpoints on expressions or variables. This stops
   program execution when memory location associated with the
   expression is written to or read from.

--

Release 0.2, 2008-04-02:

This initial release of frysk includes:

-> command line utilities:

   fauxv      - print the auxiliary vector (new)
   fcatch     - catch and print the stack of a crashing process
   fcore      - extract a core file from a running process (faster, more correct)
   fdebuginfo - list debug-info requirements of a process (new)
   fdebugrpm  - install debug-info requirements of a process (new)
   ferror     - catch and back-trace error calls (new)
   fexe       - print the executable path
   fmaps      - print the address map (new)
   fstack     - print each thread's stack (supports in-line back-traces)
   fstep      - single-step a process
   ftrace     - trace a processes system and (new) library calls

   Known limitations: large resident set size; large executable size.

-> Prototype command line debugger: fhpd

   For single threaded programs, FHPD can: print the value, type, and
   location, and modify the value of, arbitrarily located variable
   (complex DWARF location expressions); correctly handle very-large
   integers (>64-bit) and large floats (80-bit); display in-line
   information in back-traces; control processes with the commands
   load, core, dump, run, step, break, go, detach, kill, list, focus.

   In addition to the command-line utility restrictions, the HPD has
   the following known limitations: disassembler missing; limited
   type-cast support in expressions; limited multi-thread support.

-> Prototype visual debugging and monitoring tool (frysk)

   Known limitations: work-flow limited to live processes (examining
   core files, or creating processes is possible but very
   non-intuitive).

-> Prototype test-suite (funit)

   Known limitations: test that are working in-tree fail when
   installed.

--
