Debugging Intelligent Devices Using Object Code Log Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Intelligent devices with limited computing resources, such as radios and utility meters, often lack effective debugging features due to memory constraints, making it difficult to identify and correct malfunctions in their program code, which increases development time and costs and can lead to errors.
Innovation Solution
A debugging application that uses log data from executed object code to simulate operations and identify corresponding assembly code portions, allowing for visual indication of problematic code segments without requiring breakpoints or complex debugging features in the object code, thereby enabling efficient debugging of intelligent devices with limited resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If debugging features are included in program code for intelligent devices, then debugging capability is improved, but memory storage requirements increase beyond device limits
Solution Approach 1:
The debugging functionality is segmented into two separate components: (1) a minimal logging module embedded in the intelligent device that only collects and stores execution data, and (2) a comprehensive debugging application running on an external computing device that performs all analysis and simulation. This segmentation allows the resource-constrained intelligent device to maintain only essential debugging capabilities while offloading complex debugging functions to an external system with充足 resources.
Solution Approach 2:
Log data serves as an intermediary between the intelligent device and the debugging application. The logging module captures execution information and transmits it to the external computing device, where the debugging application uses this intermediate data to simulate and analyze device behavior without requiring the device itself to host complex debugging tools.
2Quantity of substance
If debugging features are omitted from program code to save memory, then memory storage is preserved, but ability to identify malfunctions deteriorates
Solution Approach 1:
The logging module performs preliminary action by capturing and storing execution data during normal device operation. This pre-captured log data includes program counter values, register states, and operational information that will be needed for debugging, eliminating the need to implement complex real-time debugging features in the resource-constrained device.
Solution Approach 2:
The patent replaces the mechanical approach of embedding debugging tools directly in the intelligent device with an information-based approach. Instead of adding physical debugging hardware or complex software to the device, the system substitutes a lightweight logging mechanism that captures execution traces, which are then analyzed externally using sophisticated debugging applications running on computers with adequate resources.
3Quantity of substance
If developers manually identify problematic code portions without debugging features, then device memory is preserved, but development time increases
Solution Approach 1:
The debugging application creates a virtual copy of the intelligent device's execution environment by simulating device operations using captured log data. This copying approach allows developers to interact with and analyze device behavior without physically modifying the device or adding resource-intensive debugging features, significantly reducing development time while preserving device memory constraints.
Solution Approach 2:
The system changes the parameter of where debugging functionality resides - moving it from the embedded device environment to an external computing environment. By transferring debugging capabilities to an external system with different resource parameters (abundant memory, processing power), the patent enables efficient malfunction identification without compromising the original device's memory constraints.
4Measurement precision
If complex debugging features are implemented in intelligent devices, then debugging precision is improved, but device complexity increases beyond acceptable limits
Solution Approach 1:
Complex debugging features are extracted from the intelligent device and relocated to an external debugging application. The device retains only the essential logging functionality, while sophisticated debugging capabilities such as code simulation, analysis, and visualization are taken out and implemented in an external environment with adequate computational resources.
Solution Approach 2:
The patent moves debugging functionality from the one-dimensional constraint of embedded device memory to the multi-dimensional resource space of external computing systems. By transitioning from an embedded debugging model to a distributed model where logging occurs on the device but analysis occurs externally, the system accesses additional dimensions of computational resources without increasing device complexity.
Data Source
AI summary
In some aspects, a debugging application can obtain log data from a target device. The log data can be generated from the execution of object code by the target device. The object code can be generated from assembly code for the target device. For each of multiple program counter entries in the log data, the debugging application can identify a correspondence between the program counter entry and a respective portion of the assembly code and simulate a respective operation performed by the execution of the object code. The simulated operation corresponds to the program counter entry. Simulating the execution can include configuring a display device to display a visual indicator for the portion of the assembly code that caused a given operation. The visual indicator is displayed based on the identified correspondence between a portion of the assembly code and a program counter entry from the log data.


