Improved Multithreaded Application Debugging (AD10)

Frozen Content

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.


Enable the use of thread naming as part of the Multithreading Support options in the Software Platform. Main, Idle and Kernel threads will be named automatically by the system. The use of meaningful names helps you instantly recognize the purpose of each thread in the application.

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.


Quickly view current statistics for all threads in your application from the Threads panel.

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.


View the state of any of the threads in your application using the Call Stack panel.

You are reporting an issue with the following selected text and/or image within the active document: