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>