DEC FUSE Release Notes June 1997 This document provides release notes for DEC FUSE and the optional C++ tools. Revision/Update This document superseds Release Notes for Version 3.1. Software Version DEC FUSE Version 4.0 Operating System Version Digital UNIX Version 4.0 and higher June 1997 Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use,or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Digital or an authorized sublicensor. Digital Equipment Corporation. All rights reserved. The following are trademarks of Digital Equipment Corporation: Alpha Generation, AXP, DEC, DEC C++, DECnet, DECwindows, Digital UNIX, and the DIGITAL logo. The following are third-party trademarks: NFS is a registered trademark of Sun Microsystems, Inc. OSF/Motif is a registered trademark of the Open Software Foundation, Inc. Postscript and Display PostScript are registered trademarks of Adobe Systems, Inc. ClearCase and Atria are registered trademarks of Atria Software, Inc. UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Companty Ltd. X/Open is a trademark of X/Open Company Ltd. X Window System Version 11 and its derivatives (X, X11, and Xversion 11) are trademarks of the Massachusetts Institute of Technology. This document is available on CD-ROM. Preface This document describes new features and summarizes known problems with the DEC FUSE V4.0 software (referred to as FUSE in this document). Audience The release notes are for the person who installs FUSE and for programmers using FUSE after installation. The FUSE Information Set The FUSE information set includes the following: DEC FUSE Handbook This manual describes the features and capabilities of the FUSE environment. DEC FUSE EnCASE Manual This manual provides instructions on how to integrate a tool into the FUSE environment. This online manual is available from the Documentation CD for web browsing. The Ladebug Debugger Manual: Window and Command-Line Interface Provides full details on using the Ladebug debugger. FUSE Tutorials These online exercises allow you to practice fundamental FUSE skills in the context of a programming project. FUSE Overview This online interactive introduction to FUSE is designed to give you a hands-on overview of product features and use. Online Help Directions on using each tool's main window, menus, and dialog boxes are available from the online help. Troubleshooting information and corrective action for errors are also available on line. You can access the online help through a tool's Help menu or the Help button on any dialog box. Installation Instructions The Installation Instruction Sheet provides step-by-step instructions on how to install FUSE. DEC FUSE Release Notes This document summarizes known problems with FUSE. Send Us Your Comments Digital prides itself on responding to customer needs. In order to continue serving you, we appreciate your comments, suggestions, and general feedback on the documentation, FUSE, and Digital's UNIX software development tools. Optionally, include your name, email address, and telephone number so that we can provide you with updates on what is happening with Digital's software development tools. To reach us, send email to the following address: fuse-comments@zko.dec.com The engineering team and product management receive mail sent to this address. We will respond to inquiries within two business days of receipt. For more information on Digital's products: See the following World Wide Web URL: http://www.digital.com/info/fuse http://www.digital.com/home.html Send mail to: info@digital.com Mail sent to this address automatically returns a list of information that is electronically available from Digital. The list includes information about World Wide Web access, ftp acess, online ordering information, Digital product information, Digital newsletters, and so on. Contents Preface 1 Release Notes for FUSE V4.0 1.1 Summary of Features New for FUSE Version 4.0 11 1.1.1 Existing Tools 11 1.1.2 CDE Support 12 1.2 Restriction on FUSE Installation 12 1.2.1 Installing FUSE with CDE After Using xhost - 12 1.3 Restrictions That Apply to FUSE Startup 12 1.3.1 Operating System Requirements 12 1.3.3 Delete .fuse.rc 12 1.3.3 Remove Files from .fuse-defaults 12 1.3.4 Motif Window Manager or CDE Window Manager Recommended 13 1.3.5 Recovering from an Abnormal FUSE Termination 13 1.3.6 Old Text Translation Table Causes Crash 13 1.3.7 CDE Setup Problems with FUSE 13 1.4 Display Problems 13 1.4.1 Loading the Correct Fonts when Displaying on ULTRIX 13 1.4.2 Problem when Displaying on a Sun System 14 1.4.3 Problem when Displaying on a Personal Computer 14 1.4.4 Color Values for Four-Color Plane Systems 14 1.4.5 Color Problems when Running FUSE and Applications Using Many Colors 14 1.5 Printing Problems 15 1.5.1 The DXmPrint Widget Needs /etc/printcap File 15 1.5.2 Scaling Graphs for Improved Printing Output 15 1.6 Dialog Box Problems 15 1.6.1 Dialog Box Problems when System is Heavily Loaded 15 1.7 Language Support Restrictions 16 1.7.1 Restriction for the Ada Language Classifications 16 1.8 Builder 16 1.8.1 The Graph Attributes Dialog Box 16 1.8.2 Dependency Graph Appears Incomplete for Certain Makefiles 16 1.8.3 Builder Menu Item Not Greyed Out 16 1.8.4 Print Graph Dialog Always Prints Graph 16 1.9 C++ Class Browser 17 1.9.1 C++ Version Requirement 17 1.9.2 Return Types Shown for Constructors and Destructors 17 1.10 Call Graph Browser 17 1.10.1 MB3 Show Calls and Called By Menu Items Mismatch User Interface 17 1.10.2 Select Box Works Best with Show Calls Toggle On 17 1.11 Code Manager 17 1.11.1 RCS Version Supported 17 1.11.2 Effects of File Protection on Library Files 17 1.11.3 Minimum Window Size for the Main Window 18 1.11.4 Revision Number Required for Files in RCS Library 18 1.11.5 Undefined Error Causes Reinitialization 18 1.11.6 SCCS PROJECTDIR Cannot Be Used with the Code Manager 18 1.12 Control Panel 19 1.12.1 Using the Stop Tools Item with Unsaved emacs Buffer 19 1.12.2 Project Files Only Can be Used by One User 19 1.13 Compare 19 1.14 Cross-Referencer 19 1.14.1 Locating f77 and f90 Declarations 19 1.14.2 C++ Version Requirement 19 1.15 Database Manager 20 1.15.1 Restrictions when Using Different Systems 20 1.16 Debugger 20 1.16.1 dbx Support Removed 20 1.16.2 Loading a New Program May Cause Failure 20 1.16.3 Problem Removing Breakpoints with Emacs 20 1.16.4 Debugger and CDE Interactions 21 1.17 HyperHelp 21 1.17.1 Delete Old HyperHelp Application Defaults 21 1.17.2 Multiple Viewers 21 1.18 emacs Editor 21 1.18.1 Only First Annotation is Displayed 21 1.18.2 Obtaining Information About emacs Online 21 1.18.3 Iconifying Restriction 22 1.19 XEmacs 22 1.19.1 XEmacs Version Compatibility 22 1.19.2 XEmacs Launch from Another Tool May Not Work 22 1.19.3 FUSE Menu Options Do Not Appear in Menu Bar 22 1.19.4 Iconifying Restriction 22 1.19.5 Error Message Using Annotation 22 1.20 MULE Editor 22 1.21 FUSE Editor 23 1.21.1 Problem with Null Byte in Files 23 1.21.2 Annotation Placements May Be Incorrect when a Buffer Is Saved 24 1.21.3 Printing Large Files May Result in an Error 24 1.21.4 Show Class 24 1.21.5 Find and Replace 24 1.21.6 Problems with Key Bindings 24 1.21.7 Using the Checkout File Utility on an Unnamed Buffer 25 1.21.8 Errors in Find Operation Using Regular Expressions 25 1.21.9 Memory Available Impacts Size of Editable File 25 1.22 Heap Analyzer 25 1.22.1 Restrictions on Application Running in I/O Window 25 1.22.2 Error Message on First Switch to Generate Mode 25 1.23 Host Shell 25 1.24 Manpage Browser 25 1.24.1 False Hits on Search 25 1.25 Porting Assistant 26 1.25.1 Only Bourne Shell Commands Supported in Makefiles 26 1.25.2 Restriction Executing .cshrc File 26 1.25.3 KAP Preprocessor Ignored 26 1.26 Profiler 26 1.26.1 Restrictions on Application Running in I/O Window 26 1.26.2 Error Message on First Switch to Generate Mode 26 1.27 Version Controller 26 1.28 Scanners 27 1.28.1 Wrapper Routines 26 1.28.2 C Scanner 27 1.28.3 FORTRAN Scanner 28 1.28.4 Pascal Scanner 28 1.28.5 Directives for Specifying Pathnames to Scanners 28 1.29 Documentation 29 1.29.1 Help on the Color and Print Dialog Boxes 29 1.29.2 Setting Up a Printer for Printing HyperHelp Topics 29 1.29.3 Incorrect Title in Preface of DEC FUSE Handbook 29 1 Release Notes for FUSE V4.0 1.1 Summary of Features New for FUSE Version 4.0 The primary focus of work for Version 4.0 was to enhance FUSE to support work from the perspective of one or more projects. All tools now operate in the context of user-defined projects. You can save project data from session to session. You can open multiple projects each with its own set of tools and working context. In general, projects give you a way to separate one work context from another by specifying project data, for example, the locations of all the source files, build options, and static analysis data. There were also changes made to several existing tools. 1.1.1 Existing Tools New functions of interest in existing tools include the following: Builder Can generate static analysis data during a build for use by the browser tools (Call Graph Browser, Cross-Referencer, and C++ Class Browser). C++ Class Browser Significant enhancements to the overall user interface to improve ease of use. Editors Addition of a FUSE menu to the menu bar of emacs versions 19.*. Heap Analyzer Support for multithread profiling. Porting Assistant Support for mapping Fortran compile command lines in a makefile to the equivalent Digital UNIX command line. Addition of a keyword lookup function for the DXML library, which includes commonly used Fortran math functions. Support for mapping LINPACK and EISPACK routines nto LAPACK routines. Man Page Browser Print and copy functions directly from Browser. Profiler Support for multithread profiling. 1.1.2 CDE Support In addition, FUSE runs in the Common Desktop Environment (CDE) as well as with the Motif window manager. 1.2 Restriction on FUSE Installation 1.2.1 Installing FUSE with CDE After Using xhost - If you used xhost - or xhost -'your_machine' to connect your machine to its X server, you may see the following message after installing FUSE: Integrating DEC FUSE into the Common Desktop Environment ... Integration Complete See /tmp/dtappint.log file for more information Writing DEC_FUSE_V30... Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server ... Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server /usr/dt/bin/tt_type_comp: Overwrote /etc/tt/types.xdr *** FUSE has now been successfully installed on your system *** The installation completed successfully, however, to take advantage of full CDE support, you should log out and log back in. If you don't need full CDE support right away, FUSE is completely functional when invoked from the command line without logging out and back in. 1.3 Restrictions That Apply to FUSE Startup This section provides information that you need before starting FUSE for the first time. 1.3.1 Operating System Requirements FUSE Version 4.0 runs on Digital UNIX Version 4.0 and higher. Note DEC FUSE fully supports the Japanese locale only when run with Digital UNIX V4.0A. 1.3.2 Delete .fuse.rc To get the proper listing of tools in the Tools menu, delete .fuse.rc from your home directory. 1.3.3 Remove Files from .fuse-defaults After installation, remove all resource files in .fuse-defaults under your home directory. You should also remove the resource files $HOME/.fuse-defaults/'locale'/DFxxx. Tools now generally use project data. 1.3.4 Motif Window Manager or CDE Window Manager Recommended FUSE operations are generally most reliable when windows are displayed through a Motif-based window manager such as mwm or dtwm -- the CDE window manager. When using the mwm window manager, OSF/Motif Version 1.2 is required for running FUSE Version 4.0. See the OSF/Motif documentation set for information about installing and using OSF/Motif. 1.3.5 Recovering from an Abnormal FUSE Termination If FUSE has terminated abnormally, you may receive the following messages if you try to restart FUSE: fuse: msg/s: fatal: Server already running fuse: msg/c: fatal: Couldn't create and connect to message server If you receive these messages when trying to restart FUSE, you need to remove the following file: /usr/tmp/fusemsg*{user}* {user} represents your login name. 1.3.6 Old Text Translation Table Causes Crash If a FUSE tool crashes because of being unable to find some actions, remove the text widget translation table (created by the old session manager) from your .Xdefaults file. This table is obsolete. 1.3.7 CDE Setup Problems with FUSE If you set up CDE so that when you log out and in, CDE restores your previous session (via the Style Manager/Startup options) and you have FUSE running when you log out, two things will happen: 1. FUSE tools will not be restored when you log in. 2. You will get errors on the console (dtconsole, dxconsole or equivalent) indicating that /sbin/loader had problems while trying to start FUSE tools. You may safely ignore these errors. There is no workaround for this problem. 1.4 Display Problems 1.4.1 Loading the Correct Fonts when Displaying on ULTRIX When redirecting FUSE to display on a DECstation running the ULTRIX operating system, the 75 DPI (dots per inch) font must be in the font path. To check your font path, enter the following command on the ULTRIX system you are directing the display to: xset -q If the 75 DPI font path is not shown, enter the following command on the ULTRIX system to add it: xset +fp /usr/lib/X11/fonts/decwin/75dpi/ 1.4.2 Problem when Displaying on a Sun System When you are using a Sun system to display a FUSE session running on another system, and your Sun system includes a version of OpenWindows prior to Version 3.0, you may experience an occasional OpenWindows problem with the scroll bars while running the Builder, Call Graph Browser, C++ Class Browser, or Code Manager. If you upgrade OpenWindows to Version 3.0, you will not experience this problem. 1.4.3 Problem when Displaying on a Personal Computer Certain limitations of an X server may prevent you from running all FUSE tools concurrently when you are using an X server for display based on MS-DOS or MS Windows. The limitations depend on the X server used and may be due to one or more of the following: The amount of physical X server memory The amount of virtual X server memory The maximum size of certain MS Windows structures or tables To minimize these problems: Do not run or display applications other than FUSE on the system displaying FUSE. Run only a few FUSE tools concurrently. Also, when you are using a personal computer to display a FUSE session running on another system, you will not be able to resize some windows. 1.4.4 Color Values for Four-Color Plane Systems If you use a four-color plane system for displaying FUSE, you will receive warning messages about color availability. To avoid receiving these messages, copy the file /usr/opt/FUSE400/rundata/resources/4PlaneDefaults and append it to the .Xdefaults file in your home directory (your login directory on the system where FUSE is installed) before starting FUSE. 1.4.5 Color Problems when Running FUSE and Applications Using Many Colors FUSE may experience color mapping problems when run along with one or more applications that use many colors and that run on an 8 plane graphics system, for example, Netscape. This is particularly noticeable if you start FUSE when an application such as Netscape is already running. Symptoms include partial loss of colors in FUSE tool displays, for example, in the Code Manager lock icons. The simplest solution to the FUSE color loss is to stop the additional application. In the case of Netscape, you can also invoke it with the -install option, which allows Netscape to make more efficient use of colors. 1.5 Printing Problems 1.5.1 The DXmPrint Widget Needs /etc/printcap File The DXmPrint widget widget uses the file /etc/printcap to populate its list of printers. If this file does not exist or is incorrect, FUSE issues either of two possible warning messages on the command line: Printer name too long. Cannot access printer description file If this message appears, you need to set up your /etc/printcap file. 1.5.2 Scaling Graphs for Improved Printing Output If you are not satisfied with the default dimensions of a printed graph, follow these steps to scale the graph prior to printing: 1 Start FUSE. 2 Start the Host Shell tool. 3 If the directory $HOME/.fuse-defaults does not exist, create it: mkdir $HOME/.fuse-defaults 4 Copy the $FUSE_TOP/rundata/postscript/gelo.postscript file to your $HOME/.fuse-defaults directory: cp $FUSE_TOP/rundata/postscript/gelo.postscript $HOME/.fuse-defaults 5 Add write permission to the $HOME/.fuse-defaults/gelo.postscript file: chmod u+w $HOME/.fuse-defaults/gelo.postscript 6 Start the FUSE Editor and load $HOME/.fuse-defaults/gelo.postscript. 7 Search for the string LANDSCAPE. You will find the macro that provides the instructions to rotate and translate a graph so it can be printed in landscape mode. 8 Follow the directions (given in comments) in the gelo .postscript file to customize scaling and position of the graph on paper. Note that modifications to your private copy of the gelo.postscript file are effective immediately; you do not have to restart the tool to print the graph. 1.5 Dialog Box Problems 1.5.1 Dialog Box Problems when System is Heavily Loaded When the system running FUSE is heavily loaded (for example, recalling a saved configuration file with several tools), some X Toolkit resource requests might be inadvertently ignored. The height settings of some dialog boxes might be incorrect as a result. If the dialog box has a scroll bar, the following messages may be displayed in the terminal emulator window from which you started FUSE: fuse: `fuse-tool-name': warning/error : Name: hbar Class: XmScrollBar The specified slider size is less than 1 To correct this problem, manually resize the dialog box. 1.7 Language Support Restrictions 1.7.1 Restriction for the Ada Language Classifications For Declaration queries, the Cross-Referencer provides a Classification option box to filter queries by language classes (such as variables, functions, and so on). To take advantage of the Ada-specific classifications, the DEC Ada Version 3.2 or higher compiler is required. 1.8 Builder 1.8.1 The Graph Attributes Dialog Box In the Graph Attributes dialog box, the Expand Size to Show Text toggle is always grayed out. 1.8.2 Dependency Graph Appears Incomplete for Certain Makefiles When the Builder creates a dependency graph, it starts with the default target (the first target in the makefile) and evaluates all dependents of that target. This is true regardless of the Builder engine. If the makefile is structured in such a way that the default target does not depend on any of the targets that recursively call the make engine, the resulting graph is incomplete and no recursive node is displayed. Moreover, no compilation error is recognized. As a workaround, add a dummy default target to the makefile that contains dependencies from all other makefile targets. 1.8.3 Builder Menu Item Not Greyed Out When you start the Builder in a project, the Tools: Builder menu item is not greyed out in the Builder. It should be. Selecting the item has no effect. 1.8.4 Print Graph Dialog Always Prints Graph The graph is printed regardless of send options. The Delete File When Printed toggle is on by default, even though the online Help says otherwise. This means that the file is deleted unless the Delete File When Printed toggle is turned off explicitly. 1.9 C++ Class Browser 1.9.1 C++ Version Requirement The C++ Class Browser requires C++ Version 5.6 for optimal display due to changes in the cross-reference database generated by the compiler. The Class Browser does run with older versions but lacks full functionality. In particular, templates do not display correctly and many of the attributes used to filter member displays do not work correctly. 1.9.2 Return Types Shown for Constructors and Destructors When used with C++ Version 5.6, the Class Browser displays return types for class constructors; it should not do so. For constructors, the Class Browser shows a reference to the class as the return type. For destructors, the Class Browser shows a void return type. The return types appear in the Member Information pane. 1.10 Call Graph Browser 1.10.1 MB3 Show Calls and Called By Menu Items Mismatch User Interface The MB3 popup menu provides two menu items -- Show Calls and Called By -- that do not match properly with the corresponding user interface elements. If you choose the Show Calls menu item, it should turn on the Show Calls toggle in the main window. Similarly, the Call Options button in the main window invokes a dialog box with several toggle buttons that should match the settings you pick from the MB3 popup menu. In both cases, if you choose the Show Calls or Called By menu items, the toggles are not correctly set. You can return to your last view by choosing the MB3 menu items again and then resetting the Show Calls toggle button. To clear totally, select Graph: Original. 1.10.2 Select Box Works Best with Show Calls Toggled On You can type the name of a function in the Call Graph Browser's Select box. This works best when the Show Calls toggle in the main window is switched on. If the Show Calls toggle is switched off, the function will only be selected if it has already been expanded. 1.11 Code Manager 1.11.1 RCS Version Supported FUSE only supports RCS Version 5.6.2 (shipped with Digital UNIX V4.0) or earlier. It does not support RCS V5.7 or later. 1.11.2 Effects of File Protection on Library Files When the Code Manager creates a library, it allows read, write, and execute access to the owner and the group, and read and execute access to the world. If your user account does not have write access to the library, RCS reports the problem accurately. For SCCS, the following operations are affected: Check Out: If you check out a file using Command: Check Out..., you will receive an error message, which may take several minutes to appear. To reduce the time interval for the appearance of this message, replace the /usr/bin/get file with the /usr/opt/FUS400/rundata/patch/get file from the FUSE kit. Check In: If you check in a file using Command: Check In..., you will receive the following error message: SCCS: cannot create lock file Cancel Lock: If you attempt to release a lock on a file using Command: Cancel Lock..., you will receive the following error message: SCCS: (file) not being edited (sc14) These operations are affected similarly if you try to check out a file, check in a file, or cancel a lock using SCCS from the shell. 1.11.3 Minimum Window Size for the Main Window There is a minimum size (enforced by the Code Manager) to which you can shrink the Code Manager main window. The minimum size avoids problems that will occur if the main window becomes too small for the scroll bar to be displayed. 1.11.4 Revision Number Required for Files in RCS Library To operate on a file in an RCS library, the Code Manager requires the file to have revision information associated with it. If you use the Code Manager to insert the file into the Library, this problem will not occur because the Code Manager automatically assigns revision 1.1 to a newly inserted file. If you insert a file into the RCS library without using the Code Manager, do not use the rcs -i command, because you will not be able to use the Code Manager to process the file. Either nothing will happen (for example, when trying to expand the file) or the Code Manager reports an error (for example, when trying to check out the file). 1.11.5 Undefined Error Causes Reinitialization There are a number of errors that the underlying tool (RCS or SCCS) reports in a way that the Code Manager fails to recognize or deal with in an optimal way. When the Code Manager gets told that some "undefined" error occurred in the subsidiary tool, it re-initializes and reloads the library to account for possibly incomplete or erroneous data that may have been passed back by the lower level tool. 1.11.6 SCCS PROJECTDIR Cannot Be Used with the Code Manager The SCCS PROJECTDIR environment variable cannot be used when running the Code Manager. You can instead configure as default libraries in the Code Manager those libraries that you would have pointed to using the PROJECTDIR variable. 1.12 Control Panel 1.12.1 Using the Stop Tools Item with Unsaved emacs Buffer If the Save file prompt is displayed when you attempt to stop the emacs Editor using Actions: Stop Tools, emacs is not stopped but its entry is removed from the Control Panel display area. After you respond to the Save file prompt, the emacs Editor will be stopped. 1.12.2 Project Files Only Can be Used by One User Only one user at a time can use a project file. 1.13 Compare 1.13.1 Column Data Misaligns The Compare tool, like most other FUSE tools, is set up to use the system default fonts. Because this font is almost always a proportional font (especially when using CDE), columnar data will not, in general, align correctly when displayed from the Compare tool. For correct alignment of columnar data, you must select a non- proportional font using the Fonts menu entry in the Compare Options menu. 1.13.2 Single Difference May Not Be Visible A single difference may not appear in the initial display of the compared files. You may need to scroll down in the file to locate the difference. There is no other indication that there is such a single difference. 1.14 Cross-Referencer 1.14.1 Locating f77 and f90 Declarations If you have a combination of both F77 and F90 declarations , the only way to find both using the Cross- Referencer is to use the All Languages option in the main window. See Section 1.26.3 for more details. 1.14.2 C++ Version Requirement The Cross-Referencer requires C++ Version 5.6 for optimal display due to changes in the cross-reference database generated by the compiler. The Cross-Referencer does run with older versions but lacks full functionality. 1.15 Database Manager 1.15.1 Restrictions when Using Different Systems If the system on which you are running FUSE is different than the system where files are located, make sure that the mount points (and thereby the pathnames) to the files are the same. If the mount points are different , the static analysis database will be recreated. (An exception is the use of /tmp_mnt as a mount point.) 1.16 Debugger See the Ladebug Debugger Release Notes for known problems. If you are running FUSE V4.0 with Digital UNIX V4.0 or V4.0A, the Ladebug shipped with the operating system works with FUSE V4.0. The current version of ladebug (V4.0-38) can use project data when invoked from the Control Panel. However, if invoked from the command line (without any arguments) or from CDE, the debugger uses the directory in which it starts as its working directory. Subsequent releases of ladebug will support FUSE project data from the command line and CDE. The Tools: Set Directory List and Tools: Configure Tool menu items do not function. (They are there for backward compatibility with previous ladebug debugger versions.) 1.16.1 dbx Support Removed FUSE V4.0 no longer supports the dbx debugger. 1.16.2 Loading a New Program May Cause Failure Loading a new program into the Debugger after loading an initial program may cause the Debugger to halt. It is recommended that you bring up a new Debugger for each new program. 1.16.3 Problem Removing Breakpoints with Emacs Breakpoints cannot be removed using Emacs. 1.16.4 Debugger and CDE Interactions If you use the CDE desktop to drop an executable on the Debugger icon, the Debugger loads the program, but does not ask you to enter necessary program arguments. Choose File: Rerun Same Program to add data. 1.16.5 Remote Use of Debugger Leaves ladebug-server process If you use fusedebug remotely, the debugger leaves a ladebug-server process on the target machine. A workaround for this is to kill the server process from the command line or exit the debugger session by typing quit in the debugger engine instead of using the exit menu item. 1.17 HyperHelp 1.17.1 Delete Old HyperHelp Application Defaults If there is an old HyperHelp application defaults file in /usr/lib/X11/app-defaults, HyperHelp may not work correctly (mainly odd names for pushbuttons, title bars, and so on). If this happens, back up the HypeHelp file in /usr/lib/X11/app-defaults and delete it. 1.17.2 Multiple Viewers Hitting the Help button rapidly when there are no HyperHelp Viewers running may invoke multiple viewers. Only one responds to FUSE control. 1.18 emacs Editor 1.18.1 Only First Annotation is Displayed Although the Annotate Lines function is supported in emacs, only the first annotation received is displayed. The others are ignored. 1.18.2 Obtaining Information About emacs Online The emacs editing window does not have a Help menu. For online information about emacs, choose Help: On FUSE ... in any FUSE tool and then choose the topic "Editing Sources Files." 1.18.4 Iconifying Restriction When a project is iconified, emacs retains its icon. 1.19 XEmacs 1.19.1 XEmacs Version Compatibility The version of XEmacs shipped with Digital UNIX V4.0 does not run well in the FUSE environment. Use the ftp sites (see the topic How Do You Get XEmacs ? in the Online Help) to copy Version 19.15 or higher. 1.19.2 XEmacs Launch from Another Tool May Not Work If you start XEmacs from another tool using the annotation, XEmacs may not open the file the first time. You may need to redo your action that invoked XEmacs to set it to display the annotation. 1.19.3 FUSE Menu Options Do Not Appear in Menu Bar When running FUSE on a slow machine, sometimes the FUSE menu item in the XEmacs menu bar does not show up correctly. You have to evaluate the following in XEmacs to load the FUSE menu file: load-file "/tmp/FUSE_init_emacs_menubar.pid" where pid is the process id for your process. 1.19.4 Iconifying Restriction When a project is iconified, XEmacs retains its icon. 1.19.5 Error Message Using Annotation The following extraneous error message appears in the XEmacs message area when you use annotations: File mode specification error: (wrong type argument number-or-marker-p "19") You can ignore the message; it has no impact on annotations. 1.20 MULE Editor The MULE binary shipped with Digital UNIX Version 4.0 does not display menu names correctly in the Japanese locale. To check your MULE binary: 1 Invoke the MULE editor. 2 Load or create a file whose file name contains Japanese characters. 3 Check the "Buffers" menu pulldown to see if the file name is the same as in the Buffers window. If it is, your binary is built correctly. If you cannot read the menu, rebuild MULE. Before rebuilding MULE, read the INSTALL, INSTALL.dec, README, and the README.Mule files. Rebuilding MULE requires approximately 50 to 70 megabytes of disk space. The following steps are provided as a guide; they might not work for every setup. 1 Use the setld command to install the IOSWWMULE400 and IOSWWMULESRC400 subsets. 2 Uncompress and extract the contents of the sources tar file: a. % mkdir "mule_bld_directory" b. % cd "mule_bld_directory" c. % cp /usr/i18n/src/mule-2.3.tar.Z . d. % uncompress mule-2.3.tar.Z e. % tar xvf mule-2.3.tar 3 Change to the directory mule-2.3: % cd mule-2.3 4 Change the file properties of config.guess to be exexutable: % chmod a+rx config.guess 5 Run the configure script: % ./configure --with-gcc=no --prefix="mule-pathname" --mcpath 6 Edit the Makefile by locating the line that starts with CC (line 42 in most cases) so that it reads: CC=cc -I/usr/include/X11/fonts This change tells the C compiler which directory to look in for the font server header files (FSlib.h). (This location might be different for your machine.) 7 Copy the files from the binary's site-lisp directory to your site-lisp area: % mkdir "mule_pathname"/lib/mule/site-lisp/ % cp /usr/i18n/mule/lib/mule/site-lisp/* "mule_pathname"/lib/mule/site-lisp/ 8 Build MULE: % make install 9 Fix the following compile error if it occurs: cc: Error: ../src/regex19.h, line 383: Invalid declaration. extern Lisp_Object Vforward_word_regexp, Vback- ward_word_regexp; -------------------^ Exit 1 Copy the header file /usr/include/sys/lc_core.h to ./src/sys/lc_core.h and delete the following include statement: #include `regex.h' 10 Make sure you are pointing to the successfully built MULE executable in either of two ways: By explicitly setting the FUSE_MULE environment variable to `mule-pathname'/bin/mule. By editing the reference to MULE in `fuse_path'/fuse.sh. (See the Installation Instructions for more details.) 1.21 FUSE Editor 1.21.1 Problem with Null Byte in Files If a file contains a null byte (\0), the FUSE Editor truncates the file after it. If you load a file with a null byte, FUSE displays a message to warn you that the file may be truncated. To make sure that the entire file is loaded correctly, use emacs or vi to remove the null byte from the file before loading the file into the FUSE Editor. 1.21.2 Annotation Placements May Be Incorrect when a Buffer Is Saved Annotations in source files become invalid in the following circumstances: Annotations have been marked by a tool in the source file. You make changes to the source file and use File: Save to save your changes. The tool that marked the annotations has knowledge of the annotation locations according to the unsaved version of the file. The annotations then become invalid. If you start another tool that is configured to the same file, the new tool will reference the saved version of the file and the tool that made the original annotations still references the unsaved version of the file. Therefore, these two tools will not have the same view of the source file. For example, you have used the Builder to build a program and the build errors are marked in the FUSE Editor by annotations. You then use the Editor to change and save the file. The Builder has knowledge of the annotations according to the line locations prior to your saved changes. You then start the Cross-Referencer and it refers to the saved version of the source file correctly. However, it and the Builder now have a different view of the same source file. 1.21.3 Printing Large Files May Result in an Error If you print a large file using File: Print..., you may receive an illegal instruction signal interrupt. This is most likely to happen when the /tmp directory is being used by several tools at the same time. Wait until actions using the /tmp directory (such as program building) have completed, and try to print the file again. 1.21.4 Show Class The Show Class... item on the Utilities menu in the FUSE Editor will not display the class in the C++ Class Browser if the selected class identifier is in the form ClassName::MethodName. To display the class from the Editor, highlight just the ClassName part. 1.21.5 Find and Replace In the FUSE Editor, if you display the Find... dialog box and initiate a Find and Replace All action on a very large buffer in which there are many occurrences of the specified string to find, the Editor will appear to hang after finishing with all the replacements. This is a false impression; and, if you wait, the Editor will eventually resume normal functioning. The amount of time depends on how many replacements were performed. If the user attempts to perform thousands of replacements using one Find and Replace All operation, the FUSE Editor might hang . This doesn't seem to occur until more than about 20,000 replacements. 1.21.6 Problems with Key Bindings In the Editor, some key bindings do not work on some systems as documented. Notably, on some Digital UNIX systems, Ctrl+F3 and Ctrl+F6 do nothing. 1.21.7 Using the Checkout File Utility on an Unnamed Buffer If you are currently editing an unnamed buffer in the Editor (with a name something like Unnamed_1) and you choose Utilities: Checkout, the Code Manager will attempt to check out the file named Unnamed_1 and will then notify you that the file does not exist or that the library type does not match the current library. To avoid this problem, load the file you want to check out into the Editor's buffer before attempting to check it out; or check out the file directly from the Code Manager and click on the Invoke Editor checkbox in the Check Out dialog box to load the file into the Editor. 1.21.8 Errors in Find Operation Using Regular Expressions The Find dialog box in the FUSE Editor (accessed from the Buffer menu) has several known problems when searching using regular expression patterns. A search for a "^[pattern]" will ignore a match if the match is on the very first line. A search for a "[pattern]$" will ignore the match if the match is on the last line in the Editor. 1.21.9 Memory Available Impacts Size of Editable File The size of the file that you can open using the FUSE Editor largely depends on the amount of memory available on the machine during the editing session. If all available memory is exhausted, the FUSE Editor could crash while attempting an edit/save operation. For large files ( greater than 50,000 lines), even simple edits will take a long time. Edits at the beginning of the file will take longer compared to edits at the end of the file. 1.22 Heap Analyzer 1.22.1 Restrictions on Application Running in I/O Window Your application will not work correctly if it does I/O to /dev/tty. Use of Ctrl/C, Ctrl/Z and similar job control characters in the I/O window do not work . Try running your application outside the Heap Analyzer. 1.22.2 Error Message on First Switch to Generate Mode There are occasional problems when switching to Generate mode for the first time. It can cause a message "Out of ptys" to be displayed. If this happens, exit the tool and restart. Usually that is enough although sometimes you need to do this severa times. 1.23 Host Shell If you choose Actions: Raise Tools in the Control Panel to bring the Host Shell window to the top of the display, the Host Shell window fails to come to the top of the display. 1.24 Man Page Browser 1.24.1 False Hits on Search The Man Page Browser searches using a regular expression. However, in the case of ^ (beginning of line) and $ (end of line), the Man Page Browser may make false positive hits. This should only happen around hotspots. 1.25 Porting Assistant 1.25.1 Only Bourne Shell Commands Supported in Makefiles The Porting Assistant only supports Makefiles that use Bourne shell commands. 1.25.2 Restriction Executing .cshrc File If the Porting Assistant processes a makefile that invokes a C shell script that sources your .cshrc (such as which ), make sure that your .cshrc file does not modify your terminal (for example using stty). This causes the Porting Assistant to hang. 1.25.3 KAP Preprocessor Ignored The Porting Assistant ignores the kapf command (for example, if used in a makefile) for the standalone KAP preprocessor . The Porting Assistant does recognize kf90 and kf77. 1.26 Profiler 1.26.1 Restrictions on Application Running in I/O Window Your application will not work correctly if it does I/O to /dev/tty. Use of Ctrl/C, Ctrl/Z and similar job control characters in the I/O window do not work. Try running your application outside the Profiler. 1.26.2 Error Message on First Switch to Generate Mode There are occasional problems when switching to Generate mode for the first time. It can cause a message "Out of ptys" to be displayed. If this happens, exit the tool and restart. Usually that is enough although sometimes you need to do this severa times. 1.27 Version Controller The Version Controller will still attempt to edit a file even if a checkout fails. 1.28 Scanners 1.28.1 Wrapper Routines The wrapper routines can generate static analysis data for the browser tools during a build. They have the following restrictions: The fuse_cxx and fuse_f90 wrappers do not recognize non- Digital compilers. The fuse_cxx and fuse_f90 wrappers cannot handle compile commands that have the same base name on source files. That is, the following command only creates one file. fuse_cxx cxx test.C regression/test.C The fuse_cxx wrapper only compiles C++ files (no C code). The wrappers strip a leading /tmp_mnt from a path when saving static analysis data. 1.28.2 C Scanner When you click on the Generate Static Analysis Data button in the Builder, FUSE creates a static analysis database by scanning the source files. The C scanner has the following deficiencies wherein certain valid C syntax is not recognized; using this syntax may result in an incomplete or inaccurate static analysis database: The use of (declarator) where the declarator does not begin with a * pointer is currently not supported. For example, the following statements are not recognized as declarations and may lead to unexpected results for source that is scanned after such a declaration is encountered: extern int (_my_func)(); int (c) The syntax in the following statements is supported: extern int (*_my_func)(); int (*c); The C language indicates that the word int can be omitted from declarations; however, the C scanner only supports this for external declarations. For example: extern c; void main (); { extern main_c; } The C scanner recognizes the declaration of c as an external int; however, it will not recognize the declaration of main_c. The C scanner is a syntax-only scanner, that is, no semantic information is kept during scanning. When the language's syntax is ambiguous, it is impossible for the scanner to know exactly what is being scanned. For example, the syntax of a declaration for a variable can mimic the syntax of an expression. Consider the following example: void popcg (int *tag) { clear (*tag); } void clear (int x) { } The syntax of the call to clear is the same as the syntax that could be used to define a variable called tag, which was a pointer to some user-defined type (from a previous typedef) called clear. In this example, the C scanner believes it is scanning a declaration as opposed to a function call. The call relationship between popcg and clear is lost and declaration information for an automatic variable named tag or type clear(*) is generated. It is possible that one of the scanning deficiencies can negatively affect the normal scanning of the rest of a file. By using ANSI C (that is, ISO C) function definitions, particularly by providing a return type, the C scanner can more easily determine function boundaries. Thus, a problem in a scan of one section is unlikely to negatively affect another section's scan. 1.28.3 FORTRAN Scanner If you have a combination of both F77 and F90 declarations, the only way to find both using the Cross -Referencer is to use the All Languages option in the main window. Because F90 and F77 are part of a single kit in Digital UNIX Version 4.0, by default, FUSE uses F90 (available in /usr/ bin/f90) to scan F77 files. If F90 is not available, the files are scanned by the FUSE Fortran scanner (located in /usr/opt/FUS400/bin/fortran_scanner). The F90 compiler tags all declarations with its own f90_ tag whereas the FUSE Fortran scanner tags all its declarations with the f77_ tag. FUSE makes a distinction between the two compilers because F90 has new declaration types that F77 does not support. If you have a combination of both F77 and F90 declarations, the only way to get both at the same time is to use the All Languages option in the Cross-Referencer main window. The FORTRAN scanner is case sensitive. For example, when the scanner reads the following syntax, the scanner detects name as a statement function and NAME as an array variable: SUBROUTINE INIT CHARACTER*20 NAME(20) name(1) = `a' END 1.28.4 Pascal Scanner The Pascal scanner does not support the following: Nonstandard %INCLUDE directive Nonstandard array constructions 1.28.5 Directives for Specifying Pathnames to Scanners When specifying the source:, include:, rootdir:, or for: ... end: directives in a scanning resource file, use absolute or relative pathnames only. The use of environment variables in the definition of these directives is not supported. 1.29 Documentation 1.29.1 Help on the Color and Print Dialog Boxes When you request help on the Print dialog box (which appears when you choose File: Print) or the Color dialog box (which appears when you choose Options: Colors and click on an entry in the Options - Colors dialog box), the Digital UNIX Bookreader is invoked. The Bookreader may be unable to locate the file containing the requested help. 1.29.2 Setting Up a Printer for Printing HyperHelp Topics Setting up a printer for use by the HyperHelp Viewer is easier if you use the procedure described in the FUSE Help system. From the Control Panel, choose Help: Help on Help. It provides some initial steps that supplement the procedure described in the Help available from the HyperHelp Viewer. Choose Help: How to Use Help from the HyperHelp Viewer for this information. 1.29.3 Incorrect Title in Preface of DEC FUSE Handbook The Preface of the DEC FUSE Handbook lists the FUSE Information Set. The Ladebug Debugger Manual: Window and Command- Line Interface is incorrectly labeled as the DEC FUSE Debugger Manual: Window and Command-Line Interface. This manual is part of the operating system and debugger documents. It is not shipped with the FUSE documentation set.