Improved Multithreaded Application Debugging (AD10)
Altium Designer 10 brings with it a series of improvements to the support for POSIX multithreading – collectively allowing multithreaded applications to be debugged in a far more intuitive, streamlined fashion.
Named Threads
The maximum number of threads supported in a multithreaded application can range between 8 and 255. When debugging, default thread identifiers – thread_0, thread_1, thread_2, and so on – can quickly become meaningless. A beneficial improvement is the ability to now gives threads meaningful names, for the purposes of debugging.
The following functions, defined as part of the POSIX threads interface header file pthread.h
and part of the Software Platform, are available to set and get the name for a thread:
extern int pthread_attr_setname(pthread_attr_t attr, *const char *name);
extern int pthread_attr_getname(const pthread_attr_t attr, *char *name);
Once you have defined thread names as required, their use is determined by the state of the Thread_Name option, part of the group of options associated with the Multithreading Support service in a Software Platform file (*.SwPlatform
). Assigned thread names are displayed in both the Threads and Call Stack panels.
Certain threads will have system-assigned names, such as the Main, Idle and Kernel threads. Threads that have not been specifically named will display blanks and threads that have not been created will display the entry n.a.
Threads Panel
The RTOS panel has been replaced with a new Threads panel, providing a greater range of statistical information for each thread in your multithreaded application. Access this panel from the Embedded panel-access button, at the bottom-right of the main design window, during a debug session.
The panel has three areas of information – Threads, System Status and Info Messages. Configure which of these is displayed either from the right-click menu, or by using the controls at the top-right of a section.
Enhanced Call Stack Panel
The Call Stack panel has been enhanced to enable you to view the state of each thread in a multithreaded application, whenever the processor is paused. Use the drop-down associated to the Thread field to quickly switch between threads. If the option to use named threads is enabled as part of the options for the Multithreading Support service, these names will be displayed in the list.