System developers are well aware of how hard it is to find a needle in a haystack, which is why tracing tools have become so important. Catching the symptom of a problem is often done best via a trace tool. Hardware trace features were first popularized with in-circuit emulators (ICEs), but trace features are typically standard fare for higher-end processors. Arm's Embedded Trace Macrocell (ETM) is an example of tracing's importance. Trace tools record errors before the symptoms go away, often never to return in the same way. But effectively utilizing the volumes of information that trace tools return requires experience.
Unfortunately, tracing tools aren't alone when it comes to things that go away, possibly never to come back. I'm sure many of you feel that outsourcing falls into this category, but it's by no means unique. This hit home while I was attending the award ceremony of the 51st Mercer County Science and Engineering Fair put on by the Engineers Club of Trenton.
Everyone was disappointed to hear that there may be no 52nd fair due to the lack of funding. The president, Richard Daugert, explained that corporate funding had declined recently. This might not be too bad if the fair was celebrating the popularity of a local fruit or vegetable. But I can vouch for the impact that this and other competitions have on the long-term aspirations of future engineers and scientists. I have two children working on engineering degrees and a third about to follow in their footsteps.
The cost of putting on the fair and sending the grand prize winner to the Intel International Science and Engineering Fair (ISEF) is less than the price of half a dozen decent laptops. This is not a bad payoff for inspiring hundreds upon hundreds of students. If you know of a sponsor or two that can help the Engineers Club, drop me an e-mail. Also, check out your local science fair. It could probably use a hand as well. Don't let this trace result be the only record of a problem that needs to be solved.
It does take a little expertise to analyze trace results. Some problems like deadlock or premature termination are obvious. Others take a little more work to identify. Trace application functionality is about where debugging was 20 years ago. It's ubiquitous, cheap, and in general use, but the functionality of the tools tends to be crude. Part of the problem is describing the search parameters. Let me know if you've come across trace tools that give you more than just megabytes of data.