Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Momentics IDE 7.0.4 (Build 7.0.4 201905030129): Release Notes

Date of this edition: March 18, 2020


Note:

These release notes apply if you're using QNX Software Center version 1.6 or later, in which QNX Momentics IDE is packaged separately as a baseline package. In this case, you can install version 7.0.4 of the IDE as you would install QNX Software Development Platform (SDP). For more information, see the QNX Software Center User's Guide.

If you're using QNX Software Center 1.5.1 or earlier, the IDE is packaged with this application. To access the corresponding IDE 7.0.4 release notes, access the QNX website, log in to your myQNX account, then navigate to the earlier releases documentation page (http://www.qnx.com/download/group.html?programid=36540).


QNX Momentics IDE provides a graphical environment for developing, debugging, and profiling applications that run on the QNX Neutrino RTOS on a separate target system. You must install QNX Momentics IDE 7.0.4 onto a host (development) system with one of the following host OSs:

  • Microsoft Windows 10 Pro 64-bit, Windows 8.1 Pro 64-bit, or Windows 7 Professional 64-bit
  • macOS version 10.10, 10.11, 10.12
  • Linux Red Hat Enterprise Linux 7 64-bit, or Ubuntu Desktop 16.04 LTS 64-bit, on x86_64 processors
    Note: The IDE isn't supported on Linux on ARM processors.

Note: Known issues that have been added since the last release are highlighted below with this icon: New:

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 in this version?

This version of the QNX Momentics IDE fixes issues found in the IDE 7.0.3 and earlier releases.

Application Profiler

  • The Application Profiler twistie in the Tools tab of the launch configuration dialog now resizes automatically when you change the Profiling Method or Profiling Scope setting, so that all fields remain visible. (Ref# J1681256)
  • In the Application Profiler controls in the Tools tab, the Sampling and Call Count Instrumentation profiling method has been renamed to Sampling and a separate checkbox has been added for enabling call counts. When you do this, the IDE warns you that the binary must be built for profiling using the -p option. (Ref# J1698881)
  • The Execution Time view shows an extra, non-existant thread when you profile an application using the Sampling method. (Ref# J2616870)
  • The function table displayed in the Execution Time view shows inaccurate and/or impossible data for some functions when you profile an application using the Functions Instrumentation method. (Ref# J2617024)

General

  • An error message of Topic not found is displayed when you click some Open Related Help links in the Cheat Sheets. (Ref# J1683413)
  • The IDE Welcome page has a broken link to the Code Coverage cheat sheet. (Ref# J1684235)
  • An error window saying Could Not Accept Changes appears when you open the properties dialog for a QNX Legacy Recursive Make project and click one heading and then another in the left-side navigation. (Ref# J2637799)

System Information

  • In the Thread Details table of the Process Information view, the Last Core column always displays 1 even for idle threads on other cores with a CPU Affinity setting that does not include core 1. (Ref# J2628202)
  • The stack size is not displayed in the System Summary view, and all of the stack memory is listed as Unallocated in the Memory Information view, for any target process. (Ref# J2669590)

System Profiler

  • Using the IDE, there's no way to trigger the generation/collection of security events. In a kernel event trace log configuration, whether the Security tab is set to Fast, Wide, or Event Specific, no security events are found in the generated log. (Ref# J2632130)

Known issues

This IDE version 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

  • New: The auto-update feature for this release prompts you to restart the IDE, but the restart fails and may display an error dialog. (Ref# J2794115)

    Workaround: Restart the IDE manually.

  • On Linux, many undefined symbol: menu_proxy_module_load messages might be displayed when you start the IDE from the command line. (Ref# J337353)

    Workaround: Execute this command: sudo apt-get install appmenu-gtk:i386

  • On Windows, if the IDE window spans two monitors, and you lock and then unlock your computer, the window is restored to be the size of one monitor. This is a general problem on Windows. (Ref# 28653)

  • When you do a build on a Windows host, stdout and stderr sometimes overlap, resulting in misleading error and warning messages. This is a general problem on Windows. (Ref# 15106)

  • Sometimes the IDE becomes unresponsive during indexing operations.

    Workaround: Restart the IDE.

  • 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 IDE no longer includes an Subversion plugin. You can install one such as Subversive or Subclipse.

  • The text in the IDE hover help is sometimes truncated or formatted incorrectly. (Ref# 259496, J393841)

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

  • We pre-index our online documentation, but the first time you search for anything in the IDE's Help system, it has to combine the indexes (and index any Eclipse documents that haven't been indexed). This should take less than a minute.

  • You might see a message like this when you start the IDE:
    Subscription License Expired -
      Your QNX License could not be obtained, some QNX functionality will be disabled.

    This message appears only if QNX Software Systems has a contract with you to support server-based licenses. It indicates one of the following:

    • You need to configure your license server.
    • More users are trying to use the IDE at the same time than there are available licenses for.

    (Ref# 51688, J236666)

  • 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)

  • If the IDE can't open the browser to display the documentation, it may give you an error message of:
    An exception occurred while launching help. Refer to the log for more details.

    It's possible the IDE couldn't find your default browser. Check the web browser listed in your preferences (see Window > Preferences > General > Web browser) to make sure it's a browser that's installed on your system.

    If this doesn't fix the problem, check the log file; see Help > About QNX Momentics IDE > Configuration Details > View Error Log. If you've installed the Eclipse SDK, use the Error Log view. (Ref# 29971)

  • 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.0 (i.e., QNX SDP 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.0 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.

Application Profiler

  • The Application Profiler can allocate CPU time to the wrong line if you're profiling code that has profiling and debugging information, and if you linked against a static library that doesn't have profiling and debugging information. (Ref# 21024)

    Workaround: Build everything with debugging information, or use -gdwarf-2 instead of -gstabs.

System Information

  • If you access the Connection Information view and select a server process in the Target Navigator, you may get unpredictable behavior if the server doesn't properly handle IO messages. Specifically, if the server doesn't return an error for these messages or otherwise ignores them, this may cause qconn to stay reply-blocked and in turn cause refresh failures in the IDE or other unexpected results.

    Many other QNX system information tools, for example, the command line pidin fd, send query messages to servers on the target system. Your server processes must handle all expected and unexpected messages gracefully to avoid causing unpredictable behavior with these tools. (Ref# J1689419)

Memory Analysis

  • On Windows, in the Advanced Settings part of the Memory Analysis controls (which are found under the Tools tab of the launch configuration), the default path name might start with a backslash. (Ref# J500345)

    Workaround: Change the leading backslash to a forward slash.

  • 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.

  • If you make the period for performing memory snapshots too short, the Memory Events view might not show all allocations and deallocations. (Ref# J577315)

    Workaround:

    1. Run the program through the IDE with the Memory Analysis tool enabled in the launch configuration.
    2. When the program finishes, use the Target File System Navigator view to copy the /tmp/traces.rmat file from the target to the IDE workspace.
    3. In the QNX Analysis perspective, select File > Import > QNX > Memory Analysis Data to run the import wizard and import the traces.rmat file into a new Memory Analysis session.
  • If you use the Memory Analysis tool with the control thread enabled, no information is returned for bins, bands, or usage. (Ref# 252156, J393820)

    Workaround: Disable the control thread under the Advanced Settings of the Memory Analysis controls.

  • When you request the Memory Analysis service to terminate, it might take longer than expected. (Ref# 46228)

  • In the QNX Analysis perspective, if a function causes a buffer overflow, memory leaks aren't detected correctly. (Ref# 42312)

  • You might see some allocations take place before your application's main() function starts. This is normal; some of the system libraries allocate space as they're initialized. (Ref# 29698)

  • The Memory Analysis tool changes the behavior of a program that uses fork. (Ref# 29032)

    Workaround: If your program uses fork, you must disable the control thread (from the Launch Configuration, select Tools > Memory Analysis > Advanced Settings and disable Create control thread). Note that it's not possible to attach to this type of process because Memory Analysis needs to run a control thread to support process attachment.

  • 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 start a new IDE session with a new workspace, go to the C/C++ Projects perspective, add a target navigator, and then add a valid target, the target is shown as available and its name is as expected, but you don't get the expansion button to display the list of processes on the target. (Ref# J572145)

    Workaround: Click in another view, or switch to another perspective. When you return to the target navigator, the expansion button appears.

  • If the makefile for a regular C++ make project uses implicit rules such as the following:
    all : cc2
    cc2 : cc2.o
    cc2.o : cc2.cpp

    then the link stage doesn't work properly. (Ref# 62006)

    Workaround: Use an explicit rule for linking:

    cc2 : cc2.o
            $(CXX) -o cc2 cc2.o -lang-c++
  • The IDE sometimes ignores an explicit build request for a project, such as those invoked by using the Build Project action in the C/C++ Project view's right-click menu, if the project uses an externally built library. (Ref# 20966)

    Workaround: Use an explicit target in the make command.

  • 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

  • New: 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)

  • The Modules view might not show the most recent state of loaded libraries during debugging. (Ref# J393844)

    Workaround: To force it to update to the latest state, refresh the view by using File > Refresh.

  • The Modules view doesn't show information for the executable being debugged. (Ref# 259524, J393842)

  • 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.

Getting started with the documentation

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

To start the IDE:

  • on Windows, choose QNX > QNX Momentics from the Start menu, or use the desktop icon
  • on macOS, click the icon labelled QNX Momentics IDE from the launchpad
  • on Linux, run base_dir/qnxmomentics/qde, where base_dir is where you installed the software

To access the help system, choose 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.


Note: The build ID shown in the product information accessed through Help > About Momentics IDE is different than the one shown in the properties of the IDE package in QNX Software Center. This is expected.

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.