Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

What's New

You can select a topic from this diagram:

Glossary What's New Utilities Used by the IDE Getting System Information Using Code Coverage Common Wizards Reference Preparing Your Target Developing Photon Applications Developing C/C++ Programs Where Files Are Stored Building OS and Flash Images Migrating to the 6.3 Release Tutorials IDE Concepts About This Guide Analyzing Your System With Kernel Tracing Profiling an Application Finding Memory Errors Debugging Programs Managing Source Code Launch Configurations Reference

Workflow with what's new chapter highlighted


This chapter identifies the changes made to the QNX Momentics IDE.

In this chapter:

What's new in IDE 4.0.1?

IDE 4.0.1 includes the following new features:

Support for Windows Vista

Full support for the Windows Vista OS
QNX IDE workbench version 4.0.1 includes support for the Windows Vista operating system. For a complete list of supported host and targets, see the QNX IDE Momentics Release Notes.
Windows Vista patch available for download to support the QNX win32 SDK
The QNX Download Center includes a patch to provide you with Windows Vista support for the QNX win32 SDK. This patch includes an updated version of the core file cygwin1.dll, uname.exe, and bash.exe.

IDE supports self-hosted Neutrino and Solaris

The IDE Workbench now supports self-hosted Neutrino and Solaris configurations.

Eclipse updates

In IDE 4.0.1, you can upgrade to use Eclipse platform version 3.2.2, and the Eclipse CDT to version 3.1.2. For detailed information about the changes made to the Eclipse Platform and CDT, see the Eclipse.org website.

General improvements

IDE 4.0.1 includes various overall improvements to the application. For a detailed list of these improvements, see the release notes.

Improvements to upgrading your software

In addition to updating your IDE features and qconn, you can now use the Software Updates manager to quickly update the IDE software.


Note: If you have an existing installation of IDE 4.0 on your machine, you can use the IDE Software Updates manager to update the IDE to version 4.0.1 (see the topic "Upgrading using the IDE Software Update manager" in the installation notes for Windows and Linux hosts; for Solaris and Neutrino, you will need to follow the typical installation instructions for a new installation.

Download Center updates

For this release of the IDE, the Download center has an update to qconn and to the malloc library. For instructions about using the Software Update Manager, see the installation notes for Windows or Linux, or see the QNX Momentics IDE Online Help.

Documentation updates

The documentation includes various improvements and enhancements. For a list of some of these improvements, see the items under the heading, "List of fixes" in the release notes. In addition, a printed version of the QNX Momentics IDE User's Guide is also available.

What was new in IDE 4.0?

IDE 4.0 included the following new features:

Application Profiler perspective

Full profiling support for shared libraries and DLLs (requires the libc patch)
Call information is included by instrumented shared libraries and DLLs. Callout-type calls from noninstrumented to instrumented code are now shown.
Background symbol loading
Symbol loading is now performed in a background thread, resulting in enhanced user experiences, because you no longer have to wait for the profiler to initialize itself loading symbols during the launch startup process.

System Profiler perspective

Configuration settings
You can now save and load (as well as import and export) System Profile configuration settings. System Profiler sessions are now controlled through the standard Launch Configuration mechanism.

System Profiler Perspective

Adaptive Partition Summary view
Shows adaptive-partition usage and summary information, including:
CPU usage
The CPU Usage pane displays a thread's partition and priority and is now a tabbed view that presents the display of CPU usage sliced by CPU, partition, and priority. You can easily sort and export this information. In addition, the functionality of the Process Activity editor pane and the CPU Usage editor pane have been merged together.

CPU usage

Timeline navigation and usability improvements
The System Profiler Timeline display provides insight into the execution of the system, broken down by individual process, thread, and interrupt activity.

Improving the ability to navigate through the system events lets you quickly zoom into problem areas or follow the flow of activity, matching what you see visually in the timeline with what you expect to occur in your systems.

Specific improvements include:

Enhanced data searching, filtering and reduction capabilities
The instrumented kernel log files can easily generate tens, if not hundreds, of megabytes of information in a short period of time. This amount of information provides a good context for examining problems, but is often more data than is required to highlight a problem to another developer.

This version of the System Profiler lets you save and create new log files that contain only a relevant subset of the data required for other developers to understand problems. New log files can be created focusing on only a particular range of time, and filtering out unnecessary events or event owners, such as server processes.

A new event data extraction and interpretation framework has been introduced with this release that allows event data conversions, particularly of User Events, to be more powerfully applied. Users can now describe their own events using C-style data structures. Accompanying this new framework is a new Event Data Properties view that more clearly displays, in a tabular manner, the key/value data associated with individual events.

New data analysis tools
This release of the System Profiler provides you with some additional analysis tools to help you understand the execution status of their system and to give you more insight into why certain sequences of events are occurring.
General usability improvements
There have been a large number of general usability and performance improvements made to the System Profiling tools. Some of the more interesting improvements include:

Memory Analysis perspective

This perspective includes a completely new Memory Analysis Tooling that's reliable, fast, and robust, and with greatly improved performance and stability.

Memory Analysis Perspective

Its features include:

You can now:

System Information perspective

Adaptive partitioning scheduler view
A new APS view lets you view information about adaptive partitions on a running target system.

System Information Perspective

CPU affinity and process priority/scheduling controls
Threads and processes now have context menus that let you set the CPU affinity and change the process priority and scheduling algorithm. You can also change a thread's name on targets running QNX Neutrino 6.3.2 or later.
Thread name support
Thread names are now shown in System Information views, if available.
Highlighting data changes
Changing data is now highlighted in System Information views, and a delta is displayed for CPU/data usage.

System Builder perspective

TFTP Server improvements
The TFTP Server view includes several improvements:

Managed Make for QNX projects

You can now create and use QNX Managed Make projects to handle building code dynamically for any and all QNX targets.

Managed Make Projects

These are similar to QNX Projects except they provide a richer environment for setting compiler and linker options. They also let you use custom build steps and set environment variables and build macros for make. Managed Make projects can be created in the New Project Wizard under C or C++. Select QNX Neutrino Executable, Shared Library, or Static Library Project Type, and then select which Configurations to build for. There are configurations for each processor type, compiler version, and debug/release build options.

C/C++ development

C/C++ general improvements

DOM-based language backend
The C/C++ perspective is now served by a much more powerful language model in the form of a document object model (DOM) that helps make everything from the C/C++ outliner, to searching, to refactoring, to class browsing faster and more accessible to plugin developers.
Kernighan & Ritchie (K&R) C language support
In addition to the new DOM serving the backend source code model, the native parser is also much more tolerant of K&R C language dialects.
Faster searches
You will also notice significant improvements to the performance and speed of the C/C++ parser and the efficiency of the indexer. As a result, searches (both general and specific, such as searches for references and declarations) are faster and more accurate than in previous releases.

C/C++ user interface

Build environment control
You can now fully configure the environment variables set when starting external build commands, through the Standard Make and Managed Build C/C++ project properties, or directly when creating new projects from the New C/C++ Project wizard.

Build Environment Control

PathEntry variables
The PathEntry project properties are important for the correct operation of the parser. The new Window-->Preferences-->C/C++-->PathEntry Variables configuration lets developers configure a common set of variables that allow the sharing of projects more easily between different developer configurations. PathEntry variables provide you with a capability to open files and to load objects that are in one's CLASSPATH.

PathEntry Variables

Binary parser options
The binary parsers are more generic with the capability to redefine what external commands they use for data interpretations. Configure the settings in the project properties, or at New Project creation time.

Binary Parser Options

New discovery capabilities
Further work has been done to facilitate the discovery of compiler and project settings, including the ability to read from a build output file.

New Discovery Capabilities

Indexer selection
The C/C++ source indexers are now plugable components, each providing different feature support, letting you select from:
No indexing
No support for searches or cross referencing.
C/C++ parser-based indexing
DOM model based, requires proper project configuration (defines and includes). Full searching, cross referencing and refactoring are supported.
Drag-and-drop support
The C/C++ Project and the C/C++ Outline views have improved support for dragging and dropping of code elements and binaries.
Make Target filters
You can reduce the clutter in the Make Targets view by enabling the Hide Empty Folders filter.

Make Target Filters

Jump to definition
Complementing the already existing Open Declaration, also known as F3, is the powerful Open Definition (Ctrl-F3) that takes you directly to the definition of the class or type you're looking for.

Jump to Definition

New editing commands
Do more with less effort; additional C/C++ Editor key bindings are available for more flexible annotation and marker navigation.

C/C++ indexers

The C/C++ indexers have been substantially improved for greater performance and scalability.

The IDE lets you select the indexers to use to gather symbol information used by code search features. You can choose to use indexers in the project properties for each project under the C/C++ Indexer heading. It is also available in the Preferences dialog, which sets the default indexer for new projects and can also be used to apply that indexer selection to all projects in the workspace. There are three choices for indexing: no indexer, fast indexer, and full indexer. No indexer implies that no indexing takes place, and as a result, the search features will not function. The full indexer does a full parse of the workspace and provides the most accurate information, and it is similar to what was provided in version 6.3.0 SP2. The fast indexer uses heuristics to optimize the parse and is the recommended selection for large projects.

We recommend that you use the fast indexer option. The fast indexer takes a fraction (approximately 10-25%) of the time to index a large project than in IDE version 6.3.0 SP2. It also successfully indexes extremely large projects.

For example, the fast indexer can index the Firefox browser source in approximately 14 minutes. There are approximately 5600 indexable files (source and header files) with over 300,000 symbols.

Debugger

A new Modules view
All of the binary components, or modules, are now displayed in the debugger's Modules view. This includes DLLs, shared objects and application binaries themselves. Additionally, each module can be expanded, letting you put breakpoints directly on binary components without opening the C/C++ Project view.

New Modules View

Memory view
The debugger now uses the standard platform Memory view, allowing for a number of format translations and multiple memory location inspection.

Memory View

Register groups
The Registers view now supports the concept of register groups, so you can define the collection of registers relevant to your particular debugging environment.

Register Groups

QNX Momentics workbench

Significant performance enhancements
For detailed information about the performance enhancements throughout the workbench for Eclipse, see the "What's New" topic in the online help for the Workbench Users Guide.

Debugging

Console EOF
In the Console view, you can signal end-of-file to a program waiting for input; for Windows, press Ctrl-Z, and for Linux, Neutrino, and Solaris, press Ctrl-D.
Console encoding
You can configure the console to display output using a character encoding different from the default encoding. To set the console encoding for an application, use the Console Encoding settings on the Common tab of a launch configuration.
Capturing program output
You can now configure a program's output in a file in addition to writing it to the console. The behavior is controlled by settings found on the Common tab of launch configurations.
Multiple console views
If you need to view multiple consoles at the same time, you can open additional Console views using the New Console View command located on the Open Console drop-down menu in the Console view.

What was new in the IDE in 6.3.0 SP3?

Service Pack 3 includes all of the bug fixes and updates found in the previous service packs. The development environment is the same as the one introduced with Service Pack 2.

What was new in the IDE in 6.3.0 SP2?

The following sections describe some of the more interesting or significant changes made to the IDE in QNX Momentics 6.3.0 SP2:

General IDE

The QNX Momentics 6.3.0 SP2 IDE sports many useful new features:

New look and feel

The look and feel of the workbench has evolved. Here are some of the things you might notice:

Responsive UI

A number of changes have occurred in the UI to support a higher level of responsiveness. This includes support for running jobs in the background instead of tying up the UI and making you wait.

The IDE now features a:


Progress view


The new Progress view, showing the progress of a CVS checkout and a Workspace build background operation.

Many user operations can now be run in the background. When you see the progress dialog with the Run In Background button, you can click it to immediately return to your work.

Progress dialog

This dialog also shows you the details of other currently running operations in the workspace and informs you when one operation is blocked and waiting for another to complete.

Editor management enhancements

A number of changes and enhancements have gone into the editor management in the QNX Momentics IDE.

The IDE now provides:

Editor drop-down menu

Themes

The QNX Momentics IDE contains basic support for themes to allow for the customization of colors and fonts used in the workbench.

Background workspace auto-refresh

Changes made in the local filesystem can now be automatically refreshed in the workspace. This automatic refresh saves you from having to do a manual File-->Refresh every time you modify files with an external editor or tool. This feature is currently disabled by default, but can deactivated from the Workbench preference page.

Regular expressions in Find/Replace dialog

The Find/Replace dialog for text editors supports searching and replacing using regular expressions. Press F1 to get an overview of the regular expression syntax, and press Ctrl-Space to get Content Assist for inserting regular expression constructs.

When the cursor is placed in a dialog field that can provide Content Assist, a small light bulb appears at the upper-left corner of the field.

Find/Replace dialog

New text editor functions

You can customize the displayed width of tabs and the text selection foreground and background colors in the text editor. See the Workbench-->Editors-->Text Editor page:

Text editor preferences

New editor functions

All text editors based on the QNX Momentics IDE editor framework support new editing functions, including moving lines up or down (Alt-Up Arrow and Alt-Down Arrow), copying lines (Ctrl-Alt-Up Arrow and Ctrl-Alt-Down Arrow), inserting new a line above or below the current line (Ctrl-Shift-Enter and Shift-Enter), and converting to lowercase or uppercase (Ctrl-Shift-Y and Ctrl-Shift-X).

Double-clicking on the line number in the status line is the same as Navigate-->Go to Line... (Ctrl-L).

Opening external files

The File menu now includes an Open External File... option that lets you open any file in the workbench without having to import it into a project.

C/C++ user interface

The new CDT in the QNX Momentics 6.3.0 SP2 IDE features:

Outline filters and groups

The Outline view now offers you the ability to filter out certain elements such as defines and namespaces as well as the ability to group all include statements together.

Outline filters

New C++ Class wizard

Creating new C++ classes continues to get easier with a number of enhancements to the C++ class-creation wizard.

The New C++ Class wizard

New C/C++ wizards

A new toolbar has been created that facilitates the creation of a number of standard C/C++ objects:

new Wizard toolbar

Code folding

The C/C++ editor supports code folding for functions, methods, classes, structures and macros.

code folding

Makefile editor

The Makefile editor has a new Preferences dialog and supports code folding.

Makefile Editor               preferences

Makefile Editor code               folding

C/C++ debug and launch

Debugging support and application launching in the CDT has been improved, as described in the following sections:

Thread-specific breakpoints

The C/C++ Debugger now supports thread-specific breakpoints. After placing a breakpoint, look at its Properties to see which threads or processes it's active for.

thread-specific               breakpoints

Breakpoint filtering

The Breakpoints view now lets you filter out all of the irrelevant breakpoints based on the specific process that you're debugging.

Breakpoint               filtering

Workspace variable support

C/C++ launch configurations now include support for workspace variables in the Environment, Argument, and Working Directory tabs.

Mixed source/assembly

You no longer have to toggle the C/C++ editor to show the assembly of a program. Instead, use the Disassembly view to see both assembly code and source mixed:

Disassembly view

Global variables

You can add global variables to the Variables view instead of having to add them as separate expressions.

Global variables view

Debug console

The Debug Console has moved to being a proper console selection of its own in the generic Console view.

GDB      console

Automatic refresh options

You can now configure the default behavior for the automatic retrieval of shared library and register information in the C/C++ debugger.

Automatic               Refresh options

You can specify whether to refresh register values automatically or manually from the Launch configuration dialog with the Advanced button of the Debug tab.

Advanced    Debug options

Detailed Launch configurations

You can now maintain separate Run and Debug launch configurations for debugging core files, attaching to a running process, attaching to your target with pdebug (serial debugging), and attaching to your target with qconn (TCP/IP debugging).

Finer-grained Launch configurations

C/C++ project configuration and build

Project configuration and building has been improved:

Automatic project settings discovery

Automatically generate project defines and include path settings from the C/C++ Standard Make project's Discovery Options project settings.


Note: This is for projects being built with one of the platform-specific nto*-gcc drivers and a custom Makefile.

Scanner

Include paths & symbols

Use the C/C++ Include Paths and Symbols to set up the project settings appropriately for searching, indexing, and other source navigation functionality.

Path               preferences

Source folders

Use the C/C++ Project Paths project properties to determine those files and directories that should be specifically considered as containing source, output, or library content. You can improve performance by limiting the directories and files of large projects.

Source               folders

C/C++ file types

Define the types of specific files, especially C++ headers without extensions, using the C/C++ File Types global preference or project property.

C/C++ File               Types

C/C++ working set

You can now create working sets containing only C/C++ projects and resources by creating a C/C++ Working Set definition.

C/C++               working set

C/C++ editing and source navigation

Editing and navigating your C/C++ source files is now easier with:

C/C++ content assist

Editing code is easier with a more fully featured content assist feature. Completions are provided in the C/C++ editor for:

Content Assist

Configure completion options in the global C/C++ Editor Preferences.

Content Assist preferences

Rename refactoring

Use the Outline view or the C/C++ editor's Refactor-->Rename context menu to refactor class and type names, methods, functions, and member names.

Rename               Refactoring

Open type

Use Navigate-->Open type (Ctrl-Shift-T) to open the declaration of C/C++ classes, structures, unions, typedefs, enumerations, and namespaces.

Open type

C/C++ Browsing perspective

Use the C/C++ Browsing perspective to navigate the class and structure members of a particular project.

Browsing               perspective

Makefile editor

The Makefile editor now provides syntax highlighting, code completion, and content outlining capabilities.

Makefile               editor

Search enhancements

The C/C++ Search dialog provides context-sensitive searches from the Outline view as well as resource selection-restricted searches in the C/C++ Search dialog.

Hyperlink navigation

The C/C++ Editor supports hyperlink navigation, if enabled, by selecting Window-->Preferences-->C/C++-->C/C++ Editor Preferences. Then you can use Ctrl-Click to move to the declaration of an item directly in the C/C++ editor.

Hyperlink Navigation

Index error markers

Enable C/C++ indexing and indexer error reporting in the C/C++ Indexer properties. This helps identify projects that are missing path-configuration information.

Index error markers

Configure the indexer from the C/C++ Indexer project settings:

Indexer settings

QNX Momentics tools

These exclusive QNX Momentics tools have also been updated and improved:

Memory Analysis

The following new features have been added to the Memory Analysis perspective:

The Memory Information and Malloc Information views are now part of the System Information perspective.

System Profiler

The new features added to the System Profiler in 6.3.0 SP2 are:

3D graphs

Code Coverage

Improved reporting output and export capabilities.

Code  Coverage report

System Information

The System Information perspective has been rewritten with a new update control mechanism, and simplified Process Information and Signal Information views.

The new Process Information view:

Process Information view

The new Signal Information view:

Signal Information view

The Memory Information and Malloc Information views (formerly found in the Memory Analysis perspective) are now part of the System Information perspective.

Memory Information view

Malloc Information view

System Builder

The following new features have been added to the System Builder perspective:

System Builder  editor

What was new in the IDE in 6.3.0 SP1?

Here are some of the more interesting or significant changes made to the QNX Momentics IDE in QNX Momentics 6.3.0:

Timeline  Display