Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Embedded

In-circuit debugger allows complete system visibility

Posted: 16 Jun 2010     Print Version  Bookmark and Share

Keywords:debugger  Android  processor 

Lauterbach GmbH's TRACE32 in-circuit debugger now includes support for debugging and profiling of the Android platform.

Device drivers, native libraries and several native applications can be debugged at the same time. For CPUs with real time trace capability, it is possible to run comprehensive run-time profiling analysis on native applications up to function and source line level, and for Dalvik applications up to thread level.

The TRACE32 in-circuit debuggers access the 'target' development board via the processor JTAG connector. Using this hardware approach to gain full control over the CPU, TRACE32 can be used to access peripherals, debug boot code and exception routines, and also has complete system visibility at any given moment.

If the CPU supports external tracing using trace ports such as ARMs ETM, then TRACE32 can record the program flow in real time. You can use the recorded trace to evaluate function nesting, run times or undertake code analysis and profiling.

As TRACE32 has JTAG-access to all areas of the processor core, device drivers (in-kernel and modules), Linux processes, native Android applications and libraries can all be debugged and all of these at the same time.

No special debug software is required on the 'target', the debug information generated during target software compile time provides the additional information that is not available via the JTAG. This is called 'stop mode debugging' as the complete system (including the kernel) will halt when a debug breakpoint is reached.

Sometimes, however, some processes must be kept running (e.g. device drivers) whilst debugging an application. This is called 'run mode debugging' and requires a small 'debug server' to be loaded on the target. Several Linux processes, Android applications and libraries can still be debugged all at the same time, but normally it is not possible to debug device drivers in 'run mode' debugging. A special case is simultaneous 'co-debugging' of native-code components with TRACE32 whilst also debugging Dalvik applications within the Android framework. The framework uses a special 'debug bridge' to connect to the Dalvik application running on the target, this bridge maintains communication under run mode debugging conditions.

If the target supports real-time trace capability, the recorded program flow contains detailed information about the application component run times. TRACE32 creates a comprehensive profiling analysis that shows which application, library or device driver took most CPU time.

For native-code components bottle necks can be tracked down to function and even to source line level. Timing diagrams show the functional flow, and process/thread switches. Dalvik applications can be analysed up to the Java thread level.

Lauterbach is continuing to work on future enhancements of TRACE32 which will further improve Android platform support. In the longer term, Dalvik based Java debugging will be completely integrated into the TRACE32 debug environment.

Android is an open source mobile phone operating system, originally published by Google. Based on a standard Linux kernel it adds several specialised middleware-components and a software stack for smart phones. Android comes with its own virtual machine called Dalvik, which runs optimised bytecode generated from Java source. Applications built for Android can either be written in native-code languages like C/C++, in Java for Dalvik, or in a combined mode where Dalvik applications use a native library.

- Colin Holland

Comment on "In-circuit debugger allows complete ..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top