Settop Box Diagnostic Tool
Our customer was responsible for validating settop boxes from various manufacturers for use in their large consumer video system. Often, during the validation procedures, a problem would be discovered and documented. However, in a number of cases it was difficult to determine if the source of the bug was in the manufacturer's settop box or in the customer system. Ginngi was called upon to provide a diagnostic tool that could determine who was at fault.
The settop box software consisted of a large library whose API was compliant with a popular middleware package. The software binaries were delivered together with the linker report, which gave us information about each of the internal functions in the library including absolute addresses.
A Perl script was first written to parse the linker file and extract function names and respective addresses. Then a utility was written in C that read the binary file into memory. Using the linker report the utility was able to locate the start of each function and provide a patch to a small override function whose purpose it was to output to the settop box's serial port information about the function and its calling parameters. This serial stream was then captured via terminal software.
In this way when a bug was discovered it was easy to provide the exact trace of events within the settop box manufacture's software and cleanly conclude if the problem lay with them or with the system.
ginngi engineering