Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Momentics IDE 7.1.1 (Build 1010): Release Notes

Date of this edition: October 26, 2021

QNX Momentics IDE provides a graphical environment for developing, debugging, and profiling applications for ARMv7, AArch64, and x86_64 targets running the QNX Neutrino RTOS. You can install the IDE on the following development hosts:

  • Microsoft Windows 10 Pro 64-bit, or Windows 8.1 Pro 64-bit
  • macOS version 10.14, or macOS 10.15
  • Linux Red Hat Enterprise Linux 7 64-bit, Ubuntu Desktop 18.04 LTS 64-bit, or Ubuntu Desktop 20.04 LTS 64-bit, on x86_64 processors
    Note: The IDE isn't supported on Linux on ARM processors.

Note:

Going forward, the QNX Software Center will offer two methods of installing the Momentics IDE:

  • New installation - To install a completely new Momentics application, or if you want to install a second copy in a separate location, you can select the Add New Installation option as before.

  • Update - To update Momentics, do NOT folllow the update site approach from Momentics because Momentics cannot update itself. Instead, in the QNX Software Center, select the Momentics base installation that you'd like to update from, then select QNX® Momentics IDE (UPDATE ONLY) from the Available tab.

    The procedure to complete the update to Momentics 7.1.1 modifies some files that may trigger verification issues. These Momentics 7.1.1 verification issues can be safely ignored.


Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.

Contents

What's new in QNX Momentics IDE?

The major changes are:

  • IDE 7.1.1 is built on Eclipse 2021-06 and CDT 10.3
  • New self-update package in the QNX Software Center for Momentics IDE
  • Support for Ubuntu 20.04
  • Support for Java Runtime Environment (JRE) 11.0.10_9
  • Details tab added to Event Data view
  • Advanced decoding feature now enabled by default.

What's new in Eclipse?

Views, Dialogs and Toolbar

  • New view menu icon - The view menu chevron icon (▽) is replaced by a modern equivalent, the vertical ellipsis ( ⠇).

  • Find Actions: The improved Quick Access - The action formerly known as Quick Access has been retitled to Find Action.

    The related UI has changed a bit to improve its usage and accessibility:

    • The widget item is now a regular toolbar item (button-like).
    • An icon is shown.
    • Right-clicking on the tool item works and shows typical actions, including Hide.
    • The proposals are now a regular dialog, centered on the workbench.

  • Find Actions finds text in file contents - Find Actions is now extended by the Quick Text Search feature to show the potential text matches in file contents, also in the proposals. If the Quick Text Search bundle wasn't started yet, you may miss those matches. In this case, you can use Find Actions itself to activate the Quick Text Search by finding and selecting the Activate bundle for 'File content' proposals entry.

  • Find Actions lists workspace files - Find Actions can now list matching file names from the workspace (similar to the Open Resource dialog). Upon selection, the file is opened in the editor.

  • Inline rename for simple resources while in Project Explorer - In the Project Explorer, renaming (with the F2 shortcut or Rename context menu) will start an inline rename for normal resources when other files aren't affected by the rename.

    In cases where other files are affected by the rename, or the rename operation is customized, the rename dialog will appear as it previously did.

  • Hierarchical project layout by default in Project Explorer - To better handle multi-module, nested and hierarchical projects, the default project layout in Project Explorer view has been changed from Flat to Hierarchical. You can restore the layout to Flat using the view menu (⋮).

  • Create missing folders from the New File wizard - You can now create missing folders directly via the New File wizard, without explicitly creating folders beforehand.

  • Adjustable view fonts - The font used for tree and table views can now be customized with a font preference. This preference is called "Tree and Table font for views" and can be found in Window > Preferences > General > Appearance > colours and Fonts under the View and Editor Folders category.

  • Filter field for configuration details - A filter field has been added to the Installation Details > Configuration tab. This allows much faster lookup of specific information from the system details by showing only lines containing the filter criteria.

  • Preference to remember the last used page in search dialog - The Remember last used page check box was previously available from the Search dialog > Customize... > Search Page Selection dialog, which was difficult to find. Now, the check box is moved to the Search preference page.

    A new preference Remember last used page in the Search dialog has been added to Preferences > General > Search page. This new preference is enabled by default.

  • Export certificate during installation - When installing a software into the workbench and the software is signed but with an untrusted certificate, the dialog to review trusted certificates now shows a button to Export... the selected certificate into their own *.der file. This can facilitate a review of the certificate, for example in order to get it audited by some other external service, tool or workflow before approval.

  • Quick Search mentions max occurrences reached - The Quick Search dialog features a label to depict the number of matches that were found. Additionally, if the result set exceeds a now configurable limit, the label shows that the limit has been reached and the search process stops. Besides this new Max Results configuration option, the preference page has been overhauled with information decorators to describe the properties in more detail.

Text Editors

  • Show problem markers inline - You can now see the errors, warnings, and info markers inline in most of the text editors.

    You can enable it on the General > Editors > Text Editors preference page and set Show Code Minings for Annotations to:

    • None (default)
    • Errors only
    • Errors and Warnings
    • Errors, Warnings and Info

  • Backspace/delete can treat spaces as tabs - If you use the Insert spaces for tabs option, now you can also change the backspace and delete keys behaviour to remove multiple spaces at once, as if they were a tab. The new setting is called Remove multiple spaces on backspace/delete and is found on the General > Editors > Text Editors preference page.

  • Support for ligatures on Windows - Eclipse now supports font ligatures on Windows. It was already supported on Linux and macOS. You can specify the font with ligatures to be used by the Text editors using the preference: General > Appearance > colours and Font > Basic > Text Font.

  • Multiple Last Edit Locations - Previous Edit Location navigation (formerly named Last Edit Location) is now expanded to remember multiple edit locations.

  • Printing editor content adds date in header - Printing editor content now includes the current date in addition to the filename in the header of each printed page.

  • Open-with does not store the editor relationship anymore - The menu entry "Open With > ..." does not store the selected editor as default editor for the selected file as this was undesired in most cases and lead to confusion.

  • Horizontal Scrolling in Text Editor - You can now scroll horizontally in the Text Editor using Shift + Mouse Wheel and touchpad gestures on Windows.

Debugging

  • Collapse All Button in the Debug View - In the Debug View, now you can now use the new Collapse All button to collapse all the launches.

  • Control character interpretation in Console View - The Console View can now interpret the control characters backslash (b) and carriage return (r). This feature is disabled by default. You can enable it on the Run/Debug > Console preference page.

  • Console View now interprets form feed and vertical tab characters - The interpretation of ASCII control characters in the Console View was extended to recognize the characters: f - form feed and v - vertical tab (in languages that support it). This feature is disabled by default. You can enable it on the Run/Debug > Console preference page.

  • Termination time in Console View - The Console View label will now show the termination time of a process in addition to the launch time.

  • 'Select All' and 'Deselect All' for Import breakpoints wizard - You can now use Select All or Deselect All buttons to select or deselect all the breakpoint markers during import of breakpoints.

  • Filter null bytes from console output - The interpretation of ASCII control characters in the Console View was extended to recognize the characters: null byte. If interpretation is enabled, any null byte will be stripped and not shown in console view.

    This feature is disabled by default. You can enable it on the Run/Debug > Console preference page.

  • Find Next/Previous in Console View - In the Console View, you can repeat your last search in the forward or backward direction in the following ways:

    • Right-click in the Console view, then select Find Next or Find Previous.
    • Use the keyboard shortcuts Ctrl + K or Ctrl + Shift + K.

  • Disable All in Breakpoints view - In the Breakpoints View, you can disable all the breakpoints using the new Disable All context-menu option available on right-click.

Preferences

  • Preference to select resource rename mode - A preference has been added in the General preferences page, that allows you to select the resource renaming mode in the Project Explorer.

  • Verify installation operations against current JRE - A new option (on by default) is available in the Install/Update preference page.

  • Enable word wrap on console output - A new preference Enable word wrap is available in the Console preference page. This setting persists the current state of the "Word wrap" toggle on the Console view between user sessions. By default, word wrapping is disabled on console output.

  • External browsers on Windows - On Windows, the list of recognized external web browsers has been updated to include Microsoft Edge.

  • History for derived files - The Local history for derived files is now disabled by default. The behaviour can now be configured to the previous (enabled) behaviour in Preferences > General > Workspace > Local History page, by checking the History for derived files checkbox.

Themes and Styling

  • Interactive performance - Interactive performance has been further improved in this release.

  • Redraw is turned off by default during collapse and expand operations in tree viewer - To improve interactive performance, redraw is turned off by default during the collapse and expand operation of tree viewers. This significantly improves these operations compared to drawing the updates synchronously.

  • Show key bindings when command is invoked - It is now possible to enable this feature separately for keyboard interaction and mouse clicks. So you can enable it for mouse clicks only, for keyboard interaction only or for both. Enabling this only for mouse clicks is very helpful for users who want to learn existing key bindings.

    You can enable this on the Preferences dialog via the Show key binding when command is invoked group on the General > Keys preference page. To change this setting quickly the command 'Toggle Show Key Bindings' can be used.

What's new in CDT?

Code Analysis

  • Float Comparison - Added a new checker to verify direct float number comparison. See Bug 545704
  • Function/Methods Blacklist - Added a new checker to verify the usage of not allowed methods and/or functions. See Bug 545954.
  • Variable Initialization - Added a new checker to verify if variables are static in header file or if multiple declarations of variables are on the same line. See Bug 545977.
  • Return of local variables and addresses - Added a new checker to verify if a method or function returns the address of a local variable. See Bug 546173.
  • Variable Masking - Added a new checker to verify if a variable is masking another in a parent scope. See Bug 273252.
  • Shallow Copy - Added a new checker for object shallow copies, i.e. classes with possible external references without an explicit copy constructor and assignment operator. See Bug 545714.
  • Magic numbers - Added a new checker to detect "magic numbers". See Bug 546609.
  • No discard checker - Added new 'no discard' checker. See Bug 534420.

Debug

  • Debug Source Files View - A new view has been contributed to CDT Debug. The view displays graphically the equivalent information that that GDB command info sources displays. Open the view from Window -> Show View -> Debug Sources when you are in the Debug Perspective. The view queries GDB for all the sources GDB knows about and displays the information in a tree. The tree can be displayed in various ways, including flattening empty directories, and showing or not files not found on disk. In addition files can be double-clicked to open in the editor and there is a filter box to find files easily. See bug 530443.

  • Launch Group removed - The Launch Group, previously marked as deprecated, has been removed from CDT. The Launch Group was moved to the Eclipse Platform and substantially enhanced many years ago. See Bug 517813.

  • External refresh of DSF data model - Some GDB commands have side effects that are not trivial for DSF to handle properly. One command that is known to have unpredictable side effects is load, which is used in JTAG debugging. With the changes in Bug 568228, the last step of the JTAG launch sequence will now tell the UI to drop any cached data and refresh everything from the lower layers to ensure the proper state is shown in the UI. For DSF extenders; if the UI is out of sync with the current target state, the use of AbstractMIControl#flushAllCachesAndRefresh(RequestMontitor) might help out to trigger a refresh for the UI models.

  • Show opcode as byte sequence - The instruction opcode is shown as sequence of bytes inside the disassembly view. See Bug 572880.

  • Jump To Memory location context menu - The disassembly view got a new context menu entry to jump to memory location for the current selected entry. See Bug 573157.

  • View GDB process properties - The GDB process properties page is now populated with launch timestamp, working directory, command line and environment details. To access the page, select Properties from the context menu of a GDB process element within the Eclipse Debug View. See Bug 572944.

Editor

  • Binary integer literals - Added support for syntax colouring for binary integer literals from C++14. Such literals now use the same colour and font as other numeric literals. See Bug 558923.

  • C++14 digit separators - Added support for digit separators introduced in C++14. Now the editor correctly interpret quotation marks inside numbers as a digit separators and highlights them as part of the number. See Bug 534070.

  • Doxygen options - Added new options to customize how auto-generation of doxygen comments is performed. See Bug 333134.

Build

  • New language settings provider: Compilation Database Parser - For managed build projects, it is now possible to specify the path to a compile_commands.json and reuse existing build output parsers (GCC, MSVC) to detect all the language entries for each file (macros, includes, etc). With this, there is no need to do a full build and in fact no need to have a working build configured in CDT for indexing to work and be fully configured. See Bug 548730. (Note that for CMake projects (Core build), compilation database parsing is already done automatically. The new parser aims to give more flexibility for other project types).

  • Warning Options - Added new options for warnings not included in the 'all' category. See Bug 527143.

  • Clang Support - Removed the automatic discovery mechanism of Clang components (include, libraries an library paths). See Bug 535565 and the mentioned duplicates.

  • Tool-chain integration - Options of value type libs and userObjs now respect the applicabilityCalculator and the commandGenerator settings. If these settings are set on your custom tool-chain integration, please make sure that the integration still works as intended after an upgrade.

  • Docker support using Windows - When using Windows, mounting file system paths and Docker volumes is now possible again. See Bug 538147.

  • Visual Studio 2017 and 2019 - Support for detecting the Microsoft Visual C++ toolchain part of Visual Studio 2017 and 2019 has been added. Support for earlier versions has been removed. This support is still considered experimental since many basic features are missing for this CDT toolchain. See Bug 567169.

  • New build console actions - The CDT build console has two new actions in its toolbar. See also Bug 486033 and Bug 568926.

  • Headless builder accepts -help without workspace - In order to help the users to view the -help display without defining a workspace, a new bundle has been created in order to avoid the automatic start of the resources bundles. The new bundle, that only contains a small wrapper class, is called org.eclipse.cdt.managedbuilder.headlessbuilderapp. See Bug 571566.

  • One failed build configuration fails build with headless builder - Until recently, if a single build configuration in the set of build configurations to build had an error marker, the exit code of the headless builder would only be 1 if that configuration was built last. In CDT 10.2, this has changed so that regardless of the build order, the failed build configuration will still have the headless builder application exit with a non-zero exit code. See Bug 571458.

  • Only the CDT builders are invoked when running the headless builder - Until recently, depending on how the headless builder was invoked would affect whether just CDT or other builders would run when using headless build. In CDT 10.2, this has changed so that regardless the command line options used only the CDT builders are invoked. See Bug 571458.

  • Headless builder can now remove projects from workspace - There are new two options based on the import options that will be executed before a build:

    • -remove /path/to/project - will remove a single project from workspace.
    • -removeAll /path/to/projectTree - will remove a tree of projects in this path.

    Both options are more precedence than the import options. That means if you import a project and remove it or the containing project tree in the same command, the project will not be imported. Otherwise it is possible to combine the options with importing in this way:

    • -importAll /path/to/projectTree -remove<All> /path/to/projectTree/subProject<Tree>
    This will import a project tree and remove the sub project or sub project tree. See Bug 573512.

  • Add verbose option for progress monitor of headless builder - During operations, such as remove projects, the subtask of a progress monitor has useful information for users. However during a normal build there ends up being lots of output that is of little value. See Bug 573512

  • Build command arguments moved to Behaviour tab - The free form text box to customize build arguments has been moved the the Behaviour tab and split from the Build command text box. See Bug 568397.

  • Build Targets (Make) view supports working sets - The Build Targets (Make) view now supports working sets allowing you to focus on what you are actively working on. See Bug 338776

  • Build Targets (Make) view saves and restores its UI state - The selected items, expanded folders and scroll positions of the Build Targets (Make) view are saved when closed and restored when reopened. See Bug 573619

Terminal

  • Terminal Serial Connection support arbitrary baud rates - Connections using the serial terminal now support arbitrary baud rates, choose from a drop-down of common and widely supported speeds, or type a custom value if connected hardware supports it. See Bug 543122.

  • Support for 4, 8 and 24-bit colour in Terminal - The terminal now supports escape sequences for 4, 8 and 24-bit colour. See the Wikipedia article for some general details or the Bug 540737 description for a little script to demo the feature. See Bug 540737 and Bug 549697.

  • Editing the colour palette (including better dark theme support) - The colour palette of the terminal can now be edited. This allows users to change foreground and background colours as well as the colours used in the 4-bit colour palette. The defaults used for foreground and background will be automatically set based on use of the Dark or Light themes in Eclipse. See Bug 549697.

  • Invert colours in current terminal - Sometimes, for example, when connecting to a remote system, the prompt string makes assumptions on the colour scheme that results in an almost unreadable terminal. The terminal has a preference setting to invert the background colour. Now a new entry in the pop-up menu allows a user to temporarily modify the setting. See Bug 570775

  • Rename Terminal Tab - The name in the tab can be changed, either with ANSI escape codes or by right-clicking and choosing Rename Terminal. See Bug 341721.

  • Open files and links with Ctrl + Click - When pressing the Ctrl key (Cmd key on mac), the word under the mouse pointer is highlighted with an underline and by clicking it the terminal guesses how to open it:

    • a web link is opened in the configured browser.
    • if it can be resolved to a file in the workspace, that file is opened (Linux only: the terminal keeps track of the current working directory of the shell to resolve relative paths).
    • otherwise the user is prompted with the open resource dialog, pre-filled with the word.

    See Bug 563015. Also, see Bug 573645 for how to detect current path on Windows and macOS.

  • Automatically populate Terminal menus and dialogs with WSL - When running on Windows the WSL (Windows Subsystem for Linux) will be queried to populate Show In and New Terminal dialogs. The automatically populated commands can be edited in Preferences -> Terminal -> Local Terminal. See Bug 573712.

  • Local terminals remember the working directory - When restarting the Eclipse IDE, the terminals will remember which path to start in. On Linux, the path will be the detected path of the shell at shutdown, on Windows and macOS the path will be the initial path that shell was created with. See Bug 453696. Also see Bug 573645 for how to detect current path on Windows and macOS.

  • Local terminals remember the shell, args and other settings - When restarting the Eclipse IDE, the terminals will remember which shell and arguments to use. See Bug 460495.

  • Terminals remember which terminal view they were part of - When restarting the Eclipse IDE, the terminals will remember which view to recreate themselves in. See Bug 573646.

  • Windows Pseudo Console (ConPTY) in preview mode - On Windows the terminal uses the amazing WinPTY library to provide a PTY as Windows did not come with one. For the last number of years, Windows 10 has a native version called Windows Pseudo Console (ConPTY) which programs such as VSCode and Eclipse Theia have converted to using, in part because of the fundamental bugs that can't be fixed in WinPTY. The WinPTY version in Eclipse is also quite out of date, and hard to develop as it is interfaced to by JNI.

    For Eclipse 2021-06 / CDT 10.3.0 the Eclipse CDT will be releasing a preview version of the terminal that will use ConPTY.

    In this first version ConPTY won't be enabled by default, it requires system property org.eclipse.cdt.core.conpty_enabled=true to be set. i.e. start Eclipse with -vmargs -Dorg.eclipse.cdt.core.conpty_enabled=true command line argument to Eclipse or added to the eclipse.ini.

    In a future version the default will change to on if available, so to force it off use: org.eclipse.cdt.core.conpty_enabled=false.

    See Bug 562776 for details on the implementation.

Parser

  • Deduction guides - Parser support has been added for C++17 constructor template deduction guide. See Bug 541239

  • __has_include - Parser support has been added for C++17 __has_include as well as the language extension __has_include_next. See Bug 566918.

Code Templates

  • Templates are sorted - When a new source file is created from a template, the available suggested templates are sorted in alphabetical order first by template key, then by template name between same content type. See Bug 572755.

  • Templates selection is persistent - If a different template has been selected than the default one from the top of the list, this selection will be recorded. Next time when a new file is created from template with same extension, the previous chosen template will be selected by default. See Bug 573204.

Bug Fixes

Fixed issues

General

  • We fixed an issue where using some combinations of keys in the Console view when it contained mkqnximage output caused an I/O error, making the view freeze. (Ref# J2805293)

  • We have implemented a more robust handling of code coverage, fixing an issue where code coverage data was showing 0% in some cases. (Ref# J2891320)

  • We fixed an issue where the hover help content was displayed incorrectly. (Ref# J393841)


    Note:

      To see this fix, you must install the latest SDP documentation update.


  • We have updated the Code Analysis rules for the ConnectAttach() flag. (Ref# J2875952)
  • Performance for large .kev files has been improved.
  • Added additional 64-bit event support.
  • We have improved the analysis session import from Gmon data. (Ref# J1686621)
  • You may now create VM Targets from the Launch Bar dropdown. (Ref# J2887769)

Debugging

  • We fixed an issue where the Modules view sometimes did not show the most recent state of loaded libraries during debugging. (Ref# J393844)

  • We fixed an issue that prevented the embedded help viewer from working due to a search process freeze. (Ref# J2903729)

Memory Analysis

  • We fixed an issue that would cause an error to pop-up in the the Analysis Sessions view when selecting the Process Information option.

Ubuntu 20.04

  • The IDE windows containing check boxes now correctly display check marks. (Ref# J2887865)
  • The Memory Analysis and Valgrind settings menus no longer contain user interface errors, causing on-screen text to overlap. (Ref# J2887867)

Known issues

The QNX Momentics IDE 7.1 release contains some known issues, many of which were also present in earlier IDE releases. These issues are listed below. Not all items listed are bugs.

General

  • Once the Momentics 7.1.1 (Build 1010) installation is complete, the update will still appear under the Available tab. (Ref# J2907671)

    Workaround: You can ignore this update.

  • After you install QNX SDP 7.1 and QNX Momentics IDE 7.1, if you configure your Floating License Server with the environment variable setting of QNXLM_LICENSE_FILE=@127.0.0.1 or with lmutil, the IDE may fail to start if your license server is out of date. Specifically, the IDE displays a dialog saying the license check has failed, and prints an error message to the console. (Ref# J2871194)

    Workaround: Update your Floating License Server to the newest version. For instructions on doing so, see the Upgrading from release 11.13? section in the Floating License Server release notes.

  • If you use Set Priority/Scheduling Algorithm in the Target Navigator to change a process's priority and scheduling algorithm, and then select this item again for the same process, the default settings might be displayed instead of the current ones. But, if you press OK, the settings aren't changed back to the defaults. (Ref# J537153)

  • The text in the IDE hover help is sometimes truncated or formatted incorrectly. For example, if you hover the pointer over the name of a library function that takes a function as a parameter, such as pthread_create() or InterruptAttach(), the function prototype in the hover help is truncated at the first closing bracket in the parameters list, which is the closing bracket for the function parameter, not the proper end of parameters list. (Ref# J929140)

    Workaround: Look up the function in the QNX Neutrino C Library Reference.

  • The Eclipse editor doesn't behave correctly on very long lines (more than 4500 characters). At the end of a long line, the cursor doesn't position itself properly between characters, selections and changes are very slow, and the column number is reported incorrectly. (Ref# 29586, 21053; Eclipse-CDT PR 68116)

  • Context-sensitive help doesn't work. If press F1, you should get a list of relevant topics in the IDE Help. When you click on a link, it incorrectly goes to a topic called Editors. (Ref# J393737)

    Workaround: Select Help > Help Contents and use that dialog box in the Help landing page to search and read information in the Help.

  • If your development host has an installation of a previous SDK version supported by the IDE 7.1 (i.e., QNX SDP 7.0, 6.6, or 6.5.0 SP1), parts of the legacy help are incorrectly shown alongside the new help in the IDE. For example, if you've installed QNX SDP 6.5.0 SP1, under Help > Help Contents, you'll see the entire QNX SDP 7.1 help but also parts of the 6.5.0 SP1 help, such as the QNX Momentics Phindows Connectivity Tool User's Guide. (Ref# J2160532)

    Workaround: To view offline help for a previous QNX SDP version, use the IDE shipped with that version.

  • If you select a QNX Momentics IDE installation on the QNX Software Center and then navigate to the Available tab, you may see some packages that don’t apply to your installation. (Ref# J2814968)
    Workaround: Ignore the packages displayed in the Available tab.

  • If you install the QNX Momentics IDE for all hosts (i.e. Windows, macOS, or Linux), some files may get overwritten causing verification errors. (Ref# J2879279)
  • If you build a project that contains errors, and then build the project again without making any changes, the errors in the Problems tab dissapear until the project is cleaned. (Ref# J2864334)

System Profiler

  • The parser used by the IDE to read kernel event log (.kev) files doesn't support %Lf and %LF format conversions, meaning any long double data values might not be read properly depending on your target architecture. (Ref# J2747522)

    Workaround: Use traceprinter to extract the necessary data from any .kev files that contain %Lf and %LF conversions.

Memory Analysis

  • Disabling memory error-checking or memory tracing for an active Memory Analysis session doesn't work.

    Suppose you configure a program to use Memory Analysis and check the Enable error detection box in the Memory Errors panel in the Memory tab of the launch configuration. If you then launch the program, open the resulting session (from the Analysis Sessions view), access the Settings tab, and uncheck the same box in the Memory Errors panel, the IDE continues to record memory error data in the Memory Problems view.

    The same problem occurs if you uncheck Record memory allocation/deallocation events through the Memory Tracing panel for an active session (assuming you had checked this box in the launch configuration before launching the program).

    (Ref# J583859)

  • If you check Enable check on realloc()/free() arguments in the Memory Errors part of Window > Preferences > QNX > Memory Analysis > Memory Errors, click Apply, close the window and then open it again, this setting is no longer enabled. (Ref# J510803)

    Workaround: You should change this setting through the Tools tab in the launch configuration, under the Memory Errors panel within the Memory Analysis controls.

  • In the Settings tab of the Memory Analysis editor, the dropdown panels for adjusting configuration fields (Memory Errors, Memory Tracing, and Memory Snapshots) don't work. Even when the process is running, if you click the arrow to expand a panel, the arrow changes but no controls appear. (Ref# J1258690)

    Workaround: Adjust the Memory Analysis settings through the launch configuration before starting the session. If you need to see the effects of different settings, run multiple sessions.

  • The first time you right-click an error listing in Memory Problems and choose Show Backtrace, if you then double-click a stack trace entry in Memory Backtrace, the IDE doesn't open the source code to the matching line. This problem is seen if you do these actions for the first time since starting the IDE (even if Memory Backtrace is open but not in focus within its display area) or since explicitly closing the view. (Ref# J443141)

    If you click the Memory Backtrace tab to switch focus to that view, the double-click navigation feature works the first time you select an error in Memory Problems (and Memory Backtrace is updated with the stack traces).

    Workaround: Double-click the error in the Memory Problems view to open the related source code.

C/C++ development

  • If you attempt to import a project from a previous QNX SDP version's workspace to a QNX SDP 7.1 workspace, you will be unable to build it due to there being no common build variants between the two versions. (Ref# J2887824)

    Workaround: Add one or more variants by right-clicking the project and navigating to Configure > Add Variant, or navigate to Project > Properties on the menu bar and add variants through the QNX C/C++ Project Properties.

  • Special keys such as 'Enter', 'Backspace', or any 'Ctrl+' combinations cease to work after creating a new project. (Ref# J2887741)

    Workaround: Switch focus from the editor, and return to the project.

  • If you import a non-IDE project that uses managed recursive makefiles, the IDE incorrectly modifies the makefiles. The project won't compile and you'll see errors about variables not being resolved. (Ref# J1685684)

    Workaround: Modify common.mk to include .qnx_internal.mk after all variable assignments. For example:

    INSTALLDIR=$(firstword $(INSTALLDIR_$(OS)) usr/bin)
    
    LIBS += EGL GLESv2 screen m
    
    include $(MKFILES_ROOT)/qmacros.mk
    ifndef QNX_INTERNAL
    QNX_INTERNAL=$(PROJECT_ROOT)/.qnx_internal.mk
    endif
    include $(QNX_INTERNAL)
    
    include $(MKFILES_ROOT)/qtargets.mk
    

    Note: This issue does not apply to projects that use managed recursive makefiles but are created in the IDE.

Debugging

  • The parent process unexpectedly terminates when you select the same launch configuration to debug a child process. This happens if you follow the Debugging a child process instructions in the IDE User's Guide. In this setup, it's recommended to put a breakpoint in the parent right after the fork() call and put a line in the child, right after this call, to send a SIGSTOP signal to itself. But after the parent and the new child have stopped, if you select the Attach launch mode and the same launch configuration that you used to debug the parent, then select the child in the Select Process window and click OK, the parent process terminates. This prevents you from debugging the parent and child concurrently. (Ref# J2575687)

    Workaround: Select a different launch configuration for debugging the child. If necessary, copy the parent's launch configuration and rename it. The parent won't terminate when you attach another instance of the debugger to the child using the other configuration.

  • Watchpoints aren't supported for ARM. Although the IDE lets you create a watchpoint, it won't work correctly and could cause instability with your debugging session. (Ref# 12136, 259564, J463656)

  • Disconnecting from an executable while it's being debugged causes it to terminate. (Ref# 259773, J393846)

    Workaround: Select Window > Preferences > C/C++ > Debug > GDB. Under Termination, clear the checkbox labeled Terminate GDB when last process exits.

QNX Virtual Machine targets

  • If you delete a QNX VM from the Project Explorer view, the IDE deletes the files in the output and local directories of the VM's project, even if you leave Delete project contents on disk unchecked. (Ref# J2809875)

    Workaround: Delete the project from the Target Navigator view. The IDE uses a different dialog and the setting for deleting project contents works.

Unsupported C++17 features

Unsupported C11 features

Starting the IDE

To start the IDE:

  • on Windows, choose QNX Software Systems > QNX Momentics from the Start menu, or use the desktop icon
  • on macOS, click the icon labeled QNX Momentics IDE from the launchpad
  • on Linux, run IDE_base_dir/qde, where IDE_base_dir is where you installed the IDE package

    Note: This path is probably different from that for QNX SDP 7.0. In QNX SDP 7.0, the default path is ~/qnx/qnxmomentics/qde, but in SDP 7.1, it's ~/qnxmomenticside/qde.

Getting started with the documentation

The IDE's help system contains an extensive set of HTML documentation.

To access the help system, start the IDE, then go to Help > Help Contents. The left-side navigation in the help window contains links to the various HTML booksets that accompany the Eclipse platform and your QNX SDP installation. Documentation about the IDE itself is provided in the QNX Momentics IDE User's Guide.

Technical support

For information about technical support for any QNX product, see Overview in the Developers or Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.