knob
Specify additional settings for a collect
or collect-with action.
Syntax
-knob
<knob-name>=<knob-value>
-k
<knob-name>=<knob-value>
Arguments
Available knobs and values are dependent on the
specified analysis type. For a complete list, use the
knob-list
action.
<knob-name> | Description
|
---|---|
analyze-stack=true | false Default:
false | Analyze invalid and uninitialized accesses to
thread stacks. Enabling this setting is useful when:
High cost.
Recommendation:
Supported analysis:
mi3 |
detect-invalid-accesses=true |
false Default:
true | Detect problems where an instruction reads or
writes an uninitialized or invalid memory location. Enabling this setting is
useful when an application:
Recommendation: Enable.
Supported analysis:
mi2, mi3 |
detect-leaks-on-exit=true |
false Default:
true | Enable this setting to report typical memory leaks in which the
application allocates a memory block, never releases it, and doesn’t keep a
pointer to the block (e.g.
unreachable memory blocks ). Enabling is useful when an
application:
Extremely low cost - especially if used only with the
Remove duplicates checkbox selected.
Recommendation: Enable.
Supported analysis:
mi1, mi2, mi3 |
detect-resource-leaks=true |
false Default:
true | Enable this setting to detect open kernel and GDI handles when
the application ends. For example, the application may open a file, get its
handle, but never close or release that handle until it stops running. On
Windows, GDI resources are limited, and the application may experience some
drawing issues if it uses more than ~10,000 of these types of handles at once
(pen, bitmap, brush, etc.).
Enabling is useful when analyzing Windows* GUI
applications.
Low cost.
Recommendation: Enable the first time you analyze an application
and periodically thereafter.
Supported analysis:
mi1, mi2, mi3 |
enable-memory-growth-detection=true |
false Default:
true | Set to true to
enable buttons in the
GUI that let you send commands during application execution. This will
show you a list of
reachable and unreachable memory blocks for a time segment.
Enabling is useful for modeling memory usage patterns and ensuring
a transactional application deallocates all memory allocations after a
transaction completes. (Use in conjunction with the
Reset Leak/Growth Detection button and
Show Leaks/Growth Now button during
analysis.) Low cost.
Supported analysis:
mi1, mi2, mi3 |
offload-target=default | cpu Default:
default | Use this argument to set up the device on which
your application executes during offloaded code analysis.
Supported analysis:
mi1, mi2, mi3, ti1, ti2,
ti3 |
filter-guaranteed-atomics=true |
false Default:
false | Enable this setting to skip reporting races on
guaranteed atomic operations on Intel® P6 processor family or newer. For
details, please refer to the
Guaranteed Atomic Operations section of the
. Use with caution, other architectures
might have another policy on atomic operations.
Supported analysis:
ti2, ti3 |
filter-guaranteed-atomics=true |
false Default:
false | Enable this setting to skip reporting races on
guaranteed atomic operations on Intel® P6 processor family or newer. For
details, please refer to the
Guaranteed Atomic Operations section of the
. Use with caution, other architectures
might have another policy on atomic operations.
Supported analysis:
ti2, ti3 |
remove-duplicates=true | false Default:
true | Enable this setting to avoid showing duplicate
occurrences of a detected problem in the
Code Locations pane. Disabling is:
Recommendation: Enable.
Supported analysis:
mi3, ti3 |
scope=normal | extreme Default:
normal | Normal/normal=Set memory access byte granularity to 4 bytes, do
not detect data races on stack accesses, and defer memory check. High cost.
Extremely thorough/extreme=Set memory access byte granularity to 1
byte, detect data races on stack accesses, and do not defer memory check.
Extremely high cost.
Supported analysis:
ti3 |
stack-depth=<value> Available values are:
1 8 16 24 32 Default:
16 | Provide more or less call stack context for detected errors. A
high setting is useful when analyzing highly object-oriented applications. A
higher number does not significantly impact cost.
Recommendation: Use only as large a value as an application
requires to display complete call paths.
Supported analysis:
mi1, mi2, mi3, ti1, ti2,
ti3 |
still-allocated-memory=true |
false Default:
true | Detect problems where a still-reachable block
of memory is allocated but not released when the application stops executing.
Cost is proportional to the number of memory blocks still allocated when the
application stops executing.
Recommendation: Enable this setting to
investigate memory growth.
Supported analysis:
mi1, mi2, mi3 |
terminate-on-deadlock=true |
false Default:
false | Stop analysis and application execution if the
Intel® Inspector
detects a deadlock. Enabling this setting is useful when running your
application as part of a kernel or unit testing suite.
Low cost.
Recommendation: Disable. Instead, use the
corresponding knob in the command line interface to perform kernel or unit
testing in a nightly scenario. If the
Intel® Inspector
identifies a deadlock, decide if it is appropriate to continue analysis.
Supported analysis:
ti1, ti2, ti3 |
use-maximum-resources=true |
false Default:
false | Potentially detect more data race and
cross-thread stack access errors; however, do not optimize memory consumption
and performance.
High cost.
Recommendation: Disable this setting to find
most of your threading problems. After you find and fix the problems, enable
the setting for more complete coverage.
Supported analysis:
ti3 |
Actions Modified
Description
Use the
knob
action-option when you want to specify an additional
setting for a
collect
or
collect-with
action. For a full list of available knobs, use
the knob-list
action.
Example
This command uses the
collect-with
action to perform memory error analysis using
the
detect-memory-leaks
knob on
myApp
.
$ inspxe-cl -collect-with runmc -knob detect-memory-leaks true -- myApp