Latest from Embedded

144516710_Vladimir_Timofeev_Dreamstime
promo__id_144516710__vladimir_timofeev__dreamstime
ID 84308884 © Andy Chisholm - Dreamstime.com
promo_id_84308884__andy_chisholm__dreamstime
Dreamstime_Monsit-Jangariyawong_117103442
dreamstime_monsitjangariyawong_117103442
Tony Vitolo/Electronic Design
promo1920x1080
ID 83317721 © Igor Zakharevich | Dreamstime.com
supplychain_dreamstime_l_83317721

Trace Tools Enhance System and Application Diagnostics (.PDF Download)

Oct. 6, 2017
Trace Tools Enhance System and Application Diagnostics (.PDF Download)

A debugger can help track down problems in an application. Setting a breakpoint and stepping through code can help developers understand how an application is really working and see where problems may occur. The problem with this approach is many applications are time sensitive and stopping them in the middle of an operation can be catastrophic. For example, hitting a breakpoint in the middle of a motor control application can do bad things to a high-speed, spinning rotor that is no longer being controlled in real time. Likewise, tracking hundreds of threads running in a GPU can be equally challenging.

Trace tools complement conventional debuggers, but they are often overlooked by developers. These tools are typically part of a development suite but take a different approach to debugging, as trace facilities capture large amounts of information that can sometimes be analyzed in near-real time or during post-analysis. Of course, raw trace data tends to be overwhelming in size with thousands or millions of entries with lots of details.

 For example, Green Hills Software’s SuperTrace Probe can capture up to 4 Gbytes of trace data at core clock rates up to 1.2 GHz and trace port speeds over 300 MHz. Instrumented software is another way to capture trace information. Hardware has the advantage of low or no overhead, whereas instrumentation incurs some overhead. Lauterbach’s Trace32 family of hardware platforms even support hypervisor awareness.