3

Click here to load reader

Eventlog: Seamlessly Integrated Graphical Debugging Tool

Embed Size (px)

DESCRIPTION

Eventlog: Seamlessly Integrated Graphical Debugging Tool Devi Vellingiri and Binod Kumar, HP

Citation preview

Page 1: Eventlog: Seamlessly Integrated Graphical Debugging Tool

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)

Page 2: Eventlog: Seamlessly Integrated Graphical Debugging Tool

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

Page 3: Eventlog: Seamlessly Integrated Graphical Debugging Tool

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