Until now (Green Hills says) the state of the art for debugging Linux was a sad combination of print statements, command-line tools, and rudimentary graphical debuggers that are difficult to learn, setup, and use; and that lack the powerful control and visibility that modern electronic systems demand. “This lack of high quality development tools presents a tremendous time-to-market and product robustness barrier to IoT designers”.
Green Hills presents its MULTI as enabling developers to seamlessly control and debug all aspects of an embedded Linux system, including the Linux kernel, kernel threads, user mode threads and processes, and interrupt service routines (ISRs), all from a single tool. Developers can simultaneously interact with these entities in a single window or in separate windows per instance. MULTI enables developers to quickly master the most difficult device development challenges, including kernel panics, execution and data flows between user processes and the kernel, early hardware bring-up, device drivers, and performance analysis and tuning.
Capabilities of the Linux debugging and development suite include:
- Support for all modern embedded Linux versions, regardless of download source or Linux support vendor, and including Android distributions
- Builds on the Green Hills Probe JTAG device for “stop-mode” debugging of kernel, ISRs, and user mode applications
- Exploits I/O peripheral connections for “run-mode” debugging of applications, where the CPU is never halted
- Fully multicore/SMP aware
- Advanced visualisation and manipulation of Linux kernel data structures, including shared memory regions, semaphores, and message queues
- Advanced run control features available in stop-mode and run-mode enable seamless debugging of newly created threads and processes, zero-overhead breakpoints to enable visibility without intrusiveness, and the ability to debug system calls based on specific calling threads
- Full visibility into application adjuncts, including shared objects and libraries, loadable kernel modules, and other intercommunicating applications
- Powerful software browsing, editing, and exploration capabilities
- Support for GNU GCC C/C++ compilers with optional support for Green