TraceScriptFAQS
From Texas Instruments Embedded Processors Wiki
Translate this page to
Contents |
Trace Script Frequently Asked Questions
Generic Scripting FAQS
- Q: Why do I sometimes see "UNKNOWN", "UNKNOWN" in the output for functions/filenames
- A: The function/filename symbols are determined from the output of the ofd6x.exe (Object File Dump utility), which generates a list of functions and filenames from the .out file, along with their staring and ending addresses. If "UNKNOWN" values are showing in the output, it's because trace captured program execution that had a program address outside the ranges specified by the OFD utility. Common causes might be code that has been dynamically loaded/allocated which wouldn't have associated information in the .out file. You can usually determine the exact cause by looking in the file generated by ofd6x.exe and the .map file and determining why the offending program address is not defined.
Statistical Profiling Specific FAQS
- What if I want my Statistical Profiling Results to be Thread Aware?
- The Statistical Profiling processing script doesn't natively handle thread aware applications, but if you're ambitious enough, you can add that functionality. What needs to happen is a hook function needs to be execute in the code when the operating system switches threads. That hook function should write the ID of the next thread to a global variable. The existing statistical profiling script bins everything together. It needs to be modified to create a number of bins based on the various thread IDs. The trace configuration scenario remains the same, except another job needs to be added to capture the write data to the global variable that holds the thread ids. The results should then be presented on a thread by thread basis.
Interrupt Analysis Specific FAQS
Event Analysis Specific FAQS
Dynamic Call Graph Specific FAQS
- Q: How do interrupts affect the call graph?
- A: As noted above, when an interrupt service routine gets called, it will show up as the child of whichever function it was executing when the ISR was called. In the example above, prdfxn0 is called by an interrupt. It shows up as a child of task and child, meaning it was taken whenever it was executing those functions.
Thread Aware Profiling Specific FAQS
Interrupt Profiling Specific FAQS
