Developing, Debugging and Analyzing Performance with the QNX Momentics IDE
Overview
Learn how to use the IDE in the QNX® Momentics® Tool Suite to:
- Develop your applications
- Debug complex problems
- Analyze performance issues of complete systems
By the end of this course, you will have used the IDE to work with many sample programs and systems, either self-hosted or using cross-development, and will have learned to apply these skills to real-world applications.
Prerequisites: You must have a good working knowledge of C or C++. A general understanding of programming under the QNX® OS is an asset.
Course Modules
QNX OS Architecture
An overview of the QNX OS architecture, covering what the microkernel and the process manager do. We talk about standards, protected address spaces, the process/thread model, timing and scheduling. We also introduce various types of IPC, synchronization, what a resource manager is and where shared objects fit in.
IDE Basics
Essential background for anyone working with the IDE in the QNX Momentics Tool Suite. Starting with the central concepts of the IDE, you'll become adept at navigating in the IDE and configuring it to suit your needs. We then talk about projects, workspaces and the host-target model, introducing the various ways to interface with your target. We finish with a handful of preference settings that can make your life easier and recommendations for additional documentation.
Managing C/C++ Projects
The basic container for code in the IDE is a project. Here, we cover the two types of projects for C/C++ code: a project where the entire contents and build structure are up to you and a project with a predefined structure that supports multiple platforms. We also cover both header file and project dependencies and discuss how to insert code from elsewhere into your projects.
Editing and Compiling
This module focuses on the QNX® Momentics® IDE code editor and details many powerful, time-saving features. We also look at how to build code and how the IDE identifies problems with builds.
Running and Debugging
A look at launching programs with either "run" or from the debugger. We explain the fundamental debugging features, including stepping through code; setting breakpoints; performing post-mortem debugging; attaching to a running process; debugging shared libraries; and examining data.
Debugging Memory Problems
Memory problems, such as memory corruption, can be subtle and uncaught in testing. In this module, we explore how the QNX Momentics IDE tools can find memory corruption, leaks and excessive memory consumption.
Application Profiling
Learn how to use the application profiler in the QNX Momentics Tool Suite to profile a single process and pinpoint which parts of your code are consuming the most CPU at either the function or source-line level. You can then use this information to make your code more efficient. We cover both live and post-mortem profiling in this module.
Code Coverage
Determining the effectiveness of a test suite takes work. In this module, you'll learn how the IDE tools can determine how much of your code has been executed, broken down to the source line.
System Profiling
With system profiling, you can examine your entire system to see what's going on with kernel-level detail. We cover what is happening on the kernel side and how to do the necessary setup. Next, we look at how to log the activity through the QNX Momentics IDE, either from the command line or under program control. Then, we look at how to use the IDE's system profiling perspective to analyze the resulting data. We finish with instructions for inserting your own data into logs.
Dates and Locations
All BlackBerry QNX training courses are hands-on, instructor led using real-world examples to give your development team the grounding they need in QNX best practices so that you get the most out of your investment.