Investigating Problems Using Interactive
Debugging
Sometimes simply knowing the location of a problem is not enough. So the
Intel Inspector
provides the opportunity to investigate more deeply with an interactive
debugging session during analysis.
When you run an interactive debugging session during analysis, the
Intel Inspector
halts execution at a selected or detected problem. This is more efficient than
simply setting a code breakpoint at a reported problem location because the
code could execute thousands of times before the conditions that produced the
problem occur.
During the interactive debugging
session, use the normal Visual Studio* debugger actions to examine memory, set
code breakpoints, and continue execution. Only the use of data breakpoints is
not supported.
Use one of the following ways to initiate an
interactive debugging session during analysis so that you see the state of your
application code instead of the state of
Intel Inspector
analysis code:
Objective
| Process Summary
| Usage
|
---|---|---|
Allow quick investigation of problem(s) of interest.
| In a result, choose a problem(s) in the
Summary window, right-click to display a
context menu, then choose
Debug This Problem .
Outcome: The
Intel Inspector :
| Typical scenario: After reviewing a problem using result data
provided by the
Intel Inspector ,
you discover you need more application state information at the time the
problem occurred, such as the contents of variables. The
Debug This Problem function returns you
to the point of the problem, halting execution in a debugging session so you
can examine memory and other state information at any point in the call stack.
|
Delay problem detection until a selected point in the
application.
| In the Visual Studio*
debugger, set a code breakpoint to halt application execution prior to where
you want analysis to begin. In the
Intel Inspector ,
select the
Select analysis start location with
debugger radio button when configuring an analysis and start the
analysis. Wait for the debugging session to open and execution to halt at the
code breakpoint. Choose
to turn on analysis and
resume execution.
Outcome: Execution halts for each problem detected after you
turn on analysis and resume execution. You cannot turn off analysis again.
| Typical scenario: You configured the project to limit the
application modules for inspection, but you need to narrow analysis focus even
further. This option lets you choose an arbitrary location to turn on error
detection, allowing faster execution until that point.
Because debugging in conjunction with a threading analysis
significantly slows execution:
|
Allow investigation of every detected problem.
| In the
Intel Inspector ,
select the Enable debugger when problem detected radio
button when configuring an analysis.
Outcome: When you run the analysis, the
Intel Inspector
halts application execution when it detects the first problem and launches a
debugging session. Execution halts for each detected problem when you resume
execution using normal debugger commands.
| Typical scenario: You want to investigate the state of the
application for every problem detected.
Because of analysis speed issues, this option is not
recommended when detecting data races. It is faster to use the
Debug This Problem function to
selectively investigate threading problems identified during a non-debug run.
|
Tips
- Intel Inspectorsupports interactive debugging only for pure native applications.
- Intel Inspectordoes not offer interactive debugging for theDetect Leaks(mi1) analysis type because memory and resource leaks are determined after an application terminates and therefore cannot be used to halt execution during analysis. However, you can perform a standard debugger attach to a process launched under this analysis type.
- Do not recompile your application after generating a result if you plan to use the resultDebug This Problemfunction.Intel Inspectorcannot guarantee finding the same problem(s) when the binary changes; consequently, it checks for a binary change and reports a warning to prevent rerunning an analysis that may not stop at the selected problem(s).
- When you use theDebug This Problemfunction, the problem list in the new result may differ from the problem list in the source result.Intel Inspectorautomatically adjusts the debugging session analysis to return to the selected problem(s) more quickly; however the analysis adjustments do not correspond to individual problem types. Consequently, theIntel Inspectormay detect and report additional problems, but it will break only for a selected problem(s).
Parent topic:
Investigating
Results