Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 May 1995 11:48:26 -0600
From:      kurto@tiny.mcs.usu.edu (Kurt Olsen)
To:        hackers@freefall.cdrom.com
Subject:   Re: UPS 3.7
Message-ID:  <199505241748.LAA26212@tiny.mcs.usu.edu>

next in thread | raw e-mail | index | archive | help
Here is a forwared copy of Mark's announcement.  There is also patches in
the ports directory (or in incoming I forget) to make this work with 2.x.


Kurt,

Here's some original mail from Mark.

	...alan

--- Forwarded mail from Mark Russell <M.T.Russell@ukc.ac.uk>

To: ups-users@ukc.ac.uk

The latest version of the ups 3 alpha release is now available.  This
has fixes for various bugs reported by people who tested the 3.6alpha
release.  Many thanks to everyone who tried it out and reported
problems.

As well as bug fixes this version includes a CHANGES file with details
of the new features.  I have appended a copy of the CHANGES file to
this message.

The release is available by anonymous FTP from unix.hensa.ac.uk.  The
path is /misc/unix/ups/ups-3.7-alpha.tar.Z.  There is also a patch to
covert from 3.6-alpha to 3.7-alpha.  The path of the patch file is
/misc/unix/ups/ups-3.6-to-3.7-alpha.patch.Z.

Mark

--- The top level CHANGES file ---
@(#)CHANGES	1.2 16 Sep 1994 (UKC)

Introduction
------------
This is an alpha release of ups 3, implemented on top of gdb.  This
version has only been compiled and tested (a bit) on Solaris 2.3.
There are undoubtedly plenty of bugs still to discover.

See the file README for build instructions.

Changes since 2.45.3
--------------------

 - Gdb based support

	Ups can now be build using a automatically modified version of
	the GNU gdb debugger.  See the README file for the precise
	instructions.  Basically the process is:

		- unpack, configure and build gdb

		- run a shell script which builds a symlinks copy of
		  the source tree, munges the gdb source file there,
		  then builds libgdb.a from the munged source files

		- run make in the top-level directory to build ups
		  using libgdb.a for the debugger functionality.

	Currently ups builds `out of the box' on Solaris 2.3 only, but
	I have built working versions for HPUX and IRIX using the gdb
	support.  Canned support for these and other architectures
	will be included in a future release.

	You can still build ups on SunOS 4.1.3 using the native
	support (again, see the README file for details).  It is also
	possible to build the gdb based version on 4.1.3, but there is
	not much point doing this.

 - Emacs-like key mappings

   	You can use most of the common emacs key mappings when editing
	text (e.g. in the typing line, when adding breakpoints etc).
	Here is a list of the supported mappings (C-x means CONTROL-x
	M-x means ALT-X, UP, DOWN, LEFT and RIGHT are the arrow keys
	SPC is the space bar and DEL is the delete key):

		  C-a	   	move to start of line
		  C-e		move to end of line
		  M-m		move to first non-whitespace character
		  M-@, M-SPC	set mark
		  C-w		delete text between mark and point
		  C-p, UP	move up a line
		  C-n, DOWN	move down a line
		  C-b, LEFT	move backwards one character
		  C-f, RIGHT	move forward one character
		  M-b		move backwards one word
		  M-f		move forward one word
		  C-j, C-m	finish edit (insert newline in source window)
		  ESC		finish edit (including in source window)
		  C-k		delete to end of line
		  C-u		delete to start of line (note: non-emacs)
		  C-d		delete character under cursor
		  M-d		delete word starting at cursor
		  DEL		delete character before cursor
		  M-DEL		delete word before cursor
		  C-y		paste X selection
		  M->		move to end of buffer
		  M-<		move to start of buffer


 - Cut and paste

	You can select text with highlighting in the source window,
	the output window and in fields you are editing.  To select
	text, press the left mouse button and drag.  Releasing the
	left mouse button sets the X selection and clears the
	highlighting.

	You can paste text into an edit with control-Y (currently you
	can't paste with the mouse - this will be done soon).  In the
	source window there are some extra shortcuts:

	       - pressing and releasing the left mouse button (without
	         dragging) adds a variable name to the display as in
		 previous versions of ups.  Only if you move the mouse
		 to a different character with the left button down do
		 you get a plain X selection.

	       - doing a press-left-and-drag selection with the SHIFT
	         key pressed automatically pastes the selected text as
		 an expression into the appropriate place in the stack
		 trace.  It is equivalent to selecting some text,
		 selecting `add expr' for the appropriate entry in the
		 stack trace, pressing ^Y to paste the text and
		 hitting RETURN.

	      -  If you hold the shift key down, the press and release
		 the left mouse button without moving the mouse, ups
		 adds the expression under the mouse to the display
		 area.  It makes a reasonable attempt to select what
		 to display.  Try it out to see what I mean.

	Pasted expressions will often include preprocessor macros such
	as NULL, which ups will fail to recognise.  The right solution
	for this is for ups to understand #defines, but in the interim
	there is a workaround: if the file ups-state/repltab exists in
	the current directory ups will apply the substitutions specified
	there.  Here is a repltab that would deal with NULL and stdout

		# Repltab for ups
		NULL	  0
		stdout	  &iob[0]

	Hash comments and blank lines are ignored in the normal way.
	Any substitutions will be visible in the pasted expression.

	Ups checks to see if the repltab file has been updated each
	time an expression is pasted, so you don't have to restart ups
	to get changes noticed.


 - State save and restore

	 If the file ups-state exists in the current directory, ups
	 will write state information to it when you exit, and reload
	 state when you start.  This includes breakpoint locations
	 (and the interpreted code, if any), and the state of the
	 variables display.  The saved state is used in several ways:

	     - after starting ups, you can select `Restore' from the
	       `Breakpoints' menu to put breakpoints back as they were
	       from the previous session.  Ups tries to put
	       breakpoints back in the right places, but it can be
	       defeated by major changes to the source code.

	     - the default for the `Expand' option for stack trace and
	       source file entries is `like before'.  This adds
	       variables as they were in the last ups session (or the
	       last time you made a change the variables display for
	       this function).

	     - when you hit a breakpoint in a function variables and
	       expressions are restored as they were last time you
	       stopped in this function (even if the target process
	       has been killed and restarted in between).

	     - when you add a variable the display format (hex, octal
	       etc) is taken from the way it was last time you
	       displayed the variable).

	  State is saved to the file ups-state/xxx.state, where xxx
	  is the last component of the file you are debugging.  You
	  can also create the file ups-state/xxx.config (possible by
	  copying ups-state/xxx.state).  The .config file is read at
	  startup by ups, but not written.  Also, breakpoints in the
	  .config file are automatically restored on startup.

	  In future releases you will be able to use the .config file
	  to specify how signals are handled, add environment variable
	  settings, etc.  Currently the only directive (other than
	  things specifying breakpoints and saved variable state) is
	  `auto-start', which takes a single argument `yes' or `no'.
	  The line:

	      auto-start yes

	  in the xxx.config file means start the target running as
	  soon as ups has started up.

	  Ups also looks for saved state in the file $HOME/.upsrc and
	  .upsrc (in the current directory).  Thus the full set of
	  files is:

		$HOME/.upsrc
		$PWD/.upsrc
		ups-state/xxx.config
		ups-state/xxx.state

	  Files later in the sequence can override earlier settings.


 - Loading and saving breakpoints

	You can explicitly load and save breakpoints to files.  To save
	breakpoints, select one or more in the display area, then
	select `save' from the menu.  You will be prompted for a file
	name.  If the file already exists you will be asked whether
	you want to cancel the save, overwrite the file or append to
	it.

	Saved breakpoints can be reloaded by selecting `Load' from the
	`Breakpoints' header menu.


 - Editing in the output window

	You can now edit in the output window (the window where
	$printf output goes.  Click with the middle mouse button to
	display a cursor.  You can then append or delete text.  This
	is useful for tidying up output to make it clearer, or for
	deleting uninteresting stuff.

	Coming soon: dumping objects (like the stack trace) to the
	output window, and saving the contents of the output window to
	a file).


Known bugs
----------

These are the major bugs that I know of in this release.  I will be
fixing these as soon as possible.

     - Debugging from a core file does not work on SunOS 4.1.3

     - Attaching to a running process does not work anywhere


Mark Russell
16th September 1994





--- End of forwarded mail from Mark Russell <M.T.Russell@ukc.ac.uk>





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199505241748.LAA26212>