Application Debugger On-Chip Instruction Trace

The Intel® Atom™ Processor has an on-chip branch buffer. This buffer can be read out using Linux* OS level function calls. In other word the operating system needs to be modified with a kernel patch. This kernel patch can be used to access the branch buffer, read out it's contents and export it into user space.

The idbserver debug client handles TCP/IP communication between the process or application you want to debug on the target and the Intel® C++Application Debugger on the host. It will also transfer the branch buffer information to the fully GUI driven Intel® C++ Application Debugger on the host.

The Intel® C++ Application Debugger is capable of filtering the branch information so only events that are relevant for the process or application you debug is visible. It can then take the buffer contents and map it to the executed assembly instructions and source code. The developer ends up with a trace history of the instructions that were actually executed on the target before a point in the application code was reached.

This can be a very powerful tool to help identify and fix run-time problems. For instants, if you run into an exception you can stop at a Linux* OS signal associated with that exception and then look at the code directly preceding the event. This helps to identify which specific code may be causing a memory access violation or trigger a memory leak. It can also be used in the same way to identify code correctness issues and logical errors that only manifest themselves at run-time.

It is a capability that is quite common for system debuggers, but only very few application debug solutions - especially outside of the embedded world offer it.

The Intel® C++ Application Debugger for Linux* OS supporting the Intel® Atom™ processor however does assuming the necessary kernel patch on the target platform is applied.

If you are an application  developer targeting Mobile Internet Devices - give it a try. You can find more information about this at and /en-us/articles/cross-application-debugging. If you have any questions, please let me know. I am more than happy to try and answer them. :-)

As always - the opinions expressed on this site are mine alone and do not necessarily reflect the opinions or strategies of Intel Corporation or its worldwide subsidiaries.