# Welcome to the GNAT Programming Studio

### Version 5.0.1

GPS is a complete integrated development environment that gives access to a wide range of tools and integrates them smoothly, unleashing the full power of GNAT Pro.

# Online Documentation

GPS comes with a tutorial that gives an overview of the functionalities by going through a complete session, and a User's Guide documenting each tool and modules.

- GPS Tutorial
- GPS User's Guide

# GPS Features

GPS provides the following features:

- Ease of Use
  - Modern GUI
  - All the tools are integrated together
  - Tools communicate with each other
  - Contextual menus and shortcuts
  - Powerful and flexible window manipulations
- An Open Technology
  - Open Source
  - Multi language
  - Multi platform
  - Customizable
  - Integration of external editors
- Managing Complexity
  - Project explorer with multiple views:
    - A Project/Directory/Source/Entity view
    - A File system/Directory/Source/Entity view
  - Project wizard (to create projects easily)
  - Project properties dialog with:
    - Name, Languages, Tools
    - VCS configuration
    - Add/Remove source directories
    - Set/Change object & exec directories
    - Add/Remove main files
    - Switch editor (per project or per file)
    - Naming scheme
  - Add/Remove project dependencies
  - Creation/Use of configuration variables. Any project property can be configured using variables.
  - Project hierarchy browser
- Improving Quality
  - Source pretty printing
  - Style checking
  - Warnings on potential wrong or dangerous coding
  - Possibility to restrict the language constructs allowed
  - Run-time checks
    - Detection of uninitialized variables
    - Detection of memory leaks
    - Buffer overflows
    - Invalid memory allocation/deallocation
    - Arithmetic overflows
  - Automatic code fixing
  - Metrics
  - Generic Version Control support (with built-in support for Subversion, CVS, GIT and ClearCase), including:
    - Status of files
    - Check in
    - Check out
    - Edit log
    - Annotate files (CVS only)
    - Add/Remove file
    - Revision history
    - Comparison betwen revisions
- Improving Productivity
  - Integrated editor
    - Source highlighting
    - Automatic indentation
    - Unlimited Undo/Redo
    - Cut/Copy/Paste
    - Jump from error message to source editor
    - Smart code completion
  - Easy access to Compile/Build/Run/Check file syntax, fully customizable
  - Intelligent source navigation, including:
    - Goto declaration (including support for dispatching calls)
    - Goto body (including support for dispatching calls)
    - Goto line
    - Goto file spec/body
    - Goto previous/next location (unlimited)
    - List all references to an entity in current file
    - List all references to an entity in the project, with many filters
    - Two-ways source dependency browser
    - Two-ways call graph
  - Automatic generation of body
  - Integrated debugging, including in particular:
    - Run/Step/Next/Finish/Continue
    - Breakpoints (on line, function, exception, ...)
    - Attach to running processes
    - Core file debugging
    - Enhanced display of variables and complex structures
    - Dereference of pointers by a simple mouse click
    - Detection of aliases
    - Display of registers, local variables, arguments
    - Call stack
    - Assembly view
    - Task view
    - Memory view

Copyright (C) 2002-2011, AdaCore.