Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
Products
QNX Momentics
Debugging and Optimization

Debugging and Optimization

QNX Software Systems
Tools
Code Development
Debugging + Optimization
Application Analysis
Target System Tools
Photon Application Builder

Related resources
Product briefs
Whitepapers
Webinars
Product documentation
BSP supported hardware

QNX Momentics development suite provides a powerful, unified debugging environment regardless of programming language. The debugger's intuitive interface is completely integrated with the other IDE tools, giving developers flexibility to best address the problems at hand.

Views from any of the other IDE tools can be opened directly within the source debugger, extending its compatibility for a complete perspective on the application's state and data. It also:

  Source debugger screenshot

System profiler

Go beyond conventional debugging and code analysis by analyzing how all the components in a complex realtime system interact with each other using the QNX Momentics system profiler.

Using the system profiler, developers can resolve timing conflicts, pinpoint deadlocks, root out logic flaws, detect hidden faults in software and hardware, and fine-tune application performance — whether it's running on a uniprocessor or multiprocessor system. Developers can also:

Visualize events to quickly pinpoint problems

The system profiler can display an enormous amount of information, including kernel calls, hardware interrupts, thread states, messages, and scheduling activities. But it also gives precise control over which events are recorded and when, allowing developers to focus on areas of interest. It also includes event filtering and display options, so it's easy to "zoom in" on performance-degrading hotspots and view complex interactions at a glance.

Debug and optimize multi-core systems

The system profiler works with QNX Neutrino, the first RTOS to support Symmetric Multiprocessing (SMP). It is therefore aware of which CPU is running which thread and provides easy-to-read color coding. For example, use the system profiler to detect resource contention or incorrect behavior in code ported from single-core devices. A CPU migration summary indicates how much a particular thread has moved from core to core as part of the kernel's scheduling – useful for detecting thrashing or caching issues. The inter-core messaging summary tells you how much message passing is occurring between cores in the system – useful for detecting tightly coupled threads. In each case, the system profiler can display information on a per-CPU basis.

Understand what's happening and why

A question often asked when looking at a system trace is, "Why is this thread running at this particular time?" The system profiler provides a 'why running' tool that lists the series of events that led to the current state of a thread, tracing the series right back to the beginning of the trace if need be. Similarly, the system profiler provides client server statistics including the amount of time a client needs directly and how much it requires from the servers it uses. The thread state snapshot tool in the system profiler also gives a summary of every thread and its state at a selected time — know the current state of everything in the system at a given point in time.

Create your own custom filters

If the stock event filters provided by the instrumented kernel don't suit the behavior that needs to be captured, no problem: the kernel supports dynamic, user-defined filters for complex, application-specific conditions. Developers can focus on events of interest and reduce the volume of data for easier analysis.

  Source debugger screenshot