SNiFF + Basic Concepts

What is SNiFF+?
SNiFF+ Architecture
Projects
Workspaces
Working Environments
Versions and configurations
Build support
Documentation building
Source code parsing and symbolic information
Mix-and-match tool and control integration

Working Environments

Introduction
Example working environment hierarchies

Setting Up Projects in SNiFF+

Introduction to setting up projects
Choosing the project type
Determining which working environments to setup
Deciding on the best location for your workspaces
Setting up projects: steps to complete in the shell
Setting up projects: steps to complete in a SNiFF+ session

Working with Projects

Introduction
Opening projects
Opening projects from the Launch Pad
Opening projects from the Working Environments tool
Opening projects from the Project Editor
Alert messages during the opening of a project
Modifying projects

Administrating Workspaces

Introduction
Why workspaces need to be updated
Creating a workspace project
Using SNiFF+'s cron scripts for unattended updates and builds
Updating and building workspaces
Updating a shared source workspace
Building the targets of a project -- building a SOWS
Updating and building a private workspace

Build and Make Support

Introduction
How SNiFF+ supports the make process
Defining the make attributes of a SNiFF+ project
Adapting the supplied make support files
Setting up project makefiles
Using SNiFF+'s Make Support feature
Description of the project makefile Makefile.sample

Versions and Configurations

Introduction
Using the Project Editor to manage versions of files
CMVC commands for manipulating versions and configurations
Using the Configuration Manager to manage configurations of projects
Showing and merging differences with the Diff/Merge tool

Managing Source Code Parsing

SNiFF+ parsing technology
Preprocessing source code
Full preprocessing
Configuring the parser with a configuration file
Running the parser on a remote host

Documentation Building

Documenting source code
Writing source code documentation
Synchronizing documentation
Browsing documentation
Managing documentation together with source code
Exporting documentation
Changing the layout of a documentation frame

Using Emacs together with SNiFF+

Introduction
Integrating Emacs
Working with Emacs and SNiFF+
Configuring the Emacs integration
How the Emacs integration works

Basic User Interface

Menu bar
Status line
Layout handle
Project Tree
Regular expression filters
Shortcuts

Common Windows, Dialogs and Menus

Icon menu
File menu
Edit menu
Positioning menu
Target menu
Info menu
Class menu
File Types menu
History menu
Check In dialog
Check Out dialog
Choose Symbol dialog
Differences dialog
Directory dialog
File dialog
Find/Change dialog
License Info dialog
Log Window
Lock dialog
Print dialog
Progress Window
Project File dialog
Statistics dialog
Target dialog
Unlock dialog

Class Browser

Introduction
Basic components
Pop-up menus
Pull-down menus

Configuration Manager

Introduction
Basic components
Pull-down menus

Cross Referencer

Introduction
Basic components
Pull-down menus
Filter dialog

Debugger

Introduction
Starting the Debugger
Having multiple Debugger sessions at the same time
Using a different debugger back end
Pull-down menus
Stack window
Display window
Breakpoints window
Attach dialog
Symbol File dialog
Debugger's Preferences dialog
Dynamically loading debugging information with gdb

Diff/Merge tool

Introduction
Basic components
Pull-down menus

Documentation Editor

Introduction
Modes of operation
Basic components
Pull-down menus
Documentation Synchronization dialog

Hierarchy Browser

Introduction
Basic components
Pull-down menus

Include Browser

Introduction
Basic components
Pull-down menus

Launch Pad

Introduction
Basic components
Pull-down menus

Project Editor

Introduction
Basic components
Pull-down menus
Other buttons
Project Editor views when the History button is pressed
Add/Remove Files dialog
Displaying the attributes of the selected project
Modifying the attributes of multiple projects at the same time

Retriever

Introduction
Basic components
Pull-down menus

Shell

Introduction
Pull-down menus

Source Editor

Introduction
Basic components
Pull-down menus
Debugging mode--extra buttons added to the Source Editor
Shortcuts

Symbol Browser

Introduction
Basic components
Pull-down menus

Working Environments tool

Introduction
Basic components
Pull-down menus
Looking at the attributes of a working environment
Projects dialog

Online Documentation

Introduction

Sniff Executables

sniff
sniff_arch
sniff_genproj

Makefiles and Make Support Files

Project-specific makefiles
Platform-specific makefiles
Make support files automatically generated by SNiFF+
Generic makefile general.mk
Shared workspace issues

Sniffaccess

Introduction
Invocation of sniffaccess
SNiFF+ external access communication protocol
Sniffaccess requests
Sniffaccess Notifications
HP Softbench BMS bridge

Customizing SNiFF+

Introduction
Preferences
Parser configuration file
Retriever filters
Template files
Custom menus
Error formats
Creating your own documentation templates files

Parsers Supplied with SNiFF+

Introduction
SNiFF+ IDL Parser
SNiFF+ FORTRAN Parser
SNiFF+ Java Parser

CMVC Interface

Introduction
Creating your own adaptor
General
Variables
Modification of the working file and the repository
Modification of the repository only
Retrieval of information only
Variable definitions
Adaptor-administrative commands

Symbol Table API

Introduction
Using the SNiFF+ Symbol Table API
Programmer's Index
Sample Source File
Sample Interface Definition File
Syntax
Introduction
Generated files