Source Code Suppression of Binary Analysis Reports

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software development often results in numerous report messages from binary analysis tools, many of which are not actionable, leading to programmer fatigue from filtering irrelevant reports, and existing filtering methods can fail to accurately suppress non-actionable issues.

Innovation Solution

The compiler generates a suppression indication in the binary based on corresponding source code, allowing for selective suppression or modification of reportable problems, ensuring only relevant issues are reported.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If binary analysis tools are used to verify programming standards, then detection precision of potential problems is improved, but the quantity of report messages increases significantly including many non-actionable issues

Engineering Contradiction:
Improvedetection precisionVSAvoidquantity of report messages
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts and removes non-actionable report messages from the analysis output by implementing suppression rules that identify and filter out false positives, keeping only the actionable issues that require programmer attention

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different quality levels to different report messages by categorizing them as actionable or non-actionable, allowing selective suppression of certain message types while maintaining reporting of others

Inventive Principle:
Principle #3Local quality

2Loss of time

If conventional filtering methods are used to suppress report messages, then programmer workload is reduced, but the filtering accuracy deteriorates and relevant issues may be missed

Engineering Contradiction:
Improveprogrammer workloadVSAvoidfiltering accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent performs preliminary action by pre-defining suppression rules and criteria before analysis, allowing the system to automatically distinguish between actionable and non-actionable issues without requiring programmer intervention for each individual message

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where suppression rules are refined based on analysis results and programmer interactions, improving filtering accuracy over time while maintaining low programmer workload

Inventive Principle:
Principle #23Feedback

3Productivity

If suppression rules are added to filter non-actionable reports, then productivity is improved by reducing irrelevant notifications, but device complexity increases due to additional filtering mechanisms

Engineering Contradiction:
Improveprogrammer productivityVSAvoidfiltering mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements universal suppression rules that can handle multiple types of non-actionable issues through a single filtering framework, reducing the need for separate complex filtering mechanisms for each issue type

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7873949B2In source code suppression of binary analysis
Publication Date: 2011.01.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7873949B2 patent drawing
  • US7873949B2 patent drawing
  • US7873949B2 patent drawing

AI summary

Upon accessing binary that was generated by a compiler using corresponding source code, a potential reportable problem in the binary is identified. The binary includes a compiler transformed indication that the potential reportable problem is to be suppressed at least under some circumstances. The transformed indication is generated by the compiler using a corresponding untransformed indication in the corresponding source code. The transformed indication is then used to decide that the potential reportable problem should not be reported. Thus, artifacts within the source code itself may ultimately direct what problems are not to be reported on when the corresponding binary is analyzed after the compile phase.