The IDE works with several third-party tools and contains its own features that help you debug improper program results, process hanging, or process crashing.
Guidelines on selecting a tool for each use case are given below. The debugging capabilities of these tools are listed in Integrated tools.
There are many IDE tools that can help you find logic errors in program code or memory corruption issues. Generally, you should first launch the application with the debugger attached and try to reproduce the bad behavior. If you can't reproduce it, you can wait until you next see the improper results, then attach the debugger to determine what state the program is in and how it got there. For multiprocess programs, you can debug a child process.
When you observe an unresponsive application, the IDE can help you inspect the application's current state. This way, you can learn which processes are hanging without having to rerun the application and attempt to reproduce the problem.
The quickest way to start investigating a hanging process is to view the current target machine state through the QNX System Information perspective. Here, the System Resources view lists CPU usage by process, so you can see right away which processes are consuming excessive resources or no resources. You can see thread-level details in the Process Information view, including thread states.
When a process crashes on a machine running dumper, a core file is generated and the IDE gives you the option of debugging that core file. If you choose to do so, the IDE downloads it from the target to the host's workspace and launches the debugger. The core file contains the final state of the program, allowing you to see what happened.
If you can reproduce the crash, it's better to launch the application with the debugger attached and do so. The postmortem debugging workflow involving a core file is intended for crashes that are hard to reproduce or for when you don't have access to the device on which the crash occurs.