User Guide

  • 2020
  • 09/09/2020
  • Public Content
Contents

Suppression Rule Examples in Text Format

  • Although you are ultimately trying to suppress problems, the
    Intel Inspector
    vehicle
    for defining a suppression rule is one or more code locations.
  • Narrow rules suppress a limited number of relevant problems; wider rules suppress a greater number of relevant problems.
  • Every rule applied during analysis adds processing time.
  • The goal: Suppress the greatest number of relevant problems with the fewest number of rules.
  • To review rules to be applied during analysis, check the
    Suppressions
    tab of the
    Project Properties
    dialog box.
  • To apply rules during analysis, select the
    Apply Suppressions
    radio button on the
    Target
    tab of the
    Project Properties
    dialog box.
  • A code location may be part of multiple problems; therefore, multiple rules may suppress the same code location, or a rule created to suppress one problem may partially impact another problem.

Suppression Rule Example 1

Suppression rule Example1 suppresses any problem where the last-called frame in the stack is in the
m.so
module.
Suppression = { Name = "Example1"; Stacks = { { mod=m.so; } } }

Suppression Rule Example 2

Suppression rule Example2 suppresses any
Data race
problem with one code location in the
a.out
module,
update_x
function and another code location in the
a.out
module,
update_y
function.
Suppression = { Name = "Example2"; Type = { datarace } Stacks = { { mod=a.out, func=update_x; } { mod=a.out, func=update_y; } } }

Suppression Rule Example 3

Suppression rule Example3 suppresses any
Memory not deallocated
problem where the last-called frame in the stack is an
Allocation site
code location in the
my_alloc
function from the
alloc.c
source file.
Suppression = { Name = "Example3"; Type = { reachable_memory_leak } Stacks = { allocation = { func=my_alloc, src=alloc.c; } } }

Suppression Rule Example 4

Suppression rule Example4 suppresses any
Uninitialized memory access
where the last-called frame in the stack is in the
_itoa_word
function and the stack path is
main
calling
printf
calling
vfprintf
calling
_itoa_word
.
Suppression = { Name = "Example4"; Type = { uninitialized_memory_access } Stacks = { { func=_itoa_word; func=vfprintf; func=printf; func=main; } } }

Suppression Rule Example 5

Suppression rule Example5 suppresses any
Memory leak
problem where the last-called frame in the stack is in the
malloc
function and the stack path is
main
calling
ccc
calling
ddd
calling
malloc
, possibly through a series of interim function calls.
Suppression = { Name = "Example5"; Type = { unreachable_memory_leak } Stacks = { { func=malloc; ...; func=ddd; ...; func=ccc; ...; func=main; } } }

Suppression Rule Example 6

Suppression rule Example6 suppresses any problem with an
Allocation site
code location in the
my_alloc
function from the
alloc.c
source file anywhere in the stack.
Suppression = { Name = "Example6"; Stacks = { allocation = { ...; func=my_alloc, src=alloc.c; } } }

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804