Click here to load reader
Upload
deanna-kosaraju
View
46
Download
0
Embed Size (px)
DESCRIPTION
Eventlog: Seamlessly Integrated Graphical Debugging Tool Devi Vellingiri and Binod Kumar, HP
Citation preview
Eventlog: Seamlessly Integrated Graphical Debugging Tool
[email protected], [email protected]
Abstract This paper describes the easy integration and benefits of using a graphical debugging tool, Eventlog. Eventlog
provides graphical view of the system level information. This helps to debug complex issues and to monitor system
performance in the target (in our case the target is inkjet printers). It provides the actual interaction between tasks,
interrupts and Operating system in a timeline. For any system, this can be leveraged and enabled with lesser effort.
Problem statement
Today more and more developers struggle to solve complex system level issues. Root causing these
issues requires,
- Longer debugging time.
- Expert engineers around the subject.
- Understanding the system execution against the design.
- Expensive debugging tools. (Like debuggers supporting trace, time machine, etc).
Besides these, for performance monitoring there are various approaches that involve huge system cycle
time and comes with heavy firmware size.
Our solution
To solve such issues, we need simple, graphical; time based and seamlessly integrated tool support in a
shorter timeframe. As someone has correctly said that “a picture is worth thousand words”. Event log
can be imagined as a Digital Video Recorder for software.
Simple definition for Eventlog
A framework has been introduced in the system application FW to makes use of the Real Time Operating
System (threadx). This framework will enable capturing runtime system execution data and will store
them in allocated memory (memory size is configurable) in the target (e.g., Printer). This stored data can
be viewed graphically using any GUI tool.
Steps to enable Eventlog in a system
- Create a data structure to hold events (usually in a format that can be displayed by a GUI
tool).
- Fill this data structure whenever the system routines are executed (both in application and
operating system).
- Allocate some memory in the target to store this data structure. (It will be a circular buffer).
- Use a GUI tool to display this captured data. (At any point of the system execution)
Evidence the solution works
- The solution has already been made available along with target firmware and is in use by
HP’s worldwide developers’ community.
Below is a detailed depiction of threads, status and events in an Eventlog Display. Here, X-axis is
time; Y-axis is thread list; other symbols are events.
Get MutexMutex PrioritizeInterrupt end Get SemaphorePut SemaphoreThread Executing Thread Suspended
Thread List Interrupt start
Benefits:
Performance analysis: As the system level information is in GUI format, this data is highly useful for
analyzing system performance.
Productivity & Time: As, this can be used to visualize the actual interactions between threads,
interrupts, and the operating system, it would take less time to analyze the FW for any latent defects.
Critical defects like memory asserts (that are not reproducible at developer location) captured at the test
location can be easily debugged by the developers using this data. A complex defect that takes a week’s
time can now be root caused in 3 days.
Configurability: The memory size is configurable. It can be compile time as well as run-time
(dynamically) option of enabling and disabling event logging. Filters can be introduced in the framework.
This helps in focusing on user interested events for analysis.
Additional cost: The solution does not require any additional cost and learning effort is minimal.
Leveraging: As explained earlier, this concept can be used in any system to ease system debugging and
performance analysis.
Acronyms: GUI: Graphic User Interface FW: Firmware EL: Event Log
References
http://rtos.com/products/threadx/GHS_MULTI1752